以下为我做的《C Primer Plus》练习题2-12
1.编写一个程序,调用printf()函数在一行上输出您的名和姓,再调用一次printf()函数在两个单独的行上输出您的名和姓,然后调用一对printf()函数在一行上输出您的名和姓,输出应如下所示(当然里面要换成您的姓名):
Anton Bruckner 第一个输出语句
Anton 第二个输出语句
Bruckner 仍然是第二个输出语句
Anton Bruckner 第三个和第四个输出语句
解答如下:
- #include <stdio.h>/*下面getchar函数将会调用*/
- int main(void)
- {
- printf("Wilson Deng\n");//第一个输出语句
- printf("Wilson\nDeng\n");//第二个输出语句
- printf("Wilson");//第三个输出语句
- printf(" Deng\n");//第四个输出语句
- getchar();
- return 0;
- }
2.编写一个程序输出你的姓名和地址。
解答如下:
- #include <stdio.h> /*下面getchar函数将会调用*/
- int main(void)
- {
- printf("Name:Wilson Deng.\n"); //输出姓名并且换行
- printf("Add:China HuBei XiangFan.\n"); //输出地址也换行
- getchar(); //调试的时候用于暂停
- return 0; //结束程序返回0
- }
3.编写一个程序,把你的年龄转换成天数并显示二者的值。不用考虑平年和闰年问题。
解答:
- #include <stdio.h>/*和下面getchar配合使用*/
- int main(void)//函数声明
- {
- int age,days,year;//定义变量
- age=25; // 将年龄值赋给变量age
- year=365; //将一年的天数赋给变量year
- days=year*age; //将定义的天数与年龄进行运算赋值给days
- printf("%d岁等于%d天\n",age,days);/*输出年龄并且回车输出换算成天数的值回车*/
- getchar();
- return 0;
- }
4.编写一个能够产生下面输出的程序:
For he's a jolly good fellow!
For he's a jolly good fellow!
For he's a jolly good fellow!
Which nobody can deny!
程序中除了main()函数之外,要使用两个用户定义的函数:一个用于把上面的夸奖消息输出一次;另一个用于把最后一行输出一次。
解答如下:
- #include <stdio.h>/*下面getchar函数将会调用*/
- void message1(void);/*声明C函数原型一*/
- void message2(void);/*声明C函数原型二*/
- int main(void)//函数声明
- {
- message1();/*调用第一个自定义函数*/
- message1();/*调用第一个自定义函数*/
- message1();/*调用第一个自定义函数*/
- message2();/*调用第二个自定义函数*/
- getchar();
- return 0;
- }
- void message1(void)/*定义第一个函数原型*/
- {
- printf("For he's a jolly good fellow!\n");/*调用输出函数输出第一句话后换行*/
- }
- void message2(void)/*定义第二个函数原型*/
- {
- printf("Which nobody can deny!\n");/*调用输出函数输出最后一句话后换行*/
- }
5.编写一个程序,创建一个名为toes的整型变量。让程序把toes设置为10。再让程序计算两个toes的和以及toes的平方,程序应该输出所有的3个值,并分别标识它们。
解答如下:
- #include <stdio.h>/*下面getchar函数将会调用*/
- int main(void)//函数声明
- {
- int toes;//定义toes为整型变量
- toes=10;//toes赋值10
- printf("toes=%d\n",toes);//输出toes的值
- printf("两个toes的和=%d\n",2*toes);//输出两个toes的和
- printf("toes的平方=%d\n",toes*toes);//输出toes的平方
- getchar();//调试的时候用于暂停
- return 0;//结束程序返回系统
- }
6.编写一个能够产生下列输出的程序:
Smile!Smile!Smile!
Smile!Smile!
Smile!
在程序中定义一个能够显示字符串Smile!一次的函数,并在需要时使用该函数。
解答如下:
- #include <stdio.h>/*下面getchar函数将会调用*/
- void funone(void);/*声明函数funone*/
- int main(void)//函数声明
- {
- funone(); /*输出第一行显示字符*/
- funone();
- printf("Smile!\n");
- funone(); /*输出第二行显示字符*/
- printf("Smile!\n");
- funone(); /*输出第三行显示字符,光标在这行最后*/
- getchar();
- return 0;
- }
- void funone(void)/*自定义函数funone原型*/
- {
- printf("Smile!");/*调用输出函数输出字符*/
- }
7. 编写一个程序,程序中要调用名为one_three()的函数。该函数要在一行中显示单词"one",再调用two()函数,然后再在另一行中显示单词"three"。函数two()应该能在一行中显示单词"two"。main()函数应该在调用one_three()函数之前显示短语"starting now:",函数调用之后要显示"done!"。这样,最后的输出结果应如下所示:
---------------------
starting now:
one
two
three
done!
----------------------
解答如下:
- #include <stdio.h>/*下面getchar函数将会调用*/
- void one_three(void);/*声明函数one_three*/
- void two(void);/*声明函数two*/
- int main(void) //函数声明
- {
- printf("Starting Now!\n");/*输出第一行显示字符*/
- one_three(); /*输出第二三四行显示字符*/
- printf("Done\n"); /*输出第五行显示字符回车*/
- getchar();
- return 0;
- }
- void one_three(void) /*自定义函数one_three原型*/
- {
- printf("One\n"); /*调用输出函数输出字符*/
- two(); /*调用two函数输出字符two回车*/
- printf("Three\n");
- }
- void two(void) /*自定义函数two原型*/
- {
- printf("Two\n"); /*调用输出函数输出字符*/
- }
over




