C++下半年习题.docx

上传人:b****5 文档编号:5800061 上传时间:2023-01-01 格式:DOCX 页数:42 大小:29.93KB
下载 相关 举报
C++下半年习题.docx_第1页
第1页 / 共42页
C++下半年习题.docx_第2页
第2页 / 共42页
C++下半年习题.docx_第3页
第3页 / 共42页
C++下半年习题.docx_第4页
第4页 / 共42页
C++下半年习题.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C++下半年习题.docx

《C++下半年习题.docx》由会员分享,可在线阅读,更多相关《C++下半年习题.docx(42页珍藏版)》请在冰豆网上搜索。

C++下半年习题.docx

C++下半年习题

一、选择题

[单选题]下面的表达式中值为0的是___。

(A)、2%3

(B)、2<3

(C)、2>3

(D)、2/3.0

选:

C

[单选题]关于fseek函数,以下有关操作的叙述不正确的是___。

(A)、只可以顺序定位文件的位置指针

(B)、可以实现文件的顺序读写

(C)、可以改变文件的位置指针

(D)、可以实现文件的随机读写

选:

D

[单选题]有以下程序

#include

voidmain()

{

intx=-1,y=3,k;

k=(x++>=0)||(!

(++y<=0));

cout<

}

程序运行后的输出结果是__。

(A)、103

(B)、012

(C)、104

(D)、112

选:

C

[多选题]c++的数据类型中,其所占的字节数相同的是___。

(选三)

(A)、long

(B)、double

(C)、float

(D)、unsigned

选:

ACD

[多选题]以下运算符中优先级相同的是__。

(选二)

(A)、=

(B)、~

(C)、!

(D)、++

选:

BC

[单选题]若有定义int*p,a[5];则下列正确的选项是__。

(A)、a=p;

(B)、*p=a;

(C)、p=a;

(D)、p=&a;

选:

C

[多选题]下列正确的转义字符是__。

(选三)

(A)、’074’

(B)、’\0’

(C)、’\’’

(D)、’\\’

选:

BCD

[多选题]若有说明”inta=3,b[3][3];”,则对b数组元素的非法引用是___。

(选二)

(A)、b[1][3-a]

(B)、b[2][1+1]

(C)、b[0][a]

(D)、b[a][2]

选:

CD

[单选题]C++语言中最简单的数据类型包括__。

(A)、整型、字符型、逻辑型

(B)、整型、实型、逻辑型

(c)、整型、实型、逻辑型、字符型

(D)、整型、实型、字符型

选:

C

[单选题]执行下面程序后,输出的结果

#include

#defineF(n)(n-1)*n

voidmain()

{

intx=1,y=2;

cout<

}

(A)、30

(B)、18

(C)、21

(D)、6

选:

B

[单选题]不能把字符串:

"C++”赋给数组s的语句是__。

(A)、chars[10]={’C’,’+’,’+’,’\0'}

(B)、chars[10];strcpy(s,"C++");

(C)、chars[10]=“C++";

(D)、chars[10];s="C++";

选:

D

[单选题]若以下变量均己定义,则下面表达式不正确的是

(A)、x+y=5

(B)、x/=10

(C)、a=b,c

(D)、x>y?

y:

x

选:

A

[单选题]有以下程序段

charc;

intx;

cin>>c;

switch(c-'2')

{

case1:

x=l;break;

case2:

x=2;break;

default:

x=3;

}

程序运行后输入3并回车,则输出结果是

(A)、1

(B)、3

(C)、没有输出结果

(D)、2

选:

C

[单选题]有如下程序段:

voidmain()

{

inta=1;

switch(a++)

{

case0:

a++;

case1:

a++;

case2:

a++;

}

cout<

}

该程序的运行结果是__。

(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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1