printf(“%d”,a=a+b,b=b+a);
人工分析结果 对比以上两程序,结果不同的原因在于输出列表原程序为逗号表达式,所以输出b=b+a
的值,而修改后的仅有一个格式控制符,只能对应输出第一个表达式a=a+b。 6.若有以下程序段,分析c2的值:
int c1=2,c2; c2=1.0/c1*c1; 人工分析结果 若将程序段改为:
c2=1/c1*c1;
人工分析结果
分析c2所得结果,其中的关键在于除号两端如果都是整型数据,则所得结果截断取整 7.现有程序如下:
main()
{ int a=7, b=10;
a=a+b; b=a-b; a=a-b;
printf(“%d,%d\\n”, a, b ); }
程序运行的功能是:交换a、b两数的值 注:可修改a、b两数的值仔细观察。 8. 现有程序如下,分析填空:
main() { int a=0; a+=(a=8); printf(\} 9. 现有程序如下,分析填空: main() { int a=2,b=5; int m=3,n;
实验运行结果 3 实验运行结果 1 实验运行结果 0 人工分析结果 实验运行结果 16 人工分析结果 实验运行结果 9 5
double c=2.1,d=4.5; n=a/m+b*c-d/m; printf(“%d”,n); } 10.现有程序如下,分析填空: Main() { int x=1,y=2; printf(“%d %d\\n”,++x,y++); } 人工分析结果 实验运行结果 2 2 11.现有程序如下,分析填空: main() { int x,y,z=0; x=y=1; z+=x+=y; x=z++; y=++x; z=x+++y; printf(“x=%d,y=%d,z=%d”,x,y,z); } 人工分析结果 实验运行结果 x=4,y=3,z=6 12.思考题:改错题(以下程序有多处错误,上机调试。将正确的程序记录在下方。要求不能删减已有内容。) 源程序 #include
1.4 实验心得
6
实验2 顺序结构程序设计与调试
班 级 专 业 所用软件 学 号 姓 名 计算机号 实 验 室 成绩评定 教师签名 2.1 实验目的
1.熟悉C语言的表达式语句、空语句和复合语句。 2.熟悉函数调用语句,尤其是各输入输出函数的调用语句。 3.熟悉顺序结构程序中语句的执行过程。 4.熟悉程序的跟踪调试和变量值的监视。 5.能设计简单的顺序结构程序。
2.2 实验预习
1.熟悉下列函数:putchar、getchar、printf、scanf 2.了解顺序结构程序的执行过程。
3.了解程序的跟踪调试和变量值的监视并能够熟练操作。
单步跟踪调试(逐条语句跟踪调试):
(1)可按功能键F7进行,要监视某变量的值时,就按Ctrl+F7键,然后输入相应的
变量名,就可以在监视消息窗口中查看到该变量的值。
(2)也可逐段运行程序,即每次运行若干条语句。首先利用Ctrl+F8键在各行光标
处设置若干断点,然后按Ctrl+F9键从程序的第一条语句运行到设置的第一个断 点,再按Ctrl+F9键从设置的第一个断点运行到设置的第二个断点。 4.了解顺序结构程序的一般构成。
2.3 实验任务
1.若有程序 main() { int i,j;
scanf(\ printf(\}
要求给i赋5,给j赋10,则应该从键盘输入 i=5,j=10 2.华氏温度,要求输出摄氏温度,公式为:C=(f?32)。要求输出结果保留到小数点后两位。已知程序段中有三处错误,由注释语句/**********found**********/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。
59 7
#include
#include
#include”stdio.h” void main() {int n,x1,x2,x3,y;
printf(“please input number n”); scanf(“=”,&n); x1=n/100;
(s*(s-a)*(s-b) *(s-c)) S=(a+b+c)/2 #include