当前位置:首页 > c语言实验指导书
—
9)指出以下程序的错误并改正,并上机把程序调通。 #include
四.思考题
1.编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:
⑴ 变量c1,c2应定义为字符型或整型?还是二者皆可?
⑵ 要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数? ⑶ 整型变量和字符型变量是否在任何情况下都可以互相代替?
2.设圆半径r=2,圆柱高h=3,求圆周长,圆柱底面积,圆柱体积。用scanf输入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数字。 3.将5位整数按逆序输出,并按位求和。
欢迎下载
—
实验二 程序流程控制(4学时)
一.实验类型
验证和设计
二.实验目的
1. 掌握嵌套if-else语句与if的比较。 2. 掌握for语句与while语句的比较。
3. 掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数型循环结构的次数。
4. 熟悉用while语句,do-while语句和for语句实现循环的方法。
5. 掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。 6. 掌握选择结构与循环结构的嵌套。
7. 掌握用break语句和continue语句改变循环状态的方法 。
三.实验内容和要求
1. 已知三个数a,b,c,找出最大值放在max中。 #include
{ int a,b,c,max;
printf(\请输入3个整数(中间用逗号分开):\ scanf(\ if(a>=b) max=a; else max=b; if(c>max) max=c;
printf(\}
若输入下列数据,分析程序的执行顺序并写出输出结果。 序号 1 2 3 4 5 6 输入的3个整数a、b、c 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 输出max 2. 输入某学生的成绩,经处理后给出学生的等级,等级如下: 90分以上(包括90):A 80~90分(包括80):B 70~80分(包括70):C 60~70分(包括60):D 60分以下:E
方法一:用嵌套的if语句 #include \main()
{ int score; char grade;
欢迎下载
—
printf(\请输入学生成绩:\ scanf(\
if(score>100||score<0) printf(\输入成绩错误!\\n\ else{ if(score>=90) grade='A';
else if(score>=80) grade='B';
else if(score>=70) grade='C';
else if(score>=60) grade='D';
else grade='E';
printf(\成绩等级是%c\\n\ } }
输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中100分,60分,0分以及小于0和大于100的数据。如果稍不注意就会出现小的程序缺陷。
方法二:用switch语句
分析:switch语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外)、B、C、D类的成绩的共同特点是十位数相同,此外都是E类。则由此可把score除十取整,化为相应的常数。
请同学们自己根据分析写出完整的程序段,并编译、运行、查看结果。 3. 程序分析
下面是一个计算e的近似值(使误差小于给定的δ)的程序。 #include
{ double e=1.0,x=1.0,y,delta; int i=1;
printf(\请输入给定的误差:\ scanf(\ y=1/x; while(y>=delta) { e=e+y;
i++; x=x*i; y=1/x; }
printf(\计算结果是:.10lf\\n\}
⑴ 阅读上面的程序,写出程序所依据的计算公式。
⑵ 当输入的delta是什么值时,能分别使程序按下面的要求运行: ⅰ 不进入循环; ⅱ 只循环一次;
欢迎下载
—
ⅲ 只循环两次;
ⅳ 进入死循环(程序将永远循环下去)。
ⅴ 为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?
⑶ 原程序中while语句中的y>=delta,分别换成y>delta,y=delta,y ⑷ 把程序中的while结构改写成do-while结构,再运行程序,说明两种结构的区别。 ⑸ 将程序改成用for循环结构,计算前50项,并运行程序,写出运行结果。 4. 有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。 #include float a=2,b=1,s=0; for(n=1;n<=10;n++) { s=s+a/b; t=a; a=a+b; b=t; } printf(\} 要求:跟踪执行,观察s、t、a、b的变化。 方法:使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。 停止调试 运行的程序 单步运行此处 监视窗口 欢迎下载
共分享92篇相关文档