C语言程序设计
实验报告书
专 业: 班 级:
姓 名: 学 号:
实验地点: 任课教师:
实验题目:
实验环境: Visual C++6.0
一、 实验目的
1.了解while语句的基本结构,学会使用while循环语句;
2.了解do…while语句的基本结构,学会使用do…while循环语句;
3.了解while和do…while语句的区别;
4.学会用break语句跳出整个循环;
5.学会用continue语句提前结束本次循环;
6.了解break语句和continue语句的区别;
7.学会在循环体中使用多个语句,进一步熟悉循环语句的基本结构;
8.学会使用for循环语句,了解for循环语句的基本结构;
9.学会使用for循环语句,了解for循环语句的基本结构;
10.学会使用嵌套的for循环语句,用break跳出循环;
11.学会综合使用循环语句来完成一个程序;
12.了解一维数组的定义方法,以及引用一维数组;
13.学会使用一维数组,同时学会使用循环语句;
14.学会用数组来解决数的排序问题;
15.学会定义数组,并且使用for循环语句来完成程序;
16.学会用“打擂台算法”以及数组来解决问题;
17.学会定义字符数组,并用“初始化列表”对其进行赋值,然后用循环结构实现程序;
18.用嵌套for循环语句输出字符数组中的所有字符;
19.学会应用一维的和二维的字符数组;
20.学会应用一维的和二维的字符数组;
二、 实验内容
1.用while语句,求1+2+3+…+100的和;
2.用do…while语句,求1+2+3+…+100的和;
3.while和do…while循环比较;
4.在全系1000名学生中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款人数,以及平均每人捐款数目;
5.要求输出100至200之间所有不能被3整除的数;
6.输出一个4*5的矩阵;
7.用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到发现某一项的绝对值小于10^6为止;
8.求Fibonacci数列的前40个数。这个数列有如下特点:第1,2两个数为1,1.从第三个数开始,该数是前面两个数之和。
9.输入一个大于3的整数n,判断它是否为素数;
10.求100至200之间所有的素数;
11.译密码。为了使电文保密,往往按照一定规律将其转换成密码,收报人再按约定的规律将其翻译回原文;
12.对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出;
13.用数组来处理求Fibonacci数列问题;
14.有10个地区的面积,要求对它们阿布由小到大的顺序排列;
15.将一个二维数组行和列的元素互换,存到另一个二维数组中;
16.有一个3*4的矩阵,要求编写程序求出其中值最大的那个元素的值,以及其所在的行号和列号;
17.先定义一个字符数组,并用“初始化列表”对其赋以初值。然后用循环逐个输出此字符数组中的字符;
18.输出一个菱形图;
19.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开;
20.有3个字符串,要求找出其中最大者。
三、 实验结果
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
四、 实验中存在的问题及解决办法
1.第一个程序是while语句的简单应用,比较简单,没有什么遇到问题;
2.一开始把while(i<=100)这句话写到do的循环体里面了,编译的时候遇到了错误,后来看了书上循环语句的结构,把错误改正过来了;
3.这个程序在写的时候没有什么遇到困难,分析了一下,知道了while和do…while的区别:do…while执行循环体的时候,是无条件执行,而while执行的时候是先看条件,所以当i的值超出10的时候,两个程序的结果会不一样;
4.刚开始写的时候没有定义一个SUM=100000,所以不能正常的运行,我是参考了书上的例子才把程序纠正过来的;
5.这个程序中唯一的问题就是在printf("%d ",n)的%d之后忘记空格,所以一开始运行出来的结果数字都是连在一起的;我在运行之后发现了这个问题,所以自己能够改正过来;
6.一开始写if(n%5 == 0)这句话的时候,等于符号只写了一个,由于一个等号在C程序中不代表等号,所以不能正常运行,后来自己检查了一遍发现了问题;
7.一开始头文件中忘记引用math.h,所以当引用绝对值的时候出现了错误,后来我通过看书,改正了错误;
8.这个程序在编写的时候没有遇到什么问题;
9.这个程序一开始写的时候,不小心在for语句的后面加了一个分号,然后导致编译的时候,出现错误:break是非法的,我在网上百度了一下,百度知道里面的解释是:break只能用在循环语句中,而由于for后面有分号,表示循环语句结束,所以break的使用是非法的,从这个程序我牢记了break使用最基本的规则:即必须用在循环语句内部;
10.这个程序一开始写的时候,因为嵌套语句比较多,所以一开始有点混乱,后来自己慢慢理清了思路,把嵌套语句理顺了,也就能够运行了;
11.这个程序是对循环结构的综合运用,在写的时候要注意&&的优先级高于||,所以在用if结构进行嵌套的时候要想清楚;
12.这个程序让我基本能够掌握定义一维的数组的方法,没有遇到什么困难;
13.这个程序让我了解了怎么让数字按照每行几个来输出,即使用if(i%5==0)
printf("\n")这个语句,整个程序没有遇到什么困难;
14.一开始在scanf("%d",&a[i])语句中忘记了&符号,scanf函数的格式也就错了,后来是自己检查出来的问题,改正了过来;
15.一开始把b[j][i]=a[i][j]写成了b[i][j]=a[i][j],导致运行出来第二个矩阵怎么都不正确,后来经过调试发现,错误出现在这一步中,仔细一看,i和j写反了,改正过来后程序能够正常运行;
16.一开始我忘记定义row和colum的初始值了,所以程序出现错误,后来是我看了书才发现了错误就,改正了过来;
17.在定义字符数组的时候,忘记单词与单词之间的空格了,在单引号里面没有输入空格,所以编译的时候,出现了错误:字符的定义不清楚,后来经过调试发现错误的所在处,改正了以后程序就可以运行了;
18.这个程序在写的时候没有遇到什么大的困难,就是一开始不清楚“*”具体的位置,不知道到底隔几个空格才是*号,后来看书以后知道了;
19.这个程序在写的时候吸取了前面几个程序所遇到的问题,所以很顺利;
20.这个程序不太懂是什么意思,所以是边看书边写的程序,大部分能够理解;
8
展开阅读全文