程序填空复习_第1页
程序填空复习_第2页
程序填空复习_第3页
程序填空复习_第4页
程序填空复习_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、试卷编号:8840所属语言:C语言试卷方案:C-程序填空试卷总分:100分共有题型:1种一、程序填空 共10题 (共计100分)第1题 (10.0分)/*-【程序填空】-功能:编程求某年第n天的日期。用数组表示月天数。-*/#include #include main() int y,m,f,n; int a12=31,28,31,30,31,30,31,31,30,31,30,31; printf(y,n=); scanf(%d,%d,&y,&n); /*SPACE*/ f=y%4=0&y%100!=0【?】y%400=0; /*SPACE*/ a1【?】f; if(n365+f) prin

2、tf(error!n);exit(0); /*SPACE*/ for(m=1;n【?】am-1;n-=am-1,m+); printf(y=%d,m=%d,d=%dn,y,m,n);答案:=(答案1)=|=(答案2)=+=或=a+=(答案3)=第2题 (10.0分)/*-【程序填空】-功能:下面的程序是求1!+3!+5!+n!的和。-*/#include main() long int f,s; int i,j,n; /*SPACE*/ 【?】; scanf(%d,&n); /*SPACE*/ for(i=1;i=n; 【?】) f=1; /*SPACE*/ for(j=1; 【?】;j+)

3、/*SPACE*/ 【?】; s=s+f; printf(n=%d,s=%ldn,n,s);答案:=(答案1)=s=0=(答案2)=i+=2=或=i=i+2=或=i+,i+=(答案3)=j=j=或=jj=(答案4)=f= f * j 第3题 (10.0分)/*-【程序填空】-功能:十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二 个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个 小孩16 块,第六个小孩 4块,第七个小孩 10 块,第八个小孩 6 块,第九个小孩 14 块,第十个小孩20 块。然后所有的小孩 同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人 可向

4、老师要一块。问经过这样几次调整后大家手中的糖的块数 都一样?每人各有多少块糖? -*/#include main() int i,count=0,a11=0,10,2,8,22,16,4,10,6,14,20 ; /*SPACE*/ while(【?】) for(i=1 ; i=10 ; i+) ai-1=ai-1/2+ai/2 ; a10=a10/2+a0 ; for(i=1 ; i=10 ; i+) /*SPACE*/ if(【?】) ai+ ; for(i=1 ; i10 ; i+) /*SPACE*/ if(ai!=ai+1) 【?】; if(i=10) break ; else a0

5、=0 ; count+ ; printf(count=%d number=%dn,count,a1) ;答案:=(答案1)=1=(答案2)=ai%2 = 1=(答案3)=break第4题 (10.0分)/*-【程序填空】-功能:输入某年某月某日,判断这一天是这一年的第几天?-*/#include main() int day,month,year,sum,leap; printf(nplease input year,month,dayn); scanf(%d,%d,%d,&year,&month,&day); switch(month) case 1:sum=0;break; case 2:

6、sum=31;break; case 3:sum=59;break; /*SPACE*/ case 4:【?】;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf(data error);break; /*SPACE*/ 【?】; /*SPACE*/

7、 if(year%400=0|(【?】) leap=1; else leap=0; /*SPACE*/ if(【?】) sum+; printf(it is the %dth day.,sum);答案:=(答案1)=sum=90=(答案2)=sum=sum+day=或=sum= sum + day=(答案3)=year%4 = 0 & year%100 != 0)=(答案4)=leap=1&month2=或=leap = 1 & month2=或=leap = 1 & 2month第5题 (10.0分)/*-【程序填空】-功能:考查字符串数组的应用。输出26个英文字母。-*/#include

8、void main (void) char string256; int i; /*SPACE*/ for (i = 0; i 26; 【?】) /*SPACE*/ stringi = 【?】; stringi = 0; /*SPACE*/ printf (the arrary contains %sn,【?】);答案:=(答案1)=i+=或=+i=或=i=i+1=或=i+=1=(答案2)=A + i=或=i+A=或=65 + i=或=i+65=(答案3)=string第6题 (10.0分)/*-【程序填空】-功能:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3 元钱,小鸡一元钱三

9、只,求100元钱能买公鸡、母鸡、小鸡 各多少只?-*/#include main() int cocks,hens,chicks; cocks=0; while(cocks=19) /*SPACE*/ 【?】=0; /*SPACE*/ while(hens5, 4-6, 7-8-*/#include #include void main(void) long left, right; long sum; long GiVEN; int count = 0; char line100; printf(nConsecutive sum to a fixed given number); print

10、f(n=n); printf(nYour number ( 0) please - ); gets(line); GiVEN = atol(line); for (sum = 0, right = 1; sum GiVEN; sum += right, right+) ; for (left = 1, right-; left GiVEN) sum -= left; /*SPACE*/ 【?】; else if (sum = GiVEN) printf(n%ld = sum from %ld to %ld, GiVEN, left, right); /*SPACE*/ 【?】; /*SPACE

11、*/ 【?】; sum += right; if (count 0) printf(nnThere are %d solutions in total., count); else printf(nnSorry, there is NO solution at all.);答案:=(答案1)=left+=或=left=left+1=或=+left=(答案2)=count+=或=count=count+=或=+count=或=count=count+1=(答案3)=right+=或=right=right+=或=+right=或=right=right+1第8题 (10.0分)/*-【程序填空】

12、-功能:从键盘输入一个字符串,将小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存。输入的字符串 以!结束。-*/ #include #include #include main() FILE *fp; char str100; int i=0; if(fp=fopen(test,w)=NULL) printf(cannot open the filen); exit(0); printf(please input a string:n); gets(str); /*SPACE*/ while(【?】) if(stri=a&stri=z) /*SPACE*/ 【?】; fp

13、utc(stri,fp); i+; fclose(fp); /*SPACE*/ fp=fopen(test,【?】); fgets(str,strlen(str)+1,fp); printf(%sn,str); fclose(fp);答案:=(答案1)=stri != !=(答案2)=stri=stri-32=或=stri= stri -32=(答案3)=r=或=wr=或=wr+第9题 (10.0分)/*-【程序填空】-功能:求100999之间的水仙花数说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。例如:153135333)。-*/#include int fun(int n)

14、int i,j,k,m; m=n; /*SPACE*/ 【?】; for(i=1;i4;i+) /*SPACE*/ 【?】; m=(m-j)/10; k=k+j*j*j; if(k=n) /*SPACE*/ 【?】; else return(0);main() int i; for(i=100;i1000;i+) /*SPACE*/ if(【?】=1) printf(%d is ok!n ,i);答案:=(答案1)=k=0=(答案2)=j=m%10=或=j=m-m/10*10=或=j=m-10*(m/10)=(答案3)=return(1)=(答案4)=fun(i)第10题 (10.0分)/*-

15、【程序填空】-功能:有一组基数值(正整数),输入一个正整数(小于100), 问:如果该数由基数值相加构成(每个基数可以重复使用) ,那么最少可能利用的基数是多少个。-*/#include #include #define MAXSiZE 100/*#define min(a,b) (a) = (b) ? (a) : (b)*/void main(void) int numMAXSiZE+1; int base = 1, 3, 4 ; int k= sizeof(base)/sizeof(int); int n; int i, j, MIN; char line100; printf(n=); printf(nnBase Values : ); for (i = 0; i );

温馨提示

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

评论

0/150

提交评论