C语言题库(2)_第1页
C语言题库(2)_第2页
C语言题库(2)_第3页
C语言题库(2)_第4页
C语言题库(2)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、填空题:顺序结构程序设计1.完成填空,实现运行程序如图所示。#include <stdio.h>main ( ) char a,b,c;/*SPACE*/ 【?】; a=B b='O' c='Y' putchar(a); /*SPACE*/ 【?】(b); putchar putchar(c); /*SPACE*/ 【?】 putchar(n); 选择结构程序设计2.完成程序填空实现输入两个数a、b,判断如果a<b,则交换两数,否则保持两数值不变,这样可以使得a始终大于b的值。按照先a后b的顺序输出即可。#include <stdio.h

2、>int main()float a,b,t; scanf("%f,%f",&a,&b);/*SPACE*/ if(【?】) a<b/*SPACE*/ t=a;a=b;【?】; b=t/*SPACE*/ printf("%5.2f,%5.2fn",a,【?】); b return 0;3.完成程序填空实现输入三个数,按代数值由大到小输出。#include <stdio.h>int main() float a,b,c,t; scanf("%f,%f,%f",&a,&b,&

3、c);/*SPACE*/ if(【?】) a<b t=a;a=b;b=t; if(a<c)/*SPACE*/ t=a;a=c;【?】; c=t if(b<c) /*SPACE*/ t=b;【?】;c=t; b=c printf("%5.2f,%5.2f,%5.2fn",a,b,c); return 0;4.完成程序填空,实现已知三个数a,b,c,找出最大值放于max中。#include <stdio.h>int main()int a,b,c,max; printf("please input a,b,c:n"); scan

4、f("a=%d, b=%d, c=%d",&a,&b,&c); /*SPACE*/if(a>=b) 【?】; max=aelse max=b; /*SPACE*/if (【?】) max=c; c>max/*SPACE*/printf("max=%dn" 【?】); ,maxreturn 0;5.完成程序填空,实现输入4个整数,要求按由小到大的顺序输出。#include <stdio.h>main() int t,a,b,c,d; printf("请输入四个数:"); scanf(&qu

5、ot;%d,%d,%d,%d",&a,&b,&c,&d); printf("a=%d,b=%d,c=%d,d=%dn",a,b,c,d); if (a>b) t=a;a=b;b=t; if (a>c)/*SPACE*/ t=a;【?】;c=t; a=c if (a>d) t=a;a=d;d=t; if (b>c)/*SPACE*/ t=b;b=c;【?】; c=t if (b>d) t=b;b=d;d=t; if (c>d)/*SPACE*/ 【?】;c=d;d=t; t=c printf(&qu

6、ot;排序结果如下: n"); printf("%d %d %d %d n" ,a,b,c,d);循环结构程序设计6.完成程序填空,实现求s=1+3+5+99# include<stdio.h> int main( ) int i,s;/*SPACE*/ i【?】 =1; s=1;/*SPACE*/ while(【?】) i<99 i=i+2; /*SPACE*/ 【?】s=s+i; printf("1+3+5+99=%dn", s); return 0; 7.完成程序填空,用do-while结构实现s=1+3+5+99# i

7、nclude<stdio.h> int main()long sum;int i,item;/*SPACE*/【?】 sum=0;i=1;item=2*i-1; dosum=sum+item;i+;/*SPACE*/item=【?】 2*i-1;/*SPACE*/while(【?】); item<100printf("1+3+5+.99=%ldn",sum);return 0;8.完成程序填空,实现输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的数。#include <stdio.h>void main( )char c;int

8、letters=0,space=0,digit=0,other=0; printf("请输入一行字符:");/*SPACE*/while(【?】)!='n') c=getchar()/*SPACE*/if (c>='a'【?】| c>='A'&&c<='Z') letters+ ; &&c<=zelse if (c=' ') space+; /*SPACE*/else if(【?】) digit+; c>=0&&c&l

9、t;=9else other+;printf("letters=%d,space=%d,digit=%d,other=%dn",letters,space,digit,other);9.完成程序填空,输出所有的水仙花数。水仙花数是一个三位数,其个、十、百位数字三次方之和为这个数。例如371=3*3*3+7*7*7+1*1*1#include <stdio.h>int main( )int num, bai, shi ,ge;/*SPACE*/for(num=100; 【?】; num+) num<=999bai=num/100; /*SPACE*/shi=

10、【?】 num/10%10;ge=num%10;/*SPACE*/if (【?】) num=bai*bai*bai+shi*shi*shi+ge*ge*geprintf("%5dn", num); return 0;10.一个小球从100米高度自由下落,每次落地后反跳回原来高度的一半,再下落,求它在第十次下落时,共经过多少米,第十次反弹多高?#include <stdio.h>int main()float sum=0;int i=2; /*SPACE*/float height【?】;=100sum=sum+height; /*SPACE*/while(【?】

11、)i<=10/*SPACE*/height=【?】; height/2sum+=2*height;i+; printf("总长度:%f 第10次跳%f米n",sum,height);return 0;11.完成程序填空,实现猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。第二天早上有将剩下的挑子吃掉一半,又多吃了一个。后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃是,只剩下一个挑子了。求第一天共摘了多少桃子。#include<stdio.h>int main()/*SPACE*/int day【?】; =10int

12、 m=0;int n=1; while(day>1) /*SPACE*/ m=【?】; 2*(n+1)/*SPACE*/【?】; n=mday-;printf("all=%dn",m);return 0;12.完成程序填空,实现输入两个数字,若两数相等,则直接输出两个数字,若不相等,则这两个数中的较大者等于这个较大者减去较小者,再作比较,若不相等则重复上述操作,直到两个数字相等为止。输出相等的两个数字。#include <stdio.h>int main() int a,b;printf("Enter a,b: ");scanf(&qu

13、ot;%d,%d",&a,&b); /*SPACE*/while(a 【?】) !=b/*SPACE*/ if (【?】) a>ba=a-b;/*SPACE*/if (【?】)b>ab=b-a;printf("%3d%3dn",a,b);return 0;13.完成程序填空,实现输出以下图案: * * * * #include <stdio.h>int main() int i,j;/*SPACE*/ for(i=1;【?】;i+)i<=4 for(j=1;j<=10-i;j+) printf(" &q

14、uot;); for(j=1;j<=2*i-1;j+)/*SPACE*/ printf(【?】);"*"/*SPACE*/ printf(【?】); "n" return 0;14.完成程序填空,实现找出1000之内的所有完数,并按如图所示格式输出其因子。一个数如果恰好等于它的公约数之和,这个数就称为"完数"。例如6=123。6就是一个完数。#include<stdio.h>int main() int a,i,b;/*SPACE*/ for(a=2;a<=【?】;a+) 1000 b=0; for(i=1;i

15、<a;i+) if(a%i=0) /*SPACE*/ b=【?】; b+i if(a=b) printf("%d its factors are 1",a); for(i=2;i<a;i+) /*SPACE*/ if(【?】)a%i=0 printf(",%d ",i); printf("n"); return 0;15.完成程序填空,实现的功能是输出如下形式的方阵:13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4#include <stdio.h>int main() int i,

16、j,x;/*SPACE*/ for(j=4; 【?】 ; j-)j>=1 for(i=1; i<=4; i+) /*SPACE*/ x=【?】 ; (j-1)*4+i printf("%4d",x); /*SPACE*/ printf(【?】);”n” return 0; 顺序、分支、循环综合应用16.完成程序填空,实现求1+ 1/3+ 1/5+ .之和,直到某一项的值小于10的-6次方时停止累加。#include<stdio.h>int main() long n; float s; s=0;/*SPACE*/ n【?】=1;/*SPACE*/ w

17、hile(1.0/n【?】)>=1e-6 s=s+1.0/n; /*SPACE*/ 【?】n=n+2; printf("s=%fn",s); printf("n=%dn",n-2); return 0; 17."百鸡问题":鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?完成程序填空,实现求"百鸡问题" 公鸡一只5块钱,母鸡一只三块钱,小鸡三只一块钱,一百块钱买一百只鸡应该怎么买?也就是问一百只鸡中公鸡、母鸡、小鸡各多少?#include <stdio.h>int

18、main()int x,y,z;/*SPACE*/for(x=1;x<=20;【?】)x+ for(y=1;y<=33;y+) /*SPACE*/ for(z=3;z<=99;【?】)z+=3 /*SPACE*/ if(【?】)&&(x+y+z=100) 5*x+3*y+z/3=100 printf("cock=%d,hen=%d,chicken=%dn",x,y,z); return 0;18.完成程序填空,输出如下数阵: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1#include&

19、lt;stdio.h>#include<math.h>int main()int i,j,k;/*SPACE*/ for (i=1;【?】;i+)i<=5 /*SPACE*/ for(k=1;【?】;k+)k<=10-i printf(" ");/*SPACE*/ for(j=1;【?】;j+)j<=2*i-1 printf("%d",i-abs(i-j); printf("n"); return 0;19.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名

20、单,有人向队员打听比赛的名单。a说他不和x比,c说他不和x、z比,请完成程序填空,实现找出三队赛手的名单。#include<stdio.h>int main()char i,j,k; /i是a的对手,j是b的对手,k是c的对手 for(i='x'i<='z'i+) for(j='x'j<='z'j+)/*SPACE*/ if (【?】) /a和b不能是同一个对手i!=j/*SPACE*/ 【?】(k='x'k<='z'k+)for if(i!=k &&

21、j!=k) /a、b、c不能是同一个对手/*SPACE*/ if(i!='x' && k!='x' && 【?】 ) k!=z printf("a-%cnb-%cnc-%cn",i,j,k); return 0;20.完成程序填空,实现输出下图 * * * * * * *#include<stdio.h>int main() int i,j; for(i=0;i<=3;i+) for(j=1;j<=10-i;j+)/*SPACE*/ 【?】printf(" "); f

22、or(j=1;j<=2*i+1;j+) printf("*");/*SPACE*/ 【?】printf("n"); for(i=1;i<=3;i+) /*SPACE*/ for(j=1;【?】;j+)j<=7+i printf(" "); for(j=1;j<=7-i*2;j+) printf("*"); printf("n"); return 0;21.完成程序填空,实现打印下列的图形 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 3 4 5 6

23、7 8 9 4 5 6 7 8 9 5 6 7 8 9 6 7 8 9 7 8 9 8 9 9#include <stdio.h>int main()int i,j; /*SPACE*/ for(i=1;【?】;i+) i<=9/*SPACE*/ for(j=i;j<=9;【?】)j+/*SPACE*/ printf("%2d",【?】j); printf("n"); return 0; 数组程序设计22.在数组a中,存放着10个整型数据,数据是从下标0开始存放的,完成程序填空,实现顺序输出下标为奇数的各数组元素的值。#inclu

24、de <stdio.h>int main() /*SPACE*/ int i, a10=0,1,2,3,4,5,6,7,8,9【?】;/*SPACE*/ for(i=1;i<=9; 【?】)i=i+2/*SPACE*/ printf("%d ",【?】);ai printf("n"); return 0; 23.完成程序填空,实现用冒泡排序法对从键盘输入的10个整型数据进行由小到大排序。#include <stdio.h>int main() int i,j,t,a10; printf("input 10 numb

25、ers :n"); for (i=0;i<10;i+) /*SPACE*/ 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;/*SPACE*/ 【?】ai+1=t; printf("the sorted numbers :n"); for(i=0;i<10;i+)/*SPACE*/ printf("%d ",【?】);ai pr

26、intf("n"); return 0; 24.完成程序填空,实现输出所有的水仙花数,所谓水仙花数是一个3位数,其各位数字的立方和等于该数本身。例如153=13+53+33,故153是一个水仙花数。#include <stdio.h>int main() int a,b,c,n,i,k=0,m10=0;/*SPACE*/ for(n=100;【?】;n+) a=n/100;n<1000 b=n/10-a*10; c=n%10;/*SPACE*/ if(【?】) a*a*a+b*b*b+c*c*c=n mk=n;/*SPACE*/ 【?】k+; printf

27、("所有的水仙花数为::n"); for(i=0;i<k;i+) printf("%d ",mi); printf("n"); return 0; 25.有一个已排好的数组,完成程序填空,实现要求输入一个数后,按原来排序的规律将它插入到数组中。#include <stdio.h>#define N 10int main() int aN+1=-73,-67,-54,0,32,84,86,90,234,312; int num,i,left,right,mid,find=0; /find=0,未找到;find=1,找到

28、。 left=0; right=N-1; printf("please input:"); scanf("%d",&num);/*SPACE*/ while( find【?】 && left<=right)=0 mid=(left+right)/2; if(num>amid) left=mid+1; else if(num<amid) right=mid-1; else find=1; if(find=1) for(i=N-1;i>=mid;i-) /*SPACE*/ ai+1=【?】; ai amid=n

29、um; else /*SPACE*/ for(i=N-1;i>=left;【?】) i- ai+1=ai; aleft=num; printf("after insert,the array is:n"); for(i=0;i<N+1;i+) printf("%4d",ai); printf("n"); return 0; 26.完成程序填空,将字符数组a的全部字符复制到字符数组b中(要求不用strcpy函数)。#include "string.h"int main()char str181="

30、;the string length is 65!",str281; int i;/*SPACE*/ printf("str1:【?】n",str1);%s/*SPACE*/ for(i=0;str1i【?】;i+)!=0/*SPACE*/ str2i=【?】;str1i str2i='0' printf("str2:%sn",str2); return 0; 27.在字符数组str181和str281中分别存放着2个字符串,完成程序填空,实现将两个字符串连接起来构成一个新的字符串,并将新生成的字符串存放在字符数组str181中

31、(要求不用strcat函数)。#include "string.h"int main()char str181,str281; int i,j; printf("input the first string:n");/*SPACE*/ 【?】(str1);gets printf("input the second string:n"); gets(str2);/*SPACE*/ for(i=0;str1i【?】;i+) !=0 ;/*SPACE*/ for(j=0;str2j!='0'j+,【?】)i+ str1i=s

32、tr2j; str1i='0' printf("the new string:n"); printf("%sn",str1); return 0;28.完成程序填空,进行两个字符串str1和str2的比较,若str1str2 ,输出一个正数;若str1str2,输出0;若str1str2,输出一个负数,输出的数是两个字符的Ascii码值的差(要求不用strcmp函数)。#include "stdio.h"#include "string.h"int main()char str181,str281;

33、 int i,x; printf("input the first string:n");/*SPACE*/ 【?】(str1);gets printf("input the second string:n"); gets(str2);/*SPACE*/ for(i=0;str1i【?】 && str1i!='0'i+) =str2i ; x=str1i-str2i;/*SPACE*/ printf("the compare result is: %dn",【?】);x return 0;29.完成程序

34、填空,实现编程输出以下图案。* * * * *#include "stdio.h"#include "string.h"int main()char str="*" int i,j;/*SPACE*/ for(i=0;【?】;i+) i<5/*SPACE*/ for(j=1;j<=【?】;j+) i printf(" ");/*SPACE*/ puts(【?】); str return 0;其他30.功能:输出9*9口诀。main() int i,j,result; printf("n&quo

35、t;); /*SPACE*/ for (i=1;【?】;i+)i<10 /*SPACE*/ for(j=1;j<10;【?】)j+ result=i*j; /*SPACE*/ printf("%d*%d=%-3d",i,j,【?】);result printf("n"); 31.功能:将字母转换成密码,转换规则是将当前字母变成其后的第四个字母,但W变成A、X变成B、Y变成C、Z变成D。小写字母的转换规则同样。#include <stdio.h>main() char c; /*SPACE*/ while(c=【?】)!='

36、n')getchar() /*SPACE*/ if(c>='a'&&c<='z')|(c>='A'&&c<='Z')【?】;c+=4 /*SPACE*/ if(c>'Z'【?】c<='Z'+4)|c>'z') c-=26;&& printf("%c",c); 32.功能:输入一个学生的生日(年:y0、月:m0、日:d0),并输入当前日期(年:y1、月:m1、日:d1)

37、。求出该学生的年龄(实足年龄)。#include <stdio.h>main()int age,y0,y1,m0,m1,d0,d1; printf("输入生日日期(年,月,日)");/*SPACE*/ 【?】("%d,%d,%d",&y0,&m0,&d0);scanf printf("输入当前日期(年,月,日)"); scanf("%d,%d,%d",&y1,&m1,&d1); age=y1-y0;/*SPACE*/ if(m0【?】m1)age-;>

38、;/*SPACE*/ if(m0【?】m1)&&(d0>d1)age-;= printf("age=%3d",age);33.完成程序填空,实现求两数最小公倍数#include <stdio.h>main()int m,n,i=1;printf("input m,n:");scanf("%d,%d",&m,&n); do /*SPACE*/ if(【?】)i%m = 0/*SPACE*/ if(i%n【?】) = 0 /*SPACE*/ printf("%dn",i

39、);【?】; break i+; while(i!=0);程序设计题注:所有题目的主函数全部省略,答案为/*Program*/与/* End */之间的调用函数的内容。1.功能:从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出。请编写fun函数。#include "stdio.h"int fun(int x,int n)/*Program*/int min,i;min=x0;for(i=1;i<10;i+)if(xi<min) min=xi;return min; /* End */ 2.功能:对任意输入的 x,用下式计

40、算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10#include<stdio.h>int fun(int n) /*Program*/int m;if(n>=10) if(n>10) m=-5; else m=0; else m=5; return m; /* End */ 3.功能:用do-while语句求1100的累计和。#include<stdio.h>long int fun(int n) /*Program*/int i=1,sum=0; dosum=sum+i;i+; while(i<=n);return

41、sum; /* End */ 4.功能:求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为45。#include "stdio.h"#define M 5 int fun(int aMM) /*Program*/ 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;  /* End */ 5.功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。注意:n的值不大于1000。例如:n的值为855时,应输出7

温馨提示

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

评论

0/150

提交评论