……… …… … … … …号…位…座… … … 线 … … … … … … …级…班…业…专… … … … …) 题封 … 答… 不… 院内…学 线… … 封… 密… (… … … … … … … … … … 号密学… … … … … … … … …名…姓……………… …诚信应考,考试作弊将带来严重后果!
华南理工大学本科生期末考试
《C++程序设计基础》 A卷
注意事项:1. 开考前请将密封线内各项信息填写清楚; 2. 所有答案请直接答在答题纸上,否则无效; 3. 试卷和答题纸同时提交; 4.考试形式:闭卷;
5. 本试卷共 四大题,满分100分, 考试时间120分钟。
一、 单项选择题,请将正确的选项涂写在答题纸相应位置上。(共20小题,每小题
1分,共20分)
1. 下列符号在计算当中不是分隔符的是( )。
A. ; B. [] C. () D. {} 2. int a = 4;对下面四个表达式的值说法正确的是( )。
(1) a += (a++); (2) a += (++a); (3) (a++) += a; (4) (++a) += (a++); A.9、10、10、11 B.(3)式错误 C.(4)式错误 D.(3)(4)都错误 3. 下列程序段执行后的输出结果是( )。
int i=3; i=(++i)+(++i)+(++i);cout<
A. 9 B. 12 C. 15 D. 18
4. 设以下变量都是int类型,则值不等于7的表达式是( ) 。
A.x=y=6,x+y,x+1 B.x=y=6,x+y,y+1 C.x=6,x+1,y=6,x+y D.y=6,y+1,x=y,x+1
5. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a
的值是( )。
A.1 B.2 C.3 D.4
6. 设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值
分别是( )。
A. 0,0 B.0,1 C.1,0 D.1,1 7. 执行以下程序段后,变量i 的值为( )。
int i=2; switch (i)
{ case 1:i+=i++; case 2:i+=i++; case 3:i++; break; default : i++; break; }
A. 4 B. 5 C. 6 D. 7 8. 下面语句构成死循环的是( )。
A. for(i=0; i<10; i++) cout << i < C. i=10; do { cout << i-- < 《C++程序设计基础》试卷第 1 页 共 8 页 _____________ ________ for(int i=0; i A. n/2 B. n/2+1 C. n/2-1 D. n-1 10. x=0; for( i=0; i<99; i++) if(i) x++; 执行完程序段后,x的值是( )。 A. 0 B. 30 C. 98 D. 90 11. 假定变量a和pa定义为“double a[10], *pa=a;”,要将3.14赋值给a中的下标 为5的元素,不正确的语句是( )。 A. pa[5]=3.14; B. a[5]= 3.14; C. *(pa+5)= 3.14; D. *(a[0]+5)= 3.14; 12. 下列程序的输出结果是( )。 #include {int n[][3]={10,20,30,40,50,60}; int (*p)[3]; p=n; cout< A. 10,30,50 B. 10,20,30 C. 20,40,60 D. 10,30,60 13. 以下程序的输出结果是( )。 #include { char w[][10]={\for(k=1;k<3;k++) cout<< w[k]; return 0; } A. ABCDEFGH B. EFGHIFKL C. ABCD EFGH IJKL D. EFGH IFKL MNOP 14. 设有说明 char s[]=\则cout< cout< A.abc\\ 5 6 B.abc\\ 4 5 C.abc\\n 5 6 D.abc\\n 4 5 15. 以下对C++ 函数的有关描述中,正确的是( ) 。 A. C++调用函数时,只能把实参的值传给形参,形参的值不能传递给实参 B. C++函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C++程序中有调用关系的所有函数必须放在同一源程序文件中 16. 下列函数说明及变量定义,各自独立编译时产生错误信息的是( )。 int fun1 (int a, int x); void fun2 (int a, int x); void fun3(int a[], int n); void fun4(int *p, int n); int a=5, b=10, c[5]={0}; float x=1.5; A. fun2(fun1(a,b),a); B. fun1(x,a); C. fun3(c[4],5); D.fun4(c,5); 17. 以下程序的输出结果是( ) 。 int func(int a,int b) { return a+b;} int main( ) { int x=6,y=7,r; r=func(func(x++,y++),y++); cout< 《C++程序设计基础》试卷第 2 页 共 8 页 A. 20 B. 21 C. 22 D. 23 18. 有声明 int fun6( int ); int (?pf)(int) = fun6; 在下列选项中,正确的调用是( )。 A. int a=15; int n=fun6(&a); B. int a = 15; cout<<(&pf)(a); C. cout<<(?pf)( 256 ); D. cout << ?pf( 256 ); 19. 下列程序段执行后a与b的值分别为( )。 int a=110, b=101; a=a^b; b=a^b; a=a^b; A. 110 101 B. 6 5 C. 5 6 D. 101 110 20. 有如下说明语句: struct point {int x; int y;}p; 则正确的赋值语句是( )。 A.point.x=1; point.y=2; B. point={1,2}; C. p.x=1; p.y=2; D. 二、 写出下列程序的执行结果。(共6小题,每小题5分,共30分)1. #include if (n == 0 || n == 1) return 1; else { p = 2 * f(n-1) + f(n-2); return p;} } int main() { cout << f(4); cout << endl; return 0; } 2. #include { cout << func1() << endl ; cout << func2() << endl ; } int func1() { static int a = 0 ; 《C++程序设计基础》试卷第 3 页 共 8 页 p={1,2}; static int b = 1 ; a ++ ; b ++ ; cout << a << '\\t' ; cout << b << '\\t' ; return a + b ; } int func2() { static int a = 0 ; static int b = 1 ; a ++ ; b ++ ; cout << a << '\\t' ; cout << b << '\\t'; return a + b ; } 3. #include int i,t; int num[100]; for(i=0,t=n;t!=0;i++) { num[i]=t%3; t=t/3; } if(0==n) cout< cout< cout< int main() { Three(20); } 4. #include 《C++程序设计基础》试卷第 4 页 共 8 页 int main() { int i, s = 0; for( i=0; i<5; i++ ) switch( i ) { case 0: s += i; break; case 1: s += i; break; case 2: s += i; default: s += 2; } cout<<\} 5. #include void f( const int*, int, int ); int main() { int a[][3] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; f( *a, 3, 3 ); } void f( const int* a, int row, int col ) { int i, j; for( i=row-1; i>=0; i-- ) for( j=0; j cout<<*(a+i*col+j); cout< #include int i; if(w!=0) { print(w-1); for(i=1;i<=w;i++) cout< void main() { 《C++程序设计基础》试卷第 5 页 共 8 页