华中科技大学09级《C语言程序设计》考试模拟试卷答案

华中科技大学文华学院

09级《C语言程序设计》考试模拟试卷

课程性质:必修 使用范围:本科 考试时间: 年 月 日 考试方式:闭卷

学号______________专业_______班级____姓名___________成绩____

一、选择题(每小题2分,共20分) ( A )(1)若x、y、j和k都是int型变量,则计算表达式x=( k=32,j=6, i=4)后,x的值为。 A)4 B)16 C)32 D)52 ( B )(2)C语言中标识符只能由字母、数字和下划线组成,且第一个字符。

A)必须为字母 B)必须为字母或下划线

C)必须为下划线 D)可以是字母、数字和下划线中任一种字符 ( D )(3)下面四个选项中,均是正确的数值常量或字符常量的选项是。 A)0.0 0f 8.9e '&' B)\ C)'3' 011 0xFF00 0a D)+001 0xabcd 2e2 50 ( B )(4)已知各变量的类型说明如下: int i=8,k,a,b;

unsigned long w=5; double x=1.42,y=5.2;

则以下符合C语言语法的表达式是。

A)a=a*3=2 B)a+=a-=(b=4)*(a=3) C)x+y=-3*a D)y=float(i) ( A )(5)若以下变量均是整型,且num=sum=5;则计算表达式 num++,sum++,++num后num的值为。

A)7 B)8 C)9 D)10 ( B )(6)在C语言中,引用数组元素时,其数组下标的数据类型允许是。 A)整型常量 B)整型常量或整型表达式 C)整型表达式 D)任何类型的表达式 ( C )(7)以下能对一维数组a进行正确初始化的语句是。

A)int a[10]={0,0,0,0,0} B)int a[10]={ };

C)int a[ ]={0}; D)int a[10]={10*1};/*各元素值为1*/ ( B )(8)下面程序(注:每行程序前面的数字表示行号)。 1 main( )

2 { static int a[3]={0}; 3 int i;

4 for(i=0;i<3;i++) scanf(\

5 for(i=0;i<3;i++) printf(\} A)第3行有错误 B)第4行有错误 C)第5行有错误 D)没有错误

( C )(9)定义如下变量和数组 int k;

int a[3][3]={1,2,3,4,5,6,7,8,9};

for(k=0;k<3;k++) printf(\); 则上面语句输出的结果是。

A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 ( D )(10)下面是对字符型数组s的初始化,其中不正确的是。

A)char s[5]={\)char s[5]={'a','b','c'}; C)char s[5]=\)char s[5]=\

二、阅读程序写出运行后的输出结果(每小题3分,共15分,专科生每小题4分,共20分) (1) main( ) 结果: { int i,j; float x,y; y=5.000000 i=4; j=8; x=4.0; y=1.0+i/j+x; printf(\}

(2)main() 结果: { int x,y,z; 1,2,3 x=1;y=2;z=3;

printf(\}

(3)main() 结果: { int i=5,k=0; 0 while(i--) k=k+k; printf(\

三、把下列数学表达式写成C语言表达式(每小题2分,共10分) ⑴s(s?a)(s?b)(s?c) 表达式:sqrt(s*(s-a)*(s-b)*(s-c)) ⑵ P(1+r)

n

(4)main() 结果:9 { int a,b=0;

static int c[5]={1,2,3,4,5}; for(a=0;a<5;++a) if((a%2)==0)b+=c[a]; printf(\ } (5) main() 结果:3 { int a,b,c; 2 a=1; b=2; c=3;

printf(\ printf(\ }

表达式:p*pow(1+r,n)

⑶ gm1m2r2 表达式:g*m1*m2/(r*r)

⑷ 2?r+?r2 +cos(b) 表达式:2*3.14*r+3.14*r*r+cos(b)

2(sin45?)4⑸ 表达式:2*pow(sin(45*3.14/180),4)/(exp(2)*log(5))

e2?ln5

四、编程题(每小题10分,共40分)

(1) 从键盘输入一个学生某门课程的考试成绩,若低于60分,输出no pass,反之输出pass。

#include void main() {float x;

printf(\ scanf(\ if(x<=100&&x>=0) if(x<60)

printf(\ else

printf(\ else

printf(\ }

(2) 一个班有30学生,要求找出某门课程考试成绩的最高分和最低分。(不用数组结构)

#include void main() { int i,max,min,a; scanf(\ max=min=a; for(i=1;i<30;i++) { scanf(\

if(maxa) min=a; }

printf(\ }

(3)用选择法编写一个程序,使存储在整型数组a[10]中的各元素值按升序排列存放(要

求:程序中至多允许使用一个缓存单元)。

#include void main() {static int a[10]; int i,j,temp;

printf(\ for(i=0;i<10;i++) scanf(\ for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j])

{temp=a[j];a[j]=a[i];a[i]=temp;} for(i=0;i<10;i++) printf(\ printf(\}

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4