
《c语言程序设计》实验.设计.习题.答案. 顺序结构与逻辑运算.doc
12页实验 2 顺序结构与逻辑运算学号: 姓名: 实验日期:1. 实验目的和要求(1)掌握数据输入/输出函数的使用,能正确使用各种格式转换符2)熟悉顺序结构程序中语句的执行过程,并学会基本调试程序方法3)能够正确使用逻辑运算符和逻辑表达式4)学会运用逻辑表达式或关系表达式等表示条件5)熟练掌握 if 语句和 switch 语句,掌握条件表达式构成的选择结构6)熟练掌握跟踪调试程序,针对具体数据组织输入测试数据,观察程序运行能否得到预期的输出结果7)学会编写简单程序2. 实验内容:实验指导书中的实验三和实验四3. 实验步骤及结果实验三部分:3-1-1 该程序的功能是:输出 m=345,n=2.560000,并计算输出(n*100)程序运行结果画面如下:#includemain(){int m=345;float n=2.56;printf("m=%d,n=%f,n*100=%f\n",m,n,n*100);}3-1-2 该程序的功能是:输入三个数赋给 a,b,c,输出这三个数,并计算输出 s=a*b 和v=a*b*c 的值程序运行结果画面如下:#includemain(){double a,b,c,s,v;scanf("%lf,%lf,%lf",v=a*b*c;printf("%lf,%lf,%lf\n",a,b,c);printf("s=%lf\n",s);printf("v=%lf\n",v);}3-2-1 该程序的功能是:输入两个整数 m,n,输出 m,n 并使其输出时每个数输出宽度为6,两数之间逗号间隔;并输出 x,y 并使其每个数输出宽度为 7,小数位数为 2。
程序运行结果画面如下:#includemain(){int m,n;float x=3.5,y=6.2;scanf("%d,%d",printf("m=%6d,n=%6d\n",m,n);printf("x=%7.2f,y=%7.2f\n",x,y);}3-2-2 该程序的功能是:赋给 a,b,m,n,p,q 数值,并输出 a,b,m,n 的整型数值和 p,q 的浮点型数值程序运行结果画面如下:#includemain(){int a,b;long m,n;float p,q;scanf("%d,%d\n",scanf("%f,%f\n",scanf("%ld\n%ld",printf("a=%d,b=%d\n m=%ld,n=%ld\n",a,b,m,n);printf("p=%f,q=%f\n",p,q);}3-3 注意:这道程序我们不按书中提示进行,而在 VC 环境下进行调试语法错误和逻辑错误的区别何在?语法错误有错误提示,程序不可运行;逻辑错误无错误提示,程序可运行,但得不到你想求得的答案如何启动单步调试?在菜单栏中选择“组建” ,然后在下拉菜单中选择“开始调试” ,然后选择“Step Into” 。
要使程序运行到“ss=(k…”这一行暂停下来,该如何操作? 点到“ss=(k…” 这一行,按 F9,设置一个断点怎样终止调试状态(程序复位)?在菜单栏中选择“调试” ,然后选择“Stop Debugging” 单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第 2 种,不跟踪到自定义函数内部):第一种选择“Step Into”,跟踪到自定义函数内部;第 2 种选择“Step over”,不跟踪到自定义函数内部在本题中,假设要在运行第 2 条语句(即 scanf 语句后) ,要马上观察 i,j,k,ss,m,n的变量的值,操作方法:在菜单栏中选择“组建” ,然后在下拉菜单中选择“开始调试” ,然后选择“Step Into”,在 watch 窗口的名称下的框中输入要马上观察的“i,j,k,ss,m,n” ,请把观察这些变量时的画面粘贴到下面:#includemain(){int i,j,k,ss,m=1,n=1;scanf("%d%d",m+=i++;n*=--j;ss=(k=m+2,n-5,k+n);printf("%d",ss);}通过这道题单步调试,你对 i++和++i 及 i—和—i 应该有了更直观的理解,他们的区别在于:i++和 i—是在使用变量后加(减)一,++i 和—i 是在使用变量前加(减)一。
3-4 请回答书中问题问题(1)都可以问题(2)用 printf 函数,c1 、c2 输出的格式符用%d 问题(3)不可以程序运行结果画面如下:#includemain(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf("\n");printf("%c%c\n",c1,c2);}3-5 我使用的算法:运用求商的整数部分和求余数进行分钟的转换运行结果画面:#includemain(){int x,h,m;printf("输入需转换的分钟数:");scanf("%d",h=x/60;m=x%60;printf("%d 小时%d 分钟",h,m);}3-7 我使用的算法:进行千分位转换,四舍五入运行结果画面:#includemain(){double x;scanf("%lf",printf("%7.2f\n",x);}实验四部分4-1-a 该程序的功能是:输入两个数:a 、b,判断 a*a+b*b 的值,若 a*a+b*b 的值等于 3或 1,则 y=a+b;若 a*a+b*b 的值等于 0,则 y=b-a;若 a*a+b*b 的值等于其他值,则输出“eerror”;最后输出 y 的值。
运行结果画面:#includemain(){int a,b,y;scanf("%d%d",switch(a*a+b*b){case 3:case 1:y=a+b;break;case 0:y=b-a;break;default :printf("error\n");}printf("%d",y);}4-1-b 该程序的功能是:输入两个数:a、b,判断 a 的值,若 a 的值等于 10,则 y=a-b;若a 的值等于 11,则 y= a*b;若 a 的值等于其他值,则 y=a+b;最后计算输出 y 的值运行结果画面:#includemain(){int a,b,y;scanf("%d%d",switch(a){default :y=a+b;break;case 10:y=a-b;break;case 11:y=a*b;break;}printf("%d",y);}4-1-c 该程序的功能是:输入两个数:a、b,判断 a+b 的值,若 a+b 的值等于 10,则y=a+b;若 a+b 的值等于 11,则 y= a-b;若 a+b 的值等于其他值,则输出“eerror ”;最后计算输出 y 的值。
运行结果画面:#includemain(){int a,b,y;scanf("%d%d",switch(a+b){case 10:y=a+b;break;case 11:y=a-b;break;default :printf("error\n");break;}printf("%d",y);}4-2-1 运行结果画面:#includemain(){int x,y;scanf("%d",if(x>-5&&x0&&xmain(){int x,y;scanf("%d",if(x>-5&&x0&&x0?a:-a;运行结果画面:#includemain(){int a,M;scanf("%d",M=a>0?a:-a;printf("abs(a)=%d\n",M);}4-4 运行结果画面:#includemain(){int c,t,m;printf("input the number of coat and trousers your want buy:\n");scanf("%d%d",if(t==c){if(c>=50)m=c*80;else m=c*90;}else{if(c>t){if(t>=50)m=t*80+(c-t)*60;else m=c*80+(t-c)*45;}else {if(c>=50)m=t*90+(c-t)*60;else m=c*90+(t-c)*45;}}printf("%d\n",m);}4-5 我使用的算法:输入三边,然后判断是否构成三角形,能构成三角形后再判断三角形类型。
运行结果画面:#includemain(){float x,y,z;int i;printf("输入三条边长:");scanf("%f%f%f",if(x+y>z&&x+z>y&&y+z>x&&x>0&&y>0&&z>0){i=1;}if(i==1){if(x==y&&y==z)printf("此三角形为等边三角形\n");else if(x==y||y==z)printf("此三角形为等腰三角形\n");else printf("此三角形为不等边三角形\n");}if(i==0)printf("这三边不构成三角形\n");}4-5 我使用的算法:用求余的方法,若赋给 x 的值除以 5 和除以 7 的余数都为 0,则输出yes,否则输出 no运行结果画面:#includemain(){int x;scanf("%d",if(x%5==0&&x%7==0)printf("yes\n");elseprintf("no\n");}4 实验小结通过实验我的 C 语言能力的到了进一步的提高:(1) 学会了基本的程序调试;(2) 掌握了 IF 和 SWITCH 语句的应用;(3) 掌握数据输入/输出函数的使用,能正确使用各种格式转换符(4) 知道了逻辑运算符、逻辑表达式、关系表达式的运用(5) 可以进行简单的程序的编写。












