您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页C++试卷

C++试卷

来源:飒榕旅游知识分享网
( 密 封 线 内 不 答 题 ) …………………………………………………密………………………………………………封………………………………………线…………………………………… 学院 专业 座位号 诚信应考,考试作弊将带来严重后果!

华南理工大学期末考试

《C++程序设计》试卷

注意事项:1. 考前请将密封线内填写清楚; 2. 所有答案请答在试卷的答案栏上; 3.考试形式:闭卷;

4. 本试卷共 五 大题,满分100分, 考试时间120分钟。 题 号 一 得 分 评卷人 二 三 四 五 总分 一、 单项选择题:(每小题2分,共20分)

1. 一个C++程序从编写源程序到得到运行结果要经历的四个步骤是( )。 A)编译、编辑、连接、运行

B)编辑、编译、汇编、运行 C)编辑、编译、连接、运行 D)编译、连接、汇编、运行

2. 下列选项中,哪个是C++语言的合法变量名( )?

A) file.cpp B) _123 C)9abc D) new

3. 对于语句序列:int x=5,y=6,z; float a=2.5; z=y/x+y/a+a; 执行后z的值为( )。

A) 5 B) 6 C) 6.1 D) 5.9

4. 以下选项中可作为C语言合法常量的是( )。 A)-8e1.0 B)-080 C)-80. D)-80.0e

5. 设有int a=1,b=2,c=3,d=4; 则条件表达式a6. 以下程序的运行结果是( )。

int main()

_____________ ________ 姓名 学号 { unsigned short a=65535; short b; b=a; cout<A) -32768

B) 32767

C) 65535

D) -1

)。

7. 设有定义语句: int a[6] = {2,4,6,8,5,7}, *p = a, i ;

要求依次输出a数组6个元素的值,不能完成此操作的语句是(

- 1 -

A) for(i=0;i<6;i++)cout<<*(p++)<B) for(i=0;i<6;i++) cout<<*(p+i)<8. 设有定义语句:char a[10], *p=a; 以下赋值语句中,正确的是( )。

A) a="hello"; B) a[10]= "hello"; C) strcpy(a, "hello"); D) *p="hello"; 9. 下列带有默认参数的函数原型声明中,正确的是( )。

A) float fun(int a=5 , int b=5, int c, int d); B) float fun(int a=5, int b=5, int c, int d=5); C) float fun(int a=5, int b , int c , int d ); D) float fun(int a ,int b , int c=5, int d=5);

10. 设有定义语句:struct point{ int x; int y; } v1; 则以下语句中正确的是( )。 A) point.x=10; B) point v2; v2.x=10; C) struct v2; v2.x=10; D) v1 v2; v2.x=10; 答案栏:

1、____ 2、____ 3、____ 4、____5、____ 6、____7、___ 8、____9、___ 10、____

二、程序填空题(每空2分,共20分)

答案栏:

1、___________________________________ 2、___________________________________

3、___________________________________ 4、__________;___________;____________;_

5、__________________;_______________;_ 6、___________________________________

7、___________________________________ 8、___________________________________

9、___________________________________ 10、___________________________________

1、以下函数的功能是:用递归法将一个整数n转换成字符串。例如:输入整数1635,应输出字符串\"1635\"。n的位数不确定,可以是任意位数的整数。请填空。

void fun(int n)

{ if(n<10) 【1】 //递归出口 else { 【2】 //递归体 putchar(n%10+48); }

}

- 2 -

2、以下程序的功能是:用起泡法对6个整数排序(按从小到大顺序)。请填空。

#include using namespace std; void main( ) {

int a[6], i, j, t; for(i=0; i<6; i++) cin>>a[i]; for(j=0; j<5; j++) for(i=0; 【3】 ; i++) if(a[i]>a[i+1]) { 【4】 //交换两个数的位置,使小数上浮

}

for(i=0; i<6; i++) cout<}

3、以下程序的功能是:定义一个结构体类型,内含学生学号和一门课的成绩,并开辟动态内存存放一个学生的数据:学号1001,成绩90。执行该程序后运行结果如下:

1001, 90↙

请填空。

#include using namespace std; struct Student {

int n; //学号 double s; //成绩 };

void main( ) { Student *p; p=new Student; 【5】 //赋值 【6】 //输出 delete p;

}

4、以下程序的功能是:执行该程序后运行结果如下:

43↙

请填空。

- 3 -

#include using namespace std;

void f1( 【7】 ) {

x=x+2; y=y+2; }

void main( ) { int a=2, b=3; f1(a,b); cout<5、以下程序的功能是:输出二维数组各元素值。请填空。

#include using namespace std; void main( ) { void output(int (*)[3]); int a[2][3]={1, 2, 3, 4, 5, 6}; output( 【8】 );

}

void output( int (*p)[3] ) { int i, j;

for(i=0; i<2; i++) { for(j=0; j<3; j++) cout<< 【9】 <<\" \"; cout<}

6、以下函数的功能是:判断一个数是否为素数。请填空。

bool prime(int m) { int i; bool prime1; prime1=true; for(i=2; i<=sqrt(m); i++) if(m%i==0) 【10】 return prime1;

}

- 4 -

三、阅读程序,写出运行结果。(每小题3分,共24分)

答案栏:

1、_____________________________ 2、_____________________________

3、_____________________________ 4、_____________________________

5、_____________________________ 6、_____________________________

7、_____________________________ 8、_____________________________

1、#include

using namespace std; void main( ) { int i=3, j=6, m, n; m=i++ - ++j; n=++i+j--; cout<}

2、#include

using namespace std; void main( ) {

double x=-0.5, y; if(x<1)

if(x<-1)y=x+1; else if(x>0)y=x+2; else y=x+4; else y=x+5; cout<<\"x=\"<}

3、#include

using namespace std;

void main( ) {

int x=2, y=1; while(x<4) switch(x++) {

- 5 -

case 3: y++; case 1: y+=3;break; case 2: y--; } cout<4、

#include using namespace std; void p(float f) { cout<<\"float\"<}

void p(double d) { cout<<\"double\"<}

void p(int i) { cout<<\"int\"<}

void main() {

p(2); p('A');

p(2.1); }

5. #include using namespace std; int x, y;

void fun(int a) { int y , b;

b=a+2; x=x+a; y=x-b;

cout<int main( ) { int a=1, b=2;

x=3, y=4; fun(b);

cout<- 6 -

6. #include

using namespace std; int f(int a) { int b=0;

static int c=3; b++; c++; return (a+b+c); }

int main( )

{ for (int i=0; i<3; i++) cout<7. #include

using namespace std; int main( )

{ char ch[ ]=\"STUDY\" ;

cout<8. #include

using namespace std; int main( )

{ int a=12, b=34, *p, *q, *r; p=&a; q=&b;

if (*p<*q) { r=p; p=q; q=r; } cout<<*p<<\" \"<<*q<cout<四、简答题(每小题4分,共12分)

1. 试分析字符串常量 \"abc\\n\\\\efg\\101\" 由哪几个字符构成?该字符串占用多少个字节?

若用 cout<<\"abc\\n\\\\efg\\101\" ; 会看到的输出结果是什么?

- 7 -

2. 若有如下定义: union ctype { float y;

short int m; char code[3]; };

ctype cdat;

试画出变量cdat的内存构造图(示意图),并指出该变量占用内存的字节数。

3. 下面程序有错误: #include using namespace std; void fun(int a[ ] )

{ for (int i=0; i<5; i++)

cout<<*a++<<\" \"; // (1) cout<int main( )

{ int a[5]={10,20,30,40,50}; for (int i=0; i<5; i++)

cout<<*a++<<\" \"; // (2) cout<return 0; }

源程序中(1)和(2)之处写法一样,但编译时(2)处出错而(1)处正确,试指出原因,并将(2)处改正。

- 8 -

五、程序设计题(每小题8分,共24分)

1. 设计程序输出数列{An}的前50个数,输出时要求每行输出5个数。数列有下列规律:

A11,A20.5,An1

An(An11) n(An1 2)2. 众数是指一组数据中出现次数最多的那个数据。例如:{1,2,2,3,3,2,,4}的众数是2。试设计一个求众数的函数mode,其形式参数有2个:数组(该数组存放一组数据)、数据个数。函数的返回值是众数。在主函数中输入一组数据存放在数组中,然后调用函数mode求得众数,最后在主函数中显示出众数。

- 9 -

3. 需要求2个不同的圆柱体的表面积,设计一个面向对象的程序。数据成员包括:radius(半径),height(高);还可根据需要定义其它数据成员。要求分别用成员函数实现以下功能:

(1) 由键盘输入圆柱体的半径、高; (2) 计算圆柱体的表面积; (3) 输出圆柱体的表面积。 请编写程序。

- 10 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务