C语言程序设计实训教程答案.wps
《C语言程序设计实训教程答案.wps》由会员分享,可在线阅读,更多相关《C语言程序设计实训教程答案.wps(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、仅供参考,理论上都能运行出结果。2.5 循环结构程序设计循环结构程序设计实验一实验一 循环结构程序设计循环结构程序设计1、求、求 1!+2!+10!。!。#includevoid main()long i,n=1,s=0;for(i=1;i=10;i+)n*=i;s+=n;printf(1!+2!+10!=%dn,s);2、打印一下图案(用循环实现)、打印一下图案(用循环实现)*#includevoid main()int i,j,k;for(i=1;i5;i+)for(j=1;j5-i;j+)printf();for(k=1;k0;i-)for(j=1;j5-i;j+)printf();fo
2、r(k=1;k=2*i-1;k+)printf(*);printf(n);3、猴子吃桃。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第、猴子吃桃。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。#includevoid main()int i,n=1;for
3、(i=9;i0;i-)n=(n+1)*2;printf(%dn,n);4、打印九九乘法表。、打印九九乘法表。#includevoid main()int i,j;for(i=1;i10;i+)for(j=1;j=i;j+)printf(%d*%d=%d,i,j,i*j);printf(n);5、输出、输出 10100 之间的全部素数。之间的全部素数。#includevoid main()int i,n;for(n=10;n101;n+)for(i=2;i=n)printf(t%d,n);printf(n);实验二实验二 综合运用综合运用 3 种基本结构进行程序设计种基本结构进行程序设计1、百马
4、百担。、百马百担。100 匹马,驮匹马,驮 100 担,大马担,大马 3 担,中马担,中马 2 担,担,2 个小马个小马1 担,问大、中、小马各多少?担,问大、中、小马各多少?#include void main()int x,y,z;for(x=0;x34;x+)for(y=0;y51;y+)z=100-(x+y);if(z%2=0&x*3+y*2+z/2=100)printf(x=%d,y=%d,z=%dn,x,y,z);2、输入一行字符,分别统计其中英文字母、空格、数字和其他字符个数。、输入一行字符,分别统计其中英文字母、空格、数字和其他字符个数。#include void main()
5、int i,zm=0,kg=0,sz=0,qt=0;char c100=;printf(字符串:);gets(c);for(i=0;ci!=0;i+)if(ci=a&ci=A&ci=0&ci=9)sz+;else qt+;printf(zm=%d kg=%d sz=%d qt=%dn,zm,kg,sz,qt);3、打印输出“水仙花数”。“水仙花数”是指一个、打印输出“水仙花数”。“水仙花数”是指一个 3 位数,其各位数字的立方和等于该数本身,如位数,其各位数字的立方和等于该数本身,如 153 就是一个水仙花数。就是一个水仙花数。#include void main()int i,a,b,c;f
6、or(i=100;i1000;i+)a=i/100;b=(i-a*100)/10;c=i%10;if(a*a*a+b*b*b+c*c*c=i)printf(t%d,i);4、将一个正整数分解成每个质因数的乘积。例如:输入、将一个正整数分解成每个质因数的乘积。例如:输入 90,打印,打印90=2*3*3*5.#include void main()int i,n;printf(please input a number:);scanf(%d,&n);printf(%d=,n);for(i=2;i=n;i+)while(n!=i)if(n%i=0)printf(%d*,i);n=n/i;elseb
7、reak;printf(%d,n);5、利用循环语句编写程序以实现以下功能:对一个正整数,讲各位数字反序后的数组成一个整数输出。例如:输入、利用循环语句编写程序以实现以下功能:对一个正整数,讲各位数字反序后的数组成一个整数输出。例如:输入 12345,输出,输出 54321。(方法一)#includevoid main()int m,n;scanf(%d,&n);while(n!=0)m=n%10;n=n/10;printf(%d,m);(方法二)#include#includevoid main()int i,l;char a100;scanf(%s,a);l=strlen(a);for(i
8、=l-1;i=0;i-)printf(%c,ai);printf(n);6、一个素数加上、一个素数加上 1000 以后是以后是 37 的倍数,求满足这个条件的最小素数。的倍数,求满足这个条件的最小素数。#includevoid main()int i,n;for(n=2;n=1000;n+)for(i=2;in;i+)if(n%i=0)break;if(i=n)if(n+1000)%37=0)printf(%dn,n);break;7、找、找 1000 以内的所有“完数”。一个数如果恰好等于它的因子之和,这个数就称为“完数”,如以内的所有“完数”。一个数如果恰好等于它的因子之和,这个数就称为“
9、完数”,如 6 就是一个完数,因为就是一个完数,因为 6=1+2+3。#includevoid main()int i,j,s;for(i=3;i=1000;i+)s=0;for(j=1;ji;j+)if(i%j=0)s=s+j;if(i=s)printf(t%d,s);printf(n);2.6 数组数组实验一实验一 数组的定义及使用数组的定义及使用1、从键盘输入一个整数、从键盘输入一个整数 n(n=10)和)和 n 个整数,存入数组个整数,存入数组 a 中,先依次输出各个数组元素的值,然后对数组中,先依次输出各个数组元素的值,然后对数组 a 的所有元素值从小到大的顺序重新排列后,再依次输出
10、。的所有元素值从小到大的顺序重新排列后,再依次输出。#include void main()int a10,n,i,j,min,t;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in;i+)printf(%d,ai);printf(n);for(i=0;in;i+)min=i;for(j=i+1;jn;j+)if(ajamin)min=j;t=ai;ai=amin;amin=t;for(i=0;in;i+)printf(%d,ai);printf(n);2、编程并上机调试运行。、编程并上机调试运行。(1)将一个数组中的值逆序存储)将一个数组中
11、的值逆序存储,然后按顺序输出数组。如原来数组储存为然后按顺序输出数组。如原来数组储存为 1、2、3、4、5 的,按要求重新存为的,按要求重新存为 5、4、3、2、1.#include#includevoid main()int i,l;char a100;scanf(%s,a);l=strlen(a);for(i=l-1;i=0;i-)printf(%c,ai);printf(n);(2)打印出一下杨辉三角(要求打印)打印出一下杨辉三角(要求打印 8 行)。行)。#include void main()int i,j,k,a88=1,1,1;for(i=2;i8;i+)ai0=1;for(j=
12、1;j=i;j+)aij=ai-1j-1+ai-1j;for(i=0;i8;i+)for(k=0;k3*(8-i);k+)printf();for(j=0;j=i;j+)printf(%-6d,aij);printf(n);(3)求)求 4*4 方正阵两对角线元素之和及其转置矩阵。方正阵两对角线元素之和及其转置矩阵。#include void main()int a44,b44,i,j,s=0;for(i=0;i4;i+)for(j=0;j4;j+)scanf(%d,&aij);for(i=0;i4;i+)s+=aii+a3-ii;for(i=0;i4;i+)for(j=0;j4;j+)bji
13、=aij;printf(Array a:n);for(i=0;i4;i+)for(j=0;j4;j+)printf(%4d,aij);printf(n);printf(s=%dn,s);printf(Array b:n);for(i=0;i4;i+)for(j=0;j4;j+)printf(%4d,bij);printf(n);(4)输出)输出 Fibonacci 数列的前数列的前 20 项。项。#include void main()int i;long a20=1,1;for(i=2;i20;i+)ai=ai-1+ai-2;for(i=0;i20;i+)if(i%5=0)printf(n)
14、;printf(%-10ld,ai);printf(n);(5)按公式计算,求)按公式计算,求 A20 的值。的值。A1=1,A2=1;A3=3*A1+A2;A4=3*A2+A3;#include void main()int i;long a20=1,1;for(i=2;i20;i+)ai=3*ai-2+ai-1;printf(A20=%dn,a19);实验二实验二 数组的定义及使用数组的定义及使用1、输入并改正源程序中的错误。、输入并改正源程序中的错误。#include#include void main()int n=0,i;char s81;gets(s);i=0;while(si!=
15、0)if(!(si=A&si=Z)sn+=si;i+;sn=0;puts(s);2、编写程序并上机调试运行。、编写程序并上机调试运行。(1)输入)输入 10 个整数,采用冒泡法排序后输出。个整数,采用冒泡法排序后输出。#include void main()int i,j,t;int a10;printf(Input 10 numbers:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;printf(the sorted numbers:n);for(i=0;i10;i+)print
16、f(%4d,ai);printf(n);(2)将两个字符串连接起来,不要用)将两个字符串连接起来,不要用 strcat 函数。函数。#include#include void main()int i,j=0,l1,l2;char a100,b100;gets(a);gets(b);l1=strlen(a);l2=strlen(b);for(i=l1;il1+l2;i+)ai=bj;j+;al1+l2=0;puts(a);(3)输入一行字符串,统计其中单词个数,单词之间用空格隔开。例如:输入“)输入一行字符串,统计其中单词个数,单词之间用空格隔开。例如:输入“I am a boy!”其中单词的个
17、数为”其中单词的个数为 4 个()个()#include#include void main()int i,l,n=1;char a100;gets(a);l=strlen(a);for(i=0;il;i+)if(ai=)n+;printf(%dn,n);(4)找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,也有可能没有鞍点。)找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,也有可能没有鞍点。#include#define N 3#define M 4main()int aNM,i,j,k,max,row,col;printf(Input%d*%
18、d matrix:n,N,M);for(i=0;iN;i+)/*输入二维矩阵*/for(j=0;jM;j+)scanf(%d,&aij);for(i=0;iN;i+)/*求鞍点*/max=ai0;row=i;col=0;for(j=1;jM;j+)/*求矩阵中每一行的最大值及其所行列号*/if(maxaij)max=aij;col=j;for(k=0;kN;k+)/*判断每一行的最大值在其所在列是否最大*/if(akcolmax)break;if(k=N)/*得到鞍点*/printf(the point is%d,row=%d,col=%dn,max,row,col);break;if(i=N
19、)/*没有鞍点*/printf(no pointn);(5)已有一个排序好的数组(从小到大排序),现输入一个数,要求按原来排序的规律将它插入数组中。)已有一个排序好的数组(从小到大排序),现输入一个数,要求按原来排序的规律将它插入数组中。#include#define N 10void main()int aN+1,i,t;printf(From small to big N numbers:n);for(i=0;iN;i+)scanf(%d,&ai);printf(Input a number:aN=);scanf(%d,&aN);for(i=N;aiai-1;i-)t=ai;ai=ai-1
20、;ai-1=t;printf(the sorted numbers:n);for(i=0;iN+1;i+)printf(%5d,ai);printf(n);(6)比较用户输入的字符串是否为表示同意的“)比较用户输入的字符串是否为表示同意的“yes”(用户可以用大写或小写)。”(用户可以用大写或小写)。#include#include void main()int i,k;char a10,b4=yes;printf(Input string:n);gets(a);strlwr(a);k=strcmp(a,b);if(k=0)printf(输入的是 yes。n);else printf(输入的不
21、是 yes。n);2、7 函数预处理函数预处理实验一、函数程序设计实验一、函数程序设计1、完成程序,求解、完成程序,求解 n!。#include f(int n)if(n=1)return(1);else return(f(n-1)*n);void main()int x,i;scanf(%d,&i);x=f(i);printf(i!=%dn,x);2、计算、计算 s=1k+2k+3k+Nk。#include long f1(int i,int j)long power=i;int m;for(m=1;mj;m+)power*=i;return power;void main()int n,k
22、,m;long sum=0;printf(Please input N,k:n);scanf(%d,%d,&n,&k);for(m=1;mn+1;m+)sum+=f1(m,k);printf(sum is%ldn,sum);3、写出下面、写出下面 3 个程序的输出结果,说明每个程序中的各个个程序的输出结果,说明每个程序中的各个 x 有何不同。有何不同。(1)、)、#include int x=5;int main(void)printf(nx1=%d,x);int x=3;printf(nx2=%d,x);x1=5x2=3(2)、)、#include int x=5;int main(void
23、)printf(nx1=%d,x);int x=3;printf(nx2=%d,x);printf(nx3=%d,x);x1=5x2=3X3=5(3)、)、#include int main(void)void sub(void);int i;static int x;int y;i=1;x=10;y=5;printf(HELLOn);printf(i=%d,x=%d,y=%dn,i,x,y);sub();printf(HELLOn);printf(i=%d,x=%d,y=%dn,i,x,y);return(0);void sub()int i;static int x;i=18;x=20;p
24、rintf(C PROGRAMn);printf(i=%d,x=%dn,i,x);HELLOi=1,x=10,y=5C PROGRAMi=18,x=20HELLOi=1,x=10,y=54、编程并上机调试运行。、编程并上机调试运行。(1)求方程)求方程 ax2+bc+c=0 的根,用三个函数分别求当的根,用三个函数分别求当 b2-4ac 大于大于 0,等于,等于 0 和小于和小于 0 时的根,并输出结果。从主函数输入时的根,并输出结果。从主函数输入 a、b、c 的值。的值。#include#include void f1(double m,double n,double d)double ro
25、ot1,root2;root1=(-n+sqrt(d)/2*m;root2=(-n-sqrt(d)/2*m;printf(Real Roots:n);printf(root1=%lf,root2=%lfn,root1,root2);void f2(double m,double n)double root;root=-n/2*m;printf(the same root is%lfn,root);void f3(double m,double n,double d)double real,image;real=-n/2*m;image=sqrt(-d)/2*m;printf(Complex R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 答案
限制150内