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

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

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

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

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;

}

pri

}

*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);

&q仁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行:

q仁&a,q2=&b;

第10行:

if(a

第11行:

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

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

#include“stdioh”

main()

 

{

inti,a[20],s,count;s=count=1;

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

seanf(“%(:

a[i]);

s=count=0;

for(i=0;i<20;i--)scanf(%d:

&a[i]);

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

if(a[i]<0)break;

s+=a[i];count++;

}printf(“s=%

}

continue;

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(“=%d,y=%d\n",&x,&y);

}

printf(x=%d,y=%d\n:

x,y);}

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

main()

{floatx,y;正确的:

scanf(%d:

&x);

y=3、5+x;

printf(y=%d”):

}

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

Main()

{inti,sum

i=1;

While(i<=100)

{sum=sum*i:

i++:

}printf(“%C,sum)

}

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

intx;floaty;

printf(y=%f”,y);

 

main()

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

inti,j;

printf(Enterdata:

\n”;for(i=0;i<=4;l++)for(i=0,i<=4;i++)scanf(%d”&a[i][j]);

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

j<4:

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

printf(§um=%5d\n”,sum);}

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

main()

{longintsum;

intn,i=1;

scanf("d",&n);

printf(\n”;while(i>n)

{sum=sumi:

i++;

}

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

}

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

voidsort(inta[],n);

sort(data[10],10);

printf("\ntheresultofsort:

\n");

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

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

}

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

main()

{intx,y;

printf(“n”);

scanf(“%d',x);

if(x<0)

y=x_1;

elseif(x>=0llx<=10)

y=2x-1;

else

y=3x-1:

printf(“y=%d”>;,

}

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

main()

{intn;

longsum:

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

{

if(n%3=0)

sum=sum*n;

}

printf(Id%”,sum);

}

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

s*p1,int*p2)

{int*p;

p=p1:

p1=p2;

p2=p;

}

main()

{inta,b;

printf(nlnputa,b:

”);

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

s,&b);printf(n%d,%d",a,b);

2位小数。

}

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

c=*(f-32),要求输出结果取

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++);

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;

seanf(“%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;

sean("%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,resultl;result

print("inputtwointegers”);

scaf(“Wf'mn);&m,&n

result=m

n:

m:

while((result%m!

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

=

result++;

printf(“Theleastcommonmultipleofmandnis%d&result);

result

}

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

#include

#defineARR_SIZE40

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

main()

{floatscore[ARR_SIZE];

intn,i;

longnum[ARR_SIZE];

printf("Pleaseentertotalnumber:

");

seanf("%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;

floattempi;

longtemp2;

for(i=0;i

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

{if(sco

{tempi=score[j];

score[j]=score[i];score[i]=tempi;

temp2=num[j];num[j]=num[i];num[i]=temp2;

}

}

}

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

#include

main()

{inttsum=0,d;

printf("Enteraserialofnumbersendedby0:

\n");

{scanf("%d",d);

if(d=0)break;sum+=d;

}

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

}

while(i)

正确:

正确:

d==0

正确:

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、求一个3X3矩阵的主对角线元素之与

main()

{inta[3][3];

intsum:

inti,j;

printf(Enterdata:

\n”;

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

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

seanf(%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时对应的摄氏温度

#inelude

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);

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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