📄 研究生班 c++ 试题.htm
字号:
<TD width=1></TD>
<TD class=main_tdbgall vAlign=top width=575><!--网页中部左栏文章内容代码开始-->
<TABLE cellSpacing=1 cellPadding=1 width=575 align=center border=0>
<TBODY>
<TR>
<TD>
<DIV align=center>
<TABLE cellSpacing=0 cellPadding=0 width=575>
<TBODY>
<TR>
<TD>
<SCRIPT language=javascript
src="研究生班 c++ 试题.files/129.js"></SCRIPT>
</TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=575>
<TBODY>
<TR>
<TD>
<SCRIPT language=javascript
src="研究生班 c++ 试题.files/130.js"></SCRIPT>
</TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE>
<TABLE class=main_t豈??itle_760 style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR>
<TD vAlign=center width="3%"><IMG src="研究生班 c++ 试题.files/arrow.gif"
align=absMiddle></TD>
<TD width="66%"><STRONG>研究生班 c++ 试题</STRONG></TD>
<TD
align=right> <FONT
color=#009999></FONT></TD></TR></TBODY></TABLE>
<TABLE class=main_tdbg_575 style="WORD-BREAK: break-all" cellSpacing=0
cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR vAlign=center align=middle>
<TD class=main_ArticleTitle style="WORD-BREAK: break-all" colSpan=2
height=30>研究生班 c++ 试题</TD></TR>
<TR vAlign=center align=middle>
<TD class=main_ArticleSubheading style="WORD-BREAK: break-all"
colSpan=2></TD></TR>
<TR class=Article_tdbgall align=middle>
<TD colSpan=2>作者:佚名 文章来源:<A
href="http://www.jsxlw.com/ShowCopyFrom.asp?ChannelID=31&SourceName="></A>
点击数:
<SCRIPT language=javascript
src="研究生班 c++ 试题.files/GetHits.htm"></SCRIPT>
更新时间:2005-5-14 <A
title=收藏的网页将被永久地保存到新浪ViVi收藏夹http://vivi.sina.com.cn
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(vivi=window.open('http://vivi.sina.com.cn/collect/icollect.php?pid=2008&title='+escape(d.title)+'&url='+escape(d.location.href)+'&desc='+escape(t),'vivi','scrollbars=no,width=480,height=480,left=75,top=20,status=no,resizable=yes'));vivi.focus();"><IMG
src="研究生班 c++ 试题.files/vivi_coop1.gif" align=absMiddle
border=0></A></TD></TR>
<TR vAlign=center align=middle bgColor=#ff0000>
<TD colSpan=2 height=30>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-8965688405703174";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al_s";
google_ad_channel ="";
google_color_border = "B4D0DC";
google_color_bg = "ECF8FF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "6F6F6F";
//--></SCRIPT>
<SCRIPT src="研究生班 c++ 试题.files/show_ads.js" type=text/javascript>
</SCRIPT>
</TD></TR>
<TR>
<TD id=fontzoom style="WORD-BREAK: break-all" vAlign=top colSpan=2
height=20>
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center
border=0>
<TBODY>
<TR>
<TD align=middle width="100%"></TD></TR>
<TR>
<TD align=middle width="100%">
<TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 cellPadding=0
align=center border=0>
<TBODY>
<TR>
<TD align=middle width="100%"></TD></TR>
<TR>
<TD class=newstitle id=fontzoom vAlign=top><BR>一、 填空题(每空
1 分,共 15 分) <BR>1 、 输入操作由操作符 >> 来表达。 <BR>2 、
以 /* 开始,以 */ 结束,在 /* 和 */ 之间的部分即为 注释 。 <BR>3 、 若有运算符
> 、 *= 、 sizeof 、 % ,则它们按优先级由高至低的排列次序为 sizeof 、 % 、
<BR>*= 、 > 。 <BR>4 、 描述命题 “A 小于 B 或小于 C” 的表达式为
A<B||A<C 。 <BR>5 、 对嵌套 if 语句的规定是: else
总是与 离它最近的 if 配对。 <BR>6 、 在 C++
中有二种参数传递方式:值传递和 地址传递 。 <BR>7 、
定义重载函数时,应在参数个数或参数类型上 有所不同 。 <BR>8 、
类是用户定义的类型,具有类类型的变量称作 对象 。 <BR>9 、
当建立一个新对象时,程序自动调用 它的构造函数 。 <BR>10
、当一个成员函数被调用时,该成员函数的 this 指针 指向调用它的对象。 <BR><BR>11
、拷贝初始化构造函数使用 引用 来初始化创建中的对象。 <BR>12
、派生类可以定义其 基类 中不具备的数据和操作。 <BR>13
、在一个继承结构中,当两个相同的名字之间没有 作用域分辨符限定 时,对此 <BR>名字的访问将出现二义性。
<BR>14 、一元操作符,作为友元函数重载时只能声明 对象 形参;作为类成员
<BR>函数重载时 不需要 形参。 <BR> 二、 单项选择题(每小题 1 分,共 11 分)
<BR>1 、连接器所生成的文件的扩展名为( D ) <BR>A 、 .cpp <BR>B 、 .obj
<BR>C 、 .lib <BR>D 、 .exe <BR>2 、下列符号中,( A )不是分隔符。 <BR>A
、; <BR>B 、 // <BR>C 、() <BR>D 、{} <BR>3 、设 int
a=3,b=4,c=5; 表达式( a+b ) >c&&b==c 的值是( C )。
<BR>A 、 2 <BR>B 、 -1 <BR>C 、 0 <BR>D 、 1 <BR>4
、下列标识符中,不合法的用户标识符为( A ) <BR>A 、 a#b <BR>B 、 _int <BR>C 、
a_10 <BR>D 、 PAd <BR>5 、 while(!x) 中的 (!x) 与下面条件( D )等价。
<BR>A 、 x==1 <BR>B 、 x!=1 <BR>C 、 x!=0 <BR>D 、 x==0
<BR>6 、定义析构函数时,应该注意( C ) <BR>A 、其名与类名完全相同 <BR>B 、返回类型是
void 类型 <BR>C 、无形参,也不可重载 <BR>D 、函数体中必须有 delete 语句 <BR>7
、每个类( C )构造函数。 <BR>A 、只能有一个 <BR>B 、只可有公有的 <BR>C 、可以有多个
<BR>D 、只可有缺省的 <BR>8 、在一个类中可以对一个操作符进行( D )重载。 <BR>A 、 1 种
<BR>B 、 2 种以下 <BR>C 、 3 种以下 <BR>D 、多种 <BR>9
、重载赋值操作符时,应声明为( A )函数。 <BR>A 、 友元 <BR>B 、 虚 <BR>C 、 成员
<BR>D 、 多态 <BR>10 、在公有继承的情况下,基类成员在派生类中的访问权限( B ) <BR>A 、
受限制 <BR>B 、 保持不变 <BR>C 、 受保护 <BR>D 、 不受保护 <BR>11 、通过( A
)调用虚函数时,采用动态束定。 <BR>A 、 对象指针 <BR>B 、 对象名 <BR>C 、 成员名限定
<BR>D 、 派生类名 <BR> 三、
双项选择题(在每小题的五个备选答案中,选出二个正确的答案,并将其序号填在 <BR>题中的括号内,每小题 2
分,共 18 分) <BR>1 、在( C )( E )情况下适宜采用 inline 定义内联函数。 <BR>A
、 函数体含有循环语句 <BR>B 、 函数体含有递归语句 <BR>C 、 函数代码少、频繁调用 <BR>D 、
函数代码多、不常调用 <BR>E 、 需要加快程序执行速度 <BR>2 、在类中说明的成员可以使用关键字( A
)( D )进行修饰。 <BR>A 、 private <BR>B 、 extern <BR>C 、 auto
<BR>D 、 public <BR>E 、 register <BR>3 、如果类 A 被说明成类 B
的友元,则( D )( E )。 <BR>A 、 类 A 的成员即类 B 的成员 <BR>B 、 类 B
的成员即类 A 的成员 <BR>C 、 类 A 的成员函数不得访问类 B 的成员 <BR>D 、 类 A
的成员函数可以访问类 B 的成员 <BR>E 、 类 B 不一定是类 A 的友元 <BR>4
、创建或删除堆对象,需要使用操作符( B )( C ) <BR>A 、- > <BR>B 、 new
<BR>C 、 delete <BR>D 、 . <BR>E 、 * <BR>5
、在类中声明转换函数时不能指定( A )( C ) <BR>A 、 参数 <BR>B 、 访问权限 <BR>C
、 返回类型 <BR>D 、 操作 <BR>E 、 标识符 <BR>6 、在派生类中重新定义虚函数时必须在( A
)( B )方面与基类保持一致。 <BR>A 、 参数个数 <BR>B 、 参数类型 <BR>C 、 参数名字
<BR>D 、 操作内容 <BR>E 、 赋值 <BR>7 、字符串之间的比较按( C )( E )进行。
<BR>A 、 字符串的长度 <BR>B 、 字符的大小写种类 <BR>C 、 字符串的内部代码 <BR>D 、
字符串的含意 <BR>E 、 从头至尾的顺序 <BR>8 、 C++ 类体系中,不能被派生类继承的有( B )(
E )。 <BR>A 、 转换函数 <BR>B 、 构造函数 <BR>C 、 虚函数 <BR>D 、
静态成员函数 <BR>E 、 赋值操作函数 <BR>9 、下列虚基类的声明中正确的是( B )( D )
<BR>A 、 class virtual B: public A <BR>B 、 class B:
virtual public A <BR>C 、 class B: public A virtual <BR>D
、 class B: public virtual A <BR>E 、 virtual class B:
public A <BR> 四、 简答题(每小题 5 分,共 30 分) <BR>1 .
给出下面程序的运行结果。 <BR># include “iostream.h” <BR>int main( )
<BR>{ int i=1; <BR>while (i<=15) <BR>if (++i%3!=2)
continue; <BR>else cout
<<”i=”<<i<<endl; <BR>} <BR>答:输出结果:
<BR>i=2 <BR>i=5 <BR>i=8 <BR>i=11 <BR>i=14 <BR>2.
给出下面程序的运行结果。 <BR>#include “iostream.h” <BR>class test{
<BR>private:int num <BR>float fl; <BR>public:test( );
<BR>int getint( ){return num;} <BR>float getfloat(
){return fl;} <BR>~test( ); <BR>}; <BR>test ∷ test( )
<BR>{ cout << "Initalizing default" << endl;
<BR>num=0;fl=0.0; <BR>} <BR>test ∷ ~ test( ) <BR>{ cout
<< "Desdtructor is active" << endl;} <BR>int
main( ) <BR>{test array[2]; <BR>cout <<
array[1].get int( )<< " " <<
array[1].getfloat( ) <<endl; } <BR>答:结果为:
<BR>Initalizing default <BR>Initalizing default <BR>0 0
<BR>Desdtructor is active <BR>Desdtructor is active
<BR>3. 给出下面程序的运行结果。 <BR>#include "iostream.h" <BR>int
main( ) <BR>{ int num=50; <BR>int& ref=num;
<BR>ref=ref+10 <BR>cout << "num=" << num
<< endl; <BR>num=num+40; <BR>cout << "ref="
<< ref << endl; <BR>return 0; <BR>}
<BR>答:输出结果: <BR>num=60 <BR>ref=100 <BR>4 .
若程序员没有为类定义拷贝初始化构造函数,则编译器将自动生成一缺省的拷贝初
<BR>始化构造函数,它可能会产生什么问题? <BR>答:
若没有为类定义复制初始化构造函数,则编译器将会生成一个形如 ClassName::ClassNa
<BR>me(const ClassName &)
的缺省复制初始化构造函数,它的执行方式为用作为初始值的对象的
<BR>成员初始化正在建立的对象的相应成员。这在有的情况下会产生问题,如果类的成员是一个指
<BR>针时,缺省复制初始化构造函数构造出的新对象中的指针将与原来的对象指向同一个变量。结
<BR>果在对象消失时,要进行析构,这时这个变量将会被删除两次,所以就会出错了。 <BR><BR>5 . C++
没有提供字符串数据类型,如何简单地构造此种数据类型? <BR>答:可以定义一个字符数组作为字符串类型,如下:
<BR>const int M=80; <BR>char str[M]; <BR>6 .
什么是多重继承中的支配原则?分析下面的类体系。 <BR>class A{ <BR>public: int i;
<BR>void f(float); <BR>}; <BR>class B: public A{
<BR>public: int i; <BR>void f(int); <BR>};
<BR>则下面的访问是否具有二义性( b 为类 B 的一个对象)? <BR>b.i; <BR>b.f(3.5);
<BR>答:类 X 中的名字 N 支配类 Y 中同名的名字 N ,是指类 X 以类 Y
为它的一个基类,这就称为多重继 <BR>承的支配原则。在以上的访问中类 B 中的名字支配类 A 中的名字 i 和
f ,所以在访问时不存在二义 <BR>性。 <BR> 五、 编程题(共 30 分) <BR>1 、 下面函数
chnum 将一个整数字符串转换为一个整数。请在 [1] 、 [2] 、 [3] 、 [4] 处填入
<BR>正确内容。( 8 分) <BR>int chnum (char *str) <BR>{ int i,
j, k, h, len, num=0; <BR>len=strlen(str); <BR>for(i=0;
[1]; i++) // 填入 i<len <BR>{ k=1; <BR>j= len-1;
<BR>while ([2])// 填入 j>0 <BR>{ <BR>k=k*10; <BR>j--;
<BR>} <BR>h=[3]-'0'; // 填入 str[i] <BR>num=num+h*[4]; //
填入 k <BR>} <BR>return num; <BR>} <BR>[1] 填入 i<len
<BR>[2] 填入 j>0 <BR>[3] 填入 str[i] <BR>[4] 填入 k <BR>2 、
下列程序定义了一实部为 real ,虚部为 imag 的复数类 complex ,并在类中将复数的加、减
<BR>操作重载为友元函数。 请在 [1] ~ [12] 处填上适当内容。( 9 分) <BR>class
complex{ <BR>private: float [1], [2]; // 填入 real imag
<BR>public: complex (float r=[3], float i=[4])// 填入 0 0
<BR>{ real=r; imag=i;} <BR>[5]
operator+(complex,complex); // 填入 friend complex <BR>[6]
operator-(complex,complex); // 填入 freind complex <BR>};
<BR>[7] operator+(complex c1,complex c2) // 填入 complex
<BR>{ return complex([8], [9]);} // 填入 c1.real+c2.real
c1.imag+c2.imag <BR>[10]operator-(complex c1,complex c2)
// 填入 complex <BR>{ return complex([11], [12]);} // 填入
c1.real-c2.real c1.imag-c2.imag <BR>[1] real [2] imag
<BR>[3] 0 [4] 0 <BR>[5] freind complex [6] freind
complex <BR>[7] complex [8] c1.real+c2.real <BR>[9]
c1.imag+c2.imag[10]complex <BR>[11]c1.real-c2.real [12]
c1.imag-c2.imag <BR>3 、 下列 shape 类是一个表示形状的抽象类, area( )
为求图形面积的函数, total( ) 则 <BR>是一个通用的用以求不同形状的图形面积总和的函数。请从
shape 类派生三角形类 (triangle) <BR>、矩形类( rectangle
)、并给出具体的求面积函数。( 9 分) <BR>class shape{ <BR>public:
<BR>virtual float area( )=0 <BR>}; <BR>float total(shape
*s[ ],int n) <BR>{ <BR>float sum=0.0; <BR>for(int
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -