2024年4月2日发(作者:)
一、选择题:(1题1分)
1.下列哪个是C++语言的有效标识符?
A)_No1 B)No.1 C)12345 D)int
2.下列选项中,不全是C++语言关键字是:
A) const, break, default B) long, void, auto C) virtual, extern, include D) this, class, else
3.在C++语言中,不合法的实型数据是
A) 0.123 B)123e4 C) 2.1e3.5 D)123.0
4.下列程序的执行结果为
#include
void main( )
{ int a=3,b=0;
int *p=&a;
b=+a++;
cout<<*p<<","<
}
A)3,3 B)4,3 C)3,4 D)4,4
5.下面关于C++语言的描述错误的是
A)C++语言支持数据封装 B)C++语言中引入友元没有破坏封装性
C)C++语言允许函数名和运算符重载 D)C++语言支持动态联编
6.判断char型变量c是否为小写字母的正确表达式是
A)'a'<=c<='z' B)(c>=A)&&(c<=z) C)('a'>=c)||('z'<=c) D)(c>='a')&&(c<='z')
7.若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于
数组的第一个位置上)
A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1
8.下面程序的运行结果为
#include
void main( )
{ char a='3';
switch(a)
{ case '3': cout<<"3";
case '2': cout<<"2"; break;
default : cout<<"1";
}
}
A)3 B)321 C)31 D)32
9.有以下程序
#include
void main( )
{ int i=1,j=1,k=2;
if((j++||k++)&&i++)
cout << i << "," << j << "," << k;
cout< } 执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 10.下列程序的输出结果为 #include void main( ) { char *a[ ]={"hello","the","world"}; char **pa=a; pa++; cout<<*pa< } A)hello B)the C)world D)hellotheworld 11.存在定义int a[10], x, *pa;,若pa=&a[1],下列的哪个选项和其他3个选项不是等价的 A)x=*pa; B)x=*(a+1); C)x=*(a+1); D)x=a[1]; 12.下列语句的输出结果 cout << strlen("t"065xffn"); A)5 B)14 C)8 D)输出项不合法,无正常输出 13.有以下程序 #include struct STU { char num[10]; float score[3]; }; void main( ) { struct STU s[3]={ {"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s; int i; float sum=0; for(i=0;i<3;i++) sum=sum+p->score[i]; cout << sum; } 程序运行后的输出结果是: A)260 B)270 C)280 D)285 14.下列程序中画线处应填入的语句是 class Base { public: void fun( ){cout<<"Base of fun"< }; class Derived : public Base { public: void fun( ) { __________ //显示基类的成员函数fun cout<<"Derived of fun"< } }; A)fun( ); B)( ); C)Base::fun( ); D)Base->fun( ); 15.如果表达式x*y+z中,"*"是作为友元函数重载的,"+"是作为友元函数重载的,则该表达 式还可为 A)operator+( operator*(x, y),z) B)or+( operator*(x, y),z) C)or*( operator+(x, y),z) D)or+( operator*(x, y)) 16.一个函数功能不太复杂但要求被频繁调用,应选用 A)内联函数 B)重载函数 C)递归函数 D)嵌套函数 17设变量a是int型,f是double型,i是float型,则表达式10+'a'+ i * f值的数据类型 A)int B)float C)double D)不确定 18.建立派生类对象时, 3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、 c(派生类的构造函数),这3种构造函数的调用顺序为 A)abc B)acb C)cab D)cba 19.只能作为成员函数重载的运算符是 A)= B)++ C)* D)> 20.以下哪个特征不是面向对象思想中的主要特征? A)多态 B)继承 C)封装 D)垃圾回收 二、基本概念填空题(1题2分) 1.假设fin是一个文件流对象,则关闭文件的语句是 【1】();。 2.要采用“cin,cout”进行输入输出时,必须包含的头文件是 【2】#include 3.语句int *i; i = new int[10]; ,释放指针i的语句是 【3】delete []I; 。 4.C++的编译预处理的功能分为三种:宏定义、【4】文件包含和条件编译。 5. 若已知a=10,b=20,则表达式 !a 6.将以下程序写成三目(条件)运算表达式是 【6】max=a>b?a:b 。 if(a>b) max=a; else max=b; 7. C++语言的基本控制结构为顺序结构、选择结构和 【7】循环结构 。 8.在内存中,存储字符 'X' 要占用1个字节,存储字符串 "X" 要占用 【8】2 个字节。 9.假定int类型变量占用四个字节,如有定义int x[10]={0,2,4};,则数组x在内存中所占字 节数是【9】12 。 10.类中数据成员和成员函数的默认的访问权限是 【10】private 。 三、阅读程序(1题3分) 1.下面程序的运行结果是258 #include void main( ) { int i=1; while(i<=8) if (++i%3!=2) continue; else cout< } 2. 下列程序的输出结果是2 #include void main( ) { int a[3], i, j, k=2; for(i=0; i<3; i++) a[i]=i; for(i=0; i for(j=0; j a[j]=a[i]; cout << a[2];} 3.有如下程序,该程序的输出结果是:4 #include long fib(int n) { if(n>2) return (fib(n-1) + fib(n-2)); else return (2); } void main( ) { cout << fib(3) ;} 4.有如下程序,该程序中的for循环执行的次数是6 #include #define N 2 #define M N+1 #define NUM 2*M+1 void main( ) { int i; for (i=1; i<=NUM; i++) cout << i; } 5.以下程序的输出结果是。2 4 6 #include void fun( ) { static int a=0; a+=2; cout << a << " "; } void main( ) { int cc; for (cc=1; cc<4; cc++) fun( ); cout << endl; } 6.下面程序的输出结果是xyabcABC #include #include void main( ) { char p1[10], p2[10]; strcpy(p1, "abc"); strcpy(p2, "ABC"); char str[50]= "xyz"; strcpy( str+2, strcat(p1,p2)); cout << str; } 7.下面程序的运行结果为21 #include class A { int num; public: A(int i) {num=i;} A(A &a) {num=++;} void print( ){cout< }; void main( ) { A a(1), b(a); ( ); ( ); } 8.下面程序的运行结果为55 #include class A { static int n; public: A( ){n=1;} A(int num){n=num;} void print( ){cout< }; int A::n=2; void main( ) { A a, b(5); ( ); ( ); cout< } 9.下面程序的运行结果为3,3 #include void swap(int &a, int b) { int temp; temp=a++; a=b; b=temp; } void main( ) { int a=2, b=3; swap(a, b);


发布评论