《C 程序设计》课程代码04737校正版文档格式.docx
《《C 程序设计》课程代码04737校正版文档格式.docx》由会员分享,可在线阅读,更多相关《《C 程序设计》课程代码04737校正版文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
B.函数体语句较少
C.函数执行时间较短
D.函数执行时间过长
9、intFunc(int,int);
不可与下列哪个函数构成重载
B
A.intFHnc(int,int,int);
B.doubleFunc(int,int);
C.doubleFunc(double,double);
D.doubleFunc(int,double);
10、对类中声明的变量,下列描述中正确的是【
C
A.属于全局变量
B.只属于该类
C.属于该类,某些情况下也可被该类不同实例所共享
D.任何情况下都可被该类所有实例共享
11、类的私有成员可在何处访问
D
A.通过子类的对象访问
B.本类及子类的成员函数中
C.通过该类对象访问
D.本类的成员函数中
12、如果没有为一个类定义任何构造函数的情况下,下列描述正确的是
A.编译器总是自动创建一个不带参数的构造函数
B.这个类没有构造函数
C.这个类不需要构造函数
D.该类不能通过编译
13、一个类可包含析构函数的个数是
A.0个
B.1个
C.至少一个
D.0个或多个
14、this指针存在的目的是
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问
D.保证基类私有成员在子类中可以被访问
15、下列关于类的权限的描述错误的是
A.类本身的成员函数只能访问自身的私有成员
B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问
D.一个类可以将另一个类的对象作为成员
16、在编译指令中,宏定义使用哪个指令
B
A.#include
B.#define
C.#if
D.#else
17、设类A将每其它类对象作为成员,则建立A类对象时,下列描述正确的是
A.A类构造函数先执行
B.成员构造函数先执行
C.两者并行执行
D.不能确定
18、下列描述错误的是
A】
A.在创建对象前,静态成员不存在
B.静态成员是类的成员
C.静态成员不能是虚函数
D.静态成员函数不能直接访问非静态成员
19、对于友元描述正确的是
A.友元是本类的成员函数
B.友元不是本类的成员函数
C.友元不是函数
D.友元不能访问本类私有成员
20、在哪种派生方式中,派生类可以访问基类中的protected成员
A.public和private
B.public和protected
C.protected和private
D.仅protected
21、
在PC机中,‘\n’在内存占用的字节数是(
)
A.1
B.2
C.3
D.4
22、字符串“ABC”在内存占用的字节数是(
)
A.3
B.4
C.6
D.8
23、在C语言中,合法的长整型常数是(
A.0L
B.4962710
C.0.054838743
D.2.1869e10
24、执行语句“x=(a=3,b=a——)”后,x,a,b的值依次是(
A.3,3,2
B.3,2,2
C.3,2,3
D.2,3,2
25、设有语句inta=3;
,则执行了语句a+=a-=a*a后,变量a的值是(
D)
B.0
C.9
D.-12
26、设intk=32767;
执行k=k+1;
后k值为(
A.32768
B.—32768
C.0
D.—1
27、下列正确的标识符是(
A.hot_do
B.a+b
C.test!
D.%y
28、设inta=5,使b不为2的表达式是(B
A.b=6—(——a)
B.b=a%2
C.b=a/2
D.b=a>
3?
2:
1
29、执行x=(6*7%8+9)/5;
后,x的值为(
30、执行语句x=(a=3,b=a——)后,x,a,b的值依次为(
A.3,2,3
B.2,3,2
C.3,3,2
D.3,2,2
31、设a=-3;
执行(a>
0)?
a:
-a;
后,a的值为(
B.1
D.—3
32、设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为(
A.7
B.8
D.2
33、
下面正确的字符常量是(
A.“c”
B.‘\\’‘
C.’W‘
D.’‘
34、若有代数式3ae/bc,则不正确的c语言表达式是(
C
A.a/b/c*e*3
B.3*a*e/b/c
C.3*a*e/b*c
D.a*e/b/c*3
35、在C语言中,要求运算数必须是整型的运算符是(
A./
B.++
C.!
=
D.%
36、
若有说明语句:
charc=‘\72’;
则变量c(
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c值不确定
37、
sizeof(float)是(
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
38、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型是(
C)
A.int
B.folat
C.double
D.不确定
39、
若有定义inta[10],*p=a;
,则p+5表示(
A.元素a[5]的地址
B.元素a[5]的值
C.元素a[6]的地址
D.元素a[6]的值
40、
以下与int*q[5];
等价的定义语句是(
A.intq[5];
B.int*q
C.int*(q[5])
∙
D.int(*q)[5]
第二大题:
填空题
1、设要把一个文件输出流对象myFile与文件“f:
\myText.txt'
’相关联,所用的c++语句是:
(
ofstreamout("
f:
\\mytext.txt"
);
)。
2、C++中ostream类的直接基类是(
virtualpublicios)
3、运算符[
]只能用(
类成员)运算符来重载,不能用友元运算符来重载。
4、定义虚函数所用的关键字是(
virtual
)。
5、vector类中用于返回向量中第1个对象的方法是(
front()
6、在C++中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符‘t’,实现此操作的语句是(
vector<
char>
E(20,‘t’)
)
7、类的继承是指子类继承基类的(
数据成员
)和成员函数。
8、不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为(
多态性
9、(
#include
)指令指示编译器将一个源文件嵌入到带该指令的源文件之中。
10、设类A有成员函数
voidFun(void);
若要定义一个指向类成员函数的指针变量pain来指向Fun,该指针变量的声明语句是(
void(A:
:
*pafn)(void)
11、设在程序中使用如下语句申请了一个对象数组:
Point*ptr=newPoint[2];
则在需要释放ptr指向的动态数组对象时,所使用的语句是(
delete[]ptr
12、在保护派生中,基类权限为Private的成员在派生类中(
不可访问
13、类A有如下成员函数
intA:
:
fun(doublex){return(int)x/2;
}
fun(intx){retumx*2;
设a为类A的对象,在主函数中有ints=a.fun(6.0)+a.fun
(2),则执行该语句后,s的值为
7
14、对象传送的消息一般由3部分组成:
接收对象名、调用操作名和(
消息参数
15、将指向对象的指针作为函数参数,形参是对象指针,实参是对象的(
地址
16、在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不
含指定的子串,find函数的返回值是(
-1
P42
17、在C++中,声明布尔类型变量所用的关键字是(
bool
18、执行下列代码
inta=29,b=100;
cout<
<
setw(3)<
a<
b<
endl;
程序的输出结果是:
29100
19、执行下列代码
程序的输出结果为(
20、C++语言中可以实现输出一个换行符并刷新流功能的操控符是(
endl)。
21、C语言中的实型变量分为两种类型,它们是(
)和(
22、C语言中的标识符只能由三种字符组成,它们是(
)、(
23、若有定义:
charc=‘\010’;
则变量c中包含的字符个数是(
1
24、C语言提供的三种逻辑运算符是(
25、设y为int型变量,请写出描述“y是奇数”的表达式(
y%2==1
26、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式(
(x<
2)||(y<
z)
27、在C语言中,二维数组元素在内存中的存放顺序是(
按行顺序存放
28、若有定义:
doublex[3][5];
则x数组中行下标的下限为(
0
),列小标的上限为(
4
29、若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2]得到的初值是(
),a[2][2]得到的初值是(
8
30、若自定义函数要求返回一个值,则应在该函数体中有一条(
return
)语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符(
void
31、函数中的形参和调用时的实参都是数组名时,传递方式为(
地址传递
),都是变量时,传递方式为(
值传递
第三大题:
完成程序
1、完成下面类中的成员函数的定义
classpoint
{
private:
intm,n;
public:
point(int,int);
point(point&
);
};
point:
point(inta,intb)
{
m=a:
____n______=b;
Point:
point(__pointt________)
m=t.m;
n=t.n;
2、
下面是一个输入半径,输出其面积和C++程序,在下划线处填上正期的语句。
#include<
iostream>
usingnamespacestd;
__#define________pi=3
Void
main()
doubler;
cout<
”r=”;
_cin>
>
r;
__________;
double1=2.0*pi*r;
doubles=pi*r*r
”\nThelongis:
”<
1<
endl;
”Theareais:
S<
endl;
}
3、
在下划线处填上缺少的部分。
#include<
fstream>
classcomplex
public:
intreal;
intimag;
complex(intr=0,inti=0)
real=r;
imag=i;
complexoperator+(__complex&a_______,complex&b)
intr=a.real+b.real:
inti=a.imag+b.imag:
return
___Complex(r,i)____;
voidmain()
complexx(1,2),Y(3,4),complex&
b)
z=x十y;
z.real<
”+”<
z.imag<
”I”<
endl:
4、
1,9
50.30
请根据输出数据在下面程序中的下划线处填写正确的语句。
源程序如下:
#include<
classbase
private:
intm;
base(){};
base(inta):
m(a){}
intget(){returnm;
voidset(inta){m=a;
};
Base*ptr=newbase[2];
ptr一>
set(30);
ptr=____ptr+1__________;
set(50);
basea[2]={1,9};
a[0].get()<
”,”<
a[1].get()<
ptr一>
get()<
”,”;
ptr=ptr-1
____ptr一>
get()_____<
ednl;
delete[]ptr;
5、
在下面横线处填上求两个浮点数之差的cha函数的原型声明、调用方法。
usingnamespacestd;
voidmain()
f1oata,b;
____floatcha(floatx,floaty);
________//函数cha的原型声明
a=12.5;
b=6.5;
floatc=
__cha(a,b)________;
//调用函数cha
c<
floatcha(floatx,floaty)
floatw;
W=x—y;
returnw;
第四大题:
程序设计题
1、
55.在三角形类TRI实现两个函数,功能是输入三个顶点坐标判断是否构成三角形
iostream.h>
math.h>
classpoint{
floatx,y;
point(floata,floatb){x=a;
y=b;
point(){x=0;
y=0;
voidset(floata,floatb){x=a;
floatgetx(){returnx;
floatgety(){retumy;
classtri{
pointx,y,z;
floatsl,s2,s3;
public.....settri(....);
//用于输入三个顶点坐标
….test(....);
//用于判断是否构成三角形
请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)
参考答案:
voidsettri()//用于输出三个顶点坐标
inta,b;
"
inputthefirestpoint"
endl;
cin>
a>
b;
x.set(a,b);
inputthesecondpoint"
y.set(a,b);
inputthethirdpoint"
z.set(a,b);
thethreepoint'
scodinateis:
x:
x.getx()<
"
x.gety()<
y:
y.getx()<
y.gety()<
z:
z.getx()<
z.gety()<
voidtest()//用于判断是否构成三角形
if((x.gety()-y.gety())/(x.getx()-y.getx())!
=(y.get