计算机二级C语言试题 改错部分.docx

上传人:b****5 文档编号:28848658 上传时间:2023-07-20 格式:DOCX 页数:132 大小:48.94KB
下载 相关 举报
计算机二级C语言试题 改错部分.docx_第1页
第1页 / 共132页
计算机二级C语言试题 改错部分.docx_第2页
第2页 / 共132页
计算机二级C语言试题 改错部分.docx_第3页
第3页 / 共132页
计算机二级C语言试题 改错部分.docx_第4页
第4页 / 共132页
计算机二级C语言试题 改错部分.docx_第5页
第5页 / 共132页
点击查看更多>>
下载资源
资源描述

计算机二级C语言试题 改错部分.docx

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

计算机二级C语言试题 改错部分.docx

计算机二级C语言试题改错部分

国家二级计算机-C语言上机100套题-电子版(改错上)

==========================================

001

==========================================

------------------------------------------

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

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

例如,给字符串s输入:

AaaaBBb123CCccccd,则应输出结果:

upper=5,1ower=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)++;

==========================================

002

==========================================

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

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

t=1-1/(2×2)-1/(3×3)-…-1/(m×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);

==================================================

003

==================================================

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

根据形参m,计算下列公式的值。

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;

======================================================

004

======================================================

下列给定的程序中,函数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)错误:

缺少大括号      正确:

加}

005

====================================================

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

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

 

例如,若m中的值为5,则应输出:

1.463611。

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

注意:

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

试题程序:

#include

#include

doublefun(int m)

{

double y=1.0;

int   i;

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

for (i=2; i

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

y+=1/(i*i);

return(y);

}

main()

{

int n=5;

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)

==========================================================

006

==========================================================

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

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

 

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

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

注意:

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

试题程序:

#include

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

intfun(n)

{

int c;

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

if(n=1)

c=10;

else

c=fun(n-1)+2;

return (c);

}

main()

{

int n;

printf("Entern:

");

scanf("%d",&n);

printf("Theresult:

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

}

------------------------------------------------------

(1)错误:

intfun(n)       正确:

intfun(intn)

(2)错误:

if(n=1) 正确:

if(n==1)

=======================================================

007

=======================================================

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

计算n!

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

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

注意:

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

试题程序:

#include

#include

doublefun(int n)

{   

double result=1.0;

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

ifn==0

return1.0;

while (n>1&&n<170)

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

result=n--;

returnresult;

}

main()

{

intn;

printf("InputN:

");

scanf("%d",&n);

printf("\n\n%d!

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

}

---------------------------------------------------

(1)错误:

ifn==0 正确:

if(n=0)

(2)错误:

result=n--; 正确:

result*=n--;

======================================================

008

======================================================

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

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

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

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

 

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

注意:

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

试题程序:

#include

#include

longfun(long num)

{

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

longk;

do

{

k*=num%10;

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

num\=10;

}while(num);

return(k);

}

main()

{

longn;

printf("\pleaseenteranumber:

");

scanf("%ld",&n);

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

}

-----------------------------------------------------

(1)错误:

longk; 正确:

longk=1;

(2)错误:

num\=10; 正确:

num/=10;

009

=======================================================

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

将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如当s中的数为87653142时,t中的数为7531。

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

注意:

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

试题程序:

#include 

#include 

#include 

voidfun(longs,long*t)

{intd;

 longs1=1;

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

 t=0;

 while(s>0)

   {d=s%10;

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

     if(d%2==0)

       {*t=d*s1+*t;

        s1*=10;

       }

   s/=10;

   }

voidmain()

{longs,t;

 system("CLS");

 printf("\nPleaseenters:

");scanf

("%ld",&s);

 fun(s,&t);

 printf("Theresultis:

%ld\n",t);

}

---------------------------------------------

(1)错误:

t=0;        正确:

*t=0;

(2)错误:

if(d%2==0)      正确:

if(d%2!

=0)

================================================

010

================================================

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

计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。

注意:

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

试题程序:

#include

#include

#include

#defineN80

 intfun(char*s,char*t)

{

   intn;

char*p,*r;

n=0;

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

p=&s[0];

*r=t;

while(*p)

{

if(*r==*p)

{

r++;

if(*r=='\0')

{

n++;

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

____填空____

}

}

p++;

}

returnn;

}

main()

{

chara[N],b[N];

intm;

printf("\nPleaseenterstringa:

");

gets(a);

printf("\nPleaseentersUbstringb:

");

gets(b);

m=fun(a,b);

m=printf("\nTheresultis:

m=%d\n",m);

}

------------------------------------------

(1)错误:

*r=t; 正确:

r=t;

(2)应填:

r=t;或r=&t[0];

================================================

011

================================================

数列中,第一项为3,后一项都比前一项的值增5。

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

计算前n(4≤n≤50)项的累计和。

在累加过程中把那些被4除后余2的当前累加值放入数组中,符合此条件的累加值的个数作为函数值返回主函数里。

如,当n的值为20时,该数列为3,8,13,18,23,28,…,93,98。

符合此条件的累加值应为42,126,366,570,1010。

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

注意:

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

试题程序:

#include 

#defineN20

intfun(intn,int*a)

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

{inti,j,k,sum;

 sum=0;

 for(k=3,i=0;i

    {sum=sum+k;

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

      if(sum%4=2)

      a[j++]=sum;

    }

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

 returnj;

}

voidmain()

{inta[N],d,n,i;

printf("\nEntern(4<=n<=50):

");

scanf("%d",&n);

 d=fun(n,a);

 printf("\n\nTheresult:

\n");

 for(i=0;i

printf("%6d",a[i]);

printf("\n\n");

}

-----------------------------------------------

(1)错误:

inti,j,k,sum; 正确:

inti,j=0,k,sum;

(2)错误:

if(sum%4=2) 正确:

if(sum%4==2)

(3)错误:

returnj; 正确:

returnj++;

==================================================

012

==================================================

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

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

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

例如:

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

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

注意:

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

试题程序:

#include

#include

double fun(int x[])

{

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

int sum=0.0;

int c=0,i=0;

while(x[i] !

=0)

{

if(x[i] > 0)

{

sum+=x[i];

c++;

}

i++;

}

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

sum\=c;

returnsum;

}

main()

{

int x[1000];

int i=0;

printf("\nPleaseentersomedata(endwith0):

");

do

{

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

}while(x[i++]!

=0);

printf("%lf\n",fun(x));

}

--------------------------------------------------

(1)错误:

intsum=0.0; 正确:

doublesum=0.0;

(2)错误:

sum\=c; 正确:

sum/=c;

==================================================

013

==================================================

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

求k!

(k<13),所求阶乘的值作为函数值返回。

例如:

若k=10,则应输出3628800。

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

注意:

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

试题程序:

#include

#include

longfun(int k)

{

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

ifk>1

   return(k*fun(k-1));

return1;

}

main()

{

int k=10;

printf("%d!

=%ld\n",k,fun(k));

}

--------------------------------------------------

(1)错误:

ifk>1 正确:

if(k>1)

==================================================

014

==================================================

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

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

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

注意:

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

试题程序:

#include

#include

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

当前位置:首页 > 工作范文 > 制度规范

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

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