C++试题库Word下载.docx
- 文档编号:17544043
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:41
- 大小:28.08KB
C++试题库Word下载.docx
《C++试题库Word下载.docx》由会员分享,可在线阅读,更多相关《C++试题库Word下载.docx(41页珍藏版)》请在冰豆网上搜索。
(y=c!
=d)后,变量x,y的值分别是:
(A)0,0(B)0,1(C)1,0(D)1,1
14、已知intx=1,y=0;
执行下面程序段后,y的值为(C)。
if(x){if(x>
0)y=1;
}elsey=-1;
(A)-1(B)0(C)1(D)不确定
15、已知intx=1,y=0,w;
执行下面程序段后,w的值为(A)。
if(x)if(y)w=x&
y;
elsew=y;
(A)0(B)-1(C)1(D)不确定
16、语句while(w)„中的表达式w的等价表示是:
(C)
(A)w==0(B)w==1(C)w!
=0(D)w!
=117、语句while(a>
b)a--;
等价于(A)。
C
(A)if(a>
b)a--;
(B)do{a--}while(a>
b);
(C)for(a>
(D)for(;
a>
b;
a--);
18、已知inti=0,x=0;
下面while语句执行时循环次数为(C)。
while(x||i){x++;
i++;
}D
(A)3(B)2(C)1(D)0?
19、执行语句x=1;
while(++x<
7)cout<
<
’*’;
后输出结果是:
(A)
(A)*****(B)******(C)*******(D)********
20、C++中循环语句while和do„while的主要区别是(A)
(A)do„while的循环体至少无条件执行一次
(B)while的循环控制条件和do„while的循环控制条件的控制条件的控制方式是相反的(C)do„while允许从外部转到循环体内,while不允许
(D)while的循环体不能复合语句
21、若有以下程序段:
for(m=1;
m<
=100;
m++)
{
cin>
>
if(y<
0)
continue;
cout<
m;
}
则下面正确的说法是(D)
(A)当y<
0时整个循环结束(B)当y>
=0时什么也不输出(C)cout语句永远也不执行(D)最多输出100个非负整数?
22、语句“while(!
x)„”等价于(A)
(A)while(x==0)„(B)while(x!
=1)„(C)while(x!
=0)„(D)while(x==1)„?
23、一维数组a正确定义是(D)。
(A)chara(10)(B)inta[](C)intk=5,a[k](D)chara[]={„a?
?
b?
c?
}?
24、下面不能够判断字符串S是空串的是(D)
(A)if(S[0]==0)(B)if(strlen(S)==0)
)if(strcmp(S,””)==0)(D)if(S==’\0’)(C
25、charx[5]={„a?
\0?
}输出的结果是(B)
(A)?
a?
(B)ab(C)abc(D)abc
26、设有下面和程序段
chara[3],b[]="
China"
a=b;
a;
则(A)
(A)编译出错(B)运行后将输出Ch(C)运行后将输出Chi(D)运行后将输出Chian?
27、判断字符串s1是否大于字符s2是空串的是(A)
(A)if(strcmp(s1,s2)>
0)(B)if(strcmp(s1,s2))(C)if(strcmp(s2,s1)>
0)(D)if(s1>
s2)
C)。
?
28、下面关于C++字符数组的叙述中,错误的是(
(A)字符数组可以放字符串
(B)字符数组的字符可以整体输入、输出
(C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
(D)可以用关系运算符对字符数组比较大小
29、以下对一维数组a的正确定义是(D)
(A)chara(10);
(B)inta[];
(C)intk=5,a[k];
(D)chara[]={‘a’,’b’,’c’};
30、若二维数组y有m列,则位于y[i][j]之前的元素个数有(B)个(A)j*m+i(B)i*m+j(C)i*m+j-1(D)i*m+j+1
31、非数组、指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是(C)
3
(A)地址传递(B)单向值传递(C)双向值传递(D)由用户指定传递方式
32、若有数组名作为函数调用的实参,则传递给虚参的是(A)
(A)数组的首地址(B)数组第1个元素的值
(C)数组中全部元素的值(D)数组元素的个数
33、以下正确的函数原型声明语句是(C)
(A)intfun(inta,b);
(B)floatfun(inta;
intb);
(C)doublefun();
(D)intfun(chara[][]);
34、已有定义“inta=5,&
ra=a;
”则下叙述中,错误的说法是(C)。
(A)ra是变量a的引用(B)ra的值为5
(C)ra是a的地址值(D)执行“ra=10;
”后变量a的值也变为10?
35、若有定义“intc[5],*p=c;
”,则以下对数组c元素地址的正确引用是(D)(A)p+5(B)c++(C)&
c+1(D)&
c[0]
36、设intx=1,y=3,能正确表示代数式3x|x-y|的C++表达式是(A)。
(A)abs(x-y)*3*x(B)3x(abs(x-y))(C)3x||(x-y)(D)3*x*(x-y)||3*x*(y-x)37、有函数原型voidf(int*);
下面选项中,正确的调用是()。
(A)char*s="
ABCD"
;
f(s);
(B)inta=15;
f(a);
(C)intm=100;
f(&
m);
(D)doublepi=3.14;
f(pi);
38、下面关于new和delete运算的叙述中,错误的说法是(C)。
(A)由new分配的内存空间是连续的
(B)如果当前内存无足够的空间可分配,则new运算符返回NULL
(C)由new运算符分配的内存空间,当函数执行结束时系统会自动收回
(D)对于程序中的静态数组占用的存储空间不能使用delete来释放
39、下面判断是否构成重载函数的条件中,错误的判断条件是(D)
(A)参数类型不同(B)参数个数不同(C)参数顺序不同(D)函数返回值不同40、假设a,b是全局变量,下面设置函数参数默认值的函数原型中,错误的是(C)
)intfun(intx,inty=10);
(B)intfun(intx=5,inty=10);
(A
(C)intfun(intx=5,inty);
(D)intfun(intx,inty=a+b);
41、设有定义:
structdata
inti;
charch;
doubleq;
doublef
4
}b;
结构体变量b占用内存的字节数是(C)D
(A)18(B)19(C)20(D)21?
42、关于结构体概念的叙述中,正确的说法是(C)。
(A)相同类型数据的集合称为结构(B)不同类型数据的集合称为结构体(C)数据的集合称为结构体(D)整数的集合称为结构体?
43、设有说明语句
structabc
intm;
floatn;
}stype;
则下面错误的叙述是(B)
(A)struct是定义结构体类型的关键字
(B)stype是结构体类型名
(C)m和n都是结构体成员
(D)stype是结构体变量名
43、对枚举类型ee的定义中,正确的这定义是(A)。
(A)enumee{A,B,C,D};
(B)enumee{‘A’,’B’,’C’,’D’};
(C)enumee={A,B,C,D};
(D)enumee={‘A’,’B’,’C’,’D’};
44、关于同类型结构体与同类型联合体赋值的叙述中,正确的说法是(A)(A)联合体变量之间可以直接赋值,结构体变量之间也可以直接赋值(B)联合体变量之间可以直接赋值,结构体变量之间不可以直接赋值(C)联合体变量之间不可以直接赋值,结构体变量之间可以直接赋值(D)联合体变量之间不可以直接赋值,结构体变量之间也不可以直接赋值?
45、一个结构体变量所占用的内存字节数是(D)
(A)结构体中第一个成员所需的内存字节数
(B)结构体中最后一个成员所需的内存字节数
(C)结构体中占用内存最大的成员所需的字节数
(D)结构体中各成员所需的内存字节数和
46、当定义一个联合体变量时系统分配给它的内存字节数是(C)(A)联合体中第一个成员所需的内存字节数
(B)联合体中最后一个成员所需的内存字节数
(C)联合体中占用内存最大的成员所需的字节数
5
(D)联合体中各成员所需的内存字节数和
47、下面叙述中错误的是(C)。
(A)预处理命令都必须以“#”开始
(B)在程序中凡是以“#”开始的语句行都是预处理命令行(C)C++程序在程序执行过程中对预处理命令进行处理(D)一行只能写一条预处理命令
48、下面表达式组中不等价的一组是(C)
(A)a&
=b与a=&
a(B)a|=b与a=a|b(C)a!
=b与a=a!
b(D)a^=b与a=a^b49、设x=00110101,则下面能使x的高4位取反,低4位不变,则下面能实现此功能的2
是(C)
(A)x=x&
0x0f(B)x=x|0x0f(C)x=x^0360(D)x=x^033
50、设x=00110110,则若想通过x&
y运算使x中的低4位不变,高4位清零,则下面能实2
现此功能的是(B)
(A)x=x|0x0f(B)x=x&
0x0f(C)x=x|0xf0(D)x=x&
0xf0
51、设a和b是两个结构体变量,下面正确的表达式是(A)(A)a=b(B)a=b+1(C)a>
b(D)a==b
52、关于结构体变量运算重载中,正确的单目运算符重载语法格式(B)
(A)函数类型名单目运算符operator(虚参){函数体}(B)函数类型名operator单目运算符(虚参){函数体}(C)函数类型名单目运算符operator(){函数体}(D)函数类型名operator单目运算符(){函数体}53、后缀—运算符的重载函数语法格式如下:
函数类型operator--(虚参,int){函数体}则下面关于第2个虚参的叙述中,正确的说法是(C)(A)第2个参数必须给出参数名称
(B)第2个参数不能给出参数名称
(C)第2个参数必须是int型参数,其参数名可有可无(D)第2个参数也可以是long型参数
54、设分数的结构体定义如下:
structFraction
intnume;
intdeno;
6
};
则下面关于取自身的单目运算符“+”的运算符重载函数中,最合适是(A)。
(A)Fractionoperator+(Fractionx)
{returnx;
(B)Fractionoperator+(Fraction&
x)
(C)voidoperator+(Fractionx)
(D)voidoperator+(Fraction&
55、派生类对象只能访问基类中的(A)
(A)公有继承的公有的成员(B)公有继承的私有成员
(C)公有继承的保护成员(D)私有继承的公有成员56、关于派生类叙述中,错误的说法是(B)
(A)派生类中从基类公有继承过来的分有成员的访问权限不变(B)任何类都有基类
(C)派生类还可作为另一类的基类
(D)基类中的构造函数和析构函数是不可继承的
57、设有类的定义如下:
classAAA
intx;
chars[12];
}ob;
则在VC++环境下,变量ob所占内存空间字节数是(C)字节(A)14(B)15(C)16(D)1758、关于构造函数的叙述中,错误的说法是(B)
(A)构造函数的名称必须为类名
(D)构造函数最多只能有一个
(C)创建对象时自动执行构造函数
(D)构造函数无任何函数类型
59、(A)只能访问静态成员变量
(A)静态成员函数(B)虚函数(C)构造函数(D)析构函数60、C++中类有两种用法,一种是类的实例化,即生成类对象,另一种是通过(B)派生
7
出新的类
(A)复用(B)继承(C)重载(D)封装
二、判断题
1、!
比&
的优先级最低(×
)2、字符型变量不能赋予整数(×
)3、设inta=1,b=2,c=3,d=4;
则条件表达式a<
a:
c<
d?
c:
d的值为3(×
)4、用C++语言编制的源程序要变为目标程序必须要经过编译(?
)5、表达式x=i++和x=++i执行结果x获得不同的结果。
(?
)6、关于switch语句中必须要使用break。
(×
)
7、设有“intx,a,b,c”,则if(a==b)x++;
是不合法的。
(?
8、用x>
a&
x<
=b描述区间[a,b]的表达式是正确的。
(×
)9、下面程序
m=-1
do
m=m*n;
while(!
m)
是死循环(×
10、for(;
)写法是错误。
)11、在循环语句体中,continue的作用是结束本次循环,回到循环头。
)12、设intx=6;
while(x){循环体},将不执行循环体中语句。
)13、#definen10inta[n],b[n+1]定义数组是合法的。
)14、相同类型的数据的集合称为数组。
15、设有两个数组a[]={‘a‘,’b’,’c’}和b=“abc”相同的。
)16、设有两个数组a[]={‘a‘,’b’,’c’}和b=“abc”用函数strlen()得到的值是相等
8
的(?
)。
17、对二维数组inta[][3]={1,32,45,17,-23,87,36}第一维的值是3(×
)18、数组作为函数的实参传递是单向值传递(×
19、按C++标识符的语法规定,new是合法的标识符(×
)20、int*buffer=newint[256]是分配256个字节。
)21、函数模板参数的类型是通用类型(×
22、构成重载函数的参数类型是不同。
23、设float*p,则p+1是当前地址加float类型的长度(?
24、对结构体中的成员不能用“->
”访问成员。
25、在x构造体中含有y构造体在访问y中的成员的格式是x?
y?
成员名(?
)26、结构体类型定义中可以出现联合体类型的成员,联合体类型中也可以出现结构体类型的成员(?
27、对数据类型int的别名的定义可以是typedefInteger=int;
)28、enumweek{“MON”,“TUE”,“WED”}是错误写法。
)29、文件包含命令不能装入“*cpp”类型的文件。
30、设包含文件在D盘的“ABC”目录中,则指定路径的语法格式是“#include”D:
\ABC\头文件名.h””(?
31、条件编译的作用是根据不同条件进行编译不同程序段,以提高程序的兼容性(×
)32、设x是8位字节的数据,x&
0xf0可对低4位进行清零(?
)33、设对变量intx进行“<
”运算,结果等价x/2。
34、运算符重载函数作用的提高运算符的处理速度。
35、双目运算符重载语法格式是函数类型名operator双目运算符(虚参1,虚参2){函数体}(?
36、可以对类成员变量直接赋值。
)37、设成员函数定义p&
Set(pa)函数返回值是类p的对象的引用。
)38、构造函数释放指针成员占据的内存空间,析构函数给数据成员赋初值。
)39、设AB为一个类,则AB(AB&
x)拷贝构造函数的函数原型。
)40、一个类只能拥有一个对象。
9
三、程序设计
xx,5
2y,3x,2x,15,x,201、求下列分段函数,
xx/5,20,
2、输入1,7之间的数字,输出对应的星期几,要求当用户输入不在1,7的范围要有出错处理的功能。
23、求一元二次方程ax+bx+c=0的两个实根。
4、求s=1,3,5,„,99的和。
5、输出32,126的ASICII码,每个字符与它的编码值相对应。
6、编一程序,显示所有的水仙花数。
所谓水仙花数,是指一个3位数,其各位数字立方和
333等于该数字本身。
例如153是水仙花数,因为153,1+5+3。
1111111,4s,1,,,,,,,,?
7、计算当第i项的值,10时结束。
(提示:
24711162229
找出表达式的通项公式,是解此题的关键。
)
8、设有数组a中有10个有序的整型元素,写出折半查找算法函数,查找到返加1,否则返回-1。
不用写主函数。
9、设有整型数组a有10个无序的元素,写选择排序算法程序函数,不用写主函数10、在已有序的数组中插入数x。
11、在已有序的数组中删除数x。
12、求两个矩阵的和C,A,B。
13、求两个矩阵乘积C,A×
B,C,B×
A。
14、将矩阵转置。
15、输出输入一个小于10的正整数n显示具有n行的杨辉三角形
提示:
定义二维数组a[i][j],杨辉三角形的形成特点是第1例(下标为0)和主角对角线均为1,其余为1,关系式:
a[i][j]=a[i-1][j-1]+a[i-1][j]i=2,3,4„,n-1j=1,2,3„,j-116、编一函数,将字符串s中的字符c1用字符c2替换,并加以调用。
函数形式:
voidreplace(chars[],charc1,charc2);
17、编写一函数,由实参传来一个字符串,统计此字符串字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出结果。
18、有10个学生成绩,求平均分、最低分、最高分并排序,要求写四个函数并由主函数调用。
19、编写函数求三个数最大和最小值,函数的参数分别为整数、双精度
(1)用函数重载
(2)用模板函数。
20、设有字符串s1,s2编写函数求
(1)比较两个字符串的大小
(2)将s1中第一个与s2不相同字符的地址
10
(3)将s2连接到s1的后面。
21、编写一个对具有n个元素的数组x[]求最大值的程序,要求将求最大值的函数设计成函
数模板。
22、设计一个点类(Point),具有数据成员x、y(点的坐标),以及设置、输出数据成员及
求两点之间距离的功能。
23、设计一个楼房类(building),包含楼的长、宽、层数及每平方法单价等数据成员,并具
有求楼房的面积及总价等功能。
24、设计一个字符类要求:
(1)输入输出字符串的功能
(2)计算字符串长度
(3)连接两字符串。
C++阅读分析题
1.#include<
iostream.h>
voidmain()
charc=?
m?
intd=5;
"
d="
d<
"
cout<
c="
c;
请写出输出结果。
答案:
d=5,c=m
2.#include"
iostream.h"
intx,y,z;
x=2/4*7;
y=2/4*7.0;
z=int(2/4.0*7);
x="
y="
y<
z="
z<
endl;
11
x=0y=0z=3
3.#include"
x=3;
y=++x;
z=x;
x=4y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 试题库