C++自测题.docx

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

C++自测题.docx

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

C++自测题.docx

C++自测题

】、判断题

1.在程序的运行过程中,符号常量的值是可以改变的。

.......................()

2.在函数内部定义的变量称为全局变量。

...............................................()

3.i++和++i,对于i来说是不一样的。

……………………………....()

4.任何C++程序都是从main函数开始执行的。

....................................()

5.case不是一个合法的标识符。

................................................................()

二、单选题

1.以下所列的C++语言常量中,错误的是()。

A.0xAAB.'cd'C.9.0D.'\t'

2.C++语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。

A.可以是字母、数字和下划线中任一种字符B.必须为下划线

C.必须为字母D.必须为字母或下划线

3.以下不正确的是()。

A.语句for(i=1;;++i)表示无限循环B.for(;;)表示无限循环

C.while(0)表示无限循环D.while

(1)表示无限循环

4.已知intx=3,y=4,z=5;以下语句执行后x,y,z的值是()。

if(x>y)z=x;

x=y;

y=z;

A.x=3,y=4,z=5B.x=4,y=5,z=5

C.x=4,y=5,z=3D.x=4,y=5,z=4

5.若变量c为char类型,能正确判断出c为0~9的数字字符的表达式是()。

A.(c>='0')||(c<='9')B.('0'<=c)&('9'>=c)

C.(c>='0')&&(c<='9')D.'0'<=c<='9'

6.intk=0;

while(k=1)k=k-1;

则下面描述正确的是()。

A.while循环执行10次B.该循环是无限循环

C.循环体语句一次也不执行D.循环体语句执行一次

7.设x,y和z是int型变量,且x=30,y=40,z=50,则下面表达式中值为0的是()。

A.!

(z||1)B.x<=y

C.x||((z+y)&&(z-y))D.x&&y

8.对于功能不太复杂,并且要求加快执行速度,选用()较合适。

A.嵌套调用B.重载函数C.递归调用D.内联函数

9.关于函数的调用下面不正确的是()。

A.由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行。

B.函数的调用可以在任意函数之间进行,只要有需要。

C.一个函数可以自己调用自己。

D.函数返回时可以不必带返回值,这时函数在定义时其类型应用void表示。

10.下面关于数组的说法正确的是()。

A.它与普通变量没什么区别B.它的元素的数据类型可以相同,也可以不同

C.数组的元素的数据类型是相同的D.它用数组名标识其元素

11.以下哪个选项为一维double型数组a的正确说明()。

A.doublea(20);B.constintSIZE=20;doublea[SIZE];

C.intn;cin>>n;doublea[n];D.intn=20;doublea[n];

12.不正确的字符串赋值或赋初值的方式是()。

A.charstr[20];str=“string”;B.charstr[7]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’};

C.charstr[]=“string”;D.charstr[7]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’,‘\0’};

13.下面程序的输出结果是()。

#include

#include

voidmain()

{

chara[]="welcome",b[]="well";

strcpy(a,b);

cout<

}

A.wellB.wellomC.wellomeD.wellwe

14.下列哪个不是重载函数在调用时选择的依据()。

A.参数类型B.参数个数C.函数类型D.函数名

15.下面程序的输出结果是()。

#include

voidmain()

{

intn[2],i,j,k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

cout<

}

A.不确定的值B.3C.2D.1

16.下面程序的输出结果为()。

#include

intf(inta)

{

intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

}

voidmain()

{

inta=2,i;

for(i=0;i<3;i++)

cout<

}

A.7B.7C.7D.7

10879

139711

17.下列说法正确的是()。

A.cout<<"\n";是一个语句,它能在屏幕上显示"\n"B.'\n'代表的是2个字符。

C.1E-3的写法是错误的。

D.C++中变量必须先声明后使用。

18.下面说法正确的是()。

A.4.1/2是合法的表达式B.3.2%3是合法的表达式

C.3/2==1结果为0D.7/2结果为3.5

19.设intb,a=5,执行下列代码后,b的值不为2的是()。

A.b=a/2B.b=a%2

C.b=6-(--a)D.b=a<3?

3:

2

20.对代数式

,下面不正确的C++语言表达式是()。

A.a/b/c*e*5B.5*a*e/b/cC.5*a*e/b*cD.a*e/c/b*5

21.

以下能正确计算1*2*3*…*10的程序段是()。

A.do{B.do{

i=1;s=1;i=1;s=0;

s=s*i;i++;s=s*i;i++;

}while(i<=10);}while(i<=10);

C.i=1;s=1;D.i=1;s=0;

do{do{

s=s*i;s=s*i;

i++;i++;

}while(i<=10);}while(i<=10);

22.intx=-1;

do

{

x=x*x;

}while(!

x);

下列说法正确的是()。

A.是死循环B.循环执行两次C.循环执行一次D.有语法错误

23.关于下面程序段说法正确的是()。

for(t=1;t<=100;t++)

{

cin>>x;

if(x<0)continue;

cout<

}

A.最多可以输出100个非负整数B.x>=0时什么也不输出

C.cout永远也不执行D.当x<0时整个循环结束

24.下面程序段的运行结果是()。

#include

voidmain()

{

inti;

for(i=1;i<=5;i++)

{

if(i%2==1)

cout<<“*”;

else

continue;

cout<<“#”;

}

cout<<“$\n”;

}

A.#*#*$B.#*#*#*$C.*#*#$D.*#*#*#$

25.如果一个函数无返回值,定义时它的函数类型应是()。

A.任意B.voidC.intD.无

26.在参数传递过程中,对形参和实参的要求是()。

A.函数定义时,形参和实参一定是占用不同的存储空间

B.实参可以是常量、变量或表达式

C.形参可以是常量、变量或表达式

D.以上说法均不对

27.预处理命令以()开头。

A.*B./C.#D.:

28.现有下列定义:

chara[]="abcd";charb[]={'a','b','c','d'};则下列说法正确的是()。

A.数组a与数组b等价

B.数组a和数组b的长度相同

C.数组a的长度大于数组b的长度

D.数组a的长度小于数组b的长度

29.下面选项中等价的是()。

A.inta[2][3]={1,0,2,2,4,5}与inta[2][]={1,0,2,2,4,5};

B.inta[2][3]={0,1}与inta[2][3]={{0},{1}};

C.inta[2][3]={3,4,5}与inta[][3]={3,4,5};

D.inta[][3]={1,0,2,2,4,5}与inta[2][3]={1,0,2,2,4,5};

30.则以下语句中,()的输出结果不是3。

A.cout<< "3";B.cout<<’3’;C.cout<<’0’+3 ;D.out<<(char)(’0’+3) ;

三、填空题

1.设charch='D'-'A'+'a',则ch的值是哪个字符。

2.表达式!

(3>=1)的值为。

3.在数组初始化时,如果初始化的元素比数组中的元素少,则其余元素自动初始化为。

4.charstr[10]="abc\0abc";则strlen(s)的值为。

5.有算术表达式x+a%3*(int)(x+y)%2/4,其中x=3.9,a=2,y=3.6,则其值为:

6.若x=1,y=2,z=3,则执行语句z=z+(x

x++:

++y)后,z的值为。

7.若有二维数组inta[][3]={1,0,2,4,5,3},则a[1][1]的值为。

四、阅读程序,并在相应横线上填空

1.执行以下程序后输出为。

#include

voidmain()

{

inti,j,k;

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

cout<

}

2.下面程序的输出结果是__________

#include

voidmain()

{

inta[3][3]={{1,2},{3,4},{5}};

intsum=0;

for(inti=1;i<3;i++)

for(intj=0;j<=i;j++)

sum+=a[i][j];

cout<

}

3.执行以下程序,则输出为a=,b=。

#include

voidswap(intx,inty)

{

intt;

t=x;x=y;y=t;

}

voidmain()

{

inta=3,b=9;

swap(a,b);

cout<<"a="<

}

4.下面述程序的输出结果为:

_______,_______

#include

intbi_search(inta[],intx,intn)

{

intlow=0,mid,high=n-1;

while(low<=high)

{mid=(low+high)/2;

if(x==a[mid])returnmid;

elseif(x

elselow=mid+1;

}

return-1;

}

voidmain()

{

intarray[6]={1,2,6,14,27,55};

cout<

}

5.执行以下程序,则输出__________

#include

#include

intfun(charstring[])

{

inti=0,j=strlen(string),num=0;

while(i

{

while(string[i]=='')i++;

if(i

while(string[i]!

='')i++;

}

returnnum;

}

voidmain()

{

charstr[100]="IlikeCplusplus";

cout<

}

6.执行以下程序,输入123,则输出__________

#include

voidmain()

{

intn,sum=0;

cin>>n;

while(n>0)

{

sum=sum+n%10;

n=n/10;

}

cout<

}

7.下面程序的运行结果是__________。

#include

voidmain()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20)break;

if(b%3==1)

{

b+=3;

continue;

}

b-=5;

}

cout<

}

五、程序补充完整。

根据要求将相应的程序补充完整,每个空格最多只能填一条语句。

1.以下程序输出三个数中的最大值,请填空。

#include

voidmain()

{

inta,b,c,max;

cout<<"请输入三个数:

";

cin>>a>>b>>c;

if(

(1))max=b;

elsemax=a;

if(

(2))cout<<"最大值:

"<

elsecout<<"最大值:

"<

}

2.分别输入10个学生的5门课程的成绩,并计算每个学生的平均分,以及每门课的平均分。

二维数组score的0列用于保存每个学生的信息,0行用于保存每门课的信息。

#include

constintM=10;//学生数

constintN=5;//科目数

intmain()

{

doublescore[M+1][N+1]=

(1);//所有元素初始化为0

inti,j;

for(i=1;i<=M;i++)

{

for(j=1;j<=N;j++)

{

cin>>score[i][j];//输入第i个学生的第j门科成绩

(2);//把第i个学生的第j门科的成绩累加到第i个学生的总成绩

(3);//把第i个学生的第j门科的成绩累加到第j门科的总成绩

}

}

for(i=1;i<=M;i++)

{

(4);//求第i个学生的平均分

cout<<"第"<

"<

}

for(j=1;j<=N;j++)

{

(5);//求第j门科的平均分

cout<<"第"<

"<

}

return0;

}

3.下面的函数返回数组中最大元素的下标,数组中元素个数为n,将程序补充完整:

intFindMax(ints[],intn)

{

intk,i;

(1);

for(i=1;i

if(s[i]>s[k])

(2);

returnk;

}

4.回文判断:

从键盘输入一个字符串(不超过100个字符),判断该字符串是否为回文。

例如:

abcdcba是回文。

#include

#include

constintMAXSIZE=101;

voidopposite(charstr1[],charstr2[]);

intmain()

{

charstr1[MAXSIZE]=””;//空串

charstr2[MAXSIZE]=””;

cin.getline(

(1),

(2));//读入一行,保存在str1中

opposite(str1,str2);

if((3))//判断原串与逆序串是否相等

cout<<"是回文";

else

cout<<"不是回文";

return0;

}

//把str1中的字符串逆序存放在str2中;

voidopposite(charstr1[],charstr2[])

{

inti,j;

for(i=strlen(str1)-1,j=0;(4);i--,j++)

{

(5);

}

return;

}

六、程序改错题

1.以下程序用于输出以下图形,但程序存在错误,请通过修改注释

(1)、

(2)的语句,改正程序,且不能添加、删除或修改其他语句。

*

***

*****

*******

#include

voidmain()

{

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=i;j++)//

(1)

cout<<"";

for(j=1;j<=i;j++)//

(2)

cout<<”*”;

cout<

}

}

2.以下程序用于进行整型的百分成绩和五等制成绩的转换,转换规则如下所示,但程序存在错误,请通过修改注释

(1)、

(2)的语句,改正程序,且不能添加、删除或修改其他语句。

0<=scour<60E

60<=scoure<70D

70<=scoure<80C

80<=scoure<90B

90<=scoure<=100A

#include

usingnamespacestd;

voidmain()

{

intscore;

chargrade;

cin>>score;

switch(score)//

(1)

{

case6:

grade='D';break;

case7:

grade='C';break;

case8:

grade='B';break;

case9:

case10:

grade='A';break;

case0~5:

grade='E';//

(2)

}

cout<<"五分制成绩为:

"<

}

3.以下程序用于,查找出小于等于n(n>=2)的所有素数,但存在错误,请通过修改注释为

(1)和

(2)语句,改正程序,且不能添加、删除或修改其他语句。

#include

#include

usingnamespacestd;

voidmain()

{

intnum;

cin>>num;

for(inti=2;i<=num;i++)

{

for(intj=2;j<=sqrt(i);j++)

{

if(j%i==1)//

(1)

{

break;

}

}

if(j

(2)

cout<

}

cout<

}

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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