最新C语言练习题带详解答案Word格式.docx
《最新C语言练习题带详解答案Word格式.docx》由会员分享,可在线阅读,更多相关《最新C语言练习题带详解答案Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
%lf"
&
r);
if(r>
=0)
{area=PI*r*r;
girth=2*PI*r;
theareais%.2f\n"
area);
thegirthis%.2f\n"
girth);
}
else
Inputerror!
3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1(x<
0)
y=0(x=0)
2x-1(x>
0)
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。
voidmain(){
intdata;
chargrade;
Pleaseenterthescore:
"
%d”,&
data);
switch(data/10)
{case10:
case9:
grade=’A’;
break;
case8:
grade=’B’;
case7:
grade=’C’;
case6:
grade=’D’;
default:
grade=’E’;
}
thegradeis%c”,grade);
5.编一程序每个月根据每个月上网时间计算上网费用,计算方法如下:
要求当输入每月上网小时数,显示该月总的上网费用(6分)
{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个整数,统计其中正数、负数和零的个数,并在屏幕上输出。
voidmain(){
inta,i,p=0,n=0,z=0;
pleaseinputnumber"
for(i=0;
i<
10;
i++){
scanf("
%d,"
a);
if(a>
0)p++;
elseif(a<
0)n++;
elsez++;
正数:
%5d,负数:
%5d,零:
%5d\n"
p,n,z);
7、编程序实现求1-10之间的所有数的乘积并输出。
voidmain()
{inti;
longsum=1;
for(i=1;
i<
=10;
i=i+1)
sum=sum*i;
printf(“thesumofoddis:
%ld”,sum);
8.从键盘上输入10个数,求其平均值。
voidmain(){
inta,i,sum=0;
floatave;
;
for(i=0;
%d"
sum+=a;
ave=(float)sum/10;
ave=%f\n"
ave);
9、编程序实现求1-1000之间的所有奇数的和并输出。
voidmain()
{inti,sum=0;
1000;
i=i+2)
sum=sum+i;
%d”,sum);
10.有一个分数序列:
2/1,3/2,5/3,8/5,13/8,……编程求这个序列的前20项之和。
inti,t,n=20;
floata=2,b=1,s=0;
for(i=1;
=n;
i++)
{s=s+a/b;
t=a;
a=a+b;
b=t;
sum=%6.2f"
11.从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)
floatmax(floatx,floaty);
{floata,b,m;
%f,%f"
m=max(a,b);
Maxis%f\n"
m);
floatmax(floatx,floaty)
{
if(x>
=y)
returnx;
else
returny;
12.编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
math.h>
intIsPrimeNumber(intnumber)
{inti;
if(number<
=1)
return0;
for(i=2;
sqrt(number);
i++)
{if((number%i)==0)
return0;
}
return1;
voidmain()
{intn;
printf(“Pleaseinputn:
”);
n);
if(IsPrimeNumber(n))
printf(“\n%disaPrimeNumber”,n);
elseprintf(“\n%disnotaPrimeNumber”,n);
13、从键盘输入n个数存放在数组中,将最小值与第一个数交换,输出交换后的n个数。
intmain(void){
inti,n,iIndex,temp;
inta[10];
Entern:
"
&
Enter%dintegers:
\n"
n;
a[i]);
iIndex=0;
if(a[i]<
a[iIndex])iIndex=i;
temp=a[0];
a[0]=a[iIndex];
a[iIndex]=temp;
%5d"
a[i]);
return0;
}
第二种解法利用函数
#include<
intcomp(intarry[],intn)
inti,index,temp;
为数组赋值:
{scanf("
arry[i]);
for(i=1,index=0;
=n-1;
{if(arry[i]<
arry[index])
{index=i;
temp=arry[0];
arry[0]=arry[index];
arry[index]=temp;
{printf("
%d"
arry[i]);
main()
为n赋值:
comp(a,n);
14.用数组实现以下功能:
输入5个学生成绩,而后求出这些成绩的平均值并显示出来。
{inta[5],s=0;
inti;
5;
s=s+a[i];
printf(“result=%f”,s/5.0);
15、输入一个正整数n(n<
=6),再输入n×
n的矩阵,求其主对角线元素之和及副对角线元素之和并输出。
intmain(void){
inti,j,n,sum1=0,sum2=0;
inta[6][6];
Entern(n<
=6):
Enterdata:
for(j=0;
j<
j++){
a[i][j]);
if(i==j)
sum1+=a[i][j];
if(i+j==n-1)
sum2+=a[i][j];
sum1=%d,sum2=%d"
sum1,sum2);
16、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。
(提示:
用数组存放成绩数据)
#include<
#defineM30
voidmain()
{floatscore[M],max,min,aver;
inti;
printf(“pleaseinputscore:
\n”);
M;
scanf(“%f”,&
score[i]);
max=score[0];
min=score[0];
aver=score[0];
fo