全国计算机二级C语言试题库.docx

上传人:b****6 文档编号:7194657 上传时间:2023-01-21 格式:DOCX 页数:118 大小:50.20KB
下载 相关 举报
全国计算机二级C语言试题库.docx_第1页
第1页 / 共118页
全国计算机二级C语言试题库.docx_第2页
第2页 / 共118页
全国计算机二级C语言试题库.docx_第3页
第3页 / 共118页
全国计算机二级C语言试题库.docx_第4页
第4页 / 共118页
全国计算机二级C语言试题库.docx_第5页
第5页 / 共118页
点击查看更多>>
下载资源
资源描述

全国计算机二级C语言试题库.docx

《全国计算机二级C语言试题库.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言试题库.docx(118页珍藏版)》请在冰豆网上搜索。

全国计算机二级C语言试题库.docx

全国计算机二级C语言试题库

下列给定程序中,函数fun的功能是:

计算S=f(-n)+f(-n+1)+…+f(0)+f

(1)+f

(2)+…f(n)的值。

例如,当n为5时,函数值应为10.407143。

f(x)函数定义如下:

f(x)=

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

#include

/*************found**************/

f(doublex)

{

if(x==0.0||x==2.0)

return0.0;

elseif(x<0.0)

return(x-1)/(x-2);

else

return(x+1)/(x-2);

}

doublefun(intn)

{

inti;doubles=0.0,y;

for(i=-n;i<=n;i++)

{y=f(1.0*i);s+=y;}

/*************found**************/

returns

}

voidmain()

{system("CLS");

printf("%f\n",fun(5));

}

【参考答案】

(1)错误:

f(doublex)正确:

doublef(doublex)

(2)错误:

returns正确:

returns;

t=1+1/2+1/3+1/4+…+1/m

例如,若输入5,则应输出2.283333。

请改正程序中的错误,使它能计算出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

doublefun(intm)

{

doublet=1.0;

intI;

for(I=2;I<=m;I++)

/*************found**************/

t+=1.0/k;

/*************found**************/

returnI;

}

voidmain()

{intm;

system("CLS");

printf("\nPleaseenter1integernumber:

");

scanf("%d",&m);

printf("\nTheresultis%1f\n",fun(m));

}

【参考答案】

(1)错误:

t+=1.0/k;正确:

t+=1.0/I;

(2)错误:

returnI;正确:

returnt;

下列给定程序中,函数fun的功能是:

分别统计字符串中大写字母和小写字母的个数。

例如,给字符串s输入:

AaaaBBb123CCccccd,则应输出结果:

upper=5,lower=9。

请改正程序中的错误,使它能计算出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

/*********found***********/

voidfun(char*s,inta,intb)

{

while(*s)

{

/*********found***********/

if(*s>='A'&&*s<='Z')

a++;

/*********found***********/

if(*s>='a'&&*s<='z')

b++;

s++;

}

}

main()

{

chars[100];

intupper=0,lower=0;

printf("\npleaseastring:

");

gets(s);

fun(s,&upper,&lower);

printf("\nupper=%dlower=%d\n",upper,lower);

}

【参考答案】

(1)错误:

voidfun(char*s,inta,intb)

正确:

voidfun(char*s,int*a,int*b)

(2)错误:

a++;正确:

(*a)++;

(3)错误:

b++;正确:

(*b)++;

下列给定程序中函数fun的功能是:

计算正整数num各位上的数字之积。

例如,若输入252,则输出应该是20。

若输入202,则输出应该是0。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

longfun(longnum)

{

/*************found**************/

longk;

do

{

k*=num%10;

/*************found**************/

num\=10;

}while(num);

return(k);

}

main()

{

intn;

printf("\Pleaseenteranumber:

");

scanf("%ld",&n);

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

}

【参考答案】

(1)错误:

longk;正确:

longk=1;

(2)错误:

num\=10;正确:

num/=10;

下列给定程序中函数fun的功能是:

计算n!

例如,给n输入5,则输出120.000000。

请改正程序中的错误,使程序能输出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

doublefun(intn)

{doubleresult=1.0;

/*************found**************/

ifn==0

return1.0;

while(n>1&&n<170)

/*************found**************/

result=n--;

returnresult;

}

voidmain()

{

intn;

printf("InputN:

");

scanf("%d",&n);

printf("\n\n%d!

=%lf\n",n,fun(n));

}

【参考答案】

(1)错误:

ifn==0正确:

if(n==0)

(2)错误:

result=n--;正确:

result*=n--;

下列给定的程序中,函数fun的功能是:

计算并输出k以内最大的10个能被13或17整除的自然数之和。

k的值由主函数传入,若k的值为500,则函数的值为4622。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

intfun(intk)

{intm=0,mc=0,j;

while((k>=2)&&(mc<10))

{

/*************found**************/

if((k%13=0)||(k%17=0))

{m=m+k;mc++;}

k--;

/*************found**************/

returnm;

}

voidmain()

{system("CLS");

printf("%d\n",fun(500));

}

【参考答案】

(1)错误:

if((k%13=0)||(k%17=0))

正确:

if((k%13==0)||(k%17==0))

(2)错误:

缺少大括号正确:

加}

下列给定程序中,函数fun()的功能是:

根据整型形参m的值,计算如下公式的值:

请改正函数fun()中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

doublefun(intm)

{doubley=1.0;

intI;

/*************found**************/

for(I=2;I

/*************found**************/

y-=1/(I*I);

return(y);

}

voidmain()

{intn=5;

system("CLS");

printf("\nTheresultis%1f\n",fun(n));

}

【参考答案】

(1)错误:

for(i=2;i

正确:

for(i=2;i<=m;i++)

(2)错误:

y-=1/(i*i);

正确:

y-=1.0/(i*i);

在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。

下列给定程序中,函数fun的功能是:

计算数组元素中值为正数的平均值(不包括0)。

例如,数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为19.250000。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

doublefun(intx[])

{

/*************found**************/

intsum=0.0;

intc=0,I=0;

while(x[I]!

=0)

{

if(x[I]>0)

{

sum+=x[I];

c++;

}

I++;

}

/*************found**************/

sum=sum\c;

returnsum;

}

【参考答案】

(1)错误:

intsum=0.0;正确:

doublesum=0.0;

(2)错误:

sum\=c;正确:

sum/=c;

下列给定程序中,函数fun的功能是:

判断一个整数m是否是素数,若是返回1,否则返回0。

在main函数中,若fun()返回1则输出"YES",若fun()返回0则输出"NO!

"。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

intfun(intm)

{intk=2;

while(k<=m&&(m%k))

/*************found**************/

k++

/*************found**************/

if(m=k)

return1;

elsereturn0;

}

voidmain()

{intn;

system("CLS");

printf("\nPleaseentern:

");

scanf("%d",&n);

if(fun(n))printf("YES\n");

elseprintf("NO!

\n");

}

【参考答案】

(1)错误:

k++正确:

k++;

(2)错误:

if(m=k)正确:

if(m==k)

下列给定程序中,函数fun的功能是:

按如下递归公式求函数值。

例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

/*************found**************/

intfun(n)

{

intc;

/*************found**************/

if(n=1)

c=10;

else

c=fun(n-1)+2;

return(c);

}

voidmain()

{

intn;

printf("Entern:

");

scanf("%d",&n);

printf("Theresult:

%d\n\n",fun(n));

}

【参考答案】

(1)错误:

intfun(n)正确:

intfun(intn)

(2)错误:

if(n=1)正确:

if(n==1)

下列给定程序中,函数fun的功能是:

用递归算法计算斐波拉契级数列中第n项的值。

从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,…例如,若给n输入7,该项的斐波拉契级数值为13。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

longfun(intg)

{

/*************found**************/

switch(g);

{case0:

return0;

/*************found**************/

case1;case2:

return1;

}

return(fun(g-1)+fun(g-2));

}

voidmain()

{

longfib;intn;

printf("Inputn:

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

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

fib=fun(n);

printf("fib=%d\n\n",fib);

}

【参考答案】

(1)错误:

switch(g);正确:

去掉分号

(2)错误:

case1;case2:

return1;

正确:

case1:

case2:

return1;

下列给定程序中,函数fun的功能是:

求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#defineN20

/*************found**************/

voidfun(int*a,intn);

{

intI,m,t,k;

for(I=0;I

{

/*************found**************/

m=0;

for(k=I+1;k

if(a[k]>a[m])

m=k;

t=a[I];

a[I]=a[m];

a[m]=t;

}

}

main()

{

intb[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;

system("CLS");

for(i=0;i

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

printf("\n");

fun(b,n);

for(i=0;i

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

printf("\n");

}

【参考答案】

(1)错误:

voidfun(int*a,intn);

正确:

voidfun(int*a,intn)

(2)错误:

m=0;正确:

m=i;

下列给定程序中,函数fun的功能是:

将十进制正整数m转换成进制数,并按位输出。

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

请改正函数fun中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

/*************found**************/

voidfun(intm,intk);

{intaa[20],i;

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

{

/*************found**************/

aa[i]=m/k;

m/=k;

}

for(;i;i--)

/*************found**************/

printf("%d",aa[i]);

}

main()

{

intb,n;

printf("\nPleaseenteranumberandabase:

\n");

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

fun(n,b);

printf("\n");

}

【参考答案】

(1)错误:

voidfun(intm,intk);

正确:

voidfun(intm,intk)

(2)错误:

aa[i]=m/k;

正确:

aa[i]=m%k;

(3)错误:

printf("%d",aa[i]);

正确:

printf("%d",aa[i-1]);

下列给定程序中,函数fun的功能是:

计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。

其中x和y不相等,z和y不等。

例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

/*************found**************/

#defineFU(m,n)(m/n)

floatfun(floata,floatb,floatc)

{floatvalue;

value=FU(a+b,a-b)+FU(c+b,c-b);

/*************found**************/

return(Value);

}

voidmain()

{floatx,y,z,sum;

printf("Inputxyz:

:

");

scanf("%f%f%f",&x,&y,&z);

printf("x=%f,y=%f,z=%f\n",x,y,z);

if(x==y||y==z)

{printf("Dataerror!

\n");

exit(0);}

sum=fun(x,y,z);

printf("Theresultis:

%5.2f\n",sum);

}

【参考答案】

(1)错误:

#defineFU(m,n)(m/n)

正确:

#defineFU(m,n)(m)/(n)

(2)错误:

return(Value);

正确:

return(value);

下列给定程序中函数fun的功能是:

先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如,当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

#include

voidfun(char*s,char*t)

{

intI,s1;

s1=strlen(s);

for(I=0;I

/*************found**************/

t[I]=s[s1-1];

for(I=0;I

t[s1+I]=s[I];

t[2*s1]='\0';

}

voidmain()

{chars[100],t[100];

system("CLS");

printf("\nPleaseenterstrings:

");

scanf("%s",s);

fun(s,t);

printf("Theresultis:

%s\n",t);

}

【参考答案】

(1)错误:

t[i]=s[s1-1];正确:

t[i]=s[s1-1-i];

下列给定程序中,函数fun的功能是:

求三个数的最小公倍数。

例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

intfun(intx,inty,intz)

{intj,t,n,m;

/*************found**************/

j=1;

t=m=n=1;

/*************found**************/

while(t!

=0&&m!

=0&&n!

=0)

{

j=j+1;

t=j%x;

m=j%y;

n=j%z;

}

returnj;

}

voidmain()

{

intx1,x2,x3,j;

printf("Inputx1x2x3:

");

scanf("%d%d%d",&x1,&x2,&x3);

printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);

j=fun(x1,x2,x3);

printf("Theminimalcommonmultipleis:

%d\n",j);

}

【参考答案】

(1)错误:

j=1;正确:

j=0;

(2)错误:

while(t!

=0&&m!

=0&&n!

=0)

正确:

while(t!

=0

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

当前位置:首页 > 高等教育 > 工学

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

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