题目1:要求在屏幕上输出一行信息: This is a C program.
【解题思路】
在主函数中用 printf 函数原样输出以上文字。
【解决代码】
#include <stdio.h> // 这是编译预处理命令
int main() // 定义主函数
{ // 函数开始的标志
printf("This is a C program.\n"); // 输出所指定的一行信息
return 0; // 函数执行完毕时返回函数值0
} // 函数结束的标志
题目2:求两个整数之和。
【解题思路】
设置3个变量,a和b用来存放两个整数,sum用来存放和数。用赋值运算符“ = ”把相加的结果传给sum。
【解决代码】
#include <stdio.h> // 这是编译预处理命令
int main() // 定义主函数
{ // 函数开始
int a = 0; // 本行是程序的声明部分,定义整型变量a,并初始化值为0
int b = 0; // 本行是程序的声明部分,定义整型变量b,并初始化值为0
int sum = 0; // 本行是程序的声明部分,定义整型变量sum,并初始化值为0
a = 123; // 对变量a赋值
b = 456; // 对变量b赋值
sum = a + b; // 进行a+b 的运算,并把结果存放在变量sum中
printf("sum is %d\n", sum); // 输出结果
return 0; // 使函数返回值为0
} // 函数结束
【代码点评】
这段代码和教材上面不同的地方在于对于三个整型变量初始化不同,原教材代码直接定义了三个变量,并没有进行初始化,这虽然对本段代码运行结果没有影响,但并不利于程序员代码习惯的养成,比较推荐写成如上示例。
题目3:求两个整数中的较大者。
【解题思路】
用一个函数来实现求两个整数中的较大者。在主函数中调用此函数并输出结果。
【解决代码1】
#include <stdio.h>
int main() // 定义主函数
{ // 主函数体开始
int max(int x, int y); // 对被调用函数max的声明
int a, b, c; // 定义变量a,b,c
scanf("%d%d", &a, &b); // 输入变量a和b的值
c = max(a, b); // 调用max函数,将得到的值赋给c
printf("max=%d\n", c); // 输出c的值
return 0; // 返回函数值为0
}
int max(int x, int y) //定义max函数,函数值为整型, 形式参数x和y为整型
{
int z; // max函数中的声明部分,定义本函数中用到的变量z为整型
if (x > y) z = x;
else z = y;
return(z); //将z的值返回,通过max带回到调用函数的位置
}
【代码点评】
这段代码就是教材上的代码原文,这段代码用到了实际参数、形式参数等一系列非初学者所能接受的知识,当然实现这个功能还可以使用其他代码,下面我保留教材的“使用自定义函数”的代码风格,将内容进行精进简化,形成【解决代码2】,也是可以实现这个功能的,并且更适合初学者可以看懂。
【解决代码2】
#include <stdio.h>
void max(int x, int y)
{
if (x > y)
printf("max = %d",x);
else
printf("max = %d",y);
}
int main()
{
int a = 0;
int b = 0; // 定义变量a,b,c
scanf("%d%d", &a, &b);
max(a, b);
return 0;
}
题目4:编写一个程序,运行时输出
**************************
Hello World!
**************************
这个程序是一些常见的国外C教材中作为第一个程序例子介绍的,一般称为Hello程序。
【解决代码】
#include <stdio.h>
int main()
{
printf("**************************\n");
printf(" Hello World!\n");
printf("**************************\n");
return 0;
}
题目5:编写一个C程序,运行时输出以下图形:
*****
*****
*****
*****
【解决代码1】
#include <stdio.h>
int main()
{
printf("*****\n");
printf(" *****\n");
printf(" *****\n");
printf(" *****\n");
return 0;
}
【代码点评】
这道题是教材第一章课后习题的第5题,上述代码就是最标准最简单的办法。但是教材还是给出了另外两个解决思路,分别是循环语句和自定义函数,我在下面也分别给出了这两种解决思路所对应的代码,打印的结果是一样的。
【解决代码2】
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 4; ++i)
{
printf("*****\n");
printf(" ");
if(i >= 2)
printf(" ");
if (i >= 3)
printf(" ");
}
return 0;
}
【解决代码3】
#include <stdio.h>
void print()
{
printf("*****\n");
}
int main()
{
print();
printf(" ");
print();
printf(" ");
print();
printf(" ");
print();
return 0;
}
【错误修改】
在《C程序设计(第五版)学习辅导》中P5的题目中,第二行“ ****”应该是“ *****”,这个是题目打印时出现的问题,在《C程序设计(第五版)》中的题目是正确的。
题目6:编写一个C程序,输入a,b,c三个值,输出其中最大者。
【解决代码1】
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
if (a > b && a > c)
printf("这三个数最大者为%d", a);
else if (b > a && b > c)
printf("这三个数最大者为%d", b);
else
printf("这三个数最大者为%d", c);
return 0;
}
【代码点评】
这道题是教材第一章课后习题的第6题,上述代码并不是教材给出的标准答案,但是是编者认为最容易理解并且比较好想到的解决办法,下面也给出教材上的标答,其思路为先假定第一个输入的值为最大者,如果输入的第二个值大于第一个值,就将第二个值赋值为最大者,再将输入的第三个值与其比较,如果大于第二个值,就再次更新最大者为第三个值,最后输出最大者。
【解决代码2】
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
int max = 0;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
max = a;
if (max < b)
max = b;
if (max < c)
max = c;
printf("这三个数的最大者为:%d", max);
return 0;
}