C语言经典考试习题其答案详解 (2).pdf
《C语言经典考试习题其答案详解 (2).pdf》由会员分享,可在线阅读,更多相关《C语言经典考试习题其答案详解 (2).pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言经典考试习题其答案详解一、单项选择题一、单项选择题单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对 C 语言基本概念的掌握情况,同学们在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。【1.1】以下不正确的 C 语言标识符是_。A)int B)a_1_2 C)ab1exe D)_x【1.2】以下是正确的 C 语言标识符是_。A)#define B)_123 C)%d D)n【1.3】下列四组字符串中都可以用作语言程序标识符的一组是。A)print B)iam C)P
2、xq D)str_l _3d one_half My-book Cpp oodb start$it line#pow aBc 3pai His.age while【1.4】下面各选项组中,均是 C 语言关键字的组是。A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type【1.5】下列不属于 C 语言关键字的是。A)default B)register C)enum D)external【1.6】C 语言程序从 main()函数开始执行,所以这个函数要写在_。A)程序文件的开始 B)程序
3、文件的最后C)它所调用的函数的前面 D)程序文件的任何位置【1.7】下列关于 C 语言的叙述错误的是_A)大写字母和小写字母的意义相同B)不同类型的变量可以在一个表达式中C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D)同一个运算符号在不同的场合可以有不同的含义【1.8】#include 是 A.编译预处理指令 B.什么都不是 C.函数 D.有语法错误【1.9】程序编译链接后显示 0 error,0 warning 代表 A.程序中有语义错误 B.程序中没有语法错误 C.程序是正确的 D.程序是不正确的【1.10】关于可执行文件说法正确的是 A.可执行文件是编译链接后生成的文
4、件 B.可执行文件就是 main.c 文件 C.可执行文件就是源代码文件 D.可执行文件后缀为.obj【1.11】设有语句“int a=3;”,执行语句“a+=a-=a*a;”后,变量 a 的值是 A.3 B.0 C.-12 D.9【1.12】在 C 程序中如果要使用数学函数,如 sin(x),log(x)等,需要在程序中加入的语句是 A.#define B.#define C.#include D.#include【1.13】语言中字符型(char)数据在内存中的存储形式是_。A)原码 B)补码 C)反码 D)ASCII 码【1.14】将字符 g 赋给字符变量 c,正确的表达式是。A)c=1
5、47 B)c=147 C)c=147 D)c=0147【1.15】下列转义字符中错误的一个是_。A)000 B)0014 C)x111 D)2【1.16】将空格符赋给字符变量 c,正确的赋值语句是_。A)c=0 B)c=NULL C)c=0 D)c=32【1.17】设有以下定义,则下面给出的语句中错误的是int a=0;float b=1.25;char c=A;#define d 2 A.a+;B.c+;C.(a+1)+;D.b+;【1.18】字符串EOFn=-61的长度是_。A)8 B)9 C)14 D)非法字符串【1.19】下列关于单目运算符+、-的叙述中正确的是 A.a+和+a 都是最
6、终使变量 a 执行 a=a+1,因此对于包含 a+或+a 的表达式而言(如 j=a+;或者 j=+a;),两种情况下表达式的最终运算结果一定是相同的。B.a+的运算过程是:先使用变量 a 的值,然后再执行 a=a+1。C.a+的运算过程是:先执行 a=a+1,然后再使用变量 a 的值。D.+a 的运算过程是:先使用变量 a 的值,然后再执行 a=a+1。【1.20】已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量 c 的数据类型是。A)int B)char C)float D)double【1.21】在下面的 C 语言语句中,存在错误的是
7、A.int a,b;a=10;b=10;B.int a=b=10;C.int a=10,b=10;D.int a,b;a=b=10;【1.22】逗号表达式(a=3*5,a*4),a+15的值是_。A)15 B)60 C)30 D)不确定【1.23】如果 int a=1,b=2,c=3,d=4;则条件表达式ab?a:cd?c:d的值是_。A)1 B)2 C)3 D)4【1.24】下面哪条语句可以生成 0-9 之间的随机数 A.magic=rand()/10;B.magic=rand()%10+1;C.magic=rand()%10;D.magic=rand()/10+1;【1.25】已知 int
8、 i=10;表达式20-0=i=9的值是_。A)0 B)1 C)19 D)20【1.26】若以下选项中的变量已正确定义,则正确的赋值语句是 A.x3=x2=x1=0;B.x1=26.8%3;C.1+2=x2;D.x4=1+2=3;【1.27】为判断字符变量 c 的值不是数字也不是字母时,应采用下述表达式_。A)c=57&c=90&c=122B)!(c=57&c=90&c=122)C)c=48&c=65&c=97&c=48&c=65&c=97&c=122)【1.28】十进制 3 位数整数 x,下面哪条语句能正确分离出它的十位上的数字 d?A.d=(x/10)%10;B.d=x%10;C.d=(x
9、-x%10)/10;D.d=x%100;【1.29】在 C 语言中对下面的语句而言,哪个说法是错误的?int a,b;A.变量 a 和 b 中的值都是未知的随机数 B.a 和 b 都是整型变量 C.变量 a 和 b 占用的内存空间的大小是相同的 D.变量 a 和 b 中的值都是 0【1.30】程序运行后的输出结果是#include int main()int m=3,n=4,x;x=m+;+n;x=x+8/n;printf(%d,%dn,x,m);return 0;A.4,4 B.5,3 C.4,3 D.5,4【1.31】下面程序的运行结果是#include int main()int a=2
10、,b=3;float x=3.5,y=2.5;printf(%f,(float)(a+b)/2+(int)x%(int)y);return 0;A.3 B.3.500000 C.3.5 D.3.000000【1.32】以下非法的赋值语句是 A.n=+i;B.+(i+1);C.j+;D.x=(j-);【1.33】设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是 A.6 B.6.000000 C.5.500000 D.6.500000【1.34】在 C 语言中,要求操作数必须是整型的运算符是 A.*B.-C.+D.%【1.35】判断 ch
11、ar 型变量 ch 是否为大写字母的正确表达式是.A)AchZ B)(cbA)(chZ)C)(chA)&(chZ)D)(Ach)AND(Z=ch)【1.36】已知 int x=5,y=5,z=5;执行语句 x%=y+z;后,x 的值是_。A)0 B)1 C)5 D)6【1.37】使用语句 scanf(x=%f,y=%f,&x,&y);输入变量 x、y 的值(代表空格),正确的输入是_。A)1.25,2.4 B)1.252.4 C)x=1.25,y=2.4 D)x=1.25y=2.4【1.38】下列循环语句中有语法错误的是_。A)while(x=y)5;B)while(0);C)do 2;whi
12、le(x=b);D)do x+while(x=10);【1.39】有如下语句,为使变量 a 的值为 1,b 的值为 2,从键盘输入数据的正确形式是scanf(a=%d,b=%d,&a,&b)A.a=1 b=2 B.1,2 C.a=1,b=2 D.1 2【1.40】以下程序的输出结果为#include int main()float a=1234.567,b=55.32;printf(a=%4.2f,b=%5.1fn,a,b);return 0;A.a=1234.6,b=5.32 B.a=1234,b=55C.a=1234.567,b=55.32 D.a=1234.57,b=55.3【1.41】
13、以下关于运算符优先顺序的描述中正确的是 .A)关系运算符算术运算符赋值运算符逻辑与运算符B)逻辑与运算符关系运算符算术运算符赋值运算符C)以赋值运算符逻辑与运算符关系运算符算术运算符D)算术运算符关系运算符赋值运算符逻辑与运算符【1.42】已知:int x,y;double z;则以下语句中错误的函数调用是。A)scanf(%d,%lx,%le,&x,&y,&z);B)scanf(%2d*%d%lf,&x,&y,&z);C)scanf(%x%*d%o,&x,&y);D)scanf(%x%o%6.2f,&x,&y,&z);【1.43】与条件表达式(n)?(c+):(c-)中的表达式(n)等价的表
14、达式是_。A)(n=0)B)(n=1)C)(n!=0)D)(n!=1)【1.44】以下正确的描述是A.在循环体内使用 break 语句或 continue 语句的作用相同 B.continue 语句可以写在循环体之外C.只能在循环体内和 switch 语句体内使用 break 语句D.continue 语句的作用是结束整个循环的执行【1.45】C 语言中 while 和 do-while 循环的主要区别是 .A)do-while 的循环体至少无条件执行一次B)while 的循环控制条件比的循环控制条件严格C)do-while 允许从外部转到循环体内D)do-while 的循环体不能是复合语句【
15、1.46】设已定义 i 和 k 为 int 类型变量,则以下 for 循环语句1.for(i=0,k=-1;k=1;i+,k+)2.printf(*n);A.判断循环结束的条件不合法 B.是无限循环C.循环只执行一次 D.循环一次也不执行【1.47】下列说法中正确的是 A.函数只有一个返回值,所以不能有多个 return 语句。B.无论何种情况,只要把用户自定义的所有函数都放在 main 函数的前面,就可以不用写函数原型了。C.函数原型是一条语句,不包括函数体。D.在 C 语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元,此时形参值的变化会影响到实参的值。【1.48】若已定义的函数
16、有返回值,则以下关于该函数调用的叙述中错误的是 A.函数调用可以作为独立的语句存在 B.函数调用可以作为一个函数的形参 C.函数调用可以出现在表达式中 D.函数调用可以作为一个函数的实参【1.49】以下程序有语法错误,有关错误原因的正确说法是1.#include 2.void prt_char();3.int main()4.5.int G=5,k;6.7.k=prt_char(G);8.9.return 0;10.11.int prt_char(int x)12.13.14.A.函数 prt_char(int x)定义的位置不对,不能放在主函数 main()的后面。B.变量名不能使用大写字母
17、 C.函数原型和函数定义不匹配 D.函数名不能使用下划线【1.50】若用数组名作为函数调用时的实参,则实际上传递给形参的是。A)数组首地址 B)数组的第一个元素值C)数组中全部元素的值 D)数组元素的个数【1.51】对二维数组的正确说明是_。A)int a=1,2,3,4,5,6;B)int a2=1,2,3,4,5,6;C)int a3=1,2,3,4,5,6;D)int a2,3=1,2,3,4,5,6;【1.52】对字符数组 s 赋值,不合法的一个是_。A)char s=Beijing;B)char s20=beijing;C)char s20;s=Beijing;D)char s20=
18、B,e,i,j,i,n,g;【1.53】对字符数组 str 赋初值,str 不能作为字符串使用的一个是_。A)char str=shanghai;B)char str=shanghai;C)char str9=s,h,a,n,g,h,a,i;D)char str8=s,h,a,n,g,h,a,i;【1.54】对函数形参的说明有错误的是_。A)int a(float x,int n)B)int a(float*x,int n)C)int a(float x10,int n)D)int a(float x,int n)【1.55】如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的
19、,这个变量的存储类型应该被说明为_。A)静态变量 B)动态变量 C)外部变量 D)内部变量【1.56】在一个 C 源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是。A)extern B)register C)auto D)static【1.57】在 C 语言中,函数的数据类型是指_。A)函数返回值的数据类型 B)函数形参的数据类型C)调用该函数时的实参的数据类型 D)任意指定的数据类型【1.58】二维数组 a 有 m 行 n 列,则在 aij之前的元素个数为 A.j*n+i B.i*n+j+1 C.i*n+j D.i*n+j-1【1.59】定义一个函
20、数实现交换 x 和 y 的值,并将结果正确返回。能够实现此功能的是_。A)swapa(int x,int y)B)swapb(int*x,int*y)int temp;int temp;temp=x;x=y;y=temp;temp=x;x=y;y=temp;C)swapc(int*x,int*y)D)swapd(int*x,int*y)int temp;int*temp;temp=*x;*x=*y;*y=temp;temp=x;x=y;y=temp;【1.60】求一个角的正弦函数值的平方。能够实现此功能的函数是_。A)sqofsina(x)float x;return(sin(x)*sin(x
21、);B)double sqofsinb(x)float x;return(sin(double)x)*sin(double)x);C)double sqofsinc(x)return(sin(x)*sin(x);D)sqofsind(x)float x;return(double(sin(x)*sin(x);【1.61】一个函数内有数据类型说明语句如下:double x,y,z(10);关于此语句的解释,下面说法正确的是_。A)z 是一个数组,它有 10 个元素。B)z 是一个函数,小括号内的 10 是它的实参的值。C)z 是一个变量,小括号内的 10 是它的初值。D)语句中有错误。【1.62
22、】已知函数定义如下:float fun1(int x,int y)float z;z=(float)x/y;return(z);主调函数中有 int a=1,b=0;可以正确调用此函数的语句是_。A)printf(%f,fun1(a,b);B)printf(%f,fun1(&a,&b);C)printf(%f,fun1(*a,*b);D)调用时发生错误【1.63】下面函数的功能是_。void fun(char s1,s2)while(s2+=s1+);A)字符串比较 B)字符串复制 C)字符串连接 D)字符串反向【1.64】在下列结论中,只有一个是错误的,它是。A)语言允许函数的递归调用B)语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言经典考试习题其答案详解 2 语言 经典 考试 习题 答案 详解
限制150内