C语言练习题带详解答案.docx

上传人:b****4 文档编号:4021889 上传时间:2023-05-06 格式:DOCX 页数:14 大小:24.93KB
下载 相关 举报
C语言练习题带详解答案.docx_第1页
第1页 / 共14页
C语言练习题带详解答案.docx_第2页
第2页 / 共14页
C语言练习题带详解答案.docx_第3页
第3页 / 共14页
C语言练习题带详解答案.docx_第4页
第4页 / 共14页
C语言练习题带详解答案.docx_第5页
第5页 / 共14页
C语言练习题带详解答案.docx_第6页
第6页 / 共14页
C语言练习题带详解答案.docx_第7页
第7页 / 共14页
C语言练习题带详解答案.docx_第8页
第8页 / 共14页
C语言练习题带详解答案.docx_第9页
第9页 / 共14页
C语言练习题带详解答案.docx_第10页
第10页 / 共14页
C语言练习题带详解答案.docx_第11页
第11页 / 共14页
C语言练习题带详解答案.docx_第12页
第12页 / 共14页
C语言练习题带详解答案.docx_第13页
第13页 / 共14页
C语言练习题带详解答案.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言练习题带详解答案.docx

《C语言练习题带详解答案.docx》由会员分享,可在线阅读,更多相关《C语言练习题带详解答案.docx(14页珍藏版)》请在冰点文库上搜索。

C语言练习题带详解答案.docx

C语言练习题带详解答案

一、编程题

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

for(i=0;i

scanf("%d",&a[i]);

iIndex=0;

for(i=1;i

if(a[i]

}

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

for(i=0;i

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

for(j=0;j

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

scanf(“%f”,&score[i]);

max=score[0];

min=score[0];

aver=score[0];

for(i=1;i

{if(max

if(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;i

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

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

}

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

}

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

当前位置:首页 > 自然科学 > 物理

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

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