第十三行改为:
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(xz=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;ifor(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;iscanf("%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.用函数实现两个整数的交换。
swap(int*p1,int*p2)
{int*p;
p=p1;
p1=p2;
p2=p;
}
main()
{inta,b;
printf(“\nInputa,b:
”);
scanf(“%d,%d”,&a,&b);
swap(&a,&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=mn:
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;iscanf("%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);
}