C. a=a+a-a*a; D.a=a-a*a; a=a+a; 38.设有如下C语句: struct node { int val;
struct node *next;
};
struct node sa[3]={ {5},{7},{9} },*sp;
sa[0].next=sa+1; sa[1].next=sa+2; sa[2].next=NULL; sp=sa;
则下面哪个表达式的值是6?( )。 A. ++sp->val B. sp->val++ C. (*sp).val++ D. sp++->val
39.当需要把一个带初始化的变量定义为常值变量时,则应在该语句的前面加上关键字( )。
A.static B.const C.continue D.extern 40.假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为( )。
A.n-1 B.n C.n+1 D.n+2
41.假定AB为一个类,则该类的拷贝构造函数的正确声明是( )。 A.AB(AB x); B. AB(AB &); C. AB(AB *); D. AB&(AB & x);
42.当需要打开A盘上的xxk.dat文件用于输入时,则定义文件流对象的语句为( )。
A. fstream fin(“A:\\\\xxk.dat”); B. ofstream fin(“A:\\\\xxk.dat”);
C. ifstream fin(“A:\\\\xxk.dat” , ios::app); D. ifstream fin(“A:\\\\xxk.dat” , ios::nocreate);
43.当需要将一个函数 bool isnumber (char c) ; 声明为内联函数时,则此内联函数的函数原型为( )。
A. enum bool isnumber (char c) ; B. define bool isnumber (char c) ; C. inline bool isnumber (char c) ; D. extern bool isnumber (char c) ;
44.在下面的函数声明中,存在着语法错误的是( )。 A. void BC ( int a , int ); B. void BD ( int , int ); C. void BE ( int , int=5 ); D. void BF ( int x ; int y ); 45.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( )。
6
A.AB operator+(AB &a ,AB &b); B. AB operator+(AB &a ); C. operator+(AB a ); D. AB & operator+( );
46.在下列的一维数组定义中,哪一个有语法错误的( )。 A.int a[]={1,2,3}; B.int a[10[={0}; C.int a[]; D.a[5];
47.假定AB为一个类,则该类的拷贝构造函数的调用语句为:( )。 A.AB x,y( x); B. AB x,y; C. AB x,y(AB &); D. AB x,y(AB &x); 48.下面的哪一个保留字不能作为函数的返回类型? A.void B.int C.new D.long
49.假定a为一个整型数组名,则元素a[4]的字节地址为( )。 A. a+4 B.a+8 C.a+16 D.a+32
50. 假定AB为一个类,则执行“AB a(4),b[3],*p[2];”语句时,自动调用该类构造函数的次数为( )。
A.3 B.4 C.6 D.9
二、语法填空题
1.执行 cout< 2.描述命题“A小于B或小于C”的表达式为 。 3.在C++中有二种参数传递方式: 和 。 4.定义重载函数时,应在参数个数、参数类型或参数次序上 。 5.类是用户定义的类型,具有类类型的变量称作 。 6.当建立一个新对象时,程序自动调用 。 7.设P是指向具有10个元素的一维数组的指针变量,该数组元素类型int,则指针变量P的定义为 。 8.若有int i=3,j=7; 执行cout<<(ⅰ+ +)<,?<<(j=5,+ +j)< 9.当一个成员函数被调用时,该成员函数的 指向调用它的对象。 10.拷贝初始化构造函数使用 来初始化创建中的对象。 7 11.一个C++函数由两部分组成,即: 和 。 12.C++中函数定义的格式是 。 13.已知一函数的定义是:char *Hi (const char *s ) {cout<<”Hi!”< 14.一个C++程序总是从 开始执行。 15.C++语言程序中出现的/*??*/部分或//??部分所起的作用是 。 16.C++语言中数组元素的访问方式有两种,即: 和 。 17.假定a是一个二维数组,则a[ i ][ j ]的指针访问方式为 。 18.执行typedef int ABC[10] ; 语句把ABC定义为具有10个整型元素的 。 19.假定要访问一个结构指针p 所指对象中的b 指针成员所指的对象,则表示方法为 。 20.设px 是指向一个类动态对象的指针变量,则执行delete px ; 语句时,将自动调用该类的 。 21.C++规定:在每一个字符串的结尾加上一个 ,以便系统据此判断字符串是否结束。 22.C++语言中数据类型的转换有两种,即: 和 。 23.C++语言规定了运算符的优先级和结合性,其结合性分为 和 。 24.对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。 25.假定AB为一个类,则执行 AB a[10] ; 语句时,系统自动调用该类构造函数的次序为 。 26.假定类AB中有一个公用属性的静态成员bb, 在类外不通过对象名访问该成员 bb 的写法为 。 27.若有int a=4; float b=14.70; 则4/5的值为 ,4.0/5的值为 ;能正确表示a+b对a取余的表达式是 。 28.若有int x=4,y=7; 则表达式x+=y,x*=x+y的值为 。 29.x>1 && y!=0的相反条件为 。 30.过程化程序设计方法中,程序有三种基本结构, 8 即: 、 、 。 31.表达式?c?&&?d?的值为 ,表达式?c?&&?\\0?的值为 ,表达式!?c?||?c?<=?d?的值为 。 32.分支语句if(x>=y) max=x; else max=y; 用含条件运算符的赋值语句表示为 。 33.C++语言中所提供的循环控制语句有三种,即: 、 、 。 34.在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命令 ,若使用到数学库中的函数时,要在源程序的开始加入预处理命令 。 35.C++语言中用来存放变量地址的变量称作 。 36.在C++程序中,可以用两种方法实现一个字符串,即: 和 。 37.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 。 38.int *p[10]; 的含义是 。 39.int (*p)( ); 的含义是 。 40.int &p; 的含义是 。 41.int **p; 的含义是 。 42.若有定义int a[10], *p=a; 则 p++的含义是 。 43.若有int a[4]={10,11,12,13},b,* p=a; 则 执行语句b=*p++; 后b的值是 ,接着执行语句b=*++p; 后 b的值是 ,再执行语句b=++*p; 后b的值是 。 44.定义一种新的类型INTEGER,使其与int 等价,则正确的表示方式为 。 45.定义一个符号常量EOF ,使其与-1等价,则正确的表示方式为 。 46.C++语言中根据数据的组织形式,可以将文件分为: 和 。 47.OOP是术语 的英文简称,OOP方法是软件工程学中结构化程序设计,过程化、模块化、数据抽象、信息掩蔽、知识表示、并行处理等概念的积累和发展,它所依赖的最基本的概念是 、 和 。 48.若需要把一个函数 void F( ); 定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: 。 9 49.在C++中用 代替了C语言中的带参数宏定义。 50.C++语言所提供的定义结构体、共用体和类等三种类型的关键字分别是 、 、 。 51.执行“cout<<43<-?<<18<=?<<43-18< 52.使用const 语句定义一个标识符常量时,必须同时对它进行 。 53.假定p所指对象的值是25,p+1所指对象的值是46,则执行“(*p)++;”语句后,p所指对象的值为 。 54.假定px是指向一个有10个元素的类动态数组空间的指针变量,则执行“delete px;”语句时,将自动调用该类的析构函数 次。 55.变量分为全局和局部两种, 变量没有赋初值时,其值为不确定。 56.假定a 为一个二维数组,则a[i][j]的指针访问方式为 。 57.假定一个结构类型的定以为“struct D{long a;union {int b;double c;};D *d[2];};”则该类型的大小为 字节。 58.p 是指向 int 型变量x的指针变量,其定义语句表示为 。 59.假定p 是一个指向整型一维数组的指针变量,在取出p 所指的元素值后p 自动指向下一个元素的表达式为 。 60.将f=i+5; i=i+1; 用一个赋值语句表示出来为 。 三、给出下列程序运行后的输出结果 (1) #include \ void main() {int s=0; for(i=0;;i++) { if(s>50) break; if(i%2= =0) s+=i;} cout<<”i,s=”< (2) #include void main() {char a[]=?abcdabcabefacd”; int i1=0,i2=0,i=0; while (a[i]){ if(a[i]= =?a?) i1++; if(a[i]= =?b?) i2++; 10 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《C++语言程序设计》综合练习与期末复习题(2)在线全文阅读。
相关推荐: