C语言上机试题.docx
- 文档编号:14607422
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:29
- 大小:22.99KB
C语言上机试题.docx
《C语言上机试题.docx》由会员分享,可在线阅读,更多相关《C语言上机试题.docx(29页珍藏版)》请在冰点文库上搜索。
C语言上机试题
1有一函数:
x<1,y=x;1≤x<10,y=2*x-1x≥10,y=3*x-11
写一程序,输入x值,输出y值。
#include
main()
{intx,y;
printf("输入x:
");
scanf("%d",&x);
if(x<1)/*x<1*/
{y=x;
printf("x=%3d,y=x=%d\n",x,y);
}
elseif(x<10)/*1≤x-10*/
{y=2*x-1;
printf("x=%3d,y=2*x-1=%d\n",x,y);
}
else/*x≥10*/
{y=3*x-11;
printf("x=%3d,y=3*x-11=%d\n",x,y);
}
}
2给一个百分制成绩,要求输出等级’A’、’B’、’C’、’D’、’E’。
90分以上为’A’,80~90分为’B’,70~79分为’C’,60分以下为’D’。
程序如下:
#include
main()
{floatscore;
chargrade;
printf("请输入学生成绩:
");
scanf("%f",&score);
while(score>100||(score<0)
{printf("\n输入有误,请重新输入:
");
scanf("%f",&score);
}
switch((int)(score/10))
{case10:
case9:
grade=’A’;break;
case8:
grade=’B’;break;
case7:
grade=’C’;break;
case6:
grade=’D’;break;
case5:
case4:
case3:
case2:
case1:
case0:
grade=’E’;
}
printf("成绩是%5.1f,相应的等级是%c。
\n",score,grade);
}
说明:
对输入的数据进行检查,如小于0或大于100,要求重新输入。
(int)(score/10)的作用是将(score/10)的值进行强制类型转换,得到一个整型值。
3.输入两个正整数m和n,求其最大公约数和最小公倍数。
main()
{longm,n,i=1,j,s;
scanf("%ld,%ld",&m,&n);
for(;i<=m&&i<=n;i++)
{if(m%i==0&&n%i==0)s=i;}
if(m>=n)j=m;
elsej=n;
for(;!
(j%m==0&&j%n==0);j++);
printf("s=%ld,j=%ld\n",s,j);
}
4.求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。
例如:
2+22+222+2222+22222(n=5),n由键盘输入。
#include"math.h"
main()
{intn,sum=0,i=1,s=2;
scanf("%d",&n);
while(i<=n)
{sum=sum+s;s=s+2*pow(10,i);
i++;}
printf("sum=%d\n",sum);
}
5.即求1!
+2!
+3!
+4!
+5!
+…+20!
main()
{intn,i=1;longsum=0,s=1;
scanf("%d",&n);
while(i<=n){s=s*i;sum=sum+s;i++;}
printf("sum=%ld\n",sum);
}
6打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。
例如:
153是一个水仙花数,因为153=1^3+5^3+3^3。
#include"math.h"
main()
{intx=100,a,b,c;
while(x>=100&&x<1000){a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b;
if(x==(pow(a,3)+pow(b,3)+pow(c,3)))printf("%5d",x);x++;}
}
7一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。
编程序找出1000之内的所有完数,并按下面格式输出其因子:
6 its factors are 1、2、3
main()
{intm,i,j,s;
for(m=6;m<10000;m++)
{s=1;
for(i=2;i if(m%i==0)s=s+i; if(m-s==0) {printf("%5ditsfastorsare1",m);for(j=2;j printf("%d",j);printf("\n");} } } 或 main() {intm,i,j,s; for(m=6;m<1000;m++) {s=m-1; for(i=2;i if(m%i==0)s=s-i; if(s==0) {printf("%5ditsfastorsare1",m);for(j=2;j printf("%d",j);printf("\n");} } } 8用选择法对10个整数从小到大排序。 main() {inti,j,a[10],t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(j=1;j<10;j++) for(i=0;i<=9-j;i++) if(a[i]>a[i+1]) {t=a[i+1];a[i+1]=a[i];a[i]=t;} for(i=0;i<10;i++) printf("%5d",a[i]); } 或 main() {staticinta[10],i,j,k,t; for(i=1;i<11;i++) scanf("%d",&a[i]); for(j=1;j<10;j++) for(i=1;i<=10-j;j++) if(a[i]>a[i+1]) {t=a[i+1];a[i+1]=a[i];a[i]=t;} for(i=1;i<11;i++) printf("%d",a[i]); printf("\n"); } 9求一个3×3矩阵对角线元素之和。 main() {inti=0,j=0,a[3][3],s1,s2; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); s1=a[0][0]+a[1][1]+a[2][2]; s2=a[0][2]+a[1][1]+a[2][0]; printf("s1=%d,s2=%d\n",s1,s2); } 或 main() { staticinti,j,s1,s2,a[3][3]; for(i=1;i<=3;i++) for(j=1;j<=3;j++) scanf("%d",&a[i][j]); s1=a[1][1]+a[2][2]+a[3][3]; s2=a[1][3]+a[2][2]+a[3][1]; printf("%d,%d\n",s1,s2); } 10已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。 main() {staticinta[10]={1,7,8,17,23,24,59,62,101};inti,j,t; scanf("%d",&a[9]); for(i=9;i>0;i--)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 试题