程序设计基础(C语言)第3版习题及答案.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《程序设计基础(C语言)第3版习题及答案.docx》由会员分享,可在线阅读,更多相关《程序设计基础(C语言)第3版习题及答案.docx(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章C语言概述【习题1-1简述C语言的特点。答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富; C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址; c语言程序生成代码质量高;C语言适用范围大,可移植性好。【习题2】简述上机调试运行C程序的操作步骤。答:上机运行C语言程序的操作步骤为:启动Visual C+6. Of建立工程f创建源程序文件f输入(编辑)源程序内容一保存源程序文件一编译源程序文件一连接目标程序一执行程序一开始另一个程序。【习题1-3上机运行本章的3个例题。答:略。【习题4】请从以下的4个选项中选择一个正确答案。(1)
2、A (2) A (3) C (4) B【习题1-5】参照本章例题,编写一个C语言程序,输出以下信息:Nice to meet you!编写程序如下:#includevoid main ()(printf (*n);printf (*Nice to meet you!nz,);printf (*ri);第2章基本数据类型和运算符【习题2T】上机编辑并调试本章所有例题。答:略。【习题2-2】下面哪些是合法的常量?200.501213e5.1 E-58e45.0x6amnOKa012a/b答:合法的常量有:200.50128e45.0x6a合法的常量有:OKa012a/b【习题2-3】下面的变量名中
3、哪些是合法的?A&b abcl23 abc% AbC a_b_cint _abc 123abc ab?ca be a*bc a be答:合法的变量名有:abc 123 AbC a_b_c _abc【习题2-4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?(Dint i, j;(2)f loat a, b;(3)int a, b; float a, b;(4)float a, int b;(5)char a;答:错误,因为关键字Int应该全为小写字母正确错,因为同一变量在程序的同一处不应该声明为不同的数据类型错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号错,a表示字符常
4、量,不能用作变量名【习题2-5】把下列数学式子写成C语言表达式。(1)(2)3.26ex+l (a+b)432五十士里3sin(x)mm2(4)27rr+nr2+cos(450 )(5)loan(l + ra/e)w,rt-l对应的C语言表达式分别为:(1)(2)(3)(4)(5)3.26*exp(x)+l.0/3*pow(a+b,4)2*sqrt(x)+(a+b)/(3*sin(x)g*ml*m2/(r*r)2*3.14*r+3.14*r*r+cos(3.14/180*45)1oan*rate*pow(1+ rate, month)/(pow(1+rate, month)-1)【习题2-6】
5、C语言中为什么要引入转义字符?答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上的字符,为了解决这一问题,在C语言中引入了转义字符。【习题2-7】逻辑表达式的值是什么?只能用1和。才能表示真值和假值吗?答:逻辑表达式的值是一个逻辑量“真”或者“假”,不是只有用1表示真值,用0表示假值,在判断一个量为真假时,常以。表示假,以非。表示真。【习题2-8对于表达式(l+2)*(y=3),可以肯定(1+2)
6、先计算,而(y=3)后计算吗?答:不能。【习题2-9&”和“II ”严格地执行运算符优先级的规则吗?它的规则是什么?答:逻辑运算符不按照规定的优先级计算。在逻辑表达式的求值过程中,如果从“&”或“ II ”左边的运算对象部分已经能够确定整个逻辑发达式的值,则不再求右边运算对象的值,这样做提高了运算速度。具体地说:若“&”的左运算对象值为0,则不再对右运算对象求值,因整个式子的结果必定为0若“II ”的左运算对象值为非0,则不再对右运算对象求值,因整个式子的结果必定为1。以上所说的这种运算的规则是C对逻辑运算的特殊处理规则。它严格地执行从左到右运算的规则,不受运算符优先级所影响。【习题2-10】
7、字符常量和字符串常量有什么区别?答:字符常量和字符串常量的区别:从形式上看,字符常量使用单引号,而字符串常量使用双引号。从内部存储来看,编译程序在每个字符串的尾部自动加上了一个空字符NULL(即0)作为字符串的结束标志,而字符常量则不存在这种情况。【习题2-11将下面语句组进行简写。(Dint i;int j; x=0;y=0;(3)x=x+y;(4)int x, y;x=y-(y/10)*10;(5)int x;x=x+l;(6)y=x;-x;对应的简写语句分别为:(1) int a, b;(2) x=y=0;(3) x+=y;(4) int x, y;x=y%10;(5) int x;x+
8、;或 x+=l;或+x;(6) y=x-;【习题2-12写出下面程序运行后的结果。程序运行结果:2,3程序运行结果:y=5.000000程序运行结果:chl=65, ch2=97B,b(4)程序运行结果:0,48程序运行结果:0221(6)程序运行结果: a, A,32,32程序运行结果:01,60,15,15(8)程序运行结果:2,2,11,2,10,2,2-1,2,2程序运行结果:324(10)程序运行结果:323,343,4,40第3章顺序和选择结构程序设计【习题3-1】请从以下的4个选项中选择1个正确答案。1 .结构化程序设计的三种基本结构是()oA.函数结构、判断结构、选择结构B.平
9、行结构、嵌套结构、函数结构C.顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构【正确答案】C2 . putchar()函数可以向终端输出一个()。A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值【正确答案】D3 .若已定义double y;拟从键盘输入一个值赋给变量y,则正确的函数调用是()。A. scanf (%d,&y);C. scanf (“%lf”,&y);【正确答案】C4.若有以下定义:float x; int a,A. switch(x) case 1.0:printf C*n*); case 2: printf(*n)C. switch(a+b)
10、case 1: printf(*n); case 2: printf(*n);B. scanf( 7.2f,&y);D. scanf ( “ld”,&y):b;则正确的switch语句是()。8. switch(x) case 1, 2:printf(*n); case 3:printf(*n);)D. switch(ab); case 1:printf(*n); case 2:printf(*n);)组成配对关系【正确答案】C5.为了避免嵌套的if-else语句的二义性,C语言规定else总是与(A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前尚未配对的最近的if D.同一行上的i
11、f【正确答案】B【习题3-2】 if语句有那3种形式,请分别画出每种形式的执行流程图。【参考答案】(1)顺序结构(2)选择结构(3)循环结构(当型循环)循环结构(直到型循环)【习题3-3】下面哪些语句是合法的?(1) if (a=b)printf (Hello);(2) if(a=b)printf (*Hello*)(3) if(a=b)printf (*Hello*)elseprintf(Goodbye);(4) if a=bprintf CHello*);【正确答案】(1)合法。(2)不合法。(3)不合法。(4)不合法。【习题3-4】读程序写结果。(1)从键盘输入58#includevoi
12、d main()(int a;scanf&a);if (a50) printf(A=%d, a);if(a40) printf(B=%d, a); if(a30) printf(C=%d, a);答案:A=58 B=58 C=58(2)#includevoid main()(int x=10, y=20, t=0;if(x=y) t=x;x=y;y=t;printf (*%d,%d n”, x, y);答案:20(3)#includevoid main()(int p, a=5;if(p=a!=0)printf(%dn, p);elseprintf (%dn”, p+2);答案:1(4)#in
13、clude void main()(int a=4, b3, c=5, t0 jif (ab)t=a;a=b;b=t;if (ac)t=a;a=c;c=t;printf (%d %d %dn”, a, b, c);)答案:534(5)#includevoid main()(int i, m=0, n=0, k=0;for(i=9;i=ll;i+) switch(i/10) case 0: m+; n+; break; case 10: n+;break; default: k+;n+;printf (*%d %d %dn*, m, n, k);)答案:132(6)#includevoid ma
14、in()int n=0, m=l, x=2;if(!n) x-=l;if(m) x-=2;if(x) x-=3;printf(%dn, x);答案:-4(7)#includevoid main()(int x=l, y=0, a=0, b=0; switch(x) case 1:switch(y) case 0:a+; break; case 1:b+; break;case 2:a+;b+; break;printf(%d %dn”, a, b);)答案:21(8)#includevoid main()int a=3, b=4, c=5, t=99;if(ba&ac)t=a;a=c;c=t;
15、if(ac&bc)t=b;b=a;a=t; printf (/z%d %d %dn*, a, b, c);)答案:435(9)#includevoid main()(int n=c;switch(n+) default: printf(error);break;case a:case A: case b:case B: printf (good); break;case c:case C:printf(pass);case d :case D :printf(warn);答案:passwarn【习题3-5有如下if条件语句:if(ab) if(cd)x=l;else if(ac)if(bd)x
16、=2;else x=3; else if(cd)x=4;else x=5;试按缩进对齐的格式将以上语句改写为结构更清晰的等效if语句,并在每个条件表达 式之后用逻辑表达式注释所满足的条件。【正确答案】if(ab)(if(cd) x=l;else if(ac) if(bd) x=2;else x=3;)else if(cd) x=4;elsex=5;/*ab*/*(ab)&(cd)*/* (ab)&(ac)*/*(ab)&(ac)&(bd)*/*(ab)&(a=d)*/(a=b)&(c=b)&(c=d)*/【习题3-6】有两个程序段:(1) if(ab)(2) if(ab)if(c=d) x=l
17、;else x=2;if(c=d)x=l;else x=2;它们所表示的逻辑关系是下列所示关系中的哪一个? r 1 ab 且 c=d 厂1 ab且c=d2 a2b 且 cKdX= YJ 2 ab 且 cKdab 且 c=da2bab 且 c=dcWd答案:(1)所表示的是3,(2)所表示的是2【习题3-7】写一程序,从键盘上输入1年份year (4位十进制数),判断其是否闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。程序如下:/*c3_7. c*/#include stdio. hvoid mainO(int year;scanf(%d”, feyear);if(ye
18、ar%400=0|(year%4=0&year%100!=0) printf (/z%d is a leap yearn/z, year);else printf (%d is not a leap yearnz, year);)【习题3-8】设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。程序如下:/*c3_8. c*/#includevoid main()(int a, b, c;if(ab)t=a; a=b; b=t; if(ac)t=a; a=c; c=t;printf(%d %d %drT, a, b, c);)【习题3-9】编程序计算下面的函数:e77-!0xly=3|x|
19、+23Wx4I sin(x2)当x取其他值时程序如下:/*c39. c*/include ttinclude void main()(float x, y;printf (输入 x:);scanf&x);if(x0&x=3&x=4)/*若3WxW4*/y=fabs(x)+2;else/*若 xN10*/y=sin(x*x);printfIf, y=%.2fn”, x, y);【习题3-10编程序计算下面的分段函数:输入x值,求下列相应y值。-1(xl)y= y 2x+l (IWxWlO)I 3x+2(x10)分析:对于分段函数,往往采用多路分支选择语句实现。程序如下:/c3_10. c*/#i
20、nclude void main()( int x, y;printf (输入 x:);scanf&x);if(xl)/*若 xl*/(y=x;printf (*x=%3d, y=x=%dn”, x, y);)else if(x=10)/*若 IWxWlO*/ y=2*x+l; printf(x或3d, y=2*x+l=%dn”, x, y);)else/*若 x210*/y=3*x+2; printf(x或3d, y=3*x+2=%dn”, x, y):)【习题3-11】输入一个整数m,判断它能否被3、13、17整除,如果能被三个数之一整除,则输出它能被整除的信息,否则输出m不能被3、13、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 语言 习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内