《C++程序设计》课程复习资料
一、单项选择题:
1.下列字符串中可以用作C++标识符的是 [ ]
A.goto B.Student C.123 D.k-ld
2.定义变量int a=6,则a++的值是 [ ]
A.7B.6 C.5 D.4
3.已知字母A的ASCII码为65,则表示字符常量A错误的是 [ ]
A. '\101' B. '\x41' C. 65 D.“A”
4.结构化程序由三种基本结构组成,不包括 [ ]
A.顺序结构 B.选择结构C.控制结构 D.循环结构
5.己知有定义:
const int D 5;
int i=1;
double f=0.32;
char c=15;
则下列选项错误的是 [ ]
A.++i;B. D--;C. c++;D. --f;
6.若有定义为“int *r =new int [10];”,则释放指针所指内存空间的操作是 [ ]
A.delete [ ]r;B.delete *rC.delete r;D.delete r[ ];
7.下列哪个是C++语言的不正确的标识符? [ ]
A._No1 B. Ab1 C. bgc D. int
8.下列哪个是C++语言的合法的字符常量? [ ]
A. ”\0” B. '054'令数组全部的值为0 C. '\x89' D. '\092'
9.定义整型变量x,y,z并赋初始值6的正确语句是 [ ]
A.int x=y=z=6; B. int x=6,y=6,z=6; C. x=y=z=6; D. int x,y,z=6;
10.用C++语言编写的代码程序 [ ]
A.可立即执行B.是一个源程序
C.经过编译即可执行D.经过解释才能执行
11.将两个字符串连接起来组成一个字符串时,选用的函数是 [ ]
A. strlen() B. strcpy() C. strcat() D. strcmp()
12.在程序中,预处理命令开头的字符都是 [ ]
A. * B. # C. & D. @
13.在C++语言中,表示一条语句结束的符号是 [ ]
A. “#” B. “;” C. “}” D. “//”
14.在下面的循环语句中循环体执行的次数为 [ ]
for(int i=0;i<n;i++)
if(i>n/2)break;
A.n/2 B.n/2+1 C.n/2-1 D.n-1
15.在下面的一维数组定义中,有语法错误的语句是 [ ]
A. int a[]={1,2,3}; B. int a[10]={0};
C. int a[]; D. int a[5];
16.下面的保留字中,不能作为函数的返回类型 [ ]
A. void B. int C. new D. long
17.下面的函数声明中,“void BC(int a, int b);”的重载函数是 [ ]
A. int BC(int x, int y); B. void BC(int a, char b);
C. float BC(int a, int b, int c=0); D. int BC(int a, int b=0);
18.假定AB为一个类,则该类的复制构造函数的声明语句为 [ ]
A. AB&(AB x); B. AB(AB x); C. AB(AB* x); D. AB(AB&);
19.表达式(1,2,3,4)的结果是 [ ]
A. 1 B. 2 C. 3 D. 4
20.在函数中如果不说明变量的存储类型,则默认的存储类型是 [ ]
A.auto B.static C.extern D.register
21.下面字符序列中,合法的C++常量是 [ ]
A.078B.5LC.9e7.5 D.'AB'
22.int a声明的自动型变量a在没有赋值的情况下,其值为 [ ]
A.0 B.-1 C.1 D.随机数
23.设“int f(int);”和“int g(int);”是函数f和g的原形,以下将f作为语句调用的是[ ]
A. g(f(3))B. f(g(3)) C. g(f(3)+2) D. p=f(g(3)+1)
24.下面对构造函数和析构函数正确定义的项是 [ ]
A. X::X(参数), X::~X()B. void X::X(), void X::~X()
C. X::X(参数), X::~X(参数)D. void X::X(参数), void X::~X(参数)
25.变量生存期是指 [ ]
A.变量定义B.变量在内存中分配存储单元到被释放期间
C.程序的运行D.可执行代码的生存期
26.以下选项中C++表达式不能正确表示的数学关系a<x≤b为 [ ]
A. a<x&&x<=bB. x<=b&& a<x
C. !(a>=x)&&!(x>b)D. a<x<=b
27.下列定义中,定义指向数组的指针p的是 [ ]
A. int *p[5] B. int (*p)[5]C. (int *)p[5] D. int *p[ ];
28.设有以下定义:
void f1(int * m, long & n);
int a;
long b;
则以下调用合法的是 [ ]
A.f1(a,b) B.f1(&a,b) C.f1(a,&b) D.f1(&a,&b)
29.下列各类变量中,不是局部变量的是 [ ]
A.register int x; B.void f(int w)
C.int z; D.static int y;(定义在函数外)
30.已知p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,
()正确的语句。 [ ]
A.A1.p=5 B.A1->p=5C.A.*p=5 D.*A1.p=5
31.以下选项中,决定函数的返回值的类型是 [ ]
A.调用该函数的主调函数类型B.return语句中的表达式类型
C.定义函数时所指定的返回值类型D.调用函数时临时决定
32.下面for语句的循环次数为 [ ]
for(int i=0,x=0;!x&&i<=5;i++);
A.无穷次 B.5 C.6 D.7
33.在下面的字符数组定义中,有语法错误的语句是 [ ]
A.char a[20]="abcdefg"B.char a[]="x+y=55"
C.char a[15]={'1','2'}D.char a[10]='5'
34.若用数组名作为函数调用的实参,传递给形参的是 [ ]
A.数组的首地址B.数组中第一个元素的值
C.数组全部元素的值D.数组元素的个数
35.假定AB为一个类,则执行“AB a(4),b[5],*p[2];”语句时,自动调用该类构造函数的次数为[ ]
A. 6B. 7 C.9D. 11
36.当使用fstream流类定义一个流对象,并打开一个磁盘文件时,文件的隐含打开方式为[ ]
A. ios::in B. ios::out C. ios::in | ios::out D.没有
二、填空题:
1.若a是一个字符数组,则使用输入输出流对象cout向屏幕输出数组a中所存字符串的语句为_________。
2.当一个对象定义时,C++编译系统自动调用__________函数建立该对象并进行初始化。
3.C++语言的参数传递机制包括值传递和____________传递两种。
4.假定p是一个指针,则(*p)++运算首先访问__________,然后使p的值增1。
5.假定对二维数组a[3][4]进行初始化的数据为{{2, 5, 6}, {2,8},{7}},则a[1][1]被初始化为_______。
6.设px指向一个类的动态分配的对象,则执行“delete px;”语句时,将自动调用该类的_______________。
7.变量的基本类型有、实型、字符型和枚举型。
8.语法的三种基本结构为顺序结构、选择结构和结构。
9.一个指针指向一个Data类对象,它保存着该对象的__________,相应的指针类型为Data类。
10.若do循环的“尾”为“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__________次后正常结束。
11.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为________________。
12.当在程序中执行到__________________语句时,就立即结束本层循环类语句或switch语句的执行。
13.字符和字符串常数的定界符分别为_________和双引号(")。
14.应用程序hello.cpp中只有一个函数,这个函数的名称是__________。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论