华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁
printf(\}
【测试】若输入676879571,应输出 211.92.88.40。运行结果如下,表明程序正确。
1.3 实验体会
在做改错题时,先浏览一遍,找出明显的错误,然后将初步修改后的代码输入编译器并编译,再根据编译器的警告与错误提示修改程序至完全正确,这个过程很需要细心和耐心,这个过程能够很好的帮助我再今后不犯类似错误。
源程序修改与替换题锻炼我们举一反三的能力,我们在平时写程序时就应该思考对于一个问题有没有多钟解决方案,不使用中间变量交换两个整数是很常见的问题,我利用一个数异或自身等于0,0异或任意位保留原位的原理来交换。
程序设计题提高了我们对所学知识的熟练度和理解程度,只有实践才能学会C语言,在亲手编写代码的过程中发现问题,理解概念。
11
华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁
2流程控制实验
2.1实验目的
(1)掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
(2)熟练运用for、while、do-while语句来编写程序。 (3)练习转移语句和标号语句的使用。 (4)使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。
2.2实验内容及要求
2.2.1. 源程序改错
下面是计算s=n!的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子源程序进行调试修改,使之能够正确完成指定任务,例如,8!=40320。
程序代码:
#include
int i,n,s=1;
printf(\ scanf(\ for(i=1;i<=n;i++) s=s*i;
12
华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁
printf(\ return 0; }
【分析及改正】本程序共存在3处错误,分析如下: (1)int s=1;
错误原因:在计算阶乘的时候,由于阶乘值会上升很快,所以不建议使用int类型,可以改为long或者double型。
改正:改为long型变量。 (2)scanf(“%d”,n);
错误原因:scanf函数获取输入值时,引用的是一个变量地址,而不是变量本身。
改正:scanf(“%d”,&n); (3)} return 0;
错误原因:return返回值应该在main函数内部 改正:return 0;} 2.2.2 源程序修改替换
(1)修改上述计算s=n!的源程序,要求分别用while和do-while语句替换for语句。
(2)修改上述计算s=n!的源程序,要求输入改为“整数S”,输出改为“满足n! >=s的最小整数n”。例如,输入整数40310,输出结果为n=8.
【分析】(1)相同循环内容利用不同循环结构实现,需要注意不同语句的
格式及根据循环方式对循环体做些许变动。流程图如下:
while型 do-while型
13
华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁
(2)同样计算n!并将n!赋值给不是s的值(比如说m),然后令m和s比较大小,找到符合条件的第一个m值,并返回n值。流程图如下:
【程序】(1)while型 #include
int i=1,n,s=1;
printf(\ scanf(\ while(i<=n){ s=s*i; i++;}
printf(\ return 0; }
do-while型
#include
int i=1,n,s=1;
printf(\ scanf(\ do{
s=s*i; i++;
14
华中科技大学 C语言实验与课程设计实验报告 CS1408赵晓雁
}
while(i<=n);
printf(\ return 0; } (2)
#include
int i,n=0,s,m=1;
printf(\ scanf(\ for(i=1;;i++){ m=m*i; n++;
if(m>=s){
printf(\ break; } }
return 0; }
【测试】(1)如果输入8,应该输出:40320,程序运行结果如下,程序正确。
(2)如果输入40310,应该输出:8,程序运行结果如下,程序正确。
2.2.3 程序设计
编写并上机调试运行能实现下列功能的程序: (1)假设工资税金按以下方法计算:x<1000元,不收取税金;1000<=x<2000,收取5%的 税金;2000<=x<3000,收取10%的税金;3000<=x<4000,收取15%的税金;4000<=x<5000,收取20%税金;x>5000,收取25%的税金。编写一个程序,输入工资金额,输出应收取税金额度,要求分别用if语句呵switch语句来实现。
(2)编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以
15