C语言上机考试答案.docx

上传人:b****7 文档编号:11410751 上传时间:2023-02-28 格式:DOCX 页数:26 大小:41.62KB
下载 相关 举报
C语言上机考试答案.docx_第1页
第1页 / 共26页
C语言上机考试答案.docx_第2页
第2页 / 共26页
C语言上机考试答案.docx_第3页
第3页 / 共26页
C语言上机考试答案.docx_第4页
第4页 / 共26页
C语言上机考试答案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言上机考试答案.docx

《C语言上机考试答案.docx》由会员分享,可在线阅读,更多相关《C语言上机考试答案.docx(26页珍藏版)》请在冰豆网上搜索。

C语言上机考试答案.docx

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++)

if(m

return(m);}

17.1

#include

voidmain()

{intMax(inta[][3]);

inti,j,max,a[3][3];

printf("请输入3*3的矩阵:

\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

printf("\n");

max=Max(a);

printf("最大值为:

max=%d\n",max);}

18.2

#include

intz(intx)

{ints=1;

inti;

for(i=1;i<=x;i++)

s=s*i;

return(s);}

18、输出任意一个正整数的阶乘值。

18.1

#include

voidmain()

{intz(intx);

intt,n;

printf("请输入一个正整数:

");

scanf("%d",&n);

t=z(n);

printf("正整数的阶乘值为:

%d\n",t);}

19、从输入的十个大于零的正整数中选出最大值输出。

19.2

unsignedintmax_y(unsignedintarry[])

{unsignedintm=arry[0],i;

for(i=1;i<10;i++)

if(m

m=arry[i];

return(m);}

19.1

#include

voidmain()

{

unsignedmax_y(unsignedintarry[]);

unsignedinta[10];

unsignedinti,max;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

max=max_y(a);

printf("max=%u",max);}

20.2

floatl(floatx,floaty,floatz)

{floatt;

if(x

if(x

if(y

printf("输出三个数从大到小为x=%f,y=%f,z=%f",x,y,z);

}

20、任意输入三个实数a,b,c,按从大到小的顺序输出,使a最大,b居中,c最小。

20.1

#include

voidmain()

{floatl(floatx,floaty,floatz);

floata,b,c;

printf("输入三个数");

scanf("%f,%f,%f",&a,&b,&c);

l(a,b,c);

}

21、设三角形的三边长均为整数,任意输入三个整数,检查是否构成三角形。

21.2

intl(intx,inty,intz)

{intp;

if((x+y)>z&&(x+z)>y&&(y+z)>x)

p=1;

elsep=0;

return(p);}

21.1

#include

voidmain()

{

intl(intx,inty,intz);

inta,b,c;

intt;

printf("输入三个是实数\n");

printf("输出t是1表示能构成\n");

printf("输出t是0表示不能构成\n");

scanf("%d%d%d",&a,&b,&c);

t=l(a,b,c);

printf("t=%d",t);

}

22、任意输入四个数,求其中的最大者和最小者并输出。

22.1

#include

voidmain()

{floatm(floatx1,floatx2,floatx3,floatx4);

floatn(floatx1,floatx2,floatx3,floatx4);

floata,b,c,d,max,min;

printf("输入四个数\n");

scanf("%f%f%f%f",&a,&b,&c,&d);

max=m(a,b,c,d);

min=n(a,b,c,d);

printf("最大值max=%5.2f,最小值min=%5.2f\n",max,min);}

22.2

22.3

floatn(floatx1,floatx2,floatx3,floatx4)

{floatx,y,z;

x=(x1

x1:

x2;

y=(x3

x3:

x4;

z=(x

x:

y;

return(z);}

floatm(floatx1,floatx2,floatx3,floatx4)

{floatx,y,z;

x=(x1>x2)?

x1:

x2;

y=(x3>x4)?

x3:

x4;

z=(x>y)?

x:

y;

return(z);

}

23、在1-32000中找出能同时满足被3除余1,被5除余4,被7除余3的数。

23.2

#include

intf(intx,inty)

{

intz;

z=x%y;

return(z);}

23.1

#include

voidmain()

{intf(intx,inty);

inti,a,b,c;

for(i=1;i<=32000;i++)

{a=f(i,3);b=f(i,5);c=f(i,7);

if(a==1&&b==4&&c==3)

printf("%d\n",i);}}

24.2

#include

charfun(floatx)

{charg;

switch((int)(x/10))

{case10:

case9:

g='A';break;

case8:

g='B';break;

case7:

g='C';break;

case6:

g='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

g='E';break;}

return(g);}

24、任意输入一个学生的成绩,按下列情况分类;90~100为A,80~89为B,70~79为C,60-69为D,小于60为E。

24.1

#include

voidmain()

{charfun(floatx);

floats;

charr;

printf("enterastudent'ss:

");

scanf("%f",&s);while(s<0||100

printf("有误\n");

r=fun(s);

printf("成绩是%5.2f,相应的等级是%c.\n",s,r);}

 

25、任意输入一个年份,判断其是否闰年。

25.2

#include

intf(intx)

{intw;

w=(x%4==0&&x%100!

=0||

x%400==0);

return(w);}

25.1

#include

voidmain()

{intf(intx);inta,year;

scanf("%d",&year);

a=f(year);

if(a==1)

printf("%d是闰年",year);

elseprintf("%d不是闰年",year);}

26、有一个函数

26.2

#include

#include

floatf(floata)

{floatt;

if(a<1)t=a;

else

if(a<10)t=2*cos(a)-1;

else

if(a>=10)t=3*a-11;

return(t);}

写一个程序,输入

输出

26.1

#include

voidmain()

{floatf(floata);

floatx,y;

printf("请输入X的值:

");

scanf("%f",&x);

y=f(x);

printf("相应的y值为:

y=%f",y);}

27、有一个函数

27.2

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1