《C语言选择题(1-4章期末复习)(共12页).docx》由会员分享,可在线阅读,更多相关《C语言选择题(1-4章期末复习)(共12页).docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第1章1. 以下叙述不正确的是( )。A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成2. C语言的注释定界符是( )。A、* *B、 C、 D、/* */3. C语言规定,在一个源程序中,main函数的位置( )。A、必须在最开始B、必须在系统调用的库函数的后面C、必须在最后D、可以任意4. 一个C程序的执行是从( )。A、本程序文件的第一个函数开始,到本程序main函数结束B、本程序的main函数开始,到main函数结束C、本程序的main函数开始,到本程序文
2、件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束5. 以下叙述中正确的是( )。A、C程序中注释部分可以出现在程序中任意合适的地方B、分号是C语句之间的分隔符,不是语句的一部分C、花括号“和”只能作为函数体的定界符D、构成C程序的基本单位是函数,所有函数名都可以由用户命名6. 以下叙述正确的是( )。A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误B、C语言本身没有输入输出语句C、在C程序中,main函数必须位于程序的最前面D、C程序的每行中只能写一条语句7. C语言源程序的基本单位是( )。A、子程序B、过程C、函数D、标识符8. 下列标识符中,不
3、合法的C语言用户自定义标识符是( )。A、printfB、sinC、enumD、_9. 下列四个选项中,均是C语言关键字的选项是( )。A、if struct typeB、switch typedef continueC、signed union scanfD、auto enum include10. 以下叙述中错误的是( )A、用户所定义的标识符应尽量做到见名知意B、用户所定义的标识符允许使用关键字C、用户定义的标识符中,大、小写字母代表不同标识D、用户所定义的标识符必须以字母或下划线开头11. 下列字符序列中,可用作C标识符的一组字符序列是( )。A、#md,&12x,month,stud
4、ent_n!B、D56,r_1_2,name,_st_1C、S.b,sum,average,_aboveD、class,day,lotus_1,2day12. 下面四个选项中,均是不合法的用户标识符的选项是( )。A、_123 temp intB、A P_0 doC、b-a goto intD、float la0 _A13. 下列四组选项中,均不是C语言关键字的选项是( )。A、file IF typeB、include scanf caseC、while go powD、getc char printf14. 下列字符序列中,不可用作C语言标识符的是( )。A、symbolB、#abC、a_
5、1D、b7015. C语言中不合法的字符串量是( )A、”121”B、y=C、”ABCDx6d”D、”nn”16. 下列数据中,为字符串常量的是( )。A、$abcB、houseC、AD、How do you do.17. C语言中不合法的字符常量是( )A、65B、xffC、028D、&18. 设有语句char a= 172;,则变量a( )A、说明不合法B、包含2个字符C、包含1个字符D、包含3个字符答案:C19. 以下常量中,能够代表逻辑“真”值的常量是( )。A、0B、0C、0D、NULL20. 以下所列的C语言常量中,错误的是( )。A、0xFFB、2LC、72D、1.2e0.521
6、. 以下数据中,不正确的数值或字符常量是( )。A、10B、0xff00C、8.9e1.2D、82.522. 以下数据中,不正确的数值或字符常量是( )。A、0xaaB、66C、cD、5023. 与十进制数97不等值的字符常量是( )A、101B、x61C、141D、a24. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是( )A、非法的常量B、字符aC、字符eD、字符A25. 不合法的八进制数是( )A、01B、0C、07700 D、02826. 要将字符a赋给变量c,下列语句中正确的是( )。A、c=a;B、C=97;C、c=a;D、c
7、=97;27. 设C语言中,int类型数据占2个字节,则long类型数据占( )。A、8个字节B、2个字节C、1个字节D、4个字节28. 设C语言中,int类型数据占2个字节,则short类型数据占( )。A、1个字节B、2个字节C、8个字节D、4个字节29. 以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )A、由C语言编译系统决定B、均占4个字节C、由用户自己定义D、根据数据的大小来决定所占内存的字节数30. C语言中,字符(char)型数据在微机内存中的存储形式是( )A、反码B、EBCDIC码C、ASCII码D、补码31. C语言中,char类型数据占( )
8、。A、2个字节B、8个字节C、4个字节D、1个字节32. 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( )。A、0255B、0C、032767D、0-6553533. C语言中,double类型数据占( )。A、4个字节B、1个字节C、2个字节D、8个字节34. 设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为( )A、floatB、intC、doubleD、char35. C语言中要求对变量作强制定义的主要理由是( )。A、便于移植B、便于确定类型和分配空间C、便于编辑预处理程
9、序的处理D、便于写文件36. 若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k-) 后,j和k的值为( )A、j=3, k=3B、j=4, k=4C、j=3, k=4D、j=4, k=337. 设有 int x=11; 则表达式 (x+ * 1/3) 的值是( )。A、3B、4C、11D、1238. 以下选项中,与k=n+完全等价的表达式是( )。A、k=+nB、k+=n+1C、k=n,n=n+1D、n=n+1,k=n39. 执行下列语句后变量x和y的值是( )。y=10;x=y+;A、x=10,y=10B、x=11,y=10C、x=11,y=11D、x=10,y=1140.
10、 经过以下语句定义后,表达式z+=xy?+x:+y的值为( )。 int x=1,y=2,z=3;A、6B、3C、2D、541. 设 int x=1, y=1; 表达式(!x|y-)的值是( )。A、-1B、0C、2D、142. 若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。A、int 18.5%3B、a:=b+1C、a=a+7=c+bD、a=b=c+2答案:D43. 如果p是一个整型数,下列表达式始终为真的是( )。A、p & pB、p | pC、p & !pD、p | !p44. 能正确表示逻辑关系: a10或a0 的C语言表达式是( )A、a=0 & a=10 or a=1
11、0 & a=10 | a=D、(类型)46. 下列运算符中优先级别最高的是( )A、!B、%C、-=D、&47. 以下关于运算符优先顺序的描述中正确的是( )。A、赋值运算符逻辑运算符关系运算符算术运算符B、算术运算符关系运算符赋值运算符逻辑运算符C、逻辑运算符关系运算符算术运算符赋值运算符D、关系运算符算术运算符赋值运算符0;C、n=(i=2,+i);D、+(i+1);50. 以下不符合C语言语法的赋值语句是( )。A、a=b=5;B、a=1,b=2C、+j;D、y=(a=3,6*5);51. 如果int a=2,b=3,c=0,下列描述正确的是( )A、a|(b=c)执行后b的值为0B、a
12、b!=c和a(b!=c)的执行顺序是一样的C、a&bc的结果为假D、!a!=(b!=c)表达式的值为152. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 & y+z/2的值是( )A、6B、1C、0D、253. 若给定条件表达式(M)?(a+):(a-),则其中表达式M( )。A、和(M!=1)等价B、和(M=1)等价C、和(M!=0)等价D、和(M=0)等价54. 用下列语句定义a,b,c,然后执行b=a、c=b+b,则b,c的值是( )。long a=3; int b; char c;A、2和101B、3和101C、3和100D、3 和9955. 表达式18/
13、4*sqrt(4.0)/8值的数据类型为( )。A、不确定B、doubleC、intD、float56. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。A、9B、-12C、6D、-357. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )。A、!(A%2)B、A%2=1C、!(A%2=0)D、A%258. 判断char型变量cl是否为小写字母的正确表达式是( )。A、(cl=a)&(cl=z)B、a=cl=cl)|(z=a)&(clb)&(n=cd)运算后,n的值为( )。A、3B、0C、1D
14、、261. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( )。A、1B、2.0C、2.5D、262. 已知year为整型变量,不能使表达式(year%4=0&year%100!=0)|year%400=0的值为“真”的数据是( )。A、1992B、1990C、2000D、199663. 能正确表示逻辑关系:10a0的C语言表达式是( )。A、a=0|a=10a=0C、a=0D、a=10&a5) printf(“%d”,x);else printf(“%dn”,x - -);A、7和5B、6和3C、7和4D、6和44. 为了避免嵌套的条件分支语句if-else的二义
15、性,C语言规定:C程序中的else总是与( )组成配对关系。A、缩排位置相同的ifB、在其之前未配对的ifC、在其之前未配对的最近的ifD、同一行上的if5. 下列程序段的输出结果是( )int x=0;while(+x3) printf(%4d,x);A、4B、0 1 2 C、1 2 D、36. 循环结束后,count 的值是( )count=1;while(count=145) a=a+7; count+;A、1B、144C、145D、1467. 有如下程序片段:int i = 0;while(i+ = 2); printf(%d, i);则正确的执行结果是( )A、2B、3C、4D、以上
16、都不对8. 在下面的条件语句中(其中S1和S2表示C语言的语句),只有一个在功能上与其他3条语句不等价,它是( )A、if(a) S1; else S2;B、 if(a=0) S2; else S1; C、if(a!=0) S1; else S2;D、if(a=0) S1; else S2;9. 执行下列代码后的输出是 ( ).int a=1,b=0;switch (a) case 1: switch(b) case 0: printf(*0*); break; case 1: printf(*1*); break; case 2: printf(*2*); break; A、*0*B、*0*
17、2*C、*0*1*2*D、运行出错10. 执行下列语句后,sum 的值是( )。sum=0;for(count=1;county) z=x; else z=y; return(z); A、18B、27C、45D、7225. 以下程序的输出结果为( )。main()int a=1,b=2,c=3,d=4,e=5; printf(%dn,func(a+b,b+c,c+a),(d+e); int func(int x,int y) return(x+y); A、15B、9C、13D、函数调用出错26. 下列存储类别中,( )的可见性与生存期不一致。A、外部变量B、自动变量C、静态变量D. 寄存器变量
18、27. 以下函数的类型是( )。fff(float x) return 5; A、无法确定B、int类型C、与参数x的类型相同D、void 类型28. 下列说法不正确的是( )。A、在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效B、形式参数是局部变量C、不同函数中,可以使用相同名字的变量D、主函数main中定义的变量在整个文件或程序中有效29. 以下关于变量beta的说法正确的是( )。void fun(int a) static int beta=25; A、当首次调用函数时被初始化一次。B、每次调用函数时都要进行初始化。C、在函数中不能改变它的值。D、A和C都对30.
19、 全局变量的定义不可能在( )。A、函数内部B、文件外面C、最后一行D、函数外面31. 以下不正确的说法是:C语言规定( )。A、实参可以为任何类型B、形参可以是常量,变量或表达式C、形参应与其对应的实参类型一致D、实参可以是常量,变量或表达式32. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是( )A、staticB、registerC、autoD、extern33. 以下对C语言函数的描述中,正确的是( )。A、C函数既可以嵌套定义又可以递归调用B、C程序必须由一个或一个以上的函数组成C、函数必须有返回值,否则不能使用函数D、C程序
20、中有调用关系的所有函数必须放在同一个程序文件中34. 以下正确的函数原型为( )。A、func (int x ; int y); B、void (x , y);C、void (int x , y); D、void func (int , int);35. 有如下函数原型和变量定义:void fix(int, float &);int someInt;float someFloat;下列最适合的函数调用是( )。A、fix(24,6.85);B、sumeFloat=0.3*fix(someInt,6.85);C、fix(somInt, someFloat);D、以上都不对36. 使用重载函数编程
21、序的目的是( )。A、使用相同的函数名调用功能相似的函数 B、共享程序代码C、提高程序的运行速度 D、节省存储空间37. C+中,关于参数默认值的描述正确的是( )。A、只能在函数定义时设置参数默认值B、设置参数默认值时,应当全部设置C、设置参数默认值时,应当从右向左设置D、设置参数默认值后,调用函数不能再对参数赋值38. 已知程序中已经定义了函数test,其原型是inttest(int,int,int);则下列重载形式中错误的是( )A、chartest(int, int, int); B、doubletest(int, int, double);C、inttest(int, int); D
22、、floattest(int, int, float=3.5F);39. 以下描述中,正确的是( )。A、预处理是指完成宏替换和文件包含中指定的文件的调用B、预处理指令只能位于C源文件的开始C、C源程序中凡是行首以#标识的控制行都是预处理指令D、预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备40. 以下程序的输出结果是( )#define MIN(x, y) (x) (y) ? (x) : (y)main() int i , j, k; i = 10; j = 15; k = 10 * MIN(i, j); printf(%dn, k);A、10B、150C、15D、
23、10041. 下列程序运行结果为:( )#define P 3#define S(a) P*a*amain() int ar; ar=S(3+5); printf(n%d,ar); A、192B、25C、29D、2742. C程序中的宏展开是在( )。A、编译前预处理时进行的B、编辑时进行的C、编译时进行的D、程序执行时进行的43. 宏定义#define PI 3.14中的宏名PI代替( )A、不确定类型的数B、一个单精度实数C、一个字符串D、一个双精度实数第4章1. int a4=5,3,8,9;其中 a3的值为( )。A、5 B、3 C、8 D、9 2. 以下对一维整型数组a的正确说明是(
24、 )。A、int n; scanf(%d,&n); int an;B、#define SIZE 10 (换行) int aSIZE;C、int a(10);D、int n=10,an;3. 若有以下说明,则数值为 4 的表达式是( )。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12; char c=a, d, g ; A、ag-c B、a4 C、ad-c D、ad-c 4. 数组定义为 int a32=1,2,3,4,5,6,值为6的数组元素是( )。 A、a32 B、a21 C、a12 D、a23 5. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。
25、A、数组的第一个元素的值B、数组的首地址C、数组中全部元素的值D、数组元素的个数6. 以下( )能将数组元素初始化为10,20和30?A、int data3=10,20,30;B、int data =10,20,30;C、int data3=10 20 30;D、A和B都可以7. 对以下说明语句 int a10=6,7,8,9,10; 的正确理解是( )。A、将5个初值依次赋给a1至a5B、将5个初值依次赋给a6至a10C、因为数组长度与初值的个数不相同,所以此语句不正确D、将5个初值依次赋给a0至a48. int a10; 给数组a的所有元素分别赋值为1、2、3、的语句是( )。A、for(i=1;i11;i+)a0=1;B、for(i=1;i11;i+)ai=i;C、for(i=1;i11;i+)ai+1=i;D、for(i=1;i0) puts(s2);B、if(strcmp(s1,s2)0) puts(s2);C、if(strcmp(s1,s2)=0) puts(s2);D、if(strcmp(s1,s2)0) puts(s2);23. char a1=
限制150内