C语言程序改错基本题库Word文件下载.docx
- 文档编号:4769431
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:19
- 大小:30.69KB
C语言程序改错基本题库Word文件下载.docx
《C语言程序改错基本题库Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序改错基本题库Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。
intc;
%f,%f"
&
a,&
b);
c=sum(a,b);
\nSumis%f"
5.用指针作函数参数,对输入的两个整数按大小顺序输出。
s*p1,*p2)
{int*p;
*p=*p1;
*p1=*p2;
*p2=*p;
{inta,b;
int*q1,*q2;
%d,%d"
&
q1=a,&
q2=b;
if(a<
b)swap(*q1,*q2);
\n%d,%d\n"
q1,q2);
前五题答案:
1、sum应初始化即加入sum=1
第四行改为:
scanf(“%d”,&
n);
第六行改为:
=n)
第十行改为:
sum=%ld"
2、第四行改为:
for(j=0;
5;
第五行改为:
a[j]);
第七行改为:
第八行改为:
if(max<
第十三行改为:
printf(“下标:
%d”,m,max)
3、第三行改为:
第五行改为:
printf(“c=%d”,c);
4、第一行改为:
floatsum(floatx,floaty);
第四行改为:
return(z);
第八行:
floatc;
第十一行:
c);
5、第2、3行:
{intt;
t=*p1;
*p2=t;
第9行:
q1=&
a,q2=&
b;
第10行:
b)s);
第11行:
*q1,*q2);
6.程序读入20个整数,统计非负数个数,并计算非负数之与、
#include“stdio、h”
{
inti,a[20],s,count;
s=count=1;
s=count=0;
for(i=1;
i<
20;
i--)for(i=0;
i<
i--)
scanf(“%d”,a[i]);
scanf(“%d”,&
a[i]);
for(i=0;
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<
stdio、h>
intx,y=200,z=0;
x=180;
if(x<
y)
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的值、
{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矩阵的对角线元素之与
{inta[4][4],sum=0;
inti,j;
printf(“Enterdata:
\n”);
=4;
I++)
for(j=0,j<
a[i][j]);
4;
for(j=0;
sum=sum+a[i][j];
printf(“sum=%5d\n”,sum);
12.求1+2+3+4+……n的值。
d"
while(i>
*13.调用起泡法函数排序
voidsort(inta[],n);
{inti,j,temp,*p;
for(i=0;
n-1;
i++)
for(j=n-1;
j>
i;
j--)
if(data[j]<
data[j-1])
{temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
{intdata[10];
*p=data;
Pleaseinput10numbers:
\n"
);
NUM;
i++,p++)
&
p);
p=&
data[0];
sort(data[10],10);
\ntheresultofsort:
10;
i++)
printf("
%d"
data[i]);
15、编程计算下面分段函数,输入x,输出y
{intx,y;
printf(“\nInputx:
scanf(“%d”,x);
if(x<
0)
y=x-1;
elseif(x>
=0||x<
=10)
y=2x-1;
else
y=3x-1;
printf(“y=%d”,&
16、求100~300间能被3整除的数的与。
{intn;
longsum;
for(n=100;
n<
=300;
n++)
{
if(n%3=0)
sum=sum*n;
printf(“%ld”,sum);
17、用函数实现两个整数的交换。
s*p1,int*p2)
p=p1;
p1=p2;
p2=p;
{inta,b;
printf(“\nInputa,b:
”);
scanf(“%d,%d”,&
s,&
b);
printf(“\n%d,%d”,a,b);
18、实现华氏温度转换为摄氏温度,公式为:
c=*(f-32),要求输出结果取2位小数。
{intc,f;
Pleaseenterf:
"
%f"
f);
c=5/9*(f-32);
f=%f,c=%f"
c,f);
19.下面程序的功能就是计算n!
。
{inti,n;
ints;
Pleaseentern:
n);
for(i=1;
=n;
i++);
s=*i;
%d!
=%d"
i,s);
20.编程计算12+32+52+…+92,要求输出中间计算结果。
{inti,sum=0;
=9;
i+2)
sum+=i;
sum=%d"
21、求表达式的值
#include<
math、h>
intfun(intx,inty);
floatf;
scanf(“%d,%d”,a,b);
if(ab>
{f=fun(a,b);
Theresultis:
%d\n"
f)}
elseprintf(“error!
”);
fun(x,y)
{floatresult;
result=sqrt(a+b);
return;
22、通过函数调用,求两个数之差
sub(x,y)
z=x-y;
scanf(“%f,%f”,&
c=sub(a,b);
printf(“\nSubis%f”,sub);
23、求1到100的累加与、
main()
while(i<
{sum=sum*i;
24、一个小于1000的正整数每位上的数字就是多少。
#include"
stdio、h"
{intn,i,j,k;
Inputanumbern(0<
1000):
scanf("
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));
a=%7、2f,b=%7、2f,c=%7、2f,s=%7、2f\n"
b,&
c,&
s);
area=%7、2f\n"
area)
}
26、求与1!
+2!
+3!
+4!
+……+20!
floats=0,t=0;
intn;
for(n=0;
t=t+n;
s=s*t;
1!
=%d\n"
s);
*27、下面程序实现的功能就是求两整数的最小公倍数。
#include"
{intm,n,result1;
result
print(“inputtwointegers:
\n”);
scaf(“%d%d”,m,n);
&
m,&
n
result=m<
n?
n:
m;
while((result%m!
=0)||(result%n==0))!
=
result++;
printf(“Theleastcommonmultipleofmandnis%d\n”,&
result);
result
28.下列程序实现按分数从高到低的顺序输出,划线处存在错误,请予以更正、
#defineARR_SIZE40
voidSort(floatscore[],longnum[],intn)
{floatscore[ARR_SIZE];
intn,i;
longnum[ARR_SIZE];
Pleaseentertotalnumber:
Pleaseenterthenumberandscore:
for(i=0;
n;
{scanf("
%ld%f"
num[i],&
score[i]);
Sort(score,num,n);
Sortedresults:
i++)
{printf("
%ld\t%4、0f\n"
num[i],score[i]);
voidSort(score,num,n)
{inti,j;
floattemp1;
longtemp2;
{for(j=i;
j<
j++)
{if(score[j]<
score[i])
{temp1=score[j];
score[j]=score[i];
score[i]=temp1;
temp2=num[j];
num[j]=num[i];
num[i]=temp2;
}
}
29.把用户输入的数据累加,直到输入零为止,输出累加的结果。
{inttsum=0,d;
Enteraserialofnumbersendedby0:
while
(1)
{scanf("
d);
正确:
scanf("
d);
if(d=0)break;
d==0
sum+=d;
sum=%f\n"
sum=%d\n"
sum);
30、求1+2+3+4++n(n<
100)
fun(n);
正确:
{intp,n;
p=intfun(n);
p=%d"
p);
intfun(intm)
{inttotal;
inti=1;
=m)
{total=total+i;
32、求一个3×
3矩阵的主对角线元素之与
{inta[3][3];
intsum;
3;
3,j++)
scanf(“%f”,&
=3;
if(i=j)
sum+=a[i][j];
33、摄氏温度C=(5/9)(F-32),求华氏温度F=100时对应的摄氏温度。
stdoi、h>
voidmain(void)
{
intcelsius;
fahr;
fahr=100;
celsius=5*(fahr-32)/9;
fahr=d,celsius=%d\n"
fahr,celsius);
二、下列程序有逻辑错误,请改正,使之能完成要求的功能
1.输入6个整数,按每行3个数输出这些整数,最后输出6个整数的平均值。
voidmain()
{inti,a[6],sum=0,n=0;
intav;
a[i]);
{printf("
if(i%3==0)
i!
{sum+=a[i];
av=sum/n;
av=%f\n"
av);
2、输入一系列学生成绩,输入负数为止。
统计不及格的人数,计算平均分。
#include<
#defineARR_SIZE80
voidmain()
{intscore[ARR_SIZE];
inti;
intno_pass=0;
floatave;
Pleaseinputthescore:
score[i]);
while(score[i]>
=0)
{if(score[i]<
60)
no_pass++;
ave=ave+score[i];
ave=ave/n;
notpassnum:
%d\n"
no_pass);
printf("
theaveis:
%f\n"
ave);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 改错 基本 题库