青大c程序改错题库.docx

上传人:b****7 文档编号:26034874 上传时间:2023-06-17 格式:DOCX 页数:64 大小:26.81KB
下载 相关 举报
青大c程序改错题库.docx_第1页
第1页 / 共64页
青大c程序改错题库.docx_第2页
第2页 / 共64页
青大c程序改错题库.docx_第3页
第3页 / 共64页
青大c程序改错题库.docx_第4页
第4页 / 共64页
青大c程序改错题库.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

青大c程序改错题库.docx

《青大c程序改错题库.docx》由会员分享,可在线阅读,更多相关《青大c程序改错题库.docx(64页珍藏版)》请在冰豆网上搜索。

青大c程序改错题库.docx

青大c程序改错题库

试卷编号:

10578

所属语言:

C语言

试卷方案:

TC_150********2

试卷总分:

440分

共有题型:

1种

 

一、程序改错共44题(共计440分)

第1题(10.0分)题号:

380难度:

中第2章

/*------------------------------------------------------

【程序改错】

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

功能:

输入两个双精度数,函数返回它们的平方和的平方根值。

例如:

输入:

22.936和14.121,输出为:

y=26.934415。

------------------------------------------------------*/

#include

#include

#include

/**********FOUND**********/

doublefun(double*a,*b)

{

doublec;

/**********FOUND**********/

c=sqr(a*a+b*b);

/**********FOUND**********/

return*c;

}

main()

{

doublea,b,y;

printf("Entera,b:

");

scanf("%lf%lf",&a,&b);

y=fun(&a,&b);

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

}答案:

=======(答案1)=======

doublefun(double*a,double*b)

=======(答案2)=======

c=sqrt(*a**a+*b**b);

=======(答案3)=======

returnc;

 

第2题(10.0分)题号:

438难度:

中第2章

/*------------------------------------------------

【程序改错】

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

功能:

编写函数fun,求两个整数的最小公倍数,然后用主

函数main()调用这个函数并输出结果,两个整数由

键盘输入。

------------------------------------------------*/

#include

intfun(intm,intn)

{

inti;

/**********FOUND**********/

if(m=n)

{

i=m;

m=n;

n=i;

}

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

/**********FOUND**********/

if(i%n==1)

return(i);

return0;

}

main()

{

unsignedintm,n,q;

printf("m,n=");

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

/**********FOUND**********/

q==fun(m,n);

printf("p(%d,%d)=%d",m,n,q);

}答案:

=======(答案1)=======

if(m

=======(答案2)=======

if(i%n==0)

=======(答案3)=======

q=fun(m,n);

 

第3题(10.0分)题号:

404难度:

易第2章

/*------------------------------------------------------

【程序改错】

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

功能:

编写函数求2!

+4!

+6!

+8!

+10+12!

+14!

------------------------------------------------------*/

#include

longsum(intn)

{

/**********FOUND**********/

inti,j

longt,s=0;

/**********FOUND**********/

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

{

t=1;

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

t=t*j;

s=s+t;

}

/**********FOUND**********/

return(t);

}

main()

{

printf("thissum=%ld\n",sum(14));

}答案:

=======(答案1)=======

inti,j;

=======(答案2)=======

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

=======(答案3)=======

return(s);

第4题(10.0分)题号:

360难度:

中第2章

/*------------------------------------------------------

【程序改错】

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

功能:

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

例如:

若输入:

252,则输出应该是:

20。

若输入:

202,则输出应该是:

0。

------------------------------------------------------*/

#include

#include

longfun(longnum)

{

/**********FOUND**********/

longk=1

do

{

k*=num%10;

/**********FOUND**********/

num\=10;

/**********FOUND**********/

}while(!

num);

return(k);

}

main()

{

longn;

printf("Pleaseenteranumber:

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

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

}答案:

=======(答案1)=======

longk=1;

=======(答案2)=======

num/=10;

=======(答案3)=======

}while(num);

第5题(10.0分)题号:

413难度:

易第2章

/*------------------------------------------------------

【程序改错】

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

功能:

读取7个数(1-50)的整数值,每读取一个值,程序打印

出该值个数的*。

------------------------------------------------------*/

#include

main()

{

inti,a,n=1;

/**********FOUND**********/

while(n<7)

{

do

{

scanf("%d",&a);

}

/**********FOUND**********/

while(a<1&&a>50);

/**********FOUND**********/

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

printf("*");

printf("\n");

n++;

}

}答案:

=======(答案1)=======

while(n<=7)

=======(答案2)=======

while(a<1||a>50);

=======(答案3)=======

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

第6题(10.0分)题号:

553难度:

中第1章

/*-------------------------------------------------------

【程序改错】

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

题目:

列程序的功能为:

已知圆锥半径r和高h,计算圆锥体积v。

请纠正程序中存在错误,

使程序实现其功能。

-------------------------------------------------------*/

#include

main()

{

/***********FOUND***********/

floatr=10,h=5;

/***********FOUND***********/

v=1/3*3.14159*r2*h;

/***********FOUND***********/

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

}

答案:

=======(答案1)=======

floatr=10,h=5,v;

=======(答案2)=======

v=1.0/3*3.14159*r*r*h;

=======(答案3)=======

printf("v=%f\n",v);

第7题(10.0分)题号:

399难度:

易第2章

/*------------------------------------------------------

【程序改错】

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

功能:

编写函数fun求20以内所有5的倍数之积。

------------------------------------------------------*/

#include

#defineN20

intfun(intm)

{

/**********FOUND**********/

ints=0,i;

for(i=1;i

/**********FOUND**********/

if(i%m=0)

/**********FOUND**********/

s=*i;

returns;

}

main()

{

intsum;

sum=fun(5);

printf("%d以内所有%d的倍数之积为:

%d\n",N,5,sum);

}答案:

=======(答案1)=======

ints=1,i;

=======(答案2)=======

if(i%m==0)

=======(答案3)=======

s=s*i;

第8题(10.0分)题号:

397难度:

中第2章

/*------------------------------------------------------

【程序改错】

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

功能:

输入两个实数,按代数值由小到大输出它们,并在fun()

函数中输出。

(输出的数据都保留2位小数)

------------------------------------------------------*/

#include

 

fun()

{

/**********FOUND**********/

floatt

floata,b;

scanf("%f%f",&a,&b);

/**********FOUND**********/

if(a

{

t=a;

a=b;

b=t;

}

/**********FOUND**********/

printf("%5.2f,%5.2f\n",&a,&b);

}

main()

{

fun();

}答案:

=======(答案1)=======

floatt;

=======(答案2)=======

if(a>b)

=======(答案3)=======

printf("%5.2f,%5.2f\n",a,b);

第9题(10.0分)题号:

28难度:

中第1章

/*------------------------------------------------------

【程序改错】

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

功能:

实现两个字符串的连接。

例如:

输入dfdfqe和12345时,则输出dfdfqe12345.

------------------------------------------------------*/

#include

main()

{

chars1[80],s2[80];

voidscat(chars1[],chars2[]);

gets(s1);

gets(s2);

scat(s1,s2);

puts(s1);

}

voidscat(chars1[],chars2[])

{

inti=0,j=0;

/**********FOUND**********/

while(s1[i]=='\0')

i++;

/**********FOUND**********/

while(s2[j]=='\0')

{

/**********FOUND**********/

s2[j]=s1[i];

i++;

j++;

}

/**********FOUND**********/

s2[j]='\0';

}答案:

=======(答案1)=======

while(s1[i]!

='\0')

=======(答案2)=======

while(s2[j]!

='\0')

=======(答案3)=======

s1[i]=s2[j];

=======(答案4)=======

s1[i]='\0';

第10题(10.0分)题号:

11难度:

中第1章

/*------------------------------------------------------

【程序改错】

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

功能:

用下面的和式求圆周率的近似值。

直到最后一项的绝对值

小于等于0.0001。

π111

—=1-—+—-—+...

4357

------------------------------------------------------*/

#include

/**********FOUND**********/

#include

fun()

{

inti=1;

/**********FOUND**********/

ints=0,t=1,p=1;

/**********FOUND**********/

while(fabs(t)<=1e-4)

{

s=s+t;

p=-p;

i=i+2;

t=p/i;

}

/**********FOUND**********/

printf("pi=%d\n",s*4);

}

main()

{

fun();

}答案:

=======(答案1)=======

#include

=======(答案2)=======

floats=0,t=1,p=1;

=======(答案3)=======

while(fabs(t)>1e-4)

=======(答案4)=======

printf("pi=%f\n",s*4);

第11题(10.0分)题号:

401难度:

易第2章

/*------------------------------------------------------

【程序改错】

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

功能:

编写函数fun计算下列分段函数的值:

x*x+xx<0且x≠-3

f(x)=x*x+5x0≤x<10且x≠2及x≠3

x*x+x-1其它

------------------------------------------------------*/

#include

doublefun(floatx)

{

/**********FOUND**********/

doubley

/**********FOUND**********/

if(x<0||x!

=-3.0)

y=x*x+x;

elseif(x>=0&&x<10.0&&x!

=2.0&&x!

=3.0)

y=x*x+5*x;

else

y=x*x+x-1;

/**********FOUND**********/

returnx;

}

main()

{

doublef;

floatx;

printf("inputx=");

scanf("%f",&x);

f=fun(x);

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

}答案:

=======(答案1)=======

floaty;

=======(答案2)=======

if(x<0&&x!

=-3.0)

=======(答案3)=======

returny;

第12题(10.0分)题号:

10难度:

中第1章

/*------------------------------------------------------

【程序改错】

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

功能:

判断m是否为素数,若是返回1,否则返回0。

------------------------------------------------------*/

#include

/**********FOUND**********/

voidfun(intn)

{

inti,k=1;

if(m<=1)k=0;

/**********FOUND**********/

for(i=1;i

/**********FOUND**********/

if(m%i=0)k=0;

/**********FOUND**********/

returnm;

}

voidmain()

{

intm,k=0;

for(m=1;m<100;m++)

if(fun(m)==1)

{

printf("%4d",m);k++;

if(k%5==0)printf("\n");

}

}

答案:

=======(答案1)=======

intfun(intm)

=======(答案2)=======

for(i=2;i

=======(答案3)=======

if(m%i==0)k=0;

=======(答案4)=======

returnk;

第13题(10.0分)题号:

23难度:

中第1章

/*------------------------------------------------------

【程序改错】

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

功能:

先从键盘上输入一个3行3列矩阵的各个元素的值,然后输

出主对角线上的元素之和sum。

------------------------------------------------------*/

#include

voidfun()

{

inta[3][3],sum;

inti,j;

/**********FOUND**********/

a=0;

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

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

/**********FOUND**********/

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

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

/**********FOUND**********/

sum=sum+a[i][j];

/**********FOUND**********/

printf("sum=%f\n",sum);

}

main()

{

fun();

}答案:

=======(答案1)=======

sum=0;

=======(答案2)=======

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

=======(答案3)=======

sum=sum+a[i][i];

=======(答案4)=======

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

第14题(10.0分)题号:

391难度:

中第2章

/*------------------------------------------------------

【程序改错】

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

功能:

求出N×M整型数组的最小元素及其所在的行坐标及列坐标

(如果最小元素不唯一,选择位置在最前面的一个)。

例如:

输入的数组为:

923

4156

1219

10112

求出的最小数为1,行坐标为2,列坐标为1。

------------------------------------------------------*/

#include

#defineN4

#defineM3

intRow,Col;

intfun(intarray[N][M])

{

intmin,i,j;

min=array[0][0];

Row=0;

Col=0;

for(i=0;i

{

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

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

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

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