C语言主观试题典型例题分析.docx
- 文档编号:12624154
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:33
- 大小:21.29KB
C语言主观试题典型例题分析.docx
《C语言主观试题典型例题分析.docx》由会员分享,可在线阅读,更多相关《C语言主观试题典型例题分析.docx(33页珍藏版)》请在冰豆网上搜索。
C语言主观试题典型例题分析
1.给三角形三边长,编写程序求三角形面积:
#include
#include
main()
{
floata,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("您输入的三边长为:
%.2f,%.2f,%.2f\n",a,b,c);
printf("三角形的面积为:
%f\n",area);
}
2.输出九九乘法表:
#include
main()
{
inti,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
printf("%d*%d=%d",i,j,i*j);
}
}
3.求一个整数的绝对值;
#include
main()
{
inta,B;
printf("Pleaseinputanumber:
\n");
scanf("%d",&a);
if(a>0)
B=a;
else
B=-a;
printf("该数的绝对值为%d\n",B);
}
4.编写一个程序,求1+2+3····+100的值;
#include
main()
{
inti,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("%d\n",sum);
}
5.编写一个程序,计算1*2*3···*n的值;
#include
main()
{
longsum=1;
inti,n;
printf("Pleaseinputn:
\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum*i;
}
printf("%d!
=%d\n",n,sum);
}
6.编写一个程序,输出三个任意整数的最大值;
做法一:
#include
main()
{
inta,b,c,max;
printf("请输入任意的三个正整数:
\n");
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max
max=b;
if(max max=c; printf("三个数的最大值是: %d\n",max); } 做法二: 调用函数的方法 #include main() { inta,b,c,D; printf("请输入任意的三个正整数: \n"); scanf("%d%d%d",&a,&b,&c); D=max(a,b,c); printf("三个数的最大值是: %d\n",D); } intmax(intx,inty,intz) { if(x>z) z=x; if(y>z) z=y; return(z); } 7.用起泡法对10个数据进行排序;(利用数组实现) #include main() { inti,j,t; inta[10]={5,7,4,2,3,6,1,0,9,8}; for(j=0;j<9;j++) { for(i=0;i<9-j;i++) { if(a[i]>a[i+1])【修改‘>’和‘<’可以实现从大到小或从小到大的输出】 { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } } for(i=0;i<10;i++) printf("%2d",a[i]); } 8.输入10个数字,逆序输出。 (数组实现) #include main() { inta[10],i,t; for(i=0;i<=9;i++) { scanf("%d",&a[i]); } for(i=0;i<=9;i++) { t=a[9-i]; printf("%2d",t); } } 9.输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其他字符不变,。 输出转变后的这行字符; #include #definen10 main() { inti; charch,a[n]; for(i=0;i<=n-1;i++) { scanf("%c",&a[i]); } for(i=0;i<=n-1;i++) { if(a[i]<='z'&&a[i]>='a') { ch=a[i]-32; printf("%c",ch); } elseif(a[i]<='Z'&&a[i]>='A') { ch=a[i]+32; printf("%c",ch); } else { ch=a[i]; printf("%c",ch); } } } 10.编写一个程序,实现对两个数的四则运算; #include main() { floatx,y; charop; printf("typeinyourexpression: \n"); scanf("%f%c%f",&x,&op,&y); switch(op) { case'+': printf("%f%c%f=%f\n",x,op,y,x+y); break; case'-': printf("%f%c%f=%f\n",x,op,y,x-y); break; case'*': printf("%f%c%f=%f\n",x,op,y,x*y); break; case'/': if(y==0) printf("error! \n"); else printf("%f%c%f=%f\n",x,op,y,x/y); break; default: printf("expressionerror! \n"); } } 11.在编写一个顺序结构的过程中遇到的问题(关于if和elseif的用法;式子中平方的表示方法) #include #include main() { floatx,y; printf("请输入x的值: \n"); scanf("%f",&x); if(x<1) y=x*x+2*x+sin(x); elseif(x<=10) y=2*x-1; else y=sqrt(2*x*x*x-11); printf("%f\n",y); } 12.编写一个程序,根据三角形的三边判定三角形的类型(等边三角形、等腰三角形、直角三角形、一般三角形),并求其面积。 #include #include main() { floata,b,c,s,area; printf("请输入三角形的三边长: \n"); scanf("%f%f%f",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("此三角形的面积为: %f\n",area); if(a==b&&b==c) printf("此三角形为等边三角形\n"); elseif(a==b||a==c||b==c) printf("此三角形为等腰三角形\n"); elseif(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a) printf("此三角形为直角三角形\n"); else printf("此三角形为一般三角形\n"); } else printf("不能构成三角形\n"); } 13.编写一个程序,判断输入的字符是字母、数字或是其他字符。 #include main() { chara; printf("请任意输入一个字符: \n"); scanf("%c",&a); if(('A'<=a&&a<='Z')||('a'<=a&&a<='z')) printf("%c是字母\n",a); elseif('0'<=a&&a<='9') printf("%c是数字\n",a); else printf("%c是其他字符\n",a); } 14.编写一个程序,根据输入的月份,输出2009年该月有多少天? #include main() { intday; intmonth; printf("Pleaseinputthemonth: \n"); scanf("%d",&month); switch(month) { case1: case3: case5: case7: case8: case10: case12: day=31;break; case2: day=28;break; case4: case6: case9: case11: day=30;break; default: day=-1;break; } if(day==-1) printf("invalidmonthinput! \n"); else printf("2009年%d月有%d天\n",month,day); } 15.编写程序,分别统计输入的整数中负数和正数的个数; #include main() { intsum1=0,sum2=0,n; printf("请输入一组数: \n"); scanf("%d",&n); while(n! =0) { if(n<0) sum1=sum1+1; else sum2=sum2+1; scanf("%d",&n); } printf("sum1=%d,sum2=%d\n",sum1,sum2); } 16.编写一个程序,统计1~100之间是3或5的倍数的数的个数; 做法一: #include main() { inti,sum=0; for(i=1;i<=100;i++) { if(i%3==0||i%5==0) sum=sum+1; } printf("%d\n",sum); } 做法二: #include main() { inti=1,sum=0; do { if(i%3==0||i%5==0) sum=sum+1; i++; } while(i<=100); printf("1~100之间是3或5的倍数的数的个数是: %d\n",sum); } 17.编写一个程序,输出正整数1到10的平方和; #include main() { inti,n; longsum=0; printf("Pleaseinputn: \n"); scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+i*i; } printf("1*1+2*2+3*3+···+%d*%d=%d\n",n,n,sum); } 18.编写一个程序,是的他们按从小到大的顺序输出; #include main() { inta,b,c,t; scanf("%d%d%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("%d,%d,%d\n",a,b,c); } 19.编写一个程序,输出1~100内的所有素数; #include intf(intn)/*有返回值的不能用viod*/ { inti; for(i=2;i<=n/2;i++) if(n%i==0) return0; return1; } voidmain() { inti,count=0; for(i=2;i<=100;i++) if(f(i)==1) { printf("%4d",i); count++; if(count%5==0) printf("\n");/*一行输入5个数*/ } printf("\n"); } 20.判断并输出所有三位数中的水仙花数;(水仙花数,例: 153=1³+5³+3³) #include main() { inta,b,c,n; for(n=101;n<1000;n++) { a=n%10; b=((n-a)/10)%10; c=((n-10*b-a)/100)%10; if(n==a*a*a+b*b*b+c*c*c) printf("%5d",n); } } 21.编写一个程序,输出1~100的所有素数; #include intf(intn)/*有返回值的不能用viod*/ { inti; for(i=2;i<=n/2;i++) if(n%i==0) return0; return1; } voidmain() { inti,count=0; for(i=2;i<=100;i++) if(f(i)==1) { printf("%4d",i); count++; if(count%5==0) printf("\n");/*一行输入5个数*/ } printf("\n"); } 22.编写一个程序,输出用数字0~9可以组成的三位奇数及其个数; #include main() { inti,j,k,num,count=0; for(i=1;i<=9;i++) { for(j=0;j<=9;j++) { for(k=1;k<=9;k=k+2) { if(i! =j&&j! =k&&i! =k) { num=100*i+10*j+k; count++; printf("%4d",num); if(count%8==0) printf("\n"); } } } } printf("\n三位奇数的总数为: %d\n",count); } 23.编写一个程序,输入10个同学的成绩,求出其最高分,最低分,和平均值; #include main() { inti; floata[10],max,min,aver=0; for(i=0;i<=9;i++) { scanf("%f",&a[i]); } max=min=a[0]; for(i=0;i<=9;i++) { if(a[i] min=a[i]; if(a[i]>max) max=a[i]; aver+=a[i]; } printf("平均成绩为: %f\n",aver/10); printf("最高成绩为: %f,最低成绩为: %f\n",max,min); } 24.编写一个程序,删除数组中指定的第n个元素; #include main() { inti,a[10],n; for(i=0;i<=9;i++) { scanf("%d",&a[i]); } printf("请输入要删除第几个数: \n"); scanf("%d",&n); for(i=n;i<=9;i++) { a[i-1]=a[i]; } a[9]=0; for(i=0;i<=8;i++) printf("%3d\n",a[i]); } 25.编写一个程序,输出Fibonacci数列的前二十项; #include main() { inta[20]={1,1},i; for(i=2;i<20;i++) { a[i]=a[i-2]+a[i-1]; } for(i=0;i<20;i++) { printf("%5d",a[i]); if(i%4==0) printf("\n"); } printf("\n"); } 26.编写一个程序,输出数组中小于5的数; #include main() { inta[10]={21,32,2,14,5,25,39,51,8,12},*p; intcount=0; for(p=a;p { if(*p<20) printf("%d\t",*p); if(++count==10) break; } } 27.利用指针法,对数组中的元素加一; #include main() { inta[20]={1,3,5,7,9},i,*p; for(p=a;p { printf("%4d",*p); } printf("\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 主观 试题 典型 例题 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)