2009-2010学年第2学期-C语言程序设计补考试卷(含答卷) 联系客服

发布时间 : 星期六 文章2009-2010学年第2学期-C语言程序设计补考试卷(含答卷)更新完毕开始阅读

华侨大学2009-2010第2学期《C语言程序设计》 补考试卷

学号________________ 姓名___________ 班级___________ 成绩______ 注意:请将所有答案写在答卷上! 一、单项选择题(50分,每小题2分) 1.在一个可运行的C源程序中,( )。

A.可以有一个或多个主函数 C.可以没有主函数

B.必须有且仅有一个主函数 D.必须有主函数和其他函数

B.float a=b=10.0; B.'\\101' B k=float(n)/m B. 6

C.int a=10, *b=&a; C.65 C n%2.5 C. 3

D.float *a, b=&a; D.W D (m+n)*=k D. 8

2.以下定义语句中正确的是( )。

A.char a='A' b='B'; A.\A m=(n==5) A. 7

3.以下选项中合法的字符常量是( )。

4.若有定义:int m=4,n=5; float k; 则以下符合C语言语法的表达式是( )。 5.若有定义: int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后,x的值为( )。 6.以下程序段运行后x的值为( )。 int a=3,b=6,x; x=(a==b)?a++:--b;

A. 4 A. 3

B. 3 B. 2

C. 6 C. 0

D. 5 D. 1

7.若有定义:int a=3,b=4,c=5; 则表达式 !(a-b)||(c-b) 的值为( )。

8.若有定义:int a=3,b=5; 要实现输出形式为:3*5=15 正确的printf( )函数调用语句为( )。

A. printf(\C. printf(\

B. printf(\D. printf(\

9.以下程序段的运行结果是( )。

int s=10;

switch(s/4){

case 1: printf(\ case 2: printf(\

case 3: printf(\ default: printf(\ } A. BC

B. C

C. B

D. BCD

10.在下列数组定义、初始化或赋值语句中,正确的是( )。

A.int x[]={1,2,3,4,5,6}; C.int a[8]; a[8]=10;

B.int x[5]={1,2,3,4,5,6}; D.int n=8; int score[n];

共8页 第1页

11.以下程序段运行后,s的值是( )。 int a[3][3]={1,2,3,1,2,3,1,2,3}; int i,j,s=0; for(i=0;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf(\

A. 4 A.puts(c); C.printf(\

B. 6

C. 10

D. 14

12.若已有定义:int i; char c[8]=\则下列语句中,不正确的是( )。

B.for(i=0;c[i]!='\\0';i++) printf(\D.for(i=0;c[i]!='\\0';i++) putchar(c);

13.设已定义:char str1[20]=\ \ str2[20]=\若要形成字符串\ World!\正确语句是( )。

A strcpy (str2,str1) #include void fun(void ){

static int a=0; a++; printf(\}

void main(void){

int i;

for(i=1;i<=2;i++) fun(); }

A. 1 2 B. 0 0 A.p[1] #include void main(void){

int i;

char *s=\

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

B. AB ABC ABCD B.3

C. CD BCD ABCD C.4

D. ABCD BCD CD D.5

B.*(p+1) B strcat(str1,str2)

C strcpy (str1,str2)

D strcat(str2,str1)

14.以下程序的运行结果是( )。

C. 1 1 C.*p+1

D. 0 1 D.*(a+1)

15.若已定义:int a[4]={0,1,2,3}, *p=a; 则以下( )不能表示数组元素a[1]。 16.以下程序的输出结果是( )。

} A. ABCD ABC AB A.6

17.若已定义:int a[][2]={1,2,3,4,5,6},(*p)[2]; p=a; 则*(*(p+1)+1)的值为( )。 18.以下各语句或语句组中,正确的是( )。

共8页 第2页

A.char s[4]=\C.char *s; s=\

B.char *s; gets(s);

D.char s[5];scanf(\

19.若有定义:char *lan[]={\VA\ 则lan[1]的值是( )。

A.一个字符

B.一个地址

C.一个字符串

D.不确定

20.C语言中,数组名作为函数调用的实参时,下面叙述正确的是( )。

A.传递给形参的是数组元素的个数 B.传递给形参的是数组中全部元素的值

C.传递给形参的是数组第一个元素的值

D.形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化

21.若有以下定义,则下面叙述错误的是( )。

struct person{

int num;

char name[10]; }student;

A.num、name都是结构体变量student的成员 B.student是结构体类型名

C.struct是定义结构体类型的关键字

D.struct person是用户定义的结构体类型名

22.若有以下定义,则表达式sizeof(s)的值是( )。

union U_type{

int x;

float y[2]; char z;

B. 8 B.define B. 12

C.12 C.typedef C. 16

D.10 D.include D. 14

}s; A.11 A.enum A. 36

23.定义枚举类型的关键字是( )。

24.若有宏定义:#define F 2+4,则表达式F*F的值为( )。 25.C语言中,对文件操作的一般步骤是( )。

A.打开文件,定义文件指针,读写文件,关闭文件 B.操作文件,定义文件指针,修改文件,关闭文件按 C.定义文件指针,打开文件,读写文件,关闭文件 D.定义文件指针,读文件,写文件,关闭文件

二、填空题(26分,每空2分) 1.下面程序的功能是计算n!。

#include \void main(void) { int i,n; long p;

共8页 第3页

}

printf(\scanf(\p= ( 1 );

for(i=2;i<=n;i++) printf(\

( 2 ) ;

2.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。

#include \void main(void) { float x,max,min; scanf(\ }

max=x; min=x;

while( ( 3 ) ){

if(x>max) max=x;

if( ( 4 ) ) min=x; ( 5 ) ;

}

printf(\

3.以下定义的函数fun的功能是:将p2所指字符串复制到p1所指内存空间。

#include \

void fun( ( 6 ) ,const char *p2){ }

while((*p1= ( 7 ) )!='\\0'){ }

p1++; p2++;

4.以下程序中的函数reverse的功能是将数组a中的n个元素进行倒置。下面程序运行结果为:

0 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 0 #include

void reverse(int a[], int n){ int i,temp; for(i=0; ( 8 ) ;i++){

}

temp=a[i]; ( 9 ) ; a[n-1-i]=temp;

}

void main(void){

int b[10]={0,1,2,3,4,5,6,7,8,9},i; for(i=0;i<10;i++) printf(\

共8页 第4页