C++程序作业答案.docx

上传人:太** 文档编号:97989002 上传时间:2024-07-08 格式:DOCX 页数:47 大小:46.20KB
返回 下载 相关 举报
C++程序作业答案.docx_第1页
第1页 / 共47页
C++程序作业答案.docx_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《C++程序作业答案.docx》由会员分享,可在线阅读,更多相关《C++程序作业答案.docx(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机应用专业、c+语言程序设计课程作业第一次作业一、填空题1 . C+语言中的每条基本语句以=作为结束符,每条复合语句以 作为结束符。2 .用于输出表达式值的标准输出流对象是cout,用于从键盘上为变 量输入值的标准入流对象是cin。3 .当不须要函数返回任何值时,则应把该函数类型定义为void。4 .执行 Ucout143? + 18?二143+18endl; ”语句后得到 的输出结果为143+18=161。5 .执行cout “ning chen” 38endl;”语句后得到的输出 结果为 ningchen38。6 .在每个C+程序中都必需包含有这样一个函数,该函数的函数名为 main。

2、7 . C+源程序文件的缺省扩展名为 cpp,由C+源程序文件编译而成 的目标文件的缺省扩展名为。g ,由C+目标文件连接而成的可执行 文件的缺省扩展名为exe。8 .程序运行中须要从键盘上输入多于一个数据时,各数据之间应运用 空 &或逗号符号作为分隔符。9 .十进制数25表示成符号C+语言规则的八进制和十六进制数分别为 3 和 19符号。10 .在C+语言中,用转义字符序列或操纵符endl 表示输出if(n= =0) return y; else return y/n;求键盘输入的数的平均值,输入-100结束(不计在平均值内),若没有数 输入则返回0o计算机应用专业“C+语言程序设计”课程作

3、业其次次作业一、填空题1 .假定一个一维数组的定义为“Char * a5;,则该数组所含元素的 个数为,所占存储空间的字节数为20。2 .假定一个二维数组的定义为“int a46; ,则该数组所含元素的 个数为24,所占存储空间的字节数为96。3 .假定一个二维数组的定义为“char a88;,则该数组所含元素 的个数为64,所占存储空间的字节数为 64。4 .执行typedef float ABC10; ”语句把ABC定义为具有10个单精 度元素的数组 。5 .在函数外定义的变量称为 全局变量,若没有被初始化则系统隐含对 它赋初值Qo6 .函数中的形参变量的初值由调用该函数时获得。7 .函数

4、调用时,实参向形参的传送分为传值 和传址 两种传 送方式。8 .变量分为全局和局部两种变量没有赋初值时,其值是不确定的。二、给出下列程序运行后的输出结果1. #includevoid mian () int a10= 12, 39, 26, 41, 55, 63, 72, 40, 83, 95;int i0=0, il=0, i2=0;for (int i=0; i10; I+)switch (ai%3) case 1 : i0+ +; break;case 2 : il+ +; break;case 3 : i2+ +;)cout i0 il i2endl;)case 4 2 42. #in

5、clude#includevoid main () char*a5_“ student“ , workerv cadre apple” , “ peasantv );char * pl,*p2; pl=p2= a0;for (int i=0; i0) pl= ai;if (strcmp (ai, p2) 0) p2= ai;coutpl p2endl;worker apple3. # includevoid main () int a8= 36, 73, 48, 14, 55, 40, 32, 66;int bl, b2;bl=b2= a0;for (int i=l; ibl) if (blb

6、2) b2=bl;bl= ai;coutbl b2endl;)73 364. #includevoid main () char a = aabcdaabacabfgacd int il=O, i2=0, i=0;while (ai) if (ai = = ? a ) il+if (ai=二b ) i2+i + +;)coutil i2endl;)7 35. # includevoid main () char a = abcdabcdbdaeafv ; int b5= 0 , i=0;while (ai) switch (ai) casea:b0+;caseb:bl+;casec:b2+;+

7、;+;break;break;break;break;cased:b3+;default : b4 + +;i + +;for (i=0; i5; i + +) coutbi?;coutendl;4 3 2 3 26. # includevoid main () int a10 = 73, 83, 54, 62, 40, 75, 80, 92, 77, 84;int b4 = 60, 70, 90, 101;int c 4 = 0;for (int i=0; i =bj ) j + +;cj + +;for (i =0; i 4; i + +) coutci;coutendl;)2 16 17

8、. # includevoid main () int a3 4 = 1,2, 7, 8, 5, 6,11,12, 24, 10, 3,4; int m = a0 0; int ii =0, jj =0;for (int i =0; i3; i + +)for (int j =0; jm) cout ii jj 2 0 248. #include void main () int a =10, b =20; cout a a * = 4;int b = a +35; cout a )cout a m= ai j; ii=i; jj=j; aii jjendl;b endl;b endl;b e

9、ndl;10 20 40 75 40 20三、写出下列每个函数的功能1. int WC (int a , int n, int k) int c = 0;for (int i = 0; i = k) c + +;return c;返回有n个元素的整型数组a中大于等于整数k的元素个数。2. #includevoid WA (int a , int n) for (int i = 0; in; i + +) int k 二 i;for (int j = i+1; jn; j + +)if (ajak) k = j;int x = ai ; ai = ak ; ak = x;)函数功能是将有n个元素

10、的整型数组从小到大排列。3. #includetemplateint WG (TT a, TT b) if (ab) return 1; else if (a = = b) return 0;else return 1;比较两个随意类型的数a和b,若a大于b则返回1,若a等于b则返 回0,若a小于b否则返回1。4. # includetemplateType WD (Type a , int n) Type m= a0;for (int i = 0; i m) m = ai;return m;返回有n个元素的随意类型数组中最大的数。5. Templatevoid WE (Type a ,Typ

11、e b , int n) for (int i = 0; ib) o二、给出下列程序运行后的输出结果以下结果中空格以一表示1. # includevoid main () int a8= 7, 9, 11, 13, 3, 8, 15, 17;int *p 二 a;一个换行符。11 .执行Ucoutchar ( b +2) endl;”语句后得到的输出结果为 do12 .执行coutchar ( K -3) endl; ”语句后得到的输出结果为H o13 .已知A Z的 ASCH 码为 6590,当执行 “int x= H +5; ” 语句后x的值为77。14 .已知A z T的 ASCII 码

12、为 6590,当执行 “char ch=16*5+2; coutchendl;语句序列后,得到的输出结果为R。15 .假定一个枚举类型的定义为“enum RAxa,xb,xc,xd; ,则执行 “cout xc=w xcendl;”语句得到的输出结果为 xc=2。16 .假定一个枚举类型的定义为“enum RBab, ac=3, ad, aex=ad; w则x 的值为17 . Char、short和int类型的大小分别为 1字节 、2字节 和 4 子下。18 . float和double类型的大小分别为 4字节和 8字节。19 .十进制数128和-3. 26的类型分别为 整型和 双精度型。20

13、 .若须要定义一个标识符常量,并且使C+能够进行类型检查,则应在 定义语句的起先用保留字define。21 .运用const语句定义一个标识符常量时,则必需对它同时进行 初始 化 。22.执行 “int x=45, y=16; coutx/y? x%yendl; ”语句序列coutsetw (5) * p + +;if (i +1) %4 =0) coutendl;)7911133815172. #includevoid main () int a5= 3,6, 15,7,20);int *p 二 a;for (int i = 0; i5; i + +)coutsetw (5) * p + +

14、;coutendl;for (i =0; i5; i + +)coutsetw (5) * p;coutendl;361572020715633. # includevoid main () int a8 = 4, 8, 12, 16, 20, 24, 28, 32);(+ + I ui,0= I MI) JOJ,0 = s q.ui (u (i2 * 4.UI)yq U9pnpui # eg09 00 03ipuo 人,X wo 0Z+ 人= d *,【pusd * q.noo,询二 d:01+ x =d *:,d * noo,x= d,d * (Qf= Cox ( ) UIPIU piOA

15、(q -diupmoiapnpui 甘 步83 91 f(;pua)noo,(8+?d)。四m 甘+ d, d* noo OP,口 = d* q.uiS + = ai;return s;)void main () int a = 5, 10, 15, 20, 25, 30;int b =LA (a, 5);int c =LA (a+3, 2);cendl;cout b c b +275 45 1656. # includevoid LC (int a, int b) int x = a;a = b; b = x;cout a b endl;)void main () int x =15, y

16、=36;LC (x,y); cout x y endl;36 157. #includevoid LF (int & x, int y) x = x + y;y = x + y;coutv x = x” , y = y endl;)void main () int x =5, y =8;cout x = x , y = y endl;LF (x, y);cout“ x = x” , y = y endl;)x=5, y =8x=13, y=21x=13, y=88. #includevoid LG (int * & a, int & m) a = new intm;int * p = a;fo

17、r (int i = 0; im; i + +)* p + + =2 * i +1;void main () int * p, n =5;LG (p, n);for (int i = 0; in; i + +)cout pi ;coutendl;delete p;1 3 5 7 99. #includevoid LH (int * a, int n) int * p = a + n 1;whlie (ap) int x =* a;* a 二* p;* p = x;a + +; p;void main () int * d = new int5;for (i = 0; i5; i + +) di

18、=2 * i +3;coutsetw (5) di ;coutendl;LH (d,5);for (i = 0; i5; i + +) coutsetw (5) di ;coutendl;delete d;357911n 975310. # includestruct Worker char name 15 ; / /姓名int age; / /年龄float pay; / /工资;void main () Worker x = “ weirong” , 55, 640);Worker y, * p;y = x; p =&x;cout y. name y. age y. payendl;cou

19、tname age+5 pay-10endl;)weirong 55 640weirong 60 63011. #include#includestruct Worker char name 15 ; / /姓名int age; / /年龄float pay; / /工资;void main () Worker x;char * t = liouting” ;int d =46; float f =725;strcpy (x. name, t);x. age = d; x. pay = f;cout x. name x. age x. payendl;liouting 46 725三、写出下列

20、每个函数的功能1. # includevoid LI (int n) int * a = new int n, * p = a + n;for (int i =0; i ai;for (i = n1; i =0; i ) cout * ( p) cout n;delete a;输入n个数并以相反的依次显示出来。2. #includevoid LK (int a , int n, int * & b, int& m) float s =0; int i;for (i =0; in; i + +)s + = ai;s/= n;m = 0;for (i =0; i = s) m + +;b = ne

21、w intm;int * p = b;for (i =0; i = s) * p + + = ai;将数组a中大于平均数的元素存放到动态申请的数组b中,数组b的大小 由m返回。3. / /struct Worker / / char name 15 ; / /姓名/ /int age; / /年龄/ /float pay; / /工资/ /;istream & operator (istreamfe istr, Workerfe x) cout请输入一个职工记录:姓名、年龄、工资 Gendl;istr x. name x. . age x. . pay;return istr;重载istrea

22、m的操作符以输入Worker结构对象。4. / / struct StrNode / / char name 15 ; / /字符串域StrNode * next; / /指针域/);void QB (StrNode * & f, int n) if(n = = 0)f = NULL; return; f =new StrNode;cinfname;StrNode * p = f; whlie ( n) p = p next= new StrNode;cinp name;p next=NULL;创建有n个结点的StrNode类型的链表,并从键盘输入每个结点的 name 值。5. / / str

23、uct StrNode (char name15; StrNode * next; ); void QC (StrNode * f) whlie (f) coutnamenext;遍历链表并输出全部结点的name数据成员计算机应用专业“C+语言程序设计”课程作业后得到的输出结果为2 13。23.假定x=10, y=6,则表达式2+x+ +和+ +y*3的值分别为12和21 o24 .算术表达式(x2+y2) / (2-xy)对应C+表达式为 (x*x+y*y ) /(2-x*y)。25 .算术表达式xy2/ (3a+4b-l)对应的C+表达式为 x*y*y/ (3*a+4*b-l)。26.表达

24、式 float (25)/4 和 int (14. 6)%5 的值分别为 6.25和 4。27表达式a=a+b表示成复合赋值表达式为a+二b。28 .表达式a=a+l表示成增量表达式为a+。29 .增量表达式+ +y表示成赋值表达式为y=y+1。30 .关系表达式(x=0)的等价表达式为!x。31 .关系表达式(x! =0)的等价表达式为x。32 .关系表达式x+yz的相反表达式为x+y5& x10的相反表达式 x=10。34 .逻辑表达式ab | | b二二5的相反表达式为 ay和x=y的逻辑值分别为false和trueo36 .假定x=5,则执行“a=(x? 10:4*2); ”语句后a的

25、值为10。37 .假定a=5,则条件表达式“a=二0? 10:20的值为20。38 .执行“typedef int Data Type; ”语句后,在运用int定义整型变 量的地方都可以运用DataType 定义整型变量。第四次作业一、填空题1 .在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调 用该类的一构造函数 使其初始化。2 .当一个类对象被撤消时将自动调用该类的析构函数 o3 .对基类数据成员的初始化是通过执行派生类构造函数中的初始化表 来实现的。4 .对一个类中的数据成员的初始化可以通过构造函数中的.初始化表 实现,也可以通过构造函数中的赋值语句 实现。5 .在一个派生类

26、中,对基类成员、类对象成员和非类对象成员的初始化 次序的先基类成员,后类对象成员,最终非对象成员。6 .当撤消一个含有基类和类对象成员的派生类对象时,将首先完成派生 类本身的析构函数定义体的执行,接着完成类对象成员的析构函数定义体 的执行,最终完成基类成员的析构函数定义体的执行。7 .设PX是指向一个类动态对象的指针变量,则执行“delete px; ”语 句时,将自动调用该类的析构函数。8 .当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。9 .假定一个类对象数组为AN,当离开它的作用域时,系统自动调用该 类析构函数的次数为N次。10 .假定AB为一个类,则执行“ABa10; ”

27、语句时,系统自动调用该类 构造函数的次数为10次。11 .假定拥护没有给一个名为AB的类定义构造函数,则系统为其隐含定义 的构造函数为空构造函数。12 .假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义 的析构函数为空析构函数。13 .若须要把一个函数“void f(); 定义为一个类AB的友元函数,则应 在类AB的定义中加入一条语句:friend void f();。14 .若须要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中 加入一条语句:friend class AB; o15 .假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始 化为0时,所运用

28、写法为AB:bb = 0;o16 .假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名 访问该成员bb的写法为AB:bb。17 .当类中一个字符指针成员指向具有n个字节的储存空间时,它所能储 存字符串的最大长度为n-l。18 .假定AB为一个类,则该类的拷贝构造函数的声明语句为AB:AB(AB&)。19 .对类对象成员初始化是通过执行构造函数中的初始化表完成的。20 .对于类中定义的成员,其隐含访问权限为private,对于结构中定义的 成员,其隐含访问权限为public。21 . 一个类的友元函数或友元类能够通过成员操作符访问该类的全部数据 成员和函数成员。22 .假定要对类A

29、B定义加号操作符重载成员函数,实现两个AB类对象的 加法,并返回相加结果,则该成员函数的声明语句为:AB operator + (AB,AB) ;o23在C+流类库中,根基类为ios。24 .在C+流类库中,输入流类和输出流类的名称分别为istream和 ostream025 .若要在程序文件中进行标准输入输出操作,则必需在起先叮嘱中运用iosteam, h头文件。26 .若要在程序文件中进行文件输入输出操作,则必需在起先的#皿1鼠6 叮嘱中运用fstream, h头文件。27 .当从字符文件中读取回车和换行两个字符时,被系统看作为一个换行 符。28 .当运用ifstream流类定义一个流对象

30、并打开一个磁盘文件时,文件的 隐含打开方式为读取的文本文件,当运用ofstream流类定义一个流对象 并打开一个磁盘文件时,文件的隐含打开方式为写入的文本文件。29 .当须要运用istrstream流类定义一个流对象并联系一个字符串时,应 在文件起先运叮嘱,使之包含strstrea. h文件。二.给出下列程序运行后的输出结果1. #includeclass Aint a, b;public:A ( ) a=b=0;A ( int aa, int bb) a=aa; b=bb;couta bendl;);void main( )A x, y (6, 3), z (8, 10);6 38 102.

31、 #include class A(int a, b;public:A(int aa= 0, int bb= 0) : a (aa), b (bb)(coutz/Constructor! a + bendl; ;void main() A x, y (2, 5), z(y);Constructor!?3. #includeclass Aint * a;public:A(int aa= 0)a = new int (aa);coutz/Constructor! * aendl;);void main ()A x;A * p = new A (5);delete p;)Constructor!0C

32、onstructor!0Constructor!54. #includeint a;public:A(int aa= 0) : a(aa) )a endl;A() cout/zDestructor! ;void main ()(A x(5);A * p = new A(10);delete p;)Destructor!10Destructor!55. #includeclass A int * a;public:A (int x)a = new int (x);coutz/Constructor! * aendl;A() delete a; cout/zDestructor ! z,endl;

33、);void main()A x(9),* p;p = new A(12);delete p;Constructor!9Constructor!12Destructor!Destructor!6. #include class A(int a;public:A(int aa= 0) : a(aa)coutz/Cons true tor A! aendl;class B:public Aint b;public:B(int aa, int bb) : A(aa), b(bb)cout/zCons true tor B! bendl;);void main()(B x(2,3),y(4, 5);)

34、Constructor A!2Constructor B!3Constructor A!4Constructor B!57. #include class Aint a;public:A(int aa= 0)a = aa;A() cout,zDestructor A! aendl;class B:public Aint b;public:B(int aa= 0, int bb= 0) : A(aa) b = bb;B() cout,zDestructor B! z/bendl;);void main ()B x(5), y (6, 7);)Deconstructor B!7Deconstruc

35、tor A!6Deconstructor BIODeconstructor A!58. #include#includeclass Aint a, b;char op;public:A(int aa, int bb, char ch)a = aa;b = bb;op = ch;int Comp ()switch(op)(case :return a + b;case-:return a - b;case:return a * b;case/:if (b!=0)returna/b;elseexit (1);case:if (b!=0)returna%b;elseexit (1);default:exit (1);|)void SetA(int aa, int bb, char ch)a = aa;b = bb;op = ch;);void main(void)39 .设x和y均为bool量,x & & y为真的条件是 x=true y=true40 .设x和y均为bool量,则x | | y为假的条件是x、y都为false二、写出下列程序运行后的输出结果1. ttinclude void SB (char ch) switch (ch) case A :case a:coutwell“ !” ; break;case B :

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

当前位置:首页 > 应用文书 > 解决方案

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁