30道上机考试题目.docx
- 文档编号:3832164
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:47.77KB
30道上机考试题目.docx
《30道上机考试题目.docx》由会员分享,可在线阅读,更多相关《30道上机考试题目.docx(19页珍藏版)》请在冰豆网上搜索。
30道上机考试题目
C语言上机考试题目:
1.输入正三角形的边长,求其内切圆面积。
输出时要有文字说明,取小数点后两位数字。
file1.c:
#include
voidmain()
{floatfac(floatx);floata,s;
scanf("%f",&a);
s=fac(a);
printf("内切圆面积是:
%5.2f",s);}
file2.c:
#include
#definePi3.1415926
floatfac(floatx)
{floats;
s=1.0/12.0*Pi*x*x;
return(s);}
2.从键盘输入一个小写字母,要求改为大写字母输出。
输出时要有文字说明。
file1.c
#include
voidmain()
{charfac(charx);charc1,c2;
scanf(“%c”,&c1);c2=fac(c1);
printf(“大写字母是:
%c\n”,c2);}
file2.c
#include
charfac(charx)
{charc2;
c2=x-32;
return(c2);}
3.求方程ax2+bx+c=0的根。
a,b,c由键盘输入,设b2-4ac>0。
输出时要有文字说明,取小数点后两位数字。
file1.c
#include
#include
voidmain()
{floatA(floatx,floaty,floatz);
floata,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&a,&b,&c);
disc=A(a,b,c);p=-b/(2*a);
q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;
printf("方程的根是:
x1=%5.2f,x2=%5.2f\n",x1,x2);}
file2.c
#include
floatA(floatx,floaty,floatz)
{floatdisc;
disc=y*y-4*x*z;return(disc);}
4.设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积、圆球体积、圆柱体积。
用键盘输入数据。
输出时要有文字说明,取小数点后两位数字。
file1.c
#include
voidmain()
{floatlength(floatx);
floatarea(floatx);
floatvqs(floatx);
floatvzs(floatx,floaty);
floatr,h,l,s,vq,vz;
scanf("%f,%f",&r,&h);
l=length(r);s=area(r);vq=vqs(r);vz=vzs(r,h);
printf("圆周长为:
l=%6.2f\n圆面积为:
s=%6.2f\n圆球体积为:
vq=%6.2f\n圆柱体积为:
vz=%6.2f\n",l,s,vq,vz);}
file2.c
#include
#definePi3.1415926
floatlength(floatx)
{floatl;l=2*Pi*x;
return(l);}
floatarea(floatx)
{floats;s=Pi*x*x;
return(s);}
floatvqs(floatx)
{floatvq;vq=4.0/3.0*Pi*x*x*x;
return(vq);}
floatvzs(floatx,floaty)
{floatvz;vz=Pi*x*x*y;
return(vz);}
5.输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9(F-32)。
输出时要有文字说明,取小数点后两位数字。
file1.c
#include
voidmain()
{floatfac(floatx);floatc,f;
scanf("%f",&f);c=fac(f);
printf("摄氏温度为:
%5.2f\n",c);}
file2.c
#include
floatfac(floatx)
{floatc;
c=5.0/9.0*(x-32);
return(c);}
6.由键盘输入三个实数,输出其中最大的数。
输出时要有文字说明,取小数点后两位数字。
file1.c
#include
voidmain()
{floatmax(floatx,floaty,floatz);
floata,b,c,M;
scanf("%f,%f,%f",&a,&b,&c);
M=max(a,b,c);printf("M=%5.2f\n",M);}
file2.c
#include
floatmax(floatx,floaty,floatz)
{floatM;
if(x>y)M=x;
elseM=y;
if(z>M)M=z;return(M);}
7.由键盘输入三个字符,输出其中最大的字符。
输出时要有文字说明。
file1.c
#include
voidmain()
{charmax(charx,chary,charz);chara,b,c,M;
scanf("%c,%c,%c",&a,&b,&c);
M=max(a,b,c);
printf("三个字符中的最大的字符为M=%c\n",M);}
file2.c
#include
charmax(charx,chary,charz)
{charM;if(x>y)M=x;elseM=y;
if(z>M)M=z;return(M);}
8.由键盘输入三个实数,要求按由小到大的顺序输出。
输出时要有文字说明,取小数点后两位数字。
file1.c
#include
externfloatA,B,C;
voidmain()
{voidf(floatx,floaty,floatz);
floata,b,c;
scanf("%f,%f,%f",&a,&b,&c);
f(a,b,c);
printf("%10.2f,%10.2f,%10.2f",A,B,C);}
file2.c
#include
floatA,B,C;
voidf(floatx,floaty,floatz)
{floatt;
if(x>y){t=x;x=y;y=t;}
if(x>z){t=x;x=z;z=t;}
if(y>z){t=y;y=z;z=t;}
A=x;B=y;C=z;}
9.求s=1+3+5+…+99。
输出时要有文字说明。
file1.c
#include
voidmain()
{intsum(intx);ints=0;
s=sum(s);
printf("s的值为:
%d\n",s);}
file2.c
#include
intsum(intx)
{inti=1;while(i<=100)
{x=x+i;i+=2;}
return(x);}
10.把100-200之间不能被3整除的数输出。
输出时要有文字说明。
file1.c
#include
voidmain()
{intfun(intx);
inti;
printf("100-200之间不能被3整除的数是:
");
for(i=100;i<=200;i++)
{if(fun(i)!
=1)
printf("%d,",fun(i));}}
file2.c
#include
intfun(intx)
{if(x%3!
=0)
return(x);
elsereturn
(1);}
11.输出100-200之间的全部合数。
输出时要有文字说明。
file1.c
#include
voidmain()
{intheshu(intx);intn;
printf("100到200间存在合数:
");
for(n=100;n<201;n++)
{if(heshu(n)!
=1)
printf("%d,",heshu(n));}}
file2.c
#include
intheshu(intx)
{inti;
for(i=2;i if(x%i==0)return(x); elsereturn (1);} 12.从键盘输入一个3×3矩阵,将其转置矩阵输出。 file1.c #include intarray[3][3]; voidmain() {voidconvert(intarray[][3]); inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&array[i][j]); printf("原矩阵为: \n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%5d",array[i][j]); printf("\n");} convert(array); printf("转置后的矩阵是: \n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%5d",array[i][j]); printf("\n");}} file2.c #include voidconvert(intarray[][3]) {inti,j,t; for(i=0;i<3;i++) for(j=i+1;j<3;j++) {t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t;}} 13.有一个分数序列 求出这个数列的前20项之和。 输出时要有文字说明,取小数点后两位数字。 file1.c #include voidmain() {floatsum(floatx,floaty,floatz); floatt,a,b,s; a=2;b=1; s=sum(a,b,t); printf("数列的前二十项之和是: %9.2f\n",s);} file2.c #include floatsum(floatx,floaty,intz) {floati,s=0; for(i=1;i<=20;i++) {s=s+x/y;z=x;x=x+y;y=z;} return(s);} 14.由键盘输入两个字符串“Howoldareyou? ”和“Iamtwenty-two.”,将这两个字符串联成一个字符串输出。 file1.c #include voidmain() {voidcon(charstr1[],charstr2[],charstr[]); chars1[100],s2[100],s[100]; gets(s1);gets(s2); printf(“串联后的新字符串是: ”); con(s1,s2,s);puts(s);} file2,c #include voidcon(charstr1[],charstr2[],charstr[]) {inti,j; for(i=0;str1[i]! ='\0';i++)str[i]=str1[i]; for(j=0;str2[j]! ='\0';j++)str[i+j]=str2[j];str[i+j]='\0';} 15.任意输入两个实数,输出其中较小的数。 通过函数调用的方式实现。 file1.c #include voidmain() {floatmin(floatx,floaty); floata,b,c; scanf("%f,%f",&a,&b); c=min(a,b); printf("min=%f\n",c);} file2.c #include floatmin(floatx,floaty) {floatc; if(x>y)c=y; elsec=x; return(c);} 16.任意输入两个实数,输出他们的积。 通过函数调用的方式实现。 file1.c #include voidmain() {floatfac(floatx,floaty); floata,b,c; scanf("%f,%f",&a,&b); c=fac(a,b);printf("积是%f\n",c);} file2.c #include floatfac(floatx,floaty) {floatc; c=x*y;return(c);} 17.给出一个3×3矩阵,求所有元素中的最大值。 file1.c #include voidmain() {intmax_value(intarray[][3]); inti,j,a[3][3]; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("所有元素中的最大值为: %d\n",max_value(a));} file2.c #include intmax_value(intarray[][3]) {inti,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(array[i][j]>max) max=array[i][j]; return(max);} 18.输出任意一个正整数的阶乘值. file1.c #include voidmain() {floatfac(intx); intn;floaty; scanf("%d",&n); y=fac(n); printf("%d! =%10.0f\n",n,y);} file2.c #include floatfac(intx) {floaty;if(x<=0) {printf("x<=0,dataerror! ");} elseif(x==1)y=1; elsey=fac(x-1)*x; return(y);} 19.从输入的十个大于零的正整数中选出最大值输出。 file1.c #include voidmain() {intmax(intx[]); inta[10],m;inti; for(i=0;i<10;i++) scanf("%d",&a[i]); m=max(a); printf("%d",m);} file2.c #include intmax(intx[]) {inti,m;m=x[0]; for(i=0;i<10;i++)if(m m=x[i];return(m);} 21.设三角形的三边长均为整数,任意输入三个整数,检查是否构成三角形。 file1.c #include voidmain() {inthanshu(intx,inty,intz); inta,b,c,d; printf("请输入三个整数: "); scanf("%d,%d,%d",&a,&b,&c); d=hanshu(a,b,c);if(d==1) printf("它们能构成三角形。 "); elseprintf("它们不能构成三角形。 ");} file2.c #include inthanshu(intx,inty,intz) {intw; w=(x+y>z&&x+z>y&&y+z>x);return(w);} 22.任意输入四个数,求其中的最大者和最小者并输出。 file1.c #include voidmain() {floatmax(floatx[]); floatmin(floatx[]); floata[4],m,n;inti; for(i=0;i<4;i++) scanf("%f",&a[i]); m=max(a);n=min(a); printf("最大者为%f,最小者为%f",m,n);} file2.c #include floatmax(floatx[]) {inti;floatm;m=x[0]; for(i=0;i<4;i++)if(m m=x[i];return(m);} floatmin(floatx[]) {inti;floatn; n=x[0];for(i=0;i<4;i++) if(n>x[i])n=x[i];return(n);} 23.在1-32000中找出能同时满足被3除余1,被5除余4,被7除余3的数。 file1.c #include voidmain() {intfun(intx);inti,b; printf("满足条件的数是: "); for(i=1;i<=32000;i++) {b=fun(i);printf("%d,",b);}} file2.c #include intfun(intx) {if(x%3==1&&x%5==4&&x%7==3) return(x);} 24.任意输入一个学生的成绩,按下列情况分类;90~100为A,80~89为B,70~79为C,60-69为D,小于60为E。 file1.c #include voidmain() {chargrade(floatx); floatg; charc; scanf("%f",&g); c=grade(g); printf("%c",c);} file2.c #include chargrade(floatx) {chary;switch((int)(x/10)) {case10: case9: y='A';break; case8: y='B';break; case7: y='C';break; case6: y='D';break; case5: case4: case3: case2: case1: case0: y='E';}; return(y);} 25.任意输入一个年份,判断其是否闰年。 file1.c #include voidmain() {intf(intx);inta,year; scanf("%d",&year); a=f(year); if(a==1) printf("%d是闰年",year); elseprintf("%d不是闰年",year);} file2.c #include intf(intx) {intw; w=(x%4==0&&x%100! =0|| x%400==0); return(w);} 26.有一个函数 写一个程序,输入 输出 。 file1.c #include voidmain() {floatF(floatz); floatx,y; scanf("%f",&x); y=F(x); printf("y=%f\n",y);} file2.c #include #include floatF(floatz) {floaty;if(z<1){y=z;} elseif(z>=10){y=3*z-11;} else{y=2*cos(z)-1;} return(y);} 27.有一个函数 写一个程序,输入 输出 。 file1.c #include voidmain() {floatF(floatz); floatx,y; scanf("%f",&x);y=F(x); printf("y=%f\n",y);} file2.c #include #include floatF(floatz) {floaty; if(z<1){y=z*z;} elseif(z>=10){y=3*sqrt(z)-11;} else{y=2*sin(z)-1;} return(y);} 28.有一个函数 写一个程序,输入 输出 。 file1.c #include voidmain() {floatF(floatz); floatx,y; scanf("%f",&x);y=F(x); printf("y=%f\n",y);} file2.c #include floatF(floatz) {floaty;if(z>=5) {y=(z-5)/(z+3);} elseif(z<-3||-3 {y=(5-z)/(z+3);}Return(y);} 29.有一个函数 写一个程序,输入 输出 。 file1.c #include voidmain() {floatF(floatz); floatx,y; scanf("%f",&x);y=F(x); printf("y=%f\n",y);} file2.c #include #include floatF(floatz) {floaty;if(z<1){y=z;} elseif(z>=10){y=3*z-11;} else{y=2*sin(z)-1;}return(y);} 30.已知大圆的半径为r=2.5cm,试编写一程序,求出图中阴影部分的面积。 (输出结果保留两位小数)h=1.7675l=3.535 file1.c #include voidmain() {floatarea(floatx,floaty,floatz);floats,r,h,l; scanf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 30 上机 考试 题目