二级c语言习题答案及解析 第二章.docx_第1页
二级c语言习题答案及解析 第二章.docx_第2页
二级c语言习题答案及解析 第二章.docx_第3页
二级c语言习题答案及解析 第二章.docx_第4页
二级c语言习题答案及解析 第二章.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 顺序结构一 选择题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, 答案是 Aa,b均为整型,a/b是取ab所得商的整数部分,所以是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,结合方向:自右向左。表达式af/=c*=(x=6.5),按从右到左结合,先把6.5赋值给x,再执行cc*6.5,c的值变为65,再执行ff/65,为浮点数的除法,f的值为1.53,再把f的值赋给a,a为整型数据,执行强制类型转换,a的值为1。a对应的输出格式为d,即输出1;c对应的输出格式为d,输出65,f对应的输出格式3.1f,即输出控制宽度为3位,保留小数点后一位小数,并对第二位小数进行四舍五入,即输出1.5,x对应的输出格式也为3.1f,输出6.5。14 , 答案是 B考点:数据输出数据在输出时:格式控制符和其所输出的数据的类型必须相同,否则不能正确输出数据。float x=-123.456;说明x为实型数据,实型数据对应的输出格式应该为f。故选答案D。15, 答案是 C考点:复合赋值表达式m=(k+=i*=k);按从右到左结合,先执行i=i*k;即i被赋值为4,再执行kk4;k被赋值为6,最后把6赋给m,输出m和i的值。16, 答案是 C考点:数据输出%d之间的数字,代表的是输出数据时占有的宽带,当数据的宽度大于指定的宽度时,原样输出,当小于数据的实际宽度时,如果是大于0的整数,输出时以右对齐的方式输出,如果小于0,则以左对齐的方式输出。本题中,1234占有4个宽度,而指定的宽度为2,所以按照原样输出数据,所以得到的结果为:C17, 答案是 D考点:数据输出、自加和自减自加和自减运算符为14号优先级,结合方向:自右向左。m遵循从右向左结合的原则;m的值为m自增之前的值,所以执行完xm以后,x被赋值为3;表达式xx8/+n中有加号除号,先算8/+n,+n的值为自增之后的值为5,8/5取整为1,即xx8/+n转化为xx1,即把x1的值赋给x,x的值变为2。18, 答案是 D考点:数据输入数据输入的格式:scanf(“格式控制”,地址列表);A 输入函数应为scanf();没有read函数。B,C 输入数据列表必须是地址表达式;x,y,z变量之前都要加上&。19, 答案是 A考点:数据输入数据输入的格式:scanf(“格式控制”,地址列表);按格式控制指定的格式从键盘上输入数据。输入的格式是从格式控制的左边往右边依序输入,其中需将格式说明换成对应的数据而其它内容原样输入。scanf(“m=%dn=%dp=%d”,&m,&n,&p);其中的m= 、n=、p=为普通字符,所以在输入的时候要原样输入。B答案三个之间不要有空格;C答案用逗号分开是多余的; D答案格式不匹配。20, 答案是 A考点:数据输入数据输入的格式:scanf(“格式控制”,地址列表);按格式控制指定的格式从键盘上输入数据。输入的格式是从格式控制的左边往右边依序输入,其中需将格式说明换成对应的数据而其它内容原样输入。本题中两个%d之间有一个逗号,那么在输入的时候必须有逗号,否则不能正确接收数据,本题选项中A答案中没有逗号,所以A答案不能正确接收数据。21, 答案是 C考点:强制类型转换格式为:(类型名)(表达式)x乘以100是为了把x小数点后的两位小数变为整数,再加上0.5,如果小数点后一位大于等于5则会进一位,如果小数点后一位小于5则不会出现进位的情况,再对其进行强制类型转换,采用舍去法丢掉小数部分,即对x乘上100后的数实现了小数位到整数位的四舍五入。最后再除以100.0,把数字变回原来的大小,整数与浮点数相除结果为浮点数,即实现了要求。22, 答案是 C数据输入的格式:scanf(“格式控制”,地址列表);按格式控制指定的格式从键盘上输入数据。输入的格式是从格式控制的左边往右边依序输入,其中需将格式说明换成对应的数据而其它内容原样输入。输入的数据之间有逗号,所以说明输入的数据之间必须有逗号,A答案中没有逗号,所以A、B答案不正确,在输入时候没有输入i=,所以D答案不正确。23, 答案是 B考点:数据输入%d和%f读入数据时,从第一个数字开始,直到不是数字为止。当%和d或者f之间有数字是,那么在读书数据的时候只读指定的位数。输入控制中第一个数要求以“2d”形式输入,即要求输入一个两位的数,而从键盘输入的数为876,所以从左到右取两位数字87,即把87赋值给整型变量a,余下的6再赋值给浮点型变量b,自动进行类型转换,b的值为6.000000,后面输入的543则没有赋值给变量。24, 答案是 D考点:数据输入连续的“”输出一个“”,m=和n=是普通变量,应该是原样输出,连续的两个%输出的是一个%,所以首先输出的是一个%,即没有%和d字母配对,所以d字母接着输出。即为:m=%d,n=%d;25、答案是D考点:数据输入 当输出项的个数大于格式控制符的个数时,多余的项不输出,printf(“%c,%d”,ch,ch,k);printf(“k=%d”,k);第一个printf的中只输出前面的两个变量,后面的第三个不输出。所以输出的结果为:a,97。第二个printf中的输出结果为:k=12;所以最后的结果为:D。26、答案是B考点:数据输出数据在输出时输出的结果中的普通字符,原样输出,格式控制符用输出项的值替换。所以本题中将a+b的值替换%d,所以最后的结果是a+b=30;27、答案是 C考点:数据输出printf(“格式控制”,输出项列表);其中的输出列表可以省略。getchar()在小括号中没有任何参数但不能省略小括号,函数返回值就是输入的字符。putchar()在小括号中有一个整型或字符型参数,函数返回值就是输出的字符。getchar()函数可以接收从键盘上输入的任何字符包括回车符、空格符、制表位符(这三个字符称为空白字符)等。该函数将输入的数据均当作字符处理,并且只接收当前的一个字符。putchar和getchar函数主要是输出和获得一个字符。在使用时可以不用头文件。故B答案不正确;如果输入的数据为:65,则得到的只是6。不是A所以D不正确。故最后选择C答案。28、答案为A考点:getchar和putchar函数。getchar函数时从键盘中接受一个字符,在输出时不输出字符的定界符:双引号。当输入的是a后c1得到的字符为:a,c2变量得到的是回车符,所以变量c2中的字符为回车符,所以最后输出时,c1,c2的值分别为:a,回车;二 填空题1, 一条语句 分号复合语句在语法上称为一条语句,在花括号中可以有多条语句,每一条语句都必须有一个分号,分号是语句结束的标识。2, 88int x=0210,这是一个八进制数,在输出的时候是%x,输出的是一个十六进制数,首先将八进制数转换成十进制数,再将十进制数转换成十六进制数。0210转换成十进制数为:136,将136转换成16进制数为88.3, 11把十进制数转化为八进制数,以无符号的形式输出4, 25 21 37 b为八进制数025,c为十六进制数0X25,首先把b、c都转化为十进制的整数,分别为21、37,按照输出格式要求a、b、c以十进制整数形式输出,中间以空格分开,所以输出为25 21 37。5, n1%dnn2=%d除了n1,n2的值之外,还必须加入“n1”“n2”照原样输出的字符,很明显在两个数据之间还加了换行符。6, i=10,j=20格式控制中加入了格式说明以外的其他字符,则在输入数据时这些字符也要同样输入。输入格式控制为i=%d,j=%d,输入的时候要用数值代替了原来的呢个格式控制符。所以则应该从键盘输入i=10,j=207, 261a为十进制数177,在输出的时候是%o,为八进制数字,所以首先将177转换为八进制数字,在输出,将177转换成八进制数为261。8 16a的初值为0,在表达式a+=(a=8)中,先算小括号中的值,再算复合赋值表达式的值,a首先被赋值为8,再执行操作a=aa,所以a最后被赋值为16,即输出a的值为16。9、 printf(“a=%d,b=%d”,a,b);Printf函数在输出数据时,必须严格按照要求,普通字符原样输出,格式控制符用输出列表中的值进行替换。其中的%

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论