最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

山东开放大学C++语言程序设计期末考试复习题及参考答案

IT圈 admin 71浏览 0评论

2024年6月15日发(作者:禽沛岚)

C++语言程序设计期末考试复习题

注:找到所考试题直接看该试题所有题目和答案即可。

查找按键:Ctrl+F 超越高度

一、单选题

1、循环语句“for(int i=0; i

A、1

B、n-1

C、n

D、n+1

正确答案:C

2、适宜采用inline定义函数情况是( )。

A、函数体含有循环语句

B、函数体含有递归语句

C、函数代码少、频繁调用

D、函数代码多、不常调用

正确答案:C

3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

A、const char *p=“ABCD”;

B、char *const p=“ABCD”;

C、char const *p=“ABCD”;

D、const char * const p=“ABCD”;

正确答案:D

4、在关键字public后面定义的成员为类的( )成员。

A、私有

B、公用

C、保护

D、任何

正确答案:B

5、C++源程序文件的缺省扩展名为( )。

A、cpp

B、exe

C、obj

D、lik

正确答案:A

6、设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为( )。

A、12

B、144

C、156

D、288

正确答案:C

7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

( )。

A、ios::in

B、ios::out

C、ios::in | ios::out

D、ios::binary

正确答案:A

8、下列不能作为类的成员的是( )。

A、自身类对象的指针

B、自身类对象

C、自身类对象的引用

D、另一个类的对象

正确答案:B

9、在下面的do循环语句中,其循环体被执行的次数为( )。

A、4

B、3

C、5

D、2

正确答案:A

10、若用数组名作为函数调用的实参,传递给形参的是( )。

A、数组的首地址

B、数组中第一个元素的值

C、数组全部元素的值

D、数组元素的个数

正确答案:A

11、枚举类型中的每个枚举常量的值都是一个( )。

A、整数

B、浮点数

C、字符

D、逻辑值

正确答案:A

12、下面正确的函数原型语句是( )。

A、int Function(void a);

B、void Function (int);

C、int Function(a);

D、void int(doub

正确答案:B

13、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

( )。

A、ios::in

B、ios::out

C、ios::in | ios::out

D、没有

正确答案:D

14、假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则不正确的语句为( )。

A、BOOK *x=new book;

B、BOOK x={"C++ Programming",27.0};

C、BOOK *x=new BOOK;

D、BOOK **x=&book;

正确答案:A

15、下面的( )函数头格式不正确。

A、AA(int a, int b)

B、AA(int a, int b=0)

C、AA(int a=0, int b=0)

D、AA(int a=0, int b)

正确答案:D

16、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(

A、main

B、MAIN

C、name

D、function

正确答案:A

17、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(

A、分隔符

B、空格或逗号

C、逗号或回车

D、逗号或分号

E、空格或回车

正确答案:D

18、C++程序的基本模块为( )。

A、表达式

B、标识符

C、语句

D、函数

正确答案:D

19、编写C++程序一般需经过的几个步骤依次是( )。

A、编辑、调试、编译、连接

B、编辑、编译、连接、运行

C、编译、调试、编辑、连接

D、编译、编辑、连接、运行

正确答案:B

20、预处理命令在程序中都是以( )字符开头的。

A、*

B、#

)。

)符号。

C、&

D、@

正确答案:B

21、循环体至少被执行一次的语句为( )语句。

A、for循环

B、while循环

C、do循环

D、任一种循环

正确答案:C

22、在下面的一维数组定义中,( )语句有语法错误。

A、int a[]={1,2,3};

B、int a[10]={0};

C、int a[];

D、int a[5];

正确答案:C

23、在下面的字符数组定义中,( )语句有语法错误。

A、char a[20]= ’ ’abcdefg’ ’;

B、char a[]=’ ’x+y=55. ’ ’;

C、char a[15]={’1’, ’2’};

D、char a[10]= ’5’;

正确答案:D

24、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为

( )。

A、2

B、4

C、6

D、8

正确答案:C

25、将两个字符串连接起来组成一个字符串时,选用( )函数。

A、strlen()

B、strcpy()

C、strcat()

D、strcmp()

正确答案:C

二、判断题

1、设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是

cout。

正确答案:正确

2、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。

正确答案:正确

3、C++语言中模板分为函数模板和类模板两种。

正确答案:正确

4、continue 语句只能出现在循环体中 。

正确答案:正确

5、循环是可以嵌套的,一个循环体内可以包含另一种循环语句。

正确答案:正确

6、为了减轻使用者的负担,与C 语言相比,C++语言中减少了一些运算符。

正确答案:错误

7、C++语言中标识符内的大小写字母是没有区别的。

正确答案:错误

8、C++语言中使用了新的注释符(//), C 语言中注释符(/* … */ )不能在C++语言中使用。

正确答案:错误

9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。

正确答案:错误

10、使用关键字class定义的类中默认的访问权限是私有(private)的。

正确答案:正确

11、预处理命令是在进行编译时首先执行的,然后再进行正常编译。

正确答案:正确

12、文件包含命令所包含的文件是不受限制的。

正确答案:错误

13、宏定义命令是以分号结束的。

正确答案:错误

14、条件语句不能作为多路分支语句。

正确答案:错误

15、for 循环是只有可以确定的循环次数时才可使用,否则不能用for 循环。

正确答案:错误

三、写出程序运行结果

1、#include

void main() {

int s1=0, s2=1;

for(int i=1; i<=6; i++) {s1+=i; s2*=i;}

cout<

}

正确答案:

21,720

2、 #include

#include

void main() {

char* a[5]={"student","worker","cadre","soldier","apen"};

char *p1;

p1=a[0];

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

if(strcmp(a[i], p1)>0) p1=a[i];

}

cout<

}

正确答案:

worker

3、#include

void main() {

int i=1,s=0;

while(s<20) {

if(i%2!=0) s+=i;

i++;

}

cout<

}

正确答案:

10,25

4、 #include

void main() {

int s=0;

for(int i=1;i<=8;i=+2)

s+=i*i;

cout<<"s="<

}

正确答案:

s=84

5、#include

void main() {

int a[10]={68,79,86,65,46,94,37,78,60,53};

int c=0;

for(int i=0;i<10;i++)

if(a[i]>=60) c++;

cout<<”c=”<

}

正确答案:

c=7

6、 #include

#include

struct Worker {

char name[15]; //姓名

int age; //年龄

float pay; //工资

};

void main() {

Worker x;

strcpy(, "WeiRong");

=45; =1235;

cout<<<<' '<<<<' '<<<

}

正确答案:

WeiRong 45 1235

四、写出函数功能

1、void LK(int a[], int n, int& m) {

float s=0;

int i;

for(i=0;i

s/=n;

m=0;

for(i=0;i=s) m++;

}

正确答案:

统计出数组a的前n个元素中大于等于其平均值的元素个数并由引用参数m带回。

2、int WC(int a[], int n, int k) {

int c=0;

for(int i=0;i

if(a[i]>=k) c++;

return c;

}

正确答案:

3、统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。

bool WB(int a[], int n, int x) {

for(int i=0;i

if(a[i]==x) return true;

return false;

}

正确答案:

从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。

4、double WA(int a[], int n) {

double s=0;

for(int i=0;i

return s/n;

}

正确答案:

求出数组a中n个元素的平均值并返回。

5、bool SG(int x) { //x为大于等于2的整数

int a=int(sqrt(x)); //sqrt(x)为求x的平方根

int i=2;

while(i<=a) {

if(x%i==0) break;

i++;

}

if(i>a) return true; else return false;

}

正确答案:

判断x是否为一个素数(或质数),若是则返回真,否则返回假。

6、bool WE(int a[], int b[], int n) {

for(int i=0;i

if(a[i]!=b[i]) break;

if(i==n) return true; return false;

}

正确答案:

判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回

假。

五、编程题

1、假定一个函数声明为“void AD(int a[], int n);”,要求把数组a中的n个元素值按相反的次

序仍保存在数组a中。请编写该函数。

正确答案:

void AD(int a[], int n)

{

for(i=0; i

int x=a[i]; a[i]=a[n-1-i]; a[n-1-i]=x;

}

}

2、假定一个函数声明为“int FF(int a[], int n);”,要求递归求出数组a中所有n个元素之积并

返回。请编写该函数。

正确答案:

int FF(int a[], int n)

{

if(n==1) return a[n-1];

else return a[n-1]*FF(a,n-1);

//或者if(n==0) return 1;

// else return a[n-1]*FF(a,n-1);

}

3、假定函数声明为“void Print(int a[], int n);”,在函数体中按下标从大到小的次序输出数组

a中的n个元素的值,并要求每行输出6个元素,当然最后一行可以不足6个。

正确答案:

void Print(int a[], int n)

{

int i,j=0;

for(i=n-1; i>=0; i--) {

cout<

if(++j%6==0) cout<

}

cout<

一、单选题

1、循环语句“for(int i=0; i

A、1

B、n-1

C、n

D、n+1

正确答案:

C

2、适宜采用inline定义函数情况是( )。

A、函数体含有循环语句

B、函数体含有递归语句

C、函数代码少、频繁调用

D、函数代码多、不常调用

正确答案:

C

3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

A、const char *p=“ABCD”;

B、char *const p=“ABCD”;

C、char const *p=“ABCD”;

D、const char * const p=“ABCD”;

正确答案:

D

4、在关键字public后面定义的成员为类的( )成员。

A、私有

B、公用

C、保护

D、任何

正确答案:

B

5、C++源程序文件的缺省扩展名为( )。

A、cpp

B、exe

C、obj

D、lik

正确答案:

A

6、设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为( )。

A、12

B、144

C、156

D、288

正确答案:

C

7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

( )。

A、ios::in

B、ios::out

C、ios::in | ios::out

D、ios::binary

正确答案:

A

2024年6月15日发(作者:禽沛岚)

C++语言程序设计期末考试复习题

注:找到所考试题直接看该试题所有题目和答案即可。

查找按键:Ctrl+F 超越高度

一、单选题

1、循环语句“for(int i=0; i

A、1

B、n-1

C、n

D、n+1

正确答案:C

2、适宜采用inline定义函数情况是( )。

A、函数体含有循环语句

B、函数体含有递归语句

C、函数代码少、频繁调用

D、函数代码多、不常调用

正确答案:C

3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

A、const char *p=“ABCD”;

B、char *const p=“ABCD”;

C、char const *p=“ABCD”;

D、const char * const p=“ABCD”;

正确答案:D

4、在关键字public后面定义的成员为类的( )成员。

A、私有

B、公用

C、保护

D、任何

正确答案:B

5、C++源程序文件的缺省扩展名为( )。

A、cpp

B、exe

C、obj

D、lik

正确答案:A

6、设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为( )。

A、12

B、144

C、156

D、288

正确答案:C

7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

( )。

A、ios::in

B、ios::out

C、ios::in | ios::out

D、ios::binary

正确答案:A

8、下列不能作为类的成员的是( )。

A、自身类对象的指针

B、自身类对象

C、自身类对象的引用

D、另一个类的对象

正确答案:B

9、在下面的do循环语句中,其循环体被执行的次数为( )。

A、4

B、3

C、5

D、2

正确答案:A

10、若用数组名作为函数调用的实参,传递给形参的是( )。

A、数组的首地址

B、数组中第一个元素的值

C、数组全部元素的值

D、数组元素的个数

正确答案:A

11、枚举类型中的每个枚举常量的值都是一个( )。

A、整数

B、浮点数

C、字符

D、逻辑值

正确答案:A

12、下面正确的函数原型语句是( )。

A、int Function(void a);

B、void Function (int);

C、int Function(a);

D、void int(doub

正确答案:B

13、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

( )。

A、ios::in

B、ios::out

C、ios::in | ios::out

D、没有

正确答案:D

14、假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则不正确的语句为( )。

A、BOOK *x=new book;

B、BOOK x={"C++ Programming",27.0};

C、BOOK *x=new BOOK;

D、BOOK **x=&book;

正确答案:A

15、下面的( )函数头格式不正确。

A、AA(int a, int b)

B、AA(int a, int b=0)

C、AA(int a=0, int b=0)

D、AA(int a=0, int b)

正确答案:D

16、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(

A、main

B、MAIN

C、name

D、function

正确答案:A

17、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(

A、分隔符

B、空格或逗号

C、逗号或回车

D、逗号或分号

E、空格或回车

正确答案:D

18、C++程序的基本模块为( )。

A、表达式

B、标识符

C、语句

D、函数

正确答案:D

19、编写C++程序一般需经过的几个步骤依次是( )。

A、编辑、调试、编译、连接

B、编辑、编译、连接、运行

C、编译、调试、编辑、连接

D、编译、编辑、连接、运行

正确答案:B

20、预处理命令在程序中都是以( )字符开头的。

A、*

B、#

)。

)符号。

C、&

D、@

正确答案:B

21、循环体至少被执行一次的语句为( )语句。

A、for循环

B、while循环

C、do循环

D、任一种循环

正确答案:C

22、在下面的一维数组定义中,( )语句有语法错误。

A、int a[]={1,2,3};

B、int a[10]={0};

C、int a[];

D、int a[5];

正确答案:C

23、在下面的字符数组定义中,( )语句有语法错误。

A、char a[20]= ’ ’abcdefg’ ’;

B、char a[]=’ ’x+y=55. ’ ’;

C、char a[15]={’1’, ’2’};

D、char a[10]= ’5’;

正确答案:D

24、假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为

( )。

A、2

B、4

C、6

D、8

正确答案:C

25、将两个字符串连接起来组成一个字符串时,选用( )函数。

A、strlen()

B、strcpy()

C、strcat()

D、strcmp()

正确答案:C

二、判断题

1、设置和清除格式标志字的成员函数需要通过对象来引用它们,输出显示格式的对象通常是

cout。

正确答案:正确

2、函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。

正确答案:正确

3、C++语言中模板分为函数模板和类模板两种。

正确答案:正确

4、continue 语句只能出现在循环体中 。

正确答案:正确

5、循环是可以嵌套的,一个循环体内可以包含另一种循环语句。

正确答案:正确

6、为了减轻使用者的负担,与C 语言相比,C++语言中减少了一些运算符。

正确答案:错误

7、C++语言中标识符内的大小写字母是没有区别的。

正确答案:错误

8、C++语言中使用了新的注释符(//), C 语言中注释符(/* … */ )不能在C++语言中使用。

正确答案:错误

9、开关语句不可以嵌套,在开关语句的语句序列中不能再有开关语句。

正确答案:错误

10、使用关键字class定义的类中默认的访问权限是私有(private)的。

正确答案:正确

11、预处理命令是在进行编译时首先执行的,然后再进行正常编译。

正确答案:正确

12、文件包含命令所包含的文件是不受限制的。

正确答案:错误

13、宏定义命令是以分号结束的。

正确答案:错误

14、条件语句不能作为多路分支语句。

正确答案:错误

15、for 循环是只有可以确定的循环次数时才可使用,否则不能用for 循环。

正确答案:错误

三、写出程序运行结果

1、#include

void main() {

int s1=0, s2=1;

for(int i=1; i<=6; i++) {s1+=i; s2*=i;}

cout<

}

正确答案:

21,720

2、 #include

#include

void main() {

char* a[5]={"student","worker","cadre","soldier","apen"};

char *p1;

p1=a[0];

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

if(strcmp(a[i], p1)>0) p1=a[i];

}

cout<

}

正确答案:

worker

3、#include

void main() {

int i=1,s=0;

while(s<20) {

if(i%2!=0) s+=i;

i++;

}

cout<

}

正确答案:

10,25

4、 #include

void main() {

int s=0;

for(int i=1;i<=8;i=+2)

s+=i*i;

cout<<"s="<

}

正确答案:

s=84

5、#include

void main() {

int a[10]={68,79,86,65,46,94,37,78,60,53};

int c=0;

for(int i=0;i<10;i++)

if(a[i]>=60) c++;

cout<<”c=”<

}

正确答案:

c=7

6、 #include

#include

struct Worker {

char name[15]; //姓名

int age; //年龄

float pay; //工资

};

void main() {

Worker x;

strcpy(, "WeiRong");

=45; =1235;

cout<<<<' '<<<<' '<<<

}

正确答案:

WeiRong 45 1235

四、写出函数功能

1、void LK(int a[], int n, int& m) {

float s=0;

int i;

for(i=0;i

s/=n;

m=0;

for(i=0;i=s) m++;

}

正确答案:

统计出数组a的前n个元素中大于等于其平均值的元素个数并由引用参数m带回。

2、int WC(int a[], int n, int k) {

int c=0;

for(int i=0;i

if(a[i]>=k) c++;

return c;

}

正确答案:

3、统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。

bool WB(int a[], int n, int x) {

for(int i=0;i

if(a[i]==x) return true;

return false;

}

正确答案:

从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。

4、double WA(int a[], int n) {

double s=0;

for(int i=0;i

return s/n;

}

正确答案:

求出数组a中n个元素的平均值并返回。

5、bool SG(int x) { //x为大于等于2的整数

int a=int(sqrt(x)); //sqrt(x)为求x的平方根

int i=2;

while(i<=a) {

if(x%i==0) break;

i++;

}

if(i>a) return true; else return false;

}

正确答案:

判断x是否为一个素数(或质数),若是则返回真,否则返回假。

6、bool WE(int a[], int b[], int n) {

for(int i=0;i

if(a[i]!=b[i]) break;

if(i==n) return true; return false;

}

正确答案:

判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回

假。

五、编程题

1、假定一个函数声明为“void AD(int a[], int n);”,要求把数组a中的n个元素值按相反的次

序仍保存在数组a中。请编写该函数。

正确答案:

void AD(int a[], int n)

{

for(i=0; i

int x=a[i]; a[i]=a[n-1-i]; a[n-1-i]=x;

}

}

2、假定一个函数声明为“int FF(int a[], int n);”,要求递归求出数组a中所有n个元素之积并

返回。请编写该函数。

正确答案:

int FF(int a[], int n)

{

if(n==1) return a[n-1];

else return a[n-1]*FF(a,n-1);

//或者if(n==0) return 1;

// else return a[n-1]*FF(a,n-1);

}

3、假定函数声明为“void Print(int a[], int n);”,在函数体中按下标从大到小的次序输出数组

a中的n个元素的值,并要求每行输出6个元素,当然最后一行可以不足6个。

正确答案:

void Print(int a[], int n)

{

int i,j=0;

for(i=n-1; i>=0; i--) {

cout<

if(++j%6==0) cout<

}

cout<

一、单选题

1、循环语句“for(int i=0; i

A、1

B、n-1

C、n

D、n+1

正确答案:

C

2、适宜采用inline定义函数情况是( )。

A、函数体含有循环语句

B、函数体含有递归语句

C、函数代码少、频繁调用

D、函数代码多、不常调用

正确答案:

C

3、要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( )。

A、const char *p=“ABCD”;

B、char *const p=“ABCD”;

C、char const *p=“ABCD”;

D、const char * const p=“ABCD”;

正确答案:

D

4、在关键字public后面定义的成员为类的( )成员。

A、私有

B、公用

C、保护

D、任何

正确答案:

B

5、C++源程序文件的缺省扩展名为( )。

A、cpp

B、exe

C、obj

D、lik

正确答案:

A

6、设有语句“int a=12; a+=a*a;”,则执行结束后,a的值为( )。

A、12

B、144

C、156

D、288

正确答案:

C

7、当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

( )。

A、ios::in

B、ios::out

C、ios::in | ios::out

D、ios::binary

正确答案:

A

发布评论

评论列表 (0)

  1. 暂无评论