当前位置:文档之家› 西安石油大学《面向对象程序设计》(填空题)

西安石油大学《面向对象程序设计》(填空题)

西安石油大学《面向对象程序设计》(填空题)
西安石油大学《面向对象程序设计》(填空题)

面向对象程序设计期末综合练习二(填空题)

填空题

1. C++语言是在_________语言的基础上发展起来的。

2. C++语言的编译单位是扩展名为__________的__________文件。

3. 行尾使用注释的开始标记符为__________。

4. 多行注释的开始标记符和结束标记符分别为__________和__________。

5. 用于输出表达式值的标准输出流对象是_________。

6. 用于从键盘上为变量输入值的标准输入流对象是________。

7. 一个完整程序中必须有一个名为________的函数。

8. 一个函数的函数体就是一条_________语句。

9. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。

10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。

11. 程序中的预处理命令是指以______字符开头的命令。

12. 一条表达式语句必须以______作为结束符。

13. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。

14. 使用#include命令可以包含一个头文件,也可以包含一个______文件。

15.一个函数定义由________和________两部分组成。

16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。

17.C++头文件和源程序文件的扩展名分别为______和______。

18.程序文件的编译错误分为________和________两类。

19.当使用_______保留字作为函数类型时,该函数不返回任何值。

20.当函数参数表用______保留字表示时,则表示该参数表为空。

21.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。

22. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到________的开始位置。

23. 假定x=5,y=6,则表达式x++*++y的值为__________。

24. 假定x=5,y=6,则表达式x--*--y的值为__________。

25. 假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为__________和__________。

26. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。

27. C++常数0x145对应的十进制值为__________。

28. C++常数0345对应的十进制值为__________。

29. 十进制常数245对应的十六进制的C++表示为__________。

30. 十进制常数245对应的八进制的C++表示为__________。

31. signed char类型的值域范围是________至__________之间的整数。

32. int和float类型的数据分别占用_________和__________个字节。

33. float 和double 类型的数据分别占用_________和________个字节。

34. bool 和char 类型的数据分别占用_________和________个字节。

35. unsigned short int 和int 类型的长度分别为_________和________。

36. 字符串”This\’s a book.\n ”的长度为__________。

37. 字符串”\nThis\’s a pen\n\n ”的长度为__________。

38. 在C++中存储字符串”abcdef ”至少需要________个字节。

39. 在C++中存储字符串”a+b=c ”至少需要________个字节。

40. 假定x 和y 为整型,其值分别为16和5,则x%y 和x/y 的值分别为__________和__________。

41. 假定x 和y 为整型,其值分别为16和5,则x/y 和double(x)/y 的值分别为__________和__________。

42. 假定x 是一个逻辑量,则x && true 的值为__________。

43. 假定x 是一个逻辑量,则x || true 的值为__________。

44. 假定x 是一个逻辑量,则x && false 的值为__________。

45. 假定x 是一个逻辑量,则x || false 的值为__________。

46. 假定x 是一个逻辑量,则!x || false 的值为__________。

47. 假定x 是一个逻辑量,则x && !x 的值为__________。

48. 假定x 是一个逻辑量,则x || !x 的值为__________。

49. 数学算式xy

y x 2+的C++表达式为________________。 50. 数学算式

y x xy +3的C++表达式为________________。 51. 数学算式221by

ax +的C++表达式为________________。 52. 设enum Printstatus{ready,busy,error}; 则 cout<

53. 设enum Printstatus{ready=2,busy,error}; 则cout<

54. 常数-4.205和6.7E-9分别具有__________和__________位有效数字。

55. 枚举类型中的每个枚举值都是一个__________,它的值为一个__________。

56. 常数100和3.62的数据类型分别为__________和__________。

57. 若x=5, y=10, 则计算y*=++x 表达式后,x 和y 的值分别为______和______。

58. 假定x 和ch 分别为int 型和char 型,则sizeof(x)和sizeof(ch)的值分别为______和______。

59. 假定x=10,则表达式x<=10?20:30的值为______。

60. 表达式sqrt(81)和pow(6,3)的值分别为______和______。

61. 含随机函数的表达式rand()%20的值在_____至______区间内。

62. 在switch 语句中,每个语句标号所含关键字case 后面的表达式必须是_______。

63. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。

64. 作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。

65. 执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)________执行。

66. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

67. 若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

68. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。

69. 当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。

70. 在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。

71.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。

72. 元素类型为int的数组a[10]共占用________字节的存储空间。

73. 元素类型为double的二维数组a[4][6]共占用________字节的存储空间。

74. 元素类型为char的二维数组a[10][30]共占用________字节的存储空间。

75. 存储字符’a’和字符串”a”分别需要占用________和________个字节。

76. 空串的长度为________,存储它需要占用________个字节。

77. 字符串”\’a\’xy=4\n”的长度为________。

78. 字符串”a:\\xxk\\数据”的长度为________。

79. 用于存储一个长度为n的字符串的字符数组的长度至少为________。

80. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为__________。

81. 若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为__________。

82. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。

83. 对一个二维字符数组a进行初始化的数据为{”123”,”456”,”789”},则a[1]元素对应的字符串为__________。

84. strlen(”apple”)的值为________,strcmp(”a”,”A”)的值为________。5 1

85. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。

85. 假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10},则a[2]和a[5]分别被初始化为________和________。

86. 假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]和a[2][3]分别被初始化为_______和________。

87. 在C++语言中,一个函数由函数头和__________组成。

88. 重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。

89. 如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。

90. 若“double x=100;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某个函数需要访问此x , 则应在文件F2.CPP中添加对x的声明语句为_________________。

91. 定义一个函数模板要用到的第一个修饰符是____________。

92. 在函数模板的参数中,用class修饰的参数称为__________参数。

93. 如果一个函数直接或间接地调用自身,这样的调用称为____________调用。

94. 已知int cubin(int n){return n*n*n;}和double cubin(double n){return n*n*n;}是一个函数模板的两个实例,假定类型参数用T表示,则该函数模板的定义是__________________________________。

95. 对于无返回值函数,定义函数时要用__________修饰函数类型。

96. 如果一个函数定义中使用了__________修饰,则该函数不允许被其它文件中的函数调用。

97. 如果一个函数中有多个默认参数,则默认参数必须全部处在形参表的________部分。

98. 定义外部变量时,不用存储类说明符_________,而声明外部变量时用它。 99.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__________。

100. 函数形参的作用域是该函数的____________。

101. C++提供的预处理命令有宏定义命令,条件编译命令和____________。

102. 程序的编译是以__________为单位进行的。

103. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__________。 104. 全局变量和静态局部变量具有静态生存期,存放在内存的____________区中。

105. 局部变量具有局部生存期,存放在内存的____________区中。

106. 若二维数组a有m列,设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中位置序号的公式为____________。

107. 若有定义“double a[3][5];”,则a 数组中行下标和列下标的最大值分别为________和________。

108. 若有定义“struct AA {int a; char b; double c;}x;”,则x占用空间大小为________字节。

109. 当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的_______。

110. 一个指针类型的对象占用内存的________个字节的存储空间。

111. 一个指针指向一个数据对象,它保存着该数据对象的________,若数据对象为DataType类型,则相应的指针类型为__________。

112. 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为________。

113. 假定一个数据对象为int*类型,则指向该对象的指针类型为_______。

114. 假定p是一个指向整数对象的指针,则用________表示该整数对象,用________表示指针变量p的地址。

115. 假定p是一个指针,则*p++运算首先访问________,然后使________的值增1。

116. 假定p是一个指针,则(*p)++运算首先访问________,然后使________的值增1。

117. 假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为________。

118.假定p所指对象的值为25,p+1所指对象的值为42,则*++p的值为________。 119. 假定p所指对象的值为25,p+1所指对象的值为42,则执行(*p)++运算后,p所指对象的值为________。

120.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为________。

121.假定a是一个一维指针数组,则a+i所指对象的地址比a大________字节。 122. 假定a是一个一维数组,则a[i]的指针访问方式为________。

123. 假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为____________。

124. 一个数组的数组名实际上是指向该数组________元素的指针,并且在任何时候都不允许________它。

125. 假定指向一维数组b[10]中元素b[4]的指针为p,则p+3所指向的元素为_______,p-2所指向的元素为________。

126.若要定义整型指针p并初始指向x,则所使用的定义语句为________。

127. 若p指向x,则________与x的表示是等价的。

128. 在一个二维数组int a[m][n]中,包含的一维元素a[i]的类型为________,访问a[i]时返回值的类型为________。

129. 假定一个二维数组为c[5][8],则c[3]的值为二维元素________的地址,c[3]+2的值为二维元素________的地址。

130. 假定p为指向二维数组int d[4][6]的指针,则p的类型为________。

131. 假定a是一个二维数组,则a[i][j]的指针访问方式为____________。

132. 若要把整型变量y定义为x的引用,则所使用的定义语句为________。

133. 若y是x的引用,则对y的操作就是对_______的操作。

134. 若y是x的引用,则&y和&x的值________,即为变量________的地址。 135. 执行int p=new int操作得到的一个动态分配的整型对象为________。

136. 执行int *p=new int[10]操作,使p指向动态分配的数组中下标为0的元素,该元素可表示为_______或________。

137. 执行char *p=new char(’a’)操作后,p所指向的数据对象的值为________。 138. 执行new char[m][n]操作时的返回值的类型为________。

139. 执行________操作将释放由p所指向的动态分配的数据空间。

140. 执行________操作将释放由p所指向的动态分配的数组空间。

141. NULL是一个符号常量,通常作为空指针值,它的具体值为________。

142. 变量v定义为“double v=23.4;”,要使指针pv指向v,则定义pv的语句为______________。

143. 已知语句“cout<

144. 已知语句“cout<

145. 指针变量pv和pc定义为“void *pv =”Hello, word!”; char *pc;”,要将pv值赋给pc,则正确的赋值语句是_______________。

145. 数组a定义为“int a[100];”,要使p[j] 与a[j] 等效,则指针p应定义为______________。int *p=a; (或int *p=&a[0];)

146. 数组b定义为“int b[20][100];”,要使p[j][k] 与b[j][k] 等效,则指针p应定义为__________________。

147. 与结构成员访问表达式p->name等价的表达式是____________。

148. 与结构成员访问表达式(*fp).score等价的表达式是____________。

149. 已知变量a定义为“int a=5;”,要使ra成为a的引用,则ra应定义为____________。

150. 已知有定义“int x, a[]={5,7,9}, *pa=a;”,在执行“x=++*pa;”语句后,x的值是________。

151.已知有定义“int x, a[]={6,10,12}, *pa=a;”,在执行“x=*++pa;”语句后,*pa的值是________。

152. 已知有定义“int x, a[]={15,17,19}, *pa=a;”,在执行“x=*pa++;”后,*pa的值是________。

153. 以面向对象方法构造的系统,其基本单位是__________。

154. 每个对象都是所属类的一个__________。

155. 对象将其大部分实现细节隐藏起来,这种机制称为__________。

156. 基类和派生类的关系称为__________。

157. 复杂对象可以由简单对象构成,这种现象称为__________。

158. 对象是对问题域中客观事物的________,它是一组属性和在这些属性上操作的__________。

159. 特殊类的对象拥有其一般类的全部属性与操作,称特殊类________了一般类。

160. 如果一个派生类的基类不止一个,则这种继承称为____________。

161. 如果一个派生类只有一个唯一的基类,则这样的继承关系称为__________。

162. C++支持两种多态性:_________时的多态性和__________时的多态性。

163. 在C++中,编译时的多态性是通过__________实现的,而运行时的多态性则是通过__________实现的。

164. 面向对象软件开发的生命周期分为三个阶段,即分析、__________和__________。

165. 面向对象的分析包括__________分析和__________分析两步。

166. 类定义中,既包含数据成员,也包含________成员。

167. 类中的数据成员的访问属性通常被指明为________。

168. 类中的供外部调用定义的函数成员,其访问属性通常被定义为________。 169. 对于类中定义的任何成员,其隐含访问权限为________。

170. 对于结构中定义的任何成员,其隐含访问权限为________。

171. 为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为________。

172. 若在类的定义体中给出了一个成员函数的完整定义,则该函数属于________函数。

173. 若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上________和两个冒号分隔符。

174. 若在类的定义体中只给出了一个成员函数的原型,则在类外给出完整定义时,其函数名前必须加上类名和两个________分隔符。

175. 若要把类外定义的成员函数规定为内联函数,则必须把________关键字放到函数原型或函数头的前面。

176. 把一个类的定义体和所有成员函数的定义体所构成的程序范围叫做该类的____________。

177. 假定AA是一个类,“AA* abc();”是该类中一个成员函数的原型,则在类外定义时的函数头为__________________。

178. 成员函数的参数表在类作用域中,成员函数的返回值类型________类作用域中。

179. 为了避免在调用成员函数时修改对象中的任何数据成员,则应在定义该成员函数时,在函数头的后面加上________关键字。

180. 若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上________关键字。

181. 若采用x.abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类外的x对象。

182. 若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类外的p指针。

183. 内联函数的定义模块与________模块必须放在同一个文件中。

184.假定AA是一个类,“AA* abc()const;”是该类中一个成员函数的原型,在该函数体中(能够/不能够)__________向*this或其成员赋值。

185.在一个用数组实现的队列类中,包含有两个数据成员,一个指明队首元素位置,另一个指明____________。

186. 在一个用数组实现的队列类中,包含有两个数据成员,一个指明队列长度,另一个指明__________元素的位置。

187. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则插入一个新元素的位置为__________。

188. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则删除一个元素后队首的位置为__________。

189. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队列为空的条件为__________。

190. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队列为满的条件为__________。

191. 当一个队列为空时,不能对其做________元素的操作。

192. 当一个队列为满时,不能对其做________元素的操作。

193.从一个队列中删除元素就是删除________位置上的元素。

194.向一个队列中插入元素就是把该元素放到________元素的后一位置上。

195.在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail 表示,当链队非空时,_____________指向队首结点的后继(即下一个)结点。

196. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail 表示,当链队非空时,新插入结点的地址应当赋给___________所指结点的next域。 197. 在一个用链表实现的队列类中,队尾结点的指针域的值为________。

198. 在一个用链表实现的队列类中,若链队中只含有一个结点,则队首指针的值与队尾指针的值________。

199. 在一个用链表实现的队列类中,若链队为空或只含有一个结点,则队首指针的值与队尾指针的值________。

200. 在一个用链表实现的队列类中,若队首指针与队尾指针的值不同,则说明链队中至少包含有________个结点。

201.一个类的__________函数实现对该类对象的初始化功能。

202.一个类的__________函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。

203.当用户为一个类定义有____________时,则系统不会为该类再自动生成一个默认构造函数。

204.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为__________。

205.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为__________。

206.定义类动态对象数组时,其元素只能靠自动调用该类的____________来进行初始化。

207.在一个类中定义拷贝构造函数的目的,是为了当利用该类的一个对象初始化另一个对象时,能够避免这两个对象的同一指针同时指向同一块__________________。

208.为了释放类对象中指针成员所指向的动态存储空间,则需要为该类定义____________。

209. 假定 AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类构造函数的次数为________。

210.假定一个类对象数组为A[20],当离开它的作用域时,系统自动调用该类析构函数的次数为________。

211.对类中对象成员的初始化是通过在构造函数中给出的______________来实现的。

214.对类中一般数据成员的初始化既可以通过在构造函数中给出的初始化表来实现,也可以通过构造函数中的____________来实现。

215. 假定要把aa定义为AB类中的一个常量整数型数据成员,则定义语句为

____________。

216. 假定要把aa定义为AB类中的一个引用整数型数据成员,则定义语句为____________。

217. 假定AB类中只包含一个整型数据成员a,并且它是一个常量成员,若利用参数aa对其进行初始化,则该类的构造函数的定义为____________________。

218. 假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数aa对其进行初始化,则该类的构造函数的定义为____________________。 219.假定指针p指向一个动态分配的类对象,则当执行“delete p;”语句时,在释放p所指向的动态存储空间之前将自动调用该类的____________。

220.假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,则系统(会/不会)_________为该类自动定义一个无参构造函数"AB() {}"。

221. 假定用户为类AB定义了一个构造函数“AB(int aa, char *bb=NULL):a(aa),b(bb){}”,则该类中至少包含有__________个数据成员。

222.假定用户为类AB定义了一个构造函数“AB(int aa) {a=aa;}”,该构造函数实现对数据成员_________的初始化。

223.假定用户为类AB定义了一个构造函数“AB(int aa=0):a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。

224.假定用户为类AB定义了一个构造函数“AB(int aa):a(aa){}”,则定义该类的对象时,有________种定义格式。

225.假定用户只为类AB定义了一个构造函数“AB(int aa, int bb=0) {a=aa; b=bb;}”,则定义该类的对象时,其实参表中至多带有_________个实参。

226.假定用户只为类AB定义了一个构造函数“AB(int aa, int bb=0) {a=aa; b=bb;}”,则定义该类的对象时,其实参表中至少带有_________个实参。

227.假定用户为类AB定义了一个构造函数“AB(int aa=0, int bb=0) {a=aa; b=bb;}”,则定义该类的对象时,可以有________种不同的定义格式。

228.假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”,则定义该类对象x的定义语句“AB x();”是_________(正确/错误)的。

229.假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”,则定义该类对象x的定义语句“AB x;”是_________(正确/错误)的。

230.假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”,则定义该类对象x的定义语句“AB x(5);”是_________(正确/错误)的。

231.假定AB为一个类,则类定义体中的“AB(AB& x);”语句为该类______________的原型语句。

232.假定AB为一个类,则该类的拷贝构造函数的函数头为_____________。

233.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条______________语句。

234. 静态成员函数 ____访问类的静态数据成员, ____ 访问类的非静态数据成员。

235. 静态数据成员必须在所有函数的定义体外进行__________。

236. 一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明必须在函数名前加上的限定。

237. 重载运算符时,该运算符的__________、结合性以及操作符的个数不允许

改变。

238. 一个单目运算符作为类的成员函数重载时有________个参数;如果作为独立函数重载,则有________个参数。

239. 一个双单目运算符作为类的成员函数重载时有________个参数;如果作为独立函数重载,则有________个参数。

240. 除了__________运算符外,其他重载的运算符都可以被派生类继承。

241. 作为类的成员函数重载一个运算符时,参数表中只有一个参数,说明该运算符有________个操作数。

242. 在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。

243. 重载插入运算符<<时,其运算符函数的返回值类型应当是____________。 244. 重载抽取运算符>>时,其运算符函数的返回值类型应当是____________。 245. 重载插入运算符<<或抽取运算符>>时,其运算符函数的参数有________个。

246. 重载插入运算符<<或抽取运算符>>时,其运算符函数不能被定义为类的________函数。

247. 类型转换函数没有____________类型,而且参数表为____________。

248. 在一个或若干个类的基础上构造一个新类,被称为___________。

249. 派生类的成员函数可以直接访问基类的成员,不能直接访问基类的 ______成员。

250. 当保护继承时,基类的成员在派生类中成为保护成员,派生类对象不能直接访问基类的 ____成员。

251. 在定义一个派生类时,使用__________关键字或者不显式地使用它则表示为__________继承。

252. 若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数名前加上______和类区分符。

253. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以____________的方式直接继承它。

254. 引进虚基类的根本目的是为了消除____________。

255. 在每个成员函数中,隐含的第一个参数的参数名为________。

填空题参考解答

1. C

2. .cpp、程序

3. //

4. /* 、*/

5. cout

6. cin

7. main

8. 复合

9. 空白 10. #include 11. # 12. 分号13. 用户(或编程者) 14. 程序

15. 函数头、函数体 16. 原型(或声明)

17. .h、 .cpp 18. 警告(warning)、致命(error)

19. void 20. void

21. int 0 22. 下一行 23. 35 24. 25 25. 6、 30 26. 4、 11 27. 325 28. 229 29. 0xF5 (F大小写均可) 30. 0365

31. -128 、+127 32. 4 4、

33. 4、 8 34. 1、 1 35. 2、 4 36. 15 37. 15 38. 7 39. 6 40. 1、 3 41. 3、 3.2 42. x 43. true(或1) 44. false(或0)

45. x 46. !x 47. false(或0) 48. true(或1)

49. (x+y)/(2*x*y) 50. 3*x*y/(x+y) 51. 1/(a*x*x+b*y*y) 52. 1 53. 3、 54. 4、 2

55. 枚举常量、整数 56. int、 double

57. 6、 60 58. 4、 1 59. 20 60. 9 216 61. 0、 19 62. 常量

63. if 64. switch

65. 不停止 66. 11 67. 10 68. break 69. continue 70. return 71. 主(或main) 72. 40 73. 192 74. 300 75. 1、 2 76. 0、 1 77. 8 78. 11 79. n+1 80. cin>>a 81. cout<

91. template 92. 虚拟类型(或类型)

93. 递归 94. template T cubin(T n){return n*n*n ; } 95. void 96. static 97. 右边(或后面) 98. extern 99. 头文件 100. 函数体 101. 文件包含命令 102. 文件

103. 代码区(程序区)104. 全局数据 105. 栈 106. i*m+j+1

107. 2、 4 108. 13 109. 总和 110. 4 111. 地址 DataType* 112. (char*)p 113. int** 114. *p &p 115. *p、 p 116. *p、 *p 117. 25 118. 42 119. 26 120. 42 121. 4*i 122. *(a+i)

123. a+i*sizeof(a[i]) 124. 第一个、修改

125. b[7]、b[2] 126. int *p=&x;

127. *p 128. int[n]、int * 129. c[3][0]、c[3][2] 130. int(*)[6]

131. *(a[i]+j) 或*(*(a+i)+j)或*(a+i)[j] 132. int &y=x;

133. x 134. 相等、 x 135. *p 136. p[0]、*P

137. ’a’ 138. char(*)[n] 139. delete p 140. delete []p

141. 0 (或’\0’) 142. double *pv=&v; 143. H 144. ple

145. pc=(char *)pv; 146. int (*p)[100]=b;

147. (*p).name 148. fp->score 149. int &ra=a; 150. 6 151. 10 152. 17 153. 对象 154. 实例155. 封装 156. 继承

157. 聚合 158. 抽象、封装体

159. 继承 160. 多继承(或多重继承)161. 单继承 162. 编译、运行

163. 重载、虚函数 164. 设计、实现

165. 问题域、应用 166. 函数

167. private(或私有) 168. public(或公有)

169. private(或私有) 170. public(或公有)

171. private 172. 内联 173. 类名 174. 冒号175. inline 176. 作用域 177. AA* AA::abc() 178. 不在179. const 180. const 181. *this 182. this 183. 类定义 184. 不能够 185. 队列长度 186. 队首187. (first+length)%MS 188. (first+1)%MS

189. length==0 190. length==MS 191. 删除 192. 插入193. 队首 194. 队尾

195. ElemHead->next 196. ElemTail

197. NULL 198. 相同 199. 相同 200. 2 201. 构造 202. 析构 203. 构造函数 204. AB() {}

205. ~AB() {} 206. 无参构造函数

207. 动态存储空间 208. 析构函数

209. 10 210. 20 211. 初始化表 212. 初始化表

213. 初始化表 214. 函数体 215. const int aa; 216. int& aa;

217. AB(int aa):a(aa){}; 218. AB(int& aa):a(aa){}; 219. 析构函数 220. 不会 221. 2 222. a 223. 2 224. 1 225. 2 226. 1 227. 3 228. 错误 229. 正确 230. 错误231. 拷贝构造函数 232. AB(AB&)(注:可附带任何一个名字的参数)

233. delete []pa; 234. 只能、不能 235. 初始化 236. 类域237. 优先级 238. 0、1 239. 1、2 240. 赋值241. 2 242. 成员函数 243. ostream & 244. istream &

245. 2 246. 成员 247. 返回值、空 248. 继承(派生)

249. 公有和保护、私有 250. 公有和保护、任何

251. private、私有 252. 类名

253. 虚基类 254. 二义性 255. this

面向对象程序设计考前复习题及答案

简答题 1、传统的结构化程序设计的优点和缺点是什么? 优点: (1)这种程序设计方法力求算法描述准确。 (2)对每一子过程模块容易进行程序正确性证明。 缺点: (1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。 (2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。 (3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。 2、什么是对象? 每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。 3、什么是消息? 在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。4、什么是多态性? 所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。 5、什么是面向对象的程序设计方法? 这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。 在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。 6、面向对象方法的特点是什么? (1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。 (2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。 (3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。 7、面向对象的程序设计方法与结构化程序设计方法的比较 (1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难。

西安石油大学

西安石油大学 2017 本科专业人才培养方案 专业名称测控技术与仪器 专业代码080301 院(部、系) 名称电子工程学院

测控技术与仪器 Measuring & Control Technology and Instrument 专业代码:080301 一、培养目标 本专业培养具备基本理论、知识和应用能力,能够在石油及相关领域从事测控仪器装备设计开发、制造、技术服务和经营管理等工作,具有创新意识的高素质复合型工程技术人才。毕业后经过五年左右的工程实践,具备: 1、综合运用多学科知识进行测量、分析、控制和解决石油及相关领域测控工程问题的能力,完成测控仪器装备的设计开发、制造和技术服务; 2、良好人文素养、社会责任感和工程伦理道德; 3、在职场中能以个人、成员或领导的角色,恪尽职守、交流合作或协调组织,有效发挥自身和团队作用; 4、创新意识和自主学习能力,以适应职业或行业发展需求。 二、毕业要求 以下毕业要求中的复杂工程问题均指石油及相关测控领域中的复杂工程问题。 1. 工程知识:具备数学、自然科学、工程基础、专业基础和专业知识,并能够应用于解决复杂工程问题。 2. 问题分析:能够应用数学、自然科学和工程科学的基本原理,识别、表达、并通过文献研究分析复杂工程问题,以获得有效结论。 3.设计/开发解决方案:能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(子系统),并能够在系统设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。 4. 研究:能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 5. 使用现代工具:能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。 6.工程与社会:能够基于石油测控及相关领域的背景知识进行合理分析,评价专业工程实践和复杂工程问题解决方案对社会、健康、安全、法律以及文化的影响,并理解应承担的责任。 7.环境和可持续发展:理解环境保护和社会可持续发展的内涵和意义,能够考虑和评价石油项目对环境保护、社会可持续发展的影响。 8. 职业规范:具有人文社会科学素养、社会责任感,能够在工程实践中理解并遵守石油及其相关

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

面向对象程序设计实验指导书讲解

面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include void main(void) { cout<<”Hello!\n”; cout<<”Welcome to C++!\n”; } 3、实验步骤 (1)启动Visual C++或C++Builder开发环境 (2)创建一个项目 A)单击File菜单中的New选项,显示示新建对话框 B)选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。 C)选择项目所在路径及输入项目的名称 D)依次按‘下一步’直至完成为止。 (3)至此,C++Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。 (4)对于VC,请继续下面的步骤: A)建立C++源程序文件 a)选选菜单命令Project|Add to Project|New,弹出New对话框 b)在New对话框的Files选项卡中选择C++ Source File,并填入文件名称,单击OK按钮,完成 新建C++源程序文件 B)编辑C++源程序文件 a)在文件编辑窗口中输入代码 b)完成后,选择菜单File|Save保存这个文件 C)建立并运行可执行程序 a)选择菜单命令Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源 程序进行修改后,重新选择菜单命令Build建立可执行程序。 b)选择菜单命令Run,运行程序,观察屏幕显示内容。 D)关闭工作空间 选择菜单命令File|Colse WorkSpace关闭工作空间。

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

《面向对象程序设计》实验指导书

《面向对象程序设计》课程实验指导书

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.doczj.com/doc/429412816.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

面向对象程序设计第12章在线测试

《面向对象程序设计》第12章在线测试剩余时间:59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、面向对象的程序设计语言必须具备的关键要素是( ) A、抽象和封装 B、抽象和多态性 C、抽象、封装、继承和多态性 D、抽象、封装和继承性 2、封装性应具有的条件是() A、有一个清晰的边界 B、有确定的接口 C、受保护的内部实现 D、以上所有 3、OOD的作用是() A、提取需求 B、逻辑建模 C、求解域建模 D、分析用例 4、按钮与电梯按钮的关系是() A、部分与整体 B、一般与特殊 C、实例连接 D、消息连接 5、面向对象模型不包括() A、静态模型 B、对象模型 C、功能模型 D、动态模型 第二题、多项选择题(每题2分,5道题共10分) 1、部分与整体的关系有()方式 A、组合 B、联合 C、聚合 D、整合

2、对象之间存在的关系包括() A、部分与整体 B、一般与特殊 C、实例连接 D、消息连接 3、关于多态的说法正确的是() A、不同类型的对象接收相同的消息产生不同的行为 B、多态的成员函数需要定义为虚函数 C、在C++中通过基类指针调用虚函数实现多态 D、多态是指对象的多种表现形式 4、关于软件生命周期的说法正确的是() A、开发程序就是直接编码 B、在程序设计之前需要先进行软件设计 C、软件投入使用后软件生命周期结束 D、软件维护也是软件生命周期的一个阶段 5、下面关于面向对象的特征说法正确的是() A、每一个对象都具有唯一的标识 B、任何类的划分都是客观的,程序员必须遵守其规定 C、继承性是子类自动共享父类数据结构和方法的机制 D、多态是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的 结果 第三题、判断题(每题1分,5道题共5分) 1、面向对象开发技术分三个阶段:面向对象分析,面向对象设计和面向对象实现。 正确错误 2、面向对象的要素包括抽象、封装。

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

C++面向对象程序设计实验报告

C++面向对象程序设计实验报告 学院:信息科学与技术学院 班级:卓越电子1201 姓名:刘强 学号:120910115 实验二 C++面向过程程序设计 实验目的 掌握函数声明、定义和使用的方法 掌握函数递归调用的方法 实验内容 1、编写一个函数,求数列运算中从n个不同的数中取r个数的所有选择的个数,要求如下:主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束; 能检查输入数据的合法性,要求n>=1并且n>=r; 能得到正确结果。 输入:5 3输出:10 输入:10 20;输出:Input Invalid !; 输入:-1 4;输出:Input Invalid!; 步骤: 利用一个函数fn(int n)计算n!, 利用另一个函数Cnr(int n, int r)计算Cnr,在该函数中调用fn(), 程序代码: #include int fn(int n) { int s=1; for(int i=1;i<=n;i++) { s=s*i; } cout<<"n!="<

int Cnr(int n,int r) { cout<<"Please input two numbers:"<>n>>r; if(n==0&&r==0) { cout<<"Programme shutdown."<=1&&n>=r) { int a; int b; int c; int d; a=fn(n); b=fn(r); c=fn(n-r); d=a/(b*c); cout<

面向对象程序设计课后答案(完整版)

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

面向对象程序设计实验报告完整版

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

面向对象程序设计复习题及参考答案

网络教育课程考试复习题及参考答案 面向对象程序设计 一、填空题: 1.创建类的对象时,使用运算符___________给对象分配内存空间。 2.Java通过来区分重载函数。 3.在子类中使用保留字_ _可调用被子类覆盖的父类中的方法。 4.使用保留字可以从一个构造方法中调用同一个类的另一个构造方法。 5.抽象类用修饰符定义。 6.类的数据成员的访问权限修饰符一般为 7.访问权限修饰符按照访问权限的大小从大到小分别为、、 、。 8.定义类的构造方法不能有,其名称与名相同。 9.抽象方法是的特征是。 10.Java中的所有异常都是从继承来的。 11.对象引用中存储的内容是。 12.下列程序段执行后, String str1 = new String("Java"); String str2 = new String("Java"); if (str1.equals(str2)) { System.out.println("They are equal"); } else { System.out.println("They are not equal"); } 输出结果为:。 13.下面循环执行后的sun值为 int count =0, sum = 0; while ( count <10 ) { sum += count; count ++; } 14.Java语言中关键字_ _表示双精度类型。 15.保留字_ _用于导入包中的类到程序中,供程序中使用。 16.Java语言中继承是用保留字表示。 17.面向对象程序设计中,类是指。 18.对象包含和。 19.若有类定义: class B extends A{ … } 则类B是类A的_ 。 20.Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_ 块来捕 获和处理异常。 21.多态是指。 22.声明常量时使用修饰符。 23.Java中异常抛出使用保留字。 24.一个类成员或者方法前面加上了修饰符,那说明该数据成员和方法可以直接通过类名 来访问和调用。

面向对象程序设计笔记

undeclared identifier “未声明的标识符” (1) 十进制整数:在一个整型常量后面加一个字母 l 或 L,则认为是 long int 型常量? (2) 八进制整数?在常数的开头加一个数字 0,就表示这是以八进制数形 式表示的常数? (3)十六进制整数?在常数的开头加一个数字0和一个英文字母X(或x), 就表示这是以十六进制数形式表示的常数? 2. 浮点数的表示方法 如果在实数的数字之后加字母 F 或f,表示此数为单精度浮点数,如1234F,-43f,占 4 个字节?如果加字母 L 或 l,表示此数为长双精度数(long double), 在Visual C++ 6.0 中占 8 个字节. (2) 指数形式(即浮点形式):用字母 e 表示其后的数是以 10 为底的幂,如 e12 表示 1012? 1.普通的字符常量:用单撇号括起来的一个字符就是字符型常量如′a′,′ #′,′%′,′D′都是合法的字符常量,在内存中占一个字节?“cout<<′\n′; ”将输出一个换行,其作用与“cout<

马克思主义基本原理博士、硕士点

马克思主义基本原理专业博士点/硕士点 二级国家重点学科: 华中师范大学解放军南京政治学院 南京师范大学武汉大学中国人民大学二级国家重点(培育)学科: 复旦大学中山大学 博士点: 安徽师范大学北京大学 北京师范大学电子科技大学东北大学 东北师范大学东南大学 福建师范大学复旦大学 广西师范大学哈尔滨师范大学合肥工业大学河北师范大学河海大学 河南大学 湖北大学 湖南大学 湖南师范大学华东师范大学 华南师范大学 华中科技大学 华中师范大学 吉林大学 江西师范大学 辽宁大学 辽宁师范大学 内蒙古大学 南京大学 南京航空航天大学 南京师范大学 南京政治学院 南开大学 清华大学 山东大学 山东师范大学 陕西师范大学 首都师范大学 苏州大学 天津师范大学 同济大学 武汉大学 武汉理工大学 西安交通大学 西北师范大学 西南大学 西南交通大学 新疆大学 浙江大学 中国人民大学 中国社会科学院研究生院 中南大学 中山大学 中央党校 硕士点: 安徽财经大学 安徽大学 安徽工程科技学院安徽农业大学 安徽师范大学 北华大学 北京大学 北京交通大学 北京科技大学 北京林业大学 北京师范大学 北京市委党校 渤海大学 长安大学 长春工业大学 长春理工大学 长春师范学院长春税务学院 长江大学 长沙理工大学 成都理工大学 大理学院 大连大学 大连海事大学 大连理工大学 大庆石油学院 第二军医大学 第二炮兵工程学院 第四军医大学 电子科技大学 东北财经大学 东北大学 东北电力大学 东北林业大学 东北农业大学 东北师范大学 东华大学 东华理工大学 东南大学 福建师范大学 福州大学 复旦大学 赣南师范学院 广东法商大学 广西大学 广西民族大学 广西师范大学 广西师范学院 广州大学 贵州大学 贵州师范大学

面向对象程序设计期末复习分析

一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1 分,共20 分) 3.下列不属于面向对象技术的基本特征的是(B)。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与(C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C )。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 8. 下列不属于类的成员函数的是( C )。 A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 9. 继承机制的作用是( C )。 A. 信息隐藏 B. 数据封装 C. 派生新类 D. 数据抽象 14. (D )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 15. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作 图和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 16.(D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对 象之间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 17.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示 系统中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 18. 在用UML进行数据库的分析与设计过程中,( B ) 就是进行数据库的需求分析,使用用 例图、类图、顺序图、活动图等建立业务模型。 A. 逻辑数据模型设计 B 业务Use Case模型设计 C. 物理数据模型设计 D. 物理实现设计 19. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 20. UML的动态建模表示包含(C )种图。 A. 9 B. 5 C. 4 D. 2 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以_功能分析,面向过程_为基础的_对象_的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

面向对象程序设计实验

实验一C++基础1.1 实验目的 1.了解并熟悉开发环境,学会调试程序; 2.熟悉C++中简单的标准输入输出函数的使用方法; 3.理解const修饰符的作用并学会应用; 4.理解内联函数的优缺点并学会其使用场合; 5.理解并学会函数重载; 6.理解并熟练掌握使用new和delete来分配内存; 7.理解并熟练掌握引用的使用方法。 1.2 实验内容 1.2.1 程序阅读 1.理解下面的程序并运行,然后回答问题。 #include int max_def(int x, int y) { return (x>y?x:y); } int max_def(int x, int y, int z) { int temp = 0; return (temp=(x>y?x:y))>z?temp:z; } double max_def(double x, double y) { return (x>y?x:y); } int main()

{ int x1 = 0; int x2 = 0; double d1 = 0.0; double d2 = 0.0; x1 = max_def(5,6); x2 = max_def(2,3,4); d1 = max_def(2.1,5.6); d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------①cout<<"x1="<

文本预览
相关文档 最新文档