C语言程序设计练习题6.docx
- 文档编号:6858004
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:20
- 大小:39.72KB
C语言程序设计练习题6.docx
《C语言程序设计练习题6.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题6.docx(20页珍藏版)》请在冰豆网上搜索。
C语言程序设计练习题6
练习题6
1.输入一个字符,判断该字符是数字、字母、空格还是其他字符。
main()
{charch;
ch=getchar();
if(ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’)
printf("ItisanEnglishcharacter\n");
elseif(ch>=’0’&&ch<=’9’)
printf("Itisadigitcharacter\n");
elseif(ch==‘’)
printf("Itisaspacecharacter\n");
else
printf("Itisothercharacter\n");}
2.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。
用输入0来结束输入,用i,j来放统计数,请填空完成程序。
voidmain()
{intn,i=0,j=0;
printf(“inputainteger,0forend\n”);
scanf(“%d”,&n);
while(n或n!
=0){
if(n>0)i=i+1;
elsej=j+1;
}
printf(“i=%4d,j=%4d\n”,i,j);
}
3.编程计算1+3+5+……+101的值
#include
voidmain()
{inti,sum=0;
for(i=1;i<=101;i++)
sum=sum+i;
printf("sum=%d\n",sum);}
4.编程计算1+3+5…+99的值
main()
{inti,sum=0;
i=1;
while(i<100)
{sum=sum+i;
i++;}
printf("sum=%d\n",sum);
}
5.从键盘输入一个字符,判断它是否是英文字母。
#include
voidmain()
{charc;
printf("inputacharacter:
");
c=getchar();
if(c>=‘A’&&c<=‘Z’||c>=‘a’&&c<=‘z’)printf("Yes\n");
elseprintf("No");
}
6.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。
#include
voidmain()
{inta[10],i,x;
printf(“input10integers:
”);
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
printf(“inputthenumberyouwanttofindx:
”);
scanf(“%d”,&x);
for(i=0;i<10;i++)
if(x==a[i])
break;
if(i<10)
printf(“theposofxis:
%d\n”,i);
elseprintf(“cannotfindx!
\n”);
}
7.程序读入20个整数,统计非负数个数,并计算非负数之和。
#include
main()
{inti,a[20],s,count;
s=count=0;
for(i=0;i<20;i++)
scanf(“%d”,&a[i]);
for(i=0;i<20;i++)
{if(a[i]<0)continue;
s+=a[i];
count++;
}
printf(“s=%d\tcount=%d\n”,s,count”);
}
8.输入一个正整数n(1 #include intmain(void){ inti,index,k,n,temp; /*定义1个数组a,它有10个整型元素*/ printf(“Entern: "); printf(“Enter%dintegers: ",n); for(i=0;i scanf("%d",&a[i]); for(k=0;k index=k; for() if()index=i; } printf("Aftersorted: "); for(i=0;i return0;} 一、程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1 2 3 4 n main() {longintsum; intn,i=1; scanf("%d",n); printf(“\n”); while(i {sum=sum*i; i++; } printf("sum=%d",sum); } sum应初始化即加入sum=1 第四行改为: scanf(“%d”,&n); 第六行改为: while(i<=n) 第十行改为: printf("sum=%ld",sum); 2.求一个数组中最大值及其下标。 main() {intmax,j,m; inta[5]; for(j=1;j<=5;j++) scanf(“%d”,a); max=a[0]; for(j=1;j<=5;j++) if(max>a[j]) {max=a[j]; m=j; } printf(“下标: %d\n最大值: %d”,j,max) } 第四行改为: for(j=0;j<5;j++) 第五行改为: scanf(“%d”,&a[j]); 第七行改为: for(j=0;j<5;j++) 第八行改为: if(max 第十三行改为: 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);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习题