一、 填空题
1、C++预言中的每条基本语句以____;_____作为结束符,每条复合语句以_____}____作为
结束符。
2、用于输出表达式值的标准输出流对象是___cout______,用于从键盘上为变量输入值的标
准输入流对象__cin____。
3、当不需要函数返回值时,则应把该函数类型定义为__void___。
4、执行”cout<<143<<’+’<<18<<’=’<<143+18< 5、执行”coun<<”ning”<<”chen”<<38< 展名为.obj 由C++目标文件连接而成的可执行文件的缺省扩展名为 .exe 。 8、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 或 符号作 为分隔符。 9、十进制数25表示成符合C++八进制和十六进制数分别为 和 。 10、在C++语言中,用转义字符序列 或操纵符 表示输出一个换行符。 11、执行”cout< 14、已知’A’~’Z’的ASCII码为65~90,当执行”char ch=16*5+2;cout< 16、假定一个枚举型的定义为”enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为 。 17、char、short和int类型的大小分别为 、 和 。 18、float和double类型的大小分别为 和 。 19、十进制数128和-3.26的类型分别为 和 。 20、若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使 用保留字 。 21、使用const语句定义一个标识符常量时,则必须对它同时进行 。 22、执行”int x=45,y=16;cont< xy2xy22对应的C++表达式为 。 25、算术表达式 xy23a+4b-1对应的C++表达式为 。 26、表达式float(25)/4和int(14.6)%5的值分别为 和 。 27、表达式a=a+b表示成复合赋值表达式为 。 28、表达式a=a+1表示成增量表达式为 。 29、增量表达式++y表示成赋值表达式为 。 30、关系表达式(x= =0)的等价表达式为 。 31、关系表达式(x!=0)的等价表达式为 。 32、关系表达式x+y>z的相反表达式为 。 33、逻辑表达式x>5 && x<10的相反表达式为 。 34、逻辑表达式a>b || b= =5的相反表达式为 。 35、若x=15,y=40,则x>y和x<=y的逻辑值分别为 和 。 36、假定x=5,则执行”a=(x? 10:4*2);”语句后a的值为 。 37、假定a=5,则条件表达式”a= =0?10:20”的值为 。 38、执行”typedef DataType;”语句后,在使用int定义整型变量的地方都可以使用 来定义整型变量。 39、设x和y均为bool量,则x && y 为真的条件是 。 40、设x和y均为bool量,则x || y 为假的条件是 。 1. 假定一个一维数组的定义为“char * a[5];”,则该数组所含元素的个数为_____,所占存 储空间的字节数为______。 2. 假定一个二维数组的定义为“int a[4][6];”,则该数组所含元素的个数为_____,所占存 储空间的字节数为______。 3. 假定一个二维数组的定义为“char a[8][8];”,则该数组所含元素的个数为_____,所占存 储空间的字节数为______。 4. 执行“type float ABC[10];”语句把ABC定义为具有10个单精度元素的______。 5. 在函数外定义的变量称为______变量,若没有被初始化则系统隐含对它赋初值_____。 6. 函数中的形参变量的初值由_____该函数时获得。 7. 函数调用时,实参向形参的传送分为____和____两种传送方式。 8. 变量分为全局和局部两种,_______变量没有赋初值时,其值是不确定的。 1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为 。 2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为 。 3、假定p所指对象的值为25,p+1所指对象的值为50,则执行”(*p)++;”语句后,p所 指对象的值为 。 4、假定p所指对象的值为25,p+1所指对象的值为50,则执行”*(p++);”语句后,p所 指对象的值为 。 5、假定a是一个指针数组,则a+I所指对象的地址比a地址大 字节。 6、假定a是一个一维数组,则a [i]的指针访问方式为 。 7、假定a是一个二维数组,则a[i][j]的指针访问方式为 。 8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为 。 9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为 。 10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 。 11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大 字节。 12、假定a为一个字符数组名,则元素a[8]的字节地址为 。 13、假定a为一个整型数组名,则元素a[4]的字节地址为 。 14、假定一个结构类型的定义为”struct A{int a, b;short c;A * d;};”,则该类型的大小为 字节。 15、假定一个结构类型的定义为”struct B{int a[8];char*b;};”,则该类型的大小为 字节。 16、假定一个结构类型的定义为”struct D{int a;union{int b;double c;};D*d[3];};”, 则该类型的大小为 字节。 17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r 指向这个动态数组, 则使用的语句为 。 18、假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为 。 19、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 。 1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的 使其初始化。 2、当一个类对象被撤消时将自动调用该类的 。 3、对基类数据成员的初始化是通过执行派生类构造函数中的 来实现的。 4、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数 中的 实现。 5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先 ,后 ,最后为 。 6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成 的析构函数定义体 的执行,接着完成 的析构函数定义体的执行,最后完成 的析构函数定义体的执行。 7、设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类 的 。 8、当一个类对象离开它的作用域时,系统将自动调用该类的 。 9、假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数 为 。 10、假定AB为一个类,则执行”AB a[10];”语句时,系统自动调用该类构造函数的次数为 。 11、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数 为 。 12、假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数 为 。 13、若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加 入一条语句: 。 14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语 句: 。 15、假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所 使用的语句为 。 16、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb 的写法为 。 17、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长 度为 。 18、假定AB为一个类,则该类的拷贝构造函数的声明语句为 。 19、对类对象成员的初始化是通过执行构造函数中的 完成的。 20、对于类中定义的成员,其隐含访问权限为 ,对于结构中定义的成员,其隐含访问 权限为 。 21、一个类的友元函数或友元类能够通过成员操作符访问该类的 。 22、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相 加结果,则该成员函数的声明语句为: 。 23、在C++流类库中,根基类为 。 24、在C++流类库中,输入流类和输出流类的名称分别为 和 。 25、若要在程序文件中进行标准输入输出操作,则必须在开始的#inlude命令中使用 头文件。 26、若要在程序文件中进行文件输入输出操作,则必须在开始的#inlude命令中使用 头文件。 27、当从字符文件中读取回车和换行两个字符时,被系统看作为一个 。 28、当使用ifsream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式 为 ,当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 。 29、当需要使用istrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用# include命令,使之包含 文件。 二、选择题 (1)已知下列语句中的x和y都是int型变量,其中不正确的语句是[ ] A)y+=++x; B)++x+=y; C)y=x++; D)x++=y; (2)若x是一个bool型变量,y是一个值为100的int型变量,则表达式 !x && y>0 的值[ ]。 A) 为true B) 为false C) 与x的值相同 D) 与x的值相反 (3)执行语句序列 int n; cin>>n; switch(n){ case 1: case 2: cout<<'X'; case 3: case 4: cout<<'Y'; break; default:cout<<'Z'; } 时,不可能出现的情况是[ ]。 A)显示:X B)显示:Y C)显示:Z D)显示:XY (4)执行语句序列 int x; cin>>x; if(x>250) cout<<'X'; if(x<250) cout<<'Y'; else cout<<'X'; 时,不可能出现的情况是[ ]。 A) 显示:X B) 显示:Y C) 显示:XY D) 显示:XX (5)要定义一个具有5个元素的一维数组,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中不正确的是[ ]。 A) int vect[]={30,50,-88}; B) int vect[]={30,50,-88,0,0}; C) int vect[5]={30,50,-88}; D) int vect[5]={30,50,-88,0,0}; (6)已知某应用系统中已经定义了函数fun,其原形是 int fun(char ='A'); 则下列函数中,可以在同一系统中加以重载的是[ ]。 A) int fun(); B) int fun(char); C) int fun(char,int); D) int fun(char,double=0.0); (7)若指针p定义为 const char *p=\"Luchy!\"; 则[ ]。 A) p所指向的数据不可改变,p在定义时可以不初始化。 B) p所指向的数据不可改变,p在定义时必须初始化。 C) p本身不可改变,p在定义时可以不初始化。 D) p本身不可改变,p在定义时必须初始化。 (8)已知数组A和指针p定义为:int A[20][10],*p;,要使p指向A的首元素,正确的赋值表达式是[ ]。 A) p=&A 或 p=A[0][0] B) p=A 或 p=&A[0][0] C) p=&A[0] 或 p=A[0][0] D) p=A[0] 或 p=&A[0][0] (9)已知函数func的原形是 double func(double *pd,int &ri); 变量x和y的定义是 double x; int y; 把x和y分别作为第一参数和第二参数来调用函数func,正确的调用语句是[ ]。 A) func(x,&y); B) func(&x,y); C) func(&x,&y); D) func(x,y); (11)要使字符串变量str具有初值\"Lucky\",正确的定义语句是[ ]。 A) char str[]={'L','u','c','k','y'}; B) char str[5]={'L','u','c','k','y'}; C) char str []=\"Lucky\"; D) char str [5]=\"Lucky\"; (12)已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是[ ]。 A) int MAT[][10] B) int MAT[3][] C) int MAT[10][3] D) int MAT[][] (13)若指针p定义为 char * const p=\"Luchy!\"; 则[ ]。 A) p所指向的数据不可改变,p在定义时可以不初始化。 B) p所指向的数据不可改变,p在定义时必须初始化。 C) p本身不可改变,p在定义时可以不初始化。 D) p本身不可改变,p在定义时必须初始化。 (14)在下列表达式中,与下标引用A[i][j]不等效的是[ ]。 A) *(A+i+j) B) *(A[i]+j) C) *(*(A+i)+j) D) (*(A+i))[j] (15)要使语句p=new double[20];能够正常执行,变量p应定义为[ ]。 A) double p[20]; B) double p; C) double (*p)[20]; D) double *p; (16)执行下列语句序列 struct AA{ int ival; char cval;}; struct BB{ int ival; AA ra;}; struct CC{ int ival; AA ra; BB rb;}; CC rc={66,{rc.ival+1,rc.ra.ival+1},{69,{70,71}}}; cout< (17)类的默认的无参构造函数[ ]。 A) 在任何情况下都存在 B) 仅当未定义无参构造函数时存在 C) 仅当未定义有参构造函数时存在 D) 仅当未定义任何构造函数时存在 (18)语句ofstream f(\"SALARY.DAT\的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[ ]。 A) 若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。 B) 若文件存在,将其截为空文件;若文件不存在,打开失败。 C) 若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。 D) 若文件存在,打开失败;若文件不存在,建立一个新文件。 (19) 执行下列语句序列 struct AA{ int ival; char cval;}; struct BB{ int ival; AA ra;}; struct CC{ int ival; AA *ra; BB rb;}; CC rc={66,new AA,{69,{70,71}}}; rc.ra->ival=rc.ival+1; rc.ra->cval=rc.ra->ival+1; cout< A) 在任何情况下都存在 B) 仅当未定义拷贝构造函数时存在 C) 仅当未定义有参构造函数时存在 D) 仅当未定义任何构造函数时存在 (21)语句ofstream f(\"SALARY.DAT\的功能是建立流对象f,并试图打开文件SALARY.DAT并与之连接,而且[ ]。 A) 若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。 B) 若文件存在,将其截为空文件;若文件不存在,打开失败。 C) 若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。 D) 若文件存在,打开失败;若文件不存在,建立一个新文件。 22. 由C++目标文件连接而成的可执行文件的缺省扩展名为_______。 A cpp B exe C obj D lik 23. 在下面的一维数组定义中,哪一个有语法错误。________ A int a[]={1,2,3}; B int a[10]={0}; C int a[]; D int a[5]; 24. 在下面的函数声明中,存在着语法错误的是__D_____。 A void BC(int a, int); B void BD(int, int); C void BE(int, int=5); D int BF(int x; int y); 25. 假定AB为一个类,则该类的拷贝构造函数的声明语句为_______。 A AB&(AB x); B AB(AB x) C AB(AB&); D AB(AB* x) 26. 对于结构中定义的成员,其隐含访问权限为________。 A public B protected C private D static 27.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方 式为_______。 A ios::in B ios::out C ios::in | ios::out D 没有 28、设a和b均为bool型变量,则a||b为假的条件是( ) A)它们均为真 B)其中一个为真 C)其中一个为假 D)它们均为假 29、声明或定义一个内联函数时,必须在函数开始使用保留字( ) A)static B) const C) inline D) extern 30、当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( ) A) n-2 B) n-1 C) n D) n+1 31、对于类中定义的成员,其隐含访问权限为( ) A) static B) public C) protected D) private 32、当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( ) A) ios::in B) ios::out C) ios::in|ios::out D) ios::binary 33、下面的函数声明中,哪一个”void BC(int a,int b);”是的重载函数? A) int BC(int a,int b) B)void BC(int a,char b) C)float BC(int a,int b,int c=0) D)void BC(int a,int b=0) 34、假定a为一个数组名,则下列的哪一种表示有错误( ) A)a[i] B)*a++ C)*a D)*(a+1) 35、假定AB为一个类,px为指向该类动态对象数组的指针,该数组的长度为n,则执行”delete []px;”语句时,自动调用该类的析构函数的次数为( ) A)0 B) 1 C) n D) n+1 三、写出下列程序运后的输出结果 1. #include void main(){ char a1='b',a2='C',a3='f'; SB(a1);SB(a2);SB('A'); cout< #include double SD(int a,int b,char op){ double x; switch(op){ case '+':x=double(a)+b;break; case '-':x=double(a)-b;break; case '*':x=double(a)*b;break; case '/': if (b) x=double(a)/b; else exit(1); break; default:exit(1); } return x; } void main(){ int x=20,y=12; cout< void main(){ int s=0; for(int i=1;i<6;i++) s+=i*i; cout<<\"s=\"< #include void main(){ int a[10]={12,39,26,41,55,63,72,40,83,95}; int i0=0,i1=0,i2=0; for(int i=0;i<10;i++) switch(a[i]%3){ case 0:i0++;break; case 1:i1++;break; case 2:i2++; } cout< void main(){ char * a[5]={\"student\ char *p1,*p2; p1=p2=a[0]; for(int i=0;i<5;i++){ if(strcmp(a[i],p1)>0) p1=a[i]; if(strcmp(a[i],p2)<0) p2=a[i]; } cout< void main(){ int a[8]={36,73,48,14,55,40,32,66}; int b1,b2; b1=b2=a[0]; for(int i=1;i<8;i++) if(a[i]>b1){ if(b1>b2)b2=b1; b1=a[i]; } cout< void main(){ char a[]=\"aabcdaabacabfgacd\"; int i1=0,i2=0,i=0; while(a[i]){ if(a[i]=='a')i1++; if(a[i]=='b')i2++; i++; } cout< #include int a[8]={7,9,11,13,3,8,15,17}; int *p=a; for(int i=0;i<8;i++){ cout< # include void main(){ int *d=new int[5]; int i; for(i=0;i<5;i++){ d[i]=2*i+3; cout< # include void main(){ int *d=new int[5]; int i; for(i=0;i<5;i++){ d[i]=2*i+3; cout< void main(){ Worker x; char *t=\"liouting\"; int d=46;float f=725; strcpy(x.name,t); x.age=d;x.pay=f; cout< #include 答案: Constructor!0 Constructor!7 3. #include A *p=new A(5); delete p; } 4. #include #include #include #include #include case'+':return a+b; case'-':return a-b; case'*':return a*b; case'/':if(b!=0)return a/b;else exit(1); case'%':if(b!=0)return a%b;else exit(1); default:exit(1); } } void SetA(int aa,int bb,char ch){ a=aa;b=bb;op=ch; } }; void main(void){ A x(3,5,'*'); int a=x.Comp(); x.SetA(4,9,'+'); a+=x.Comp(); x.SetA(13,8,'%'); a+=x.Comp(); cout<<\"a=\"<#include z1.OutB();z2.OutB(); } 10. #include void main(){ FF 1、 从键盘输入三个数,输出其中较大数。 #include int a,b,c,d; cout<<”Input three numbers:”< int i,j,avr; int sum=0; int a[10000]; for{i=0;i<10000;i++} a[i]=0; cout<<”Input some numbers:”< sum=sum+a[j]; if(a[j]!=0) j++; } avr=sum/j; cout<<”average number is:”< int i,sum=0; for(i=1;i<=100;i++) { sum=sum+i; } cout<<” 1+2+3+4+„+100”<<”=”< int a[1000]b[1000]; cout<<”Input some strings:” < if(a[i][j]!=”/0”) i++; } ofstream os(”A:STR.TXT”); os.write((char *) a,sizeof(a)); } #include
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务