C语言题库 填空题部分+部分程序设计--精选文档_第1页
C语言题库 填空题部分+部分程序设计--精选文档_第2页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 完成程序填空,实现输入两个数字,若两数相等,则直接输出两个数字,若不相等,则这两个数中的较大者等于这个较大者减去较小者,再作比较,若不相等则重复上述操作,直到两个数字相等为止。输出相等的两个数字。while(a 【a!=b】) if (【a>b】)a=a-b;if (【b>a】)b=b-a; 2. "百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?完成程序填空,实现求"百鸡问题" 公鸡一只5块钱,母鸡一只三块钱,小鸡三只一块钱,一百块钱买一百只鸡应该怎么买?也就是问一百只鸡中公鸡、母鸡、小鸡各

2、多少?for(x=1;x<=20;【x+】)for(z=3;z<=99;【z+=3】)if(【5*x+3*y+z/3=100】)&&(x+y+z=100)3.完成程序填空,实现输出下图 * * * * * * *【printf(“*”)】【printf(“n”)】【j<=7+i】4.完成程序填空,将字符数组a的全部字符复制到字符数组b中(要求不用strcpy函数)。printf("str1:【%s】n",str1);for(i=0;str1i【!=0】;i+)str2i=【str1i】;5. 将a+ 或 +a 或 a- 或 -a 填入程序填

3、空中,实现如图所示的输出。(填入其他无效)【a+】【a-】【-a】6.完成程序填空,实现输入4个整数,要求按由小到大的顺序输出。 t=a;【a=c】;c=t; t=b;b=c;【c=t】;【t=c】;c=d;d=t;7. 完成程序填空,输出所有的水仙花数。水仙花数是一个三位数,其个、十、百位数字三次方之和为这个数。例如: 371=3*3*3+7*7*7+1*1*1for(num=100; 【num<=999】; num+)shi=【num/10%10】if (【num=bai*bai*bai+shi*shi*shi+ge*ge*ge】)8. 完成程序填空,实现的功能是输出如下形式的方阵:

4、13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4for(j=4; j>=1 ; j-) for(i=1; i<=4; i+) x=(j-1)*4+i ;printf("%4d",x); 9. 【a=B】; b='O' c='Y'putchar(a);putchar(b);putchar(c);putchar(n);10. 完成程序填空实现输入两个数a、b,判断如果a<b,则交换两数,否则保持两数值不变,这样可以使得a始终大于b的值。按照先a后b的顺序输出即可。if(【?】) a<b t=a;

5、a=b;【?】; b=tprintf("%5.2f,%5.2fn",a,【?】); b11. 完成程序填空实现输入三个数,按代数值由大到小输出。if(【?】) a<b t=a;a=b;b=t; if(a<c) t=a;a=c;【?】; c=t if(b<c) t=b;【?】;c=t; b=c printf("%5.2f,%5.2f,%5.2fn",a,b,c); 12. 完成程序填空,实现已知三个数a,b,c,找出最大值放于max中。if(a>=b) 【?】; max=aelse max=b; if (【?】) max=c; c&

6、gt;maxprintf("max=%dn" 【?】); ,max13. 完成程序填空,实现求s=1+3+5+99.【i=1;】s=1;while(【?】) i<99 i=i+2; 【s=s+i;】 14. 完成程序填空,用do-while结构实现s=1+3+5+99.【sum=0;】i=1;item=2*i-1; do sum=sum+item;i+;item=【2*i-1;】while(【item<100】); /循环结束后,请考虑item的值是多少?printf("1+3+5+.99=%ldn",sum);15. 完成程序填空,实现输入

7、一行字符,分别统计出其中的英文字母、空格、数字和其他字符的数。while(【c=getchar()】)!='n') if (c>='a'【&&c<=z】| c>='A'&&c<='Z') letters+ ;else if (c=' ') space+; else if(【c>=0&&c<=9】) digit+;else other+;16. 一个小球从100米高度自由下落,每次落地后反跳回原来高度的一半,再下落,求它在第十次下落时

8、,共经过多少米,第十次反弹多高?float height【=100】;sum=sum+height; while(【i<=10】)height=【height/2】; sum+=2*height;i+; 17. 完成程序填空,实现猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。第二天早上有将剩下的挑子吃掉一半,又多吃了一个。后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃是,只剩下一个挑子了。求第一天共摘了多少桃子?int day【=10】;int m=0;int n=1; while(day>1) m=【2*(n+1)】; 【n=m】; d

9、ay-; 18. 完成程序填空,实现输出以下图案: * * * * for(i=1;【i<=4】;i+) for(j=1;j<=10-i;j+) printf(" "); for(j=1;j<=2*i-1;j+) printf(【"*"】); printf(【”n”】); 19. 完成程序填空,实现找出1000之内的所有完数,并按如图所示格式输出其因子。一个数如果恰好等于它的公约数之和,这个数就称为"完数"。例如:6=123。 6就是一个完数。for(a=2;a<=【1000】;a+) b=0; for(i=1

10、;i<a;i+) f(a%i=0) b=【b+i】; if(a=b) printf("%d its factors are 1",a);for(i=2;i<a;i+) if(【a%i=0】)printf(",%d ",i); printf("n"); 20. 完成程序填空,实现求1+ 1/3+ 1/5+ .之和,直到某一项的值小于10的-6次方时停止累加。n【=1;】while(1.0/n【>=1e-6】) s=s+1.0/n; 【n=n+2;】 21. 完成程序填空,输出如下数阵: 1 1 2 1 1 2 3 2

11、1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1for (i=1;【i<=5】;i+) for(k=1;【k<=10-i】;k+) printf(" "); for(j=1;【j<=2*i-1】;j+) printf("%d",i-abs(i-j); printf("n"); 22. 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单,有人向队员打听比赛的名单。a说他不和x比,c说他不和x、z比,请完成程序填空,实现找出三队赛手的名单。char i,j,k

12、; /i是a的对手,j是b的对手,k是c的对手for(i='x'i<='z'i+)for(j='x'j<='z'j+) if (【i!=j】) /a和b不能是同一个对手【for】(k='x'k<='z'k+) if(i!=k&&j!=k) /a、b、c不能是同一个对手 if(i!='x' && k!='x' &&【k!=z】 ) printf("a-%cnb-%cnc-%cn",i,

13、j,k); 23. 完成程序填空,实现打印下列的图形 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 4 5 6 7 8 9 5 6 7 8 9 6 7 8 9 7 8 9 8 9 9for(i=1;【i<=9】;i+) for(j=i;j<=9;【j+】)printf("%2d",【j);】24. 在数组a中,存放着10个整型数据,数据是从下标0开始存放的,完成程序填空,实现顺序输出下标为奇数的各数组元素的值。int i, a10=0,1,2,3,4,5,6,7,8,9【】; for(i=1;i<=9; 【

14、i=i+2】)printf("%d ",【ai】);printf("n");25. 完成程序填空,实现用冒泡排序法对从键盘输入的10个整型数据进行由小到大排序。scanf("%d",【&ai】); printf("n"); for(j=0;j<9;j+) for(i=0;i<9-j;i+) if (ai>ai+1) t=ai; ai=ai+1;【ai+1=t;】printf("the sorted numbers :n");for(i=0;i<10;i+)prin

15、tf("%d ",【ai】);26. 完成程序填空,实现输出所有的水仙花数,所谓水仙花数是一个3位数,其各位数字的立方和等于该数本身。例如153=13+53+33,故153是一个水仙花数。for(n=100;【n<1000】;n+) a=n/100;b=n/10-a*10; c=n%10;if(【a*a*a+b*b*b+c*c*c=n】) mk=n;【k+;】27. 有一个已排好的数组,完成程序填空,实现要求输入一个数后,按原来排序的规律将它插入到数组中。while( find【=0】&& left<=right) ai+1=【ai】; for(

16、i=N-1;i>=left;【i-】)28. 在字符数组str181和str281中分别存放着2个字符串,完成程序填空,实现将两个字符串连接起来构成一个新的字符串,并将新生成的字符串存放在字符数组str181中(要求不用strcat函数)。【gets】(str1);for(i=0;str1i【!=0】;i+)for(j=0;str2j!='0'j+,【i+】)29. 完成程序填空,进行两个字符串str1和str2的比较,若str1str2 ,输出一个正数;若str1str2,输出0;若str1str2,输出一个负数,输出的数是两个字符的Ascii码值的差(要求不用strc

17、mp函数)。【gets】(str1);for(i=0;str1i【=str2i】 && str1i!='0'i+)printf("the compare result is: %dn",【x】);30. 完成程序填空,实现编程输出以下图案。* * * *for(i=0;【i<5】;i+)for(j=1;j<=【i】;j+)puts(【str】;31. 功能:输出9*9口诀。for (i=1;【?】;i+)i<10 for(j=1;j<10;【j+】) result=i*j; printf("%d*%d=%-3

18、d",i,j,【result】);32.功能:将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。小写字母的转换规则同样。while(c=【getchar()】)!='n')if(c>='a'&&c<='z')|(c>='A'&&c<='Z')【c+=4】;if(c>'Z'【&&】c<='Z'+4)|c>'z') c-=

19、26;33. 功能:输入一个学生的生日(年:y0、月:m0、日:d0),并输入当前日期(年:y1、月:m1、日:d1)。求出该学生的年龄(实足年龄)。【scanf】("%d,%d,%d",&y0,&m0,&d0);if(m0【>】m1)age-;if(m0【=】m1)&&(d0>d1)age-;34. 完成程序填空,实现求两数最小公倍数.if(【i%m=0】)if(i%n【=0】) printf("%dn",i);【break】; 二、程序设计1. 功能:求1到w之间的奇数之和。(w是大于等于100小于

20、等于1000的整数)long d,s=1; while (n>0) d=n%10; s*=d; n/=10;return s;2. 功能:对某一正数的值保留2位小数,并对第三位进行四舍五入。int i;i=(int) (h*1000)%10;if (i>=5)return(int) (h*100+1)/100.0;elsereturn(int) (h*100)/100.0;3. 功能:产生20个30,120上的随机整数放入二维数组a54中, 求其中的最小值。int i,j,s;s=a00;for(i=0;i<5;i+) for(j=0;j<4;j+) if (s>

21、aij)s=aij;return(s);4. 功能:编写程序求无理数e的值并输出。计算公式为:e=1+1/1!+1/2!+1/3!+.+1/n!long int j;int i,k;float e,jc;i=1;e=0.0;jc=1.0; while(jc>=0.000001) e=e+jc; j=1; for(k=1;k<=i;k+) j=j*k; jc=1.0/j; i+;return e;5. 功能:对任意输入的 x,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10int m; if(n<10) m=5; else if(n=1

22、0) m=0; else m=-5; return m;6. 功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。int k,s=0;dos=s+(w%10)*(w%10);w=w/10;while(w!=0);if(s%5=0)k=1;else k=0;return(k);7. 功能:编写函数求3!+6!+9!+12!+15+18!+21!。int i,j; float t,s=0; for(i=3;i<=n;i=i+3) t=1; for(j=1;j<=i;j+) t=t*j; s=s+t; return(s);8. 功能:编写函数fun求su

23、m=d+dd+ddd+dd.d(n个d),其中d为1-9的数字。例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。long int s=0,t=0; int i; for(i=1;i<=n;i+) t=t+d; s=s+t; d=d*10; return s;9.给定N个数据,求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)int i,k; k=0; for(i=1;i<n;i+) if(si<sk) k=i;return(k);10. 求一批数中最大值和最小值的积。int i,max,min; max=min=a0;

24、 for(i=1;i<n;i+) if(ai>max) max=ai; else if(ai<min) min=ai;return(max*min);11. 从键盘上输入任意实数x,求出其所对应的函数值z=(x-4)的二次幂, z=x的八次幂(x>-4), z=4/(x*(x+1)(x>-10), z=|x|+20(其他).float z; if(x>4) z=sqrt(x-4); else if(x-4) z=pow(x,8); else if(x>-10) z=4/(x*(x+1); else z=fabs(x)+20; return(z);12.

25、 求出N*M整形数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。.int max,i,j;max=array 00;Row=0;Col=0; for(i=0;i<N;i+) for(j=0;j<M;j+) if(max<arrayij) max=arrayij; Row=i;Col=j;return(max);13. 求一个n位自然数的各位数字的积。(n是小于10的自然数)long d,s=1; while (n>0) d=n%10; s*=d; n/=10; return s;14. 计算n门课程的平均值,计算结果作为函数值返回。

26、例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998int i; float y=0; for(i=0;i<n;i+) y+=ai; y=y/n; return y;15. 求一批数中小于平均值的个数。int i,sum=0,k=0; float average; for(i=0;i<n;i+) sum=sum+ai; average=sum*1.0/n; for(i=0;i<n;i+) if(average>ai)k+;return(k);16. 编写函数判断一个整数m的个位数字之和能否被7整除,可以被7整除则返回1,否则返回0.调

27、用该函数找出100200之间满足条件的所有数。int k,s=0; do s=s+m%10; m=m/10; while(m!=0); if(s%7=0)k=1; else k=0; return(k);17. 编写函数fun用比较法对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果。int k,j,t; for (k=0;k<n-1;k+) for (j=k+1;j<n;j+) if (arrayk<arrayj) t=arrayk; arrayk=arrayj;arrayj=t; 18. 将字符串中的小写字母转换为对应的大写字母,其他字符不

28、变。int i; for(i=0;stri!='0'i+) if(stri>='a' && stri<='z') stri=stri-32;19. 求给定正整数m以内的素数之和。int i,k,s=0;for(i=2;i<=m;i+)for (k=2;k<i;k+)if(i%k=0)break;if(k=i)s=s+i; return s;20. 编写程序,实现矩阵(3行3列)的转置.int i,j,t;for(i=0;i<3;i+)for(j=0;j<i;j+) t=arrayij;array

29、ij=arrayji;arrayji=t;21. 功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。int min,i;min=x0;for(i=1;i<10;i+) if(xi<min) min=xi; return min;22. 用do-while语句求1100的累计和。int i=1,sum=0; dosum=sum+i;i+; while(i<=n);return sum;23. 调用函数fun判断一个三位数是否"水仙花数"。在main函数中从键盘输入一个三位数,并输出判断结果。请

30、编写fun函数。说明:所谓"水仙花数"是指一3位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1+125+27。int a,b,c;a=n%10;b=n/10%10;c=n/100;if(a*a*a+b*b*b+c*c*c=n)return 1;else return 0;24. 功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。使用DO WHILEint k,s=0; dos=s+(w%10)*(w%10);w=w/10; while(w!=0); if(s%5=0)k=1; else k=0; return

31、(k);25. 功能:求一个n位自然数的各位数字的积。(n 是小于10的自然数)long d,s=1; while(n>0) d=n%10; s*=d; n/=10; return s;26. 功能:把20个随机数存入一个数组,然后输出该数组中的最大值。int i,j=0;for(i=0;i<size;i+) if(listi>listj) j=i; return j;27. 功能:求一批数中小于平均值的数的个数。int i,sum=0,k=0; float average; for(i=0;i<n;i+) sum=sum+ai; average=sum*1.0/n;

32、for(i=0;i<n;i+) if(average>ai)k+; return(k);28. 功能:编写函数求1100中奇数的平方和。结果为166650。float s=0;int i,j; for(i=1;i<=n;i=i+2) s=s+i*i;return(s);29. 功能:产生20个30,120上的随机整数放入二维数组a54中, 求其中的最小值。int i,j,s; s=a00; for(i=0;i<5;i+) for(j=0;j<4;j+) if(s>aij)s=aij; return(s);30. 功能:编写函数fun生成一个对角线元素为1,其

33、他元素都为0的3*3的二维数组。for(i=0;i<3;i+) for(j=0;j<3;j+) if(i+j=1 | i+j=3) arrij=0; else arrij=1;31. 功能:求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加1次。例如:主函数中给出的矩阵的两条对角线的和为45。int s=0; int i; for(i=0;i<M;i+) s=s+aii+aiM-1-i; s=s-a(M-1)/2(M-1)/2; return s;31. 功能:编写函数用选择排序法对数组中的数据进行从小到大的排序.int i,j,k,t;for(i=0;i<n-1;j+)k=i;for(j=j+1;j<n;j+)if(ak>aj) k=j;if(k!=i)t=ai;ai=ak;ak=t;32. 功能:编写函数fun求sum=d+dd+ddd+dd.d(n个d),其中d为1-9的数字。例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函数中输入。long int s=0,t=0;int i; for(i=1;i<n;i+)t=t+d; s=s+t; d=d*10; return s;33. 功能:编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出。例如:原来存顺序为8,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论