浙江省计算机二级c语言上机考试真题二程序填空.docx

上传人:b****8 文档编号:10765837 上传时间:2023-02-22 格式:DOCX 页数:27 大小:19.75KB
下载 相关 举报
浙江省计算机二级c语言上机考试真题二程序填空.docx_第1页
第1页 / 共27页
浙江省计算机二级c语言上机考试真题二程序填空.docx_第2页
第2页 / 共27页
浙江省计算机二级c语言上机考试真题二程序填空.docx_第3页
第3页 / 共27页
浙江省计算机二级c语言上机考试真题二程序填空.docx_第4页
第4页 / 共27页
浙江省计算机二级c语言上机考试真题二程序填空.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

浙江省计算机二级c语言上机考试真题二程序填空.docx

《浙江省计算机二级c语言上机考试真题二程序填空.docx》由会员分享,可在线阅读,更多相关《浙江省计算机二级c语言上机考试真题二程序填空.docx(27页珍藏版)》请在冰豆网上搜索。

浙江省计算机二级c语言上机考试真题二程序填空.docx

浙江省计算机二级c语言上机考试真题二程序填空

(二)程序填空

1,求最大公约数

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入m、n(要求输入数均大于0),输出它们的最大公约数。

#include

voidmain()

{intm,n,k;

while(scanf("%d%d",&m,&n),_______1______);

for(____2____;n%k!

=0||m%k!

=0;k--);

printf("%d\n",k);

}

∙#include

∙voidmain()

∙{intm,n,k;

∙while(scanf("%d%d",&m,&n)!

=EOF&&m<=0||n<=0);

∙{for(k=m;n%k!

=0||m%k!

=0;k--);

∙printf("%d\n",k);

∙}

∙}

2,分别统计字符串中各字符

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

分别统计字符串中英文字母、数字和其他字符出现的次数。

#include

#include

voidmain()

{chara[80];intn[3]={0},i;

gets(a);

for(i=0;a[i]!

='\0';i++)

{if(/*-------1---------*/)/*统计字母个数*/

n[0]++;

elseif(/*------2------*/)/*统计数字个数*/

n[1]++;

else

n[2]++;

}

for(i=0;i<3;i++)printf(/*------3------*/);

}

∙#include

∙#include

∙intmain()

∙{chara[80];intn[3]={0},i;

∙gets(a);

∙for(i=0;a[i]!

='\0';i++)

∙{if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')

∙n[0]++;

∙elseif(a[i]>='0'&&a[i]<='9')

∙n[1]++;

∙else

∙n[2]++;

∙}

∙for(i=0;i<3;i++)printf("%d\n",n[i]);

∙}

3,求相邻两元素和

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。

例如:

b[1]=a[1]+a[0],…………,b[9]=a[9]+a[8]。

#include

voidmain()

{

inta[10],b[10],i;

printf("\nInput10numbers:

");

for(i=0;i<10;i++)/*数组输入*/

scanf("%d",&a[i]);

for(i=1;i<10;i++)

b[i]=_______1_____;/*计算b数组中的元素*/

for(i=1;i<10;i++)

{

printf("%3d",b[i]);

if(_____2_______)printf("\n");/*每行打印3个数据*/

}

}

∙#include

∙voidmain()

∙{

∙inta[10],b[10],i;

∙printf("\nInput10numbers:

");

∙for(i=0;i<10;i++)

∙scanf("%d",&a[i]);

∙for(i=1;i<10;i++)

∙b[i]=a[i]+a[i-1];

∙for(i=1;i<10;i++)

∙{

∙printf("%3d",b[i]);

∙if(i%3==0)printf("\n");

∙}

∙}

4求数字和

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include

#include

voidmain()

{

intn,s=0;

scanf("%d",&n);

______1______

while(n!

=0){

______2______

n=n/10;

}

printf("%d\n",s);

}

∙#include

∙#include

∙voidmain()

∙{

∙intn,s=0;

∙scanf("%d",&n);

∙if(n<0){n=-n;}

∙while(n!

=0){

∙s=s+n%10;

∙n=n/10;

∙}

∙printf("%d\n",s);

∙}

5,求整数位数

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156则输出5)。

#include

voidmain()

{intn,k=0;

scanf("%d",&n);

while(n!

=0){

k++;

n=n/10;

}

printf("%d\n",k);

}

∙#include

∙voidmain()

∙{intn,k=0;

∙scanf("%d",&n);

∙while(n!

=0){

∙k++;

∙n=n/10;

∙}

∙printf("%d\n",k);

∙}

6,数列2项和

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

数列的第1、2项均为1,此后各项值均为该项前二项之和。

计算数列第30项的值。

#include

longf(intn);

voidmain()

{

printf("%ld\n",_____1____);

}

longf(intn)

{

if(_______2______)

return1;

else

return______3_____;

}

∙#include

∙longf(intn);

∙intmain()

∙{

∙printf("%ld\n",f(30));

∙}

∙longf(intn)

∙{

∙if(n==1||n==2)

∙return1;

∙else

∙returnf(n-1)+f(n-2);

∙}

7,数倒置

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

#include

#include

longf(longn)

{longm,y=0;

m=fabs(n);

while(m!

=0){

y=y*10+m%10;

______1______;

}

if(_______2_____)returny;

elsereturn-y;

}

intmain()

{

printf("%ld\n",f(12345));printf("%ld\n",f(-34567));

return0;

}

∙#include

∙#include

∙longf(longn)

∙{longm,y=0;

∙m=fabs(n);

∙while(m!

=0){

∙y=y*10+m%10;

∙m=m/10;

∙}

∙if(n>=0)returny;

∙elsereturn-y;

∙}

∙voidmain()

∙{

∙printf("%ld\n",f(12345));printf("%ld\n",f(-34567));

∙}

8,删除数字字符

下面程序中中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用函数f,从字符串中删除所有的数字字符。

#include

#include

#include

voidf(char*s)

{inti=0;

while(s[i]!

='\0'){

if(isdigit(s[i]))____1____;

else______2___;}

}

voidmain()

{charstr[80];

gets(str);f(str);puts(str);

}

∙#include

∙#include

∙#include

∙voidf(char*s)

∙{inti=0;

∙while(s[i]!

='\0'){

∙if(isdigit(s[i]))strcpy(s+i,s+i+1);

∙elsei++;}

∙}

∙voidmain()

∙{charstr[80];

∙gets(str);f(str);puts(str);

∙}

9,删除c

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

将字符串s中所有的字符'c'删除。

#include

voidmain()

{

chars[80];

inti,j;

gets(s);

for(i=j=0;str[i]!

='\0';i++)

if(______1_______)

{

s[j]=s[i];

j++

}

______2______;

puts(s);

}

∙#include

∙voidmain()

∙{chars[80];

∙inti,j;

∙gets(s);

∙for(i=j=0;s[i]!

='\0';i++)

∙if(s[i]!

='c')

∙{s[j]=s[i];

∙j++;

∙}

∙s[j]='\0';

∙puts(s);

∙}

10,去数组负数

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入数组x[7],调用函数f,去除数组中的负数,输出结果为:

1346

#include

voidf(int*a,int*m)

{inti,j;

for(i=0;i<*m;i++)

if(a[i]<0){

for(j=i--;j<*m-1;j++)a[j]=a[j+1];

_____1_____;

}

}

voidmain()

{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______;

for(i=0;i

printf("\n");

}

∙#include

∙voidf(int*a,int*m)

∙{inti,j;

∙for(i=0;i<*m;i++)

∙if(a[i]<0){

∙for(j=i--;j<*m-1;j++)a[j]=a[j+1];

∙*m=*m-1;

∙}

∙}

∙intmain()

∙{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

∙f(x,&n);

∙for(i=0;i

∙printf("\n");

∙}

11,平均成绩

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。

#include

structSTUDENT

{

charname[16];

intmath;

intenglish;

intcomputer;

intaverage;

};

voidGetAverage(structSTUDENT*pst)/*计算平均成绩*/

{

intsum=0;

sum=______1______;//pst->math+pst->english+pst->computer

pst->average=sum/3;

}

voidmain()

{

inti;

structSTUDENTst[4]={{"Jessica",98,95,90},{"Mike",80,80,90},

{"Linda",87,76,70},{"Peter",90,100,99}};

for(i=0;i<4;i++)

{

GetAverage(______2______);//st+i

}

printf("Name\tMath\tEnglish\tCompu\tAverage\n");

for(i=0;i<4;i++)

{

printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english,

st[i].computer,st[i].average);

}

}

12,后移5位

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入的一个小写字母,将字母循环后移5个位置后输出,如’a’变成’f’,‘w’变成’b’。

#include

voidmain()

{

charc;

c=getchar();

if(______1______)

c=c+5;

else

if(c>='v'&&c<='z')

______2______

putchar(c);

}

∙#include

∙intmain()

∙{

∙charc;

∙c=getchar();

∙if(c>='a'&&c<'v')

∙c=c+5;

∙else

∙if(c>='v'&&c<='z')

∙c='a'+'z'-c;

∙putchar(c);

∙}

13,函数最大值

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include

#include

#definef(x)x*x-5*x+sin(x)

voidmain()

{

intx;floatmax;

/*----1---*/;

for(x=2;x<=10;x++)

if(max

fprintf(p,"%f\n",max);

}

∙#include

∙#include

∙#definef(x)x*x-5*x+sin(x)

∙intmain()

∙{

∙intx;floatmax;

∙max=f

(1);

∙for(x=2;x<=10;x++)

∙if(max

∙printf("%f\n",max);

∙}

14,2n小于m

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

输入整数n(n>0),求m使得2的m次方小于或等于n、2的m+1次方大于或等于n。

#include"stdio.h"

voidmain()

{intm=0,t=1,n;

while(_____1________);

while(!

(t<=n&&t*2>=n)){

_____2_____

m++;

}

printf("%d\n",m);

}

∙#include"stdio.h"

∙intmain()

∙{intm=0,t=1,n;

∙while(scanf("%d",&n),n<=0);

∙while(!

(t<=n&&t*2>=n)){

∙t=t*2;

∙m++;

∙}

∙printf("%d\n",m);

∙}

15,findthe

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

调用find函数在输入的字符串中查找是否出现"the"这个单词。

如果查到返回出现的次数;如果未找到返回0。

#include"stdio.h"

intfind(char*str)

{

char*fstr="the";

inti=0,j,n=0;

while(str[i]!

='\0')

{

for(______1______)

if(str[j+i]!

=fstr[j])break;

if(______2______)n++;

i++;

}

returnn;

}

voidmain()

{chara[80];

gets(a);

printf("%d",find(a));

}

∙#include"stdio.h"

∙intfind(char*str)

∙{

∙char*fstr="the";

∙inti=0,j,n=0;

∙while(str[i]!

='\0')

∙{

∙for(j=0;j<3;j++)

∙{if(str[j+i]!

=fstr[j])break;

∙if(j==2)n++;}

∙i++;

∙}

∙returnn;

∙}

∙main()

∙{chara[80];

∙gets(a);

∙printf("%d",find(a));

∙}

16,ditoh

下面程序中中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。

例如:

输入十进制数79,将输出十六进制4f。

#include"stdio.h"

#include"string.h"

chartrans(intx)

{

if(x<10)return'0'+x;

else_______1________

}

intDtoH(intn,char*str)

{

inti=0;

while(n!

=0)

{

________2________

n/=16;i++;}

returni-1;

}

voidmain()

{

inti,k,n;

charstr[30];

scanf("%d",&n);

k=DtoH(n,str);

for(i=0;i<=k;i++)printf("%c",str[k-i]);

}

∙#include"stdio.h"

∙#include"string.h"

∙chartrans(intx)

∙{

∙if(x<10)return'0'+x;

∙elsereturn'a'+x-10;

∙}

∙intDtoH(intn,char*str)

∙{

∙inti=0;

∙while(n!

=0)

∙{

∙str[i]=trans(n%16);

∙n/=16;i++;}

∙returni-1;

∙}

∙intmain()

∙{

∙inti,k,n;

∙charstr[30];

∙scanf("%d",&n);

∙k=DtoH(n,str);

∙for(i=0;i<=k;i++)printf("%c",str[k-i]);

∙}

17,dec2bin

下面程序中"____N____"是根据程序功能需要填充部分,请完成程序填充(注意:

不得加行、减行、加句、减句,否则后果自负)。

该程序功能:

将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

#include"stdio.h"

voidDec2Bin(intm)

{

intbin[32],j;

for(j=0;m!

=0;j++)

{

bin[j]=m%2;

m=m/2;

}

for(;j!

=0;j--)

printf("%d",bin[j-1]);

}

voidmain()

{

intn;

scanf("%d",&n);

Dec2Bin(n);

}

∙#include"stdio.h"

∙voidDec2Bin(intm)

∙{

∙intbin[32],j;

∙for(j=0;m!

=0;j++)

∙{

∙bin[j]=m%2;

∙m=m/2;

∙}

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

当前位置:首页 > 解决方案 > 学习计划

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

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