系列文章目录
C primer plus
第二章
前言
上一节我们初步认识了C语言,接下来我们正式的学习C语言。
一、示例
#include <stdio.h>
int main(void)
{
int num;
num=1;
printf("I am a simple "};
printf("computer. \n");
printf("My favorite number is %d because it is the first. \n",num);
return 0;
}
1.1讨论代码含义
#include <stdio.h>
该代码告诉编译器需要把stdio.h库文件中的内容包含在我们所写的代码文件中。
stdio.h是C编译器软件包的标准部分,它提供键盘输入与输出的支持。
int main(void)
主函数体,void表示该函数体的参数为空
{
表示主函数体的函数部分开始
int num;
函数声明,声明一个数据类型为整数类型的变量num。
num=1;
赋值表达式
=为赋值运算符,将=右侧内容赋值给左侧
printf();
调用printf函数进行语句的输出打印
return 0;
return 语句,返回一个值可以是0,1(随便一个整形数据都行)
}
函数体结束
1.2程序细节
1.#include 这行代码是一条预处理指令
头文件<<# include “stdio.h”>>把stdio文件中的所有内容都输入到这一行所在的位置-拷贝粘贴-预处理指令,C编译器在编译C代码之前会对源代码进行预处理,为什么不把这些内置在系统中呢?学过单片机的就明白了,省资源啊,用到什么调用什么
这里我们注意就好,暂时可以不去过于关注细节
2.main()函数
每一个能正常运行的C程序一定都是从main()函数体内的函数语句开始执行的
而int 是main()函数的返回类型,这表明了main()函数是一个返回值为整型数据的函数,返回的值给到操作系统。
()的作用是用于识别main是一个函数,而不是变量或者其它
3.注释
常用的注释方法有
单行注释:
//————从//开始的一行内容将被注释掉
多行注释:
/* ....
......
.....
*/
其中的内容都会被注释掉,良好的编程习惯需要我们简洁高效的编写注释,有利我们程序的理解。
4.分号;
分号告诉编译器一行语句是否结束,一般情况下只要是一行语句结束了就需要带上分号,但是函数体后不能带上分号
二、第二章习题解答
编程练习
1.
#include <stdio.h>
int main()
{
printf("Yasuo Zed\n");
printf("Yasuo\n");
printf("Zed\n");
printf("Yasuo ");
printf("Zed \n");
return 0;
}
2.
#include <stdio.h>
int main()
{
printf("My name is :Yasuo Zed \n");
printf("My address is 艾欧尼亚\n");
return 0;
}
3.
#include <stdio.h>
int main()
{
int age, days;
printf("please input your age :");
scanf("%d",&age);
days=365*age;
printf("You have lived %d days,and your age is %d",days,age);
return 0;
}
4.
#include <stdio.h>
void jolly();
void deny();
int main()
{
jolly();
jolly();
jolly();
deny();
}
void jolly()
{
printf("For he's a jolly good fellow!\n");
}
void deny()
{
printf("Which nobody can deny!\n");
}
也可以使用for循环来减少代码量
#include <stdio.h>
void jolly();
void deny();
int main()
{
for (int i = 0; i < 3; i++)
jolly();
deny();
}
void jolly()
{
printf("For he's a jolly good fellow!\n");
}
void deny()
{
printf("Which nobody can deny!\n");
}
5.
本题与第四题思路以及框架基本相同,读者可尝试自行实现
6.
#include <stdio.h>
int main()
{
int tose=10;
printf("%d\n",tose);
printf("%d\n",tose*tose);
printf("%d",2*tose);
return 0;
}
7.
这里我使用了三种方法,最后一种是最容易想到得最直白得,第一种利用了两个for循环,第二种是含参函数调用;看起来应该内存占用率差不多,但是第一种可能比较难理解吧。
#include <stdio.h>
void display(int a);
int main()
{
for (int i = 4; i > 1; i--)
{
display(i);
printf("\n");
}
return 0;
}
void display(int a)
{
for (int i = a; i > 1; i--)
{
printf("Smile!");
}
}
#include <stdio.h>
void display(int a)
{
for(int i=0;i<a;i++)
printf("Smile!");
}
int main()
{
display(3);
printf("\n");
display(2);
printf("\n");
display(1);
printf("\n");
return 0;
}
#inlcude <stdio.h>
void display()
{
printf("Smile!);
}
int main()
{
display();display();display();
printf("\n");
display();display();
printf("\n");
display();
return 0;
}
8.
#include <stdio.h>
void one_three()
{
printf("one!\n");
}
void two()
{
printf("two!\n");
}
int main()
{
printf("starting now:\n");
one_three();
two();
printf("three!\n");
printf("done!");
return 0;
}
本书第二章得内容就到这里,下周更新第三章内容得学习重点和讲解