大一C语言考试上附答案.docx
- 文档编号:24138603
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:34
- 大小:33.47KB
大一C语言考试上附答案.docx
《大一C语言考试上附答案.docx》由会员分享,可在线阅读,更多相关《大一C语言考试上附答案.docx(34页珍藏版)》请在冰豆网上搜索。
大一C语言考试上附答案
1.有一个函数
写一段程序,输入
的值,输出
的值。
#include
intmain()
{
intx,y;
scanf("%d",&x);
if(x>100||x<0)
y=-1;
elseif(x==0)
y=0;
else
y=1;
printf("%d\n",y);
return0;
}
2.输入3个实数a,b,c,输出其中最小的数。
#include
intmain()
{
inta,min=32767,n=3;
while(n--)
{
scanf("%d",&a);
if(a min=a; } printf("%d\n",min); return0; } 3.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。 #include #include intmain() { inta,b,c,s,d; scanf("%d%d%d",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) { d=(a+b+c)/2; s=sqrt(d*(d-a)*(d-b)*(d-c)); printf("%d\n",s); } else printf("三边构不成三角形\n"); } 4.输入4个整数,输出4个数中的最大值、最小值。 #include intmain() { inta,max=-32768,min=32767,n=4; while(n--) { scanf("%d",&a); if(a>max) max=a; if(a min=a; } printf("%d%d\n",max,min); return0; } 5.要求按照成绩的等级输出百分制分数段,A等为90分以上,B等为80~89,C等为70~79,D等为60~69,E等为60分以下。 成绩的等级由键盘输入,若输入的等级非A、B、C、D、E字符,输出”enterdataerror”。 #include intmain() { chara; a=getchar(); if(a=='A') { printf("90分以上\n"); } elseif(a=='B') { printf("80~89\n"); } elseif(a=='C') { printf("70~79\n"); } elseif(a=='D') { printf("60~69\n"); } elseif(a=='E') { printf("60分以下\n"); } else { printf("enterdataerror\n"); } return0; } 6.有一个函数: 写一段程序,输入 的值,输出 的值。 #include intmain() { intx,y; scanf("%d",&x); if(x<1) { y=x; printf("%d\n",y); } elseif(x==10) { y=3*x-11; printf("%d\n",y); } else { y=2*x-1; printf("%d\n",y); } return0; } 7.输入成绩,要求输出成绩等级A、B、C、D、E或error。 90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,0~60分为‘E’。 若输入成绩低于0分和高于100分则输出error。 #include intmain() { inta; scanf("%d",&a); if(a>100) printf("error\n"); else { if(a>90) printf("A\n"); elseif(a>80) printf("B\n"); elseif(a>70) printf("C\n"); elseif(a>60) printf("D\n"); else printf("E\n"); } return0; } 8.求一元二次方程ax2+bx+c=0的解。 (考虑b2-4ac三种情况) #include #include intmain() { doublea,b,c,d,e,x1,x2,i; scanf("%lf%lf%lf",&a,&b,&c); d=b*b-4*a*c; e=-b/(2*a); if(d>1e-6) { x1=e+sqrt(d)/(2*a); x2=e-sqrt(d)/(2*a); printf("%.2lf%.2lf",x1,x2); } elseif(d==1e-6) { x1=x2=e; printf("%.2lf%.2lf",x1,x2); } else { printf("%.2lf+%.2lfi%.2lf-%.2lfi\n",e,sqrt(-d)/(2*a),e,sqrt(-d)/(2*a)); } return0; } 9.输入某年某月某日,判断这一天是这一年的第几天? (注意是否为闰年) #include intmain() { inti,n=0,year,math,day,s[12]={31,28,31,30,31,30,31,31,30,31,30,31}; scanf("%d%d%d",&year,&math,&day); if((year%4==0&&year%100! =0)||(year%400==0)) s[1]=29; for(i=0;i n=n+s[i]; n=n+day; printf("%d\n",n); return0; } 10.公司规定,男职工到60岁退休,女职工到55岁退休。 编写一个程序,输入职工的性别和年龄,判断出该职工是“已退休”还是“在职”。 (输入时,用一个小写英文字母来表示性别,‘m’表示男性,’f’表示女性)。 #include intmain() { chara; intb; a=getchar(); scanf("%d",&b); if(a=='m') { if(b>=60) printf("已退休\n"); else printf("在职\n"); } elseif(a=='f') { if(b>=55) printf("已退休\n"); else printf("在职\n"); } return0; } 11.输入一个数,判断该数是否为素数。 #include intmain() { inta,b; scanf("%d",&a); for(b=2;b if(a%b==0)break; if(b elseprintf("%disaprimenumber.\n",a); return0; } 12.编程实现求解s=1*2+2*3+3*4+…+20*21,并输出结果。 #include intmain() { inta,s=0; for(a=1;a<=20;a++) s=s+a*(a+1); printf("%d\n",s); return0; } 13.求Fibonacci数列的前20个数,并按每行5个数输出。 #include intmain() { intf1=1,f2=1,a,f3; printf("%d%d",f1,f2); for(a=3;a<=20;a++) { f3=f1+f2; printf("%d",f3); if(a%5==0) printf("\n"); f1=f2; f2=f3; } return0; } 14.求1+3! +5! +...+19! 的和。 #include intmain() { doubles,c=0; inta,b; for(a=1;a<=19;a+=2) { s=1; for(b=1;b<=a;b++) s=s*b; c=c+s; } printf("%lf\n",c); return0; } 15.有一分数序列 ,求其前30项的和。 #include intmain() { inti; doublea=1,b=2,s=0,t; for(i=1;i<=30;i++) { s=s+a/b; t=b; b=a+b; a=t; } printf("%lf\n",s); return0; } 16.编写一个程序,计算1+3+32+33……310的值并输出。 #include #include intmain() { inta=0,i; for(i=0;i<=10;i++) a=a+pow(3,i); printf("%d\n",a); return0; } 17.从键盘任意输入一个4位数x,编程计算x的每一位数字相加之和。 例如,输入x为1234,则其千位为1、百位为2、十位为3、个位为4,然后计算1+2+3+4=10,输出10。 (要求使用循环实现) #include intmain() { intm,n,s=0; scanf("%d",&m); while(m! =0) { n=m%10; m=m/10; s=s+n; } printf("%d\n",s); return0; } 18.输入一个八进制数,并将其转换为十进制。 (要求使用循环实现) #include #include intmain() { inta,b=0,m=0; scanf("%d",&a); while(a! =0) { m=m+(a%10)*(int)pow(8,b); b++; a=a/10; } printf("%d\n",m); return0; } 19.输入两个正整数m和n,求其最大公约数和最小公倍数。 #include intmain() { inta,b,c,d,p; scanf("%d%d",&a,&b); if(a { c=a; a=b; b=c; } p=a*b; while(b! =0) { d=a%b; a=b; b=d; } printf("%d%d\n",a,p/a); return0; } 20.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? #include intmain() { inti; floath=50,a=100; for(i=2;i<=10;i++) { a=a+2*h; h=h/2; } printf("%f%f\n",a,h); return0; } 21.输出倒三角形式的9*9口诀表,要求用循环实现。 9*1=99*2=189*3=279*4=36……9*9=81 8*1=88*2=168*3=248*4=328*8=6 1*1=1 #include intmain() { inta,b,s; for(a=9;a>0;a--) { for(b=1;b<=a;b++) { s=a*b; printf("%d*%d=%d",a,b,s); } printf("\n"); } } 22.输出菱形图案。 (要求使用双循环实现,不能利用字符数组或简单的printf函数输出) #include intmain() { inta,b,c; for(a=1;a<=5;a++) { for(b=1;b<=5-a;b++) printf(""); for(c=1;c<=2*a-1;c++) printf("*"); printf("\n"); } for(a=1;a<=4;a++) { for(b=1;b<=a;b++) printf(""); for(c=1;c<=9-2*a;c++) printf("*"); printf("\n"); } return0; } 23.一个数如果恰好等于它的因子之和,这个数就称为“完数”。 例如6的因子为1,2,3,而6=1+2+3,因此6是完数。 编写程序找出500以内的所有完数,并按下面的格式输出其因子: 6itsfactorsare1,2,3 #include intmain() { inta,b,c; for(a=2;a<500;a++) { b=0; for(c=1;c if((a%c)==0)b+=c; if(b==a) { printf("%d,itsfactorsare",a);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大一 语言 考试 答案