二级c语言习题答案及解析 第二章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章顺序结构

一选择题

1,答案是C

考点:空语句

空语句表示程序在执行时不产生任何动作,但是随意使用空语句会导致逻辑上出现错误,慎重使用。

2,答案是B

考点:语句

语句必须以分号结尾,A,C,D表达式后面均没有分号,所以不能构成语句。

3,答案是C

考点:输出语句和算术表达式

int x=13,y=4;说明x,y均为整型,所以x/y只取整数部分(舍去法),值为3,

把3赋值给x,整个x=x/y表达式的值为左边变量x的值,所以x为3输出时以%d,带符号的十进制输出数据。

注意:整数除以整数,结果仍然为整数。

4,答案是A

a,b均为整型,a/b是取a÷b所得商的整数部分,所以是0,再把0赋值给

c,所以是c的值是0。

注意:整数除以整数,结果仍然为整数。

5,答案是D

考点:注释、变量、数据输入和输出

注释部分必须用“/*”开头和用“*/”结束,其中“/”、“*”之间不能有其他符号,也不能是空格键。计算机不对注释部分进行编译,即注释不对C语言程序产生任何影响,可以在任何能插入空格符的地方插入注释。但是注释不能嵌套使用,例如:/*12212/*1221*/22*/

变量要先定义后使用。并且要满足用户标识符的命名规则。

A 本题中没有“/*”和“*/”,所以没有注释。故A答案错误。

B 将r定义为整型不会在编译时出错,会自动进行类型转换,自动将表达式的值计算后转换成赋值号左边的类型的值后再赋值。所以变量r是整型是正确的。

C 变量s为浮点型,即小数,输出时以%f输出是正确的。

D π是非法的变量

D 本选项中出现了p,p是一个变量,那么变量要先定义后使用,这里是先使用,后定义。

6,答案是D

考点:逗号运算符

格式为:表达式1,表达式2,表达式3………,表达式n

逗号运算符也称为顺序求值表达式,整个都好运算表达式的值为表达式n的值,(最后一个表达式的值),计算方法是先算左边表达式的值,再算后的,从左至右依次计算。逗号运算符是优先级别最低的运算符。

(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数和输出项的个数是相等的。并且逗号表达式的值为最后一个表达式的值,最后一个表达式是y=2003,所以整个表达式的值

是2003,因此输出值为2003。

注意:逗号表达式在计算时必须是从左至右一次计算。

7,答案是A

考点:数据输出

格式字符

说明

控制以带符号(即有正数和负数)的十进制形式输入输出一个整数,其中不输出正号。i格式在输入时也可以是带前导符的八进制整数或十六进制整数。

u

控制以无符号(即只有正数)的十进制形式输入输出一个整数。

控制以无符号的八进制形式输入输出一个整数,输出时无前导符0,输入时前导符0可有可无。

x或X

控制以无符号的十六进制形式输入输出整数,输入时无前导符0x(或0X),并且小写x对应小写a,b,c,d,e,f,大写X对应大写A,B,C,D,E,F。输入时前导符0x(或0X)可有可无,并且不区分大小写。

控制以字符形式输入输出一个字符,输出时无字符定界符(即无单引号),输入时字符不能加定界符。

控制以字符串形式输入输出一个字符串,输出时不输出字符串定界符(即无双引号),输入时从第一个非空白字符开始接收,并以接收过程中碰到的第一个空白字符(包括空格、回车符)结束,输入时字符串不能加定界符。输出时可以输出空白字符。

m是十进制整数以十进制有符号的形式输出,即照原样输32767,n=032767,032767以0开

始,是一个八进制数字,输出时不输出前导符0;故输出的结果为32767.

8,答案是C

考点:数据输出

m,n的值都是十六进制数0xabc,m-=n即:m=m-n, 把m-n的值赋给m,即把0x0赋给m,再把m值以十六进制无符号的形式输出,输出的十六进制数不用在前面0x或者0X。故输出的结果为0;

9,答案是B

考点:变量的自加自检运算和输出语句

变量的自加自减:变量在原来的基础上加一或者是减一。表达式:如果运算符在变量的后面,则表达式的值为变量原来的值;如果运算符在变量的前面,则表达式的值为变量后来的值。表达式i--,变量的值为9,表达式的值为变量原来的值,即为10,++j结果计算之后,变量的值为2,运算符在变量的前面,所以表达式的值是变量后来的值,即为2,最后将这两个变大时的值输出,即为10,2,注意两个%d之间有一个逗号,这个逗号为普通字符,在输出时要原样输出。

10,答案是C

考点:数值的转换和数据输出

%d:输出的是带符号的十进制整数。

printf函数在输出的时候,如果数据的类型不相同的时候,将自动将数据转换成相同类型之后再输出。m=0256,即m是八进制的数0256,要以八进制无符号的形式输出,即输出256;n=256,即n是十进制的数256,也要以八进制无符号的形式输出,首先要把十进制数转化为八进制数,256转化为八进制为0400,不输出数据的前导符0,即输出400。

11,答案是B

考点:printf函数的输出格式

当输出项的个数多余格式控制符的个数时,多余的输出项不输出数据。

在printf语句中,格式控制的个数只有一个,即%d,而输出项有两项,即a和b。即顺序输出数据,首先输出a的值,在输出b的值,但是此时没有输出b的格式控制符,故没有输出b的值,所以最终的输出结果为:666.

12,答案是C

考点:数据的输出。

第一个数据的输出控制宽度是2位,但是x的值是102,占3位,要输出的数据宽度大于规定的输出宽度,所以按数据的实际宽度输出,输出102。第二个数012,代表的是一个八进制数字,输出时以%d输出,即以十进制整数的形式输出数据,将012转换成十进制整数位:10,输出时% 和d之间的数字,代表输出的数据占有两个宽度。10占有2个宽度,所以输出的结果为:10。所以最后的结果为:C。

13, 答案是B

考点:数据输出符合赋值表达式数据的定义

复合赋值表达式:优先级2,结合方向:自右向左。

表达式a=f/=c*=(x=6.5),按从右到左结合,先把6.5赋值给x,再执行c=c*6.5,c的值变为

相关文档
最新文档