}
该程序的运行结果是__。
(A)、1
(B)、3
(C)、4
(D)、2
选:
C
[单选题]在C++中,如果一个类至少有一个纯虚函数,那么该类就可以称为
(A)、抽象类
(B)、虚基类
(C)、纯基类
(D)、派生类
选:
A
[单选题]以下不正确的for语句是
(A)、for(intx=1;;)
(B)、for(;1;);
(C)、for();
(D)、for(;;);
选:
C
[单选题]设有定义”intx=1;”,则执行下面的switch语句后,y的值为2的是
(A)、switch(x){case1:
y=1;case2:
y=2;default:
y=3;}
(B)、switch(x){case1:
y=1;break;case2:
y=2;break;default:
y=3;break;}
(C)、switch(x){case1:
y=1;break;case2:
y=2;default:
y=3;}
(D)、switch(x){case1:
y=1;case2:
y=2;break;default:
y=3;}
选:
D
[单选题]有以下程序段
charc;
cin>>c;
switch(C-’2’)
{
case1:
cout<<'1';
case2:
cout<<'2';
default:
cout<<'3';
}
程序运行后输入3并回车,则输出结果是
(A)、3
(B)、没有输出结果
(C)、1
(D)、123
选:
D
[单选题]若有初始化”intart[1][1]={1,1};”,则以下叙述中正确的是
(A)、数组中的所有元素都得到初值1
(B)、只有art[0][0]的值为1,其他元素值不确定
(C)、定义非法
(D)、只有art[1][1]的值为1,其他元素值不确定
选:
C
[单选题]若己定义:
intx[10],*p=x;并在以后的语句中未改变p的值,不能表示x[1]地址的表达式是
(A)、p++
(B)、x+1
(C)、p+1
(D)、++x
选:
D。
D非法,A其实也不对,表达式p++的结果是x[0]的地址,如果是++p就正确。
[单选题]有以下函数:
int*func(int*x){return(x);}
该函数的返回值是
(A)、无确定值
(B)、形参x自身的地址值
(C)、形参x中存放的地址值
(D)、一个临时存储单元的地址
选:
C
[多选题]以下程序段执行后,a的值为1的是__。
(选二)
(A)、inta=0,b=1,c;c=a;a=b;b=c;
(B)、inta=0,b=1,c;b=c;b=a;c=a;
(C)、inta=0,b=1,c;c=a;b=a;b=c;
(D)、inta=0,b=1;a=a+b;b=a-b;a=a-b;
选:
AD
[单选题]下列函数的声明正确的是__。
(A)、voidfunc(x,y)
(B)、voidfunc(intx,y);
(C)、voidfunc(intx,inty)
(D)、voidfunc(int,int);
选:
D
[多选题]下列函数中,可以作为虚函数的是__。
(选二)
(A)、构造函数
(B)、普通函数
(C)、析构函数
(D)、成员函数
选:
CD
[单选题]己知intn[5]={1,2,3,4,5}和*p=n,则不能表示数组n中元素的式子是
(A)、n[p-n]
(B)、*n
(C)、*p
(D)、n
选:
D
[单选题]下面选项中,___是函数的重载。
(A)、floatprint1(intx)与floatprintZ(inty)
(B)、intprint(floatx)与int*print(floatx)
(C)、intprint(floatx)与floatprint(intx)
(D)、intprint(char*y,floatx)与intprint(floatx,char*y)
选:
CD都是函数重载。
[多选题]以下定义中,不正确的是__。
(选三)
(A)、intx[1+2][3];
(B)、intx(3,4)
(C)、intx[3,4];
(D)、intx[][4];
选:
BCD
[单选题]己知intx=3;下面的do_while语句执行时循环次数为__。
do{x--;cout<=0);
(A)、2
(B)、3
(C)、1
(D)、无限
选:
B
[单选题]若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为
(A)、float
(B)、double
(C)、int
(D)、char
选:
B
[单选题]以下的for循环__。
for(x=0,y=0;(y!
=123)&&(x<4);x++);
(A)、执行3次
(B)、是无限循环
(C)、执行4次
(D)、循环次数不定
选:
C
[单选题]若有定义”intx[5]={l,2,3,4,5},*p=&x[1];”,则以下表达式中值为3的是
(A)、*(p+2)
(B)、*(p+1)
(C)、*p+2
(D)、p+1
选:
B
[单选题]关于运算符重载的说法不正确的是__。
(A)、运算符函数必须是成员函数
(B)、重载运算符的优先级和原来未重载的运算符的优先级相同
(C)、只能重载己有的运算符
(D)、重载不能改变运算符的结合律和操作数的个数
选:
A
[多选题]如果打开文件时,选用的文件操作方式为”wb+”,则下列说法中正确的是_(选三)。
(A)、要打开的文件是二进制文件
(B)、要打开的文件必须存在
(C)、打开文件后可以读取数据
(D)、要打开的文件可以不存在
选:
ACD。
这题考C语言的文件操作函数:
fopen
[单选题]下列关于二维数组的初始化不正确的是__。
(A)、floatb[1][2]={1.0};
(B)、intd[3][2]={{1},{2},{3}};
(C)、staticintc[3][]={1,2,3};
(D)、staticfloata[2][3]={1,2,3};
选:
C
[单选题]若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
则数值为4的表达式是__。
(A)、a[’d’-’c’]
(B)、a[4]
(C)、a[’d’-c]
(D)、a[g-c]
选:
C
[单选题]设有定义语句inta=3;则执行了语句a+=a-=a*a后,变量a的值是_。
(A)、9
(B)、3
(C)、-12
(D)、0
选:
C
[单选题]下面函数的功能是__。
char*str(char*x,char*y)
{
char*ps=x;
while(*x!
=’\0’)x++;
while(*y!
=’\0’)*x++=*y++;
*x=’\0’;
returnps;
}
(A)、将字符串y复制到字符串x中
(B)、将字符串x复制到字符串y中
(C)、求x字符串的长度
(D)、将字符串y连接到字符串x后
选:
D
[单选题]若程序中有下面的说明和定义,则会发生的情况是__。
structabc
{
intx;
chary;
}
structabcs1,s2;
(A)、能顺利通过编译但连接出错
(B)、能顺利通过编译连接但不能执行
(C)、程序将顺利编译连接执行
(D)、编译出错
选:
D。
struct类型定义语句缺分号结束
[单选题]己知字符0的ASCII码为十六进制数30,下面程序的输出结果是__。
#include
voidmain()
{
union{
unsignedcharx;
unsignedinty[2];
}z;
z.y[0]=0x31;
z.y[1]=0x32;
cout<}
(A)、0
(B)、2
(C)、一串乱码
(D)、1
选:
D
[单选题]有以下C++程序:
#include
voidmain()
{
intx;
do{
cout<<++x;
}while(!
x);
}
该程序___。
(A)、陷入死循环
(B)、编译时出错
(C)、运行时无结果输出
(D)、输出值不确定
选:
D
[多选题]若有以下的定义:
”intx[2][3];”,能正确表示x数组元素地址的表达式是。
(选二)
(A)、x[0]
(B)、x[1]
(C)、x[2]
(D)、&x[2][3]
选:
AB
[多选题]若有定义:
char*str[]={“one”,“two”,”three”},**p=str;
则可以表示出字符’t’的表达是__(选二)
(A)、*str+2
(B)、*str[2]
(C)、*(p+1)
(D)、**++p
选:
BD
[单选题]在以下一组运算符中,优先级最高的运算符是
(A)、<=
(B)、&&
(C)、%
(D)、=
选:
C
[单选题]下列程序执行后输出的结果是
intd=1;
voidfun(intq)
{
intd=5;
d+=q++;
cout<}
voidmain()
{
inta=3;
fun(a);
d+=a++;
cout<<““<}
(A)、84
(B)、85
(C)、94
(D)、96
选:
A
[单选题]设有inta[]={1,2,3},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是
(A)、2,2,3
(B)、1,3,3
(C)、2,3,3
(D)、1,2,3
选:
B
[单选题]若以下变量均己定义,则下面表达式不正确的是
(A)、x/=10
(B)、a=b,c
(C)、x+y=5
(D)、x>y?
y:
x
选:
C
[单选题]以下对一维数组n的正确定义是
(A)、constinta=3;intn[a];
(B)、inta=3,n[a];
(C)、inta;intn[a];
(D)、intn(3);
选:
A
[单选题]若有以下的说明和语句:
#include
main()
{
intt[3][2],*pt[3],k;
for(k=0;k<3;k++)
pt[k]=t[k];
}
则以下选项中能正确表示t数组元素地址的表达式是
(A)、&pt[2]
(B)、&t[3][2]
(C)、*pt[0]
(D)、*(pt+1)
选:
D
[单选题]有如下程序:
#include
voidmain()
{
inta,b;
for(a=1,b=0;a>b;a++)b=a;
cout<
}
该程序的运行结果是__。
(A)、2
(B)、死循环
(C)、0
(D)、1
选:
B
[单选题]C++语言提供的合法的数据类型关键字是__。
(A)、Char
(B)、Double
(C)、short
(D)、integer
选:
C
[多选题]以下运算符中优先级相同的是。
(选二)
(A)、->
(B)、=
(C)、~
(D)、*=
选:
BD
[单选题]若以下变量均己定义,则下面表达式不正确的是
(A)、a*=10
(B)、x=++x
(C)、a+b=c-d
(D)、x>>2
选:
C
[单选题]表达式!
(a<2&&b<3)等价于__。
(A)、!
(a<2)&&!
(b<3)
(B)、!
a<2&&!
b<3
(C)、!
(a<2)||!
(b<3)
(D)、!
a<2||!
b<3
选:
C
[单选题]设有语句chara=’\72’,则变量a__。
(A)、包含3个字符
(B)、包含2个字符
(C)、说明不合法
(D)、包含1个字符
选:
D
[单选题]能正确表示a≥10或a≤0的关系表达式是__。
(A)、a>=10||a<=0
(B)、a>=10|a<=0
(C)、a>=10&&a<=0
(D)、a>=10ora<=0
选:
AS
[单选题]下面函数的功能是
sss(char*s,char*t)
{
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}
(A)、求字符串的长度
(B)、将字符串s复制到字符串t中
(C)、将字符串s接续到字符串t中
(D)、比较两个字符串的大小
选:
A
程序有误,应为:
sss(char*s,char*t)
{
while((*s)&&(*t)&&(*t==*s))t++,s++;
return(*s-*t);
}
[单选题]字符型(char)数据在微机内存中的存储形式是
(A)、EBCDIC码
(B)、反码
(C)、补码
(D)、ASCII码
选:
D
[多选题]已知x,y,z是整型变量,则下列选项中正确的是(选三)
(A)、if(x<>y)--z;
(B)、if(x=y)++z;
(C)、if(x!
=y)z--;
(D)、if(x-y)z++;
选:
BCD。
A非法
[多选题]关于派生类的说法不正确的是(选二)
(A)、派生类无法给基类的数据成员初始化
(B)、派生类可显现基类的任何函数成员
(C)、派生类可重载己有的函数成员
(D)、派生类可以拥有自己的新成员
选:
BC
派生类不能重载基类的函数,不在同一个作用域内。
[单选题]有以下程序
#include
voidmain()
{
intx;
x=10;
cout<<--3*x/5<}
程序运行后的输出结果是_。
(A)、6
(B)、5
(C)、4
(D)、编译出错
选:
D
[单选题]设intm=1,n=2,则m++==n表达式的结果是
(A)、2
(B)、1
(C)、0
(D)、9
选:
C
[多选题]已知i,j,x是整型变量,则下列选项中正确的是(选三)
(A)、if(i+j)--x;
(B)、if(i≥j)x--;
(C)、if(i==j)x++;
(D)、if(i=j)++x;
选:
ACD
[单选题]若x是整型变量,p是整型指针变量,则正确的赋值表达式是__。
(A)、*p=*x;
(B)、p=x;
(C)、p=&x;
(D)、*p=&x;
选:
C
[单选题]若有以下定义和语句,则对x数组元素的正确引用为
intx[2][3],(*p)[3];p=x;
(A)、p[1]+1
(B)、p[2]
(C)、*(p+2)
(D)、*(*(p+1)+2)
选:
D
[单选题]给出以下定义:
charX[]="abcdefg”
charY[]={'a',’’b',’c,’d',’e,’f’,’g’);
则正确的叙述为__。
(A)、数组X的长度大于数组Y的长度
(B)、数组X和数组Y的长度相同
(C)、数组X和数组Y等价
(D)、数组X的长度小于数组Y的长度
选:
A
[单选题]在C++语言中,要求运算数必须是整型的运算符是
(A)、/
(B)、%
(C)、!
(D)、<
选:
B
[单选题]在C++中,要实现动态联编,必须使用___调用虚函数。
(A)、派生类指针
(B)、对象名
(C)、基类指针
(D)、类名
选:
C
[单选题]在C++中,友元函数是一种__。
(A)、普通函数
(B)、析构函数
(C)、成员函数
(D)、构造函数
选:
A。
准确点应该是:
普通函数或另一个类的成员函数。
[单选题]下面程序的运行结果是__。
#include
voidmain()
{
chars[]=“abc",*p=s;
while(*p)p++;
for(p--;p-s>O;p--)cout<
}
(A)、abc
(B)、cbc
(C)、bc
(D)、c
选:
B
[单选题]以下运算符中优先级最高的是
(A)、*
(B)、++
(C)、%
(D)、>>
选:
B
[单选题]以下不能对二维数组X进行正确初始化的语句是
(A)、intx[3][]={1,2,3};
(B)、intx[3][2]={(1,2),{3,4),{5,6}};
(C)、intx[][2]={{1},{2},{3}};
(D)、intx[3][2]={0};
选:
A
[单选题]若有以下说明:
intw[3][4]={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是_。
(A)、p[1][1]
(B)、*w[1]+1
(C)、w[2][2]
(D)、p++,*(p+1)
选:
A
[多选题]如果类A继承了类B,则类A称为__(选二)
(A)、父类
(B)、继承类
(C)、子类
(D)、派生类
选:
CD
[单选题]以下运算符中优先级最高的是
(A)、%
(B)、&&
(C)、>
(D)、!
选:
D
[单选题]若n为整型变量,则以下循环的执行次数是
for(n=2;n-->O;);
(A)、1
(B)、0
(C)、无限次
(D)、2
选:
D
[单选题]设char**s;以下正确的表达式是__。
(A)、*s=“computer”;
(B)、**s=“computer”;
(C)、*s=’c’;
(D)、s=“computer”;
选:
A
[多选题]若有如下的定义:
classsam
{
public:
intnum;
voidprint(){cout<}x,*p=&x;
则下列表达式中,__是正确的(无语法错误)。
(选三)
(A)、(*p).print()
(B)、p.num
(C)、x.num=5
(D)、p->num=10
选:
ACD
[多选题]下列___函数能实现字符串的复制。
(选二)
(A)、voidf(char*s,char*t){do{*s++=*t++;}while(*t!
='\0');}
(B)、voidf(char*s,char*t){while(*t){*s++=*t++;}*s='\O';}
(C)、voidf(char*s,char*t){do{*s=*t;s++;}while(*t++);}
(D)、voidf(char*s,char*t){unsignedi;for(i=0;i