第 1 页:选择题 |
第 2 页:程序填空题 |
第 3 页:程序修改题 |
第 4 页:程序设计题 |
第 5 页:参考答案及解析 |
(1)B【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B错误。
(2)A【解析】A选项中l15L表示ll5是长整型数据,合法。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。c选项中e后面应该是整数不能是小数1.5,所以c错误。D选项中八进制常量应该是数字…0开始,而不是字母…O开始。
(3)D【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D选项中的连接符不合法。
(4)A【解析】8与D选项中取模运算符%的左右两个操作数均应为整数,所以B、D错误。c选项中不能将X+Y的值赋给表达式Y*5,所以c错误。
(5)A【解析】A选项中逗号表达式先计算第一表达式2*x,然后计算表达式x+=2的值,即x=x+2即4,整个逗号表达式为第二个表达式的值4,所以选择A。B选项中首先计算逗号表达式中第一表达式x++,此时x为3,在执行第二个表达式2·X=2*3=6,所以逗号表达式为第二个表达式的值6。C选项的赋值表达式可以表示为x=x *(1+x)=2}(1+2)=6。D选项中的表达式可以表示为x=X}(x+1)=2·3=60
(6)C【解析】z=X++,Y++,++y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(Z=x++),(Y++),(++y)。然后从左向右先计算表达式Z=X++,因为x++先使用后自增,所以z的值为1,X的值为2。再计算逗号表达式第二个表达式Y++,此时Y的值为2,最后计算第三个表达式++y,Y的值为3。
(7)A【解析】本题目中字符变量cl是字符‘A’的ASCIl码加上4,即69所对应的字符‘E’。字符变量c2是字符‘A’的ASCIl码加上3,即68所对应的字符‘D’。但是打印输出时,cl以%C的格式输出,所以是E,c2以%d的格式输出,所以是68。
(8)A【解析】条件表达式:x=表达式17表达式2:表送式3的含义是:先求解表达式1,若为非0(真),则求解表达芪2,将表达式2的值赋给x。若表达式1的值为0(假),则求辞表达式3,将表达式3的值赋给x。在本题中与表达式1::x—y)等价的是(x—Y<0I|x—Y>O)。
(9)D【解析】在if else语句中else总是与离它最近的f配对。本题目中x为l所以!X为0,所以执行else if语句中的内容,判断(x==O)是否成立,因为x为1所以条件不成立,听以else if内部的if…else语句不再执行,所以Y的值还是初蛤值0。
(10)A【解析】B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。
(11)A【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称c源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
(12)A【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的数字开头是Ox。C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E',后跟一个整数来表示以l0为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中028错误,八透割中没有数字8。c选项中4el.5中e后面的指数不是整数:D选项中3.e5小数点后面缺少数字。
(13)A【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的。FOR。可以作为标识符来用。A选项中含有非法字符&,所以选择A。
(14)A【解析】B选项中函数pow(x,C)错误应该直接使用exp(x)函数。c选项中函数ah(n^x+e“x)错误,应该使用fabs()返回浮点数的绝对值。D选项中pow(x,n)参数顺序错误。
(15)B【解析】取模运算符“%”,二元运算符,具有左结合性,参与运算的量均为整型。选项8中的a变量是doable实型,所以8不符合规定。
(16)D【解析】C语言中利用sizeof()函数判断数据类型长度,在VC 6.0平台中,整型int占有4个字节,doable型数据占有8个字节。
(17)D【解析】按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符<CR>即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。
(18)A【解析】C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A。
(19)C【解析】本题中ff(a=1)b=1;与else d=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。
(20)B【解析】C88e常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的Case语句,就从此case子句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case 2语句的a十+;b++;a为2,b为1。所以结果为B。
二、程序填空题
【参考答案】
(1)0
(2)10*x
(3)n/10
【考点分析】
本题考查:已知某数,如何求该数各个位数值,已知各个位数值,如何表示该数;除法运算。
【解题思路】
填空l:定义变量t用来存放某数的各个位数值,此处判断t是否为偶数,即对2求余结果是否为0。
填空2:将t作为x的个位数,原来x的各个位上升l位,即x=10{x+1。
填空3:每循环一次,通过除法运算,去掉数值最后一位。
【解题宝典】
如果知道某数n的各个位的数值,可以得到该数值n,如n的个位为a、十位为b、百位为c,那么n=c}100+b*10+a。如果知道数值n,可以采用求余和除法操作来表示其各个位,如n%10(取个位)、n/J0(取十位),读者可以自己考虑一下,如果是三位数,如何提取各个位?四位数呢?
三、程序修改题【参考答案】(1)}t=0;(2)if(d%2 1=O)或if(d%2==1)
【考点分析】
本题考查:指针型变量作为函数参数;if语句条件表达式,结合奇偶数的表示方法来确定该表达式内容。
【解题思路】
(1)由函数定义可知,变量t是指针变量,所以对t进行赋初值0是不对的。因为t指向的是存放新数的变量,所以此处应给新数赋初值0,即。t=0。
(2)变量d表示数S各个位上的数,此处的if条件应为判断d是否为奇数。
四、程序设计题【参考答案】voidfun(char pl[],char p2[])
in“,j;
for(i=0;pl[i]f=。、0’;i++);
for(j=0;p2[j]!=。、0’;j++)p1[i++]=p2[j];
p1[i],_。、0’;}
【考点分析】“
本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,不要忘了最后需要加上字符串结束标识‘、0’。
【解题思路】
本题用两个循环完成操作,第1个循环的作用是求出第l个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第l个字符申的末尾。最后在第l个字符串的结尾加上字符串结束标识‘、0’。
微信搜索"考试吧"获取更多考试资讯、备考资料
相关推荐: