C语言程序改错基本题库.docx

上传人:b****1 文档编号:2569803 上传时间:2023-05-04 格式:DOCX 页数:19 大小:30.69KB
下载 相关 举报
C语言程序改错基本题库.docx_第1页
第1页 / 共19页
C语言程序改错基本题库.docx_第2页
第2页 / 共19页
C语言程序改错基本题库.docx_第3页
第3页 / 共19页
C语言程序改错基本题库.docx_第4页
第4页 / 共19页
C语言程序改错基本题库.docx_第5页
第5页 / 共19页
C语言程序改错基本题库.docx_第6页
第6页 / 共19页
C语言程序改错基本题库.docx_第7页
第7页 / 共19页
C语言程序改错基本题库.docx_第8页
第8页 / 共19页
C语言程序改错基本题库.docx_第9页
第9页 / 共19页
C语言程序改错基本题库.docx_第10页
第10页 / 共19页
C语言程序改错基本题库.docx_第11页
第11页 / 共19页
C语言程序改错基本题库.docx_第12页
第12页 / 共19页
C语言程序改错基本题库.docx_第13页
第13页 / 共19页
C语言程序改错基本题库.docx_第14页
第14页 / 共19页
C语言程序改错基本题库.docx_第15页
第15页 / 共19页
C语言程序改错基本题库.docx_第16页
第16页 / 共19页
C语言程序改错基本题库.docx_第17页
第17页 / 共19页
C语言程序改错基本题库.docx_第18页
第18页 / 共19页
C语言程序改错基本题库.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序改错基本题库.docx

《C语言程序改错基本题库.docx》由会员分享,可在线阅读,更多相关《C语言程序改错基本题库.docx(19页珍藏版)》请在冰点文库上搜索。

C语言程序改错基本题库.docx

C语言程序改错基本题库

北京石油化工学院12级复习题

程序改错

一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。

1.求1234n

  main()

{longintsum;

intn,i=1;

scanf("%d",n);

printf(“\n”);

while(i

{sum=sum*i;

i++;

}

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

}

2.求一个数组中最大值及其下标。

main()

{intmax,j,m;

inta[5];

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

scanf(“%d”,a);

max=a[0];

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

if(max>a[j])

{max=a[j];

m=j;

}

printf(“下标:

%d\n最大值:

%d”,j,max)

}

*3、求3+4

inta=3,b=4;

main()

{inta,c;

c=a+b;

printf(“c=%d”);

}

4.用一个函数求两个数之与。

sum(x,y)

{floatz;

z=x+y;

return;

}

main()

{floata,b;

intc;

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

c=sum(a,b);

printf("\nSumis%f",sum);

}

5.用指针作函数参数,对输入的两个整数按大小顺序输出。

s*p1,*p2)

{int*p;

*p=*p1;*p1=*p2;*p2=*p;

}

main()

{inta,b;

int*q1,*q2;

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

&q1=a,&q2=b;

if(a

printf("\n%d,%d\n",q1,q2);

}

前五题答案:

1、sum应初始化即加入sum=1

第四行改为:

scanf(“%d”,&n);

第六行改为:

while(i<=n)

第十行改为:

printf("sum=%ld",sum);

2、第四行改为:

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

第五行改为:

scanf(“%d”,&a[j]);

第七行改为:

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

第八行改为:

if(max

第十三行改为:

printf(“下标:

%d\n最大值:

%d”,m,max)

3、第三行改为:

intc;

第五行改为:

printf(“c=%d”,c);

4、第一行改为:

floatsum(floatx,floaty);

第四行改为:

return(z);

第八行:

floatc;

第十一行:

printf("\nSumis%f",c);

5、第2、3行:

{intt;

t=*p1;*p1=*p2;*p2=t;

第9行:

q1=&a,q2=&b;

第10行:

if(a

第11行:

printf("\n%d,%d\n",*q1,*q2);

6.程序读入20个整数,统计非负数个数,并计算非负数之与、

#include“stdio、h”

main()

{

inti,a[20],s,count;

s=count=1;s=count=0;

for(i=1;i<20;i--)for(i=0;i<20;i--)

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

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

{

if(a[i]<0)

break;continue;

s+=a[i];

count++;

}

printf(“s=%fcount=%f\n”,s,count);

}

printf(“s=%dcount=%d\n”,s,count);

7、x,y两个数中,让x中存较大的数,y存较小的数

#include

main()

{

intx,y=200,z=0;

x=180;

if(x

z=x;x=y;y=z;{z=x;x=y;y=z;}

printf(“x=%d,y=%d\n”,&x,&y);

}

printf(“x=%d,y=%d\n”,x,y);}

8、从键盘输入整数x的值,并输出y的值、

main()

{floatx,y;正确的:

intx;floaty;

scanf(“%d”,&x);

y=3、5+x;

printf(“y=%d”);printf(“y=%f”,y);

}

9、从1加到100,并输出、

Main()

{inti,sum

i=1;

While(i<=100)

{sum=sum*i;

i++;

}

printf(“%c”,sum)

}

10、求一个4×4矩阵的对角线元素之与

main()

{inta[4][4],sum=0;

inti,j;

printf(“Enterdata:

\n”);

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

for(j=0,j<=4;j++)

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

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

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

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

printf(“sum=%5d\n”,sum);

}

12.求1+2+3+4+……n的值。

  main()

{longintsum;

intn,i=1;

scanf("d",&n);

printf(“\n”);

while(i>n)

{sum=sum*i;

i++;

}

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

}

*13.调用起泡法函数排序

voidsort(inta[],n);

{inti,j,temp,*p;

for(i=0;i

for(j=n-1;j>i;j--)

if(data[j]

{temp=a[j];

a[j]=a[j-1];

a[j-1]=temp;}

main()

{intdata[10];

*p=data;

printf("Pleaseinput10numbers:

\n");

for(i=0;i

scanf("%d",&p);

p=&data[0];

sort(data[10],10);

printf("\ntheresultofsort:

\n");

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

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

}

15、编程计算下面分段函数,输入x,输出y

main()

{intx,y;

printf(“\nInputx:

\n”);

scanf(“%d”,x);

if(x<0)

y=x-1;

elseif(x>=0||x<=10)

y=2x-1;

else

y=3x-1;

printf(“y=%d”,&y);

}

16、求100~300间能被3整除的数的与。

main()

{intn;

longsum;

for(n=100;n<=300;n++)

{

if(n%3=0)

sum=sum*n;

}

printf(“%ld”,sum);

}

17、用函数实现两个整数的交换。

s*p1,int*p2)

{int*p;

p=p1;

p1=p2;

p2=p;

}

main()

{inta,b;

printf(“\nInputa,b:

”);

scanf(“%d,%d”,&a,&b);

s,&b);

printf(“\n%d,%d”,a,b);

}

18、实现华氏温度转换为摄氏温度,公式为:

c=*(f-32),要求输出结果取2位小数。

main()

{intc,f;

printf("Pleaseenterf:

");

scanf("%f",&f);

c=5/9*(f-32);

printf("f=%f,c=%f",c,f);}

19.下面程序的功能就是计算n!

main()

{inti,n;

ints;

printf("Pleaseentern:

");

scanf("%d",n);

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

s=*i;

printf("%d!

=%d",i,s);}

20.编程计算12+32+52+…+92,要求输出中间计算结果。

main()

{inti,sum=0;

for(i=1;i<=9;i+2)

sum+=i;printf("sum=%d",sum);

}

21、求表达式的值

#include

#include

intfun(intx,inty);

main()

{inta,b;floatf;

scanf(“%d,%d”,a,b);

if(ab>0)

{f=fun(a,b);printf("Theresultis:

%d\n",&f)}

elseprintf(“error!

”);}

fun(x,y)

{floatresult;

result=sqrt(a+b);

return;

}

22、通过函数调用,求两个数之差

sub(x,y)

{floatz;

z=x-y;

return;

}

main()

{floata,b;

intc;

scanf(“%f,%f”,&a,&b);

c=sub(a,b);

printf(“\nSubis%f”,sub);

}

23、求1到100的累加与、

main()

{inti,sum

i=1;

while(i<=100)

{sum=sum*i;

i++;

}

printf(“%c”,sum)

}

24、一个小于1000的正整数每位上的数字就是多少。

#include"stdio、h"

main()

{intn,i,j,k;

printf("Inputanumbern(0

\n");

scanf("%d",n);

if(n<=0||n>=1000)

{printf("error");exit(0);}

k=n%10、0;

j=(n%100)/10;

i=n/100;

printf("%s%s%s\n",i,j,k);

}

25、输入三角形的三边长,求三角形的面积。

#include

main()

{floata,b,c,s,area;

scan("%d,%d,%d",a,b,c);

s=1、0/2*(a+b+c);

area=sqrt(s(s-a)(s-b)(s-c));

printf("a=%7、2f,b=%7、2f,c=%7、2f,s=%7、2f\n",&a,&b,&c,&s);

printf("area=%7、2f\n",&area)

}

26、求与1!

+2!

+3!

+4!

+……+20!

main()

{

floats=0,t=0;

intn;

for(n=0;n<20;n++)

{

t=t+n;

s=s*t;

}

printf("1!

+2!

+3!

+4!

+……+20!

=%d\n",s);

}

*27、下面程序实现的功能就是求两整数的最小公倍数。

#include"stdio、h"

main()

{intm,n,result1;result

print(“inputtwointegers:

\n”);

scaf(“%d%d”,m,n);&m,&n

result=m

n:

m;

while((result%m!

=0)||(result%n==0))!

=

result++;

printf(“Theleastcommonmultipleofmandnis%d\n”,&result);

result

}

28.下列程序实现按分数从高到低的顺序输出,划线处存在错误,请予以更正、

#include

#defineARR_SIZE40

voidSort(floatscore[],longnum[],intn)

main()

{floatscore[ARR_SIZE];

intn,i;

longnum[ARR_SIZE];

printf("Pleaseentertotalnumber:

");

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

printf("Pleaseenterthenumberandscore:

\n");

for(i=0;i

{scanf("%ld%f",&num[i],&score[i]);}

Sort(score,num,n);

printf("Sortedresults:

\n");

for(i=0;i

{printf("%ld\t%4、0f\n",num[i],score[i]);}

}

voidSort(score,num,n)

{inti,j;

floattemp1;

longtemp2;

for(i=0;i

{for(j=i;j<=n;j++)

{if(score[j]

{temp1=score[j];

score[j]=score[i];

score[i]=temp1;

temp2=num[j];

num[j]=num[i];

num[i]=temp2;

}

}

}

}

29.把用户输入的数据累加,直到输入零为止,输出累加的结果。

#include

main()

{inttsum=0,d;

printf("Enteraserialofnumbersendedby0:

\n");

while

(1)

{scanf("%d",d);正确:

scanf("%d",&d);

if(d=0)break;正确:

d==0

sum+=d;

}

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

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

}

30、求1+2+3+4++n(n<100)

#include

fun(n);正确:

main()

{intp,n;

scanf("%d",&n);

p=intfun(n);正确:

printf("p=%d",p);

}

intfun(intm)

{inttotal;正确:

inti=1;

while(i<=m)

{total=total+i;

i++;

}

return;正确:

}

32、求一个3×3矩阵的主对角线元素之与

main()

{inta[3][3];

intsum;

inti,j;

printf(“Enterdata:

\n”);

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

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

scanf(“%f”,&a[i][j]);

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

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

if(i=j)

sum+=a[i][j];

printf(“sum=%5d\n”,sum);

}

33、摄氏温度C=(5/9)(F-32),求华氏温度F=100时对应的摄氏温度。

#include

voidmain(void)

{

intcelsius;fahr;

fahr=100;

celsius=5*(fahr-32)/9;

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

}

二、下列程序有逻辑错误,请改正,使之能完成要求的功能

1.输入6个整数,按每行3个数输出这些整数,最后输出6个整数的平均值。

#include

voidmain()

{inti,a[6],sum=0,n=0;

intav;

for(i=0;i

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

for(i=0;i

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

if(i%3==0)

printf("\n");

}

for(i=0;i!

=n;i++)

{sum+=a[i];

av=sum/n;}

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

}

2、输入一系列学生成绩,输入负数为止。

统计不及格的人数,计算平均分。

#include

#defineARR_SIZE80

voidmain()

{intscore[ARR_SIZE];

inti;

intno_pass=0;

floatave;

printf("Pleaseinputthescore:

");

scanf(“%d”,&score[i]);

while(score[i]>=0)

{if(score[i]<60)

no_pass++;

ave=ave+score[i];

ave=ave/n;}

printf("notpassnum:

%d\n",no_pass);

printf("theaveis:

%f\n",ave);

}

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2