C++程序复习题
一.选择题(每题2分,共40分)
1.C++规定,在一个源程序中,main()函数的位置( )。
A.必须在最开始 B.必须在最后
C.可以任意 D.必须在系统调用的库函数的后面
2.以下( )是C/C++合法的标识符。
A.char2 B.@x C.int D.7Bx
3.下面的程序,对于输入:2 9 15,输出的结果是( )。
#include <iostream>
void main()
{
int a;
float b;
cout<<”input a,b”<<endl;
cin>>a>>b;
cout<<”a+b=”<<a+b<<endl;
}
Aswitch语句必须使用break吗.2 B.11 C.26 D.24
4.下面关于编译预处理命令的说法中,正确的是( )。
A.一条文件包含命令能包含多个文件
B.文件包含命令不可以嵌套使用
C.编译预处理命令是在编译之前被处理的命令
D.编译预处理命令中的“#”可以省略
5. 在以下关于C++语言的叙述中,正确的是( )
A.if语句结构中必须有else语句
B.switch语句结构中必须有default语句
C.C++程序必须有return语句
D.C++中使用流来执行标准的输入输出操作
6.下列不正确的变量定义方法是( )。
A.int a,&b=a; B. float a,*b=&a;
C.int a(4),b(0); D. int a=b=5;
7.下列运算符优先级按由高到低的顺序排列正确的是( )。
A.*=. &&.!=.% B.*=. %. &&. !=
C.%. != .&& .*= D. &&. !=. %.=
8.已知x,y为整型,z为实型,ch为字符型,下列表达式中合法的是( )
A.z=(y+x)++ B.x+y=z C.y=ch+x D.y=z%x
9.若有变量定义”int a=7;”,则下列语句组对应的输出结果是( )
switch(a%5)
{ case 0: cout<<a++;
case 1: cout<<++a;
case 2: cout<<a--;
case 3: cout<< --a;
default:cout<<”其它值”;
}
A.其它值 B.5 C.7 D.75其它值
10.执行下列程序段后,变量K的值为( )
for(k=0,m=1;m<4;m++)
{
for(n=1;n<5;n++)
if (m*n%3==0) continue;
k++;
}
A.1 B. 3 C.6 D.12
11.若输入字符串“ABC”,下面程序段的输出为( )
char c;
while (cin>>c,c!=’\n’)
cout<<c+2;
A.222 B. CDE C.676869 D.333
12.以下不能对二维数组a初始化的语句是( )
A.int a[2][]={{1},{2}}; B.int a[2][3]={1,2,3,4,5,6};
C.int a[2][3]={1}; D.int a[2][3]={{1},{2}};
13.已知有语句“int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}},*p=&a[0][0];”,则表达式
(*p+2)+*(p+2)的值应为( )。
A.10 B.5 C.6 D.8
14.要比较两个字符数组a,b中字符串是否相等,下面正确的是( )。
A.a==b B. strcmp(a,b)==0 B.strcpy(a,b) D.strcmp(a,b)=0
15.若函数的类型和return语句中的表达式类型不一致,则( )
A.编译时出错
B.运行时出现不确定结果
C.不会出错,且返回值的类型以return语句中表达式的类型为准
D.不会出错,且返回值的类型以函数类型为准。
16.下面函数说明正确的是( )
A.void f1 (int a=3,int b,int c);
B.void f2 (int a,int b=3,inc c);
C.void f3(int a,int b,int c=3);
D.void f4(int a,int b,int 3);
17.下面程序的输出结果是( )
#include <iostream.h>
int m=10;
void f(int m,int &n)
{
m=m+2;n=n+2;
}
void main()
{
int n=5;
f(m,n);
cout<<”m=”<<m<<”n=”<<n<<endl;
}
A.m=10 n=5 B.m=10 n=7 C.m=12 n=7 D.m=12 n=5
18.以下函数中不属于类的成员函数的是( )
A.构造函数 B.析构函数 C.友元函数 D.拷贝初始化构造函数
19.作用域运算符的功能是( )
A.标识作用域的级别的 B.指出作用域的范围的
C.给定作用域的大小的 D.标识某个成员是属于哪个类的
20.假设person是一个类,p1是该类的一个对象,p2是指向p1的指针,getname是该类的一个成员函数,则以下表达式不正确的是( )
A.person.getname() B.p1.getname()
C.p1.person::getname() D.p2->getname()
21.C++源程序文件的扩展名为( )
A..CPP B..C C..DLL D..EXE
22.以下( )是C++合法的表达式
A. a=1,a++ B. (x+y)++ C. a+b=c D. 12.25%10
23.以下程序的输出结果是:( )
#include <iostream.h>
int fun(char *s){
char *p=s;
while (*p!='\0') p++;
return (p-s);
}
void main(){
cout<<fun("abc")<<endl;
}
A.0 B.1 C.2 D.3
24.下面叙述中正确的是( )
A.for循环只能用于循环次数已经确定的情况
B.for循环同do-while语句一样,先执行循环体再判断
C.不管哪种形式的循环语句,都可以从循环体内转到循环体外
D.for循环体内不可以出现while语句
25.使用( )可以设置数据输出的宽度。
A.setbase(int n) B.setw(int n)
C.setfill(int n) D.setprecision(int n)
26.在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( )
A.3 B. 2 C.6 D.4
27.下面正确定义数组的语句是( )
A.int x[][2]={2,1,3,2} B. int x[][]={2,1,3,2}
C. int x[2][]={2,1,3,2} D. int x[2,2]={2,1,3,2}
28.已知 char c; const char *pc="asdf";( )是正确的。
A.pc="dfgh" B.*pc=‘b’ C.*pc++=‘y’ D.pc=&c
29.若有变量定义”int a=7;”,则下列语句组对应的输出结果是( )
switch(a%5)
{ case 0: cout<<a++;
case 1: cout<<++a;
case 2: cout<<a--;
case 3: cout<< --a;break;
default:cout<<”其它值”;
}
A.5 B.7 C.75 D.75其它值
30.以下程序段的输出结果是( )
for(i=4;i<=10;i++)
{
if(i%3==0) continue;
cout<<i;}
A.45 B. 457810 C.69 D.678910
31.执行下列语句后的输出结果是( )。
int hot=10;
int &rad=hot;
hot+=10;
cout<<rad<<endl;
A.0 B.20 C.10 D.30
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论