则()
(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)
28、下面关于C++字符数组的叙述中,错误的是(D)。
(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]之前的元素个数有(C)个
(A)j*m+i(B)i*m+j(C)i*m+j-1(D)i*m+j+1
31、非数组、指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是(B)
(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*);下面选项中,正确的调用是(C)。
(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)
(A)intfun(intx,inty=10);(B)intfun(intx=5,inty=10);
(C)intfun(intx,inty);(D)intfun(intx,inty=a+b);
41、设有定义:
structdata
{
inti;
charch;
doubleq;
doublef
}b;
结构体变量b占用内存的字节数是(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)联合体中占用内存最大的成员所需的字节数
(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^b
49、设x=001101012,则下面能使x的高4位取反,高4位清零,则下面能实现此功能的是(C)
(A)x=x&0x0f(B)x=x|0x0f(C)x=x^0360(D)x=x^033
50、设x=001101102,则若想通过x&y运算使x中的低4位不变,高4位清零,则下面能实现此功能的是(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;
};
则下面关于取自身的单目运算符“+”的运算符重载函数中,最合适是(A)。
(A)Fractionoperator+(Fractionx)
{returnx;}
(B)Fractionoperator+(Fraction&x)
{returnx;}
(C)voidoperator+(Fractionx)
{returnx;}
(D)voidoperator+(Fraction&x)
{returnx;}
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)17
58、关于构造函数的叙述中,错误的说法是(D)
(A)构造函数的名称必须为类名
(D)构造函数最多只能有一个
(C)创建对象时自动执行构造函数
(D)构造函数无任何函数类型
59、(A)只能访问静态成员变量
(A)静态成员函数(B)虚函数(C)构造函数(D)析构函数
60、C++中类有两种用法,一种是类的实例化,即生成类对象,另一种是通过(B)派生出新的类
(A)复用(B)继承(C)重载(D)封装
二、判断题
1、!
比&&的优先级最低(错)
2、字符型变量不能赋予整数(错)
3、设inta=1,b=2,c=3,d=4;则条件表达式a
a:
cc:
d的值为3(错的是1)
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()得到的值是相等的(错)。
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、一个类只能拥有一个类。
(错)
三、程序设计
1、求下列分段函数
2、输入1-7之间的数字,输出对应的星期几,要求当用户输入不在1-7的范围要有出错处理的功能。
3、求一元二次方程ax2+bx+c=0的两个实根。
4、求s=1+3+5+…+99的和。
5、输出32~126的ASICII码,每个字符与它的编码值相对应。
6、编一程序,显示所有的水仙花数。
所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。
例如153是水仙花数,因为153=13+53+33。
7、计算
当第i项的值<10-4时结束。
(提示:
找出表达式的通项公式,是解此题的关键。
)
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-1
16、编一函数,将字符串s中的字符c1用字符c2替换,并加以调用。
函数形式:
voidreplace(chars[],charc1,charc2);
17、编写一函数,由实参传来一个字符串,统计此字符串字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出结果。
18、有10个学生成绩,求平均分、最低分、最高分并排序,要求写四个函数并由主函数调用。
19、编写函数求三个数最大和最小值,函数的参数分别为整数、双精度
(1)用函数重载
(2)用模板函数。
20、设有字符串s1,s2编写函数求
(1)比较两个字符串的大小
(2)将s1中第一个与s2不相同字符的地址
(3)将s2连接到s1的后面。
21、编写一个对具有n个元素的数组x[]求最大值的程序,要求将求最大值的函数设计成函数模板。
22、设计一个点类(Point),具有数据成员x、y(点的坐标),以及设置、输出数据成员及求两点之间距离的功能。
23、设计一个楼房类(building),包含楼的长、宽、层数及每平方法单价等数据成员,并具有求楼房的面积及总价等功能。
24、设计一个字符类要求:
(1)输入输出字符串的功能
(2)计算字符串长度
(3)连接两字符串。
C++阅读分析题
1.#include
voidmain()
{
charc=’m’;
intd=5;
cout<<"d="<cout<<"c="<}
请写出输出结果。
答案:
d=5,c=m
2.#include"iostream.h"
voidmain()
{
intx,y,z;
x=2/4*7;
y=2/4*7.0;
z=int(2/4.0*7);
cout<<"x="<}
请写出输出结果。
答案:
x=0y=0z=3
3.#include"iostream.h"
voidmain()
{
intx,y,z;
x=3;
y=++x;
z=x;
cout<<"x="<}
请写出输出结果。
答案:
x=4y=4z=4
4.#include"iostream.h"
voidmain()
{
intx,y,z;
x=3;
y=x++;
z=x;
cout<<"x="<}
请写出输出结果。
答案:
x=4y=3z=4
5.#include"iostream.h"
voidmain(