C++复习题(全部答案)

更新时间:2024-04-01 10:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、C++基础、变量、常量部分试题:

(一)单选题

8.

由C++语言编写的代码程序( )

A. 可直接执行(.exe才可以直接执行) B. 是一个源程序 C. 经过编译即可执行 (经过编译链接才可以执行) 9.

按照C++语言规定的用户标识符命名规则,不能出现在标识符中的是( ) A. 大写字母 10.

下列选项中,不能用作标识符的是( ) A. _1234_ 11.

以下选项中合法的用户标识符是( ) A. long(关键字) 12.

以下不能定义为用户标识符的是( ) A. Main 13.

列定义变量的语句错误的是( ) A. int _int; 14.

在C++语言中,非法的字符常量是( ) A.‘\\t’ 29.

以下程序的输出结果是() void main() {

int k=11;

cout<

A. k=11,k=12,k=11 41.

B. k=11,k=13,k=13 D. k=11,k=13,k=b

C. k=11,k=013,k=0xb

B.‘\\017’

C. \

D.‘\\xaa’

B. double int_;

C. char For;

D. float USA;

B. _0

C. _int

D. sizeof(运算符)

B. _2Test C. 3Dmax

D. A.dat

B. _1_2

C. int_2_

D. 2_int

B. 中划线

C. 数字字符

D. 下划线

D. 经过编译解释才能执行

不属于C++语言关键字的是( )。

A.int B.break C.while D.character 42.

是C++语言提供的合法关键字的是( )。

A.Float B.signed C.integer D.Char 43.

下列说法中,错误的是( )。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号

B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数

(二)填空题

1.一个C++源程序至少有并且只能有一个 main(主)函数。 2. 以下程序运行后的输出结果是 1012a 。

#include #include int main() {

int a=10;

cout<3.以下程序运行后的输出结果是( 25 21 37 ) 。

void main() {

int a,b,c; a=25;b=025;c=0x25;

cout<

4.以下程序运行后的输出结果是 2 1 。

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

5. 结构化设计中的三种基本结构是__顺序结构__、__选择结构__、__循环结构__。 6.C++语言源程序文件的后缀是___.cpp___,经过编译后生成文件的后缀是__.obj__,经过链接后生成文件的后缀是__.exe__。

7. 一个函数由两部分组成,它们是__函数首部__、__函数体__。 8. 若x和y均为int型变量,则以下语句的功能是__交换变量x,y的值__。 x+=y; y=x-y; x-=y;

二、运算符部分试题:

(一)单选题

1.

以下程序的输出结果是( )

void main() { int a=1,b=2,c=3,d=4; cout<<(a

} A. 4

B. 3

C. 2

15.

下列运算符中优先级最高的运算符是( ) A. <=

B. =

C. %

16.

以下程序的输出结果是( ) main() {

int a=3,b=4; cout<<(a<=b)<

B. 4

C. 1

17.

在C++语言中,以下非法的表达式是( ) A. x++ B. i=j==0

C. (char)(65+3) D. x+1=x+1

18.

在C++语言中,以下非法的赋值语句是( ) A. j++;

B. ++(i+1);

C. x=j>0;

19.

表达式3.6-5/2+1.2+5%2的值是( )

D. 1

D. &&

D. 0

D. k=i==j;

A. 4.3 20.

B. 4.8 C. 3.3 D. 3.8

设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( ) A. 3 21.

设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( ) A. 10 22.

以下程序的输出结果是( ) void main() {

int i=10,j=1;

cout<

以下程序的输出结果是( ) void main() {

int x=100,y=200; cout<<(x,y)<

以下程序的输出结果是( ) void main() {

int x=10,y=3,z;

cout<<(z=(x%y,x/y))<

int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( ) A. k++ 26.

以下程序的输出结果是( )

B. k+=1

C. ++k

D. k+1

B. 0

C. 4

D. 3

B. 100 D.200 100

C. 100 200

B. 10,2

C. 9,1

D. 10,1

B. 20

C. 40

D. 30

B. 0

C. 9

D. -12

void main() { int x,y,z; x=y=1; z=x++,y++,++y;

cout<

A. 2,3,3 27.

设x、y、t均为int型变量,执行了以下程序后,变量y 的值为( )。 void main() { int x,y,t; x=y=3; t=++x||++y; cout<

设int x=-1;执行表达式++x||++x||++x||++x,x的值是( ) A. 0 45.

逻辑运算符两侧运算对象的数据类型( )。 A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据 46.

以下关于运算符优先顺序的描述中正确的是( )。 A.关系运算符<算术运算符<赋值运算符<逻辑与运算符 B.逻辑与运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑与运算符<关系运算符<算术运算符 D.算术运算符<关系运算符<赋值运算符<逻辑与运算符 48.

判断char型变量s是否为小写字母的正确表达式是( )。 A.’a’ <= s<=’z’ B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 49.

B. 1

C. 2

D. 4

B. 2

C. 3

D. 4

B. 2,3,2

C. 2,3,1

D. 2,2,1

if (a

A.1 B.2 56.以下switch语句结构哪一个是正确的?(A.

void main() {

int a=1,b=0,c1,c2,x,y;

switch (a+b); {

case 1: y=a+b; break; case 0: y=a-b; break;

} } B.

void main() {

int a=1,b=0,c1,c2,x,y;

switch a ( ) {

case c1: y=a-b; break; case c2: x=a*b; break;

default:x=a+b; } } C.

void main() {

int a=1,b=0,c1,c2,x,y;

switch (a*a+b*b) C.3 )

D.4 {

case 3: case 1: y=a+b; break; case 3: y=b-a; break; }

} D.

void main() {

int a=1,b=0,c1,c2,x,y;

switch (a*a+b*b) {

default:y=a*b;break; case 3: x=a+b; break; case 10:

case 11:y=a-b; break; } }

57.假定等级和分数有以下对应关系:

等级:A 分数:85——100 等级:B 分数:60——84 等级:C 分数:60以下

对于等级grade输出相应的分数区间,能够完成该功能的程序段是(A. void main() { char grade; cin>>grade; switch (grade) {

case 'A':cout<<\ case 'B':cout<<\ case 'C':cout<<\ default:cout<<\ }

} B. void main()

)。 { } C. void main() { } D. void main() {

char grade; cin>>grade; switch (grade) {

case 'A':cout<<\

break; break;

case 'B':cout<<\char grade; cin>>grade; switch (grade) {

case 'A':cout<<\break;

case 'B':cout<<\break;

case 'C':cout<<\default:cout<<\} char grade; cin>>grade; switch (grade) {

case 'A':cout<<\break;

case 'B':cout<<\ case 'C':cout<<\ default:cout<<\}

} 58.

default:cout<<\ }

break;

case 'C':cout<<\

当执行以下程序段时,程序将( )。

void main() { int x=-1; do {x=x*x;} while (!x); }

A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无数多次 D.系统将提示有语法错误 59.

若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是 ( )。

for (i=5;i;i--) for (j=0;j<4;j++) {…}

A.20 B.24 C.25 D.30 60.

有以下语句:

i=1;

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

与以上语句序列不等价的有( )。 A. for(i=1; ;i++) {sum+=i;if(i==100)break;} B. for(i=1;i<=100;){sum+=i;i++;} C. i=1;for(;i<=100;)sum+=i;

D. i=1;for(; ;){sum+=i;if(i==100)break;i++;} 61.

标有/**/的语句的执行次数是( )。

int y,i;

for(i=0;i<20;i++) {if(i%2==0)continue; y+=i;/**/

}

A.20 B.19 C.10 D.9

(二)填空题:

2. #include 0 void main() { int i,t=0;

for(i=5;i>=0;i--) t*=i; cout<

写成下列程序的输出结果: #include void main() {

int i=1; while(i<=15)

if(++i%3!=2) continue;

else cout<

4. 输入a,输出结果是 very good

输入c,输出结果是 pass 。 #include void main() { char n; cin>>n; switch(n)

{ case 'a':case 'A':cout<<\ case 'b':case 'B':cout<<\ case 'c':case 'C':

case 'd':case 'D':cout<<\ case 'e':case 'E':cout<<\

default:cout<<\ } }

5. 以下程序的功能是计算:1-2+3-4??+99-100

void main() { int i=1,j=1,s=0; while( i<=100 ) { s+= i*j ; i++;

j=-j ; } cout<

6. 若从键盘输入58,则输出结果是_585858_______。 #include void main() { int a; cin>>a;

if (a>50) cout<40) cout<30) cout<

7. 下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在【】内填空。

X 2>x;

if (【1】(x>2)&&(x<=10)) y=x*(x+2); else if (【2】((x>-1)&&(x<=2))) y=1/x; else if (x<=-1) y=x-1; else 【3】y=-1; if (y!= -1) cout<

y x(x+2) 1/x x-1 }

8. 以下程序是对用户输入的字母进行大小写转换。请在【】内填入正确内容。

void main() { char ch;

cout<<”please input a letter:”; cin>>ch;

if (【1】(ch>=’A’) && (ch<=’Z’)) ch=ch+32; else if (ch>=’a’ && ch<=’z’) 【2】ch=ch-32;

cout<<” the converted letter is<

9. 以下程序运行后的输出结果是______20 0_______。 void main()

{

int x=10, y=20, t=0;

if (x==y) t=x; x=y; y=t; cout<

}

10. 执行以下语句后,x、y和z 的值分别为___1,0,0__________。

int x,y,z; x=y=z=0;

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

11. 程序运行结果是___ 135______。 #include void main() { int i;

for(i=1;i+1;i++) { }

if(i>4) {

cout<

cout<

}

(三)编程题

1.

百钱百鸡:100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只? 2.输出九九乘法表。

四、数组与指针部分试题:

(一)单选题

3.

以下数组定义中错误的是( )

A. int x[][3]={0}; B. int x[2][3]={{1,2},{3,4},{5,6}}; C. int x[][3]={{1,2,3},{4,5,6}}; D. int x[2][3]={1,2,3,4,5,6}; 4.

以下能正确定义二维数组的是( ) A. int a[][3]; 5.

设有char array[]=\

则数组array所占的空间字节数为( ) A. 4 6.

对于以下定义正确的叙述为( )

char x[]=\

char y[]={'a','b','c','d','e','f','g'}; A. 数组x和数组y等价

33.

以下叙述中正确的是( )

B. 数组x和数组y的长度相同

D. 数组x的长度大于数组y的长度

C. 数组x的长度大于数组y的长度

B. 5

C. 6

D. 7

B. int a[][3]={2*3};

C. int a[][3]={}; D. int a[2][3]={{1},{2},{3,4}};

A. 可以在一个函数中调用另一个函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其它函数之前 D. 所有被调用函数一定要在调用之前进行定义 34.

以下说法中正确的是( )

A. C++语言程序总是从第一个函数开始执行

B. 在C++语言程序中,要调用的函数必须在main()函数中定义 C. C++语言程序总是从main()函数开始执行

D. C++语言程序中的main()函数必须放在程序的开始部分 35.

以下程序的输出结果是( ) void main( ) {

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; cout<<*(p+2)<

以下程序的输出结果是( ) void main() {

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; cout<<(*p+9)<

以下程序的输出结果是( ) void main() {

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; cout<<(*p+*q)<

以下不能正确进行字符串赋初值的语句是( )

A. char str[5]= \; B. char str[]=\C. char *str=\

D. char str[5]={'g','o','o','d','!'};

B. 10

C. 8

D. 6

B. 1

C. 10

D. 9

B. 4

C. 1

D. 2

39.

以下程序的输出结果是( ) void main()

{ char str[]=\ cout<

以下程序的输出结果是( ) void main()

{ char str[]=\ cout<<*(p+4)<

以下关于数组的描述正确的是( )。

A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 63.

以下对一维整型数组a的正确说明是( )。

A.int a(10); B. int n=10,a[n]; C.int n; D. const int SIZE=10; cin>>n; int a[SIZE];

int a[n]; 64.

在C++语言中,引用数组元素时,其数组下标的数据类型允许是( )。 A. 整型常量 B. 整型表达式

C. 整型常量或整型表达式 D. 任何类型的表达式 65.

以下对一维数组m进行正确初始化的是( )。

A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]=10*2; 66.

B. u

C. e

D. f

B. 'D'

C. 0

D. '0'

若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( )。

A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 67.

假定int类型变量占用两个字节,其有定义:int

x[10]={0,2,4};,则数组x在内存中所占字节数是( )。 A. 3 B. 6 C. 10

68.

执行下面的程序段后,变量k中的值为( )。 int k=3, s[2]; s[0]=k; k=s[1]*10;

A. 不定值 B. 33 C. 30 D. 10 69.

以下程序的输出结果是( )

void main() {

int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i; cout<

A. 258 B. 741 C. 852 70.

若说明:int a[2][3]; 则对a数组元素的正确引用是( ) 。

A. a(1,2) B. a[1,3] C. a[1>2][!1] D. a[2][0] 71.

若有定义:int b[3][4]={0};则下述正确的是( ) 。

A. 此定义语句不正确 B. 没有元素可得初值0 C. 数组b中各元素均为0

D. 数组b中各元素可得初值但值不一定为0 72.

若有以下数组定义,其中不正确的是( ) 。

A. int a[2][3];

B int b[][3]={0,1,2,3}; C. int c[100][100]={0};

D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 73.

若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )A. t[2][4] B. t[5][0] C. t[0][0] D. t[0,0]

D. 20

D. 369 。

74.

在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。

A. 4 B. 1 C. 2 D. 5 75.

在定义int n[5][6]后第10个元素是( )。

A. n[2][5] B. n[2][4] C. n[1][3] D. n[1][4] 76.

下述对C语言字符数组的描述中错误的是( )。

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出

C. 可以在赋值语句中通过赋值运算符\对字符数组整体赋值 (strcpy()) D. 字符数组可以像普通数组那样初始化 77.

下述对C++语言字符数组的描述中正确的是 ( )。 A.

任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间

B. 一维数组的元素在引用时其下标大小没有限制 C.

任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素 78.

不能把字符串:Hello!赋给数组b的语句是( )。

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '}; B. char str[10];str=\C. char str[10];strcpy(str,\D. char str[10]=\79.

合法的数组定义是( )。

A. int a[]=\ C. int s=\80.

以下程序运行后,输出结果是( )。 main() {

char arr[2][4];

strcpy(arr[0],\

B. int a[5]={0,1,2,3,4,5}; D. char a[]={0,1,2,3,4,5};

arr[0][3]='&';

cout<

}

A. you&me B. you C. me D. err 99.

若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是( )。 A. p=q; B. *p=*q; C. a=*q; D. q=a; 100.

若定义:int a=511, *b=&a;,则cout<<*b;的输出结果为:( ) A. 无确定值 B. a的地址 C. 512 D. 511 101.

已有定义 int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是( )。 A. a=*p1+*p2; B. p1=a; C. p1=p2; D. a=*p1*(*p2); 102.

变量的指针,其含义是指该变量的( )。

A. 值 B. 地址 C. 名 D. 一个标志 103.

若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是( )。 (1) int *p=&a; (2) *p=a;

A. 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值。 B. (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p。 C. (1)在对p进行说明的同时进行初始化,使p指向a;

(2)变量a的值赋给指针变量p。

D. (1)在对p进行说明的同时进行初始化,使p指向a; (2)将变量a的值赋予*p。 104.

若有语句int *p, a=10; p=&a; 下面均代表地址的一组选项是( )。

A. a, p, *&a B. &*a, &a, *p C. *&p, *p, &a D. &a, &*p, p 105.

若需要建立如图所示的存储结构,且已有说明double

则正确的赋值语句是( )。

p

0.2345 x

*p,

x=0.2345;

A. p=x; B. p=&x; C. *p=x; D. *p=&x; 106.

有如下语句:int

m=6, n=9, *p, *q;

p=&m; q=&n;

如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是( )。

p

q p

q m

n m n

A. *p=*q; B. p=*q; C. p=q; D. *p=q;

107.

下面判断正确的是( )。

A. char *s=\girl\; 等价于 char *s; *s=\girl\; B. char s[10]={\girl\}; 等价于 char s[10]; s[10]={\girl\}; C. char *s=\girl\; 等价于 char *s; s=\girl\; D. char s[4]= \boy\, t[4]= \boy\; 等价于 char s[4]=t[4]= \boy\ 108.

以下不能正确进行字符串赋初值的语句是( )。

A. char str[5]= \good!\; B. char *str=\good!\; C. char str[]=\good!\;

D. char str[5]={'g', 'o','o', 'd'};

109.

下面程序段的运行结果是( )。 char *s=\abcde\; s+=2; cout<< s;

A. cde B. 字符'c' C. 字符'c'的地址 D. 无确定的输出结果110.

设有如下的程序段:char s[]=\girl\, *t; t=s;则下列叙述正确的是( )。 A. s和t完全相同

B. 数组s中的内容和指针变量t中的内容相等 C. s数组和t指针指向的字符串没有关系 D. *t与s[0]相等 111.

若有说明语句:char

s[]=\it

is

a

example.\,

*t=\it

is

example.\;则以下不正确的叙述( )。

A. s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址 B. t指向另外的字符串时,字符串的长度不受限制

a

C. t变量中存放的地址值可以改变 D. s中只能存放16个字符 112.

若已定义char s[10];则在下面表达式中不表示s[1]地址的是( )。

A. s+1 B. s++ C. &s[0]+1 D. &s[1] 113.

下面程序段的运行结果是( )。(注:└┘代表空格) main() { char s[6];

s=\abcd\; cout<< s; }

A. \abcd\ B. \abcd└┘\ 113.

下列程序的输出结果是( )。

main() {

int a[]={1,2,3,4,5,6,7,8,9,0}, *p; p=a;

cout<<*p+9<

A. 0 B. 1 114. 有以下程序: #include #include int main() {

char *p=\cout<

程序运行后的输出结果是( )。

A. 12 B. 15 115.

有以下程序: int main() {

C. \\\abcd\\\ C. 10 C. 6 D. 编译出错 D. 9 D. 5

int a[10]={9,8,7,6,5,4,3,2,1,0}, *p=a+5; cout<<*--p<

输出结果是( )。

A. 非法 B. a[4]的地址 C. 5 D. 3 116. 有以下函数:

char *fun(char *s) { … return s; }

该函数的返回值是( )。

A. 无确定值 B.C. 一个临时存储单元的地址 D.

(二)填空题:

1. 设有定义语句:int a[][3]={{0},{1},{2}}; 则数组元素a[1][2]的值为 0 。 2.

在C++语言中,有如下语句:

int a[]={10,20,30,40,50,60},*p; p=a+3; cout<<*p++<

以下程序运行后的输出结果是 15 。 int a[2][3]={1,2,3,4,5,6}; int m,*p; p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4)); cout<

以下程序运行后的输出结果是 ab 。 #include void main() {

形参s中存放的地址值 形参s自身的地址值 char s[]=\ s[3]='\\0'; cout<

以下程序运行后的输出结果是 D 。 #include void main() {

char s[]=\ cout<<*(p+3)<

以下程序运行后的输出结果是 4 。 char str[]=\ cout<

以下程序运行后的输出结果是 5 。 #include #include void main() {

char str[]=\

cout<

以下程序运行后的输出结果是 5 4 。 #include #include void main() {

char a[]={'\\1','\\2','\\3','\\4','\\0'}; cout<

输入20个整数到一维数组,统计正整数的个数及其和

void main()

{ int a[20],i,sum,count;

sum=count= 0 ; for(i=0;i<20;i++) cin>>a[i]; for(i=0;i<20;i++) if( a[i]>0 )

{ count++; sum+=a[i] ; } cout<

9.输入10个整数到一维数组,输出其中最大数和最小数

void main()

{ int a[10],i,max,min; for(i=0;i<10;i++) cin>>a[i];

max=min= a[0] ; for(i=1;i<10;i++)

if(a[i]>max) max=a[i] ; else if( a[i]

10.输入一个字符串,将其倒序后输出

void main() { int i,j; char st[60],ch; cin>>st;

for(i=0,j= strlen(st)-1 ; i<=j ;i++,j--) { ch=st[i];

st[i]=st[j] ; st[j]=ch; }

cout<

11. C++语言中,数组元素的下标下限为 __0______。

12. C++程序在执行过程中,不检查数组下标是否__越界______。 13.

以下程序段的输出结果是_Hello_______。

void main() {

char b[]=\ b[5]='\\0'; cout<

14. 从键盘输入由5个字符组成的单词,判断此单词是不是hello,并显示结果。 #include void main() {

char str[ ]={'h','e','l','l','o'}; char str1[5]; 【1】int i,flag; for(i=0;i<5;i++) 【2】cin>>str1[i] ; flag=0;

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

if 【3】(str[i]!=str1[i]) { flag=1; break;} if(flag)

cout<<\else

cout<<\}

15. 请填空:

建立如图所示存储结构所需的说明语句是【1】char c,*p。 建立如图所示给c输入数据的输入语句是【2】 cin>>c。 建立如图所示存储结构所需的赋值语句是【3】 p=&c。

16. 若有定义和语句:int a[4]={1,2,3,4},*p; p=&a[2]; ,则*--p的值是___2_____。

p

W c

(三)编程题:

1.输入字符串,将其中的非数字字符删除后,输出整个字符串

五、函数部分的试题:

(一)单选题

81.

C++语言程序中,当函数调用时( )。 A. 实参和形参各占一个独立的存储单元 B. 实参和形参共用一个存储单元 C. 可以由用户指定是否共用存储单元 D. 计算机系统自动确定是否共用存储单元 82.

关于return语句,下列正确的说法是( )。 A. 在主函数和其他函数中均要出现 B. 必须在每个函数中出现 C. 可以在同一个函数中出现多次 D. 只能在除主函数之外的函数中出现一次 83.

一个函数返回值的类型是由( )决定的。 A. return语句中表达式的类型 B. 在调用函数时临时指定 C. 定义函数时指定的函数类型 D. 调用该函数的主调函数的类型 84.

在C++语言的函数中,下列正确的说法是( )。 A. 必须有形参 B. 形参必须是变量名 C. 可以有也可以没有形参 D. 数组名不能作形参 85.

以下描述正确的是( )。

A. 函数调用可以出现在执行语句或表达式中 B. 函数调用不能作为一个函数的实参 C. 函数调用可以作为一个函数的形参 D. 以上都不正确 86.

在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。 A. 地址传递 87.

当调用函数时,实参是一个数组名,则向函数传送的是( )。 A. 数组的长度 88.

如果在一个函数的复合语句中定义了一个变量,则该变量( )。 A. 只在该复合语句中有效,在该复合语句外无效 B. 在该函数中任何位置都有效 C. 在本程序的源文件范围内均有效 D. 此定义方法错误,其变量为非法变量 89.

下列说法不正确的是( )。

A. 主函数main中定义的变量在整个文件或程序中有效 B. 不同函数中,可以使用相同名字的变量 C. 形式参数是局部变量

D. 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 90.

在一个源程序文件中定义的全局变量的有效范围是( )。 A. 本源程序文件的全部范围 B. 一个C程序的所有源程序文件 C. 函数内全部范围

D. 从定义变量的位置开始到源程序文件结束 91.

以下叙述中不正确的是( )。

A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量

C. 在一个函数内定义的变量只在本函数范围内有效

D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 93.

若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的

个数是( )。 A.3 95. 有如下程序

int func(int a,int b)

B.4 C.5

D.6

B. 数组的首地址 D. 数组每个元素中的值

C. 数组每一个元素的地址

B. 单向值传递

C. 由实参传给形参,再由形参传回实参 D. 传递方式由用户指定

{ return(a+b);} void main() {

int x=2,y=5,z=8,r; r=func(func(x,y),z); cout<

该程序的输出的结果是( )。

A. 12 B. 13 C. 14 96. 有以下程序

float fun(int x,int y) { return(x+y); } void main() {

int a=2,b=5,c=8;

cout<<(fun((int)fun(a+c,b),a-c)))<

程序运行后的输出结果是( )。 A. 编译出错 B. 9

C. 21 97.

以下程序的输出结果是( )。

int f( int b[ ], int m, int n) {

int i,s=0;

for(i=m;i

void main() {

int x, a[ ]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf(\}

A. 10 B. 18 C. 8 98.

以下程序的输出结果是( )。

int a, b;

D. 15 D. 15

D. 9.0

void fun() {

a=100; b=200; }

void main() {

int a=5, b=7; fun();

cout<

A. 100200

B. 57

C. 200100 D. 75

六、文件部分的试题

1、C++中输入流类是( cin )类,该类实例的“>>”运算符作用是将数据从( 输入流 )读出来,写入( 变量 )中。

2.

C++中输出流类是( cout )类,该类实例的“<<”运算符作用是将数据从( 变量 )读出来,写入( 显示器 )中。

3.要使用输入输出流类,在include语句中应该包含( iostream.h )头文件。

本文来源:https://www.bwwdw.com/article/mjjr.html

Top