C++程序设计案例教程课后习题答案1-13章 北邮(高职).docx
《C++程序设计案例教程课后习题答案1-13章 北邮(高职).docx》由会员分享,可在线阅读,更多相关《C++程序设计案例教程课后习题答案1-13章 北邮(高职).docx(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计案例教程课后习题答案1-13章 北邮第1章C+语言基础一、选择题1. D 2, C 3. B 4. B 5. B二、填空题1 .特殊符号 2.注释3.大括号 4分号 5.cpp第2章数据类型、运算符和表达式一、选择题D 2. C 3. B 4. A 5. A 6. C 7. B 8. A 9. D10. C 11. C二、填空题1 .整型 2.8103. double 4. 2 1 3000000000010010017. 18. e三、编程题1 .从键盘输入某个字母的ASCII码,如:97 (字母a), 98 (字 母b), 65 (字母A)等,在屏幕上输出给字母。#i ncIu
2、de i nt ma i n (i nt argc, char* argv)二、填空题.类型、数量、下标运算符、下标、索引、常变量1 .必须要转化为一维方式、按行方式、右、越快、a数组的首地 址、(i*n+j)*u2 .地址、NULL、已经分配了内存的变量的地址、变量的地址、直 接访问、间接访问三、写出下列程序运行结果1. 101, 1012. sum=3003.C+ ProgrammingData structureEng Ii shInternetMathemat i csU!Mathemat i csU!U!、简单题.解释运算符“铲和“&”的作用,运算符”和的作用。答:在应用指针变量时,
3、“守是间接引用(dereference)运算 符,作用于一个指针类型的变量,访问该指针所指向的内存数据。因 结果是内存中可寻址的数据。是取地址运算符,作用于内存中一 个可寻址的数据(如:变量,对象和数组元素等等),操作的结果是 获得该数据的地址。运算符“.”和“-”是成员访问运算符(Member Access Oprator) o 在对象或结构外部去访问公有的数据成员或函数成员时,是在对象名 后加(点操作符),再加成员函数名或函数名就可以了。但是这 些成员必须是公有的成员,只有公有成员才能在对象的外面对它进行 访问。当用指向对象和结构变量的指针访问其公有成员时,则只要在 指针变量名后加(箭头操
4、作符),再加公有成员名就可以了。1 .设a为数组名,那么a+是否合法?为什么?答:非法。因为a是指针常量。2 .指针作为函数的参数时,它传递的是什么?实参要用什么?而 使用引用时实参要用什么?何时只能用指针而不能用引用?答:指针作为函数的参数时,它传递的是地址,是指针所指向的 变量或对象的内存首地址,在物理上讲我们传的是指针的值,与传其 它变量是没有差异的,函数获得的是另一个变量的地址,在逻辑上讲 我们是把另一个变量的地址传过去了,可以看作传地址。实参要用变 量或对象的地址。而使用引用时实参要用变量或对象本身。实参为数 组时,只能用指针而不能用引用,因为数组的引用不存在。五、编程题.打印杨辉三
5、角形(10行)。#i ncIude i nt ma i n(i nt argc, char* argv)(const i nt n=10;i nt a n n;int i, j;for (i =0;i n;i +)(for (j=0;j=i;j+)(if (j-0| | j-i)(aij=1;)e I seai j=ai-1 j-1+ai-1 j;couta i j t;)coutnn;)return 0;).写一个函数,将一个3阶方阵转置。#i ncIude int array3 3;int i, j,t;for (i=0;i3;i+)for (j=1 + i;j3;j+)It二array
6、ij;arrayi j=arrayj i;arrayj i=t;)1i nt ma i n (i nt argc, char* argv)(int i, j ;cout请输入矩阵中各元素的值:end I ;for (i=0;i3;i+)for(j=0;j3;j+)c i nar ray i j;cout矩阵转置前:endl;for (i=0;i3;i+)(for (j=0;j3;j+)coutarrayi jcoutend I ; convert(array);cout”矩阵转置后:Gendl;for (i=0;i3;i+)(for(j=0;j3;j+)coutarrayi jcoutend
7、I ;1return 0;)3.使用指针编写函数strcat (),实现两个字符串的首尾连接(将 字符串str2接到st门的后面,st门最后面的0被取消)。# i ncIude char* strcat (char* s,const char* t)(char* st=s;while(*s)s+;while (*s+=*t+);return st;1i nt ma i n(i nt argc, char* argv)char s1 15 = HHel Io”,s215 = uWor Id;coutstrcat (s1, s2) end I ;return 0;)第6章 非基本数据类型一、选择题
8、1. C 2. C 3. D 4. A 5. D二、写出下面程序的运行结果zhangsan 37 2493三、编程题1 .定义一个表示日期的结构体变量(包括年月日),写一个函数, 返回值为某天是当年的第几天。#include struct date定义结构体类型(i nt year;i nt month;i nt day;1;i nti, count, daysofmonth 13 = 0, 31,28, 31,30, 31,30, 31,31,30, 31 ,30,31:i nt ma i n(i nt argc, char* argv)(struct date d; 定义结构体变量i nt
9、 days=0;cout请输入日期(年 月 日):endl;c i nd. yeard. monthd. day;count二d. day;把dt. d计入总天数for (i=0;i2&(d.year%4=0&d. year%100!=0|d. year%400=0)count+=1;如果是闰年,则要把3月份和3月份以后的总天数加1 cout这一日是这一年的第count日end I ;return 0;11 .定义一种表示学生的姓名,课程名,期中和期末成绩的结构, 然后输入一个学生的期中和期末成绩,计算平均成绩并输出。#incIude struct studentchar *name;char
10、 *coursename;float qzcj;fI oat qmcj;stu=LiPing,“语文”,80,85;i nt mai n (i nt argc, char* argv)(float avgScore;avgScore= (stu. qzcj+stu. qmcj)/2;coutstu. coursenameV”平均成绩为:avgScoreend I ;return 0;)第7章类和对象一、选择题A 2. B 3. C 4. A 5. A 6. B 7. C 8. D 9. A10. B 11. D 12. B二、程序题4.4.数数数数 2函函函函 01构构构构 /2析析析析 10
11、用用用用 1/tocontinue1.23.45,6Press any key to continuehe student is S he teacher is T ress any key to cont inue三、简答题1 .构造函数和析构函数的作用是什么?什么时候需要自己定义构 造函数和析构函数?答:构造函数是对象建立时,由系统调用的特殊的成员函数。它 的作用是实现数据成员的初始化。析构函数也是一个特殊的成员函数, 它的作用正好与构造函数相反,旨在释放对象所占空间的资源。类中可以定义多个构造函数,实现构造函数重载,以适应不同对象 对数据成员初始化的不同要求。构造函数可以不带参数,作为默
12、认构 造函数,也可以根据数据成员初始化情况,建立带参构造函数。类定义中析构函数只有一个,且不带参数。当对象所在的函数或程 序结束时,系统自动调用析构函数,释放对象所占空间。2 .静态成员函数的主要作用是什么?答:在类中定义函数时,如果函数定义行前有关键字static,那 么这个函数就是静态成员函数。静态成员函数主要用于处理静态数据 成员。3 .定义指向对象成员函数的指针变量的方法和定义指向普通函数 的指针变量方法的不同处?答:与普通指向函数的指针变量不同,定义指向对象成员函数的 指针变量时,指针变量名前需加上类名;初始化指针变量名时,成员 函数名前面需加上类名,即函数类型(类名:*指针变量名)
13、(参数表);/定义指针变指针变量名二&类名:成员函数名;初始化指针变量(对象名.*指针变量名)();调用指针变量所指的对象成员函数4 .分析友元函数的利弊。答:如果在类之外定义的一个函数,这个函数可以是不属于任何 类的非成员函数,也可以是其他类的成员函数,在类体中用friend 对其进行声明,此函数就称为本类的友元函数。友元函数可以访问这个类中的私有成员,虽然方便,但它的存在 char c;cout请输入 ASCI I 码值:。end I ;cini ; 输入 ASCI I 码c二 i ;coutcend I ;/输出对应字符return 0;12.编写一个程序,将“China”译成密码。编码
14、的规律:用原来 的字母后面第4个字母代替原来的字母。#incIude i nt ma i n(i nt argc, char* argv)(char c1 =C,c2二h,c3二i,c4二n,c5二a;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;coutc1 c2c3c4c5end I ;return 0;也对数据成员的安全性产生潜在的威胁。1 .定义一个类Point。要求如下所述:(1)构造函数初始化类Point类的对象;(2)定义函数Distance,计算平面上两点之间的距离。#i ncIude #i ncIude us i ng namespace std;cI ass
15、Point(pr i vate:doubIe x1,y1,x2, y2;pub I ic:Po i nt () :x1 (0),y1 (0), x2 (0), y2 (0)Poi nt (i nta1, i ntb1, i nta2, i ntb2) :x1 (a1),y1 (b1),x2 (a2), y2 (b2)1)doub Ie Di stance ()t1=pow(x2-x1,2);t2=pow(y2-y1,2);return sqrt (t1+t2););void ma in ()(Point p (1,2, 4, 2);coutHThe d i stance i s Hp. D i
16、 stance () end I ;)2.建立一个对象数组,内放5个人的数据(ID号、姓名),设立 一个函数find,用指向对象的指针做函数参数,在find函数中按给 定的ID号输出其姓名。#i ncIude #i ncIude us i ng namespace std;c I ass Person(pub I ic:1 nt i d;char name10;pub lie:Person (i nt i, char n 10):i d (i)(strepy (name, n);)boo I f i nd (i nt i d_f i nd)(if (id_find二二id)(,nameend
17、I ;cout i d:id, name: return true;)return false;);i nt ma i n ()(i nt i d_f i nd;Personp 5 = Person (1, zhao), Person (2, q i an11), Person (3, sun),Person (4, I i),Person (5, zhou);Person *p_f ind;coutp I ease i nput the i d: end I ;c i n i d_f i nd;for (i nt i=0;if i nd (i d_f i nd) break;)return
18、0;)3.有一信息管理系统,要求检查每个登录系统的用户(User)的 用户名和口令,系统检查合格以后方可登录系统。用C+程序予以描 述。#i ncIude #i ncIude us i ng namespace std;cI ass Personpr i vate:char userName10;char password6;pub I ic:Person (char u 10,char p6)(strcpy (userName, u);strcpy (password, p);)boo I f i nd (char name10, char pass 6) (i f (strcmp (use
19、rName, name)!=0)(coutHnot ex i stend I ;return false;) eIse i f (strcmp (password, pass)!=0) coutn i nva I i d password Hend I ; return false;) e I se (cout va lid! end I ;return true;)1);i nt ma i n ()(Persons 5 = Person (zhao,zhao), Person (q i an, q i an), Person (sun, sun), Person (Ii, Ii), Pers
20、on(zhou, zhou) );char name10, pass6;coutnp I ease i nput username: nend I ;c i nname;coutnp I ease i nput password: nend I ;c i npass;for (i nt i =0; i 5;i +)(i f ( s i . find (name, pass) break;)4,定义一个类Student记录学生计算机课程的成绩。要求使用静 态成员变量或静态成员函数计算全班计算机课程的总成绩和平均成 绩。#i ncIude #i ncIude us i ng namespace s
21、td;cI ass Studentpub lie:1 nt i d;char name10;int score;stat i c i nt totaI Score;Student (int i, char n10, int s) : id (i), score (s)lstrepy (name, n);1stat ic void d i sp I ay ()(coutHtota I Score : Htota I Scoreend I ;coutHaveScore : ntota I Score/5end I ;)stat ic void compute (Student s)totaISco
22、re+=s. score;);i nt Student:totaI Score =0;i nt ma i n 0(Students 5 = Student (1, zhao, 90), Student (2, q i an, 82), Student (3, sun, 75), Student (4, I i, 89), Student (5, zhou, 62);for (i nt i=0; i5;i +)(si. compute (s i);)Student: : d i sp I ay ();return 0;1 第8章类的继承与派生一选择题D 2. A 3. A 4. B 5. B 6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计案例教程课后习题答案1-13章 北邮高职 C+ 程序设计 案例 教程 课后 习题 答案 13 北邮 高职
限制150内