• 50.50 KB
  • 2022-04-22 11:47:53 发布

第一章笔试习题答案及解释.doc

  • 8页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第一章C语言基础知识一,选择题1答案是AA正确B{}可以作为复合语句的标志Cmain函数不是用户命名的D分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2答案是AA错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。这个题目考察用户标识符3答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。这个题目考察用户标识符的概念。4答案是Bdefine是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5答案是Dlong是关键字,参照附录二注:6--13考察用户标识符概念6答案是DD答案以数字2开头了,不符合标识符定义7答案是CC答案以数字开头了8答案是Dint是关键字9答案是B答案A是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10答案是A答案A出现了小数点 11答案是C答案C以数字开头了12答案是AB答案中float是关键字,C答案中3c以数字3开头了,D答案中-5d中-不属于字母,数字,下划线中一种13答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int是关键字,不是用户标识符14答案是BA答案中15.后面不应该有点,C答案中出现了逗号,D中字母B有问题15答案是DVisualC++6.0中int类型的变量占的字节数为4。16答案是BB中出现了8,而八进制只能有0到7组成17答案是D答案D中开头是0不是o18答案是C答案A中E后面是整数,0.5是小数答案B中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21答案是BB中0.4是小数,不正确22答案是C C中0.5是小数,不正确23答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24答案是D%不能用于实型的计算25答案是DD答案中$不属于字母,数字,下划线26答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1,同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D中E后面必须是整数29答案是C考察的是强制类型转换,正确的是k%(int)f30答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误 33答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35答案是D对于++、--单目运算符来说,其运算对象可以是char型、int型和float型变量36答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137答案是Bc=a/b+0.4c=8/5+0.4c=1+0.4c=1.4因为c是int型的,所以c的值是1,做此题目需要仔细阅读题目38答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39答案是Dlong和short不能相互修饰40答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D中,%(求余运算符)运算对象只能是整形数。42答案是A选项A中,b变量还没有定义43答案是C选项A中long是关键字;选项B中“-”符号不属于字母、数字或下划线;选项D中,int是关键字。44答案是B选项A中,八进制数只能由0—7之间的数字组成;选项C,十六进制数应该以0X开头,并且由0—9以及a—f组成,Oabc不正确;选项D中10,000包含逗号,不正确。 45答案是BC语言的标识符中只能包含字线、数字和下划线,没有连接符。46答案是C既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。这样使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。47答案是D不同的计算机系统或者编译系统,对3种整数类型所占用的字节数有不同的规定。48答案是A选项B中求余运算(%)的运算对象必须是整型;选项C中,赋值运算符(=)的左边必须是变量,不能是常量或表达式;选项D与选项C同理。49答案是A++运算符有前缀和后缀两种形式,本题中的选项C就是前缀形式,其表达式的值为增1后的值,而选项A为后缀形式,其表达式的值为增1之前的值。而选项B和D的表达式都是k加1之后的值50答案是A51答案是C选项A中将一个变量j的值赋给了一个表达式,这种写法是错误的,只能给变量赋值,而不能给常量和表达式赋值;选项B中强制类型转换的格式使用出错,强制类型转换时,类型标识符必须用括号括起来;选项D中,求余运算符(%)的两端必须是整形数。52答案是D字符常量是用单引号括起来的单个字符,所以选项B错误;此外还有一种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如’’’表示一个单引号字符,所以选项D正确;’\’表示一个斜杠字符,而选项C中的’’则是错误的;用“”与其后的1~3位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符;用“x”与其后的1~2位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项A错误。53答案是B字符常量是用单引号括起来的单个字符,所以选项A正确;此外还有一种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如’n’表示一个换行符,所以选项D正确;用“” 与其后的1~3位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符,所以选项B错误,因为9不是八进制数字;用“x”与其后的1~2位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项C正确。54答案是D大写字母的ASCII码值比小写字母的ASCII码值小3255答案是A选项A中的字符变量ch只能接收单个字符,‘ab’不是单个字符,所以错误。56答案是Bcharx=’C’将一个大写字母赋给了字符型变量x;然后通过x=x+32将x中字符的ASCII码值加32,即为小写字符’c’的ASCII码值;然后将x以字符形式输出,即为小写字母c。57答案是A语句charx,y;定义两个字符型变量x,y;然后通过x=’B’-‘A’+’a’将用大写字母B的ASCII码送去大写字母A的ASCII码,结果便为1,然后再加上小写字每a的ASCII码,结果就为小写字母b的ASCII码,然后再赋值给变量x;通过y=x+2,将变量x中的ASCII码值加2,即变成小写字母d的ASCII码值再赋值给变量y;然后以数值形式输出变量x中的ASCII码值为98,再以字符形式输出变量y中的字符为d。58答案是B选项A中字符’0’的ASCII码值为48,所以A的结果不为1;选项B中’’代表空值,空值NULL的ASCII码值为0所以结果为1;选项C中字符’1’的ASCII码值为49,所以结果不为1;选项D相当于用0-48结果也不为1。59答案是D如果要表示十六进制字符,则要用’x’开头,所以选项A错误;如果要表示八进制,则’’开头,后面跟1~3位的八进制数,八进制数由0~7组成,不包含8,所以选项B错误;用单引号括起来的单个字符才是字符常量,所以C错误;而’n’是转义字符,用来表示回车符。60答案是B用单引号括起来的单个字符,称为字符常量,所以选项B错误。61答案是C先将c1变量中的字符的ASCII码值输出,即为65,将变量c2中字符的ASCII码值减2后输出,即为66。62答案是A我们知道异或运算,只有两个操作数不同,结果才为1。所以0^1=1,1^1=0,由此可推理,任何数与1进行异或运算都得它的相反数;变量b中的高4位为1,所以要让变量a的高4位取反,即可让变量a和变量b进行异或运算。 63答案是A变量c1和c2中的值相同,所以转换成二进制数后,对应的二进制位上的值也相同,当两值相同时,只有进行异或运算,结果才为0,所以c1^c2值为0。所以本题的正确答案为A。64答案是A4|3转换成对应的二进制数即100|011=111再转换为十进制数即为7;而4&3转换成对应的二进制数即100&011=000,再转换为十进制数即为0;所以选择A。65答案是Dx/y的值为1,z的值也为1,1和1求反进行与运算,结果一定为0。所以本题选择D。66答案是D2+x=00000010+10100111=10101001;~3=~00000011=11111100;所以就相当于10101001^11111100=01010101,所以选择D。67答案是Da=0x3转换为二进制数即为00000011;b=a|0x8转换为二进制数即为00000011|00001000=00001011即b=11,b<<1即00001011<<1=00010110即c=22,所以本题选择D。二,填空题1位012关键字预定义标识符用户标识符384八十十六5intfloatdouble65+3.6/2=5+1.8=6.871516a++表达式的值是a变化之前的值,当然a本身增加了18把10赋给变量B9123.46(int)(x*100+0.5)/100.0=(int)(12345.67+0.5)/100.0=(int)(12346.17)/100.0=12346/100.0=123.46。103整个表达式是一个逗号表达式,变量n和i赋值为2后,通过++i将i的值增加1变为3,然后再通过i++为i增加1,整个逗号表达式的值为i++的值,此时是后缀,所以整个i++表达式的值为3,而变量i的值为2。1111110111第11题没有详细解析而且答案出错:~x^y<<1=~00000010^00000101<<1=11111101^00001010=11110111122只有’\’和’b’是正确的 13220.000000x=f*=n/=(c=50)是一个赋值表达式,它的顺序是从右向左赋值,先执行c=50,然后执行n/=50即n=n/50=100/50=2,接着执行f*=2即f=f*2=10*2=20.000000,最后再将值赋给变量x。输出变量n和x的值,即为220.000000。14a=14表达式a=(3*5,a+4)的括号中是一个逗号表达式,其结果是最后一个表达式的值,即将a+4=14的值赋给变量a。所以输出结果为a=14。'