C ++题库以及答案
- 格式:pdf
- 大小:270.28 KB
- 文档页数:39
c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。
答案:int7. C语言中,用于输入输出的库函数分别是______和______。
答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。
答案:int*9. C语言中,用于定义函数的关键字是______。
答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。
答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。
答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。
结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。
答案:递归函数是一种函数自己调用自己的特殊函数。
递归函数通常用于解决可以被分解为相似子问题的问题。
递归函数需要有一个明确的终止条件,以防止无限递归。
四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。
答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。
C语言考试题库及答案1. 以下不是C语言的特点的是( C )A、C语言简洁,紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言的移植性好2. 一个C程序是由()BA、一个主程序和若干个子程序组成B、一个或多个函数组成C、若干过程组成D、若干子程序组成3.以下描述正确的是( ) CA、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C、在do-while循环体中,不一定要有能使while后面表达式的值变成零(“假”)的操作。
D、do-while循环中,根据情况可以省略while。
4.以下对一维整形数组a的正确说明是( ) DA、int a(10);B、int n=10,a[n];C、int n;D、int a[10];5.以下对二维数组a的正确说明是( ) CA、inta[3][];B、float a(3,4);C、double a[1][4];D、float a(3)(4);6.数组名作为实参传给被调用的函数时,形参获得的是()CA、该数组第一个元素的值B、该数组所有元素的值C、该数组第一个元素的首地址D、该数组所有元素的首地址7. C程序的开始是从()AA、main()函数开始,直到main()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main()函数开始,直到最后一个函数结束8.在C程序中,main()函数的位置()CA、必须作为第一个函数B、必须作为第二个函数C、可以任意D、必须放在它所调用的函数之后9. C编译程序是()CA、C语言的机器语言版本B、一组机器语言指令C、将C源程序编译成目标程序的程序D、是由自己编制的10.以下叙述中错误的是( )CA、C程序经过编译、连接之后形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在文件中C、C语言中的每条可执行语句和非执行语句最终被转换成二进制的机器指令非执行的语句不转换:例如//和/**/是注释的意思D、C语言源程序经编译后生成后缀为.obj的目标程序1.以下不正确的C语言标识符是( )D字母,数字,下划线组成,但是不能以数字开头A、ABCB、abcC、a_bcD、ab.c12.一个C语言程序是由( ) BA、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成13.以下叙述错误的是( ) C算法可以没有输入输入,但是一定不能没有输出A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有个相同的结果14.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i*f值的数据类型为( ) C强制类型转换A、intB、floatC、doubleD、不确定15.以下叙述中错误的是( )CA、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法16.以下叙述中错误的是()CA、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果17.以下选项中关于程序模块化的叙述错误的是()BA、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序18. 关于C语言的符号常量,以下叙述中正确的是()CA、符号常量的名是标识符,必须大写B、符号常量的名是标识符,必须小写C、符号常量是指用一个符号名来代表一个常量D、符号常量的符号名必须是常量19.关于C语言的变量,以下叙述中错误的是()BA、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后使用D、由三条下划线构成的符号名是合法的变量名20.以下选项中合法的变量名是()CA、5aB、A%C、_10_D、sizeof21.在C语言中,char型数据在内存中的存储形式是( ) DA、补码B、反码C、源码D、ASCII码22.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。
cC语言程序的基本单位是__________ A) 程序行 B) 语句 C) 函数 D) 字符C C语言程序的三种基本结构是__________ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构AC语言规定,程序中各函数之间A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用A C语言中可处理的文件类型是( )A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件B C语言可执行程序的开始执行点是( ) A) 程序中第-条可执行语句 B) 程序中第-个函数 C) 程序中的main函数 D) 包含文件中的第-个函数C不是C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char C C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *A C语言中函数返回值的类型是由( )决定。
A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型D C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为___________。
A .该数组的长度 B.该数组的元素个数 C. 该数组中各元素的值 D.该数组的首地址D C语言中数组下标的下限是___________ A、1 B、0 C、视具体情况 D、无固定下限B C语言中提供的合法关键字是__________ A、swith B、cher C、cese D、default D C语言中文件的存取方式是____________________。
A.顺序存取 B.随机存取 C.顺序存取、随机存取均可 D.顺序存取、随机存取均不可C C语言中最简单的数据类型包括A) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型B sizeof(float)是( )A.-种函数调用B.-个不合法的表示形式C.-个整型表达式D.-个浮点表达式C x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);B 表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1D 表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)A 程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是__________ A) 65536 B) 0 C) 有语法错误,无输出结果 D) -1B 当调用函数时,实参是-个数组名,则向函数传送的是__________ A.数组的长度 B.数组的首地址 C.数组每-个元素的地址 D.数组每个元素中的值B对嵌套子程序调用说法正确的是__________。
目录目录 (1)单元练习题一 C语言基础知识 (3)一、判断题 (3)二、单项选择题 (4)三、读程序选择题 (7)四、程序填空题 (8)五、编程题...................................... 错误!未定义书签。
单元练习题二 C语言程序结构.. (9)一、判断题 (9)二、单项选择题 (9)三、读程序选择题............................. 错误!未定义书签。
四、程序填空题 (17)五、编程题................................... 错误!未定义书签。
单元练习题三数组.. (21)一、判断题 (21)二、单项选择题 (22)三、读程序选择题................................ 错误!未定义书签。
四、程序填空题 (28)五、编程题...................................... 错误!未定义书签。
单元练习题四函数.. (33)一、判断题 (33)二、单项选择题 (34)三、读程序选择题 (40)四、程序填空题.................................. 错误!未定义书签。
五、编程题...................................... 错误!未定义书签。
单元练习题五预处理................................. 错误!未定义书签。
一、判断题................................... 错误!未定义书签。
二、单项选择题............................... 错误!未定义书签。
三、读程序选择题................................ 错误!未定义书签。
四、程序填空题.................................. 错误!未定义书签。
安全员C证试题库(附参考答案)一、单选题(共50题,每题1分,共50分)1、装配式混凝土建筑施工现场,坠落区域应按规范规定的坠落 ( ) 设定。
A、坠落高度B、坠落直径C、坠落半径D、作业高度正确答案:C2、地下连续墙混凝土浇筑过程中,导管埋入混凝土的深度宜在 ( ) m之间,浇筑液面的上升速度不宜小于3m/h。
A、4-5B、2-4C、1-2D、5-6正确答案:B3、建筑施工企业安全生产许可证被吊销后,自吊销决定作出之日起( ) 不得重新申请安全生产许可证。
A、六个月内B、一年内C、三年内D、二年内正确答案:B4、用承插型盘扣式钢管支架搭设双排脚手架时,搭设高度不宜大于 ( ) m。
A、24B、36C、18D、30正确答案:A5、为了提高钢丝绳的使用寿命,滑轮直径最小不得小于钢丝绳直径的( ) 倍。
A、4B、8C、2D、16正确答案:D6、塔机在施工中主要作用是重物的 ( ) 运输和施工现场内的 ( ) 距离水平运输。
A、垂直,短B、垂直,长C、水平,短D、水平,长正确答案:A7、门式脚手架采用落地、密目式安全立网全封闭,其最大的搭设高度不可能超过 ( ) m。
A、45B、24C、30D、60正确答案:D8、对建筑施工临时结构应做安全生产技术分析,并应保证在设计规定的使用工况下保持整体稳定性,这一条是 ( ) 条。
A、指导性B、强制性C、一般性D、推荐性正确答案:B9、所选配的电器能够在配电系统空载或正常负载情况下可靠、有效地分断电路 (非频繁操作) ,即 ( ) 功能。
A、过载、短路、漏电保护B、空载接通与分断电路C、正常接通与分断电路D、电源隔离正确答案:A10、根据《上海市建设工程生产安全事故管理规定》,工程所在地的区建设行政管理部门和工程监督机构接到事故报告后,应当在 ( ) 内以书面形式,向市住房城乡建设管理委和市安质监总站报告。
A、2小时B、30分钟C、12小时D、1小时正确答案:D11、根据《上海市建设工程安全生产责任保险实施意见》规定,在投保人提供已完工工程部分履行 ( ) 的相关法律手续,确认已完工部分施工企业已不再承担安全生产管理责任的情况下,投保人可以按照剩余工程量投保。
数据结构c语言期末考试题库及详解答案数据结构C语言期末考试题库及详解答案一、选择题1. 在数据结构中,线性表的顺序存储结构被称为:A. 链式存储结构B. 栈C. 队列D. 数组答案:D2. 下列关于栈的描述,错误的是:A. 栈是一种特殊的线性表B. 栈的特点是后进先出C. 栈顶元素是最后插入的元素D. 栈的插入和删除操作都发生在栈顶答案:C二、填空题1. 在C语言中,定义一个具有10个元素的整型数组可以使用语句:________。
答案:int arr[10];2. 链表与数组相比,其优点是________。
答案:动态内存分配,不需要预先知道数据规模三、简答题1. 简述二叉树的遍历方法有哪些,并说明它们的特点。
答案:二叉树的遍历方法主要有前序遍历、中序遍历和后序遍历三种。
前序遍历首先访问根节点,然后递归地遍历左子树和右子树;中序遍历首先遍历左子树,然后访问根节点,最后遍历右子树;后序遍历首先遍历左子树和右子树,最后访问根节点。
每种遍历方法都可以用来对二叉树进行不同的操作和分析。
2. 什么是哈希表?它在实际应用中有哪些优点?答案:哈希表是一种通过哈希函数将键映射到表中一个位置来访问记录的数据结构。
它的优点包括:快速的数据访问速度,因为哈希表通常在常数时间内完成查找;动态的内存分配,可以根据需要调整存储空间;以及灵活的键值对存储方式。
四、编程题1. 编写一个C语言函数,实现单链表的逆序输出。
答案:```c#include <stdio.h>#include <stdlib.h>typedef struct Node {int data;struct Node *next;} Node;void reversePrint(Node *head) {if (head == NULL) return;reversePrint(head->next);printf("%d ", head->data);}int main() {Node *head = (Node *)malloc(sizeof(Node));head->data = 1;head->next = NULL;// 假设链表已经构建完毕reversePrint(head);return 0;}```2. 请实现一个C语言函数,用于计算一个字符串中不同字符的数量。
计算机二级c语言题库及答案【选择题】1). 关于C语言的变量,以下叙述中错误的是( )A.所谓变量是指在程序运行过程中其值可以被改变的量B.变量所占的存储单元地址可以随时改变C.程序中用到的所有变量都必须先定义后才能使用D.由三条下划线构成的符号名是合法的变量名正确答案:B答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。
在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。
变量命名要符合标识符的规定,其中下划线是标识符的组成字符。
程序中所有变量都必须先定义后使用。
2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )A.(c==2)||(c==4)||(c==6)B.(c>=2 && c<=6)&&!(c%2)C.(c>=2 &&c<=6)&&(c%2!=1)D.(c>=2 && c<=6) || (c!=3)|| (c!=5)正确答案:D答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2&& c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。
3). 在C语言中,函数返回值的类型最终取决于A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的.类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型正确答案:A答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。
在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。
如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。
c语言改错题题库及详解答案C语言是一种广泛使用的计算机编程语言,它以其高效性、灵活性和强大的功能而受到程序员的青睐。
然而,即使是经验丰富的程序员也难免会在编写C语言程序时犯一些错误。
下面是一个C语言改错题题库及其详解答案,帮助学习者识别并改正常见的编程错误。
题目1:错误的变量初始化```cint main() {int a;printf("%d", a); // 错误:变量a未初始化return 0;}```详解答案:在C语言中,如果一个变量在使用前没有被显式地初始化,它的值是不确定的。
为了修复这个错误,我们应该在声明变量时对其进行初始化。
```cint main() {int a = 0; // 正确的初始化printf("%d", a);return 0;}```题目2:错误的数组索引```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[5]); // 错误:数组索引越界return 0;}```详解答案:数组索引是从0开始的,所以对于一个有5个元素的数组,有效的索引范围是0到4。
访问数组的第6个元素会导致越界错误。
```cint main() {int arr[5] = {1, 2, 3, 4, 5};printf("%d", arr[4]); // 正确的索引return 0;}```题目3:错误的循环使用```cint main() {int i;for (i = 0; i <= 10; i++) {printf("%d ", i);} // 错误:循环条件错误return 0;}```详解答案:循环条件应该是`i < 10`,以确保循环不会无限执行。
```cint main() {int i;for (i = 0; i < 10; i++) {printf("%d ", i);}return 0;}```题目4:错误的函数调用```cint main() {int result = add(5, 3); // 错误:add函数未定义printf("%d", result);return 0;}```详解答案:在调用一个函数之前,需要确保该函数已经被定义。
C++ ##1m C++ C z ?#3: : : ” xm m m 、n2m C C++ o w p#3# *" s\][_RP_V[ \]VaN_R \][_RP_R \ O VP" :zn+" sz n," s vz n v sn3m class struct ?#3”: ”P N \]VaN_R” _] P_ \ O VP nP N\]VaN_R _] P_ \ O VP44m <iostream.h>{<iostream> std #3 5V[ _]RN 7 5V[ _]RN U7 zvx ” V P Rzv nV[ _]RN U : V[ _]RN :: :z Un o ’ : : : V[ _]RN U n ” ” Up U Pz oI: 1 pn’ 5V[ _]RN U7 ”: : t 5 V[ _]RN 7N R \NPR _ t P[ __ 33P[ _5m { u#3 v : V _ n: n/mssssx7m w u#3##* 3”v”” {n+ s{ z v nv v v op n ns ”z。
v ”n, sv vz zz n v kn 1m us n t n9m new delete {malloc free { ?#3Rb R R_R N [P S]RR x” 。
nzRb R R_R : RbR R_Rn N [P S]RR :n10m ?#3 x . s*m o _NP pn ” ”z nm no p+m oURN\pnv m z n {n,m o po _N_VPpn v n n-m n ” z n.m n n**m uz n s z v n12m C++ #3 v noz p13m C++ v n#3 s* z n <cN \ R "4n+ n <cN \ R V _ N 6 +,"414m intialization list ( )?#*m+m P[ _,m-m”15m w const const int* computeResult( const int& var ) const3 v P[ _ v tP[ _ aN] v aN] t w P[ _ P[ \ _RER _ v ” n16m “ ” m ?#3 sV _ S "4sz znsz ’n17m static const #3_N_VP s* n x _N_VP n + n _N_VP ” ( v n, ) _N_VP ) - ” x _N_VP nP[ _ s* sP[ _ V _ N 6 *)4 N v n+ n, n- n n . nz nn P[ _ ”n##18m“ ”{ u#3#s*r … t v… t nz s*r v t+r ” v。
z t t v k kt,r P[ _ P[ _ P[ _ z t-r z t.r VeR[S k "VeR[S k t/r " zv t0r z "#19m” “ ”u3 z” n20my zint a;const int & ra = a;ra = 1;a = 1;3z n ]N ]N N n21m “ ” u#3* { vv”o” p n+ ”t vt n’vn, {” }k k }t v ”… n n#22m “ ”u “ ” u#3 v n {v nv n vz v v n23my sint main(){char *str = new char[100];strcpy( str, "hello" );delete []str;if(str != NULL){strcpy(str,”world”);printf(“%s\n”,str);}return 0;}3 S]RR _] … … n _]z B n _] v _]P\d n24my svoid GetMemory( char **p, int num ){*p = new char[num];}int main( ){char *str = NULL;GetMemory( &str, 100 );strcpy( str, "hello" );cout<<str<<endl;return 0;}3 UR [25my schar *GetMemory( void ){char p[] = "hello world";return p;}int main( ){char *str = NULL;str = GetMemory();cout<<str<<endl;return 0;}3 =R_AR []d … n _] n _] _] z UR [ b[] n26my svoid GetMemory( char *p ){p = new char[100];}int main( ){char *str = NULL;GetMemory( str );strcpy( str, "hello world" );cout<<str<<endl;return 0;}3=R_AR []d _] \ \ x n m n _] B n _]P\d n27my sint main(){char string[10], str1[10];int i;for(i=0; i<10; i++){str1[i] = 'a';}strcpy( string, str1 );return 0;}3 _]* *) S[] iNi n _]P\d _]* _]V T n ” _]* z ”K) n28my sint main(){char string[10];char* str1 = "0123456789";strcpy( string, str1 );return 0;}_]V T *) _]* ** o K)p _]P\d n29m this #3_UV ”… n _UV v _UV n30my ?class A{public:A() { p=this; }~A() { if(p!=NULL) { delete p; p=NULL; } }A* p;};3 _UV … z n \ \ \ B4 ” x n31m ” #3 n ” (32m static static u#3#*+, z_N_VP { z n ” n ”_N_VP"” n ””v33m #3 v S]VR n#34m us z35m my m m #3 sy m o6m Lm"m&7pss m m36m #3 ” }} x n v <cN \ R s: N <cN \ RflV _ \4g4<cN \ R N4<cN \ R O 6 N4 (( o ps N \ x v O \ x v v no z ps N \ x v O \ no v x pz n,0m u38m C++ #3*+,39m v y#3 v :[ \ Rc " ] V4Complex(const#Complex&#complex)#{##r#=#complex.r;##i#=#complex.i;#}#Complex&#operator=(Complex#&complex)#{##if#(this#==#&complex)###return#*this;##r#=#complex.r;#i#=#complex.i;##return#*this;#}s* + , s40mString y sclass String{public:String(const char *str = NULL); //String(const String &another); //~String(); //String& operater =(const String &rhs); //private:char* m_data; //n3#class#String#{#public:## String(const#char#*str#=#NULL);#//# #### String(const#String#&another);#//# ### ~String();#//# ##### String&#operater#=(const#String#&rhs);#//# #private:## char*#m_data;#//# #};#String::String(const#char#*str)#{##if#(str#==#NULL)##{###m_data#=#new#char[1];###*m_data#=#'\0';##}##else##{###m_data#=#new#char[strlen(str)#+#1];###strcpy(m_data,#str);##}#}#String::String(const#String#&another)#{##m_data#=new#char[strlen(another.m_data)+1];##strcpy(m_data,#another.m_data);#}#String::~String()##delete#[]#m_data;#}#String&#String::operater=(const#String#&rhs)#{##if(this#!=#&rhs)##{###delete#[]#m_data;###m_data#=#new#char[strlen(rhs.m_data)#+#1];###strcpy(rhs.m_data,#m_data);##}##return#*this;#}41m #3 s* v n+, v \ O VP-s* v xh+ \ O VP,- z v n” ” n vm n vm n#42m C++ u#3 m m m43m us v n44mvyclass B{public:B(){cout<<"default constructor"<<endl;}~B(){cout<<"destructed"<<endl;}B(int i):data(i) {cout<<"constructed by parameter "<< data <<endl;}private:int data;};B Play( B b){return b ;}int main(){B b;Play(b)return 0;}sRSN _ P[ _] P_[]R _] P_RR _] P_RR _] P_R45m C++ u#3 m mn v nn-/m u*m V &N+m-0m public m protected m private w #3 \]VaN_R s n\][_RP_R s” \ O VP\][_RP_R n” n\ O VP s” \ O VP \][_RP_R n” \ O VP n-1m u\]VaN_R \]VaN_R4\][_RP_R z\][_RP_R o \ O VP&7\][_RP_R z p\ O VP z49m z #3 o pt t tt50m o[aR] [N " [aR]]VR k" u3s v zv n z ns v、v ” n n51m { { u#3 s v zv ns v、v no ” pvo s* + , o p- pn#52m C++ m m u vy n# 3: ns” aV]_ N n v no s* + , - ps z z n n53m virtual u n# 3z x aV]_ N54myclass A{virtual void func1()tvoid func2();}Class B: class A{void func1(){cout << "fun1 in class B" << endl;} virtual void func2(){cout << "fun2 in class B" << endl;}}38 S P*9 S * mS P+55my n#include <iostream.h>class A{public:virtual void print(void){cout<<"A::print()"<<endl;}};class B:public A{public:virtual void print(void){cout<<"B::print()"<<endl; };};class C:public B{public:virtual void print(void){cout<<"C::print()"<<endl; }};void print(A a){a.print();}int main()A a, *pa,*pb,*pc;B b;C c;pa=&a;pb=&b;pc=&c;a.print();b.print();c.print();pa->print();pb->print();pc->print();print(a);print(b);print(c);return 0;3A::print()#B::print();#C::print();#A::print()#B::print();#C::print();#A::print()#A::print()#A::print()#56m u u#3 z z n* # v v n … nu n Rb v v n a_O … z a_O n’ z n + n z n, n#57m u#3# v z n z n#n {v n##58m #3 ” o pns n 59m u#3 s z z”ns* z v n n((+ n (( bV_PU60m“ ”{ u#3 s* + ,- n” n61m#y#include <iostream.h>class B{public:B(){}B(int i){b=i;}virtual void virfun(){cout<<"B::virfun() called.\n"; }private:int b;};class D:public B{public:D(){}D(int i,int j):B(i){d=j;}private:int d;void virfun(){cout<<"D::virfun() called.\n"; }};void fun(B *obj){obj->virfun();}int main(){D *pd=new D;fun(pd);return 0;}3 s;33aV]S " PN R62m z #3 v nz n’n#63m u#3# v no p64m sclass A : public class B, public classC {} A u38 w n v 9 8 w n 65m x n#3#66m #38 9 : ; 8 9; : k v 8 v 9 n67mv Stack o pn v stck[ ] v tos n SIZE n Push op Pop opn3#include#<iostream>#using#namespace#std;#const#int#SIZE#=#100;#class#Stack#{##friend#ostream&#operator<<(ostream&#out,#const#Stack#&stack);#public:##Stack();##int#isEmpty();##int#isFull();##int#push(char#*str);##int#pop(char#**str);#private:##char#*stack[SIZE];##char#tops;######// #};#Stack::Stack()#{##tops#=#a1;#}#int#Stack::isEmpty()#{##if#(tops#==#a1)###return#1;##else###return#0;#}#int#Stack::isFull()#{##if(tops#==#SIZE#a#1)###return#1;##else###return#0;#}#int#Stack::push(char#*str)#{##if#(isFull())##{###return#0;##}##stack[++tops]#=#str;##return#1;#}#int#Stack::pop(char#**str)#{##if#(isEmpty())##{###return#0;##}##*str#=#stack[topsaa];##return#1;#}#ostream&#operator<<(ostream#&out,#const#Stack#&stack)# {##for#(int#i#=#0;#i#<=#stack.tops;#i++)##{###out#<<#stack.stack[i]#<<#"#";##}##return#out;#}#int#main()#{##Stack#s;##char#*str;##s.push("one");##s.push("two");##s.push("three");##s.push("four");##s.push("five");####cout#<<#s##<<#endl;###s.pop(&str);###cout#<<#str#<<#endl;###cout#<<#s#<<#endl;##return#0;#}68m 、 、 u#、 v n 、 、 n69m 、 u#y s_R \ N_R 5P N G7P N IRP_[]f\]VaN_R3G \4g470m、 u#s 、 s_d\R NSR o pna[V no pn、 t 、 y s 、 n v z n、 ’ 、 n、 n 、 ” ’ ” n##71m u#s 8B >: n##72m c++11 u 6 #N _[”: ** N _[ n” nN _[ ” v n n\_]) ) ”v n \_] _ 33 \_]M_ n \_] O[[ o SN Rpn z ” nEN TR&ON R S[] [[\ o “ S[] p” kS[]RNPUk : ** S[] n : m ORTV " R " n v z y m S[]RNPU S[] noz p3s[aR]]V R nSV N z n_][ T d&_d\R R: ”v s ” o v ” z p } n”: ** v n R P N n z z } o pnN]_ D[V _R]N O N s o N O Np : n n ” S P_[]"_ 33S P_V[ … N O NnORTV " R "s v … n G n n n : ” n_N_VPMN R]_ _d\R _]NV__N_VPMN R]_ v n z n v nA[aR R N _VP oA[aR ps : ** v n: ** ]aN R ]RSR]R PR" o p n v v o pn [aR o z P[ _ G pn73m static_cast{dynamic_cast u_N_VPMPN _ s _N_VPMPN _ 5 _d\R&V 7 Rc Va V[ " Rc Va V[ _d\R&V nd N VPMPN _ s d N VPMPN _ 5 _d\R&V 7 Rc Va V[ " Rc Va V[ _d\R&V n_d\R&V m a[V t _d\R&V Rc Va V[ v _d\R&V v Rc Va V[ v n d N VPMPN _ 。