《电子工业出版社C++程序设计基础第3版答案.pdf》由会员分享,可在线阅读,更多相关《电子工业出版社C++程序设计基础第3版答案.pdf(136页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题1 及其解答1.1选择题L 一个最简单的C+程序,可以只有一个(c)。(a)库函数(b)自定义函数(c)main函数(d)空函数2.用C+语言编制的源程序要变为FI标程序必须耍经过(d)。(a)解释(b)汇编(c)编辑(d)编译3.C+程序中的简单语句必须以(b)结束。(a)冒号(b)分号4.有说明 int a=0;double x=5.16;(c)以下语句中,(c(a)x=a/x;(b)x=x/a;(c)5.执行C+程序时出现的“溢出”错误属于(a)编译6.下列选项中,(a)while(c)sizeof(b)连接(c)全部都是C+关键字的选项为(IF Staticcase extern(
2、b)(d)a=a%x;c)错误。运行c)o空格)属于编译错误。(d)x=x*a;break char(d)逻辑goswi tch float integer7.按C+标识符的语法规定,合法的标识符是(a)_abc(b)newa(c)7t(d)花括号(d)“age8.C+语句中,两个标识符之间(a)不能作为C+的分隔符。(a)数字(b);(c):(d)+9.下列正确的八进制整型常量表示是(b(a)OaO(b)0151 0.下列错误的十六进制整型常量表示是(a)0 x11(b)Oxaf)o(c)080c)o(c)Oxg(d)(d)0 x10Oxlf11.在卜列选项中,全部都合法的浮点型数据的选项为
3、(b)o(a)-le3.5(c)0.2e-215.2e-4-12345.e-5(b)(d)12.34le+50.IE-125.0e(l+4)0.1 8e+212.下列正确的字符常量为(d)o(a)1 3.下列选项中,(b)name(c)ad)不能交换变量a和b的值。(d),io r(a)t=b;b=a;(c)t=a;a=b;a=t;b=t;(b)a=a+b;b=a-b;a=a-b;(d)a=b;b=a;1 4.关于下列语句叙述错误的是(int i=10,*p=&i;(a)p的值为10(c)*p表示变量i 的值a)o(b)(d)p指向整型变量ip的值是变量i 的地址1 5.有以下变量说明,下面不
4、正确的赋值语句是(b)oint a=5,b=10,c;int*pl=&a,*p2=&b;(a)*p 2 =b;(c)p 2 =p l ;(b)(d)1 6.有以卜.变量说明,卜面正确的语句是(bi n t a=1 0,b;i n t&p a=a,&p b=b;(a)&p b=a;(b)p b=p a;1 7.执行下面语句序列后,a和b的值分别为(p l =a ;c =*p l *(*p 2)o(c)p b=&p a;b)oi n ta5,b=3 ,t ;i n t&r ai n t&r bt(a)3和3:b;r a =r b;r b=t ;(b)3和5(c)5和31 8.在下列运算符U,(d
5、)优先级最高。(a)=(b)*二(c)+);(d)(d)(d)*p b=*p a;5和51 9.在下列运算符中,(d )优先级最低。(a)!(b)&2 0.设i n t i=l,j=2;则表达式(a)1(b)22 1.设i n t i=l,j=2;则表达式(a)1(b)22 2.在下列表达式选项中,(c(a)+(a+)(b)a+b(c)!i+j的值为(c(c)3+i+j的值为(d(c)3)是正确。(c)a+b(d)9)o)o(d)2 3.已知 i n t i=0,j=l,k=2;则逻辑表达式+i I I j&+k(a)0(b)1(c)22 4.执行下列语句后,x的值是(d ),y的值是(ci
6、n t x,y ;)o(d)(d)44a+b的值为(d)3y =1;(a)不确定+x|+y ;(b)0(c)1(d)22 5.设x为整型变量,不能正确表达数学关系1VXV5的C+逻辑表达式是((a)1 x 5(c)K x&x 5(b)x=2|l x=3|x=4(d)!(x=5)2 6.已 知i n t x=5;执行下列语句后,x的值为(c )。(a)2 52 7.设 i n t a=l,a b?a(a)1x *x;(b)4 0(c)-4 0(d)2 0b=2,c=3,d=4;c d?c :(b)2d则以下条件表达式的值为(a(c)3)o(d)42 8.以下逗号表达式的值为(d(x =4 *5,
7、x *5),x)o+2 5(a)2 5(b)2 0(c)1 0 0(d)4 51.2把下列数学表达式写成C+算术表达式1.111+11+-x+y2.x x x (a x+b)+c +d +e3.I n (1+|a+b|0)a-b4.1+y cos 48。5.1-X26.l g(a2+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 59/2 *c o s(4 8 *3.1 4 1 59/1 8 0 )5.l
8、/t a 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.I o g l 0(a*a+a*b +b*b)1.3用逻辑表达式表示下列条件L i被j整除 2.n是小于正整数k的偶数3.I W x C 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整除,但不能被1 0 0整除或者能被4 0 0整除【解答】1.i%j =0
9、2.(n k)&(n%2 =0)3.l=x&x 1 0 4.x z|y=-1 0 0&y=1 0&y=1 0 0 )6.s q r t (p o w (x-1 0),2)+p o w (y-2 0),2)c&b+c a&c+a b8.(y e a r%4 =0)&(y e a r%1 0 0!=0)(y e a r%4 0 0=0)1.4阅读下列程序,写出执行结果1.i t i n c l u 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;bo o l x,y;c o u t (a+)+(+b)e n
10、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 l u 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|I y-&z+;c o u t x =x e n d l;c o u t y =y e n d l;c o u t z=e n d l;c o u t “f =e n d l;【解答】y=0z=2f=l3.#i n c l
11、u d e#i n c l u 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=1 2 3;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 l ;【解答】1 2 3 1 7 3 7 b1.5 思考题1 .什么叫数据类型?变量的类型定义有什么作用?【解答】数 据“类型”是对数据的抽象。类型相同的数据有相同的表示形式、存储格式以及相关的操作。定义个变量时,计算机根据变量的类
12、型分配存储空间,并以该类型解释存放的数据。2 .普通数据类型变量和指针类型变量的定义、存储、使用方式上有何区别?请编写一个程序验证之。【解答】验证程序:变量类型定义存储使用方式数据类型标识符数据值通过名访问即直接访问对变量内容操作指针类 型*标识符地址值通过指针变量的地址值间址访问对象#inclu deu sing namespace std;int main()int a,b,c;cou t*a,b,c=cin a b c;对普通数据类型变量赋值int*pa=&a,*pb=&b,*pc=&c;用变量地址值初始化指针变量cou t?*a,b,c=z*b,z,cendl;名访问,输出a,b,c的
13、值cou t pa,pb,pc=pa ,pcendl;输出指针变量的地址值间址访问,输出pa,pb,pc指向的变量的赋值cou t,*pa,*pb,*pc=z,*pc endl;3 .什么叫数据对象的引用?对象的引用和对象的指针有什么区别?请用一个验证程序说明之。【解答】引用是为数据对象定义别名。引用与指针有以下几点区别:(1)引用名不是内存变量,而指针变量要开辟内存空间。(2)引用名需要在变量定义与变量名绑定,并且不能重定义:指针变量可以在程序中赋给不同的地址值,改变指向。(3)程序中用变量名和引用名访问对象的形式和效果一样;指针变量通过间址访问对象。验证程序:#inclu deu sing
14、 namespace std;int main()int a;cou tz za=/z;cin a;int ra=a;int*pa=&a;cou t a 的值:z aendl;cou t a 的地址:/&aendl;cou t X ra 的值:z*ra endl;cou tz,ra 的地址:/,&r a e n d l;cou t/p a 所指向的变量的值:”*pa endl;cou t ”pa 的地址:pa endl;4.数 据 对 象 在 C+中有什么不同的访问方式?请编写一个程序验证之。【解答】数据对象在C+中的访问方式有:验证程序:nclu deu sing namespace std
15、;int main()int a;cou t a=;cin a;a=a+5;cou t&a endl;cou t*(&a)e n d l;int*pa=&a;cou t*paendl;int&ra=a:cou tra a&a x (2)(a+b)!=x (3)a I 1(b+x)(4)a=(b*x)(5)a-b x (6)(a/x=b)7.阅读以下程序,分 析 下 面 语 句 序 列 中 每 个 字 符 和“&”的意义,写出输出结果。#inclu de u sing namespace std;int main()int a=1 0,b=2 0;int*p=&a,*q=&b;*p=*p*q;i
16、nt&ra=a;ra=a;int*&rl=q;*rt=3 0;cou t a=*p n*q=X*qz,nra=ra/,n*rt=,z*rtendl;)【解答】字符和“也”的意义见程序中添加的注释。#inclu de u sing namespace std;int main()int a=1 0,b=2 0;int*p=&a,*q=&b;/是指针类型说明符,“&”是取址运算符*p =*p *q;第1、2、4个“*”是间址访问符,第3个 算 术 乘 运 算 符i n t&r a=a;/是引用说明符r a=a;i n t *&r t=q;/是指针类型说明符,是引用说明符*r t=30;/是间址访问
17、符输出语句U 的“*”是间址访问符c o u t a=aX n b=bn*p=”*p n*q=”X*q n r a=r an*r t=*r t e n d l;)程序输出结果为:a=20 0b=30*p=20 0*q=30r a=20 0*r t=301.6 编程题1.输入个三位整数,将它反向输出。【解答】t t i n c l u d e u s i n g n ame s p ac e s t d;i n t mai n()i n t x,i,j,k;c o u t x;i =x/1 0 0;j =x/1 0%1 0;k =x%1 0;c o u t k j i e n d l;)2.输入
18、平面上某点横坐标x和纵坐标y,若该点在由图3.1表示的方块区域内,则输出出0。否则,输图1.1 1正方形【解答】i n c l u d e u s i n g n ame s p ac e s t d;i n t mai n()d o u bl e x,y,b;c o u t ”p l e as e i n p u t x,y:;c i n x y;b=(-2=x )&(x=2)&(-2=y )&(y=2);c o u t b e n d l;)3.输入三个整数,求出其中最小数(要求使用条件表达式)。【解答】#i n c l u d e u s i n g n ame s p ac e s t
19、 d;i n t mai n()i n t a,b,c,t e mp,mi n;c o u t ”p l e as e i n p u t a,b,c:;c i n a b c;t e mp =(ab)?a:b;mi n =(t e mp c )?t e mp:c;c o u t mi n=mi n e n d l;)习 题 2 及其解答2.1 选择题1 .已 知i n t i=0,x=l,y=0 ;在下列选项使i的值变成1的语句是(c )。(a)i f(x&y )i+;(b)i f(x=y )i+;(c)i f(x|y )i+;(d)i f(!x )i+;1 x 0(a)y =1 ;i f(
20、x =0 )i f(x =0 )y =0 ;e l s e y =-1;(c)i f(x 0 )y =1 ;e l s e y =0:(d)y =-1 ;i f(x 0 )y =-1 ;e l s e y =0 ;i f(x =0 )i f(x 0 )y 二 T;e l s e y =1 ;e l s e y =1 ;3.假设i=2,执行下列语句后i的值为(b)os w i t c h(i )c as e 1 :i +;c as e 2:i ;c as e 3:+i ;br e ak ;c as e 4:一 i ;d e f au l t :i +;)(a)1 (b)2(c)3(d)44.已知
21、i n t i=0,x=0;下面w h i l e语句执行时循环次数为(d )。w h i l e(!x&i 3)(x+;i+;(a)4(b)3(c)2(d)15.已知i n t i=3:下面d o _v h i l e语句执行时循环次数为(bd o i ;c o u t i e n d l;w h i l e(i!=1 );(a)1 (b)26.卜面f o r语句执行时循环次数为(i n t i;f o r (i=0,j=5;i=j;)c o u t i j e n d l;i+;j-;)(a)0 (b)57.以下死循环的程序段是(b).b(c)o(c)31 0(a)i n t x;f o
22、r(i n t x=0 ;x=0);(d)无限(d)无限(c)i n t a=5;w h i l e(a)a一;(d)i n t i=3;f o r (;i ;i -);2.2阅读下列程序,写出执行结果1.t t i n c l u d e u s i n g n ame s p ac e s t d;i n t mai n()i n t a,b,c,d,x;a=c =0;b=1;d =20;i f(a)d =d-1 0;e l s e i f(!b)i f(!c )x =1 5;e l s e x =25;c o u t d e n d l;【解答】20t t i n c l u d e u
23、 s i n g n ame s p ac e s t d;i n t mai n O i n t a=0,b=1;s w i t c h(a)c as e 0:s w i t c h(b)c as e 0 :c o u t*a=*a*b=z,b e n d l;br e ak;c as e 1 :c o u t a=a b=z,b e n d l;br e ak;)c as e 1:a+;b+;c o u t *a=*a/z b=*b e n d l;)【解答】a=0 b=1a=1 b=2t t i n c l u d e u s i n g n ame s p ac e s t d;i n
24、 t mai n O i n t i =1;w h i 1 e(i=1 0 )i f(+i%3!=1 )c o n t i n u e;e l s e c o u t i e n d l;)【解答】471 04.t t i n c l u d e u s i n g n ame s p ac e s t d;i n t mai n()i n t i =0 ,j =5;d o(i+;j ;i f (i 3)br e ak;w h i l e (j 0 );c o u t i=i )t*=j e n d l;)【解答】i=4 j=1#i n c l u d e u s i n g n ame s
25、p ac e s t d;i n t mai n()i n t i,j;f o r(i=l,j=5;i j;i+)j ;c o u t i t*j e n d l;)【解答】3 3#i n c l u d e u s i n g n ame s p ac e s t d;i n t mai n O i n t i,s =0;f o r(i=0;i 5;i+)s w i t c h(i )c as e 0c as e 1c as e 2s +=i;br e ak;s +=i;br e ak;s +=i;br e ak;d e f au l t:s +=2;)c o u t z,s=/z s e
26、n d l;)【解答】s 二 77.#i n c l u d e u s i n g n ame s p ac e s t d;i n t mai n O(i n t i,j,x =0;f o r(i=0;i=3;i+)x+;f o r(j=0;j=90,B-(90,80,C-(80,70 ,D-(70,60,E-60#i n c l u 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()c ha r gd;c o u t,zE n t e r t he gr a d e:;c i n gd;直到输入有效等级,否则程序不继续运行w hi
27、l e(!(gd=,A*&gd=a&gd=e )c o u t/1,In v a l i d gr a d e!Pl e a s e r e t r y:*;c i n gd;)i f(gd=A|gd=二 a )c o u t z,n Sc o r e d 90 T0 0!n ;e l s e i f(gd=,B*j|gd=,b*)c o u t z,n Sc o r e d 80-89!n”;e l s e i f(gd=,C*I|gd=,c)c o u t*n Sc o r e d 70-79!n”;e l s e i f(gd=D I|gd=d )c o u t=90,B-(90,80
28、,C-(80,70 ,D-(70,60 ,E-60#i n c l u 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()c ha r gd;c o u t z,E n t e r t he gr a d e:;c i n gd;直到输入有效等级,否则程序不继续运行w hi l e(!(gd=,A*&gd=,a&gd=e )c o u t z,In v a l i d gr a d e!Pl e a s e r e t r y:;c i n gd;)s w i t c h(gd)c a s e A:c a s e a :c o u t *
29、n Sc o r e d 90-1 0 0!n*;b r e a k;c a s e B:c a s e b :c o u t/zn Sc o r e d 80-89!nz,;b r e a k;c a s e Cc a s e *c*:c o u t,zn Sc o r e d 70-79!n ;b r e a k;c a s e D:c a s e d :c o u t X “n Sc o r e d 60-69!n/z;b r e a k;c a s e E :c a s e e :c o u t z/n Sc o r e u n d e r 60!n”;b r e a k;d e fa
30、 u l t:c o u t U n e xp e c t e r r o r!r T;防止意外错误)2.什么叫循环控制?归纳比较C+中各种循环控制语句的语法、循环条件和循环结束条件的表示形式及执行流程。【解答】循环控制是在特定的条件下,程序重复执行一些特定动作。语句语法执行流程使用场合w hi l e语句w hi l e (表达式)循环体;循环条件:表达式值为非0(真)循环结束条件:表达式值为0(假)-*J工J达 巨 1 t r u ea l s e1程序中常用r根据条件执行操作而不需关心循环次数的情况。先判断形式循环,条件不成立循环体时不进入循环体。rw hi l e语句的执行流程程序中常
31、用于根据条件执行语句循环体w hi l e (表达式);循环条件:表达式值为非0(真)循环结束条件:表达式值为0(假)操作而不需关心循环次数。后判断形式循环,至少执行1次循环体。一般情况,w hi l e语 句 和d ow hi l e语句可以互换使用。循环体|fa l s ed o _ w hi 1 e语句执行流程fo r语句fo r (表达式1 ;表达式2 ;表达式3)循环体;(1)表达式】称为初始化表达式,不是循环体执行部分。(2)表达式3称为后置表达式,作为循环体的最后个执行表达式。(3)循环条件:表达式2值为非0(真)循环结束条件:表达式2值为0 (假)fo r语句称为步长循环语句,
32、通常用于确定循环次数的情况。由于语句的3个表达式均可以缺省,也可以用于条件循环,即循环次数不确定的情况。表达式l-*1 t r u efa l s en循环体I表达式s1fo r语句的执行流程3.根据个实际问题,用不同的循环语句编程,分析其优缺点。【解答】略。4.用i f语句和go t o语句组织循环,改写思考题的第3小题编写的程序。分析在什么情况下可以适当使用go t o语句。【解答】在不破坏程序基本流程控制的情况下,可以适当使用go t o语句实现从语句结构内部向外的必要跳转,即按特定条件结束结构语句块的执行。程序略。5.有以下程序#i n cl u d e u s i n g n a m
33、 e s p a ce s t d;i n t m a i n()ch a r c;ci n c;i f (c二 二 y,|c=Y)i n t a=1;e l s ei n t a=0;co u t a=a e n d l;)编译错误为:e r r o r C 2065:a:u n d e cl a r e d i d e n t i f i e r,指示变量a没有定义。请分析原因,并做出修改。【解答】变量a的定义不应该放在i f-e l s e语句体中。说明语句和执行语句的执行时机不同。变量说明要求在编译时定义存储空间,而i f-e l s e是执行语句,程序运行后才执行。正确的程序是:#i
34、 n cl u d e u s i n g n a m e s p a ce s t d;i n t m a i n O ch a r c;i n t a;ci n c;i f (c=y)|c=-Y)a=l;e l s ea=0;co u t z,a=/,a e n d l;)6.有以卜.程序,希望判断两个输入的整数是否相等。程序通过编译,但不能达到预期结果。请分析程序能够通过C+编译而不能得到期望结果的原因。#i n cl u d e u s i n g n a m e s p a ce s t d;i n t m a i n ()i n t a,b;co u t a;co u t b;i
35、f(a 二 b )co u t X a 等于b e n d l;e l s eco u t X a 不等于 b e n d l;1程序运行后,输入a 的值为4,b的值为9,显示结果如下:a:4b:99 等于9【解答】在 i f 语句的判断表达式(a=b)中,赋值号“二”应 该 是 逻 辑 等。从语法上,C+的 i f 语句把a=b 这个赋值表达式视为逻辑表达式,没有编译错误。a=b 的值决定于b。若 b的输入值不等于0,i f 作为逻辑真(t r u e),否则作为逻辑假(f a l s e)。所以,题目中输入b的值虽然不等于a,但表达式a=b为逻辑t r u e,执行了 i f 语句的第1个
36、分支。2.4编程题1.输入某学生成绩,若成绩在85 分以上输出“v e r y g o o d,若成绩在60分到85 分之间输出“g o o d”,若成绩低于60分输出“n o g o o d”。【解答】#i n cl u d e u s i n g n a m e s p a ce s t d;i n t m a i n()d o u b l e s co r e;co u t ”p l e a s e i n p u t s co r e:/z;ci n s co r e;i f (s co r e=85 )co u t ”V e r y g o o d!”;e l s e i f (s
37、co r e=60)co u t Go o d!”;e l s e co u t ”N o g o o d!”;)2.输入三个整数,按从小到大的顺序输出它们的值。【解答】#i n cl u d e u s i n g n a m e s p a ce s t d;i n t m a i n()i n t a,b,c,t;co u t a b c;i f(a b)t=a;a=b;b=t;i f(a c)t=a;a=c;c=t;i f(b c)t=b;b=c;c=t;co u t a t b t c e n d l;)3.输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、等腰、还是一
38、般三角形。【解答】n cl u d e u s i n g n a m e s p a ce s t d;i n t m a i n ()d o u b l e a,b,c;co u t c&b+c a&c+a b )i f (a =b&b =c)co u t 等边三角形!e n d l;e l s e i f (a 二 二 b i|a 二 二 c|b =c)co u t 等腰三角形!e n d l;e l s e co u t ”一般三角形!e n d l;)e l s eco u t 不能形成三角形!X e n d l ;)4.输入百分制成绩,并把它转换成五级分制,转换公式为:A (优秀)
39、90-100B(良好)80-89grade(级别)=C(中等)70-79D(合格)60-69E(不合格)0-5 9【解答】t t i n cl u d e u s i n g n a m e s p a ce s t d;i n t m a i n()d o u b l e s co r e;ch a r g r a d e;co u t ”s co r e=;ci n s co r e;i f (s co r e =0&s co r e =100)s w i t ch (i n t (s co r e )/10)ca s e10:ca s e9:g r a d e =a,;b r e a k
40、;ca s e8:g r a d e =,b,;b r e a k;ca s e7:g r a d e =b r e a k;ca s e6:g r a d e =d,;b r e a k;ca s e5:ca s e4:ca s e3:ca s e2:ca s e1:ca s e0:g r a d e =,e ;b r e a k;)e l s e co u t 数据输入错误!“e n d!;g o t o e n d;)co u t g r a d e e n d l;end:;分号不能省)5.编程序模拟剪刀、石头和纸游戏。游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头。玩游戏者从键盘上输入s
41、 (表示剪刀)或r (表示石头)或p (表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。【解答】#i n c l ude us i n g n am e s p ac e s t d;i n t m ai n()c har fi r s t,s e c o n d;c o ut Fi r s t i n p ut(s,r o r pc i n fi r s t;c o ut z/Se c o n d i n p ut (s,r o r p ):c i n s e c o n d;s w i t c h(fi r s t )c as e s e c o n d i n p ut e r
42、r o r!,z e n dl ;go t o e n d;s w i t c h(s e c o n d)c as e s :c o ut ”Sc i s s o r t i e s s c i s s o r.e n dl;go t o e n d;c as e r :c o ut Sc i s s o r i s c r us he d b y r o c k.”e n dl;go t o e n d;c as e p :c o ut Sc i s s o r c ut s p ap e r.e n dl;go t o e n d;de faul t :c o ut)c as es w
43、i t c h(s e c o n d)c as e s :c o ut ”R o c k c r us he s s c i s s o r.e n dl;go t o e n d;c as e r :c o ut ”R o c k t i e s r o c k.e n dl;go t o e n d;c as e p :c o ut ”R o c k i s w r ap p e d b y p a p e r.e n dl;go t o e n d;de faul t :c o ut s e c o n d i n p ut e r r o r!z,e n dl;go t o e n
44、d;c as e p :)s w i t c h(s e c o n d)c as e s :c o ut ”Pap e r i s c ut b y s c i s s o r.”e n dl;go t o e n d;c as e r :c o ut ”Pap e r w r ap s t he r o c k.e n dl;go t o e n d;c as e p :c o ut ”Pap e r t i e s p ap e r.e n dl;go t o e n d;de faul t :c o ut z/s e c o n d i n p ut e r r o r!”e n dl
45、;go t o e n d;de faul t :c o ut ”Fi r s t i n p ut e r r o r!e n dl;go t o e n d:e n d:;)6.输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3和5。【解答】#i n c 1ude us i n g n am e s p ac e s t d;i n t m ai n ()i n t m,i =2;c o ut p l e as e i n p ut m:c i n m;w hi l e(i=m )i f(m%i =0)c o ut i ”,;m =m /i;e l s e i+
46、;)7.使用迭代公式加=区+/工)/2(=0,1,2,;/=4/2)编程序求某一正整数a 的平方根。【解答】#i n c l ude#i n c l ude us i n g n am e s p ac e s t d;i n t m ai n ()c o n s t do ub l e e p s =l e-8;do ub l e a,x O,x;c o ut e p s )x O=x;x =(x O+a/x O)/2;)c o ut x 20 ,180 ,求 s i n x,c o s x 和 t an x 的值。【解答】ft i n c l ude#i n c l ude#i n c l
47、 ude us i n g n am e s p ac e s t d;i n t m ai n()c o n s t do ub l e p i =3.14159265;i n t i;do ub l e x,y l,y 2,y 3;c o ut s e t w(2)s e t w(15)s i n(x)”s e t w(15)“c o s(x)s e t w(15)t g(x)e n dl;fo r(i=0;i=18;i+)x =i*10*p i/180;y l =s i n(x );y2=cos(x);y3=yl/y2;cout setw(2)i setw(15)yl setw(15)y
48、2 setw(15)y3 endl;)9.在 100到 200中找出同时满足用3 除余2,用 5 除余3 和用7 除余2 的所有整数。【解答】#includeusing namespace std;int mainO int i;for(i=100;i=200;i+)if(i%3=2)&(i%5=3)&(i%7=2)cout i endl;)10.求 100到 999中的水仙花数。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153=13+5+3,所以153为水仙花数。【解答】#includeusing namespace std;int main()int i,a,b
49、,c;for(i=100;i=999;i+)a=i/100;b=(i-a*100)/10;c=i-a*100-b*10;if(i 二 二 a*a*a+b*b*b+c*c*c)cout i en d l;)11.求 1000之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如,因为6=1+2+3,所以6 为完数。【解答】#includeus i n g n am e s p ac e s t d;i n t m ai n()(i n t i,j,s;fo r(i=l;i=1000;i+)I s =0;fo r(j=l;ji;j+)i f(i%j=0)s =s +j;i f(i =s
50、)c o ut i e n dl;)12.编一程序显示由符号组成的三角形图案。例如,程序运行后,屏幕显示:Ho w m an y l i n e s?用户输入:5屏幕显示:W hat c har ac t e r?用户输入:*则输出如下图案。*【解答】t t i n c l ude us i n g n am e s p ac e s t d;i n t m ai n()i n t i,j,k,n;c har c h;c o ut z,Ho w m an y l i n e s?n ;c i n n;c o ut c h;fo r(i=1;i=n;i+)fo r(k=1;k=n-i;k+)c