C++程序设计基础练习题与答案无答案.docx
《C++程序设计基础练习题与答案无答案.docx》由会员分享,可在线阅读,更多相关《C++程序设计基础练习题与答案无答案.docx(78页珍藏版)》请在冰豆网上搜索。
C++程序设计基础练习题与答案无答案
C++程序设计基础综合练习题
选择题
单选题
×1. 在C++语言里,一条语句以_____字符作为结束符。
A.,B.;C..D.无符号[答案]B
×2. 下列语句段将输出字符’*’的个数为()
inti=100;
while
(1)
{
i--;
if(i==0)break;
cout<<‘*’;
}
A.98个B.99个C.100个D.101个[答案]B
×3. 设以下变量都是int类型,则值不等于7的表达式是
A.x=y=6,x+y,x+1B.x=y=6,x+y,y+1C.x=6,x+1,y=6,x+yD.y=6,y+1,x=y,x+1[答案]C
×4. x=1,y=1,z=1,执行表达式w=++x||++y&&++z后,x、y、z的值分别为
A.x=2,y=1,z=1B.x=2,y=2,z=2C.x=1,y=1,z=1D.x=2,y=2,z=1[答案]A
×5. 用逻辑表达式表示“大于10而小于20的数”,正确的是
A.1010||x<20C.x>10&x<20D.!
(x<=10||x>=20)[答案]D
×6. 设inta=10,b=11,c=12;表达式(a+b)A.2B.0C.-2D.1[答案]B
×7. 整型变量i定义后赋初值inti=2.8*6的结果是
A.12B.16C.17D.18[答案]B
×8. 已知a=5,b=3,表达式a+=a*=++b*3的值为多少?
A.40B.80C.100D.120[答案]D
×9. 在C++中,源程序变为可执行程序的正确顺序应该是
A.编辑、链接、编译、执行B.编辑、编译、链接、执行C.编译、编辑、链接、执行D.编译、链接、编辑、执行[答案]B
×10. 要把高级语言编写的源程序转换为目标程序,需要使用
A.编辑程序B.驱动程序C.调试程序D.编译程序[答案]D
×11. 下列关于C++与C语言的关系描述中,错误的是
A.C语言是C++语言的一个子集B.C++与C语言是兼容的C.C++对C语言进行了一些改进D.C++和C语言都是面向对象的[答案]D
×12. 下面为使用面向对象语言的正确理由是
A.面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构B.程序语句比面向过程语言简单C.面向对象程序设计可以设计为自行修改错误D.面向对象程序很容易概念化[答案]D
×13. 以下选项中,合法的用户标识符是
A.longB._2TestC.3DmaxD.A.dat[答案]B
×14. 下列描述中正确的是
A.不是每个C++程序都必须包含预处理命令#includeB.C++程序必须有return语句C.C++程序中的变量必须定义在主程序内部D.C++程序中所使用的符号常量可以不进行定义[答案]A
×15. C++源程序文件的扩展名为
A..CPPB..CC..DLLD..EXE[答案]A
×16. cout是I0流库预定义的
A.类B.对象C.包含文件D.常量[答案]B
×17. C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是
A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念[答案]D
×18. 下列标识符中,哪一个是不合法的?
A.ProgramB.Obj23C.doubleD.B_C_D[答案]C
×19. 下列标识符中,不合法的用户标识符为:
A.a~!
B.__intC.a__10D.PAd[答案]A
×20. 下面程序的输出结果是
#include
usingnamespacestd;
intmain()
{
intx=4;
do{
cout<<(x-=3)<}while(--x);
}
A.1B.1和-3C.2和0D.死循环[答案]A
程序阅读
1.定义如下变量和数组:
inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i<3;i++)cout<[答案]258
2.以下程序的输出结果是
#include
usingnamespacestd;
intmain()
{
inta=7,b=4,c=6,d;
cout<<(d=a>b?
(a>c?
a:
c):
(b));
}
[答案]7
3.#include
usingnamespacestd;
intmain()
{
inta=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
cout<return0;
}
以下程序的输出结果是[答案]31
单选题
×1. 下列给字符数组进行初始化中,_____是正确的。
A.chars1[]="abcd";B.chars2[3]="xyz";C.chars3[][]={'a','x','y'};D.chars4[2][3]={"xyz","mnp"};[答案]A
×2. 设n=10,I=4,则赋值运算n%=I+1执行后,n的值是___。
A.0B.3C.2D.1[答案]A
×3. “cout<A.3.14B.3.1C.3.142D.3.141[答案]A
×4. 下列关于类型转换的说法中,错误的是
A.如果a为int型变量,b为char型变量,则a+b的值为int型B.如果a为float型变量,b为int型变量,则a-b的值为double型C.如果a为double型变量,b为float型变量,则a*b的值为double型D.如果a为int型变量,b为int型变量,则a/(double)b的值为int型[答案]D
×5. 下列属于合法八进制的常数是
A.0259B.0A23C.0234D.-0124[答案]C
×6. 在下列形式的实型常数中,规范化的是
A.5E2.0B.E-3C.0.2E1D.1.3E[答案]C
×7. t为int类型,进入循环while(t=1){...}之前,t的值为0。
则以下叙述中,正确的是
A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对[答案]B
×8. 为了避免在嵌套的条件语句if...else中产生歧义,C++规定的if...else语句的匹配原则是
A.else子句与所排位置相同的if配对B.else子句与其之前最近的if配对C.else子句与其之后最近的if配对D.else子句与同一行上的if配对[答案]B
×9. 在C语言中合法的字符型常量是____。
A.'\t'B."A"C.65D.a[答案]A
×10. C++语言程序的基本单位是
A.程序行B.语句C.函数D.字符[答案]B
函数练习
单选题
×1. 分析以下程序:
#include
voidfun(intnum){cout<voidfun(charch){cout<<(ch+1)<intmain(){
fun('A');
return0;
}
以上程序的输出结果是
A.65B.66C.AD.B[答案]B
×2. 一个函数为voidf(intx,chary=‘a’),另一个函数为voidf(int),则它们
A.不能在同一程序块中定义B.可以在同一个程序块中定义并可重载C.可以在同一个程序块中定义,但不可以重载D.以上说法均不正确[答案]A
×3. 函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是
A.Fun(20)B.Fun(20+n)C.Fun(n)D.Fun(&n)[答案]C
×4. 当一个函数无返回值时,函数的类型应为
A.任意B.voidC.intD.char[答案]B
×5. 下列带缺省值参数的函数说明中,正确的说明是
A.intFun(intx,inty=2,intz=3);B.intFun(intx=1,inty,intz=3);C.intFun(intx,inty=2,intz);D.intFun(intx=1,inty,intz=3);[答案]A
×6. 下面有关重载函数的说明中,正确的是
A.重载函数必须具有不同的返回值类型B.重载函数形式参个数必须不同C.重载函数必须具有不同的形参列表D.重载函数名可以不同[答案]C
×7. 在函数声明中,下面哪项是不必要的
A.函数参数的类型和参数名B.函数名C.函数的类型D.函数体[答案]D
×8. 以下程序的输出结果是()
voidFun(inta,intb,intc)
{c=a*b;
}
intmain()
{intc;
fun(2,3,c)
cout<}
A.0B.出错C.6D.无定值[答案]D
×9. 若有以下程序:
#include
intf()
{
staticinti=0;
ints=1;
s+=i;
i++;
returns;
}
voidmain()
{
inti,a=0;
for(i=0;i<5;i++)
a+=f();
cout<}
程序运行后的输出结果是
A.20B.24C.25D.15[答案]D
×10. 有如下程序:
#include
usingnamespacestd;
intf(intx);
intsum