C++程序设计基础第4版习题解答.pdf

上传人:文*** 文档编号:88951299 上传时间:2023-05-04 格式:PDF 页数:140 大小:10.82MB
返回 下载 相关 举报
C++程序设计基础第4版习题解答.pdf_第1页
第1页 / 共140页
C++程序设计基础第4版习题解答.pdf_第2页
第2页 / 共140页
点击查看更多>>
资源描述

《C++程序设计基础第4版习题解答.pdf》由会员分享,可在线阅读,更多相关《C++程序设计基础第4版习题解答.pdf(140页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 C+程序设计基础(第 4 版)(上)习题与解答第 1 章 基本数据与表达式1.1选择题1 4.关于下列语句,叙述错误的是(A )01.一个最简单的C+程序,可以只有一个(C(A)库函数(B)自定义函数(C)ma in函数(D)空函数2.用C+语言编写的源程序要成为目标程序必须要经过(D )o(A)解释(B)汇编(C)编辑(3.C+程序中的简单语句必须以(B)结束。(A)冒号(B)分号(C)空格(14.假设有说明int a=O;d ou b le x=5.1 6;,则在以下语句中,(C)属于编译错误。(A)x=a/x;(B)x=x/a;(C)a=a%x;(D)x=x*a;5.执行C+程序时出现

2、的“溢出”错误属于(C)错误。(A)编译(B)连接(C)运行(D)逻辑6.在下列选项中,全部都是C+关键字的选项为(C)。(A)while I F S t a t ic (B)b re a k c ha r go(C)s ize of c a s e e xt e rn(D)s wit c h floa t i i it e ge r7.按C+标识符的语法规定,合法的标识符是(A )o(A)_ a b c (B)ne w(C)n(D)a gcM8.在C二语句中,两个标识符之间(A )不能作为C+的分隔符。(A)数字(B);(C):(D)+9.下列正确的八进制整型常量表示是(B)o(A)O a

3、O (B)0 1 5 (C)0 8 0(D)0 x1 01 0.下列错误的十六进制整型常量表示是(C)。(A)0 x1 1 (B)O xa f(C)O xg(D)O xlf1 1.在下列选项中,全部都合法的浮点型数据的选项为(B)0(A)-le 3.5 1 5.2 e-4(B)1 2.34-le+50.1 E-1 2(C)0.2 e-2 -1 2 345.e-5 (D)5.0 e (1+4)0.1 8 e+21 2.在下列选项中,正确的字符常量为(D )o(A)V (B),na me (C)a(D)M O I11 3.在下列选项中,(D )不能交换变量a和b的值。(A)t=b;b=a;a=t;

4、(B)a=a+b;b=a-b;(C)t=a;a=b;b=t;(D)a=b;b=a;a=a-b;编译花括号int i=1 0 *p=&i;(A)p 的值为1 0 (B)p 指向整型变量i(C)*p表示变量i的值(D)p 的值是变量i的地址1 5.有以下变量说明,下面不亚砚的赋值语句是(Bint a=5,b=1 0,c;int *pl=&a,*p2 =&b;(A)*p2 =b;(B)pl=a;(C)p2 =pl;(D)c =*pl*(*p2);1 6.有以下变量说明,下面正确的语句是(B),int a=1 0,b;int&pa=a,&pb=b;(A)&pb =a;(B)pb =pa;(C)pb =

5、&pa;(D)*pb =*pa;1 7.执行下面语句序列后,a 和 b的值分别为(B)oint a=5,b=3,t;int&ra=a;int&rb=b;t=ra;ra=rb;rb=t;(A)3 和 3(B)3 和 5 (C)5 和 3(D)5 和 51 8.在下列运算符中,(D )优先级最高。(A)=(B)*=(C)+(D)*1 9.在下列运算符中,(D )优先级最低。(A)!(B)&(C)!=(D)?:2 0.已知int i=l,j=2;,则表达式i+j的值为(C)。(A)1 (B)2 (C)3(D)42 1.已知int i=l,j=2;,则表达式 H i+j的值为(D )o(A)1 (B)

6、2 (C)3(D)42 2.在下列表达式选项中,(C)是正确。(A)+(a+)(B)a+b (C)a”H-+b (D)a+b2 3.已知int i=0,j=l,k=2;,则逻辑表达式+i|j&+k的值为(B)。(A)0 (B)1 (C)2(D)32 4.执行下列语句后,x 的值是(D ),y 的值是()oint x,y;X=y=l;-H-x|+y;(A)不确定(B)0 (C)1(D)22 5.设 x 为整型变量,不用正确表达数学关系lx V5的C+逻辑表达式是(A)o(A)l x 5 (B)x=2|x=3|x=4(C)l x&x 5 (D)!(x=5)2 6.己 知 int x=5;,执行下列

7、语句后,x 的值为(C)。x+=x-=x*x;(A)2 5 (B)40 (C)-40(D)2 02 7.设 int a=l,b=2,c=3,d=4;,则以下条件表达式的值为(Aa b?a:c d?c:d(A)1 (B)2 (C)3(D)42 8.以下逗号表达式的值为(D(x=4*5,x*5),x+2 5(A)2 5 (B)2 0 (C)1 0 0(D)451.2 根据下列数学表达式写出C+算术表达式I.!x+y2.x xx(ax+b)+c+e4.l+|cos480I _/5.cot-r 6.lg(a2+ab+b2)(1+门【解答】1.1/(1+1/(1+l/(x+y)2.x*(x*(x*(a*

8、x +b)+c)+d)+e3.Iog(1 +pow(fabs(a+b)/(a-b),10)4.sqrt(1 +3.14159/2*cos(48*3.14159/180)5.l/tan(1 -x*x)/(1 +x*x)或者 cos(1 -x*x)/(1 +x*x)/sin(1 -x*x)/(1 +x*x)6.log 10(a*a+a*b +b*b)1.3 用逻辑表达式表示下列条件1.i被j整除 2.是小于正整数人的偶数3.lx10 4.人y其中有一个小于z5.-100,-10,并且 yw 10,1006.坐 标 点(x,y)落在以(10,2 0)为圆心,以35为半径的圆内7.三条边m 和c构成三

9、角形8.年份Year能被4整除,但不能被100整除,或者能被400整除【解答】1.i%j=0 2.(nk)&(n%2=0)3.l=x&x10 4.xz|y=-100&y=10&y=100)6.sqrt(pow(x-10),2)+pow(y-20),2)c&b+ca&c+ab8.(year%4=0)&(year%100!=0)|(year%400=0)1.4 阅读下列程序,写出运行结果1.#include using namespace std;int main()int a=1,b=2;bool x,y;cout(a-H-)+(-H-b)endl;cout a%b endl;x=!ab;y=a

10、-&b;cout x endl;cout y endl;)【解答】42012.#include using namespace std;int main()int x,y,z,x=y=z=1;f=-x|y-&z-H-;cout x=M x cndl;cout y=M y endl;cout z=M z endl;cout Hf=H f endl;【解答】x=0y=0z=2fM3.#include#includeusing namespace std;int main()int a=123;int&ra=a;int*pa=&a;coutsctw(5)decasct w(5)octraset w(

11、5)hcx*pacndl;【解答】123 173 7b1.5思考题1.什么是数据类型?变量的类型定义有什么作用?【解答】数据“类型”是对数据的抽象。类型相同的数据有相同的表示形式、存储格式以及相关的操作。定义一个变量时,计算机根据变量的类型分配存储空间,并以该类型解释存放的数据。2.普通数据类型变量和指针类型变量的定义、存储和使用方式有何区别?请编写一个程序验证之。【解答】变量类型定义存储使用方式数据类型标识符数据值通过名访问即直接访问对变量内容操作指针类 型*标识符地址值通过指针变量的地址值间址访问对象验证程序:#includeusing namespace std;int main()in

12、t a,b,c;coutMa,b,c=;cin a b c;对普通数据类型变量赋值int*pa=&a,*pb=&b,*pc=&c;用变量地址值初始化指针变量couta,b,c=a ,b ,cendl;/名访问,输出a,b,c的值coutpa,pb,pc=pa,pb,pcendl;输出指针变量的地址值 间 址访问,输出pa,pb,pc指向的变量的赋值cout*pa,*pb,*pc=*pa,*pb,*pcendl;)3.什么是数据对象的引用?对象的引用和对象的指针有什么区别?请用一个验证程序说明之。【解答】引用是为数据对象定义别名。引用与指针有以下几点区别:(1)引用名不是内存变量,而指针变量要开

13、辟内存空间。(2)引用名需要在变量定义与变量名绑定,并且不能重定义;指针变量可以在程序中赋给不同的地址值,改变指向。(3)程序中用变量名和引用名访问对象的形式和效果一样;指针变量通过间址访问对象。验证程序:#includeusing namespace std;int main()int a;coutMa-;cina;int ra=a;int*pa=&a;coutna 的值:Maendl;coutMa 的地址:n&aendl;coutMra 的值:Mraendl;coutMra 的地址:&raendl;coutMpa所指向的变量的值:*paendl;coutMpa 的地址:vvpavvendl

14、;)4.数据对象在C+中有儿种不同的访问方式?请 编 写 个程序验证之。【解答】数据对象在C+中的访问方式有:验证程序:#includeusing namespace std;int main()int a;couta=;cina;a=a+5;cout&aendl;cout*(&a)endl;int*pa=&a;cout*paendl;int&ra=a;coutraendl;名访问,引 用(别名)访问,间址访问。名访问/输出变量地址地址访问,输出变量值说明指针变量,指向变量a间址访问,输出变量值 ra是a的引用 引用访问,输出变量a的值5.为了约束对数据对象的值进行只读操作,C什采用什么方式?

15、请进行简要归纳。【解答】约束数据对象只读形式如下:约束对象说明形式标识常量const类型常量标识符=常量表达式;指针常量类型*const m;指向常量的指针const类 型*指针;或者 类 型 const 指针;指向常量的指针常量const类 型 const指针;或者 类 型 const*const指针;常引用const类 型&引用名=对象名;6.什么是表达式?表达式值的类型由什么因素决定?使用不同运算符连接以下3个变量,请 写 出5个以上获得值为true的表达式。int a=l,b=2;double x=0.5;【解答】表达式是由数据和运算符,按求值规则,表达个值的式子。表达式值的类型的决定

16、因素为操作数的类型。(1)如果运算符左右操作数类型相同,运算结果也是相同类型。(2)如果运算符左右操作数类型不同,首先把类型较低(存储要求,示数能力较低)的数据转换成类型较高的数据,然后运算。(3)赋值表达式的类型由被赋值变量的类型决定。当把一个表达式的值赋给一个变量时,系统首先强制把运算值转换成变量的类型,然后执行写操作。6个值等于true的表达式:(1)ba&ax(2)(a+b)!=x(3)a|(b+x)(4)a=(b*x)(5)a-bx(6)(a/x=b)7.阅读以下程序,分析下面语句序列中每个字符“*”和 的 含 义,并写出输出结果#include using namespace st

17、d;int main()(inta=10,b=20;int*p=&a,*q=&b;*p=*p*q;int&ra=a;ra=a;int*&rt=q;*rt=30;couta=,a ,nb=b,n*p=*p,n*q=,*q,nra=,r a Mn*rt=,*rtendl;)【解答】字符”和的意义见程序中添加的注释。#include using namespace std;int main()(int a=10,b=20;int*p=&a,*q=&b;*”是指针类型说明符,是取址运算符*p=*p*q;第1、2、4个“*”是间址访问符,第3个“”算术乘运算符int&ra=a;/&”是引用说明符ra=a

18、;int*&rt=q;/*”是指针类型说明符,是引用说明符*rt=30;/“*”是间址访问符输出语句中的是间址访问符cout,a=,a,nb=,b,n*p=,*pn*q=,*q,nra=M r a,n*rt=M*rtendl;程序输出结果为:a=200b=30*p=200*q=30ra=200*rt=301.6 编程题1 .输入一个3位整数,将它反向输出。【解答】#include using namespace std;int main()int x,ij,k;cout please input x:*;cin x;i=x/IOO;j=x/10%10;k=x%10;cout k j i end

19、l;2.输入平面上某点横坐标x和纵坐标y,若该点位于图1.11所示的方块区域内,则输出1;否则,输出O o【解答】#include using namespace std;int main()double x,y,b;cout ”please input x,y:M;cin x y;b=(-2=x)&(x=2)&(-2=y)&(y=2);cout b endl;3.输入3个整数,求出其中最小数(要求使用条件表达式)。【解答】/include using namespace std;int main()int a,b,c,temp,min;cout please input a,b,c:;cin

20、 a b c;temp=(ab)?a:b;min=(temp=0)if(x =O)y =O;e l s e y=-1;(C)if(x =0)if l;x O)y =-l;e l s e y=0;3.e l s e y=1;假设i=2,执行下列语句后i的值为(B)if(x=y)i+;(D)if(!x )i+;x 0)y=1;e l s e y=0(D)y=-l;if f x =0)i f(x 0)y =-l;e l s e y=0;(B )os w it c h(i)c as e 1:i +;c as e 2:i ;c as e 3 :-H-i;b r e ak;c as e 4 :i;d e

21、f au l t:i -H-;)(A)1(B)2(C)3 (D)4D)o4.J知imi=0,x=0;,在下面w hil e语句执行时循环次数为w hil e(!x&i 3 )x+;i+;(A)4 (B)3 (C)2(D)15 .已知int i=3;,在下面d o_w hil e语句执行时的循环次数为(Bd o i;c ou t i e nd l;(w hil e (i!=1);(A)1 (B)2(C)3 (D)无限6.下 面f b r语句执行时的循环次数为(Bint i,j;f b r(i=0,j=5;i=j;)c ou t ij nd l;i+;j-;(A)0(B)5 (C)10(D)无限7

22、 .以下程序段形成死循环的是(B )。(A)int x;f b r(x=0;x=0);(C)int a=5;w hil c(a)a;(D)int i=3;for(;i;i-);2.2 阅读下列程序,写出运行结果#includeusing namespace std;int main()(int a,b,c,d,x;a=c=0;b=1;d=20;iRa)d=d-10;elseifl:!b).!c)x=15;else x=25;cout d endl;)【解答】20L#includeusing namespace std;int main()(int a=0,b=1;switch(a)(case

23、0:switch(b)(case 0:coutMa=,a n b=Mbendl;break;case 1 :couta=,a n b=bendl;break;case 1:a-H-;b+;coutvva=va b=Mbendl;)【解答】a=0 b=1a=1 b=23.#includeusing namespace std;int main()(inti=1;while(i=10)(ifl:+i%3!=1 )continue;elsecout i endl;)【解答】47104.#includeusing namespace std;int main()int i=0,j=5;do(i+;j-

24、;if(i3)break;while(j0);cout i=n i cndl j=n j cndl;【解答】i=4 j=l5.#includcusing namespace std;int main()int ij;for(i=l,j=5;ivj;i+)j-;coutifjendl;【解答】3 36.#includeusing namespace std;int main()int i,s =0;f or(i=0;i5;i+)s w it c h(i)(c as e 0:s +=i;b r e ak;c as e 1:s 2 i;b r e ak;c as e 2:s +=i;b r e ak

25、;d e f au l t:s +=2;)c o u t ns=,sen dl;【解答】s=77.#inc l u d e u s ing name s p ac e s t d;int main()int i,j,x =0;f or(i=0;i=3;i+)(X+;f b r(j=0;j=90,B-(90,80,C-(80,70,D-(70,60E-60#includeusing namespace std;int main()char g d;coutMEnter the g rade:H;cing d;直到输入有效等级,否则程序不继续运行while(!(g d=Af&g d=,a&g d=

26、90,B-(90,80,C-(80,70,D-(70,60E-60#includeusing namespace std;int main()char g d;coutEnter the g rade:,;cing d;直到输入有效等级,否则程序不继续运行while(!(g d=,A,&g d=a,&g d=,e,)coutInvalid g rade!Please retry:;cing d;switch(g d)case A:case a*:coutnScored 90-100!nM;break;case B:case b:coutnnScored 80-89!nn;break;case

27、C:case c:coutvv”nScored 70-79!n,;break;case D:case d:coutvvnScored 60-69!n,;break;case E:case e:coutnnScore under 60!n;break;default:coutUnexpect error八 n”;防止意外错误)2,什么叫做循环控制?归纳比较C+语言中各种循环控制语句的语法、循环条件和循环结束条件的表示形式及执行流程。【解答】循环控制是在特定的条件下,程序重复执行一些特定动作。语句语法执行流程使用场合w hil e语句w hil e(表达式)循环体;循环条件:表达式值为非0(真)循

28、环结束条件:表达式值为0(假)-*!工J达汇二i t r u e循环体 al s e程序中常用于根据条件执行操作而不需关心循环次数的情况。先判断形式循环,条件不成立时不进入循环体。rw hil e语句的执行流程d o-w hil e 语句d o循环体w hil e(表达式);循环条件:表达式值为非0(真)循环结束条件:表达式值为0(假)程序中常用于根据条件执行操作而不需关心循环次数。后判断形式循环,至少执行1次循环体。般情况,w hil e语 句 和d ow hil e语句可以互换使用。循环体|f al s ed o_w hi 1 e语句执行流程f or语句ib r(表达 式1;表达式2;表达

29、式3 )循环体;(I)表达式1称为初始化表达式,不是循环体执行部分。(2)表达式3称为后置表达式,作为循环体的最后一个执行表达式。(3)循环条件:表达式2值为非0(真)循环结束条件:表达式2值为0 (假)1f o r语句称为步长循环语句,通常用于确定循环次数的情况。由于语句的3个表达式均可以缺省,也可以用于条件循环,即循环次数不确定的情况。表达式】r1 t r u ef a l s en循环体表达式S_ _ _ _ _ _ _ _ _ _ _ _ 11。语句的执行流程3.根 据,个实际问题,用不同的循环语句编程,分析其优缺点。【解答】略。4.用 if语句和g oto语句组织循环,改写上面第3

30、题编写的程序,并分析在什么情况下可以适当使用g oto语句。【解答】在不破坏程序基本流程控制的情况下,可以适当使用g oto语句实现从语句结构内部向外的必要跳转,即按特定条件结束结构语句块的执行。程序略。5.有以卜.程序,希望判断两个输入的整数是否相等。程序通过编译,但不能达到预期结果。请分析程序能够通过C+编译而不能得到期望结果的原因。#includeusing namespace std;int main()int a,b;coutMa:cina;coutHb:;cinb;if(a=b)cout 等于 Mbendl;elsecoutav 不等于wb Vendl;运行程序,输入a 的值为4,

31、b 的值为9,显示结果如下:a:4b:99 等于9【解答】在 if语句的判断表达式(a=b)中,赋值号”应 该 是 逻 辑 等 从 语 法 上,C+的 if语句把a=b这个赋值表达式视为逻辑表达式,没有编译错误。a=b的值决定于b。若 b 的输入值不等于0,if语句的判断表达式作为逻辑真(true),否则作为逻辑假(false)。所以,题目中输入b 的值虽然不等于a,但表达式a=b为逻辑true,执行了 if语句的第1个分支。2.4编程题1.输入某学生成绩,若成绩在85分以上,则输出,*very g ood;若成绩在6085分之间,则输出“g ood”;若成绩低于60分,则输出“no g oo

32、d”。【解答】#includeusing namespace std;int main()double score;cout please input score:;cin score;if(score=85)cout Very g ood!,1;else if(score=60)cout Good!”;else cout ”No g ood!;)2.输入3 个整数,按从小到大的顺序输出它们的值。【解答】#includeusing namespace std;int main()(int a,b,c,t;cout ”a,b,c=H;cin a b c;if(ab)t=a;a=b;b=t;if(

33、ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;cout a t b c endl;)3.输入三角形的3 条边,判别它们能否形成三角形,若能,则判断是等边、等腰三角形,还是一般三角形。【解答】#includeusing namespace std;int main()double a,b,c;cout Ma,b,c=;cin a b c;if(a+b c&b+c a&c+a b)(if(a=b&b=c)cout ”等边 T角形!endl;else if(a=b|a=c|b=c)cout”等腰三角形!n endl;else cout H一般三角形!vv end!;)elseco

34、ut ”不能形成三角形!u endl;4.输入百分制成绩,并把它转换成五级分制,转换公式为:A(优 秀)90100B(良 好)8089C(中 等)7079D(合 格)6069g rade(级别)=【解答】#includeusing namespace std;int main()(double score;char g rade;cout,score=H;cin score;if(score=0&score=100)switch(int(score)/10)(case 10:case 9:g rade=a;break;case 8:g rade=b;break;case 7:g rade=*c

35、*;break;case 6:g rade=d;break;case 5:case 4:case 3:case 2:case 1:case 0:g rade=;break;)else(cout vv”数据输入错误!M endl;g oto end;cout g rade cndl;e n d:;分号不能省5.编程模拟剪刀、石头和布游戏。游戏规则为:剪刀剪纸,石头砸剪刀,布包石头。玩游戏者从键盘输入s(表示剪刀)或r(表示石头)或p(表示布),要求两个游戏者交替输入,计算机给出输赢的信息。【解答】#includeusing namespace std;int main()char first,s

36、econd;cout First input(s,r or pcin first;cout Second input(s,r or p)cin second;switch(first)(case s:switch(second)(case s:cout Scissor ties scissor?endl;g oto end;case T:cout Scissor is crushed by rock.0 endl;g oto end;case p:cout Scissor cuts paper.endl;g oto end;default:cout second input error!end

37、l;g oto end;case T:switch(second)(case s:cout Rock crushes scissor.endl;g oto end;case T:cout Rock ties rock.endl;g oto end;case*p:cout Rock is wrapped by paper.endl;g oto end;default:cout second input error!0 endl;g oto end;case p:switch(second)case s:cout Paper is cut by scissor.n cndl;g oto end;c

38、ase T:cout Paper wraps the rock.endl;g oto end;case p:cout Paper ties dl;g oto end;default:cout ”second input error!H endl;g oto end;default:cout ”First input error!1 endl;g oto end;end:;6.输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3 和 5。【解答】#includeusing namespace std;int main()int m,i=2;cout please inp

39、ut m:;cin m;while(i=m)if(m%i=0)(cout i ,H;m=m/i;else i+;)7.使用迭代公式xw+I=(xH+a/xtt)/2(n=0,1,2;=a/2)编程求某一正整数a的平方根。【解答】#include#includeusing namespace std;int main()const double eps=1 e-8;double a,x0,x;cout please input a:;cin a;xO=a/2;x=(xO+a/xO)/2;while(fabs(x-xO)eps)xO=x;x=(xO+a/xO)/2;cout x endl;8.已知

40、 x=0“,10,2 0,,1 8 0 ,求 sinx,cosx 和 tanx 的值。【解答】#includc#include#includcusing namespace std;int main()(const double pi=3.14159265;int i;double x,yl,y2,y3;cout setw(2)x setw(15)usin(x)u setw(15)ucos(x)H sctw(15)tg(x),cndl;fbr(i=0;i=18;i-H-)x=i*10*pi/180;yl=sin(x);y2=cos(x);y3=yl/y2;cout setw(2)i setw(

41、15)yl setw(15)y2 setw(15)y3 endl;9.在 100200之间找出满足用3 除余2,用 5 除余3 和用7 除余2 的所有整数。【解答】#includeusing namespace std;int main()(int i;fbr(i=100;i=200;i+)(if(i%3=2)&(i%5=3)&(i%7=2)cout i endl;)10.求 100999之间的水仙花数。所谓水仙花数,是指一个3 位数,它的每位数字的立方之和等于该数。例如,因为153=/+53+33,所以153为水仙花数。【解答】#includeusing namespace std;int

42、main()(int i,a,b,c;fbr(i=100;i=999;i-H-)(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)couti endl;)11.求1000以内的所有完数。所谓完数,是指个数恰好等于它的所有因子之和。例如,因为6=1+2+3,所以6 为完数。【解答】#includeusing namespace std;int main()int ij,s;fbr(i=l;i=1000;i+)(s=0;fbr(j=l;ji;j+)if(i%j=0)s=s+j;if(i=s)cout i endl;)12.编

43、写程序显示由符号组成的三角形图案。例如,程序运行后,屏幕显示:How many lines?用户输入:5屏幕显示:What character?用户输入:*则输出如下图案:*【解答】#includeusing namespace std;int main()(int ij,k,n;char ch;coutHow many lines?nM;cinn;coutWhat character?nH;cinch;fbr(i=l;i=n;i+)fbr(k=l;k=n-i;k+)cout M;fbr(j=l;j=2*i-l;j-H-)cout ch;cout endl;)13.已知XYZ+YZZ=532,

44、其中X,丫 和Z 为数字,编写程序求出X,丫和Z 的值。【解答】#includeusing namespace std;int main()i nt x,y,z,i;f b r(x=l;x=9;x+)f b r(y=l;y=9;y+)f b r(z=0;z=9;z-H-)(i =1 00*x+1 0*y+z+1 00*y+1 0*z+z;i f(i =5 3 2 )eout,x=,x,t My=M y *t,z=,z e n d l;第3章函数3.1 选择题1 .以下正确的函数原型为(D)。(A)f l(i nt x;i nt y);(B)voi d f l(x,y);(C)voi d f l

45、(i nt x,y);(D)voi d f l(i nt,i nt);2 .有函数原型voi d f un2(i nt);,在下列选项中,不正确的调用是(C )。(A)i nt a =2 1;f un2(a );(B)i nt a =1 5;f un2(a*3 );(C)i nt b=1 00;f ti n2(&b );(D)f un2(2 5 6 );3 .有函数原型voi d f un3(i nt*);,在下列选项中,正确的调用是(C )。(A)d oub le x=2.1 7;f un3(&x );(B)i nt a =1 5;f un3(a*3.1 4 );(C)i nt b=1 00

46、;f ti n3(&b);(D)f un3(2 5 6 );4 .有函数原型voi d f ti n4(i nt&);,在下列选项中,正确的调用是(C(A)i nt a =2.1 7;f un4(&a );(B)i nt a =1 5;f i i n4(a*3.1 4 );(C)i nt b=1 00;f ti n4(b );(D)f i i n4(2 5 6 );5 .有声明voi d f i i n5(i nt*&);i nt a,i nt*p=&a;在下列选项中,正确的调用是(B ),(A)f i i n5(&a);(B)f un5(p);(C)f un5(*a);(D)f un5(*p

47、);6 .有声明i nt f un6(i nt);i nt(*pf)(i nt)=f i m6;在下列选项中,正确的调用是(C )o(A)i nt a=1 5;i nt n=f un6(&a);(B)i nt a =1 5;c out(&pf)(a);(C)c out(*pf)(2 5 6 );(D)c out *pf(2 5 6 );7 .在VC中,若定义一个函数的返回类型为v o i d,则以下叙述正确的是(C )。(A)函数返回值需要强类型转换(B)函数不执行任何操作(C)函数本身没有返回值(D)函数不能修改实际参数的值8 .函数参数的默认值不允许为(C)o(A)全局常量(B)直接常量(

48、C)局部变量(D)函数调用9.使用重载函数编程序的目的是(A)o(A)使用相同的函数名调用功能相似的函数(B)共享程序代码(C)提高程序的运行速度(D)节省存储空间10.在下列的描述中,(B)是错误的。(A)使用全局变量可以从被调用函数中获取多个操作结果(B)局部变量可以初始化,若不初始化,则系统默认它的值为0(C)当函数调用完后,静态局部变量的值不会消失(D)全局变量若不初始化,则系统默认它的值为011.在下列选项中,(C)具有文件作用域。(A)语句标号(B)局部变量(C)全局变量3.2阅读下列程序,写出运行结果(D)静态变量#includeusing namespace std;#incl

49、udcint f(int);int main()(inti;for(i=0;i 3;i+)cout endl;)int f(int a)int b=0,c=1;b-H-;C+;return int(a+pow(double(b),2)+c);【解答】345L#includeusing namespace std;void func(int a,int b,int c=3,int d=4);int main()(func(10,15,20,30);func(10,11,12);fiinc(12,12);void fiinc(int a,int b,int c,int d)c o u t a,t

50、b ,c,t,d endl;)【解答】1015203010111241212343.#includeusing namespace std;void func(int,int,int*);int main()(int x,y,z;func(5,6,&x);fimc(7,x,&y);func(x,y,&z);cout x y n,*z endl;)void func(int a,int b,int*c)(b+=a;*c=b-a;)【解答】6,6,6#includeusing namespace std;void fiinc(int,int,int&);int main()|int x=0,y=l

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com