c语言期末试卷B卷(附答案)
一、单项选择题(每小题2分,共30分) 1. 下列关于C语言用户标识符的叙述中正确的是(B ) (A) 用户标识符中可以出现在下划线和中划线(减号) (B) 用户标识符中不可以出现中划线,但可以出现下划线 (C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 (D) 用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头 2. 在C语言中,合法的字符常量是( A ) (A) \087‘(B) \x43‘ (C) abe (D)”\0“ 3. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B ) (A) x、y、z;B) scanf ( “%d%d%d”,(D) (scanf ( “%d%d%d” , 则 printf (“%d\n”, *b);的输出结果为(D) (A)无确定值 (B) a的地址 (C) 512(D) 511 9. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(C ) (A)整型常量(B)整型表达式 (C )整型常量或整型表达式(D)任何类型的表达式 10. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B ) (A)地址传递(B)单向值传递 (0由实参传给形参,再由形参传回实参(D)传递方式由用户指定 11. 数字字符0的ASCII值为48,若有以下程序 main() { char a= ],, b=,2 ; printf (“%c, “, b++); printf(“%d\n”, b~a); ) 程序运行后的输出结果是(A ) (A) 3, 2(B) 50, 2(C) 2, 2(D) 2, 50 12, 以下函数值的类型是(D ) fun ( float x ) ( float y; y= 3*x-4; return y; (A) int(B)不确定 13, 以下能正确定义一维数组的选项是( (A) int a[5] = {0, 1,2, 3, 4, 5}: (C) char a= { A , B , C }; 14, 有以下程序,结果为:(D ) main () { int a[5] = {l,2,3, 4, 5}; int *pa= printf( “%d” ,pa[2]); } (A) 3(B) 4 15. 假设 struct student { int num; float score; ) stul; 则下列赋值语句中正确的是(c (A) student. score=85;(B) (C) void(D) float B ) (B)int a[] = {0, 1,2, 3,4, 5}; (D)int a[5]=“0123”; (C) 5(D) 2 ) student={1001,95); (C) stul. num=1001:(D) stul->num=1001: 二、判断题(对的打“J”,错的打“X”,每小题1分,共10分) 1. 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。V 2. C语言中,若函数定义未给出返回值类型,系统默认为返回值类型为int类型。X 3. 全局变量的作用域一定比局部变量的作用域范围大。X 4. 对字符串”c program”进行完整赋值的操作是:X char str[9]=‘‘c program“; 5. 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同X。 6. 若有定义inta[4][5];排列在数组中的第11个元素是V 7. 存储字符串” \ acdl\376”需要的字节数为7个。X 8. 存储字符数组中的最后一个字符必须是 \0 。V 9. 在一个函数内定义的变量只能在本函数范围内有效。V 10. 设 int m=7: float n=3. 5 :执行 m-=m-! n 后,m 的值是 1。V 三、写出下列程序段的输出结果(每小题5分,共20分) 1. 有下列程序段,请写出运行结果。 #include main() ( int i=O,a=O; while(i<20) ( for(;;) ( if ((i%10)==0) break; else i-; ) i+=ll; a+=i; ) printf(“a=%d\n“,a); ) 2. 有下列程序段,请写出运行结果。 int fl (int x) { static int z=3; int y=0; y++; z++; return(x+y+z); }. main() ( int a=l, k; for(k=0;k<3;k++) printf (“%3d“, f 1 (a)); } 程序运行后的输出结果是: 3. 有下列程序段,请写出运行结果。 main() { char k; int i; for (i=l;i100,则输出a*a+b*b的结果,否则输出a+b的结果。 main() ( int a, b, x, y;