实验五 循环结构程序设计 (二)
实验目的
1.熟练掌握循环程序设计,包括嵌套循环
2.熟练掌握使用break、continue语句在循环程序设计中的实现 3.继续掌握VC++的程序调试方法 实验内容
1.调试示例,输入正整数的个数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
源程序(有错误) #include
printf(“输入正整数的个数n:”); scanf(“%d”,&n);
printf(“输入%d个正整数\\n”); for(j=0;j
printf(“%d是一个素数!\\n”,m); else
printf(“%d不是一个素数!\\n”,m); } }
运行结果(改正后程序的运行结果) 输入正整数的个数:2 输入2个正整数 11
11是一个素数 15
15不是一个素数
按照前面学过的程序调试的方法,设置断点调试程序,找出程序的逻辑错误,得到正确的运行结果。
2.编程,输出101-115之间不能被3整除的数,每行输出5个。要求使用continue语句。
输入输出救命:
101 103 104 106 107 109 110 112 113 115
思考:输入一批整数(Ctrl+Z),输出其中不能被3整除的奇数。
3.编程,输入一个正整数,再输入n个整数,输出其中的最大值,输入的每个数都在100-200之间,如果某个输入数不在100-200之间,则只处理在该数这前输入的数据。
输入示例(共运行2次) 第一次运行: 输入n:5
输入5个整数:100 155 187 192 168 最大值是192 第二次运行:
21
输入n:6
输入6个整数:100 155 187 292 168 199 最大值是187
思考:如果输入n个浮点数(或字符),怎样找出其中的最大和最小的数(或字符)
4.编程,猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上想再吃的时候,见只剩下一个桃子了。求第1天共摘了多少桃子?
输入输出示例:
第1天共摘了1534个桃子!
思考:把题目中的第10天改为第n天,多吃了一个桃子,改为多吃了2个桃子,如何编程。
5.在100-1500内找出所有的亲密数对,并输出每对亲密数对。 输入输出示例: (220,284)(284,220)(1184,1210)(1210,1184) 提示:若a和b为1对亲密数,则a的因子和等于b,b的因子和等于a,并且a不等于b。
10. 编程,找出200以内的所有完数,并输出其因子。一个数如恰好等于它的因子之和,
这个数称为完数,如6=1+2+3,其中1、2、3为因子,6为因子和。 输入输出示例: 1=1 6=1+2+3
28=1+2+4+7+14
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
22
实验六 数组
实验目的
1.熟练掌握数组的定义和初始化 2.熟练掌握使用数组元素的引用 3.继续掌握排序算法 实验内容
1.调试,输入一个正整数n(0
Int I,j,n,x,a[n];
Printf(“输入数据的个数n:”); Scanf(“%d”,&n);
Printf(“输入%d个整数:”,n); For(i=0;i Scanf(“%d”,&a[i]); Printf(“输入要插入的整数:”); Scanf(“%d”,&x); For(i=0;i { if(x>a[i]) continue; J=n-1; While(j>=i) { /*调试时设置断点*/ A[j]=a[j+1]; J++; } /*调试时设置断点*/ A[i]=x; Break; } If(i==n) a[n]=x; For(i=0;i 运行结果(改正后程序的运行结果) 输入数据的个数n:5 输入5个整数:1 2 4 5 7 输入要插入的整数:3 1 2 3 4 5 7 提示:先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据;如果插入点在最后,则直接插入(说明插入的数排在该组数据中的最后)。 用前面学过的调试方法,调试本程序,使得程序能够得到正确的运行结果。 2.编程,输入1个正整数n(1 输入输出示例: 输入整数个数:5 输入5个整数:5 2 1 10 9 1 2 5 9 10 提示:注意下标的变化。 23 思考:如果输入的是实数,要求将绝对值最小的数与第1个数交换,绝对值最大的数与最后1个数交换,然后输出交换后的n个数,如何编程。 3.编程,输入1个正整数n(1 输入输出示例: 输入整数个数:10 输入10个整数:-11 2 8 5 -3 -16 9 7 6 10 排序后:2 -3 5 6 7 8 9 10 -11 -16 4.编程,平面上有n个点,求所有各点之间的最长距离。要求定义和调用函数计算距离。 输入输出示例: 输入点数:5 输入5个点的坐标: 1 2.5 3.2 3.7 6.5 2.3 5.1 0.6 3.6 1.2 最长距离是5.50 思考:如何求最短距离及所有距离之和。 5.编程,输入一个n行m列(n<=4,m<=4)的数组,先以n行m列的格式输出该数组,然后找出该数组中值最小的元素,输出该元素及其行下标和列下标。 输入输出示例: 输入数组行和列数n、m:2 3 输入2行3列的数组元素: 12 -7 15 -18 9 11 12.00 -7.00 15.00 -18.00 9.00 11.00 a[1][0]=-18.00 思考: 1)如果不从键盘输入数组元素,而是用初始化的方式给数组赋值,运行结果一样吗? 2)如何修改程序,求绝对值最大的元素? 3)将数组a的每一行均除以该行的主对角元素,然后最大值,试编制程序。 实验报告要求 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 24 实验七 字符串 实验目的 1.熟练掌握字条数组的定义、初始化和元素引用 2.熟练掌握字符串的存储和操作 3.继续使用字符输入输出函数getchar()和putchar() 实验内容 1.调试,输入一个以回车结束的字符串(少于80个字符),将它的内容颠倒过来再输出。如”ABCD”颠倒为”DCBA”。 源程序(有错误的程序) #include printf(“input a string:”); i=0; while((str[i]=getchar())!=?\\n?) i++; str[i]=?\\0?; k=i-1; for(i=0;i { /*调试时设置断点*/ tmp=str[i]; str[i]=str[k]; str[k]=tmp; k++; } /*调试时设置断点*/ for(i=0;str[i]!=?\\0?;i++) putchar(str[i]); } 运行结果(改正后程序的运行结果) welcome to you! !uoy ot emoclew 2.编程,输入一个以回车结束的字符串(少于80个字符),先输出其中的小写英文字母、空格和感叹号!,然后统计出字符的个数。 输入输出示例: thow hare young! how are you! n=12 3.编程,输入一个正整数n(n<=5),再输入n行字符(每个字符串少于80个字符),分别统计其中的大写英文字母、小写英字母、数字、空格和其他字符的个数。 输入输出示例: 输入字符串行数:2 Beijing 2008 Games of the 29th Olympiad! 8th International Symposium on Safety Science. 大写字母数:7 小定字母数:56 数字字符数:7 空格字符数:10 其他字符数:2 25 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言实验指导(5)在线全文阅读。
相关推荐: