ImageVerifierCode 换一换
格式:DOCX , 页数:76 ,大小:45.17KB ,
资源ID:12001397      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12001397.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(复习解析加练习.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

复习解析加练习.docx

1、复习解析加练习第一章复习 p61.以下叙述正确的是_。 A) C语言比其他语言高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现得最晚,具有其他语言的一切优点答案:C解析:本题考查了C语言的发展和特点。首先,C语言是中级语言,说它比其他语言都要高级是不正确的,所以A选项错误。其次,_个C源程序需要经过编译,连接后才可以执行,所以B选项错误。而C语言之后又出现了Java等更新更高级的语言,所以D选项明显也是错误的。所以答案选C。2.在一个C语言程序中_。 A) main函数必须出现在所有函数之前 B) main函

2、数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置答案:B解析:本题i要考查了void main()函数在程序中的位置. void main()函数在程序中的位置是任意的,所以答案选B。3.以下叙述中正确的是_. A) C程序中注释部分可以出现在程序中任意合适的地方 B) 花括号和只能作为函数体的定界符 C) 构成C程序的基本单位是函数,所有函数名都可以由用户命名 D) 分号是C语句之间的分隔符,不是语句的一部分答案:A解析:本题考查了C程序的构成,A选项显然是正确的,因为只要用/*和*/括起来的部分,C程序就认为是注释,编译时会直接跳过,不会

3、影响源程序。花括号和不仅能作为函数体的界定符,它还能作为复合语句的界定符,所以B选项错误。用户虽然可以对函数命名,但是C程序中的库函数的名称是固定的,用户不能对这些函数进行命名,所以C选项错误.一个语句如果没有分号,它就不能构成一个语句,分号是语句的一部分,所以D选项错误。所以答案选A.4. 以下叙述中正确的是_. A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译答案:B解析:C程序从编写到运行需要经过编译和连接后才能生成可执行的文件,所以A选

4、项中说C语言不经过编译便能运行的说法是明显错误的。而编译出的二进制编码不经过连接程序与库函数连接起来,是不可能生成可执行文件的,所以C选项错误。而C语言中函数是可以单独进行编译的,所以D选项错误。所以答案选B.5. 以下不能定义为用户标识符的是_. A)Main B) _0 C) _int D)sizeof答案:D解析:本题i要考查标识符的定义规则,标识符应满足:所有标识符必须由一个字母(az,AZ)或下划线(_)开头;标识符的其他部分可以用字母,下划线或数字(09)组成:大小写字母表示不同意义,即代表不同的标识符;标识符只有前32个字符有效:标识符不能使用C语言的关键词.A,B,C都满足要求

5、,而D选项的sizeof是一个关键字,用来计算表达式和类型的字节数,它不能用作标识符。所以答案选D.第一章 练习题一. 选择题1.能将高级语言编写的源程序转换为目标程序的是_。 A)链接程序 B)解释程序 C)编译程序 D)编辑程序C2.以下叙述中正确的是_。 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) void main()函数必须放在其他函数之前 D) 所有被调用的函数一定要在调用之前进行定义A3.一个C程序的执行是从_。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的m

6、ain函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束A4.一个C语言程序是由_。 A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成B5.以下叙述正确的是_。 A) 在C程序中,main函数必须位于程序的最前面 B) C程序的每行中只能写一条语句 C) C语言本身没有输入输出语句 D) 在对一个C程序进行编译的过程中,可以发现注释中的拼写错误C二,填空题1. 在一个C源程序中,注释部分两侧的分界符分别为_和_。/* */2. 一个C源程序中至少应包括一个_。主程序3. 在C语言中,格式输入操作是由库函

7、数_完成的,格式输出操作是由库函数_完成的。scanf() , printf()4. C源程序的基本单位是_。函数/26第二章 复习1.下列叙述中正确的是_. A) C语言中既有逻辑类型也有集合类型 B) C语言中没有逻辑类型但有集合类型 C) C语言中有逻辑类型但没有集合类型 D) C语言中既没有逻辑类型也没有集合类型答案:D解析:本题考查C语言中的数据类型,C语言中有字符型,整型,实型,构造类型,指针类型和空类型等。C语言中没有逻辑类型和集合类型,所以选D选项。2.以下符合C语言语法的实型常量是_. A)1.2E0.5 B)3.14.159E C).5E-3 D)E15答案:C解析:本题考

8、查C语言常量中的实型常量的指数形式。字母E或e之前之后必须有数宇,且E或e后面指数必须为整数. A选项中e后面的数字是小数,所以错误. B选项e后面没确数字,所以也是错误的. D选项e前面没有数字,是错误的. C选项符合规则,所以答案选C.3. 若有以下程序: void main() char a; a=H-A+0; printf(%cn,a); 执行后输出结果是_。 答案:74. 有以下程序: void main() int m=12,n=34; printf(%d%d,m+,+n); printf(%d%dn,n+,+m); 程序运行后的输出结果是_。 A)12353514 B)12353

9、513 C)12343514 D)12343513答案:A解析:本题考查的是自增自减运算的用法。注意以下规则:+i,i自增1后再参与其他运算。-i,i自减1后再参与其他运算. i+,i参与运算后,i的值再自增1; i-,i参与运算后,i的值再自减1.分析此题,m+,先显示m,为12:再自增,m变成13;+n,先自增,n变为35,再显示,为35。然后n+,n先显示,为35:再自增,n变成36。+m,m先自增,变成14,再显示,为14.所以最后显示为12353514,所以答案选A.5. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10 的是_. A)abs(x-y)-10 & x

10、-y10 C)(x-y)10 D)(x-y)*(x-y)100答案:C本题考查了关系表达式与逻辑表达式的用法。选项A中abs是求整数绝对值的库函数,显然这种表示是直接按照题意来的,所以A选项正确. |x-y|10相当于-10x-y10, 在C语言中要表示这个数学关系,就要靠B这种逻辑表达式来表示,所以B选项也是正确的。而利用基本的数学知识我们也可以很容易知道D选项是正确的。而在C选项中,要满足题意的话,x-y-10时,整个逻辑表达式结果应为假,即为0,因为x-y-10成立时,绝对值已经大于10了. 而C项中,假如x-y-10,表达式中第一部分就为真,值为1,经过或运算,显然表达式结果为1,与题

11、意相违背,所以C选项是不能表达题中关系的,所以选C.6.以下程序运行后的输出结果是_. void main() int a,b,c; a=1O; b=20; c=(a%b1); printf(%d%d%dn,a,b,c); 答案:10 20 0解析:本题考查的是算数表达式和逻辑表达式的用法,同时考察了基本的优先级关系。这道题c=(a%b1)中,首先应算出括号中表达式的值. a%d=10%20,值为10,101,所以a%b1值为0. 根据逻辑或的用法,可得(a%b1)=0,则c=0. 所以答案就为10 20 0。7. 已有定义: int x=3,y=4,z=5; 则表达式!(x+y)+z-1 &

12、 y+z/2的值是_. A)6 B)0 C)2 D)1答案:D解析:本题考查C语言中的优先级问题。本题表达式!(x+y)+z-1 & y+z/2 中运算符的优先级由高到低为(),!,/,+,-,&, 因此计算时,先计算x+y=7, 然后计算!7, 为0, 0+z-1=4, y+z/2=4+2=6:最后4 & 6=1,所以答案选D。1.若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是_。 A)(exp=0) B)(exp!=0) C)(exp=1) D)(exp!=1)B2.设以下变量均为int类型,则值不等于7的表达式是_. A)(x=y=6,x+y,x+1

13、) B)(x=y=6,x+y,y+1) C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)C3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为_. A)O255 B)032767 C)065535 D)02147483647C4.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是_. A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0

14、B5.sizeof(float)是_。 A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式B6.设有说明:char w; int x; float y;double z; 则表达式w*x+z-y值的数据类型为_; A)float B)char C)int D)doubleD7.语句printf(abrehiyboun);的输出结果是_。(说明:b是退格符) A)abrehiybou B)abrehiybou C)rehiyou D)abrehiybouC8.下列程序的输出结果是_ 。 void main() double d=3.2; int x,y; x=1

15、.2; y=(x+3.8)/5.0; printf(%d n,d*y); A)3 B)3.2 C)0 D)3.07C9.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6-3后,c2的值为 _。 A)D B)68 C)不确定的值 D)CA10.以下不正确的叙述是_。 A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值D11.有以下程序: void main() in

16、t a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=a+b); printf(%d,%dn,k,m); 程序运行后的输出结果是_ 。 A)0,0 B)0,1 C)1,0 D)1,112.假定w,x,y,z,m 均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(wx)?w:x; m=(my)?m:y; m=(mbC); printf(%dn,d); 8.int x=3,y=2; floata=2.5,b=3.5:则表达式(x+y)%2+(int)a/(int)b的值为_. 19.以下程序的输出结果是_。 2,1 void main() int a=1,

17、 b=2; a=a+b; b=a-b; a=a-b; printf(%d,%dn,a,b); /41第三章 复习1.有以下语句段: int n1=10,n2=20; printf(_,n1,n2); 要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空. n1=10 n2=20 答案:n1=%dnn2=%d 解析:考察printf()函数的使用以及转义字符的用法。2. 若有以下下程序段: int m=0xabc,n=0xabc; m-=n; printf(%xn,m); 执行后输出结果是_。 A)0X0 B)0x0 C)0 D)0XABC 答案:C 解析:以0x开头表示十六进制的整

18、型常量,在使用函数printf()输出十六进制常量时不会输出0x前缀。所以C选项正确。3.有以下程序段: int m=0,n=0; char c=a; scanf(%d%c%d,&m,&c,&n); printf(%d,%C,%dn,m,c,n); 若从键盘上输入:10A1O,则输出结果是 _. A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0 答案:A解析:在有多个输入项时,且格式控制字符全是同数据类型的格式说明符时,只能用空格,跳格键或回车作为分隔符。但假如数据类型不同,则不需要以这些分隔符作区分。从键盘上输入的第一个数据10存入整型变量m,字符A存入字符变量c,

19、第二个10存入整型变量n,所以选项A正确。4.有以下程序: void main() int m,n,p; scanf(m=%dn=%dp=%d,&m,&n,&p); printf(%d%d%dn,m,n,p); 若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是_。 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 答案:A解析:本题i要考查了scanf和printf的用法。在输入数据时,双引号中的部分其类型与个数必须与控制字符串中格式字符的类型,个数一致

20、。同时注意这里的m=,n=,p=是非格式控制字符,在输入数据时应输入与这些字符相同的字符。所以答案选A.5.以下程序运行时若从键盘输入:10 20 30,输出结果是_. #include void main() int i=0,j=0,k=0; scanf(%d%*d%d,&i,&j,&k); printf(%d%d%dn,i,i,k); 答案:10300 解析:本题考查的是输入函数中格式说明符的用法。本题最重要的是弄清楚*的作用。*表示按规定格式输入但不赋予相应变量,作用是跳过相应的数据。这样很明显,当输入到20时,由于*的作用,20被跳过。于是30赋给j,而k的值不变。所以答案为10300

21、。6.有以下程序: void main() int x=102,y=012; printf(%2d,%2dn,x,y); 执行后输出结果是 ,。 A)10,01 B)002,12 C)102,10 D)02,10答案:C 解析:本题i要考查输出函数格式说明符的用法。在输出说明符中,可以用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则左端补以空格或0. 本题首先要把012化为十进制数,即为10,然后根据上述规则,102多于定义的宽度,按实际位数输出,为102;而10刚好是2位,所以也可以显示。所以最后结果显示102,100所以答案选C./p

22、43一,选择题1.下列程序执行后的输出结果是 _. void main() char x=0xFFFF; printf(%d n,x-); A)-32767 B)FFFE C)-1 D)-32768C2.若有以下程序段(n所赋的是八进制数): int m=32767,n=032767; printf(%d,%o/n,m,n); 执行后输出结果是_。 A)32767,32767 B)32767,032767 C)32767,77777 D)32767,077777A3.有以下程序: #include void main() printf(%dn,NULL); 程序运行后的输出结果是_. A)0 B)1 C)-1 D)NULL没定义,出错A4.若变量已正确说明为float类型,要通过语句scanf(%f%f%f,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是_. A)10 22 33 B)10.0, 22.0, 33.0 C)10.0 22.0 33.0 D)10 22 33B 5.以下程序段的输出结果是_. int a=1234; printf(%2dn,a); A)12 B)34 C)1234 D)提示出错C 6.设有如下程序段: int x=2002, y=2003; printf(%dn,(x,y

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1