第十三行改为:
printf(“下标:
%d\n最大值:
%d”,m,max)
3.用一个函数求两个数之和。
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);
}
第一行改为:
floatsum(floatx,floaty);
第四行改为:
return(z);
第八行:
floatc;
第十一行:
printf("\nSumis%f",c);
4.程序读入20个整数,统计非负数个数,并计算非负数之和.
#include“stdio.h”
main()
{
inti,s,count,n=20;
inta[n];
s=count=1;
for(i=1,i<20,i--)
scanf(“%d”,a[i]);
for(i=0;i<20;i++)
{
if(a[i]<0)
break;
s+=a[i];
count++;
}
printf(“s=%fcount=%f\n”,s,count);
}
printf(“s=%dcount=%d\n”,s,count);
答案:
inta[20]
s=count=0;
for(i=0;i<20;i--)
scanf(“%d”,&a[i]);
continue;
5.从键盘输入整数x的值,并输出y的值.
main()
{floatx,y;
scanf(“%d”,&x);
y=3.5+x;
printf(“y=%d”);
}
正确的:
intx;floaty;
printf(“y=%f”,y);
6编程计算下面分段函数,输入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);
}
7.求100~300间能被3整除的数的和。
main()
{intn;
longsum;
for(n=100,n<=300,n++)
{
if(n%3=0)
sum=sum*n;
}
printf(“%ld”,sum);
}
8.求表达式
的值
#include
#include
intfun(intx,inty);
main()
{inta,b;floatf;
scanf(“%d,%d”,a,b);
if(ab>0){
fun(a,b);
printf("Theresultis:
%d\n",&f)
}
elseprintf(“error!
”);}
fun(x,y)
{floatresult;
result=sqrt(a+b);
return;
}
9、通过函数调用,求两个数之差
sub(x,y)
{floatz;
z=x-y;
return;
}
main()
{floata,b;
intc;
scanf(“%f,%f”,&a,&b);
sub(a,b);
printf(“\nSubis%f”,sub);
}
二、编程题
1.输入2个整数,求两数的平方和并输出。
#include
intmain(void)
{intta,b,s;
printf("pleaseinputa,b:
\n");
scanf("%d%d”,&a,&b);
s=a*a+b*b;
printf("theresultis%d\n",s);
return0;
}
2.输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include
#definePI3.14
intmain(void)
{floatr,s,l;
printf("pleaseinputr:
\n");
scanf("%f”,&r);
if(r>=0)
{s=pi*r*r;
l=2*i*r;
printf("theareais%f\n",s);
printf("thecircumferenceis%f\n",l);}
else
printf("inputerror!
\n");
return0;
}
3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1(x<0)
y=0(x=0)
2x-1(x>0)
#include
voidmain()
{intx,y;
scanf(“%d”,&x);
if(x<0)y=2*x+1;
elseif(x>0)y=2*x-1;
elsey=0;
printf(“%d”,y);
}
4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:
score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
#include
voidmain(){
intdata;
chargrade;
printf("Pleaseenterthescore:
");
scanf("%d”,&data);
switch(data/10)
{case10:
case9:
grade=’A’;break;
case8:
grade=’B’;break;
case7:
grade=’C’;break;
case6:
grade=’D’;break;
default:
grade=’E’;
}
printf("thegradeis%c”,grade);
}
5.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:
要求当输入每月上网小时数,显示该月总的上网费用(6分)
#include
voidmain()
{inthour;
floatfee;
printf(“pleaseinputhour:
\n”);
scanf(“%d”,&hour);
if(hour<=10)
fee=30;
elseif(hour>=10&&hour<=50)
fee=3*hour;
elsefee=hour*2.5;
printf(“Thetotalfeeis%f”,fee);
}
6.从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。
#include
voidmain(){
inta,i,p=0,n=0,z=0;
printf("pleaseinputnumber");
for(i=0;i<10;i++){
scanf("%d,",&a);
if(a>0)p++;
elseif(a<0)n++;
elsez++;
}
printf("正数:
%5d,负数:
%5d,零:
%5d\n",p,n,z);
}
7、编程序实现求1-10之间的所有数的乘积并输出。
#include
voidmain()
{inti;
longsum=1;
for(i=1;i<=10;i=i+1)
sum=sum*i;
printf(“thesumofoddis:
%ld”,sum);
}
8.从键盘上输入10个数,求其平均值。
#include
voidmain(){
inta,i,sum=0;
floatave;;
for(i=0;i<10;i++){
scanf("%d",&a);
sum+=a;
}
ave=(float)sum/10;
printf("ave=%f\n",ave);
}
9、编程序实现求1-1000之间的所有奇数的和并输出。
#include
voidmain()
{inti,sum=0;
for(i=1;i<1000;i=i+2)
sum=sum+i;
printf(“thesumofoddis:
%d”,sum);
}
10.有一个分数序列:
2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。
#include
voidmain(){
inti,t,n=20;
floata=2,b=1,s=0;
for(i=1;i<=n;i++)
{s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("sum=%6.2f",s);
}
11.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)
#include
floatmax(floatx,floaty);
voidmain()
{floata,b,m;
scanf("%f,%f",&a,&b);
m=max(a,b);
printf("Maxis%f\n",m);
}
floatmax(floatx,floaty)
{
if(x>=y)
returnx;
else
returny;
}
12.编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
#include
#include
intIsPrimeNumber(intnumber)
{inti;
if(number<=1)
return0;
for(i=2;i{if((number%i)==0)
return0;}
return1;}
voidmain()
{intn;
printf(“Pleaseinputn:
”);
scanf(“%d”,&n);
if(IsPrimeNumber(n))
printf(“\n%disaPrimeNumber”,n);
elseprintf(“\n%disnotaPrimeNumber”,n);}
13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
#include
intmain(void){
inti,n,iIndex,temp;
inta[10];
printf("Entern:
");
scanf("%d",&n);
printf("Enter%dintegers:
\n",n);
for(i=0;iscanf("%d",&a[i]);
iIndex=0;
for(i=1;i<10;i++){
if(a[i]}
temp=a[0];a[0]=a[iIndex];a[iIndex]=temp;
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
14.用数组实现以下功能:
输入5个学生成绩,而后求出这些成绩的平均值并显示出来。
#include
voidmain()
{inta[5],s=0;
inti;
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
for(i=0;i<5;i++)
s=s+a[i];
printf(“result=%f”,s/5.0);
}
15、输入一个正整数n(n<=6),再输入n×n的矩阵,求其主对角线元素之和及副对角线元素之和并输出。
#include
intmain(void){
inti,j,n,sum1=0,sum2=0;
inta[6][6];
printf("Entern(n<=6):
");
scanf("%d",&n);
printf("Enterdata:
\n");
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
if(i==j)
sum1+=a[i][j];
if(i+j==n-1)
sum2+=a[i][j];
}
printf("sum1=%d,sum2=%d",sum1,sum2);
return0;
}
16、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。
(提示:
用数组存放成绩数据)
#include
#defineM30
voidmain()
{floatscore[M],max,min,aver;
inti;
printf(“pleaseinputscore:
\n”);
for(i=0;iscanf(“%f”,&score[i]);
max=score[0];
min=score[0];
aver=score[0];
for(i=1;i{if(maxif(min>score[i])min=score[i];
aver+=score[i];
}
printf(“max=%f,min=%f,aver=%f”,max,min,aver/M);
}
17.将一个有5个元素的数组中的值(整数)按逆序重新存放。
例:
原来顺序为:
8、6、5、4、1,要求改为1、4、5、6、8
#defineN5
#include
voidmain()
{inta[N],i,temp;
printf(“enterarraya:
\n”);
for(i=0;iscanf(“%d”,&a[i]);
for(i=0;i{temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf(“\nNow,arraya:
\n”);
for(i=0;iprintf(“%4d”,a[i]);
printf(“\n”);
}
18.从键盘上输入一个2*3的矩阵,将其转秩后形成3*2的矩阵输出。
#include
voidmain()
{inta[2][3],b[3][2],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf(“%d”,&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<2;j++)
b[i][j]=a[j][i];
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n”);
}
}
19、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。
(提示:
用数组存放成绩数据)
#include
voidmain()
{inta[10];
inti,j,temp;
printf("inputscore:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1;i<10;i++)
for(j=0;j<9;j++)
if(a[j]{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp