精品《程序设计基础》练习题docWord文档下载推荐.docx
- 文档编号:20524479
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:14
- 大小:22.46KB
精品《程序设计基础》练习题docWord文档下载推荐.docx
《精品《程序设计基础》练习题docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《精品《程序设计基础》练习题docWord文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
=z后x,y的值分别为。
A.0,3B.1,3C.2,3D.2,4
16.下列选项中,正确的声明语句是—3
A.inti;
B.externinti;
inti;
externlongi;
C.externinti;
D.inti=l;
externinti;
inti;
17.若inta=6,则执行完下列语句后,a的值为—。
A.1B.6C.10D.11
18.如果变量x,y已经正确定义,下列语句哪一项不能正确将x,y的值进行交换—°
A.x=x+y,y=x-y,x=x-y;
B.t=x,x=y;
y=t;
C.t=y,y=x,x=t;
D.x=t,t=y,y=x;
19.下列程序的运行结果为°
#include<
iostream.h>
voidmain()
(chara='
3'
;
switch(a)
(case'
:
coutvv”3”;
case2:
coutvv'
'
2"
break;
default:
coutvv'
T'
1
J
A.3B.321C.31D.32
20.如对数组的初始化为:
ints[3][4]={0};
则下列叙述中正确的是—。
A.此初始化的语句不正确
B.只有元素s[0][0]可得到初始值为0,其他各元素的值不确定
C.数组s中各个元素都可得到初始值,但其值不一定为。
D.数组s中每个元素的值均为。
21.设有定义一维数组如下:
inta[5],*p=a;
则下列描述中错误的是—。
A.表达rtp=p+I是合法的B.表达式a=a+l是合法的
C.表达式p-a是合法的D.表达式a+2是合法的
22.关于动态存储分配中,下列说法正确的是—o
A.new和delete是C++语言中专门用于动态内存分配和释放内存的函数
B.动态分配的内存空间也有可以被初始化
C.当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间
D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new
23.执行完下列代码段后,i和j的值为—o
int&
j=i;
i=5;
j=i+l;
A.5,5B.5,6C.6,6D.6,5
24.以下程序的执行结果是—o
max(int&
x,int&
y)
{return(x>
y?
x:
y);
}
(intn=2,m=10;
max(n,m)~;
cout«
"
n=,«
n«
\m=9«
m«
A.2,10B.2,9C.1,10D.1,9
25.下列程序的输出结果是__。
usingnamespacestd;
intn[][3]={10,20,30,40,50,60};
intmain()
{int(*p)[3];
p=n;
coutvvp[0][0]vv"
"
vv*(p2]+l)vv"
vv(*p<
2]vvendl;
return0;
}
A.10,30,50B.10,20,30C.20,40,60D.10,30,60
26.合法的数组初始化语句是__o
A.chara='
string”;
B.inta[5]={0,l,2,3,4,5};
C.inta[]="
D.chara[]={0,1,2,3,4,5};
27.在C++语言中,引用数组元素时,其数组下标的数据类型允许是—o
A.只能整型常量B.只能整型表达式
C.整型常量或整型表达式D.任何类型的表达式
28.若有以下说明和语句,且0<
ivl0,则对数组元素的错误引用是__。
inta[]={1,2,34,5,6,7,8,9,0},*p,i;
p=a;
A.*(a+i)B.a[p-a]C.p+iD.*(&
a[i])
29.若有以下定义和语句,旦0<
i<
10,则对数组元素地址的正确表示是
inta[]={1,2,345,6,7,8,9,0},*p,i;
A.&
(a+l)B.a++C.*pD.&
p[i]
30.类的指针成员的初始化是通过函数完成的,这个函数通常是o
A.析构函数B.构造函数C.其它成员函数D.友元函数
31.在C++语言中函数返回值的类型取决于—o
A.调用系统时系统临时B.return语句汇总的表达式类型
C.定义该函数时所指定的函数类型D.调用该函数时的主调函数类型
32.下列关于函数参数默认值的描述中,正确的是__o
A.函数参数的默认值只能设置一个
B.若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值
C.若一个函数含有多个参数,则设置默认参数时可以不连续设置默认值
D.C++语言中函数都必须设有默认值
33.已知程序中已经定义了函数test(),其原型是inttest(int,int,int);
则下列重载形式中正确的是
A.chartest(int,int,int);
B.doubletest(int,int,double);
C.inttest(int,int,int=O);
D.floattest(int,int,float=3.5F);
34.函数重载是指-
A.两个或两个函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的名字,并且函数的返回值类型相同
35.下列正确的原型语句是—o
A.intFunction(void)B.voidFunction(int);
C.intFunction(a);
D.voidint(double);
36.下列程序的输出结果是—o
intmin(inta,intb)
{if(a<
b)retunia;
elsereturnb;
{coutvvmin(1,min(2,3))vvendl;
A.0B.1C.2D.3
37.下列关于类的访问权限的描述中,错误的是—o
A.公有数据成员和公有成员函数都可以被类对象直接处理
B.类的私有数据成员只能被公有成员以及该类的任何友元或友元函数访问
C.只有类或派生类的成员函数和友元类或友元函数可以访问保护成员
D.保护成员在派生类中可以被访问,而私有成员不可以
38.有以下的类定义
classMyClass
{public:
MyClass(){cout«
1;
};
则执行语句MyClassa,b[2],*p[2];
后,程序的输出结果是。
a.iib.inc.mid.mu
39.37.关于友元,下列说法错误的是—o
A.如果类A是类B的友元,那么类B也是类A的友元
B.如果函数fun()被说明为类A的友元,那么在由nc()中可以访问类A的私有成员
C.友元关系不能被继承
D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元
40.下面关于类MyClass的定义,对定义中的各语句描述正确的是。
ClassMyClass
(public:
voidMyClass(inta)(x=a}//I
intf(inta,intb)//2
{x=a;
y=b;
intf(inta,intb,intc=0)//3
z=c;
staticvoidg()(x=10;
}//4
private:
intx,y,z;
};
A.语句1是类MyClass的构造函数定义
B.语句2和3实现类成员函数的重载
C.语句4实现对类成员变量x的更新操作
D.语句1、2、3、4都不正确
41.静态数据成员的初始化必须在o
A.类内B.类外C.构造函数内D.静戊成员函数内
42.友元的作用是。
A.提高程序的运用效率B.加强类的封装性
C.实现数据的隐藏性D.增加成员函数的种类
43.下面程序的输出结果是—o
classexample(
inta;
public:
example(intb){a=b++;
voidprint()(a=a+1;
coutvvavv"
"
;
voidprint()const{coutvvavv”“;
)
{examplex(3);
constexampley
(2);
x.print();
y.print();
A.22B.43C.42D.32
44.下列不属于派生类对基类的继承方式的是—o
A.privateB.publicC.staticD.protected
45.下列关于基类和派生类关系的描述中,错误的是—o
A.派生类是基类的具体化B.派生类是基类的子集
C.派生类是基类定义的延续D.派生类是基类的组合
46.在公有派生的情况下,派生类中定义的成员函数只能访问原基类的—o
A.公有成员和私有成员B.私有成员和保护成员
C.公有成员和保护成员D.私有成员、保护成员和公有成员
47.下列运算符中,不能用友元函数重载的是—o
A.+B.=C.大D.«
48.类模板的模板参数—o
A.只可以作为数据成员的类型B.只可以作为成员的返叵]类型
C.只可以作为成员函数的参数类型D.以上三者都可以
49.类模板tempiatevclassT>
classsample'
..},其中,友元函数func()成为该类模板实例化的每个模板类的友元,则有—0
A.friendvoidfunc();
B.friendvoidfunc(sample<
T>
&
);
C.friendvoidA.:
func();
D.friendvoidC<
func(sample<
50.下列关于C++文件流的叙述中,错误的是—o
A.C++语言中的文本文件以ASCII码形式存储数据
B.C++语言中对二进制文件的访问速度比文本文件快
C.使用函数open()打开的文件使用完毕后,可以使用close()函数关闭
D.C++语言中,随机读写方式不适合文本文件
51.与语句coutvvendl;
不等价的是。
A.cout«
\n,;
B.coutvv'
\12'
C.coinvv'
\xA'
D.coutvv'
\0'
52.若已知charstr[20];
有语句cin»
str;
当输入为:
ThisisaC++program
时,str所得结果是o
A.ThisisaC++programB.This
C.ThisisD.ThisisaC
填空题(以概念为主)
1.一个C++程序的开发步骤通常包括、编译、链接、运行和调试。
2.一般来说,一个C++程序都要包含头文件,该文件中包含了所有的输入/输出流操作所需要的基本信息。
3.C++语言为每一种运算符规定了相应的优先级,使用可以改变默认的运算符优先级。
4.指针变量所保存的不是一般的数据值,而是程序中另一个对象的o
5.C++中有4种跳转语句,它们是:
break语句、continue语句、return语句和。
6.C++中有4种循环语句,它们是:
goto语句构成的循环while循环、do...while循环和循
环。
7.在类的定义体外定义成员函数时,需要在函数名前加上类域标记,而在域外使用成员函数时,
需要在成员外加上的名字。
8.在C++程序中,所有函数在使用前都要使用相应的函数原型语句加以声明,但函
数不需要声明。
9.在C++语言中,每个类都有一个隐含的指针叫做指针。
10.在C++程序中,类的具体表现是通过定义来操作的。
11.设置虚基类的目的是.
12.为解决在多重继承环境中因公共基类所带来的问题,C++语言提供了虚基类机
制。
13.对基类数据成员的初始化必须在派生类构造函数中的处执行。
14.是一•个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
15.如果在类模板的定义中有一个静态数据成员,则在程序运行中会产生个静态变量。
16.派生类中对基类的成员函数f()进行覆盖,如果调用基类的成员f应该使用o
17.内联函数是通过来实现的,因此内联函有选举权是真正的函数。
18.C++编译器不允许用抽象类创造对象,它只能被其他类。
19.运算符函数的函数名是山和其后要更载的运算符构成。
20.使用ifstream流类定义一个流对象,并打开一个磁盘文件时,文件的隐含打开方式
是0
%1.程序分析:
写程序结果
1.#includeviostream.h>
voidfunc(int);
{intk=6;
func(k);
voidfunc(inta)
{staticintm=0;
m+=a;
coutvvmvv”“;
2.#include<
iostreani.h>
{ints;
for(intk=2;
kv6;
k+=2)(
s=l;
for(intj=k;
jv6;
j++)s+=j;
}cout«
s«
3.#include<
intf(inti)
(return++i;
intg(int&
i)(return++i;
voidmain()(inta,b;
a=b=0;
a+=f(g(a));
b+=f(f(b));
coutvv”a="
vvavv”,b="
vvbvvendl;
4.#include<
intmin(inta,intb)(returna<
b?
a:
b;
]intmin(inta,intb,intc){intt=min(a,b);
intmin(inta,intb,intc,intd)
(inttl=min(a,b);
intt2=min(c,d);
returnmin(tlj2);
voidniain()
(coutvvmin(12,3,6,8)vvendl;
cout«
min(-3,7,0)«
5.#include<
classSample
intx;
inty;
voiddisp()
(coutvv”x=”vvxvv”,y="
vvyvvendl;
{
intSample:
*pc;
Samples;
pc=&
Sample:
x;
s.*pc=10;
y;
s.*pc=20;
s.disp();
6.#include<
classSample(intx;
inty;
Scimple(inta,intb)
(x=a;
)intgetx()(returnx;
}intgety()(returny;
)};
voidrnain()
{int(Sample:
*fp)();
fp=&
getx;
Samples(2,7),*p=&
s;
intv=(p->
gety;
intt=(p->
coutvv"
v="
vvvvv"
t="
vvtvvendl;
7-#include<
classTest{
staticintval;
staticinttunc();
staticvoidsfunc(Test&
r);
intTest:
val=10;
func(){
val+=val;
returnval;
voidTest:
sfunc(Test&
r)(
r.a=15;
cout«
Result3=”«
r.a;
voidmain(){
Result1="
«
Test:
func()«
endl;
Testa;
HResult2="
a.func();
Test:
sfunc(a);
%1.程序填空:
按功能完成程序,
1.功能:
读入20个整数,统计非负数个数,并计算非负数之和。
stdio.h>
voidmain(void)
(inti,a[20],s,count;
s=0;
for(i=0;
20;
i++)
scanf("
%d"
);
s+=a[i];
count++;
printf("
s=%d\tcount=%d\n“,s,count);
2.功能:
以下程序将数组中的数据按逆序存放
{intaH2],i,j,t;
ivl2;
i++)scanf("
%d”,&
a[i]);
i=0;
j=12;
while()
(t=a[i];
i++;
j-;
i++)printf("
%3d”,a[i]);
\n”);
3.功能:
用选择法对数组a中的整数山小到大进行排序。
voidsort(intb[],intn)
{int
for(i=0;
i<
n-l;
i++)
for(;
j<
n;
j++)
if(b[i]b|j])
{t=blij;
;
b|j]=t;
I
(inta[]={5,8,6,2,7,4,I,3};
inti;
sort(a,8);
8;
i++)
a[i]<
"
vvendl;
%1.程序设计:
1.求出10至1000之内能同时被2、3、7整除的数,并输出。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础 精品 程序设计 基础 练习题 doc
