程序填空复习DOC.docx

上传人:b****5 文档编号:30192430 上传时间:2023-08-07 格式:DOCX 页数:20 大小:18.19KB
下载 相关 举报
程序填空复习DOC.docx_第1页
第1页 / 共20页
程序填空复习DOC.docx_第2页
第2页 / 共20页
程序填空复习DOC.docx_第3页
第3页 / 共20页
程序填空复习DOC.docx_第4页
第4页 / 共20页
程序填空复习DOC.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

程序填空复习DOC.docx

《程序填空复习DOC.docx》由会员分享,可在线阅读,更多相关《程序填空复习DOC.docx(20页珍藏版)》请在冰豆网上搜索。

程序填空复习DOC.docx

程序填空复习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***********/

【?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1