天津工业大学200 7 ~200 8 学年第 2 学期 C 程 序 设 计 试卷(B)
学院 班级 学号 姓名 注意事项:1、本试卷共 12 页,满分为 100 分,考试时间为 110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,
不得使用红颜色墨水笔。
题 目 得 分 阅卷人 一 二 三 四 总 分 分数核对
二、阅读程序题答题处: (每空3分,共30分) 1题【41】 4题【44】 6题【46】 8题【48】 2题【42】 5题【45】 7题【47】 9题【49】 10题【50】 3题【43】
三、程序改错题答题处:(每空2分,共12分) 1题 【51】 【52】 【53】 2题 【54】 【55】 【56】 第 1 页 共 12 页
四、完善程序填空题答题处:(每空2分,共18分) 1题 【57】 【58】 【59】 2题 【60】 【61】 【62】 3题 【63】 【64】 【65】 一、单项单选题:(每题 1 分,共 40 分)
(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”) 1.下列标识符中, 【】 都是合法的。
A) _key,example,a3b B) 5ap,test1,ELSE C) bcp,@mail,_c_d D) struct ,paper1,my_var
2.若有说明,char s='\\062'; 则该说明 【】 。 A) 使s的值包含1个字符 B) 使s 的值包含3个字符
C) 使s的值包含4个字符 D) 说明不合法
3.如果a=1,b=2,c=3,d=4; 则条件表达式 a>b?a:c A) 1 B) 2 C) 3 D) 4 4.判断char型变量ch是否为大写字母的正确表达式为 【】 。 A) (A<=ch) && (ch<=Z) B) ('A'<=ch) && (ch<='Z') C) (A<=ch) || (ch<=Z) D) ('A'<=ch) || (ch<='Z') 5.下列表达式中的值为4的是 【】 。 A) 11/3 B) 11.0/3 C) (float)11/3 D) (int)(11.0/3+0.5) 6.下列do语句的循环次数为 【】 。 int a=10; do { a--;} while (a!=0); A) 10 B) 9 C) 11 D) 12 第 2 页 共 12 页 7.执行下列程序段后,变量 i 的值是 【】 。 int i=10; switch (i) { case 10: i+=1; case 11: i+=1; case 12: i+=1; break; case 9: i+=1; } A) 11 B) 12 C) 13 D) 14 8.有以下语句,则c 的二进制值是 【】 。 char a=3,b=6,c; c=a^b<<2; A) 00011011 B) 00010100 C) 00011100 D) 00011000 9.下列程序的运行结果是 【】 。 main() { int a; float b; a=4; b=9.5; printf(\ } A) a=%d,b=%f\\n B) a=%d,b=%f C) a=4,b=9.50 D) a=4,b=9.5 10.设有以下语句int x=10; x+=3+x%(-3);则x的值是 【】 。 A) 14 B) 15 C) 11 D) 12 11.当a=4、b=5、c=3、d=1时,执行下面程序段后,x的值是 【】 。 if(a if(c A) 1 B) 2 C) 3 D) 6 12.已知int x=10,y=20,z=30,则执行 if(x>y) z=x; x=y; y=z; 语句后,x、y、z的值是 【】 。 A) x=10,y=20,z=30 B) x=20,y=30,z=30 C) x=20,y=30,z=10 D) x=20,y=30,z=20 第 3 页 共 12 页 13.下列运算符中,优先级最高的运算符是 【】 。 A) ?: B) ++ C) && D) += 14.unsigned修饰 【】 类型是错误的。 A) int 15.下列由代数式 B) char C) float D) long int 3ae改写成的C语言表达式中错误的是 【】 。 bc C) 3*a*e/b*c D) a*e/c/b*3 A) a/b/c*e*3 B) 3*a*e/b/c 16.设己定义 int a[ ]={0,1,2,3,4,5,6,7,8,9},*p= a, i ; 其中0<i<9, 则对a数组元素的引用不正确的是 【】 。 A) a[p – a] B) *(&a[i]) C) p[i] D) *(*(a+i )) 17.以下程序段给数组所有元素输入数据,应在下划线处填入的是 【】 。 main( ) { int a[10], i=0; while (i<10) scanf(\ 【】 ); ?? } A) a+(i++) B) &a[i+1] C) a+i D) &a[ ++i ] 18.下面程序的输出结果是 【】 。 #include { char p1[]=\ strcpy(str,strcat(p1,p2)); printf(\ } A) xyzabc B) abcABC C) xyzabcABC D) xyzABC 19.下面程序的输出结果是 【】 。 main() { char a[][6]={\ int i; for (i=0;i<4;i++) printf(\ printf(\ } 【23】A) ABCDEFGHIJKL B) ABCD C) ABCDEFGHIJKLMNOP D) AEIM 第 4 页 共 12 页 20.以下程序的输出结果是 【】 。 main() { int n[2 ], i, j, k=2; for( i=0; i for( j=0; j A) 不确定值 B) 3 C) 2 D) l 21.设已定义char c[8]=\和int i,则下面的输出函数调用中错误的是 【】 。 A) printf(\ B) for (i=0;i<8;i++) printf(\C) puts(c); D) for (i=0;i<8;i++) puts(c[i]); 22.若定义 char s[10],*p=s; 以下错误的表达式是 【】 。 A) p=s+5 B) s=p+s C) s[2]=p[4] D) *p=s[0] 23.若定义 int b[]={1,2,3,4} ,y ,*p=b; y=*p++; 执行后,y的值是 【】 。 A) 1 B) 2 C) 3 D) 4 24.已知函数定义如下,该函数的功能 【】 。 void str(char *p1, char *p2) { while(*p2++=*p1++); } A) 求字符串的长度 B) 串复制 C) 串比较 D) 字符串的逆序存放 25.若定义 int x=65,*fp=&x; 则下面均能表示x地址的一组选项是 【】 。 A) fp,*&x,&*fp B) &*fp,&x,fp C) &fp,fp,&x D) fp,&x,&fp 26.若定义 int a[4][5],*p,*q[4]; 且0≤i<4 则下面错误的赋值 【】 。 A) p=a; B) q[i]=a[i]; C) p[i]=a[i]; D) q[i]=&a[2][0]; 27.若定义 char b[5],*p=b; 正确的赋值语句是 【】 。 A) b=\ B) *b=\ C) p=\ D) *p=\ 28.若定义 char *sp=\ 则printf(\的输出结果是 【】 。 A) 3 B) 7 C) 1 D) 值不确定 第 5 页 共 12 页