C++理论题库.docx
- 文档编号:13650930
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:33
- 大小:26.06KB
C++理论题库.docx
《C++理论题库.docx》由会员分享,可在线阅读,更多相关《C++理论题库.docx(33页珍藏版)》请在冰点文库上搜索。
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)();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 理论 题库