C++语言程序设计Word文档格式.docx
- 文档编号:20470793
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:14
- 大小:23.89KB
C++语言程序设计Word文档格式.docx
《C++语言程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
7.设intx;
,则经过(C)后,语句*px=0;
可将x值置为0。
Aint*px;
Bintconst*px=&
x;
Cint*constpx=&
Dconstint*px=&
8.设voidf1(int*m,long&
n);
inta;
longb;
则以下调用合法的是(B)。
Af1(a,b);
Bf1(&
a,b);
Cf1(a,&
b);
Df1(&
a,&
9.以下结构类型可用来构造链表的是(B)。
Astructaa{inta;
int*b;
};
Bstructbb{inta;
bb*b;
Cstructcc{int*a;
ccb;
Dstructdd{int*a;
aab;
10.使用操作符setw对数据进行格式输出时,需要包含(C)文件。
Aiostream.hBfstream.hCiomanip.hDstdlib.h
三、回答问题(每题4分,共20分)
1.设int*p;
,判断下列表达式的正确性(用T表正确,用F表错误)。
--++p(T)++(p--)(F)p----(F)(++p)--(T)
2.请初始化一维指针数组color,其初值表初值为"
red"
,"
blue"
white"
和"
black"
char*color[]={"
3.设intx[]={99,98,97},&
y=x[1];
,
写出语句cout<
y--<
'
'
cout<
y*2<
endl;
执行结果。
98,194
4.设intfp(chara,intb=0,doublec=100.0);
,判断下列重载函数的正确性。
(用T表正确,用F表错误)。
intfp();
(T)voidfp(char);
(F)
intfp(char,int);
(F)voidfp(char,int,int);
(T)
5.要使语句p1=newlong*;
p2=newfloat*[15];
能正常执行,写出p1和p2的定义。
long**p1;
float**p2;
四、(每题10分,共20分)
1.写出下列程序的执行结果。
#include<
iostream.h>
voidfun(int,int,int*);
voidmain()
{
intx,y,z;
fun(2,3,&
x);
fun(4,x,&
y);
fun(x,y,&
z);
x<
y<
z<
}
voidfun(inta,intb,int*c)
{b*=a;
*c=b-a;
}
4,12,44
2.下列程序向a盘上的文本文件aaa.dat输出0至100间的整数,请将程序补充完全。
stdlib.h>
fstream.h>
voidmain(void)
ofstreamf1("
a:
aaa.dat"
);
if(!
f1(或f1.fail())){
cerr<
aaa.datfilenotopen!
exit
(1);
for(inti=0;
i<
=100;
i++)f1<
'
f1.close();
五、(每题10分,共20分)
1.编程求数列1,
,……的所有大于等于0.000001的数据项之和并输出结果。
1、#include<
voidmain()
{
intn=1,d=1;
doubles=0.0,s0;
while((s0=double(n)/d)>
=0.000001)
s+=s0;
d++;
s<
endl;
2.用递归方法设计函数intArrayMin(intd[],intsize);
,其中d为数组,size为数组元素个数;
ArrayMin返回d中的最小元素。
intArrayMin(intd[],intsize)
intk=d[size-1];
if(size==1)returnk;
if(k<
=ArrayMin(d,size-1))returnk;
elsereturnArrayMin(d,size-1);
一、单项选择题
1.下列表达式中正确的是
(B)
A.
(k++)++
B.
k---j
C.
k--/=5
D.
(k+3)=5
2.已知
int
f(int);
和
g(int);
分别是函数f和g的原型。
下列语句中,将函数f作为语句调用的有
(D)
A.
f(3)+g(3);
p/=f(3);
C.
g(f(3));
f(g(3));
3.下面四个程序段中,输出23个*号的程序段是
(C)
for
(int
i=1;
23;
i++)
cout
’*’;
i=23;
i>
=0;
i--)
while
(i>
0)
{
i--;
i=0;
(0<
=23)
i++;
4.要定义一个int型二维数组a,并使其各元素具有初值:
2
3
0
4
5
则正确的定义语句是
A.int
a[][]={2,3,0,0,4,0,5,0,0,0,0,0};
B.int
a[][4]=
{2,3,0,0,4,0,5,0,0,0,0,0};
C.int
a[3][4]=
{{2,3},{4,,5}};
D.int
a[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0}};
5.设有数组定义
a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
则表达式
*(*(a+2)+1)
的值是
6
9
10
6关于析构函数的说法错误的是(C)
A析构函数只有一个
B析构函数无任何函数类型
C析构函数与构造函数一样可以有形参
D析构函数在对象被撤销是自动执行
7下列说法正确的是(C)
A使用new建立动态对象的语法和建立动态变量的情况完全不同
Bnew和构造函数不能一同使用
C使用new建立一个动态对象时,自动调用构造函数
D使用new建立的动态对象在不用时必须调用析构函数删除
8在使用不同类型的对象对一个对象赋值时,完成类型转换的事(A)
A构造函数
B析构函数
C友元函数
D外部函数
9已知类myClass中的一个成员函数说明如下:
void
SetMyClass(myClass&
myData)
其中,myClass&
myData
的含义是(D)
A指向类myClass的指针为myData
B将myData的地址赋给SetMyClass
C变量myClass与myData按位相与作为SetMyClass的参数
DmyData是类myClass的对象引用,用来作为函数SetMyClass的形参。
10设置虚基类的主要目的是(B)
A简化程序
B消除两义性
C提高运行效率
D减少目标代码
二.多项选择题
1有关析构函数说法正确的是(AD)
A析构函数在对象生存期结束时被自动调用
B析构函数名与类名相同
C定义析构函数时,可以指定返回类行为void
D析构函数不能指定参数
2一下类定义形式中正确的是(AB)
class
MyClass1{}
MyClass2{}
Myclass3{int
cc=’a’;
MyClass4{int
cc;
3下面程序段完全正确的是(ABD)
A
struct
myStruct{
B
myStruct
C
myClass{
D
myClass{
num;
private:
float
f1
;
f1;
i;
};
myClass
member;
*
p;
i=num;
4下列说法正确的是:
(ABC)
Amain函数内声明的局部对象的构造函数在对象声明时自动调用
Bmain函数内声明的局部对象的构造函数在main函数结束时自动调用
C全局对象和静态对象的构造函数在main函数执行之前被调用
D全局对象和静态对象的构造函数在main函数结束之后被调用
5下面说法正确的是(AB)
A构造函数可以进行类型转换
B构造函数用于确保编译器检出对象初始化方面的错误
C初始化和赋值是等价的
D程序必须用于定义的初始化和赋值进行操作
6对于下面的程序,有两义性的语句是(AD)
classA{public:
f1(
);
classB{public:
f2
(
classC:
public
A,private
B{
public:
f2(
f3(
data
data
.f1(
data.A:
:
data.f2(
C:
){
7关于多重继承两义性的描述中正确的是(ABD)
A一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现两义性
B解决两义性的最常用的方法是对成员名的限定法
C基类和派生类是派生类中同时出现的同名函数,也存在两义性问题
D一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现两义性
8抽象类应含有(CD)
A.至少一个虚函数
B.至多一个虚函数是纯虚函数
C.至多一个虚函数
D.至少一个虚函数是纯虚函数
二、填空题
1.表达式x=x+1表示成增量表达式为
(++x
)
2.关系表达式x+y>
5的相反表达式为
(x+y<
=5)
3.执行语句
i=10;
do
}
(i+3);
后,将显示出
个*号(14
4.设有下面的定义
s[10]={1,2,3,4,5,6,7,8,9,10};
sum=0;
请完善下面的语句实现求数组s的所有元素之和,并保存在变量sum中:
j++
)
(j=0
j<
10
sum+=s[j]
5.假定a是一个二维数组,则a[i][j]的指针访问方式为
(*(*(a+i)+j)
或
*(a[i]+j)
三、下列程序运行后的输出结果
1.
#
include
a=5;
main()
a=10,b=20;
a<
b<
a=0,b=0;
6;
a+=i;
b+=a;
}(10
20
15
35
5
20)
2.
iomanip.h>
LB(int
*a,int
n)
s=1;
n;
i++)
s*=*a++;
return
s;
a[]={1,2,3,4,5,6,7,8};
b=LB(a,5)+LB(&
a[3],3);
b="
12)
3.
string.h>
char
*a[5]={"
student"
"
worker"
cadre"
soldier"
peasant"
*p1,*p2;
p1=p2=a[0];
5;
if
(strcmp(a[i],p1)>
p1=a[i];
(strcmp(a[i],p2)<
p2=a[i];
template
TT>
FF
TT
a1,a2,a3;
FF(TT
b1,TT
b2,TT
b3)
a1=b1;
a2=b2;
a3=b3;
Sum()
a1+a2+a3;
main()
int>
x(2,3,4),y(5,7,9);
x.Sum()<
y.Sum()<
}(9
2)
四、写出下列每个函数的功能
SA(int
a,int
b)
(a>
1;
else
(a==b)
0;
-1;
}(比较两个整数a和b的大小,若a>
b则返回1,若a=
=b则返回0,若a<
b则返回-1。
2.double
SF(double
x,int
//
n为大于等于0的整数
double
p=1,s=1;
=n;
p*=x;
s+=p/(i+1);
}(计算
1+X/2+X2/3+…+Xn/(n+1)的值并返回)
FH()
x,y=0,n=0;
cin
>
x;
(x!
=-1)
n++;
y+=x;
(n==0)
y;
y/n;
}(求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志)
4.
Type>
WE(Type
a[],Type
b[],int
b[n-i-1]=a[i];
}(模板函数,把数组a的每个元素按逆序放入数组b中)
五、编写程序
1.从键盘输入10个正整数据并累加求和。
x,s=0;
输入10个正整数:
=10;
do{
该循环控制输入的是正整数
}while
(x<
=0);
s
+=
2.一维数组元素求和。
a[10];
i,s=0;
输入10个整数:
(i=0;
10;
a[i];
3.在一维数组中查找给定的数据。
输入查找的数:
(a[i]==num)
break;
(i<
10)
找到!
else
没有找到!
4.从键盘上输入一行字符串,然后将所有小写字母改写成大写字母,最后输出该字符串。
s[80];
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计