C常见选择填空习题_第1页
C常见选择填空习题_第2页
C常见选择填空习题_第3页
C常见选择填空习题_第4页
C常见选择填空习题_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章概述

一、选择题

1.关于C++与C语言的关系描述中,错误的选项是()

A.C语言与C++是兼容的B.C语言是C++的一个子集

C.C++和C语言都是面向对象的【).C++对C语言进展了一些改良

2.不可以作为C++用户标识符的是()

A.PrintfB.123C.WhileD.case

3.由C++目标文件连接而成的可执行文件的缺省扩展名为1)

A.cppB.objC.libD.cxc

4.关于C和C++的描述中,正确的选项是()

A.C是面向过程,C++是纯面向对象B.C++是C的超集

C.C++是对C的错误的修改I).C++和C没有关系

5.C++对C作了很多改良,从面向过程成为面向对象的主要原因是()

A.增加了一些新的运算符B.允许函数重载,并允许设置参数默认值

C.规定函数必须用原型D.引进了类和对象的概念

6.将高级语言编写的源程序翻译成目标程序的是()

A.解释程序B.编译程序C.汇编程序D.调试程序

7.C++语言是从早期的C语言逐渐开展演变而来的,与C语言相比,它在求解问题方法上进

展的

最大改良是()

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

8.C++语言支持过程程序设计方法和()设计方法。

A.面向对象B.面向函数C.面向用户D.面向问题

9.关于C++和C的关系中,使C发生了质的变化,即从面向过程变成为面向对象的是()

A.增加了新的运算符B.允许函数重载,并允许缺省参数

C.规定函数有原型I).引进了类和对象的概念

10.C++语言最有意义的方面是支持()

A.面向事件B.面向程序C.面向对象I).面向用户

11.以下说法中,正确的选项是()

A.C++程序总是从第一个定义的函数开场执行

B.C++程序总是从主函数开场执行

C.C++函数必须有返回值,否则不能调用此函数

D.C++程序中有调用关系的所有函数必须放在同一个源程序文件中

12.以下描述中,正确的选项是()

A.程序就是软件B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体D.软件就是程序、数据与相关文档的集合

13.为了使模块尽可能独立,要求()

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽最弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

14.以下说法中正确的选项是()

A.数据流图详细描述了系统中对象数据是如何计算的

B.数据流图详细描述了操作和约束的含义

C.数据流图中不能有过程

D.数据流图定义了对象的操作

15.在C++语言中,自定义的标识符(

A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写

C.能使用关键字并且区分大小写I).不能使用关键字并且区分大小写

16.不能用于组成C++程序标识符的是()

A.连接符B.下划线C.大小写字母D.数字字符

17.以下标识符中都是合法的是()

A.key,example,a_bB.5ap,testl,_3a

C.bcp,@mai1,_c_dI).INL,_paper,union

18.以下符号中,不可作为分隔符的是()

A.逗号B.分号C.问号D.英文句号

19.以下变量名中,合法的是()

A.CHINAB.byte-sizeC.doubleD.A+a

20.在Ci।语言中,自定义的标识符(

A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写

C.能使用关键字并且区分大小写I).不能使用关键字并且区分大小写

21.C++程序的根本单位是()

A.字符B.程序行C.语句I).函数

22.注释的目的主要是用来提高()

A.可读性B.可移植性C.运行效率D.编码效率

23.程序中的注释局部()

A.参加编译,并会出现在目标程序中B.参加编译,但不会出现在目标程序中

C.不参加编译,但会出现在目标程序中D.不参加编译,也不会出现在日标程序中

24.在一个C++程序中()

A.main函数必须出现在所有函数之前B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后D.main函数必须出现在固定位置

25.C++语言可执行程序的开场执行点是()

A.程序中第一条可执行语言B.程序中第一个函数

C.程序中的main函数D.包含文件中的函数

26.以下关于C++语言的表达中,错误的选项是()

A.大写字母和小写字符的意义一样

B.有些不同类型的变量可以在一个表达式中运算

C.在赋值表达式中等号(二)左边的变量和右边的值可以是不同类型

【).同一个运算符号在不同的场合可以有不同的含义

二、填空题

1.判断一种计算机语言是否为面向对象程序设计语言的三个根本特征是封装性、继承性和

多态性。

2.在面向对象语言中可扩大性是关键。

3.在C++语言中,“/*-*/〃主要用于多行行注释,"//"用于单行注释。

4.C++程序的实现经过编辑、编译和运行步骤。

5.在一个好的程序中,注释可提高程序的程序的可读性。

6.C++源程序文件的默认扩展名为.cpp。

7.C++程序在编译中会出现的两类错误分别是致命错误和警告错误。

8.C++编译器进展编译的过程可详细地分为三个子过程,它们分别是预处理过程、编诺过程

和连接过程。

第二章数据类型与表达式

一、选择题

1.常量3.14的数据类型是()

A.doubleB.floatC.voidD.字符串

2.设有定义:charch;,以下赋值语句正确的选项是()

A.ch='123';B.ch=,\xff*;C.ch=,\08';D.ch=';

3.英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为()

A.43HB.62HC.74HD.84H

4.unsigned不能修饰的类型是()

A.intB.charC.floatD.longint

5.以下字符常量表示中,错误的选项是()

A..\W5.B.C..\4f.D..\a.

6.signed不能修饰的类型是()

A.intB.charC.doubleI),longint

7.以下字符串常量表示中,错误的选项是()

A."\"Yes\"or\"No\〃〃B."\.0K!\."

C."abcd'n"D."AB\C"

8.以下十六进制的整型常量表示中,错误的选项是()

A.OxafB.OXlbC.2fxD.OxAE

9.以下double型常量表示中,错误的选项是()

A.E15B..25C.3E5I).3E05

10.设有定义charch;,正确的赋值语句是()

A.ch=.123.;B.ch=.\xff.;C.ch=.\08.D.ch=.\\.

11在C++语言中,080是()

A.八进制数B.十进制数C.十六进制数D.非法数

12.关于字符'\0'的以下描述中不正确的选项是()

A.常用来作为字符串的完毕标志B.在计算机中存储时占一个字节的内存

C.是空格字符的转义表示形式D.作为逻辑值使用时等价于逻辑“假〃

13.在32位机器环境下,假设有inta[10];,那么表达式sizeof(a)/sizeof(int)的值是()

A.1()B.4C.40I).2

14.在C++语言中,char型数据在内存中的存储形式是()

A.ASCII码B.补码C.反码D.原码

15.字符串〃\\\"ABC\"\\"的长度是()

A.11B.7C.8D.6

16.设:inta=2,b=2;,那么a+++b的结果是()

A.2B.3C.4D.5

17.假设有定义:intx=2;,那么表达式x«2的结果为()

A.2B.4C.8D.16

18.:inta=5,b=6;,那么以下表达式中,有二义性的是()

A.a+b>〉3B.++a+b++C.b+(a-3)D.(a=3)-a++

19.以下运算符中优先级最高的是()

A.=B.&&C.>=1).+

20.以下运算符中优先级最低的是()

A.%B.%=C.&D.»

21.表达式(-17)%5的值()表达式(-17设(-5)的值。

A.大于B.等于C.小于D.不确定

22.以下运算符中,结合性从左向右的是()

A.->B.»C.!=D.〜

23.假设inta=2,b=3;,那么表达式a+++b++的值为()

A.11B.9C.7D.5

24.设有定义inta;floatf;doublei;,表达式10+.a.+i*f的结果类型是()

A.intB.floatC.doubleD.不确定

25.sizcof(double)是一个()

A.整型表达式B.双精度表达式C.函数调月D.不合法

26.以下关于类型转换的描述中错误的选项是()

A.在不同类型操作数组成的表达式中,表达式类型一定是最高类型double型

B.逗号表达式的类型是最后一个子表达式的类型

C.赋值表达式的类型是左值的类型

D.在由低向高的类型转换中是保值映射

27.以下说法中正确的选项是()

A.隐含类型转换可能会损失数据精度B.显式类型转换可能会损失数据精度

C.隐含类型转换一定会损失数据精度D.显式类型转换一定会损失数据精度

28.在隐含类型转换中,long、ini、double三种类型之间的转换顺序为()

A.long->int->doubleB.long->double->int

C.int->double->longD.int->1ong->doub1e

29.以下说法正确的选项是()

A.隐含类型转换可以从高类型转换为低类型

B.显式类型转换不可以从低类型转换为高类型

C.隐含类型转换可以在任何类型之间转换

D.显式类型转换可以在任何类型之间转换

30.设intn=10,i=4;,那么表达式n%=i+l运算后n的值是()

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

31.以下运算符中,可以作用于浮点数的是()

A.++B.%C.»D.&

32.以下各运算符中,不可以作用于浮点数的是()

A./B.&&C.||D.~

33.以下运算符中,可以作用于浮点数的是()

A.++B.%C.»D.八

34.以下运算符中,结合性从左到右的是()

A.?:B.*=C.==D.++

35.假设有下面的定义,那么表达式:a<b?a:c<d?c:d的结果为()

inta=l,b=2,c=3,d=4;

A.1B.2C.3D.4

36.设x为int型变量,那么执行以下语句后,x的值为()

x=10;

x+=x-=x-x;

A.10B.20C.30D.40

37.假设有下面的定义,那么对语句c=a+b;的以下说法中正确的选项是()

inta=12;

floatb=l.2f,c;

A.变量a转换为float■类型

B.变量b转换为int类型,运算结果再转换为float类型

C.变量a和b都转换为一中间类型,运算结果再转换为floal类型

D.以上都不对

38.执行以下语句后,a的值是()

inta=8;

a+=a-=a*a;

A.240B.64C.112D.112

39.能正确表示“大于10且小于20的数"的C++表达式是()

A.10<x<20B.x>10||x<20C.x>10&x<20I).!(x<=10||x>=20)

40.表示关系xWyWZ的C++语言表达式为()

A.(x<=y)&&(y<=Z)B.(x<=y)AND(y<=Z)

C.(x<=y<=Z)D.(x<=y)&(y<=Z)

41.设x,y,z均为int型变量,那么执行以下语句后,t的值为()

x=y=z=l;

t=++x||++y&&++z;

A.0B.1C.2D.不定他

42.假设有如下语句:

inta,b,c;

a=b=c=5;

那么执行语句:

b+:++a&&++c>b;

后a、b、c的值分别为()

A.6,7,6B.6,6,6C.6,6,5D.6,1,6

43.在C++中,const修饰符主要用于代替C语言中的()关键字进展常量定义。

A.#includeB.staticC.ttdefineD.Sifdef

二、填空题

1.在32位计算机中,假设有double*p;,那么p占用4字节的内存空间。

2.在C++中,用同一个数据类型定义多个变量时需要用逗号分隔。

3.变量的三要素分别是(变量的)类型、(变量的)名字(或变量名)、(变量的)值。

4.表达式(-9)%4的值为T,表达式9%(-4)的值为1,表达式(-9)%(-4)的值为-1

5.在C++中,'\(T被用来作为字符串的完毕符。

6.空字符串的长度为1。

7.在C++中,变量必须遵循先定义后使用的原则。

8.在16位计算机中,int数据类型占用2个字节。

9.数据类型转换分为自动类型转换(隐含类型转换)和强制类型转换(显式类型转换)两种。

10.在32位机器中,假设有:inta[10];那么表达式sizeof(a)/sizeof(int)的值为10。

11.在32位机器中,假设有:inta[10];那么表达式sizeof(a)的值为40。

12.变量的类型既规定了占用内存字节数(大小),也规定了合法操作。

13.没有初始化的变量其存储的值要么是默认值,要么是

机器(计算机)决定。

15.条件表达式的类型由:号前后两个子表达式的高类型决定。

16.赋值表达式的类型由赋值运算符的左值的类型决定。

17.逻辑运算符&&和II的特点是在计算时存在短路现象。

18.假设有定义:

inta(4),b(2);

那么表达式a&&b||a++||(a-b*2)运算完成后a的值为4。

19.设int型变量x的值为10,那么表达式x〉10?x+100:x-100的值是-90。

三、写程序运行结果

1.[include<iostream>

usingnamespacestd;

intmain()

(

floatx;

inti;

x=12.6;

i=(int)x;

cout«,/x=,,«x«endl;

cout<<,,i=,,«i«endl;

)

x=12.6

y=12

2.^include<iostream>

usingnamespacestd;

intmain()

(

inti;

charcl;

i=A';

cl='A';

cout«i<<*\n;

cout«cl«,\n;

return0;

)

65

A

3.itinclude<iostream>

usingnamespacestd;

intmainO

cout«//abc\z,abc,z<<endl;

cout<<?zabc\\abc,/<<endl;

)

abc\"abc

abc\\abc

4.^include<iostream>

usingnamespacestd;

intmainO

(

inti=l;

cout<<,,i=,,«++i«endl;

cout«z,i=//«i++«endl;

}

i=2

i=2

5.#include<iostream.h>

voidmainO

(

inta;

a=7*2+-3%5-4/3;

doubleb;

b=510+3.2-5.4/0.03;

cout«a«,,\t,^<b«endl;

intm(3),n(4);

a=m++-----n;

cout<<a«,z\t,,<<m«z,t,,«n<<endl;

)

10333.2

04t3

6.rtinclude<iostream.h>

voidmain()

(

intx,y,z;

x=y=z=l;

—x&&++y&&++z;

cout«x«>\V<<y«>\t'<<z«'\n;

++x&&++y&&++z;

cout«x«,\t*<<y«*\t,<<z«*\n;

++x&&y­||++z;

cout<<x«J\V<<y«>\t'<<z<<'\n;

011

122

212

7.^include<iostream.h>

voidmain()

(

charx('m'),y('n');

intn;

n=x<y;

cout«n<<endl;

n=x==y-l;

cout«n«endl;

n=(,y,!=,Y,)+(5>3)+(y-x==l);

cout«n«endl;

)

1

1

3

四、改错题

1.下面程序要求输出x和y的值,x的值为10,y的值为11。

#include<iostream>

usingnamespacestd;

voidmain(){

constintx;

inty=10;

y=x++;

cout«x,y;

)

第三章语句

一、选择题

1.关于switch语句的描述中,正确的选项是()

A.switch语句中default子句可以没有,也可有一个

B.switch语句中每个caso语句序列中必须有break语句

C.switch语句中default子句只能放在最后

D.switch语句中case子句后面的表达式只能是整型表达式

2.以下关于goto语句的描述中正确的选项是()

A.goto语句可以在一个文件中随意转向

B.goto语句后面要跟上一个它所转向的语句

C.got。语句可以同时转向多条语句

D.goto语句可以从一个循环体内转到循环体外

3.与以下程序段等价的是()

while(a){if(b)continue;c;}

A.while(a){if(!b)c;}B.while(c){if(!b)break;c;}

C.while(c){if(b)c;}D.while(a){if(b)break;c;}

4.在设计C++程序时,应采用的原则之一是()

A.不限制got。语句的使用B.减少或取消注释行

C.程序越短越好D.程序构造应有助于读者理解

5.for(intm=n=0;!n&&m<=10;m++);语句的循环次数为()

A.10B.11C.12D.无限

6.下面的do语句的循环体执行次数为()

inta=10;

do{a—;)whilo(a!=0);

A.10B.9C.11I).12

7.以下for循环的循环体执行次数为(假设循环体中没有引用i和j)()

for(inti=0,j=10;i=:=10;i++,j—)循环体;

A.0B.1C.10D.无限

8.以下关于if语句的描述中错误的选项是()

A.if语句中只有一个else子句B.if语句中可以有多个elseif子句

C.if语句中if体内不能是开关语句D.if语句的if体中可以是循环语句

9.下面的程序()

^include<iostream.h>

voidmain()

(

inta=5,b=4,c=3;

if(a=b+c)cout«z/***"«endl;

elsecout«*$$$"«endl;

)

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

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

10.为了防止嵌套的if-else语句的二义性,C++规定else总是与()组成配对关系。

A.缩排位置一样的ifB.在其之前未配对的if

C.在其之前未配对的最近的ifD.同一行上的if

11执行以下程序,输入为1时的输出结果是()

^include<iostream.h>

voidmain()

intk;

cin»k;

switch(k)

case1:cout<<k++<<”

case2:cout<<k++«/z

case3:cout<<k++«/?

case4:cout<<k++«wbreak;

default:cout«〃Full!"

)

cout«endl;

}

A.1B.2C.2345D.1234

12.以下while循环的循环次数为()

while(inti=0)i--;

A.0B.1C.5I).无限

13.以下do-while循环的循环次数为()

:inti=5;

do{cout«i--<<endk;i--;}while(i!=0);

A.1B.2C.5D.无限

14.以下描述正确的选项是()

A.不是每个C++程序都必须包含预处理命令#include<iostream.h>

B.C++程序必须有return语句

C.C++程序中的变量必须定义在主程序内部

I).C++程序中所使用的符号常量可以不进展定义

15.intx,y;,以下switch语句中,正确的选项是()

A.switch(x*y)B.switch

((

case1:x*y;break;case1,5:x++;

case2:break;case3,7:y++;

))

C.switch(x)I),switch(x+y/100)

({

casex:x*x;break;casex:x*x/100;break;

casey:y*y;break:casey:y*y/100;break;

})

16.以下关于golo语句的描述中正确的选项是()

A.goto语句可以在一个程序中随意转向。

B.循环体中不能出现goto语句

C.got。语句后面要跟上一个它所要转向的语句

D.got。语句不是构造化语句

17.执行以下程序段的输出结果是()

intsl=0,s2=0,s3=0,s4=0;

for(intt=l;t<=4;t++)

switch(t){

caset>=4:sl++;break;

caset>=3:s2++;break;

caset>=2:s3++;break;

default:s4++;

)

cout<<sl«,,5«s2«,,J«s3«,,J«s4«*\n;

A.1,1,1,2B.1,2,3,2C.1,1,2,2D.编译不通过

18.执行for(inti=10;i>l;—i)cout«.;语句段后,输出字符“*"的个数是()

A.7B.8C.9D.10

二、写程序运行结果

1.写出下面的程序的运行结果

^include<iostream.h>

#include<iomanip.h>

voidmain()

(

inti,j,k;

for(i=l;i<=6;i++)

|

for(j=l;j<=20-2*i;j++)cout«"”;

for(k=l;k<=i;k++)cout«setw(4)«i;

cout<<endl;

)

)

2.写出下面的程序的运行结果

itinclude<iostream.h>

itinclude<iomanip.h>

voidmain()

(

inti,j,k;

for(i=l;i<=6;i++)

(

for(j=l;j<=20-3*i;j++)cout«"”;

for(k=l;k<=i;k++)cout«setw(3)«k;

for(k=i-l;k>0;k-)cout<<setw(3)«k;

cout«cndl;

}

)

3.^include<iostream.h>

charinput[]="SSSWILTECH1\1\11W\1WALLMP1";

voidmain()

(

inti;

charc;

for(i=2;(c=input[i])!=,\0';i++)

(

switch(c)

(

case'a':cout«,i';

continue;

caseT:break:

case1:while((c=input[++i])!=,\K&&c!='\0');

case9:cout«*S';

case'E':

case'L':continue;

default:cout<<c;

continue;

)

cout«z,";

}

cout«endl;

}

SWITCHSWAMP

4.Sincludc<iostream.h>

voidmain()

{

inta,b,c,s,i;

a=b=c=0;

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

(

cin»s;

switch(s%3)

(

case0:a+=s;break;

case1:b+=s;break;

case2:c+=s;break;

}

}

cout«a«z/,<<b<<","<<c«endl;

)

假定输入的10个整数为:12,34,54,51,9,45,63,27,6,35,写出该程序的运行结果。

267,34,35

5.^include<iostream.h>

voidmainO

(

inti,j;

for(i=l;i<=4;i++)

(

for(j=(4-i)*2;j>0;j-)cout«*

for(j=l;j<=2*i-l;j++)cout<<*;

cout«endl;

}

for(i=3;i>=l;i—)

(

for(j=(4-i)*2;j>0;j")cout«*“;

for(j=l;j<=2*i-l;j++)cout«/z*";

cout«endl;

}

}

三、改错题

1.水仙花数是一个三位数,其各位数字的立方和等于该数本身。以下程序输出所有的水仙花

数。

^include<iostream>

usingnamespacestd;

voidmainO{

inti,a,b,c;

for(i=100;i<1000;i++);

(

a=i/]00;

b=i%100/10;

c=i/10;

if(i=a*a*a+b*b*b+c*c*c)

cout«i«endl;

})

2.Sincludc<iostrcam.h>

#include<iomanip.h>

voidmain()

(

for(intn=l;n<6;n++)

cout«setfi11('')«setw(n)<〈‘'<<setfi11('m)«setw(ll-2*n)«*nf<<endl;

)

四、程序填空题

1.求3到100之间的所有素数之和。

^include<iostream.h>

[1]»include<math.h>

voidmainO

(

intsum=0;

for(inti=3;i<=100;i++){

inttemp=int(sqrt(i));

for(intj=2;j<=temp;j++)

if(i%j)[2]break;

if([3]j>temp)sum+=i;

)

cout«sum«endl;

)

2.展转相除法求两个整数a和b的最小公倍数。

itincludc<iostream>

usingnamespacestd;

voidmainO{

inta=10,b=15;

inttemp,i=l;

if([l]a<b){tcmp=a;a=b;b=tcmp;}

while(i*a%b!=O)[2]i++;

cout«[3]i*a<<endl;

)

3.以下程序计算1000以内能被3整除的自然数之和,请完成程序。

#include<iostream.h>

voidmainO

(

intx=l,sum;

[1]sum=0;

whi1e(1)

(

if([2]x>1000)break;

if([3]x%3==0)sum+=x;

x++;

}

cout<<sum«cndl;

第四章函数与预处理

一、选择题

1.假设要定义一个只允许根源文件中所有函数能使用的全局变量,那么该变量需要使用的存

储类别是()

A.externB.registerC.autoD.static

2.函数的重载是指()

A.两个或两个以上的函数有一样的函数名,但函数形参的个数或类型不同

B.两个以上的函数有一样的函数名和一样个数的参数,但形参的类型可以不同

C.两个以上的函数有不同的函数名,但形参的个数或类型一样

【).两个以上的函数有一样的函数名,并且函数的返回类型不同

3.关于函数的描述中,正确的选项是()

A.函数的定义可以嵌套,函数的调用不可以嵌套

B.函数的定义不可以嵌套,函数的调用可以嵌套

C.函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可以嵌套

4.假设有宏定义:#defineS(x)(x)*(x),那么表达式:2.7/S(3.0)在预编译过程中将()

A.被替换为2.7/3.0*3.0B.被替换为2.7/(3.0)*(3.0)

C.被替换为2.7/((3.0)*(3.()))I).不能被替换

5.关于内置函数的说法中,不正确的选项是()

A.内置函数不需要使用堆栈进展现场的保护与恢复

B.内置函数以牺牲程序的存储空间换取程序的执行时间

C.内置函数体内不能有循环语句

D.类的内置函数必须在类体外通过加关键字inline定义

6.在函数定义前加上inline表示该函数被定义为()

A.重载函数B.内置函数C.成员函数D.普通函数

7.关于设置C++函数参数默认值的描述中,正确的选项是()

A.不允许设置函数参数的默认值

B.只能在定义函数时设置函数参数的默认值

C.设置函数参数默认值时,应该是先设置右边的再设置左边的

I).设置函数参数默认值时,应该全部参数都设置

8.假设同时定义了以下四个选项格式的函数和模板,fun(8,3.1)调用的是()

A.template<classTl,classT2)fun(Tl,T2)B.fun(double,int)

C.fun(char,char)D.fun(double,char)

9.关于函数模板的表达中,正确的选项是()

A.函数模板实际上是函数类型和形参类型不具体指定的通用函数

B.函数模板可以用于描述函数体不同的一系列函数

C.函数模板可以用于描述参数个数不同的一系列函数

D.函数模板定义中typename和class的作用不同

10.关于变量的存储类别的描述中,不正确的选项是()

A.变量的存储类别指的是变量值在内存中存储的方法

B.变量的存储类别与变量值存在的时间有关

C.变量的存储类别决定了变量占用内存的分配与释放时间

D.变量的存储类别不能确定变量的作用域

11函数func的原型是:doub1efunc(double*pd,int&ri);

变量x和y的定义是:doublex;inty;

把x和y分别作为第一参数和第二参数来调用func,正确的调用语句是()

A.func(x,&y);B.func(&x,y);C.func(&x,&y);D.func(x,y);

12.关于递归函数的说法中,不正确的选项是()

A.递归函数可以改写为非递归函数B.递归函数应有递归完毕的条件

C.解决同一个问题的递归函数的效率比非递归函数的效率要高

D.递归函数往往更符合人们的思路,程序更容易理解

13.以下表达中,正确的选项是()

A.预处理命令行必须位于源文件的开头

B.在源文件的•行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

14.关于函数模板的说法中,正确的选项是()

A.函数模板中typename和class用于定义不同的虚拟类型名

B.能被函数模板代替的函数必须具有一样个数的形参

C.函数模板的虚拟类型名由C++系统自动确定

D.函数模板的虚拟类型名是在运行阶段确定实际类型的

15.关于函数的说法中,错误的选项是()

A.函数定义是平行的B.函数可以嵌套调用C.函数可以嵌套定义D.函数可以递归调

16.定义一个函数模板要用到的第一个修饰符是()

A.typenameB.templateC.classD.typedef

17.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()

A.内置函数B,重载函数C.递归函数D.函数模板

18.不是重载函数调用时选择依据的是()

A.参数个数B.参数类型C.函数名字D.函数类型

19.关于局部变量的说法中,不正确的选项是()

A.函数声明中的形式参数名在函数被调用时分配内存空间

B.不同的函数中可以定义同名的局部变量

C.函数定义中的形式参数名也是局部变量

D.局部变量只在定义它的函数或复合语句[块)中有效

20.关于函数模板的表达中,正确的选项是()

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数

D.用函数模板定义的函数没有类型

21.在函数的传值调用中,要求()

A.形参和实参类型任意,个数相等B.形参和实参类型一样,个数相等

C.形参和实参对应类型一致,个数相等I).形参和实参对应类型一致,个数任意

22.适宜定义为内置函数的是()

A.函数体含有循环语句B.函数体含有递归语句

C.需要加快程序的执行速度D.函数代码多且不常调用

23.设函数模板定义为

template<classT>

Tf(Tx,Ty){returnx+y;}

对该函数模板使用不正确的选项是()

A.f(4,8);B.f(4.9,8.5):C.f(12.8f,45.9f);D.f("123","456”);

24.假设在程序中有一个名字为al的全局标识符,在该程序的某函数中有一个同名的局部标

识符,

如果在该函数中访问这个国名的全局标识符,那么该全局标识符应表示为()

A.alB.al::C.->alD.::al

25.以下条件编译命令中下划线处是()

#if()

语句1;

#clse

语句2;

#endif

A.整常量表达式B任意标识符.C.任意表达式D.被定义的宏名

26.在函数的返回值类型与返回值表达式的类型描述中错误的选项是()

A.函数返I可值的类型在函数定义时确定,在函数调用时是不能改变的

B.函数返回值的类型就是返回值表达式的类型

C.函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型

D.函数返回值类型决定了返回值表达式的类型

27.适合于实现功能不复杂但又要求有较快执行速度的因数是()

A.内联函数B.重载函数C.递归函数D.嵌套函数

28.在函数说明中,不必要的是()

A.函数的类型B.函数参数的类型C.函数的名字I).函数参数的名字

29.属于文件级作用域的标识符是()

A.函数形参B.语句标号C.外部静态类标识符D.自动类标识符

30.预处理命令在程序中都是以()开头的。

A.*B.#C.:D./

31.在带参数的宏定义中,程序中引用宏定义的实参()

A.只能是常量B.只能是整型量C.只能是整型表达式D.可以是任意表

达式

32.在以下存储类标识符中,可见性和存在性不一致的是()

A.外部类B.自动类C.内部静态内D.存放器类

33.作用域运算符的功能是()

A.标识作用域的级别B.指出作用域的范围C.给定作用域的大小D.标识某个成员属

于哪个类

34.以下说法正确的选项是()

A.C++语言的函数原型与C语言的函数说明格式一样

B.不允许在C++语言的函数原型中说明参数类型

C.当函数自变量个数不确定时,系统不自动检测自变量

D.不管函数自变量个数是否确定,系统都不自动检测自变量

35.当函数的自变量个数不确定时,参数表用()表示。

A.…B.>KC.空格D.?

36.在C++语言中规定函数的返回值的类型是由()

A.return语句中的表达式类型所决定

B.调用该函数时的主调用函数类型所决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型所决定

37.局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用()

提供对全局变量的访问。

A.域运算符B.类运算符C.重载D.引用

38.在不同文件的困数中,对全局变量的引用要加上()关键字。

A.registerB.autoC.staticD.extern

39.下面程序段的输出结果为()

^definePI3.141593

#include<iostream.h>

voidmain(void)

{cout«,zPI="«PI«cndl;)

A.3.141593=3.141593B.PI=3.141593

C.3.141593=PID.程序有错误,无输出结果

40.以下的函数调用语句中实参的个数是()

fun(a+b,(x,y),fun(n+k,d,(a,b)));

A.3B.4C.5D.6

41.以下标识符中,()不是局部变量。

A.register类B.外部static类C.auto类D.函数形参

42.C++语言中允许同一程序中有一样的函数名存在,称为()

A.类型转换B.构造体C.函数重载D.函数原型

43.以下关于C++函数的说法中正确的选项是()

A.假设函数先定义后调用,那么必须在调用前说明

B.如函数先调用后定义,那么必须在调用前说明

C.不管函数定义与调用的先后,都必须在调用前说明

D.不管函数定义与调用的先后,都不必在调用前说明

44.假设函数没有返回值,那么该函数的类型应被说明为()

A.voidB.intC.charD.double

45.假设一个函数被说明为void类型,那么其含义是()

A.函数没有任何返回值B.函数没有参数表

C.函数的作用域为全局D.函数的作用域为局部

46.以下关于用力define定义的常量的说法中正确的选项是()

A.在函数中定义的常量的作用域从定义起到该函数完毕

B.在函数中定义的常量的作用域从定义起到#undef取消为止或文件完毕

C.在一个函数中定义的常量不能在同一个文件的后续的其它函数中取消

I).在一个函数中定义的常量不能在同一个文件的后续的其它函数中重新定义

47.以下关于内联函数的说法中不正确的选项是()

A.内联函数体内不能有循环语句B.内联函数体内不能有switch语句

C.内联函数必须先定义后调用D.内联函数在被调用时发生控制转移

48.以下关于存放器类变量的说法中不正确的选项是1)

A.存放器类变量只能足局部变量或函数的形式参数

B.存放器类变量只能为int型或char型

C.存放器类变量不能进展取地址操作

D.定义为存放器类的变量只能存储在存放器中

49.在C++中,以下关于函数原型的描述中错误的选项是()

A.如果函数先定义后调用,那么该函数不能有函数原型说明

B.函数原型与函数定义在返回类型、函数名及参数表上必须完全一致

C.函数原型不必包含参数的名字,而只要包含参数的类型

D.函数原型说明是语句

50.以下关于变量和作用域运算符的说法中错误的选项是()

A.在用一作用域中不能说明同名变量,但不同作用域中可以说明同名变量

B.作用域运算符提供了在局部作用域内引用同名的全局变量的方法

C.不同的作用域内可以定义同名的变量

D.全局变量不能自动初始化

51.下面程序中第8行中的::a的含义是()

#include<iostream.h>//I

inta;//2

voidmain()//3

{//4

inta;//5

{//6

inta;//7

::a=5;//8

a=10;//9

}//10

}//H

A.表示对第2行定义的变量a的引用B.表示对第5行定义的变量a的引用

C.表示对第7行定义的变量a的引用D.不合法的引用

52.以下关于预处理的描述中正确的选项是()

A.预处理命令在编译时被执行

B.所有的预处理命令都是以#开头的

C.预处理命令的主要作用是提高程序的运行效率

I).预处理命令不是C++语言的必须组成局部

53.假设有宏定义语句为:

^defineSQ(x)(x*x)

那么执行以下语句后m的值为()

intm=50/SQ(5);

A.2B.10C.501).1250

54.以下关于内联函数的描述中错误的选项是()

A.内联函数是在程序编译时被执行的

B.用inline修饰的函数原型其对应的函数也将成为内联函数

C.内联函数不能是递归函数

D.内联函数的主要作用是提高程序的运行效率

55.以下关于函数的描述中错误的选项是()

A.函数形参的作用域足该函数的函数体

B.所有的函数在定义它的程序中都是可见的

C.调用系统函数时,要先将该系统函数的原型说明所在的头文件包含进去

D.系统函数及其库不是C++语言所必须的

56.以下关于存储类的说法中错误的选项是()

A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论