A、由\开头,\结尾 B、由\开头,\结尾 C、由\开头 D、由\或\开头 170、下列关于赋值运算符的表述中,错误的是(B)(2分)
A、赋值运算符优先级高于逗号运算符 B、赋值运算符的结合性是从左至右 C、赋值运算符是双目运算符 D、赋值运算符可在表达式中连用 171、以下选项中正确的实型常量是(B)(2分) A、0 B、3.1415 C、0.03x10 D、.32
172、下列表达式中,( B )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。(2分)
A、x%2==0 B、!x%2!=0 C、(x/2*2-x)==0 D、!(x%2)
173、设有int k=10;while (k=0) k=k-1;则下面描述中正确的是( C )。 (2分) A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次
174、若i、j均为整型变量,则for (i=0,j=-1;j=1;i++,j++) printf(“%d,%d\\n”,i,j); ( D )。 (2分)
A、循环体只执行一次 B、循环体一次也不执行 C、判断循环结束的条件不合法 D、是无限循环 175、以下描述正确的是( C )。(2分)
A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while 176、以下对二维整形数组a的正确说明是( C )。
A、int a[3][]; B、float a(3,4); C、double a[1][4]; D、float a(3)(4) 177、以下能对二维整形数组a进行正确初始化的语句是( D )。 A、int a[2][3]={0}; B、int a[][3]={{1,2},{0}};
C、int a[2][3]={{1,2},{3,4},{5,6}}; D、int a[][3]={1,2,3,4,5,6};
178、在C语言中,一位数组的定义方式为:类型说明符 数组名( A )。(2分) A、[常量表达] B、整型表达式 C、[整型常量]或[整型表达式] D、[整型常量] 179、实际参数不能是(D )。(2分) A、常量 B、变量 C、表达式 D、不确定值
180、设有程序:int *var,ab; ab=10; var=&ab; ab+=*var+10;执行程序段后,ab值为( B )。 (2分)
A、40 B、30 C、20 D、10
181、已有定义“struct xy{int a; double b;}m;”,变量m的成员a的正确表示是(A )(2分) A、m.a B、m->a C、*m.a D、xy.a 182、以下叙述中正确的是(B)(2分)
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译
183、以下所列的C语言常量中,错误的是(B)(2分) A、 0xFF B、 1.2e0.5 C、 2L D、 '\\72'
184、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分)
26
A、 2.500000 B、 2.750000 C、 3.500000 D、 0.000000
185、若执行以下语句:int a;float b,c;scanf(“-?O”, &a, &b, &c); printf(“\\na=%d,b=%f,c=%f\\n”,a, b, c);在键盘上从第一列开始,输入9876543210
C、a=98,b=765.000000,c=4321.000000 D、a=98,b=765.0,c=4321.0
186、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)
A、scanf(\、scanf(\ C、scanf(\ D、scanf(\
187、若变量已正确定义,执行以下语句: x=5.16894; printf(“%f\\n”, (int)(x*1000+0.5)/(float)1000); 的输出结果是(D)
A、输出格式说明与输出项不匹配,输出无定值 B、5.17000 C、5.168000 D、5.169000 188、若
w,x,y,z,m
均为
int
型变量,则执行语句
w=1;x=2;y=3;z=4;
m=(w 189、设j为int型变量,则for(j=10;j>3;j--) {if (j%3) j--; --j;--j;printf(“%d ”,j); }的执行结果是( A )。 (2分) A、7 4 B、4 7 C、5 6 D、1 3 190、程序 int i,sum; for(i=1;i<=3;sum++)sum+=i; printf(“%d\\n”,sum); 的执行结果是( C )。(2分) A、6 B、3 C、不确定 D、0 191、不能正确为字符数组输入数据的是(A )。 (2分) A、char s[5]; scanf(\,&s); B、char s[5]; scanf(\,s); C、char s[5]; scanf(\,&s[0]); D、char s[5]; gets(s); 192、有说明:char *language[]={\VA\则表达式*language[1]>*language[2]比较的是( A )。(2分) A、字符B和字符P B、字符串FORTRAN和字符串BASIC C、字符F和字符B D、字符串BASIC和字符串PASCAL 193、下面的函数是无参函数的是( A )。(2分) A、main() B、int max(int x, int y) C、return(z) D、scanf(\194、以下正确的说法是(A )。(2分) A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为准 D、如果形参与实参类型不一致,以实参类型为准 195、当说明一个共用体变量时系统分配给它的内存是(C )(2分) A、各成员所需内存量的总和。 B、第一个成员所需内存量。 C、成员中占内存量最大者所需的容量。 D、最后一个成员所需内存量。 196、下列正确定义一个文件指针pm的语句是(C ) A、FILE pm; B、file *pm; C、FILE *pm; D、file pm; 197、以下运算符中优先级最低的算符为(B) A、&& B、 ?: C、!= D、|| 198、正确的标识符是: (D) 27 A、 ?a B、a=2 C、a.3 D、a_3 199、以下不是关键字的是(C)(2分) A、continue B、char C、If D、default 200、设有定义:int x=10,y=3,z;则执行语句printf(\后输出结果是(D) A、1 B、0 C、4 D、3 201、执行下列语句int a;printf(\后,a的值是(C)(2分) A、 65 B、 20 C、 15 D、 10 202、若w=1,x=2,y=3,z=4,则条件表达式w 203、设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( B ) 。 A、1 B、2 C、 D、4 204、对于程序段 int k=0; while(k=1)k++; while 循环执行的次数是( A)。 (2分) A、无限次 B、有语法错,不能执行 C、一次也不执行 D、 执行1次 205、while构成的循环int ks=0; while (ks=2) ks++;执行的次数是( A )。 (2分) A、无限次 B、有语法错误,不能执行 C、一次也不执行 D、执行一次 206、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是( B )。 (2分) A、s+1 B、s++ C、&s[0]+1 D、&s[1] 207、对于某个函数调用,不用给出被调用函数的原形的情况是( C )。(2分) A、被调用函数是无参函数 B、被调用函数是无返回值的函数 C、函数的定义在调用处之前 D、函获得的定义在别的程序文件中 208、变量的指针,其含义是指该变量的(B)。(2分) A、值 B、地址 C、名 D、一个标志 209、下列打开文件的方式中,对二进制文件操作的是( D) A、r B、a C、w+ D、rb+ 210、在C语言中,逻辑表达式的操作数为非0是,则表示为(A) A、真 B、假 C、0 D、1 211、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000 212、若执行以下程序段: int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%d\\n”,a, b, c); 其输出结果是(B)(2分) A、0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10 213、对于程序 int a,b; scanf (\正确的判断是( A )。(2分) A、有语法错误不能通过编译 B、若输入4,5则输出5,6 C、若输入5,4则输出4,5 D、若输入5,4则输出5,5 214、下面有关for循环的正确描述是( D)。(2分) A、for循环只能用于循环次数已经确定的情况。 B、for循环是先执行循环体语句,后判断表达式。 C、在for循环中,不能用break语句跳出循环体。 D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。 215、下列循环语句会进入死循环的是( C )。 (2分) A、i=0; do { i++; }while(i = =100); B、for(i=0; i<100; i+=3.14); C、for(i=0; ; i+=2); D、k=1; do { k--;} while(k); 216、for(x=0,y=0;(y!=123)&&(x<4);x++);循环是( C )。(2分) 28 A、无限循环 B、循环次数不定 C、执行4次 D、执行3次 217、以下正确的定义语句是( )。(2分) A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 218、程序段int k,a[3][3]={1,2,3,4,5,6,7,8,9}; for (k=0;k<3;k++) printf(“%d”,a[k][2-k]); 输出结果是( C )。(2分) A、3 5 7 B、3 6 9 C、1 5 9 D、1 4 7 219、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是( D )。(2分) A、用户指定传递方式 B、无传递 C、单向值传递 D、地址传递 220、若有说明:int a[3][4]={0};则下面正确的叙述是( B )。(2分) A、只有元素a[0][0]可得到初值0 B、此说明语句不正确 C、数组a中各元素都可得到初值,但其值不一定为0 D、数组a中每个元素均可得到初值0 221、以下不正确的说法是( C )。(2分) A、C语言规定实参可以是常量、变量或表达式 B、形参可以是常量、变量或表达式 C、实参可以是任意类型 D、形参应与其对应得实参类型一致 222、在定义语句int *f();中,标识符f代表的是( D )。(2分) A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的行指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名 223、已知:int a,*p=&a;则下列函数调用中错误的是( D )。(2分) A、scanf(\ B、scanf(\ C、printf(\ D、printf(\ 224、枚举类型首元素默认值和两个相邻元素之间默认的差值分别是(C )(2分) A、1,0 B、1,1 C、0,1 D、0,0 225、若要用fopen函数打开一个新的二进制文件,该文件既能读也能写,则文件打开方式为( B)(2分) A、ab+ B、wb+ C、rb+ D、ab 二,填空题 1、一个C源程序中至少应包含一个[main] 函数。 2、a是整型变量,则执行表达式a=25/3%3后a的值为。[2] 3、int m=5,y=2;则表达式y+=y- =m*=y的值为。[-16] 4、执行下列语句: int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(\的输出结果分别是[2,1] 5、条件表达式的格式为表达式1?表达式2:表达式3,若表达式2和表达式3的类型不同,此时条件表达式的值的类型为二者中较[高]的类型 6、当运行以下程序时,从键盘键入right? while((c=getchar())!='?') putchar(++c) } [sjhiu?] 7、C语言中的数组必须先[定义],然后使用。 29 8、如果需要从被调用函数返回一个函数值,被调用函数必须包含【return】语句。 9、已知:float f1=3.2,f2,*pf1=&f1;f2=f1,则*f2的值为。[3.2] 10、以下程序 void fun(char *a, char *b) { a=b; (*a)++; } main () { char c1=\p1=&c1; p2=&c2; fun(p1,p2); printf(“&c&c\\n”,c1,c2); } 运行后的输出结果是 。[&c&c] 11、字符串常量“123”在内存中的字节数是 。[4字节] 12、已有定义 :int x=3 ;则表达式 :x=x+1.78 的值是 。【4】 13、int a=24; printf(\输出结果是 。【30】 14、当a=3,b=2,c=1时,表达式f=a>b>c的值是 。【0】 15、下面程序的运行结果是 。【x=1,y=20】 #include if(i%2!=0) {x=x+i;i++;} y=y+i++; } while (i<=7); printf(\} 16、以下语句char str[10]={\的输出结果是 。[5] 17、为了便于区别全局变量和局部变量,通常将全局变量的首字母 。[用大写字母表示] 18、已知:int b=5,*p=&b;并且b的地址为4000,则“printf(\”的输出结果是 。【4000,5】 19、程序main() { int a[2][3]={{1,2,3},{4,5,6}}; int m,*ptr; ptr=&a[0][0]; m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf(\} 的运行结果是 。【15】 20、引用C语言标准库函数,一般要用【文件包含】 预处理命令将其头文件包含进来。 21、在C语言程序中,符号常量的定义要使用【宏定义】 预处理命令。 30