试卷详情
-
国家计算机二级(C++)94
-
[单项选择]执行下列程序段,结果是( )。
#include<iostream.h>
void main( )
{ int x=40;
char y=''C'';
int n;
n=(x&0xff)&&c(y> ''B'');
cout < < n;}
A. 0
B. 1
C. 2
D. 3
-
[单项选择]有以下类定义
class MyClass
{
private:
int id;
char gender;
char*phone;
public:
MyClass( ):id(0),gender(’’#’’),phone(NULL){}
MyClass(int no,char ge=’’#’’,char*ph=NULL)
{id=no;gender=ge;phone=ph;}
};
下列类对象定义语句中错误的是【 】
A. MyClass myObj;
B. MyClass myObj(11,"13301111155");
C. MyClass myObj(12,’m’);
D. MyClass myObj(12);
-
[单项选择]下列有关类成员的叙述中,正确的是
A. 友元函数是类的成员函数
B. 类成员的默认访问权限是私有的
C. 类成员函数必须声明为公有的
D. 类的静态数据成员不能是常成员
-
[填空题]以下函数 fun 的功能是返回 str 所指字符串中以形参 c 中字符开头的后续字符串的首 地址,例如:str 所指字符串为:Hello!,c 中的字符为 e,则函数返回字符串:ello!的首地址。若 str 所指字符串为空串或不包含 c 中的字符,则函数返回 NULL。请填空。
char *fun(char *str, char c)
{ int n=0;char *p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!= ’’/0’’) n++;
if(p[n]== ’’/0’’) return NULL;
return( _________);
}
-
[填空题]下列程序的输出结果是【 】。
#inClude<iostream>
using namespace std;
class Test {
public:
Test( ) {cnt++;}
~Test( ){cnt--;}
static int Count( ) {return cnt;}
private:
static int cnt;
};
int Test::cnt=0;
int main( )
{
cout<<Test::Count( )<<";
Test t1,t2;
Test*pT3=new Test;
Test*pT4=new Test;
cout<<Test::Count( )<<’’’’;
delete pT4;
delete pT3;
cout<<Test::Count( )<<endl;
return 0;
}
-
[单项选择]对于模板定义关键字class和typename说法不正确的是( )。
A. 程序中的class并不能都替换为typename
B. class和typename都可互相替换
C. 程序中的typename都能替换为class
D. 程序中的部分class可以替换为typename
-
[单项选择]如果类A被说明成类B的友元,则( )。
A. 类A的成员即类B的成员
B. 类B的成员即类A的成员
C. 类A的成员函数不得访问类B的成员
D. 类B不一定是类A的友元
-
[单项选择]有如下程序:
#include<iostream.h>
long fib(int n)
{ if(n > 2) return(fib(n-1)+fib(n-2) );
else return(2);}
void main( )
{ cout < < fib(3);}
该程序的输出结果是( )。
A. 2
B. 4
C. 6
D. 8
-
[填空题]请按下面注释的提示,将类B的构造函数定义补充完整。
C1assA
{
int a;
public:
A(int aa=O){a=aa;}
};
class B:public A {
int b;
A c;
public:
//用aa初始化基类A,用aa+1初始化类对象成员c
B(int aa}:【 】{b=aa+2}
};
-
[单项选择]下列程序的执行结果为( )。
# include <iostream.h>
void main ( )
{
int a=3,b=0;
int * p=&a;
b= +a++;
cout << * p <<"," << b << endl;
}
A. 选项卡
B. 文本框控件
C. 列表框或组合框控件
D. 选项组控件
-
[填空题]在两种基本测试方法中,______测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
-
[单项选择]下列关于构造函数说法不正确的是( )。
A. 构造函数必须与类同名
B. 构造函数可以省略不写
C. 构造函数必须有返回值
D. 在构造函数中可以对类中的成员进行初始化
-
[单项选择]this指针是C++语言实现什么的一种机制
A. 抽象
B. 封装
C. 继承
D. 重载
-
[单项选择]结构化程序设计的基本原则不包括
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
-
[填空题]程序测试分为静态分析和动态测试。其中_________是指不执行程序,而只是对程序文 本进行检查,通过阅读和讨论,分析和发现程序中的错误。
-
[填空题]假设int a=1,b=2;则表达式a+++--b的值为【 】。
-
[单项选择]只能作为成员函数重载的是( )。
A. 类创建时
B. 创建对象时
C. 删除对象时
D. 不自动调用
-
[填空题]将x+y中的+运算符用友元函数重载应写为【 】。
-
[单项选择]关于虚函数下面说的正确的是
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
-
[填空题]以下程序的输出结果是【 】。
#include<iostream.h>
voidfun( )
{ staticinta=0;
a+=2;
cout<<a<<"";}
voidmain( )
{ intcc;
for(cc=1;cc<4;cc++)
fun( );
cout<<endl;}
-
[单项选择]若运行时给变量x输入12,则以下程序的运行结果是( )。
#include<iostream.h>
void main( )
{
int x,y;
cin > > x;
y=x > 12 x+lO:x-12;
cout < < y;
cout < < end1;
}
A. 窗体设计器
B. 报表设计器
C. 表设计器
D. 宏设计器
-
[单项选择]下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,在划线处应填入的是( )。
#include<iostream.h>
voidmain( )
{
inti=0,j,k;
do{i++;k=316-13*i;}while(_____);
j=k/11;
cout<<"316=13*"<<i<<"+11*"<<j;
}
A. k/1l
B. k%11
C. k/11==0
D. k%11==0
-
[单项选择]下面关于模板的描述,错误的是( )。
A. 函数模板和类模板的参数可以是任意的数据类型
B. 类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用
C. 函数模板不能直接使用,需要实例化为模板函数后才能使用
D. 类模板的成员函数都是模板函数
-
[单项选择]以下四个程序中,完全正确的是______。
-
[单项选择]以下类定义中可能会引起错误的语句是( )。
class A
{
public:
~A( ){ } //1
int i; //2
private:
int j; //3
A(int i) {i++;} //4
};
A. throws
B. throw
C. Throwable
D. Exception
-
[填空题]创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省的构造函数。下列程序涉及到对象数组的创建和单个对象的创建其输出结果是【 】。
#include
using namespace std;
class Foo{
public:
Foo(int x){out<<′A′}
Foo( ){}
} ;
Int main( )
{
Foo f[3],g(3);
retum 0;
}
-
[单项选择]下列符号中,正确的C++标识符是______。
A. enum
B. 2b
C. foo-9
D. _32
-
[单项选择]在下列关键字中,不能用来表示继承方式的是
A. private
B. static
C. public
D. protected
-
[单项选择]有以下程序:
main( )
{ char s[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);
}
程序运行后的输出结果是______。
A. 15
B. 16
C. 12
D. 59
-
[填空题]设置虚基类的目的是【 】,通过【 】表示虚基类。
-
[单项选择]下面程序的运行结果是( )。
#nclude<iostream.h>
int fun(inta[],int n)
{
int result=1;
for(int i=1;i<n;++)
result=result*a[i];
return result;
}
void main( )
{
int a[3] ={3,4,5};
cout<<fun(a,3)<<endl;
}
A. 2
B. 0
C. -2
D. 1
-
[单项选择]一个类的友元函数能够访问该类的( )。
A. 私有成员
B. 保护成员
C. 公有成员
D. 所有成员
-
[单项选择]有以下程序:
point(char *p){p+=3;}
main( )
{ char b[4]={''a'',''b'',''c'',''d''},*p=b;
point(p);printf("%c/n",*p);
}
程序运行后的输出结果是______。
A. a
B. b
C. c
D. d
-
[单项选择]下面程序段的运行结果是( )。
#include<iostream.h>
void main( )
{ char*s="abcde";
S+=2;
cout<<&s;}
-
[单项选择]下面程序的运行结果为( )。
# include <iostream.h>
class A
{
int num;
public:
A(inti){hum=i;}
A(A&a){num=a.num++;}
void print( ){cout << num;}
};
void main( )
{
Aa(1),b(a);
a.print( );
b.print( );
}
A. 显示“打开文件”对话框
B. 显示“保存文件”对话框
C. 显示“字体”对话框
D. 显示“打印”对话框
-
[单项选择]下列关于多态性的描述,错误的是( )。
A. INDEXON籍贯,学号TO JGXH
B. INDEXON籍贯+学号TO JGXH
C. INDEXON籍贯,STR(学号,4)TO JGXH
D. INDEXON籍贯+STR(学号,4)TO JGXH
-
[单项选择]下面叙述不正确的是( )。
A. 12AB34CD
B. 12ab34CD
C. 12ab34cd
D. 12AB34cd
-
[单项选择]对以下说明语句的正确理解是( )。
inta[10]={6,7,8,9,10};
A. 公有类型
B. 私有类型
C. 保护类型
D. 友元类型
-
[单项选择]有以下程序段
struct st
{int x;int *y;}*pt;
int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c;
以下选项中表达式的值为11的是______。
A. *pt->y
B. pt->x
C. ++pt->x
D. (pt++)->x
-
[单项选择]有以下程序段:
typedef struct NODE
{int num; struct NODE *next;
}OLD;
以下叙述中正确的是______。
A. 以上的说明形式非法
B. NODE 是一个结构体类型
C. OLD 是一个结构体类型
D. OLD 是一个结构体变量
-
[单项选择]下列程序的输出结果是( )。
# include < iostream.h>
int min( int a,int b)
{
if(a < b)return a;
else return b;
return 0
}
void main ( )
{
cout << min(1,min(2,3)) << endl;
}
A. 0
B. 1
C. 2
D. 3
-
[填空题]静态成员函数可以直接访问类的【 】成员,不能直接访问类的【 】成员。
-
[单项选择]以下定义数组中错误的是( )。
A. 查询
B. 数据访问页
C. 窗体
D. 报表
-
[填空题]以下程序中函数 fun 的功能是:构成一个如图所示的带头结点的单向链表,在结点 的数据域中放入了具有两个字符的字符串。函数 disp 的功能是显示输出该单向链表 中所有结点中的字符串。请填空完成函数 disp。
head
ab cd ef /0
#include
typedef struct node /*链表结点结构*/
{ char sub[3];
struct node *next;
}Node;
Node fun(char s) /* 建立链表*/
{ …… }
void disp(Node *h)
{ Node *p;
p=h->next;
while(= _______ )
{ printf("%s/n",p->sub);p= _______ ; }
}
main( )
{ Node *hd;
hd=fun( ); disp(hd);printf("/n");
}