39
C语言程序的调试、运行步骤
修改程序,观察语法错误、逻辑错误及改
正方法。
?语法错误:可以删除一个分号,使编
开始
编辑
源程序
.c / .cpp
编译
目标程序
.obj
连接
可执行程序
.exe
运行
结果
译出现错误提示,改正之,再编译。
类比写文章有错别字。
?逻 辑 错 误 : 将sum=sum+i改 为
sum=sum-i,编译、连接、运行,发现
语法
1.3 习题参考答案
连接
错误
运行
错误
运行结果不符合题目要求。找出错误
(调试),改正之,再编译、连接、运
行,看结果。类比写文章词不达意。
1.对 C语言来说,下列标识符中哪些是合法的,哪些是不合法的?
total_debugLarge&all,Conter1,begin_
解答:Large&Tall不合法,其余都合法。
2.改写本章 1.4 节中的流程图 1.2,求 1~100 中能被 6 整除的所有整数的和。
解答:
sum = 0
i = 1
假
i <= 100?
真
真
sum = sum + i
i能被6整除?
i = i + 1
打印 sum
假
图 1.1“求 1~100 中能被 6 整除的所有整数的和”的流程图
11
3.改写本章 1.4 节中的程序,求 1~100 中能被 6 整除的所有整数的和,并在编程环境中验证
该程序的运行结果。
解答:
#include
intmain(vid)
{
inti,sum=0;
for(i=1;i<=100i++)
if(i%6==0)sum=sum+i;
printf"%d",sum);
return0;
}
运行结果:816
4.对于给定的整数 n(n>1),请设计一个流程图判别 n 是否为一个素数(只能被 1 和自己整
除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构与循环结构。
解答:在流程图中,分支结构和循环结构如图 1.2 所示,自上而下的 2 个实线框和 2 个虚线组
成了顺序结构。
输入n
i = 2
假
i<=n/2?
真
真
真
打印n是素数
n能被i整除?
i = i + 1
i>n/2?
假
假
打印n不是素数
循环结构
分支结构
#include
int main(void )
{
printf(" A\n");
printf("A A\n");
printf(" A\n");
return 0;
}
14
62
函数的概念
C语言中有两种类型函数
标准库函数
自定义函数
函数可以做到一次定义、多次调用
使用自定义函数的程序框架
double fact(int n); /* 声明自定义函数,以分号结束 */
int main(void)
{ ……
result = fact(i); /* 调用自定义函数fact(i)计算i! */
……
}
/* 定义求 n! 的函数 */
简单总结本节内容。
使学生了解自定义函数编程结构,能够模
仿编程即可。
2.3 练习与习题参考答案
2.3.1 练习参考答案
2-1 编写程序,在屏幕上显示一个短句“Programming in C is fun!”。
解答:
#include
int main(void)
{
printf("Programming in C is fun!\n");
return 0;
}
2-2 下列语句的运行结果是什么?与例 2-2 的运行结果有何不同?为什么?
printf("Programming is fun. And Programming in C is even more fun!\n");
解答:
运行结果:Programming is fun. And Programming in C is even more fun!
例 2-2 的运行结果分 2 行显示。原因在于,例 2-2 中在每条输出语句的结尾都采用了‘\n’
换行。
2-3编写程序,在屏幕上显示如下图案。
****
***
**
*
解答:
int main(void)
{
printf("* * * *\n * * *\n * *\n *\n");
return 0;
}
18
2-4 编写程序,求华氏温度 150°F 对应的摄氏温度(计算公式同例 2-3)。
解答:
#include
int main(void)
{
int celsius, f