C语言上机考试答案.docx
- 文档编号:11410751
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:26
- 大小:41.62KB
C语言上机考试答案.docx
《C语言上机考试答案.docx》由会员分享,可在线阅读,更多相关《C语言上机考试答案.docx(26页珍藏版)》请在冰豆网上搜索。
C语言上机考试答案
C语言期末上机试题参考答案
1、输入正三角形的边长,求其内切圆面积。
输出时要有文字说明,取小数点后两位数字。
1.2
#include
floatR(floatx)
{floatr;
r=x/(2*sqrt(3));
return(r);
}
1.1
#include
voidmain()
{
floatR(floatx);
floata,area,r;
scanf("%f",&a);
r=R(a);
area=3.14*r*r;
printf("areais%0.2f\n",area);
}
2、从键盘输入一个小写字母,要求改为大写字母输出。
输出时要有文字说明。
2.2
charfun(charx)
{charc3;
if('a'<=x<='z')
c3=x-32;
return(c3);}
2.1
#include
voidmain()
{charfun(charx);
charc1,c2;
scanf("%c",&c2);
c1=fun(c2);
printf("%c",c1);}
3、求方程ax2+bx+c=0的根。
a,b,c由键盘输入,设b2-4ac>0。
输出时要有文字说明,取小数点后两位数字。
3.2
#include
floatA(floatx,floaty,floatz)
{floatdisc;
disc=y*y-4*x*z;return(disc);}
3.1
#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);}
4、设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积、圆球体积、圆柱体积。
用键盘输入数据。
输出时要有文字说明,取小数点后两位数字。
4.1
#include
voidmain()
{floatfun1(floatx);floatfun2(floatx);floatfun3(floatx);floatfun4(floatx,floaty);
floatr,h;
scanf("%f%f",&r,&h);
floatl,s,sq,sz;
l=fun1(r);
printf("圆周长为:
l=%.2f",l);
s=fun2(r);
printf("圆面积为:
s=%.2f",s);
sq=fun3(r);
printf("圆球体积为:
sq=%.2f",sq);
sz=fun4(r,h);
printf("圆柱体积为:
sz=%.2f",sz);}
4.3
#include
#definePi3.14
floatfun2(floatx)
{floats1;
s1=Pi*x*x;
return(s1);}
4.2
#include
#definePi3.14
floatfun1(floatx)
{floatl1;
l1=Pi*x*2.0;
return(l1);}
4.5
#include
#definePi3.14
floatfun4(floatx,floaty)
{floatsz;
sz=Pi*x*x*y;
return(sz);}
4.4
#include
#definePi3.14
floatfun3(floatx)
{floatsq;
sq=Pi*x*x*x*4.0/3.0;
return(sq);}
5、输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9(F-32)。
输出时要有文字说明,取小数点后两位数字。
5.1
5.2
floatfun(floatx)
{floatc1;
c1=(5.0/9.0)*(x-32);
return(c1);
}
#include
voidmain()
{floatfun(floatx);
floatf,c;
printf("请输入一个华氏温度:
");
scanf("%f",&f);
c=fun(f);
printf("摄氏温度为:
%.2f\n",c);
}
6、由键盘输入三个实数,输出其中最大的数。
输出时要有文字说明,取小数点后两位数字。
6.1
6.2
floatfun(floatx,floaty,floatz)
{floattemp,max;
temp=(x>y)?
x:
y;
max=(temp>z)?
temp:
z;
return(max);}
#include
#include
voidmain()
{
floatfun(floatx,floaty,floatz);
floata,b,c,max;
printf("请输入三个数字:
");
scanf("%f,%f,%f",&a,&b,&c);
max=fun(a,b,c);
printf("三个整数的最大数是%0.2f\n",max);}
7、由键盘输入三个字符,输出其中最大的字符。
输出时要有文字说明。
7.2
charfun(chara[])
{inti;
charmax;
max=a[0];
for(i=1;i<3;i++)
if(a[i]>max)max=a[i];
return(max);}
7.1
#include
voidmain()
{charfun(chara[]);
inti;
chara[3],z;
for(i=0;i<3;i++)
scanf("%c",&a[i]);
z=fun(a);
printf("%c",z);}
8、由键盘输入三个实数,要求按由小到大的顺序输出。
输出时要有文字说明,取小数点后两位数字。
8.2
floatl(floatx,floaty,floatz)
{floatw;
if(x>y){w=x;x=y;y=w;}
if(x>z){w=x;x=y;y=w;}
if(y>z){w=y;y=z;z=w;}
printf("输出三个数从小到大的顺序为:
%6.2f%6.2f%6.2f",x,y,z);}
8.1
#include
voidmain()
{floatl(floatx,floaty,floatz);
floata,b,c;
printf("输入三个是实数");
scanf("%f%f%f",&a,&b,&c);
l(a,b,c);}
9、求s=1+3+5+…+99。
输出时要有文字说明。
9.1
9.2
#include
intsum(intx)
{ints=0,t;
for(t=1;t<=x;t+=2)
s=s+t;
return(s);}
#include
voidmain()
{intsum(intx);
intn,s;
printf("输入一个n值:
");
scanf("%d",&n);
s=sum(n);
printf("sum=%d",s);}
10、把100-200之间不能被3整除的数输出。
输出时要有文字说明。
10.2
intfun(intn)
{staticintz=100;
if(n%3!
=0)z=n;
return(z);}
10.1
#include
voidmain()
{intfun(intn);
inti;
for(i=100;i<=200;i++)
printf("%d\n",fun(i));}
11、输出100-200之间的全部合数。
输出时要有文字说明。
11.1
#include
voidmain()
{
intheshu(intx);
intn;
printf("100到200之间的合数为:
");
for(n=100;n<=200;n++)
{
if(heshu(n)!
=1)
printf("%d",heshu(n));
}
printf("\n");
}
11.2
#include
intheshu(intx)
{
inti;
inta=1;
for(i=2;i if(x%i==0) a=0; if(a==0) return(x); elseif(a==1) return(a); } 12、从键盘输入一个3×3矩阵,将其转置矩阵输出。 12.2 #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; } } 12.1 #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"); } } 13、有一个分数序列 求出这个数列的前20项之和。 输出时要有文字说明,取小数点后两位数字。 13.1 13.2 #include floatfac(floatm,floatn) {return(m+n);} #include voidmain() {floatn=1.0,m=2.0,s=0; floatfac(floatm,floatn); inti; for(i=1;i<=20;i++) { s=s+m/n; n=m; m=fac(m,n);} printf("数列的前二十项和为: %5.2f\n",s); } 14.2 #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'; } 14、由键盘输入两个字符串“Howoldareyou? ”和“Iamtwenty-two.”,将这两个字符串联成一个字符串输出。 14.1 #include voidmain() {voidcon(charstr1[],charstr2[],charstr[]); chars1[100],s2[100],s[100]; gets(s1);gets(s2); printf("串联后的新字符串是: "); con(s1,s2,s);puts(s);} 15、任意输入两个实数,输出其中较小的数。 通过函数调用的方式实现。 15.1 15.2 #include floatmin(floatx,floaty) {floatz; if(x elsez=y; return(z);} #include voidmain() {floatmin(floatx,floaty); floata,b,c; printf("请输入实数: "); scanf("%f,%f",&a,&b); c=min(a,b); printf("两数中最小的是: c=%f",c);} 16、任意输入两个实数,输出他们的积。 通过函数调用的方式实现。 16.1 16.2 #include floatz(floatx,floaty) {floatz; z=x*y; return(z);} #include voidmain() {floatz(floatx,floaty); floata,b,c; printf("请输入两个实数: "); scanf("%f,%f",&a,&b); c=z(a,b); printf("两数之积为: c=%f\n",c);} 17、给出一个3×3矩阵,求所有元素中的最大值。 17.2 #include intMax(inta[][3]) {intm,x,y; m=a[0][0]; for(x=0;x<=2;x++) for(y=0;y<=2;y++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 考试 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)