C程序设计(A)正式新版 - 图文 联系客服

发布时间 : 星期日 文章C程序设计(A)正式新版 - 图文更新完毕开始阅读7354df631ed9ad51f01df26d

学院 专业 级 学号 姓名 山东大学 计算机技术基础(C程序) 课程试卷 一. 单选题(每题1分,请选择正确的答案填写在答题纸上). 1.能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是 . A.a>=10or a<=0 B. a>=0|a<=10 C. a>=10&&a<=0 D. a>=10||a<=0 2.经过以下语句定义后,表达式z+=x>7?++x:++y的值是 .int x=1,y=2,z=3; A. 2 B. 3 C. 6 D. 5 3.以下对C语言函数的有关描述,正确的是 . A. 调用函数时,只能将实参的值传递给形参,形参值不能传递给实参. B. C函数既可以嵌套调用也可以递归调用. C. 函数必须有返回值,否则不能使用函数. D. C程序中有调用关系的所有函数必须放在同一个源文件中. 4. 如果要限制一个变量只能为本文件所使用,必须通过 来实现. A. 外部变量说明 B. 静态内部变量说明. C.静态外部变量说明 D.局部变量说明 5. 选出C语言的合法变量名 . A. student-num B. auto C. register D. and 6. 若有如下变量定义:float a=3.2; int b=3,c=2;则下列不符合C语言语法的表达式是 . A. a=b=b+++c B. (a+=4=b++*c,b*5) C. a&&b‖c D.a+=b――+c/a 7. 若已定义:int a=2, float b;则表达式“b=a+4/5”的值是______. A. 3.8 B. 3.0 C. 2 D. 2.0 8.C语言中while和do-while循环的主要区别是______. A. do-while允许从外部转到循环体内 B. while的循环控制条件比do-while严格 C. do-while的循环体至少执行一次 D. do-while的循环体不能是复合语句 9. 不合法的字符串常量是______. A. \“String” D. \10. 下列表达式的值为0的是 . A. 3﹪5 B. 3/5.0 C. 3/5 D. 3<5 11. 下列叙述中,正确的是 . A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致。 B. 宏名必须用大写字母表示。 C. 宏替换不占用运行时间,只占编译时间。 D. 在程序的一行上可以出现多个有效的宏定义。 12. 设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是 . A. 2 B. 3 C. 4 D. 无确定值 13. 执行下列程序后输出的结果是 . int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3}; main(){printf(″﹪d \\ n″,a[1][0] + b[0][0]);} 2007 学年 2 学期 共4页第1页 A. 0 B. 1 C. 2 D. 3 14. 设char str[100];int i = 5;则引用数组元素的错误形式是 . A. str[i + 10] B. *(str + i) C. *(str + i - 1) D. *((str + + ) + i) 15. 设int x[] = {1,2,3,4,5,6},* p = x;则值为3的表达式是 . A. p + = 2, * + + p B. p + = 2, * p + + C. p + = 3, * p D. p + = 2, + + * p 16. C语言规定:在一个源程序中,main函数的位置是 . A.必须在最后 B.必须在系统调用的库函数的后面 C.必须在最开始 D.可以任意 17. 下面四个选项中,均是正确的八进制数或十六进制数的选项是 . A. 10 0x8f 011 B. 010 0x11 0xf1 C. 0abc 017 0xc D. 0a12 0x123 0xa 18. 以下for 循环的执行次数是 . for ( x = 0, y = 0; (y = 123 ) && ( x<4 ); x + + ); A. 无限次 B. 4次 C.0次 D. 3次 19. C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 . A.0 ~ 65535 B. 0 ~ 32767 C.-32767 ~ 32768 D.-32768 ~ 327687 20.对数组A和B进行如下初始化后, 下列叙述正确的是______. char A[]= \ char B[]={'A', 'B', 'C', 'D', 'E', 'F','\\0'}; A. A和B完全相同 B. A和B完全不同 C. A数组长度比B数组长度短 D. A数组长度比B数组长度长 的值是______. D. 18 21. 设a为整型变量,则表达式 (a=4, a*3), a+6 A. 4 B. 6 C. 10 22. 下列数据中属于“字符串常量”的是 . A. \ B. DBF C. 'DBF' D. 'a' 23. 以下对一维数组a的错误说明是______. A. int a[10]; B. int n=10, a[n]; C. int a[10], n=10; D. #define Num 10 (回车) int a[Num]; 24. 若有定义:int a=7;float x=6.1,y=8.2;则表达式x+a%4*(int)(x+y)%6/2的值是 . A. 9.1 B. 6.1 C. 7.1 D. 8.1 25. 已知ch是字符型变量,下面不正确的赋值语句是 . A. ch = 5 + 9 ; B. ch= ' a + b '; C. ch = ' \\ 0 '; D. ch= '7' + '6' ; 26.设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的是 . A.!((x < y )&&!z || 1) B. ' x ' && ' y ' C. x || y+z && y - z D. x <= y 27.设有程序段 int k = 10 ;while ( k = 0 ) k = k - 1 ; 以下描述正确的是 . 第 页 共 页 学院 专业 级 学号 姓名 山东大学 计算机技术基础(C程序) 课程试卷 A. 循环体语句一次也不执行。 B. 循环是无限循环。 C. while 循环语句执行十次。 D. 循环体语句执行一次。 28以下不是死循环的语句为 . A. for ( ; ; x+=i); B. while(1) {x++; } C. for(i=10; ; i――) sum+=i; D.for( ; (c=getchr())!=’\\n’; ) printf(“%c”,c); 29. 若有说明:int a[10] ; 则对a 数组元素的正确引用是 . A. a [10 ] B.a[10 - 10] C. a ( 5 ) D.a[3.5] 30. 有如下函数调用语句:func(rec1,rec2+rec3,rec4,rec5); 该函数调用语句中,含有的实参个数是 . A. 3 B. 4 C. 5 D. 有语法错 31.一个C程序里有unsigned int a=65535; 则printf(“%d”,a);的输出结果是 . A.65534 B. -2 C. -65534 D. -1 32. 若有下面的定义语句:static char str[]={“abcd”}, *string;下面的语句正确的是 . A. string=str[]; B. string=str[3]; C. (str+2)=’2’; D. string=str+1; 33. #define PI 3.1415926中,用宏名PI代替一个 . A. 变量 B. 单精度数 C. 双精度数 D.字符串 34. 以下函数定义正确的形式是 . A. fun(int x[],int *y) B. fun(int x[];int *y) C. fun(int x[],int *y=0); D. fun(int x[],*y) 35.若定义如下变量和数组: int i; static int x[3][3]={1,2,3,4,5,6,7,8,9}; 则执行下面的语句输出结果是 . for(i=0;i<3;i++)(printf(“%d ”,x[i][i]); A.1 4 7 B. 1 5 9 C. 1 1 1 D. 3 6 9 36. 假定有以下变量定义:int k=7 ,x=12; 则能使值为3的表达式是 . A . x%=(k%=5) B. x%=(k-k%5) C. x%=k-k%5 D. (x%=k)-(k%=5) 37. 设说明为int a=1; 执行下列switch语句后,b获值为2的是 . a=100; while(a>120); a=a+1; printf(″%d″,a); 2007 学年 2 学期 共4页第2页 A. 100 B. 101 C. 120 D. 121 39. 若已定义char a[10]; 则以下表达式中,只有一个 不是a[1]的地址. A.&a[1] B.a++ C.&a[0]+1 D. a+1 40. 下面叙述中不正确的是 . A. 不同函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在一个函数内部定义的变量只能在本函数范围内有效 D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效 二.填空 (每题2分,请将空白处的内容填写在答题纸上). 1. 表达式 !10!=1的值是____________________. 2. “20 = 1) i - -;执行后,i的值为_______________. 5. 被调函数在执行结束时,这个函数中定义的__________________类型的变量不被释放. 6.设 struct student {int no; char name[12]; float score[3];} sl,* p = &sl; 用指针法给sl的成员no赋值1234的语句是___________________. 7.已知:int i=16;写出执行i+=0x1a2;后整型变量i的值(十进制表示):______. 8.以下语句的输出为____________. int a=13,b=5; float f; f = a%b; printf(\9.以下语句的输出为____________. int b=5;printf(\10.设char string[] =″This_is_a_book!″;则数组的长度应是_______________. A. switch(a){ case 1: b=1; case 2: b=2; default:b=3;} C. switch(a){ case 1: b=1; break; case 2: b=2; break; B. switch(a){ case 1: b=1; case 2: b=2; break; D. switch(a){ case 1: b=1; break; case 2: b=2; default:b=3; } 三、读程序写结果(请将结果填写在答题纸上, 每题4分,共20分) 1. #include int a = 200; main(){int i;void s(); for(i = 1;i<=2;i++){a++; printf(\s(); } } void s() {static int a = 20; a++ ; printf(\ 运行结果为 : 38.下面程序段的输出结果是 . 第 页 共 页 学院 专业 级 学号 姓名 山东大学 计算机技术基础(C程序) 课程试卷 2. int f( int n) { if( n<=1 ) return 1; else return n*f(n-1); } main( ){ int n; 得分 } 运行结果为: 2007学年 2 学期共4页第3页 答题纸 题号 一 二 三 四 总分 总分人 n = f(5); printf( \3. # define N 7 for(i = 0;i