
公务员-计算机类C语言程序设计.doc
18页"C语言程序设计"复习参考资料一. 选择题1.以下关于运算符优先顺序的描述中正确的选项是〔 C 〕 A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B.逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符 C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符2.以下选项中合法的变量名是_____C____ A. *define B. int C. a594_3 D. abs(x)3.以下正确的描述是〔 A 〕 A. break语句的作用是完毕整个循环的执行 B.在C程序中,注释说明只能位于一条语句的后面 C. 在循环体内使用break语句或continue语句的作用一样 D. 从多层循环嵌套中退出时, 只能使用goto语句4.以下说法正确的选项是〔 C〕 A.*define 和 printf 都是 C 语句 B.*define 是C语句,而printf不是 C.假设程序中要调用数学函数,必须在文件开头输入语句 *include “math.h〞 D. *define 和 printf 都不是 C 语句。
5.下面的函数定义正确的选项是______D________ A〕 float fun (float x ; float y) {return x*y;} B〕 float fun (float x,y) {return x*y;} C〕 float fun (x,y) {int x,y;return x*y;} D〕 int fun (int x, int y) {return x*y;}6.执行下面语句后的输出为( D ) int i=-1; if (i<=0) printf(“****\n〞) else printf(“%%%%\n〞) A). **** B). %%%% C). %%%%c D). 有语法错误,不能正确执行7.以下程序的输出结果是( A ) void main( ) {int k=17; printf("%d, %o, %x \n ", k, k, k ); } A). 17, 21, 11 B). 17, 17, 17 C). 17, 0x11, 021 D). 17, 21, 18.以下不正确的表达是 〔 C 〕 A〕*define是宏定义命令 B〕宏定义只是做简单的置换,不做正确性检查 C〕宏定义是C语句,必须在行末加分号 D〕printf是C语句,但*define不是。
9.一个C语言程序是由〔 D 〕 A) 一个主程序和假设干子程序组成 B)假设干子程序组成 C) 假设干过程组成 D) 函数组成10.C语言规定,在一个源程序中,main()函数的位置〔 C 〕 A.必须在最开场 B.必须在最后 C.可以任意 D.必须在系统调用的库函数的后面 11.以下对二维数组a的正确说明是〔 C 〕 A) int a[3][]; B) floatf a(3,4); C) char a[1][3]; D) float a(3)(5); 12.假设有说明: int a[3][2]={10};那么下面正确的表达是〔 D 〕 A〕只有元素a[0][0]可得到初值10 B〕此说明语句不正确: C〕数组a中各元素都可得到初值,但其值不一定为0 D〕数组a中每个元素均可得到初值10 13.以下表达不正确的选项是〔 C 〕 A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的根本组成单位是语句D) 只能在循环体内和switch语句体内使用break语句14.为了防止在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与〔 B 〕配对。
A) 缩排位置一样的if B) 其之前最近的未配对的if C) 之后最近的if D) 同一行上的if15. 能正确表示a和b同时为正或同时为负的逻辑表达式是( B ) A)(a>=0||b>=0)&&(a<0||b<0) B)(a>=0&&b>=0)||(a<0&&b<0) C)(a+b>0)&&(a+b<=0) D) (a-b>0)&&(a-b<=0)16.x =5,ch='A',y=0,那么表达式(x > = y && ch<'a'&&!y) 的值是 〔 C 〕 A) 0 B) 语法错 C) 1 D) "假" 17. 以下关于单目运算符++、--的表达中正确的选项是〔 B 〕 A) 它们的运算对象可以是任何变量和常量 B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D) 它们的运算对象可以是char型变量、int型变量和float型变量18.下面的程序( B ) void main() { int x=3; do { printf(“%d\n〞,x-=2); } while(!(--x)); } A). 输出的是1 B). 输出的是1和-2 C). 输出的是3和0 D). 是死循环19.如下程序: void main( ) { int a=6; printf(“%d\n〞,(a+=3,2*a)); } 执行后,输出结果是( D ) A) 9 B) 6 C) 2 D) 1820.假设有以下说明和语句,请选出哪个是对C数组元素的正确引用( D ) int c[4][5], (*cp)[5]; cp=c; A). cp+1 B). *(cp+3) C). *(cp+1)+3 D). *(*cp+2)21.下面程序的输出是( B ) main() { int x=023; printf("%d\n", --x); } A). 17 B). 18 C). 23 D). 2422.执行以下程序的结果是( B ) main() { float x=1,y; y=++x*++x; printf(“%f\n〞,y); } A). 9.000000 B). 6.000000 C). 1.000000 D). 程序有错误23.下面程序的输出是( A ) main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a; printf("%d\n", *(p+2) ); } A). 3 B). 4 C). 1 D). 224.执行下面程序中的输出语句后,a的值是( B ) main() { int a; printf("%d\n", (a=3*5,a*4,a+5) ); } A). 65 B). 20 C). 15 D). 1025.下面程序的输出是( C ) main() { int a=-1, b=4, k; k=(a++<=0)&&(!(b--<=0)); printf("%d %d %d \n", k, a, b ); } A). 0 0 3 B). 0 1 2 C). 1 0 3 D). 1 1 226.设有如下的程序段: char str[]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后,*(ptr+5)的值为( C ) A). '0' B). '\0' C). 不确定的值 D). '0'的地址27.在宏定义* define PI 3.14159中,用宏名PI代替一个( C ) A).单精度数 B).双精度数 C).常量 D).字符串28.假设i是整型变量,pb是根本型为整型的指针变量,那么正确的赋值表达式是〔 A 〕 A). pb=&i B). pb=i C). *pb=&i D). *pb=*i29. 有以下程序段 int m=0,n=0; char c=’d’; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 假设从键盘上输入:6D6<回车>,那么输出结果是〔 C 〕 A) 0,d,6 B) 6,d,6 C) 6,D,6 D) 6,D,030.printf〔〕函数中用到格式符%-7s ,其中数字7表示输出的字符串占用7列。
如果字符串长度小于7,那么输出按方式 〔 A 〕 A) 从左起输出该字串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串,左补空格 D) 输出错误信息31.以下能正确地定义整型变量a,b和c 并为其赋初值3的语句是〔 A 〕 A) int a=3,b=3, c= 3; B) int a,b, c= 3; C) a= 3,b=3,c=3; D) a= b= c=3; 32. 以下程序的输出结果是( D ) void main( ) {int x=6,y=6,i; for(i=2;x>4;y=++i) printf("%d,%d ",x--,y); } A) 5,5 5,3 B) 6,6 2,3 C) 6,5 5,2 D) 6,6 5,333.以下程序的输出结果是( B ) void main( ) {int w=4; int fun(int k); fun(w); printf("\n"); } fun(int k) {if(k>0) fun(k-1); printf("%d ",k); } A) 4 3 2 1 B) 0 1 2 3 4 C) 1 2 3 4 。
