C语言上机考试答案

更新时间:2024-05-10 07:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言期末上机试题参考答案

1、输入正三角形的边长,求其内切圆面积。输出时要有文字说明,取小数点后两位数字。 1.1

1.2 #include

void main()

{

float R(float x); float a,area,r; scanf(\ r=R(a);

area=3.14*r*r;

printf(\

#include float R(float x) {float r;

r=x/(2*sqrt(3)); return(r); }

}

2、从键盘输入一个小写字母,要求改为大写字母输出。输出时要有文字说明。2.1

2.2 #include

void main()

{ char fun(char x); char c1,c2;

scanf(\ c1=fun(c2);

printf(\

char fun(char x) { char c3;

if('a'<=x<='z') c3=x-32; return(c3); }

3、求方程ax2+bx+c=0的根。a,b,c由键盘输入,设b2-4ac>0。 输出时要有文字说明,取小数点后两位数字。 3.1

3.2

#include

#include

#include

float A(float x,float y,float z)

void main()

{float disc;

{float A(float x,float y,float z);

disc=y*y-4*x*z; return(disc);}

float a,b,c,disc,x1,x2,p,q;

scanf(\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\

4、设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积、圆球体积、圆柱体积。用键盘输入数据。输出时要有文字说明,取小数点后两位数字。 4.1

#include void main()

{ float fun1(float x);float fun2(float x);float fun3(float x);float fun4(float

-1-

x,float y); float r,h;

scanf(\ float l,s,sq,sz; l=fun1(r);

printf(\圆周长为:l=%.2f\ s=fun2(r);

printf(\圆面积为:s=%.2f\ sq=fun3(r);

printf(\圆球体积为:sq=%.2f\ sz=fun4(r,h);

printf(\圆柱体积为:sz=%.2f\4.2 4.3 #include #include #define Pi 3.14 #define Pi 3.14 float fun1(float x) float fun2(float x) { float l1; { float s1; l1=Pi*x*2.0; s1=Pi*x*x; return(l1); } return(s1); }

4.5 4.4

#include #include

#define Pi 3.14 #define Pi 3.14

float fun4(float x,float y) float fun3(float x)

{ float sz; { float sq;

sz=Pi*x*x*y; sq=Pi*x*x*x*4.0/3.0;

return(sz); } return(sq); }

5、输入一个华氏温度,要求输出摄氏温度。公式为c=5/9(F-32)。 输出时要有文字说明,取小数点后两位数字。 5.1

#include 5.2 void main() float fun(float x) { float fun(float x); { float c1; float f,c; c1=(5.0/9.0)*(x-32); printf(\请输入一个华氏温度:\return(c1); scanf(\ } c=fun(f); printf(\摄氏温度为:%.2f\\n\}

6、由键盘输入三个实数,输出其中最大的数。输出时要有文字说明,取小数点后两位数字。 6.1

#include 6.2 #include float fun(float x, float y, void main() float z)

{ float temp,max;

temp=(x>y)?x:y;

max=(temp>z)?temp:z; return(max); }

-2-

{

float fun(float x, float y, float z); float a,b,c,max;

printf(\请输入三个数字:\ scanf(\ max=fun(a,b,c);

printf(\三个整数的最大数是%0.2f\\n\

7、由键盘输入三个字符,输出其中最大的字符。输出时要有文字说明。 7.1

7.2 #include

char fun(char a[]) void main()

{int i; {char fun(char a[]);

char max; int i;

max=a[0]; char a[3],z;

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

if(a[i]>max)max=a[i]; scanf(\

return(max);} z=fun(a);

printf(\

8、由键盘输入三个实数,要求按由小到大的顺序输出。输出时要有文字说明,取小数点后两位数字。

8.2 8.1

float l(float x,float y,float z) #include

{ float w; void main()

if(x>y) {w=x; x=y; y=w;} { float l(float x,float y,float z);

if(x>z) {w=x; x=y; y=w;} float a,b,c;

if(y>z) {w=y; y=z; z=w;} printf(\输入三个是实数\

printf(\输出三个数从小到大的顺序 scanf(\

为:%6.2f %6.2f %6.2f\ l(a,b,c); }

9、求s=1+3+5+?+99。输出时要有文字说明。 9.1

#include 9.2 void main() #include {int sum(int x); int sum(int x) int n,s; {int s=0,t; printf(\输入一个n值:\for(t=1;t<=x;t+=2) scanf(\s=s+t; s=sum(n); return(s);} printf(\

10、把100-200之间不能被3整除的数输出。输出时要有文字说明。 10.1

10.2 #include

int fun(int n) void main()

{static int z=100; { int fun(int n);

if(n%3!=0)z=n; return(z);}

-3-

int i;

for(i=100;i<=200;i++) printf(\

11、输出100-200之间的全部合数。输出时要有文字说明。 11.1

#include void main() {

int heshu(int x); int n;

printf(\到200之间的合数为:\ for(n=100;n<=200;n++) {

if(heshu(n)!=1)

printf(\ }

printf(\} 11.2

#include int heshu(int x) {

int i; int a=1;

for(i=2;i

return(x); else if(a==1) return(a); }

12、从键盘输入一个3×3矩阵,将其转置矩阵输出。 12.1

#include

12.2 int array[3][3];

#include void main()

void convert(int array[][3]) {void convert(int array[][3]);

{ int i,j;

int i,j,t; for(i=0;i<3;i++)

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

for(j=i+1;j<3;j++) scanf(\

{ t=array[i][j];

array[i][j]=array[j][i]; array[j][i]=t; } }

-4-

printf(\原矩阵为:\\n\for(i=0;i<3;i++) {for(j=0;j<3;j++)

printf(\printf(\ convert(array);

printf(\转置后的矩阵是:\\n\for(i=0;i<3;i++) {for(j=0;j<3;j++)

printf(\printf(\} }

13、有一个分数序列

23581321,,,,,,? 1235813 求出这个数列的前20项之和。输出时要有文字说明,取小数点后两位数字。 13.1

#include

13.2

void main()

#include

{ float n=1.0,m=2.0,s=0;

float fac(float m,float n)

float fac(float m ,float n);

{ return(m+n); }

int i;

for(i=1;i<=20;i++) { s=s+m/n; n=m; m=fac(m,n); } printf(\数列的前二十项和为:%5.2f\\n\ }

14、由键盘输入两个字符串“How old are you?”和“I am twenty-two.”,将这两个字符串联成一个字符串输出。 14.2 14.1 #include #include void con(char str1[],char str2[],char void main() str[]) {void con(char str1[],char str2[],char str[]); {int i,j; char s1[100],s2[100],s[100]; for(i=0;str1[i]!='\\0';i++) gets(s1); gets(s2); str[i]=str1[i]; printf(\串联后的新字符串是:\for(j=0;str2[j]!='\\0';j++) con(s1,s2,s); puts(s);} str[i+j]=str2[j]; str[i+j]='\\0'; }

-5-

本文来源:https://www.bwwdw.com/article/cdrg.html

Top