自检自测二及答案
一、单选题(每小题2分,共20分)
1.下列变量名中,( )是合法的。
A.CHINA B.byte-size C.double D.A+a 2.循环while(int i=0) i--;执行次数是( )。
A.0 B.1 C.5 D.无限
3.设void f1(int * m,long & n);int a;long b;则以下调用合法的是( )。
A.f1(a,b); B.f1(&a,b); C.f1(a,&b); D.f1(&a,&b); 4. 以下错误的描述是( )。
A. 被调用函数中可以不用return语句 B. 被调用函数中可以用多个return语句
C. 被调用函数中,如果有返回值,就一定要有return语句 D. 被调用函数中,一个return语句可返回多个值给调用函数 5. 将两个字符串连接起来组成一个字符串时,选用( )函数。 A. strlen() B. strcap() C. strcat() D. strcmp() 6. 预处理命令在程序中都是以( )符号开头的。
A. * B. # C. & D. @
7. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。
A. int *p=new a[10]; B. int *p=new float[10]; C. int *p=new int[10]; D. int *p=new int[10]={1,2,3,4,5} 8. 下列给字符数组赋初值时,正确的是( )。
A. char s1[]=”abcdef”; B. char s2[4]=”abcd”; C.
char
s3[2][3]={“abc”,”xyz”};
D.
char
s4[4][]={‘a’,’x’,’s’,’t’};
9. 假定一条定义语句为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。
A. x=pa[3]; B. x=*(a+3); C. x=a[3]; D. x=*pa+3;
10. 假定指针变量p定义为“int *p=new int[30];”,要释放p所指向的动态内存,应使用语句( )。
A. delete p; B. delete *p; C. delete &p; D. delete []p;
二、填空题(每小题2分,共30分)
1.C++目标程序经___________后生成扩展名为exe的可执行程序文件。
2.执行if (x>=0||x<=0) cout<<\;else cout<<\;屏幕上显示的是______________。 3. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是整型_______。 4. 在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。 5. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。
6. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。 7. 元素类型为double的二维数组a[4][6]共占用________字节的存储空间。 8. 字符串”\\’a\\’xy=4\\n”的长度为________。
9. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。
10. 重载一个函数的条件是:该函数必须在参数的个数或参数的__________上与其它同名函数有所不同。
11. 定义一个函数模板要用到的第一个修饰符是____________。 12. 在函数模板的参数中,用class修饰的参数称为__________参数。
13. 若有定义“struct AA {int a; char b; double c;}x;”,则x占用空间大小为________字节。
14. 假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为________。
三、给出下列程序运行后的输出结果(每小题5分,共20分)
1.#include
int a[10]={2,4,6,8,10,12,14,16,18,20}; for(int i=0;i<10;i++){ cout< } 2. #include int p=1,s=1; while(s<50) { p*=B; s+=p; } cout<<\ } 3. #include x=x+y; y=x+y; cout<<\ return x+y; } void main() { int x=5,y=8; int z=f1(x,y); cout<<\ cout<<\ } 4. #include char a[]=\ int i1=0, i2=0, i=0; while(a[i]) { if(a[i]==’a’) i1++; if(a[i]==’b’) i2++; i++; } cout< } 四、写出下列每个函数的功能(每小题5分,共20分) 1. void f2(double a[], int n) {