视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C++题目考试题
2025-10-06 14:51:09 责编:小OO
文档
第 1~5 章测试

一、语法判断题 (35 分)

1、若有说明int c;则while(c=cin.get());是正确的C++语句。 (错)

2、unsigned 和void 在 C++中都是保留字。 (对)

3、若有 int ⅰ=10, j=0; 则执行完语句 if (j=0) ⅰ+ +; else ⅰ- -; ⅰ的值为 11。 (错)

4、若有int i=10, j=2; 则执行完 ⅰ* =j+8;后 ⅰ的值为28。 (错,100)

5、若一个C++ 程序中说明一个全局变量int ⅰ; (在所有函数之外说明的),

则该程序任何一点都可引用全局变量 ⅰ。(错,extern )

6、若 i为某函数func 之内说明的变量,则当 func 执行完后,ⅰ值无定义。

(对)

7、一个可执行的 C++语言程序可以包含若干个函数,但至少必须包含一

个main( )函数。(错,有且只有一个 )

8、一个 C++语言程序可由若干个源程序文件构成,每个源程序文件也必

须包含一个main()函数。(错 )

9、一个可执行的C++语言程序总是从main()函数的入口地址处开始执行。

(对)

10、在变量定义int sum , SUM; 中sum 和 SUM 是两个相同的变量名。(错)

11、字符串”china”在内存中占据的存储空间是 5 个字节。(错,6个)

12、在C++语言中,”A”和’A’是等价的。(错)

13 、C++表达式4/7 和4.0/7 的值是相等的,且都为double 型。(错)

14、关系表达式a=b>c 等价于a=(b>c) ,同时也等价于a==b>c。(错)

15、(a=3)>(b=5) 是合法的关系表达式。(对)

16、逻辑表达式’c’&&’d’的值为1 。( 对)

17、一个变量的地址就称为该变量的“指针”。(错)

18、C++语言中直到型循环结构为:do 循环体 while(表达式); 但这种循环

是当表达式为真时反复执行循环体,表达式为假时结束循环。( 对)

19、for ( ; ; ) 语句 等价于while (1) 语句 ,即不设初值、不判断条件、无

终止地执行循环体。(对 )

20、break 语句不能用于循环语句和switch 语句之外的任何其它语句中。(对)

21、continue 语句和break 语句的区别是:break 语句提前跳出 switch 结构

或结束循环的执行;continue 语句只结束本次循环,而不是终止整个循环

的执行。(对 )

22、数组是一种构造型数据,即是若干相同类型的数据的集合。(对*)

23、C++语言中,二维数组中元素排列的顺序是:按行存放,即在内存中

先顺序存放第一行的元素,再存放第二行的元素。(错,线性)

24、若有int a[3][4]; 则a[3][4]是对二维数组的正确访问。(错 )

25、一个C++源程序文件由一个或多个函数组成,由此可见函数是一个独

立的编译单位。(错)

26、在C++语言中

,所有函数都是平行的,即在定义函数时是互相的,

一个函数并不从属于另一个函数。(对)

27、C++中,在定义函数时的参数是“形式参数”,在调用函数时的参数是“实

际参数”。( 对)

28、#include 的作用是将说明标准输入输出流对象的头文件包

含到当前源文件中来。(对 )

29、C++语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:

在调用一个函数的过程中又出现直接或间接地调用该函数本身。( 对)

30、C++中,如果在定义函数时省略extern,则隐含为外部函数。(错 )

31、 引用是一种可做函数参数的变量。 (对)

32、函数体和循环语句的循环体都可为空。(对)

33、数组下标只能是常量,不能是表达式。 (错,是常量表达式)

34、使用 delete运算符释放一个用 new 创建的数组时,每次只能释放一个

元素。 (错)

35、设置函数参数默认值只能用常量,不能用表达式。

二、选择题 (40 分)

1. C++语言是从早期的 C 语言逐渐发展演变而来的.与 C 语言相比,它在

求解问题方法上进行的最大改进是(B)

A .面向过程 B.面向对象 C.安全性 D.复用性

2. C++语言的跳转语句中,对于 break 和 continue 说法正确的是(B)

A.break 语句只应用与循环体中

B.continue 语句只应用与循环体中

C.break 是无条件跳转语句,continue 不是

D.break 和 continue 的跳转范围不够明确,容易产生问题

3. for(int x= 0,y=o;!x& &y<=5;y++)语句执行循环的次数是(A)

A. 0 B. 5 C. 6 D.无次数

4. 考虑函数原型 void test(int a,int b=7,char="*"),下面的函数调用中,属

于不合法调用的是(C)

A.test(5); B.test(5,8); C.test(6,"#") D.test(0,0."*");

5. 下面有关重载函数的说法中正确的是(C)

A.重载函数必须具有不同的返回值类型; B.重载函数形参个数必

须不同;

C.重载函数必须有不同的形参列表 D . 重载函数名可以不

同;

6 下面关于数组的描述错误的是(D )

A.在C++语言中数组的名字就是指向该数组第一个元素的指针

B.长度为n 的数组,下标的范围是0~n-1

C.数组的大小必须在编译时确定

D.数组只能通过值参数和引用参数两种方式传递给函数

7.下面的哪个选项不能作为函数的返回类型?( C)

A.void B.int C.new D.long

8.下列程序的输出结果为( D)

#include

int func(int n)

{if(n<1) return 1;

else return n+func(n-1);

return 0;}

void main()

{cout<A.0 B.10 C.15 D.16

9.设 int a=10,b=11,c=12;,表达式

A.2 B.0 C.-2 D.1

10.下列语句中不是死循环的是( )

A.int i=10; B.for(int i=1;i<10;i++) C.int i=0; D.int i=1;

while(1) { do{ for(;;)

{ i--; i++; i=i+1;

i--; } }while(i>=0);

if(i==1)break;

}

11.下面程序的运行结果是(C)

#include

void main()

{

int num=1;

int &ref=num;

ref=ref+2;

cout<< ref

num=num+3;

cout<}

A.13 B.16 C.36 D.33

12.若二维数组 a 有 m 列,则计算任一元素a[i][j]在数组中相对位置的公式

为(假设 a[0][0]位于数组的第一个位置上)( A)

A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1

13.有以下程序

#include

void main()

{ int a=5,b=0,c=0;

if(a=b+c)cout<<″***″;

else cout<<″$$$″;

下列选项叙述正确的是( D)

A.有语法错不能通过编译 B.可以通过编译但不能通过连接

C.输出*** D.输出$$$

14.以下程序中循环体总的执行次数是(A )

int i,j;

for(i=6;i>1;i--)

for(j=0;j<4;j++)

{……}

A.20 B.261 C.15 D.25

15.下列关于C++函数的描述中正确的是(B )

A.主函数是程序的入口,它由用户定义的函数调用

B.函数在调用之前必须先被声明

C.每个用户定义的函数只能被其他函数调用一次

D.函数是C++中面向对象程序设计框架的基本组成单元 *

16.若定义 int k=7,x=12;,则能使值为3 的表达式是( )

A.x%=(k%=5) B.x%=(k-k%5) C.x&=k-k%5 D.(x%=k)-(k%=5)

17.以下赋值语句中,合法的是(ACD)。*

A.a=b=58; B.i++; C.a=58,b=58; D.k=int(a+b);

*18.下列语句中,错误的是(B)。

A.const int buffer=256; B.const int temp;

C.const double *point; D.const double *rt=new double(5.5);

19.下列声明语句中没有起到定义作用的是()

A.int count; B.donst double pi=3.14159;

C.int max(int a,int b){return a>b?a:b;} D.extern long index;

20.下列关于 break 语句的描述中正确的是( B)

A.break 语句可用于循环体内,它将退出该次循环

B.break 语句可用于 switch 语句中,它将退出 switch 语句

C.break 语句可用于 if 体内,它将退出 if 语句

D.break 语句在一个循环体内可执行几次

三、 阅读以下程序写出运行结果 (15 分)

1.

#include

void main()

{

int a=40;

while(--a)

{

if(a==20)

break;

if(a%2==0||a%3==0||a%5)

continue;

cout<}

}

答案:34

24

2.

#include

void main()

{

int

x(5);

int & fun(int &);

int y=fun(x)--;

cout<}

int w;

int & fun(int &i)

{

w=i*i;

return w;

}

答案:25

3.

#include

int y=3;

int fun(int,int =2,int &c=y);

void main()

{

int a(2),b(3),c(4);

int x=fun(a); 7

int y=fun(a,b); 8

int z=fun(a,b,c); 10

cout<}

int fun(int a,int b,int &c)

{

a=b; b=c; c=a;

cout<return a+b+c;

}

答案:7

8

10

25

四、编程题 (10分):要求用函数实现

1. 求N 个学生的平均成绩,并统计高于平均分的人数

解:

#include

void main()

{

int i,n;

double a[100],s=0;

cout<<"请输入数的个数:"<cin>>n;

for(i=0;i{

cout<<"第"<cin>>a[i];

s+=a[i];

}

cout<<"这"<}

2. 求斐波那挈数列的前n 项

解:

#include

void main()

{

int i,n,a[50]={1,1};

cout<<"输入要输出的项数:"<cin>>n;

for(i=2;ia[i]=a[i-1]+a[i-2];

for(i=0;icout<}下载本文

显示全文
专题