
c程序设计基础答案(第3版)_周霭如_林伟健编着.pdf
137页习题1 及其解答1.1 选择题L-个最简单的C+程序,可以只有一个(c )(a)库函数(b)自定义函数(c)m a i n函数(d)空函数2 .用C+语言编制的源程序要变为目标程序必须要经过(d)a)解释(b)汇编(c)编辑(d)编译3 .C+程序中的简单语句必须以(b)结束a)冒号(b)分号(c)空格(d)花括号4.有说明i n t a=0;do ubl e x=5.1 6;以下语句中,(c )属于编译错误a)x=a/x;(b)x=x/a;(c)a=a%x;(d)x=x*a;5 .执行C+程序时出现的“溢出”错误属于(c )错误a)编译(b)连接 运 行 (d)逻辑6.下列选项中,全部都是C+关键字的选项为(c )a)wh i l e IF Sta ti c (b)br e a k c h a r g o(c)s i ze o f c a s e e xte r n (d)s wi tc h f l o a t i n te g e r7 .按C+标识符的语法规定,合法的标识符是(a八(a)_ a bc (b)n e w(c)n(d)a g e 8 .C+语句中,两个标识符之间(a )不熊作为C+的分隔符。
a)数字(b);(C):(d)+9.下列正确的八进制整型常量表示是(b)a)Oa O(b)0 1 5(c)0 8 0(d)0 x1 01 0.下列错误的十六进制整型常量表示是(C )O(a)0 x1 1 (b)Oxa f(c)Oxg(d)Oxl f11.在下列选项中,全部都合法的浮点型数据的选项为(b)o(a)-l e 3.5 1 5.2 e-4 (b)1 2.3 4 -l e+5 0.IE-1 2(c)0.2 e-2 -1 2 3 4 5.e-5 (d)5.0 e(l+4)0.1 8 e+21 2 .下列正确的字符常量为(d)o(a)a (b)n a m e (c)a (d)1 0 1 1 3 .下列选项中,(d)不凿交换变量a和b的值a)t=b;b=a;a=t;(b)a=a+b;b=a-b;a=a-b;(c)t=a;a=b;b=t;(d)a=b;b=a;1 4 .关于下列语句叙述错误的是(a )oi n t i=1 0,*p=&i;(a)p的值为1 0 (b)p指向整型变量i(c)*p表示变量i的值(d)p的值是变量i的地址1 5 .有以下变量说明,下面不事硼的赋值语句是(b)i n t a=5,b=1 0,c;i n t*p l =&a,*p 2 =&b;(a)*p 2 =b;(b)p l =a ;(c)p 2 =p l ;(d)c =*p l *(*p 2 )1 6.有以卜变量说明,下面正确的语句是(b)i n t a=1 0,b;i n t&p a=a,&p b=b;(a)&p b=a;(b)p b=p a;(c)p b=&p a;(d)*p b=*p a;1 7 .执行下面语句序列后,a 和b的值分别为(b)。
i n t a =5 ,b=3 ,t;i n t&r a =a ;i n t&r b=b;t=r a ;r a =r b;r b=t;(a)3 和3 (b)3 和51 8 .在下列运算符中,(d)优先级最高c)5 和3(d)5 和5(a)=(b)*=(c)+1 9 .在下列运算符中,(d)优先级最低a)!(b)&(c);=(d)*(d)?:2 0 .设 i n t i=l,j=2;则表达式i+j 的值为(c )o(a)1 (b)2 (c)3 (d)42 1 .设 i n t i=l,j=2;则表达式+i+j 的值为(d)a)1 (b)2 (c)3 (d)42 2 .在下列表达式选项中,(c )是正确a)+(a+)(b)a+b(c)a+b(d)a+b2 3.已知 i n t i=0,j=l,k=2;则逻辑表达式+i 1 1 j&+k 的值为(b(a)0 (b)1 (c)2 (d)32 4 .执行下列语句后,x的值是(d),y的值是(c ).i n t x,y;x=y=1;+x|I +y;(a)不确定(b)0 (c)1 (d)22 5 .设x为整型变量,不熊正确表达数学关系lx 5的C+逻辑表达式是(a )。
a)1 x 5(c)l x&x=5)2 6 .已 知 i n t x=5;执行下列语句后,x的值为(c )X +=X -=X *X;(a)2 5 (b)4 0 (c)-4 0 (d)2 02 7 .设 i n t a=l,b=2,c=3,d=4;则以下条件表达式的值为(a )ab?a:cd?c:d(a)1 (b)2 (c)3 (d)42 8 .以下逗号表达式的值为(d)o(x=4 *5,x*5 ),x+2 5(a)2 5(b)2 0(c)1 0 0(d)4 51.2把下列数学表达式写成C+算术表达式1.111+11+-x+y2.xxx(a x+b)+c +d+e3.In (1+|a+b|0)a-b4.1+y cos 485.1-X26.l g(aJ+a b+b2)【解答】1.1/(1 +1/(1 +l/(x+y)2.x*(x*(x*(a*x +b)+c)+d)+e3.l o g(1 +p o w(f a bs(a +b)/(a -b),1 0)4.s q r t(1 +3.1 4 1 5 9/2 *c o s(4 8 *3.1 4 1 5 9/1 8 0 )5.1/ta n(1 -x*x)/(1+x*x)或者 c o s(1 -x*x)/(1 +x*x)/s i n(1 -x*x)/(1+x*x)6.Io g l 0(a*a+a*b +b*b)1.3用逻辑表达式表示下列条件L i被j整除 2.n是小于正整数k的偶数3.IW xV l O 4.x,y其中有一个小于z5 .y-1 0 0,-1 0 ,并且 y 任1 0,1 0 0 6 .坐标点(x,y)落在以(1 0,2 0)为圆心,以3 5为半径的圆内7 .三条边a,b和c构成三角形8 .年份Y e a r能被4整除,但不能被100整除或者能被400整除【解答】1.i%j =0 2.(n k)&(n%2=0)3.l=x&x 10 4.x z|y=-100&y=10&y=100)6.s q r t (p o w (x-10),2)+p o w (y-20),2)c&b+c a&c+a b8.(y e a r%4=0)&(y e a r%100!=0)(y e a r%400=0)1.4阅读下列程序,写出执行结果1.i t i n c lu d e u s i n g n a m e s p a c e s t d;i n t m a i n O i n t a =1,b =2;b o o l x,y;c o u t (a+)+(+b)e n d l;c o u t a%b e n d l;x =!a b;y =a-&b;c o u t x e n d l;c o u t y e n d l;)【解答】42012.t t i n c lu d e u s i n g n a m e s p a c e s t d;i n t m a i n()i n t x,y,z,f;x 二 y 二 z 二 1;f =-x|y-&z+;c o u t X x =x e n d l;c o u t yc o u t z y e n d l;z e n d l;c o u t f =e n d l;【解答】y=0z=2f=l3.#i n c lu d e#i n c lu d e u s i n g n a m e s p a c e s t d;i n t m a i n O i n t a=123;i n t&r a=a;i n t *p a=&a;c o u t s e t w (5)d e c a s e t w (5)o c t r a s e t w (5)h e x*p a e n d 1 ;【解答】123 173 7b1.5 思考题1.什么叫数据类型?变量的类型定义有什么作用?【解答】数 据“类型”是对数据的抽象。
类型相同的数据有相同的表示形式、存储格式以及相关的操作定义个变量时,计算机根据变量的类型分配存储空间,并以该类型解释存放的数据2.普通数据类型变量和指针类型变量的定义、存储、使用方式上有何区别?请编写一个程序验证之解答】验证程序:变量类型定义存储使用方式数据类型标识符数据值通过名访问即直接访问对变量内容操作指针类 型*标识符地址值通过指针变量的地址值间址访问对象#i n c lu d e u s i n g n a m e s p a c e s t d;i n t m a i n()i n t a,b,c;c o u t,za,b,c=c i n a b c;对普通数据类型变量赋值i n t *p a=&a,*p b=&b,*p c=&c;用变量地址值初始化指针变量c o u t?*a,b,c=z*b,z,c e n d l;名访问,输出a,b,c 的值c o u t p a,p b,p c=p a,p c e n d l;输出指针变量的地址值间址访问,输出p a,p b,p c 指向的变量的赋值c o u t ,*p a,*p b,*p c=”*p c Xe n d l;3.什么叫数据对象的引用?对象的引用和对象的指针有什么区别?请用一个验证程序说明之。
解答】引用是为数据对象定义别名引用与指针有以下几点区别:(1)引用名不是内存变量,而指针变量要开辟内存空间2)引用名需要在变量定义与变量名绑定,并且不能重定义:指针变量可以在程序中赋给不同的地址值,改变指向3)程序中用变量名和引用名访问对象的形式和效果一样;指针变量通过间址访问对象验证程序:#i n c lu d e u s i n g n a m e s p a c e s t d;i n t m a i n ()i n t a;c o u t z za=/z;c i n a;i n t r a=a;i n t *p a=&a;c o u t a 的值:z a e n d l;c o u t a 的地址:/&a e n d l;c o u t z,r a 的值:z*r a e n d l;c o u t z,r a 的地址:/,&r a e n d l;c o u t/p a 所指向的变量的值:”*p a e n d l;c o u t ”p a 的地址:p a e n d l;4.数 据 对 象 在 C+中有什么不同的访问方式?请编写一个程序验证之解答】数据对象在C+中的访问方式有:验证程序:n c lu d e u s i n g n a m e s p a c e s t d;i n t m a i n()i n t a;c o u t a=;c i n a;a=a+5;c o u t&a e n d l;c o u t *(&a)e n d l;i n t *p a=&a;c o u t *p a e n d l;i n t&r a=a:c o u t r a a&a x (2)(a+b)!=x (3)a I I(b+x)(4)a=(b*x)(5)a-b x (6)(a/x=b)7.阅 读以下程序,分 析 下 面 语 句 序 列 中 每 个 字 符 和“&”的意义,写出输出结果。
i n c l u d e u si n g n a m esp a c e std;i n t m a i n()i n t a=10,b=20;i n t*p =&a,*q =&b;*p =*p *q;i n t&ra =a;ra=a;i n t*&rl =q;*rt=30;c o u ta=*p n*q=X*qz/n ra=ra/,n*rt=,/*rten d l;)【解答】字符和“也”的意义见程序中添加的注释i n c l u d e u si n g n a m esp a c e std;i n t 。
