C++习题.docx
《C++习题.docx》由会员分享,可在线阅读,更多相关《C++习题.docx(23页珍藏版)》请在冰点文库上搜索。
C++习题
〖第1题〗『填空』(1分)
若有以下数组a,数组元素:
a[0]~a[9],其值为
941282107513
该数组中下标最小的元素名字是【1】.
答案:
1).a[0]
〖第2题〗『填空』(1分)
字符串的结束标志是【1】.
答案:
1).\0或'\0'或0
〖第3题〗『填空』(1分)
设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!
(a+b)+c-1&&b+c/2
后,t的值是【1】.
答案:
1).1
〖第4题〗『填空』(1分)
在面向对象程序设计中,基类的构造函数和【1】函数不能被继承.
答案:
1).析构
〖第5题〗『填空』(1分)
写出表达式1.234&&5.982的值是【1】.
答案:
1).1
〖第6题〗『填空』(1分)
【1】称为文件包含命令,其意义是把指定的文件包含到本程序中,成为程序的一部分.
答案:
1).#include
〖第7题〗『填空』(1分)
C++中,流对象【1】称为标准输出设备.
答案:
1).cout
〖第8题〗『填空』(1分)
C++程序在执行中,不检查数组下标是否【1】.
答案:
1).越界
〖第9题〗『填空』(1分)
C++语言中,数组名是一个不可变的【1】常量,不能对它进行自加自减和赋值运算.
答案:
1).地址
〖第10题〗『填空』(1分)
若所用变量均已正确定义,则执行下面程序段后的值是【1】.
for(i=0;i<2;i++)cout<<"YES";cout<答案:
1).YESYES
〖第11题〗『填空』(1分)
已知i=5,写出语句i-=18;执行后整型变量i的值是【1】.
答案:
1).-13
〖第12题〗『填空』(1分)
#defineA(n)2*n+1,则表达式A(2+3)的值是【1】
答案:
1).8
〖第13题〗『填空』(1分)
关键字【1】用于进行动态内存分配,关键字delete用于释放所分配的内存.
答案:
1).new
〖第14题〗『填空』(1分)
C++语言表达式!
(3<6)||(4<9)的值是【1】.
答案:
1).1
〖第15题〗『填空』(1分)
设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);
后,a的值是【1】.
答案:
1).28
〖第16题〗『填空』(1分)
若输入字符串:
abcde<回车>,则以下while循环体将执行【1】次.
while((ch=cin.get())=='e')cout<<"*"<答案:
1).0
〖第17题〗『填空』(1分)
在C++中,类及由类所定义的对象二者中,【1】占内存空间.
答案:
1).对象
〖第18题〗『填空』(1分)
有下列程序段,执行后的输出结果是【1】.
inta=3,b=5;
intmax(inta,intb)
{intc;
c=a>b?
a:
b;
returnc;
}
voidmain()
{inta=8;
cout<}
答案:
1).8
〖第19题〗『填空』(1分)
一个C源程序中至少应包括一个【1】函数,它是C程序中唯一可以直接执行的函数,其他函数都是直...
答案:
1).main或main()或主
〖第20题〗『填空』(1分)
已知a=13,b=6,a&&b的十进制数值为【1】.
答案:
1).1
〖第1题〗『判断』(1分)
单重继承是指派生类只有一个基类的情况.
答案:
Y
〖第2题〗『判断』(1分)
break语句只能用在循环语句中.
答案:
N
〖第3题〗『判断』(1分)
定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数.
答案:
N
〖第4题〗『判断』(1分)
x*=y+8等价于x=x*(y+8).
答案:
Y
〖第5题〗『判断』(1分)
指针函数是指函数的返回值为指针的函数.
答案:
Y
〖第6题〗『判断』(1分)
类型标识符函数名(参数表列){函数体}此函数是内联函数.
答案:
N
〖第7题〗『判断』(1分)
char*p="PCGAME";是定义初始化指针变量,指针变量的值是一个字符串.
答案:
N
〖第8题〗『判断』(1分)
inti=20;switch(i/10){case2:
cout<<"A";
case1:
cout<<"B";}的输出结果为A.
答案:
N
〖第9题〗『判断』(1分)
数组只有一个下标,称为一维数组.
答案:
Y
〖第10题〗『判断』(1分)
charch[8]="student";cout<答案:
N
〖第11题〗『判断』(1分)
若有宏定义:
#defineS(a,b)a+b此宏定义是错误的.
答案:
N
〖第12题〗『判断』(1分)
int*p=null;是正确的定义.
答案:
N
〖第13题〗『判断』(1分)
一维字符数组的输入:
charstr[22];cin>>str;
答案:
Y
〖第14题〗『判断』(1分)
charch1[]={"student"};字符数组ch1长度为8,存储的是字符串
答案:
Y
〖第15题〗『判断』(1分)
inti表示取变量i的整数部分.
答案:
N
〖第16题〗『判断』(1分)
不能对字符数组整体进行赋值,只能给各个元素赋值,而字符指针变量可以直接赋值.
答案:
Y
〖第17题〗『判断』(1分)
struct是声明结构体类型时所必须使用的关键字,可以省略;
答案:
N
〖第18题〗『判断』(1分)
charch2[]={'s','t','u','d','e','n','t'};字符数组ch2长度为7,存储...
答案:
Y
〖第19题〗『判断』(1分)
对二维数组正确定义的形式是:
inta
(2)(3);
答案:
N
〖第20题〗『判断』(1分)
求字符串长度函数strlen()
答案:
Y
〖第1题〗『单项选择』(1分)
两个指针变量不可以().
A:
相加
B:
比较
C:
相减
D:
指向同一地址
答案:
A
〖第2题〗『单项选择』(1分)
C++语言中,char类型数据占().
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
A
〖第3题〗『单项选择』(1分)
以下能正确定义数组并正确赋初值的语句是().
A:
intN=5,b[N][N];
B:
inta[1][2]={{1},{3}};
C:
intc[2][]={{1,2},{3,4}};
D:
intd[3][2]={{1,2},{3,4}};
答案:
D
〖第4题〗『单项选择』(1分)
求平方根函数的函数名为().
A:
cos
B:
abs
C:
pow
D:
sqrt
答案:
D
〖第5题〗『单项选择』(1分)
下列程序段的输出结果为().
#includevoidmain(){intx=3,y=2;cout<<(x-=y,x*=y+8/5);}
A:
1
B:
7
C:
3
D:
5
答案:
C
〖第6题〗『单项选择』(1分)
以下不是无限循环的语句为().
A:
for(y=0,x=1;x>++y;x=i++)i=x;
B:
for(;;x++=i);
C:
while
(1){x++;}
D:
for(i=10;;i--)sum+=i;
答案:
A
〖第7题〗『单项选择』(1分)
若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为().
A:
7
B:
8
C:
9
D:
10
答案:
B
〖第8题〗『单项选择』(1分)
以下语句中,循环次数不为10次的语句是().
A:
for(i=1;i<10;i++);
B:
i=1;do{i++;}while(i<=10);
C:
i=10;while(i>0){--i;}
D:
for(i=10;i>0;i--);
答案:
A
〖第9题〗『单项选择』(1分)
函数返回值的类型是由()决定的.
A:
return语句中表达式的类型
B:
函数定义时的类型
C:
调用函数时的调用语句
D:
系统根据结果
答案:
B
〖第10题〗『单项选择』(1分)
下面说明不正确的是().
A:
chara[10]="china";
B:
chara[10],*p=a;p="china"
C:
char*a;a="china";
D:
chara[10],*p;p=a="china"
答案:
D
〖第11题〗『单项选择』(1分)
下列字符序列中,是C++语言关键字的是().
A:
sizeof
B:
printf
C:
cin
D:
sqrt
答案:
A
〖第12题〗『单项选择』(1分)
doublex;cin>>x;不可以赋值给x变量的常量是().
A:
123
B:
100000
C:
3.14
D:
"abc"
答案:
D
〖第13题〗『单项选择』(1分)
inta[10];
给数组a的所有元素分别赋值为1、2、3、……的语句是().
A:
for(i=1;i<11;i++)a[i]=i;
B:
for(i=1;i<11;i++)a[i-1]=i;
C:
for(i=1;i<11;i++)a[i+1]=i;
D:
for(i=1;i<11;i++)a[0]=1;
答案:
B
〖第14题〗『单项选择』(1分)
设charch1='A',ch2='a';表达式ch2==ch1+32?
ch1:
ch1+32的值是().
A:
0
B:
1
C:
a'
D:
A'
答案:
D
〖第15题〗『单项选择』(1分)
具有相同类型的指针变量p与数组a,不能进行的操作是().
A:
p=a;
B:
*p=a[0];
C:
p=&a[0];
D:
p=&a;
答案:
D
〖第16题〗『单项选择』(1分)
在以下给出的表达式中,与do--while(E)语句中的(E)不等价的
表达式是().
A:
(!
E==0)
B:
(E>0||E<0)
C:
(E==0)
D:
(E!
=0)
答案:
C
〖第17题〗『单项选择』(1分)
以下程序的输出结果是().
#includevoidmain(){chars[]="123",*p;p=s;cout<<*p++<A:
123
B:
1
C:
3
D:
321
答案:
B
〖第18题〗『单项选择』(1分)
下列字符序列中,不可用作C++语言标识符的是().
A:
b70
B:
#ab
C:
symbol
D:
a_1
答案:
B
〖第19题〗『单项选择』(1分)
下列的调用方式()是引用调用.
A:
形参和对应的实参都是变量名
B:
形参是指针,对应的实参是地址值
C:
形参是引用,对应的实参是变量名
D:
形参是变量名,对应的实参是地址值
答案:
C
〖第20题〗『单项选择』(1分)
以下标识符中,不能作为合法的C用户定义标识符的是().
A:
a3_b3
B:
void
C:
_123
D:
IF
答案:
B
〖第21题〗『单项选择』(1分)
系统的标准输入文件是指().
A:
键盘
B:
显示器
C:
软盘
D:
硬盘
答案:
A
〖第22题〗『单项选择』(1分)
设有定义:
charstr[100];当执行cin>>str;后,从键盘输入:
″C++programmingwindows″...
A:
C++
B:
C++programming
C:
windows
D:
C++programmingwindows
答案:
A
〖第23题〗『单项选择』(1分)
下列表达式中,可作为C++合法表达式的是().
A:
[3,2,1,0]
B:
(3,2,1,0)
C:
3=2=1=0
D:
3/2/1/0
答案:
B
〖第24题〗『单项选择』(1分)
若有说明:
intn=2,*p=&n,*q=p;,则以下非法的赋值语句是().
A:
p=q;
B:
*p=*q;
C:
n=*q;
D:
p=n;
答案:
D
〖第25题〗『单项选择』(1分)
对以下说明语句inta[10]={6,7,8,9,10};的正确理解是().
A:
将5个初值依次赋给a[1]至a[5]
B:
将5个初值依次赋给a[0]至a[4]
C:
将5个初值依次赋给a[6]至a[10]
D:
因为数组长度与初值的个数不相同,所以此语句不正确
答案:
B
〖第26题〗『单项选择』(1分)
以下正确的说法是().
A:
用户若需调用标准库函数,调用前必须重新定义
B:
用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C:
系统根本不允许用户重新定义标准库函数
D:
用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系...
答案:
B
〖第27题〗『单项选择』(1分)
以下描述中正确的是().
A:
由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B:
do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C:
在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D:
do-while循环中,根据情况可以省略while
答案:
C
〖第28题〗『单项选择』(1分)
以下对C++语言函数的描述中,正确的是().
A:
C++程序必须由一个或一个以上的函数组成
B:
C函数既可以嵌套定义又可以递归调用
C:
函数必须有返回值,否则不能使用函数
D:
C++程序中有调用关系的所有函数必须放在同一个程序文件中
答案:
A
〖第29题〗『单项选择』(1分)
下列语句的结果是().
#includevoidmain(){intj;j=3;cout<<++j;cout<<","<A:
3,3
B:
3,4
C:
4,3
D:
4,4
答案:
D
〖第30题〗『单项选择』(1分)
关于return语句,下列正确的说法是().
A:
在主函数和其他函数中均可出现
B:
必须在每个函数中出现
C:
可以在同一个函数中出现多次
D:
只能在除主函数之外的函数中出现一次
答案:
C
〖第1题〗『程序填空』(8分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
-------------------------------------------------------*/
#include
#include
voidmain()
{
intm,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
【?
】;
n=m;
do
{
/***********SPACE***********/
k=k+【?
】;
n=n/10;
/***********SPACE***********/
}【?
】;
if(k%15==0)
{
cout<i++;
/***********SPACE***********/
if(i%10==0)【?
】;
}
}
}
答案:
1).k=0
2).n%10
3).while(n>0)或while(0=0)或while(0!
=n)
4).cout★<<★endl
〖第2题〗『程序填空』(8分)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是用公式π/4=1-1/3+1/5-1/7+......
求π的近似值。
要求直到最后一项的绝对值小于1e-6为止。
-------------------------------------------------------*/
#include
#include
voidmain()
{
intf;
/***********SPACE***********/
【?
】
floatt,pi;
t=1;pi=0;f=1;n=1.0;
/***********SPACE***********/
while(【?
】)
{
pi=pi+t;
n=n+2;
/***********SPACE***********/
【?
】
t=f/n;
}
/***********SPACE***********/
【?
】
cout<<"pi="<}
答案:
1).floatn;
2).fabs(t)>1e-6或fabs(t)>0.000001或1e-63).f=-f;或f=-1*f;或f=f*(-1);
4).pi=★pi★*★4★;或pi*=4;
〖第1题〗『程序改错』(8分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:
在主函数中从键盘输入若干个数放入数组中,用0结束输
入并放在最后一个元素中。
下列给定程序中,函数fun的
功能是:
计算数组元素中值为正数的平均值(不包括0)。
例如,数组中元素的值依次为39,-47,21,2,-8,15,
0,则程序的运行结果为19.250000。
请改正程序中的错误,使它能得出正确的结果。
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
doublefun(ints[])
{
/**********FOUND**********/
intsum=0.0;
intc=0,i=0;
/**********FOUND**********/
while(s[i]=0)
{
if(s[i]>0)
{sum+=s[i];c++;}
i++;
}
/**********FOUND**********/
sum\=c;
/**********FOUND**********/
returnc;
}
voidmain()
{
intx[1000];inti=0;
do
{cin>>x[i];}
while(x[i++]!
=0);
cout<}
答案:
1).doublesum=0.0;或doublesum=0;
2).while(★s[i]★!
=★0★)或while(!
s[i]==0)或while(!
0==s[i])或while(s[i])
3).sum/=c;或sum=sum/c;
4).returnsum;或return(sum);
〖第1题〗『程序设计』(6分)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
已知三个数a,b,c,按由小到大的顺序存入a,b,c中并输出.
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main和其它
函数中的任何内容,仅在函数的花括号中填入所编
写的若干语句。
------------------------------------------------*/
#include
#include
#include
voidwriteinfile(inta,intb,intc)
{
fstreammyfile;
myfile.open("f.txt",ios:
:
out);
myfile<myfile.close();
}
voidmain()
{
inta=8,b=56,c=7,t;
/**********Program**********/
/**********End**********/
writeinfile(a,b,c);
}
答案:
----------------------
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
----------------------