。
23、假定x=10,y=6,则表达式2+x++和++y*3的值分别为和。
24、算术表达式
对应的C++表达式为。
25、算术表达式
+4b-1对应的C++表达式为。
26、表达式float(25)/4和int(14.6)%5的值分别为和。
27、表达式a=a+b表示成复合赋值表达式为。
28、表达式a=a+1表示成增量表达式为。
29、增量表达式++y表示成赋值表达式为。
30、关系表达式(x==0)的等价表达式为。
31、关系表达式(x!
=0)的等价表达式为。
32、关系表达式x+y>z的相反表达式为。
33、逻辑表达式x>5&&x<10的相反表达式为。
34、逻辑表达式a>b||b==5的相反表达式为。
35、若x=15,y=40,则x>y和x<=y的逻辑值分别为和。
36、假定x=5,则执行”a=(x?
10:
4*2);”语句后a的值为。
37、假定a=5,则条件表达式”a==0?
10:
20”的值为。
38、执行”typedefDataType;”语句后,在使用int定义整型变量的地方都可以使用来定义整型变量。
39、设x和y均为bool量,则x&&y为真的条件是。
40、设x和y均为bool量,则x||y为假的条件是。
1.假定一个一维数组的定义为“char*a[5];”,则该数组所含元素的个数为_____,所占存储空间的字节数为______。
2.假定一个二维数组的定义为“inta[4][6];”,则该数组所含元素的个数为_____,所占存储空间的字节数为______。
3.假定一个二维数组的定义为“chara[8][8];”,则该数组所含元素的个数为_____,所占存储空间的字节数为______。
4.执行“typefloatABC[10];”语句把ABC定义为具有10个单精度元素的______。
5.在函数外定义的变量称为______变量,若没有被初始化则系统隐含对它赋初值_____。
6.函数中的形参变量的初值由_____该函数时获得。
7.函数调用时,实参向形参的传送分为____和____两种传送方式。
8.变量分为全局和局部两种,_______变量没有赋初值时,其值是不确定的。
1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为。
2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为。
3、假定p所指对象的值为25,p+1所指对象的值为50,则执行”(*p)++;”语句后,p所指对象的值为。
4、假定p所指对象的值为25,p+1所指对象的值为50,则执行”*(p++);”语句后,p所指对象的值为。
5、假定a是一个指针数组,则a+I所指对象的地址比a地址大字节。
6、假定a是一个一维数组,则a[i]的指针访问方式为。
7、假定a是一个二维数组,则a[i][j]的指针访问方式为。
8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为。
9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为。
10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为。
11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大字节。
12、假定a为一个字符数组名,则元素a[8]的字节地址为。
13、假定a为一个整型数组名,则元素a[4]的字节地址为。
14、假定一个结构类型的定义为”structA{inta,b;shortc;A*d;};”,则该类型的大小为字节。
15、假定一个结构类型的定义为”structB{inta[8];char*b;};”,则该类型的大小为字节。
16、假定一个结构类型的定义为”structD{inta;union{intb;doublec;};D*d[3];};”,则该类型的大小为字节。
17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为。
18、假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为。
19、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为。
1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的使其初始化。
2、当一个类对象被撤消时将自动调用该类的。
3、对基类数据成员的初始化是通过执行派生类构造函数中的来实现的。
4、对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的实现。
5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先,后,最后为。
6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成的析构函数定义体的执行,接着完成的析构函数定义体的执行,最后完成的析构函数定义体的执行。
7、设px是指向一个类动态对象的指针变量,则执行”deletepx;”语句时,将自动调用该类的
。
8、当一个类对象离开它的作用域时,系统将自动调用该类的。
9、假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为。
10、假定AB为一个类,则执行”ABa[10];”语句时,系统自动调用该类构造函数的次数为
。
11、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为。
12、假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为。
13、若需要把一个函数”voidF();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:
。
14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:
。
15、假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为。
16、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为。
17、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为。
18、假定AB为一个类,则该类的拷贝构造函数的声明语句为。
19、对类对象成员的初始化是通过执行构造函数中的完成的。
20、对于类中定义的成员,其隐含访问权限为,对于结构中定义的成员,其隐含访问权限为。
21、一个类的友元函数或友元类能够通过成员操作符访问该类的。
22、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
。
23、在C++流类库中,根基类为。
24、在C++流类库中,输入流类和输出流类的名称分别为和。
25、若要在程序文件中进行标准输入输出操作,则必须在开始的#inlude命令中使用头文件。
26、若要在程序文件中进行文件输入输出操作,则必须在开始的#inlude命令中使用头文件。
27、当从字符文件中读取回车和换行两个字符时,被系统看作为一个。
28、当使用ifsream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为,当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为。
29、当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含文件。
二、选择题
(1)已知下列语句中的x和y都是int型变量,其中不正确的语句是[]
A)y+=++x;B)++x+=y;C)y=x++;D)x++=y;
(2)若x是一个bool型变量,y是一个值为100的int型变量,则表达式!
x&&y>0的值[]。
A)为trueB)为falseC)与x的值相同D)与x的值相反
(3)执行语句序列
intn;
cin>>n;
switch(n){
case1:
case2:
cout<<'X';
case3:
case4:
cout<<'Y';break;
default:
cout<<'Z';}
时,不可能出现的情况是[]。
A)显示:
XB)显示:
YC)显示:
ZD)显示:
XY
(4)执行语句序列
intx;
cin>>x;
if(x>250)cout<<'X';
if(x<250)cout<<'Y';
elsecout<<'X';
时,不可能出现的情况是[]。
A)显示:
XB)显示:
YC)显示:
XYD)显示:
XX
(5)要定义一个具有5个元素的一维数组,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中不正确的是[]。
A)intvect[]={30,50,-88};B)intvect[]={30,50,-88,0,0};
C)intvect[5]={30,50,-88};D)intvect[5]={30,50,-88,0,0};
(6)已知某应用系统中已经定义了函数fun,其原形是
intfun(char='A');则下列函数中,可以在同一系统中加以重载的是[]。
A)intfun();B)intfun(char);
C)intfun(char,int);D)intfun(char,double=0.0);
(7)若指针p定义为constchar*p="Luchy!
";则[]。
A)p所指向的数据不可改变,p在定义时可以不初始化。
B)p所指向的数据不可改变,p在定义时必须初始化。
C)p本身不可改变,p在定义时可以不初始化。
D)p本身不可改变,p在定义时必须初始化。
(8)已知数组A和指针p定义为:
intA[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[]。
A)p=&A或p=A[0][0]B)p=A或p=&A[0][0]
C)p=&A[0]或p=A[0][0]D)p=A[0]或p=&A[0][0]
(9)已知函数func的原形是
doublefunc(double*pd,int&ri);
变量x和y的定义是
doublex;inty;
把x和y分别作为第一参数和第二参数来调用函数func,正确的调用语句是[]。
A)func(x,&y);B)func(&x,y);C)func(&x,&y);D)func(x,y);
(11)要使字符串变量str具有初值"Lucky",正确的定义语句是[]。
A)charstr[]={'L','u','c','k','y'};B)charstr[5]={'L','u','c','k','y'};
C)charstr[]="Lucky";D)charstr[5]="Lucky";
(12)已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是[]。
A)intMAT[][10]B)intMAT[3][]
C)intMAT[10][3]D)intMAT[][]
(13)若指针p定义为char*constp="Luchy!
";则[]。
A)p所指向的数据不可改变,p在定义时可以不初始化。
B)p所指向的数据不可改变,p在定义时必须初始化。
C)p本身不可改变,p在定义时可以不初始化。
D)p本身不可改变,p在定义时必须初始化。
(14)在下列表达式中,与下标引用A[i][j]不等效的是[]。
A)*(A+i+j)B)*(A[i]+j)C)*(*(A+i)+j)D)(*(A+i))[j]
(15)要使语句p=newdouble[20];能够正常执行,变量p应定义为[]。
A)doublep[20];B)doublep;
C)double(*p)[20];D)double*p;
(16)执行下列语句序列
structAA{intival;charcval;};
structBB{intival;AAra;};
structCC{intival;AAra;BBrb;};
CCrc={66,{rc.ival+1,rc.ra.ival+1},{69,{70,71}}};
cout<后,显示在屏幕上的是[]。
A)66,67,68B)67,68,69C)66,67,70D)67,69,70
(17)类的默认的无参构造函数[]。
A)在任何情况下都存在
B)仅当未定义无参构造函数时存在
C)仅当未定义有参构造函数时存在
D)仅当未定义任何构造函数时存在
(18)语句ofstreamf("SALARY.DAT",ios:
:
noreplace|ios:
:
binary);的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[]。
A)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。
B)若文件存在,将其截为空文件;若文件不存在,打开失败。
C)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。
D)若文件存在,打开失败;若文件不存在,建立一个新文件。
(19)执行下列语句序列
structAA{intival;charcval;};
structBB{intival;AAra;};
structCC{intival;AA*ra;BBrb;};
CCrc={66,newAA,{69,{70,71}}};
rc.ra->ival=rc.ival+1;
rc.ra->cval=rc.ra->ival+1;
cout<ival<<','<后,显示在屏幕上的是[]。
A)67,69,70B)66,67,70C)67,68,69D)66,67,68
(20)类的默认的拷贝构造函数[]。
A)在任何情况下都存在
B)仅当未定义拷贝构造函数时存在
C)仅当未定义有参构造函数时存在
D)仅当未定义任何构造函数时存在
(21)语句ofstreamf("SALARY.DAT",ios:
:
nocreate|ios:
:
trunc);的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[]。
A)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。
B)若文件存在,将其截为空文件;若文件不存在,打开失败。
C)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。
D)若文件存在,打开失败;若文件不存在,建立一个新文件。
22.由C++目标文件连接而成的可执行文件的缺省扩展名为_______。
AcppBexeCobjDlik
23.在下面的一维数组定义中,哪一个有语法错误。
________
Ainta[]={1,2,3};Binta[10]={0};Cinta[];Dinta[5];
24.在下面的函数声明中,存在着语法错误的是__D_____。
AvoidBC(inta,int);BvoidBD(int,int);
CvoidBE(int,int=5);DintBF(intx;inty);
25.假定AB为一个类,则该类的拷贝构造函数的声明语句为_______。
AAB&(ABx);BAB(ABx)CAB(AB&);DAB(AB*x)
26.对于结构中定义的成员,其隐含访问权限为________。
ApublicBprotectedCprivateDstatic
27.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方
式为_______。
Aios:
:
inBios:
:
outCios:
:
in|ios:
:
outD没有
28、设a和b均为bool型变量,则a||b为假的条件是()
A)它们均为真B)其中一个为真C)其中一个为假D)它们均为假
29、声明或定义一个内联函数时,必须在函数开始使用保留字()
A)staticB)constC)inlineD)extern
30、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为()
A)n-2B)n-1C)nD)n+1
31、对于类中定义的成员,其隐含访问权限为()
A)staticB)publicC)protectedD)private
32、当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为()
A)ios:
:
inB)ios:
:
outC)ios:
:
in|ios:
:
outD)ios:
:
binary
33、下面的函数声明中,哪一个”voidBC(inta,intb);”是的重载函数?
A)intBC(inta,intb)B)voidBC(inta,charb)
C)floatBC(inta,intb,intc=0)D)voidBC(inta,intb=0)
34、假定a为一个数组名,则下列的哪一种表示有错误()
A)a[i]B)*a++C)*aD)*(a+1)
35、假定AB为一个类,px为指向该类动态对象数组的指针,该数组的长度为n,则执行”delete[]px;”语句时,自动调用该类的析构函数的次数为()
A)0B)1C)nD)n+1
三、写出下列程序运后的输出结果
1.
#include
voidSB(charch){
switch(ch){
case'A':
case'a':
cout<<"well!
";break;
case'B':
case'b':
cout<<"good!
";break;
case'C':
case'c':
cout<<"pass!
";break;
default:
cout<<"bad!
";break;
}
}
voidmain(){
chara1='b',a2='C',a3='f';
SB(a1);SB(a2);SB('A');
cout<}
2.
#include
#include
doubleSD(inta,intb,charop){
doublex;
switch(op){
case'+':
x=double(a)+b;break;
case'-':
x=double(a)-b;break;
case'*':
x=double(a)*b;break;
case'/':
if(b)x=double(a)/b;
elseexit
(1);
break;
default:
exit
(1);
}
returnx;
}
voidmain(){
intx=20,y=12;
cout<cout<cout<}
3.
#include
voidmain(){
ints=0;
for(inti=1;i<6;i++)
s+=i*i;
cout<<"s="<
}
4.
#include
voidmain(){
ints=0;
for(inti=1;;i++){
if(s>50)break;
if(i%3==0)s+=i;
}
cout<<"i,s="<
}
5.
#include
voidmain(){
ints1=