2012 C语言题库

  • 格式:doc
  • 大小:201.50 KB
  • 文档页数:22

一、选择题1.以下叙述正确的是():A) 在C程序中,main函数必须位于程序的最前面B) C程序的每行只能写一条语句C) C语言使用库函数实现输入输出操作D) 注释中的拼写错误会影响编译结果2、以下说法中正确的是()A) C语言程序总是从第一个的函数开始执行B) C语言程序总是从main()函数开始执行C)在C语言程序中,要调用的函数必须在main()函数中定义D) C语言程序中的main()函数必须放在程序的开始部分3、下列选项种说法正确的是()A) 函数由声明部分和执行部分两部分组成B)语言中main函数一定在程序的开始部分C)C语言程序总是从第一个定义的函数开始执行D)C程序的每行中只能写一条语句4、设有说明:int a; float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int)2.6 值的类型为()。

A) double B) char C) float D) int5、 C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符6、以下不正确的C语言标识符是()。

A) ABC B) abc C) a_bc D) void7、下列运算符中优先级最高的是()A) < B)+ C)&& D)!=8、以下选项中属于C语言中合法关键字的是()A)Float B)abc C)int D)CASE9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为()x=(i=4,j=16,k=32)A)4 B)16 C)32 D)5210、在C语言中,要求数据必须是整型的运算符是()A)/ B)+ + C)!= D) %11、若整型变量x的值为8,则下列表达式中值为1的表达式是A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x12、若w=1,x=2,y=3,z=4,则条件表达式“w > x ? w : y < z ? y : z”的值是()A)4 B)3 C)2 D)113、有以下程序,程序运行后的输出结果是。

main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 314、下面程序的输出结果是main(){int x=2,y=-1,z=2;if(x<y)if(y<0)z=0;else z=-1+x;printf(“%d\n”z);}A) 3 B) 2 C) 1 D)015、执行下列语句后,a的值为()main( ){int a=5;printf(“%d\n”,(a=3*5,a*4,a+5));}A) 65 B)20 C) 15 D)1016、下列程序段中,有错误的行是()列定行号 int x=0,y=10;2 switch(x)3 {case 3:4 case –1:y=y-2;break;5 case y+1:x+=5;6 default:printf(“%d,%d”,x,y);}A) 4 B) 3 C) 5 D)无错误17、若i为整型变量,则以下循环执行次数是()。

#include"stdio.h"void main(){ int i;for(i=2;i==0; )printf("%d",i--);}A) 无限次 B)0次 C) 1次 D) 2 次18、若有以下定义,double a[10];则a数组元素下标的上、下限分别为()A) 1,10 B) 0,9 C) 0,10 D)1,919、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是()A) 调用可以作为独立的语句存在 B) 调用可以作为一个函数的实参C) 调用可以出现在表达式中 D) 调用可以作为一个函数的形参20、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]);输出结果是()A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 921、以下不能正确定义二维数组的选项是A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};C) int a[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}};22、若有以下定义:int a[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++的值是A) 10 B) 11 C) 20 D)2123、函数的嵌套调用是指A) 直接调用本函数B) 在定义函数时,又定义另一个函数C) 间接调用本函数D) 被调用函数又调用另一个函数24、下列说法正确的是A) 被调用函数必须先调用,后声明B) 用户自定义函数的类型若未指出,则系统默认为voidC) 全局变量不能与局部变量同名D) 实参可以是任意表达式25、以下描述正确的是()A)continue语句的作用,是结束整个循环语句的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)多层循环嵌套中不可以使用break语句26、若有说明语句:“int a[3][4];”,则对数组元素的正确引用格式是()A)a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1)27、若有说明:“int a[3][4]={0};”,则下面正确的叙述是()A)只有元素a[0][0]可得到初值0B)此数组说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值028、定义数组a和b的语句是:“char a[ ]=“ABCDEF”; char b[ ]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};”则以下叙述正确的是()A)a和b数组完全相同 B)a与b数组元素个数相同C)a和b中都存放字符串 D)a数组比b数组元素个数多29、语句“int (*ptr) ( );”的含义是()A)ptr是指向一维数组的指针变量B)ptr是指向int型数据的指针变量C)ptr是指向函数的指针,该函数返回一个int型数据D)ptr是一个函数名,该函数返回值是指向int型数据的指针30、若有定义:“int *p[4];”,则标识符p 是( )A)一个指向整型变量的指针B)一个指针数组名C)一个指针,它指向一个含有四个整型元素的一维数组D)无效的数组名31、在C语言中()A) 函数定义可以嵌套,但函数调用不可以嵌套B) 函数定义不可以嵌套,但函数调用可以嵌套C) 函数定义和调用都可以嵌套D) 函数定义和条用都不能嵌套32、下面程序的输出结果是()#include <stdio.h>void main(){ int i,j,x=0;for(i=0;i<=2;i++){ x++;for(j=0;j<=2;j++){ if(j%2)continue;x ++;}x ++;}printf("%d\n",x); }A)4 B)6 C)8 D)1233、执行下列语句后,m的值为()int m=1,x=2,y=3,z=4;m=m<x?m:x;m=m<y?m:y;m=m<z?m:z:A) 1 B) 4 C) 2 D) 334、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()int a[10];for(i=0;i<=9;i++) scanf(“%d”, );A) a B) &a[i] C) a[i] D) &a[0]35、下列叙述正确的是()A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环36、下列程序的输出结果为()#include “stdio.h”main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1){b+=3;continue;}b+=5;}printf(“%d, %d”, a, b);}A) 8,20 B) 8,22 C) 7,20 D) 7,2237、设 int a[5]={10,15,20,25,30};int *p; p=a+2;则表达式++*p的值为()A) 20 B) 15 C) 16 D) 2138、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b的值分别为()(a=w>x)&&(b=y>z);A) 0和0 B) 5和0 C) 0和6 D) 5和639、下列语句的输出为()int x=-1;printf(“%d,%u,%o”,x,x,x);A) –1,-1,-1 B) –1,32767,-177777C) –1,32768,177777 D) –1,65535,17777740、下列函数调用语句中的实参个数为()fun((a+b,x,y),fun(x,(x+z)));A) 2 B) 3 C) 4 D) 541、设有数组定义:char array[ ]=”china”;则数组array所占的内存空间为()A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节42、以下程序段的运行结果是()。

char c[5]={ ‘a’ , ’b’ , ‘\0‘ , ‘c’ , ‘\0’ } ;printf( “%s” , c );A)’a’’b’ B)ab C)ab c D)a b43、若C程序中出现死循则违背了算法的()A)有效性 B)确定性C)有穷性 D)有一个或多个输出44、设 int a=20;则执行表达式:a/=a+a后,a的值是()A)0 B)1 C)20 D)4045、int x,y,z,m=5,n=5;则执行下面语句后的z值是()x=(--m==n++)?--m:++n;y=m++;z=n;A)5 B)10 C)6 D)746、执行下列程序段后,i的正确结果是()int i=10;switch(i){ case 9: i+=1;case 10: i++;case 11: ++i;default:i+=i; }printf( "%d", i );A)10 B)11 C)12 D)2447、若有定义:int a[10];。