厦门大学《C语言程序设计》课程试卷 经济学院计划统计系2012级各专业 主考教师: 试卷类型:(A卷) 注意:答案填入答题纸中,答案纸不能当草稿,草稿可以写在试卷纸上。考完后试卷和答案纸都得交上。 一、单项选择题 (30题,每题2分,共60分)
1. 下列叙述中错误的是:
A) C语言源程序是文本文件 C) 目标程序不是文本文件
2. 表达式 (int) ((double) (5/2)+2.5) 的值是:
A) 4.5 B) 4 C) 5 D) 5.0
3. 设x和y均为int 型变量,则以下语句:x += y; y = x-y; x -= y; 的功能是:
A) 交换x和y中的值 C) x和y中的值不变
B) 把x和y按从小到大排列 D) 把x 和y按从大到小排列 B) 目标程序不是二进制文件 D) 可执行程序是二进制文件
4. 若已定义 int a = 3, b = 3, x =1, y = 2; 表达式 ( a= y>x) && ( x= b>a) 的值是:
A) 6 B) 1 C) 9 D) 0 5. 以下叙述中错误的是
A) C语言是一种结构化程序设计语言 C) 结构化程序设计提倡模块化的设计方法
B) 结构化程序有顺序、分支、循环三种基本结构组成 D) 使用三种基本结构构成的程序只能解决简单问题
6. 使以下程序中t的输出结果为3,则输入a和b应满足的条件是:
main ()
{ int s = 1, t = 1, a, b; scanf (\if ( a > 0 ) s += 1; if ( a>b ) t = s + t; else if ( a= =b ) t = 5; else t = 2 * s; printf ( \}
A) a>0并且a0并且a>b D) a<0并且a>b 7. 以下叙述中正确的是:
A) C程序的基本组成单位是语句 C) 简单C语句必须以分号结束
B) C程序中的每一行只能写一条语句 D) C语句必须在一行内写完
《C语言程序设计》期末试题A 第1页(共8页)
8. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:
A) 函数调用可以作为独立的语句存在 C) 函数调用可以出现在表达式中
B) 函数调用可以作为一个函数的实参 D) 函数调用可以作为一个函数的形参
9. 若定义int a[ ][3] = { 1, 2, 3, 4, 5, 6, 7 };则a数组中行的大小是:
A) 2 B) 3 C) 4 D) 无确定值 10. 若有定义语句:char s[ ] = \,则sizeof (s) 的值是:
A) 7 B) 8 C) 9 D) 10
11. 运行以下程序段:char a[5]=\ char *p=a; 则表达式 *(p++) 的值为:
A) 'w' B) 存放 'w' 的地址 C) 'o' D) 存放 'o' 的地址 12. 若有定义int a[3][5],i,j;(且0
A) *a+i*5+j B) (*(a+i))[j] C) *(a+i)+j D) a[i]+j 13. 设有以下语句:typedef struct S { int g; char h; } T;则下面叙述中正确的是:
A) 可用S定义结构体变量 C) S是 struct 类型的变量
B) 可以用 T 定义结构体变量 D) T 是struct S 类型的变量
14. 设有定义:struct complex { int real, unreal; } data1={1,8}, data2; 则以下赋值语句中错误的是:
A) data2=data1; B) data2=(2,6); C) data2.real=data1.real; D) data2.real=data1.unreal; 15. 对枚举类型的定义错误的是:
A) enum b{1, 2, 3}; B) enum a{A, B, C}; C) enum c{D=3, E, F}; D) enum d{X=0, Y=5, Z=9};
? 以下 (16 ~ 30题) 为:阅读程序, 选择正确的输出的结果。
16. main ()
{ int a=65; char c='A'; /* 'A' 的ASCII为 65 */ printf(\ }
A) A+A=AA B) 65+A=65A C) 65+65=130 D) 65+A=130 17. main( )
{ int sum = 0, item = 0; while (item++ < 5)
{ if (item == 2) continue; sum += item;
}
printf(\}
A) 10 B) 13 C) 15 D) 1
《C语言程序设计》期末试题A 第2页(共8页)
18. main ( )
{ int i, j;
for ( i = 1; i <= 3; i++ )
{ for ( j = 2; j >=1; j--) printf ( \printf ( \}
} A) 3 6 B) 2 1 C) 1 2 3 2 4 4 2 2 4 6
1 2
6 3
19. void f (int x, int y)
{ int t;
if (x { int a = 4, b = 3, c = 5; f ( a, b ); f ( a, c ); f ( b, c ); printf ( \} A) 3, 4, 5 B) 5, 3, 4 C) 5, 4, 3 20. int fun1( ) { static int m=0; return m++; } int fun2( ) { int m=0; return m++; } main( ) { int i; for ( i=1; i<=4; i++) fun1( ); for ( i=1; i<=4; i++) fun2( ); printf (\ } A) 0 ,0 B) 4, 4 C) 4 ,0 21. int a, b; void fun() { a=100; b=200; } main() { int a=5, b=7; fun( ); printf ( \ a, b); } A) 100 200 B) 5 7 C) 200 100 《C语言程序设计》期末试题A D) 6 4 2 3 2 1 D) 4, 3, 5 D) 5,1 D) 7,5 第3页(共8页) 22. void fun(int a[ ]) { a[0]=a[1];} main() { int a[10]={10, 9, 8, 7, 6, 5, 4, 3, 2, 1}, i; for ( i=2; i>=0; i--) fun (&a[i]); for ( i=0; i<10; i++) printf (\printf (\} A) 9 8 7 7 6 5 4 3 2 1 B) 10 9 8 7 6 5 4 3 2 1 C) 10 9 7 6 5 5 4 3 2 1 D) 7 7 7 7 6 5 4 3 2 1 23. void fun (int array[ ][3], int k) { int j; for ( j=0; j<3; j++ ) array[k][j]++; } main( ) { int j, a[ ][3] = {1,2,3,4,5,6,7,8}; fun(a,1); for( j=0; j<3; j++) printf ( \ } A) 5 6 7 B) 3 6 9 C) 2 3 4 D) 2 5 8 24. main ( ) { int a[ ] = {2, 4, 6, 8, 10 }, y = 0, x, *p; p=&a[2]; fo r (x = 1; x<3; x++) y += p[x]; printf ( \ } A) 6 B) 10 C) 14 D) 18 25. main ( ) { char str[] = \while ( *ps ) ps++; for ( ps--; ps-str >=0; ps-- ) puts ( ps ); } A) yz<回车>xyz B) z<回车>yz C) z<回车>yz<回车>xyz D) x<回车>xy<回车>xyz 26. main( ) { char *a[] = {\ i; for ( i=0; i<4; i++) printf ( \} A) 1261 B) 2372 C) 3482 D) 3574823 《C语言程序设计》期末试题A 第4页(共8页)

