C++理论题库.docx

上传人:b****1 文档编号:13650930 上传时间:2023-06-16 格式:DOCX 页数:33 大小:26.06KB
下载 相关 举报
C++理论题库.docx_第1页
第1页 / 共33页
C++理论题库.docx_第2页
第2页 / 共33页
C++理论题库.docx_第3页
第3页 / 共33页
C++理论题库.docx_第4页
第4页 / 共33页
C++理论题库.docx_第5页
第5页 / 共33页
C++理论题库.docx_第6页
第6页 / 共33页
C++理论题库.docx_第7页
第7页 / 共33页
C++理论题库.docx_第8页
第8页 / 共33页
C++理论题库.docx_第9页
第9页 / 共33页
C++理论题库.docx_第10页
第10页 / 共33页
C++理论题库.docx_第11页
第11页 / 共33页
C++理论题库.docx_第12页
第12页 / 共33页
C++理论题库.docx_第13页
第13页 / 共33页
C++理论题库.docx_第14页
第14页 / 共33页
C++理论题库.docx_第15页
第15页 / 共33页
C++理论题库.docx_第16页
第16页 / 共33页
C++理论题库.docx_第17页
第17页 / 共33页
C++理论题库.docx_第18页
第18页 / 共33页
C++理论题库.docx_第19页
第19页 / 共33页
C++理论题库.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++理论题库.docx

《C++理论题库.docx》由会员分享,可在线阅读,更多相关《C++理论题库.docx(33页珍藏版)》请在冰点文库上搜索。

C++理论题库.docx

C++理论题库

1)设a、b和c都是型变量,且3、4、5,则下面的表达式中,值为0的表达式是!

((a

2)设12,则执行完语句*a后,a的值是-264

本题的考查点是赋值表达式的求解。

第一步:

a*144;(此时12)

第二步:

144相当于144,144132;(此时132)

第三步:

相当于,264;

所以该表达式最后的值应当为-264。

故本题答案为D。

3)下列语句分别是不同程序中的第一个输入输出语句。

若去掉其中的"<<",输出效果将发生变化的是<<<<(5)<<357。

4)若语句:

<<('>')<<(5)<<3141512<<(5)<<"!

";是程序的第一个输出语句,则输出结果是3141512>>!

本题主要考查了中格式控制数据的输入输出。

在的流操作中,如果输入字符不足指定字符宽度(可以用来设置要输出的字符的宽度),可以用函数指定用来填充的字符。

在本例中,设置填充字符为">",然后设置了字符输出宽度为5,对于数据,其长度大于5,故直接输出,而对于"!

",其长度为3,不足5,故要在前面填充上两个">",故本题输出应为"3141512>>!

"。

5)有如下程序:

<>

<>

;

()

{

('*');

<<<<(4)<<123<<""<<;

0;

}

执行这个程序的输出结果是123*

本题主要考查了字符串与字符数组。

函数用来设置要填空的字符串,用来表示左对齐,(4)用来表示下一个输出占4个字符的长度。

故本题输出应为"123*"。

6)下面程序

<>

()

{100,10,20,1=5,2=0;

(a

(15)

(1)1;

(2)10;

1;

<

}

的输出是-1。

本题的考查点是判断语句的循环嵌套。

第一个判断值为真,过渡到下一个判断,第二个判断为真,过渡到第三个判断......如此循环,在打印输出语句的前一行,程序给变量x赋了值,为-1,所以,无论前期如何变化,最后的x值依然为-1。

7)有以下程序

<>

()

{01;

>>n;

{1;2;}

();

<

}

若要使程序的输出值为2,则应该从键盘给n输入的值是-3

本题的考查点是语句

此语句的一般形式为:

语句

(表达式)

其特点为:

先执行语句,后判断表达式。

它是这样执行的:

先执行一次指定的内嵌的语句,然后判别表达式,当表达式的值为非零("真")时,返回重新执行该语句,如此反复,直到表达式的值等于0为止,此时循环结束。

当1时,11;21不成立,结束循环,此时s值为1,不符合题意;

当3时,11;21成立,继续循环,1=223不成立,此时s值为2,符合题意;

8)关于语句的描述不正确的是语句可用在语句中,它可使执行的流程跳出当前的语句。

9)以下程序执行后的值是以下程序执行后的值是不确定

<>

()

{i,;

(1<6);

<<<<;

}

变量在使用时未赋初值,所以无法确定最终的值。

本题答案为C。

10)t为类型,进入下面的循环之前,t的值为0,

(1)

{......}

则以下叙述中正确的是循环控制表达式的值为1

11)有如下程序

<>

()

{

a[3][3]={{1,2},{3,4},{5,6}},=0;

(i=1;i<3;)

(j=0;j<=i;)

sa[i][j]];

<

}

该程序的输出结果是18。

题中的外循环只执行了2次:

第1次:

a[1][0]=3,a[1][1]=4,所以s=7;

第2次:

a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。

12)有以下程序

<>

()

{a[][3]={{1,2,3},{4,5,0}},(*)[3];

;

(0<3)

(i<2)[1][i][1][i]-1;

[1][i]=1;

<

}

执行后输出结果是7

本题的考查点是二维数组和指针数组的应用。

在所给的程序中,指向二维数组首地址a,接着执行下面的循环,当0或1时,数组元素[1][i]的值减1,当2时,数组元素[1][i]的值为1,此时得到新的二维数组a[][3]={{1,2,3},{3,4,1}},最终打印结果就是2+4+1=7。

13)以下程序中的函数的功能是将a所指数组中的内容进行逆置。

<>

(a[]n)

{;

(0<2)

{[i][i][1][1];}

}

()

{b[10]={1,2,3,4,5,6,7,8,9,10};0;

(b,8);

(6<10)[i];

<

}程序运行后的输出结果是22。

本题的考查点是对数组的操作。

本题并不是将整个数组中的内容逆置,而是逆置前8个元素。

逆置后的数组为:

8,7,6,5,4,3,2,1,9,10通过循环计算b[6][7][8][9]即2+1+9+10=22。

14)在"a[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是6

本题考查二维数组的使用。

数组可以在定义的时候给出其初始化的值,如果所给的比数组的大小少,则后面缺省的是0。

15)下列描述中不正确的是可以对整型数组进行整体输入、输出

本题的考查点是对数组的理解。

语言规定只能逐个引用数组元素而不能一次引用整个数组。

字符数组的输入、输出可以将整个字符串一次输入或输出。

所以,选项C的说法是不正确的。

16)对于下列语句动态分配的内存,其释放语句正确的是[]

*[10];

17)有以下程序

<>

f1(y)

{x>;}

f2(y)

{x>;}

()

{435;

1();1();

2();2();

;

<

}

执行后输出的结果是5,4,3

本题的考查点是条件运算符。

条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中唯一的一个三目运算符。

条件表达式的一般形式为

表达式1?

表达式2:

表达式3

条件运算符的执行顺序:

先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。

若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。

弄清以上几点,本题也就不难了。

18)在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用内联函数

19)下列有关内联函数的叙述中,正确的是内联函数是通过编译器来实现的

在中使用关键字来定义内联函数。

关键字放在函数定义中函数类型之前。

不过编译器会将在类的说明部分定义的任何函数都认定为内联函数,即使它们没有说明。

一个内联函数可以有,也可以没有语句。

内联函数在程序执行时并不产生实际函数调用,而是在函数调用处将函数代码展开执行。

内联函数是通过编译器来实现的。

20)为了取代C中带参数的宏,在中使用内联函数

21)下面程序的输出结果是123

<>

;

()

{

a;

;

<

}

()

{

(0<3)

();

0;

}

22)以下程序的结果是57

<>

;

()

{100;200;}

()

{57;

();

<

}

本题主要考查的是语言中的变量作用域。

全程变量是可以在子函数中对其值作改变,且它也可作为函数间的值传递。

但当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变量将被屏蔽。

所以本题主函数的局部变量a,b把同名的全程变量屏蔽了。

23)执行下列程序语句后,屏幕输出为4。

<>

;

5;

()

{

3;

;

;

<

0;

}

中变量有全局变量和局部变量。

不在任何函数之内声明的变量即为全局变量。

当在一个函数中声明的局部变量与全局变量重名时。

局部变量会将全局变量屏蔽掉。

如果要引用全局变量可以变量名的前面加“:

:

”。

24)有如下程序:

<>

;

()

{

*p;

*p=9;

<<"p:

"<<*p;

0;

}

编译运行程序将出现的情况是运行时有可能出错

25)下面程序

<>

()

{

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

<<*

(2)<<;

}

的输出是3。

*语句是使指针p指向数组a的第一个数组元素,因此*

(2)即是数组a的第3个元素的值,即a[2]。

26)下列程序的输出结果是102030

<>

;

n[][3]={10,20,30,40,50,60};

()

{

(*p)[3];

;

<

0;

}

二维数组每一行都对应一个指针,这个指针指向每行第一个元素。

题中p[0][0]与n[0][0]对应,*(p[0]+1)与n[0][1]对应,(*p)[2]与p[0][2]对应。

27)有以下程序

<>

<>

{*;};

()

{*p,*q,*r;

(*);

(*);

(*);

>10>20>30;

>>;

<<>>>;

}

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

>即为10,>>即为>,为30,所以>>>10+30=40。

28)设有以下说明语句

{x;z;};

则下面的叙述中不正确的是是结构体类型名

是结构体变量名

29)以下程序的功能是:

建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请为下划线处有号码的选择出正确的选项。

<>

{;

*;};

*(*s)

{*h,*p,*q;

(*);

;

(*'\0')

{(*);

>*s;

>;

;

;

}

>'\0';

h;

}

()

{[]="";

*;

();

...

}

本题要求建立一个类型的数据链表,从()函数中可知,是"头指针"变量,它的值是由()带回的一个结构体类型的指针变量,指向所建立的表的第一个数据,所以第48空应该填*。

30)写出执行完下列程序段以后指定的变量的值:

;

;

;

!

()();

已知,则0。

31)下列语句段的输出结果是1024

1101;

(k<)

{

m*=2;

;

}

<

循环是当型循环,本题的条件是k<;k的初始值为1,而每次循环都会执行,循环执行10次,故最后输出1024。

32)以下程序中,函数的功能是:

求出M行N列二维数组每列元素中的最小值,并计算它们的和值。

和值通过形参传回主函数输出。

请填空。

M2

N4

(a[M][N]*)

{0;

(0<)

{0;

(1<)

(a[k][i]>a[j][i]);

[k][i];

}

*;

}

()

{x[M][N]={3,2,5,1,4,1,8,3};

();

<

}

33)以下程序中,主函数调用了函数,实现在N行M列的二维数组中,找出每一行上的最大值。

请填空:

N3

M4

(x[N][M])

{;

(0<)

{0;

(1<)

(x[i][p]

<<""<

}

}

()

{x[N][M]={1,.5,7,4,2,6,4,3,8,2,3,1};

(x);

}

34)以下程序的功能是调用函数计算:

1-2+3-4+…+9-10,并输出结果。

请填空。

(n)

{01;

(1;i<;)

{*f;

;

}

m;

}

()

{<<""<<(10)<<"\n";}

35)以下程序运行后的输出结果是3,2,2,3。

(y)

{;

<

()

{23;

();

<

}

被调函数()实现的功能是交换变量x和y的值并打印,由于该函数无返回值,所以在主函数中打印出的x和y的值仍然为2,3。

36)下面程序的运行结果是:

35。

(**b)

{*t;

;

}

()

{35,*,*;

();

<<*p<<*q;

}

观察本题的程序可以看出,被调函数()实现的功能是交换变量的值,但由于函数不返回任何值,所以在()函数中打印出的变量的值并没有发生交换,即仍为3和5。

1)若x和y都是型变量,100、200,且有下面的程序片段

<<();

上面程序片段的输出结果是2

本题的考查点是逗号表达式。

在()中的","是一个特殊的运算符,叫做逗号运算符,它的一般形式为:

表达式1,表达式2,求解过程为:

先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值,()的值为200,所以输出结果为200。

2)以下程序的输出结果是101091

<>

()

{x=10=10;

(i=0>8=)

<<<<""<

}

语句的一般格式为:

(表达式1;表达式2;表达式3)语句执行中只要表达式2为真,则执行语句中指定的内嵌语句。

所以,本题在条件为真的情况下,先执行函数。

是先使用后运算。

3)请读程序:

<>

<>

()

{

a,b;

(a=1,b=1;a<=100;){

(b>=20);

(31){b3;;}

b5;

}

<

}

上面程序的输出结果是8。

"%"是求余运算符,执行第一次循环时,条件(31)为真,4,继续下一次循环,如此反复,当22时,条件(b>=20)为假,跳出循环,此时共循环8次,即8。

4)当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为1。

5)以下程序中函数的功能是对a所指数组中的数据进行由大到小的排序。

<>

(a[]n)

{;

(0<1)

(1<)

(a[i]

}

()

{[10]={1,2,3,4,5,6,7,8,9,10};

([3],5);

(0<10)<<[i];

<<;

}程序运行后的输出结果是1,2,3,8,7,6,5,4,9,10,。

本题的考查点是对数组的操作。

本题并不是对数组的所有元素进行排序,而是对从a[3]开始往后的4个元素进行排序。

6)有以下程序

<>

()

{a[][3]={{1,2,3},{4,5,0}},(*)[3];

;

(0<3)

(i<2)[1][i][1][i]-1;

[1][i]=1;

<

}

执行后输出结果是7

本题的考查点是二维数组和指针数组的应用。

在所给的程序中,指向二维数组首地址a,接着执行下面的循环,当0或1时,数组元素[1][i]的值减1,当2时,数组元素[1][i]的值为1,此时得到新的二维数组a[][3]={{1,2,3},{3,4,1}},最终打印结果就是2+4+1=7。

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

<>

()

{[20]="\0\t\\";

<<()<<()<<;

}

本题主要考查语言的字符串与库函数。

语言中字符串是以'\0'字符结束的,且()函数计算的是'\0'字符前的所有字符的个数。

本题中()应为5。

数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。

()函数是计算变量或数组的所分配到的内存空间的大小。

所以本题的()为20。

8)执行下列程序后,输出的结果是10。

(n)

{

(n<=1)

1;

(1);

}

()

{

<<(4)<<;

0;

}

9)对于函数(*b);的重载函数,不正确的是(*c);。

10)在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用内联函数

11)以下程序的输出结果是15

<>

f()

{0;

1;

;;

s;

}

()

{0;

(0<5)();

<

}

本题主要考的是对变量存储属性的理解,一个变量被指定为静态变量,在编译时就为其分配了存储空间,程序一开始执行便被建立,直到该程序执行结束都存在,而不像动态变量只存在于函数或分程序被调用期间。

在函数多次被调用的过程中静态局部变量的值具有可继承性。

在第一次调用函数结束时,i的值是1,返回值1,第二次调用函数时,i的值保侍为1,执行自加操作后,i的值变成了2,到了第三次调用时,i的值保持了上次调用结束时的值,再执行自加,值变成了3。

到第五次调用结束时,i的值是5。

而s的值不具备i的这种可继承性,每次调用时,它都先被重新赋值为1,再执行下面的操作。

12)执行下面程序后,输出的结果是

<>

;

*x[]={"","",""};

f(*z[])

{

<<*<<;

}

()

{

**y;

;

f(y);

0;

}

本题考查的是字符指针的用法。

解题思路如下:

x是一个指针数组,当将y传递给函数f时,便将x的地址传递给f,式子*中,的优先级更高一点。

所以执行完后,z是指向“”的。

故最后输出结果是“”。

13)若有说明2,*;,则能完成赋值功能的语句是**;

本题考查语言中指针赋值运算。

指针是一种特殊的变量,它是用来存放变量地址的变量。

指针定义时可以为其赋初值。

只有指针被赋了值后才能对其使用。

14)下列语句中,错误的是;

15)有如下程序:

<>

;

()

{

[100],*p;

<<"a:

";

>>;

;

(0;*'\0');

<

0;

}

运行这个程序时,若输入字符串为

则输出结果是7

本题考查的是流对象。

在采用输入字符串时,将以空格分割各字符串,因此在输入"",只将""赋值给,而下面循环的目的是计算该字符串的长度,不难得出该字符的长度为7。

16)有以下程序:

<>

<>

{i;[2];

}a;

()

{[0]=13;

[1]=0;

<<<<;

}

程序的输出结果是(注意:

[0]在低字节,[1]在高字节)13

本题的考查点是共用体类型数据的特点。

根据共用体的定义可知:

共用体a的成员i和成员[2]是共用着同一段内存空间,所以,当程序给[0]赋值后,实际上,共用体成员i的值也确定了,为13,所以打印输出的结果应当为13。

17)以下程序的功能是:

建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请为下划线处选择出正确的选项。

<>

{;*;};

*(*s)

{*h,*p,*q);

(*);

;

(*'\0')

{(*);

>*s;

>;

;

}

>'\0';

h;

}

()

{[]="";

*;

();

...

}

18)对于枚举类型的定义语句{36};其中枚举常量的值为。

7

19)已知数组a中的元素个数为n,下列语句的作用是将下标为i的元素移动到下标为1的单元,其中1<

例如,当4,a中原有的数据为1,2,3,4时,则移动后a中元素变为2,3,4,4。

请将语句补充完整:

(0<1)a[i][];1

20)以下程序运行后的输出结果是。

3,2,2,3

(y)

{;

<

()

{23;

();

<

}

21)函数的功能是计算x的n次方。

(n)

{i;1;

(1<)*x;

y;

}

主函数中已经正确定义m、a、b变量并赋值,并调用函数计算:

^4^4-()^3。

实现这一计算的函数调用语句为。

(a,4)(b,4)((),3);

22)有以下程序

f(*x)

{*x;**;}

()

{24;

f();

<

}

执行后输出的结果。

84

23)与数学式子3乘以x的n次方/(21)对应的语言表达式3*()*(1/(2*1))。

24)对于表达式5,5,变量a的值为0

25)有如下程序:

<>

<>

;

()

{

('*');

<<<<(4)<<123<<""<<;

0;

}

执行这个程序的输出结果是123*。

26)有以下程序

<>

()

{15210;

(3)

{0;

1;

(2)

{;

0;

}

}

<

}程序运行后的输出结果是1。

因为3是个常数,所以只执行一次就跳出结构。

即只执行,此时m为1。

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

<>

()

{0;

(<=2)

{;<<<<;}

}

A)B)C)D)

1111

222

33

4

本题考查语言的循环语句。

语言中语句的一般形式如下:

(表达式)

{

语句部分;

}

该语句的执行过程是:

先计算表达式的值,若成立(即值为非零)则重新执行语句部分(循环体),然后再次计算表达式的值,并重复上述过程,直到表达式的值为"假"(值为零)时,退出循环,并转下一语句去执行。

28)若执行下面的程序时从键盘上输入3和4,

<>

()

{;

>>a>>b;

;

(a

*s;

<

}

则输出是16。

本题的考查点是给变量赋值。

用户输入的3和4分别赋给了a和b,在语句进行判断时,因为表达式的值为真,所以b的值将赋给s,s*16,最后的打印结果为16。

29)执行下列语句:

<>

;

()

{

3;

(5)

<<<<;

<

0;

}

程序的输出是5

本题考查的是结构和“”运算符与“=”运算符的区别。

〈条件〉语句1

语句2,语句的执行过程是:

首先判断条件是否为真(不为0),如果为真则执行语句1,否则执行语句2。

本题的条件是5,意思是把5赋予变量a,它将a置5且返回一个真值。

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

<>

();

3;

()

{i;

(1<)();

}

()

{1;

x*1;

<

}

()中定义一个静态局部变量x,它的作用范围仅限于本函数中,而不会影响()函数中的x值,所以()中执行两次循环,第一次调用()函数时,函数中x的初值是1,x*1语句可以写成*

(1),结果x的值变成2,随后输出值2;在第二次调用()函数时,x的值继承了上次调用的运行结果,变成了2,执行了x*1后,x的值是6,故又输出了数字6。

31)有以下程序段

0;

{>>;}(12345<3);

此处循环的结束条件是p的值等于12345或者n的值大于等于3

32)有如下程序

<>

()

{

n[5

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2