程序填空复习DOC.docx
- 文档编号:30192430
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:20
- 大小:18.19KB
程序填空复习DOC.docx
《程序填空复习DOC.docx》由会员分享,可在线阅读,更多相关《程序填空复习DOC.docx(20页珍藏版)》请在冰豆网上搜索。
程序填空复习DOC
试卷编号:
8840
所属语言:
C语言
试卷方案:
C-程序填空
试卷总分:
100分
共有题型:
1种
一、程序填空共10题(共计100分)
第1题(10.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
编程求某年第n天的日期。
用数组表示月天数。
-------------------------------------------------------*/
#include
#include
main()
{
inty,m,f,n;
inta[12]={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***********/
a[1]【?
】f;
if(n<1||n>365+f)
{
printf("error!
\n");exit(0);
}
/***********SPACE***********/
for(m=1;n【?
】a[m-1];n-=a[m-1],m++);
printf("y=%d,m=%d,d=%d\n",y,m,n);
}
答案:
=======(答案1)=======
||
=======(答案2)=======
+=
=========或=========
=a+
=======(答案3)=======
>
第2题(10.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
下面的程序是求1!
+3!
+5!
+……+n!
的和。
-------------------------------------------------------*/
#include
main()
{
longintf,s;
inti,j,n;
/***********SPACE***********/
【?
】;
scanf("%d",&n);
/***********SPACE***********/
for(i=1;i<=n;【?
】)
{
f=1;
/***********SPACE***********/
for(j=1;【?
】;j++)
/***********SPACE***********/
【?
】;
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
答案:
=======(答案1)=======
s=0
=======(答案2)=======
i+=2
=========或=========
i=i+2
=========或=========
i++,i++
=======(答案3)=======
j<=i
=========或=========
i>=j
=========或=========
j
=========或=========
i+1>j
=======(答案4)=======
f=f*j
第3题(10.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二
个小孩2块,第三个小孩8块,第四个小孩22块,第五个
小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩
6块,第九个小孩14块,第十个小孩20块。
然后所有的小孩
同时将自己手中的糖分一半给左边的小孩;糖块数为奇数的人
可向老师要一块。
问经过这样几次调整后大家手中的糖的块数
都一样?
每人各有多少块糖?
-------------------------------------------------------*/
#include
main()
{
inti,count=0,a[11]={0,10,2,8,22,16,4,10,6,14,20};
/***********SPACE***********/
while(【?
】)
{
for(i=1;i<=10;i++)
a[i-1]=a[i-1]/2+a[i]/2;
a[10]=a[10]/2+a[0];
for(i=1;i<=10;i++)
/***********SPACE***********/
if(【?
】)a[i]++;
for(i=1;i<10;i++)
/***********SPACE***********/
if(a[i]!
=a[i+1])【?
】;
if(i==10)
break;
else
{
a[0]=0;
count++;
}
}
printf("count=%dnumber=%d\n",count,a[1]);
}
答案:
=======(答案1)=======
1
=======(答案2)=======
a[i]%2==1
=======(答案3)=======
break
第4题(10.0分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
输入某年某月某日,判断这一天是这一年的第几天?
-------------------------------------------------------*/
#include
main()
{
intday,month,year,sum,leap;
printf("\npleaseinputyear,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
case1:
sum=0;break;
case2:
sum=31;break;
case3:
sum=59;break;
/***********SPACE***********/
case4:
【?
】;break;
case5:
sum=120;break;
case6:
sum=151;break;
case7:
sum=181;break;
case8:
sum=212;break;
case9:
sum=243;break;
case10:
sum=273;break;
case11:
sum=304;break;
case12:
sum=334;break;
default:
printf("dataerror");break;
}
/***********SPACE***********/
【?
】;
/***********SPACE***********/
if(year%400==0||(【?
】)
leap=1;
else
leap=0;
/***********SPACE***********/
if(【?
】)
sum++;
printf("itisthe%dthday.",sum);
}
答案:
=======(答案1)=======
sum=90
=======(答案2)=======
sum=sum+day
=========或=========
sum=sum+day
=======(答案3)=======
year%4==0&&year%100!
=0)
=======(答案4)=======
leap==1&&month>2
=========或=========
leap==1&&month>2
=========或=========
leap==1&&2 第5题(10.0分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 考查字符串数组的应用。 输出26个英文字母。 -------------------------------------------------------*/ #include voidmain(void) { charstring[256]; inti; /***********SPACE***********/ for(i=0;i<26;【? 】) /***********SPACE***********/ string[i]=【? 】; string[i]='\0'; /***********SPACE***********/ printf("thearrarycontains%s\n",【? 】); } 答案: =======(答案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 元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡 各多少只? -------------------------------------------------------*/ #include main() { intcocks,hens,chicks; cocks=0; while(cocks<=19) { /***********SPACE***********/ 【? 】=0; /***********SPACE***********/ while(hens<=【? 】) { chicks=100-cocks-hens; if(5*cocks+3*hens+chicks/3==100) printf("%d,%d,%d\n",cocks,hens,chicks); /***********SPACE***********/ 【? 】; } /***********SPACE***********/ 【? 】; } } 答案: =======(答案1)======= hens =======(答案2)======= 33 =======(答案3)======= hens++ =========或========= ++hens =========或========= hens=hens+1 =======(答案4)======= cocks++ =========或========= ++cocks =========或========= cocks=cocks+1 =========或========= cocks=cocks+1 第7题(10.0分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 给出一个正整数,找到一组连续的数,使之累加和等于给 定的正整数。 输出存在多少组这样连续的数,及每组的左 右边界。 例如: 15=1+2+3+4+5 15=4+5+6 15=7+8 所以结果有3组值分别是1->5,4->6,7->8 -------------------------------------------------------*/ #include #include voidmain(void) { longleft,right; longsum; longGiVEN; intcount=0; charline[100]; printf("\nConsecutivesumtoafixedgivennumber"); printf("\n=======================================\n"); printf("\nYournumber(>0)please--->"); gets(line); GiVEN=atol(line); for(sum=0,right=1;sum ; for(left=1,right--;left<=GiVEN/2;) if(sum>GiVEN) { sum-=left; /***********SPACE***********/ 【? 】; } else { if(sum==GiVEN) { printf("\n%ld=sumfrom%ldto%ld", GiVEN,left,right); /***********SPACE***********/ 【? 】; } /***********SPACE***********/ 【? 】; sum+=right; } if(count>0) printf("\n\nThereare%dsolutionsintotal.",count); else printf("\n\nSorry,thereisNOsolutionatall."); } 答案: =======(答案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分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 从键盘输入一个字符串,将小写字母全部转换成大写字母, 然后输出到一个磁盘文件“test”中保存。 输入的字符串 以! 结束。 -------------------------------------------------------*/ #include #include #include main() { FILE*fp; charstr[100]; inti=0; if((fp=fopen("test","w"))==NULL) { printf("cannotopenthefile\n"); exit(0); } printf("pleaseinputastring: \n"); gets(str); /***********SPACE***********/ while(【? 】) { if(str[i]>='a'&&str[i]<='z') /***********SPACE***********/ 【? 】; fputc(str[i],fp); i++; } fclose(fp); /***********SPACE***********/ fp=fopen("test",【? 】); fgets(str,strlen(str)+1,fp); printf("%s\n",str); fclose(fp); } 答案: =======(答案1)======= str[i]! ='! ' =======(答案2)======= str[i]=str[i]-32 =========或========= str[i]=str[i]-32 =======(答案3)======= "r" =========或========= "wr" =========或========= "wr+" 第9题(10.0分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 求100-999之间的水仙花数 说明: 水仙花数是指一个三位数的各位数字的立方和是这个数本身。 例如: 153=1^3+5^3+3^3)。 -------------------------------------------------------*/ #include intfun(intn) {inti,j,k,m; m=n; /***********SPACE***********/ 【? 】; for(i=1;i<4;i++) { /***********SPACE***********/ 【? 】; m=(m-j)/10; k=k+j*j*j; } if(k==n) /***********SPACE***********/ 【? 】; else return(0);} main() { inti; for(i=100;i<1000;i++) /***********SPACE***********/ if(【? 】==1) printf("%disok! \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分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 有一组基数值(正整数),输入一个正整数(小于100), 问: 如果该数由基数值相加构成(每个基数可以重复使用) ,那么最少可能利用的基数是多少个。 -------------------------------------------------------*/ #include #include #defineMAXSiZE100 /*#definemin(a,b)((a)<=(b)? (a): (b))*/ voidmain(void) { intnum[MAXSiZE+1]; intbase[]={1,3,4}; intk=sizeof(base)/sizeof(int); intn; inti,j,MIN; charline[100]; printf("\n============================"); printf("\n\nBaseValues: "); for(i=0;i printf("%d",base[i]); printf("\n\nYourinputplease-->"); gets(line); n=atoi(line); num[0]=0; num[1]=1; for(i=2;i<=n;i++) { /***********SPACE***********/ 【? 】; for(j=0;j if(i>=base[j]) MIN=min(num[i-base[j]]+1,MIN); /***********SPACE***********/ 【? 】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 填空 复习 DOC