视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C语言练习题(带详解答案)
2025-10-02 14:55:52 责编:小OO
文档
一、编程题

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)

{doubler,area,girth;

printf("pleaseinputr:\\n");

scanf("%lf",&r);

if(r>=0)

{area=PI*r*r;

girth=2*PI*r;

printf("theareais%.2f\\n",area);

printf("thegirthis%.2f\\n",girth);}

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<9,0等级为B;70≤score<8,0等级为C;60≤score<7,0等级为D;score<60,等级为E。

#include

voidmain(){

intdata;

chargrade;

printf("Pleaseenterthescore:");

scanf("%d”,&data);

switch(data/10)

{case10:

case9:grade=’A’b;reak;

case8:grade=’B’;break;

case7:grade=’C’;break;

case6:grade=’D’;break;

default:grade=’E’;

}

printf("thegradeis%c”,grade);

}

5.编一程序每个月根据每个月上网时间计算上网费用,计算方法

如下:

30元10

小时

费用每小时31050小时

每小时2.550

元小时

要求当输入每月上网小时数,显示该月总的上网费用(6分)

#include

voidmain()

{inthour;

floatfee;

printf(“pleaseinputhno”ur:);

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(“thesumododfis:%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");

for(i=0;iscanf("%d",&a[i]);

iIndex=0;

for(i=1;iif(a[i]}

temp=a[0];a[0]=a[iIndex];a[iIndex]=temp;

for(i=0;iprintf("%5d",a[i]);

printf("\\n");

return0;

}

第二种解法利用函数

#include

intcomp(intarry[],intn)

{

inti,index,temp;

printf("为数组赋值:\\n");

for(i=0;i{scanf("%d",&arry[i]);

}

for(i=1,index=0;i<=n-1;i++)

{if(arry[i]{index=i;

}

}

temp=arry[0];arry[0]=arry[index];arry[index]=temp;

for(i=0;i{printf("%d",arry[i]);

}

return0;

}

main()

{intn;

inta[10];

printf("为n赋值:\\n");

scanf("%d",&n);

comp(a,n);}

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(“pleaseinputsconr”e:);

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(“enterarrany”a:);

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(“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]);

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;

}

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

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

}

20、从键盘上输入一个4*3的整型数组,找出数组中的最小值及其

在数组中的下标。

#include

voidmain()

{inta[4][3],i,j,min,m,n;

printf("Pleaseenterdata:");

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

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

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

min=a[0][0];

m=0;n=0;

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

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

if(a[i][j]{min=a[i][j];

m=i;

n=j;

}

printf("theminis%d\\n,min);

printf("posionis%d%d\\n,m,n);

}下载本文

显示全文
专题