1、第二章 基本数据类型和运算因为题目略有删减,可能编号不连续,请见谅一、单项选择题1 下列数据中属于“字符串常量”的是( A ) 。A. “a“ BABC C abc0 D a4字符串“ABC“在内存占用的字节数是( B ) 。A3 B4 C6 D85字符串“ ABCD “内存占用的字节数是( C ) 。A4 B6 C7 D86在 C 语言中,合法的长整型常数是( A ) 。A0L B4962710 C0.054838743 D2.1869e107. 在 C 语言中,合法的短整型常数是( D ) 。A0L B0821 C40000 D0x2a8. 下列数据中不属于“字符常量”的是( C ) 。A
2、 xff B 160 C 070 D0709char 型常量的内存中存放的是( A ) 。AASCII 代码值 BBCD 代码值 C内码值 D十进制代码值11.常数的书写格式决定了常数的类型和值,03322 是( B ) 。A、16 进制 int 类型常数 B、8 进制 int 类型常数C、10 进制 int 类型常数 D、10 进制 long int 类型常数12 “e2”是( D ) 。A、实型常数 100 B、值为 100 的整型常数 C、非法标识符 D、合法标识符13. 要为字符型变量 a 赋初值,下列语句中哪一个是正确的( A ) 。A、char a=3; B、char a=”3”;
3、 C、char a=%; D、char a=*;14. 要为 float 类型变量 x、y、z 赋同一初值 3.14,下列说明语句哪一个是正确的(C ) 。A、float x,y,z=3.14; B、float x,y,z=3*3.14;C、float x=3.14,y=3.14,z=3.14; D、float x=y=z=3.14;15. 语句 float pi=3.1415926535; 将( D ) 。A、导致编译错误 B、说明 pi 为初值 3.1415926535 的单精度实型常数C、导致运行时的溢出错误 D、说明 pi 为初值 3.141593 的单精度实型常数16. 算术运算符、
4、赋值运算符和关系运算符的运算优先级按从高到低依次为( B ) 。A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算17. 关系运算符中优先级最低的运算符是( C ) 。A、 “=”和“”和“3?2:228. int b=0,x=1;执行语句 if(x+) b=x+1;后,x,b 的值依次为( A ) 。A2,3 B2,0 C3,0 D3,229. 设有语句 int a=3;,则执行了语句 a+=a-=a*a ;后,变量 a 的值是( D ) 。A3 B0 C9 D-1230. 设有语句 int a=3;,则执行了
5、语句 a+=a-=a*=a;后,变量 a 的值是( B ) 。A3 B0 C9 D-1232. 在以下一组运算符中,优先级最高的运算符是( C ) 。A10 if(a=1) a+=10; 结果的值是( B ) 。A0 B11 C10 D出错42. 下列表达式中符合 C 语言语法的赋值表达式是( C ) 。Aa=7+b+c=a+7 Ba=7+b+=a+7 Ca=(7+b,b+,a+7) Da=7+b,c=a+743设 f 是实型变量,下列表达式中不是逗号表达式的是( D ) 。Af= 3.2, 1.0 Bf0, f0 Df=(3.2, 1.0)- 赋值表达式44. 下列表达式中,不正确的表达式是
6、( B ) 。Aa=1,b=1 By=int(x) Ca=b=5 Di+47. 设有整型变量 a=35,表达式(a,表达式 ac|cb!=0 else y+=y ;A20 B11 C9 D02. 假定所有变量均已正确定义,下列程序段运行后 x 的值是( B ) 。a=b=c=0,x=35 ;if(!a) x- -; else if(b) ;if(c) x=3;else x=4;A34 B4 C35 D34. 下列各语句序列中,能够且仅输出整型变量 a、b 中最大值的是( C ) 。A、if(ab) printf(”%dn”,a); printf(”%dn”,b);B、printf(”%dn”,
7、b); if(ab) printf(”%dn”,a);C、if(ab) printf(”%dn”,a); else printf(”%dn”,b);D、if(as)t=u; t=s; B、t=s; if(us)t=u;C、if(us)t=s; else t=u; D、t=u; if(us)t=s;6. 下列各语句中,能够输出整型变量 a、b 中最大值的是( D ) 。A、printf(”%dn”,(ab)?a,b); B、(ab)? printf(”%d”,a):printf(”%d”,b);C、printf(”%d”,if(ab)a else b); D、printf(”%dn”,(ab)?
8、a:b);7. 下列语句应将小写字母转换为大写字母,其中正确的是( B ) 。A、if(ch=a i+); 的循环执行( A )。A无限次 B不确定次 C10 次 D9 次12. i、j 已定义为 int 类型,则以下程序段中内循环体的执行次数是( A )。 for(i=5; i;i-)for(j=0;j0; y - -)if(y%3=0) printf(“%d”, - -y); continue;第四章 数 组(一)单项选择题1若有以下数组说明,则数值最小的和最大的元素下标分别是 ( B )。int a12 =1,2,3,4,5,6,7,8,9,10,11,12;A1,12 B0,11 C1
9、,11 D0,122若有以下说明,则数值为 4 的表达式是 ( D )。int a12 =1,2,3,4,5,6,7,8,9,10,11,12; char c=a, d, g ;Aag-c Ba4 Cad-c D ad-c (即 ad-a)3设有定义:char s12 = “string “ ;, 则 printf( “%dn”,strlen(s);的输出是 ( A )。A6 B7 C11 D124设有定义:char s12 = “string “; 则 printf( “%dn “, sizeof(s); 的输出是 ( B )。A6 B7 C11 D125. 合法的数组定义是 ( A )。A
10、char a = “string “ ; Bint a5 =0,1,2,3,4,5;Cchar a= “string “ ; Dchar a =0,1,2,3,4,56. 合法的数组定义是 ( B )。Aint a3 =0,1,2,3,4,5; Bint a 3 =0,1,2,3,4;Cint a23=0,1,2,3,4,5,6; Dint a23=0,1,2,3,4,5,;7. 下列语句中,正确的是 ( D )。Achar a3 =abc, 1; Bchar a 3 =abc, 1;Cchar a3 =a, “1”; Dchar a 3 = “a “, “1“;8. 下列定义的字符数组中,输
11、出 printf( “%sn”, str2) ;的输出是 ( C )。static str320 = “basic “, “foxpro “, “windows “;Abasic Bfoxpro Cwindows D输出语句出错9. 下列各语句定义了数组,其中哪一个是不正确的( C ) 。A、c har a310=”China”,”American”,”Asia”; B、int x22=1,2,3,4;C、float x2 =1,2,4,6,8,10; D、int m3=1,2,3,4,5,6;10. 数组定义为 int a32=1,2,3,4,5,6,值为 6 的数组元素是( B ) 。A、
12、a32 B、a21C、a12 D、a2312函数调用 strcat(strcpy (str1,str2) ,str3); 的功能是 ( C )。A将字符串 str1 复制到字符串 str2 中后再连接到字符串 str3 之后。B将字符串 str1 连接到字符串 str2 之后再复制到字符串 str3 之后。C将字符串 str2 复制到字符串 str1 中后再将字符串 str3 连接到字符串 str1 之后。D将字符串 str2 连接到字符串 str1 之后再将字符串 str1 复制到字符串 str3 中。13有字符数组定义如下,则合法的函数调用是( A )char a = “I am a st
13、udent “, b = “teacher “ ;Astrcmp(a,b); Bstrcpy(a,b0); Cstrcpy(a7,b); Dstrcat(a7,b);14有字符数组定义如下,则不能比较 a,b 两个字符串大小的表达式是( D )char a = “abcdefg“, b = “abcdefh“;Astrcmp(a,b) =0 B strcmp(a,b)0 Cstrcmp(a,b) ,若在程序中用到 strlen( ) 函数时,就在程序开头写上包含命令 #include 。(三)程序分析题7. 阅读下列程序,写出程序运行的输出结果。#include #include void m
14、ain() 输出结果: * char str1 =“*“; *for(int i=0;ivoid main() int a8=1,0,1,0,1,0,1,0,i;for(i=2;i0)? x*f(x-1):3); i=f(f(1);3. 以下程序运行后的输出结果是 int f (int a) return a%2; main( ) int s8=1,3,5,2,4,6,i,d=0;for (i=0; f(si) ; i+) d+=si;printf(“%dn“,d);4. 有以下程序运行后的输出结果是_ _ int f (int n) if (n=1) return 1;else return f(n-1)+1;main()