清华大学C 期末试题与答案

合集下载

清华大学计算机系C++期末考试题(含答案)

清华大学计算机系C++期末考试题(含答案)

清华大学计算机系C++期末考试题(含答案)一、填空题(25小题,共50分)(以下每小题1分,共10分)1.在C++中,函数的参数有两种传递方式,它们是值传递和地址或指针或引用传递。

2.当一个成员函数被调用时,该成员函数的this指针指向调用它的对象。

3.在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。

对两个有相同名字的数据成员进行访问时,如果没有作用域分隔符限定时,对此数据成员的访问将出现歧义。

4.拷贝构造函数使用引用作为参数初始化创建中的对象。

5.在公有继承的情况下,基类数据成员在派生类中的访问权限保持不变。

6.描述命题"A小于B或小于C"的表达式为A<B||A<C。

7.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到没有形参的或缺省参数构造函数,否则应用程序会产生一个编译错误。

8.静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象共享。

9.为了避免可能出现的歧义,C++对if…else语句配对规则规定为:else总是与与最近的if配对。

10.设"int a=3,b=4,c=5;",表达式"(a+b)>c&&b==c"的值是0。

(以下每小题2分,共20分)11.面向对象的程序设计有四大特征,它们是抽象、封装、继承、多态。

12.在Visual C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型不同;在基类和派生类中,成员函数的覆盖是指派生类成员函数与在基类被覆盖的成员函数名、参数个数、参数类型和返回值类型均相同。

13.构造函数与析构函数除功能不同外,在定义形式上,它们的区别还包括构造函数名与类名相同,而析构函数名是在类名前加一个~、析构函数没有参数、析构函数可以定义为虚函数。

14.动态联编要满足两个条件,它们是被调用的成员函数是虚函数、用指针或引用调用虚函数。

清华大学“C语言程序设计”期末试卷

清华大学“C语言程序设计”期末试卷

样例: 输入 1 2 -4 0 32 1 -2 2 输出 3 -4+x^2
第三部分
综合问题 (任选一题完成,共 10 分)
3-A. 代数式处理 ( 3-A.cpp ) 读入一个仅含变量 x 的代数式和 x 的值, 输出该式在 x=x0 处的函数值和导函数的值。 表达式中除了字母 x 和+, -, *, /, (, )外没有其他字符
试卷说明: 考试形式为上机考试,考试时间总计 3 小时 请在 C 盘根目录下建立一个子目录,以自己的学号命名,并将所有的程序存入 此目录。如,学号为 010000 的同学,需要建立目录 C:\010000,并将程序存入 此目录。按照题目名称中指定文件名保存你的程序,并保存一个备份,以免程 序被意外破坏。例如,第一题应当保存一个叫做 1-1bak.cpp 的文件。 3-A 和 3-B 最多只能选择一道题目。如果同时存在 3-A.cpp 和 3-B.cpp,我们将 随机选择一道题目进行评分。 所有题目采用键盘输入和屏幕输出,你的程序不得访问任何文件。 评分时将查看源程序,请严格遵守题目中给出的限制。
输入: 先读入一个字符串,字符总数不超过 100 并且不会有格式错误的代数式。 然后读入一实数作为 x0 的值。
输出:
7
包含两个实数,分别是函数值和导函数值。把所得结果保留 2 位小数输出。如果出 现分母为 0 的情况则只输出一个字符串"error"。
样例: 输入 x*(x+x/x) 100 输出 10100.00 201.00
输入: 第 1 行为一个整数 t,表示任务的类型,t=1 表示做加法,t=2 表示做减法。 第 2 行为 1 个整数 n,表示需要计算的数的位数。 以后 n 行,每行为 2 个数字,分别是同一位上的被加数和加数(当 t=1 时);或被 减数和减数(当 t=2 时)。从第 3 行起,位数依次由高到低,第 3 行为最高位,第 n+2 行为最低位。

C 语言程序设计(清华大学郑莉)课后习题答案

C  语言程序设计(清华大学郑莉)课后习题答案

第一章概述1-1简述计算机程序设计语言的发展历程。

解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。

1-2面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。

面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。

通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。

因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。

C++语言是目前应用最广的面向对象的编程语言。

1-3什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。

结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。

当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。

由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。

1-4什么是对象?什么是面向对象方法?这种方法有哪些特点?解:从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。

大一c期末考试题及答案

大一c期末考试题及答案

大一c期末考试题及答案大一C语言期末考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 在C语言中,以下哪个选项不是运算符?A. +B. -C. %D. :答案:D4. 若有定义:int a=5, b=3;,则表达式a%b的值是多少?A. 2B. 1C. 0D. 3答案:A5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. while答案:B6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "hello";B. char str[] = {'h', 'e', 'l', 'l', 'o'};C. char str[6] = "hello";D. char str[] = "hello";答案:D7. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A8. 下列哪个选项不是C语言中的数组?A. int a[5];B. int a[5] = {1, 2, 3, 4, 5};C. int a[] = {1, 2, 3};D. int a = {1, 2, 3};答案:D9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(int a);答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. printf()D. scanf()答案:A二、填空题(每空2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。

最新C++语言程序答案第四版清华大学汇总

最新C++语言程序答案第四版清华大学汇总

最新C++语言程序答案第四版清华大学汇总C++语言程序答案第四版清华大学第一章概述1-1 简述计算机程序设计语言的发展历程。

解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。

1-2 面向对象的编程语言有哪些特点?解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。

面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。

通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。

因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。

C++语言是目前应用最广的面向对象的编程语言。

1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点?解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。

结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。

当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。

由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。

《C语言程序设计》清华大学出版社课后答案

《C语言程序设计》清华大学出版社课后答案

习题 9一.选择题1. A2. A3. A4. A5.B6.C二编程题9.2 编写一函数,判断N×N矩阵是否为上三角阵。

上三角阵是指不含主对角线,下半三角都是0的矩阵。

#include <stdio.h>int fun(int x[][3],int n){int flag=1,i,j;for(i=1;i<n;i++)for(j=0;j<i;j++)if(x[i][j]!=0){flag=0;break;}return flag;}void main(){int a[3][3]={{1,4,5},{0,2,6},{0,0,3}};int result=fun(a,3);if(result==1)printf("此矩阵是上三角矩阵!\n");elseprintf("此矩阵不是上三角矩阵!\n");}9.3 有一个字符串,包含n个字符,将字符串从第i 个字符到第j个字符间的字符逆置。

程序代码:#include <stdio.h>#include <string.h>void invertsub(char *str,int i,int j){char *p,*q,c;int n=0;p=q=str;if(str==NULL)printf("str is NULL!\n");else if(i<=0||j>strlen(str))printf("i and j value error!\n");else {while(*p!='\0'&&n!=i-1){ p++;n++; }q=p;while(*q!='\0'&&n!=j-1){q++;n++;}while(p<q){c=*p;*p++=*q;*q--=c;}}}void main(){char str[]="abcdefg";printf("%s\n",str);invertsub(str,2,5);printf("%s\n",str);}9.4 题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数.程序源代码:main(){int number[20],n,m,i;printf("the total numbers is:");scanf("%d",&n);printf("back m:");scanf("%d",&m);for(i=0;i<n-1;i++)scanf("%d,",&number[i]);scanf("%d",&number[n-1]);move(number,n,m);for(i=0;i<n-1;i++)printf("%d,",number[i]);printf("%d",number[n-1]);}move(array,n,m)int n,m,array[20];{int *p,array_end;array_end=*(array+n-1);for(p=array+n-1;p>array;p--)*p=*(p-1);*array=array_end;m--;if(m>0) move(array,n,m);}9.5 输入n个整数,将最小数与第一个数对换,把最大数与最后一个数对换程序源代码:main(){int number[10];input(number);max_min(number);output(number);}input(number)int number[10];{int i;for(i=0;i<9;i++)scanf("%d,",&number[i]);scanf("%d",&number[9]);}max_min(array)int array[10];{int *max,*min,k,l;int *p,*arr_end;arr_end=array+10;max=min=array;for(p=array+1;p<arr_end;p++)if(*p>*max) max=p;else if(*p<*min) min=p;k=*max;l=*min;*p=array[0];array[0]=l;l=*p;*p=array[9];array[9]=k;k=*p;return;}output(array)int array[10];{ int *p;for(p=array;p<array+9;p++)printf("%d,",*p);printf("%d\n",array[9]);}9.6 输入n个字符串,按由小到大顺序输出。

《c语言程序设计》谭浩强清华大学习题答案

《c语言程序设计》谭浩强清华大学习题答案
c语言程序设计谭浩强清华大学习题答案c语言答案谭浩强c语言课后习题答案c语言习题及答案c语言练习题及答案c语言习题集及答案c语言习题答案谭浩强c语言程序设计c语言谭浩强谭浩强c语言第四版
2.6 aabb (8)cc (7)AN
(8)abc
2.8 main() {int c1,c2;
ww
2.7 main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4, c2+=4, c3+=4, c4+=4, c5+=4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); }
.k h
da w='a',c2='b',c3='c',c4='\101',c5='\116'; printf("a%c b%c\tc%c\tabc\n",c1,c2,c3); printf("\t\b%c %c\n",c4,c5); 解:程序的运行结果为: aabb cc abc AN 3.7将"China"译成密码.密码规律:用原来的字母后面第4个字母代替原来的字母, 例如,字母"A"后面第4个字母是"E",用"E"代替"A".因此,"China"应译为"Glmre". 请编一程序,用赋初值的议程使c1,c2,c3,c4,c5分别变成'G','1','m','r','e',并 输出. main() {char c1="C",c2="h",c3="i",c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 3.8例3.6能否改成如下: #include<stdio.h> void main() { int c1,c2;(原为 char c1,c2) c1=97; c2=98; printf("%c%c\n",c1,c2); printf("%d%d\n",c1,c2); } 解:可以.因为在可输出的字符范围内,用整型和字符型作用相同. 3.9求下面算术表达式的值. (1)x+a%3*(int)(x+y)%2/4=2.5(x=2.5,a=7,y=4.7) (2)(float)(a+b)/2+(int)x%(int)y=3.5(设a=2,b=3,x=3.5,y=2.5) 3.10写出下面程序的运行结果: #include<stdio.h> void main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } 解:结果: 9,11,9,10 第4章 4.4.a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b'.想得 到以下的输出格式和结果,请写出程序要求输出的结果如下: a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000

C语言程序设计答案——清华大学出版社(第二版)

C语言程序设计答案——清华大学出版社(第二版)

答案整理:林子雨 E‐mail:ziyulin@ 主页:/linziyu 第 4 页/共 8 页
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案 第八章 数组
}
6.输入一字符串,统计出某自定字符在字符串中出现的次数。 #include<stdio.h> #include<string.h> main() { char x,a[100],c=0; int i; puts("输入一串字符:"); gets(a); puts("查哪个字符个数?"); x=getchar(); for(i=0;i<strlen(a);i++) { if(a[i]==x) c++; } printf("共%d个。",c); }
厦门大学本科生公共课 《C 程序设计基础》 第二版教材习题答案 第八章 数组
【教材】 《C 语言程序设计(第 2 版) 》清华大学出版社,黄保和,江弋 编著。2011 年 10 月第 二版。ISBN:978‐7‐302‐26972‐4。售价:35 元。 【答案版本】本习题答案为 2012 年 2 月修订版本。 一 、选择题 1、以下数组定义中,错误的是:C)int a[3]={1,2,3,4}; A.int a[ ] = {1,2,3}; B. int a[5] = {1,2,3}; C. int a[3] = {1,2,3,4}; D. int a[5] , b; 2、以下数组定义中,正确的是:B) int a[][2]={1,2,3,4}; A. int n = 4, a[n] = {1,2,3,4}; B. int a[][2] = {1,2,3,4}; C. int a[2][] = {1,2,3,4}; D. int a[][] = {{1,2},{3,4}}; 3、设有定义“int a[8][10];”,在VC中一个整数占用4字节,设a的起始地址为1000,则a[1][1] 的地址是:D)1044 A. 1000 B. 1004 C. 1036 D. 1044 4、已知有数组定义“int a[][3]={1,2,3,4,5,6,7,8,9};”,则a[1][2]的值是:C)6 A. 2 B. 5 C. 6 D. 8 5、在以下字符串定义、初始化和赋值运算中,错误的是:A) char str[10];str="String"; A. char str[10];str="String"; B. char str[10] = "String"; C. char str[10] = {'S','t','r','i,'n','g'}; D. char str[ ] = {'S','t','r','i,'n','g',0}; 6、设有以下字符串定义, char s1[]={‘S’,’t’,’r’,’i’,’n’,’g’}; char s2[]=”String”; 则s1和s2: C)长度不同,但内容相同。 A. 长度相同,内容也相同 B. 长度不同,但内容相同 C. 长度不同,但内容相同 D. 长度不同,内容也不同 7、设有定义“int a[10]={0};”,则说法正确的是:A)数组a有10个元素,各元素的值为0. A. 数组a有10个元素,各元素的值为0 B. 数组a有10个元素,其中a[0]的值为0,其他元素的值不确定 C. 数组a有1个元素,其值为0 D. 数组初始化错误,初值个数少于数组元素个数 8、设已定义“char str[6]={‘a’,’b’,’\0’,’c’,’d’,’\0’};”,执行语句“printf(“%s”, str)”后,输出结果为:B)ab A. a B. ab C. abcd D. ab\0cd\0 9、引用数组元素时,数组元素下标不可以是:C)字符串 A.字符常量 B.整型常量 C.字符串 D.算术表达式 10、已定义字符串S1和S2,以下错误的输入语句是:C)gets(s1,s2); A. scanf("%s%s", s1, s2); B. scanf("%s%s", &s1, &s2); C. gets( s1, s2); D. gets(s1); gets(s2);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

已知:int a(4), b(5);
A.a+b<<3
B.++a*b++
C.(a=3)+a++
D.b+(a=3)
2.下列关于结构的定义中,有几处错误?
struct d {
int a;
double a;
} a,d;
A.1
B.2 C.3
D.4
3.下列关于 goto 语句的描述中,哪个是正确的? A.goto 语句可在一个文件中随意转向; B.goto 语句后面要跟上一个它所转向的语句; C.goto 语句可以同时转向多条语句; D.goto 语句可以从循环体内转到循环体外。
4.下列哪一个描述是关于引用调用的? A.形参是指针,实参是地址值; B.形参是引用,实参是变量。 C.形参和实参都是变量; D.形参和实参都是数组名;
5.定义函数模板需使用下列哪一个关键字?
A.class
B.inline C.template D.operator
6. 下列关于成员函数特征的描述中,哪个是错误的? A.成员函数一定是内联函数; B.成员函数可以重载; C.成员函数的函数体可以为空; D.成员函数可以是静态的。
八、分析下列程序,并回答后面的问题。(10 分)
程序内容如下:
#include <iostream.h> class A { public:
A(int i=0, int j=0){ a1=i; a2=j;} virtual void Print( ) {
cout<<a1+a2<<endl; } protected: int a1,a2; };
期终试题 2007 年 C++程序设计期终考试试题
一、填空题(20 分)
1.采用内联函数的目的在于提高

2.采用函数重载的目的在于提高

3.用一个已知对象来初始化一个新对象时,系统会调用
构造函数来完
成。
4.静态数据成员与一般数据成员不同,它的初始化应在
进行。
5.在 C++中,不能为
类定义对象。
6.单个参数的构造函数可以提供
class A { public:
A(int i){ a=i; cout<<"a="<<a<<endl;
} ~A(){ cout<<"A's destructor "<<a<<endl; } int a; }; class B: virtual public A { public:
B(int i, int j): A(i) { cout<<"B:"<<j<<endl; } };
};
void main() { int i=10, j=8;
A a(i, j); B b(i, j); C c(i, j); A *m[3]={&c, &b, &a}; for(int n=0; n<3; n++) m[n]->Print(); A &ra=c; ra.Print(); A aa=c; aa.Print(); } 请回答下列问题:
后,该程序的哪个语句的执行会出现二义性?
(3)将 class D: public B, public C 修改成 class D: public C, public B 后,输出结 果是否有变化?
(4)将 B(k1,k2), C(k4,k3), A(k1) 修改成 C(k4,k3), B(k1,k2), A(k1)后,输出结果 是否有变化?
cout<<"D:"<<k4<<endl; } }; void main() { D d(1,2,3,4); A a(5); a=A(6); cout<<"a.a="<<a.a<<endl; cout<<"d.a="<<d.a<<endl; }
请回答下列问题:
(1)执行该程序后,输出结果是什么? (2)去掉 class B: virtual public A 和 class C: virtual public A 中的关键字 virtual
转换功能。
7.在定义派生类时,默认的继承方式是

8.在
继承方式下,派生类对象的地址值可以赋值给基类的对象指
针。
9.虚基类的构造函数和非虚基类的构造函数在成员初始化列表中同时出现时,
的构造函数优先执行。
10.构造函数中调用虚函数时,采用
联编。
二、选择题(请在正确答案上打上○) (20 分)
1.下列各表达式中,哪一个可能会有二义性?
class B: public A { public:
B(int i=0, int j=0): A(i,j){} void Print() {
cout<<a1-a2<<endl; } };
class C: public A {
public: C(int i=0, int j=0): A(i,j){} void Print() { cout<<a1*a2<<endl; }
7. 已知一个类 A, 下列哪个是指向成员函数的指针?假设类 A 有公有成员 void f( )和 int a。 A.A *p; B.int A:: *pc=& A:: a; C.void (A:: *pa)(); D.A **pp;
8. 下列关于 new 运算符的描述中,哪个是错误的? A.它可以用来动态创建对象和对象数组; B.使用它创建的对象或对象数组,可以使用 delete 删除; C.使用它创建对象时要调用构造函数; D.使用它创建对象数组时必须指定初始值。
四、输入一字符串,去掉当中的重复字符。如字符串“ABADB”, 去掉重复 字符后的字符串应为“ABD”。(10 分)
五、求下列分数序列的前 15 项之和。(10 分) 2 , 3 , 5 , 8 , 13 , 21 , 1 2 3 5 8 13
六、下面是一个利用重载运算符实现复数加和乘的类。在该类中复数加运算的 实现代码已完成,但复数乘运算还未完成,试在类体外完成之。(7 分)
(1)执行该程序后,输出结果是什么? 80 2 18 80 18 Press any key to continue
(2)该程序中哪些语句采用了动态联编? (3)去掉 virtual void Print( )中的关键字 virtual 后,该程序的输出结果是什么?
九、分析下列程序,并回答后面的问题。(10 分) 程序内容如下: #include <iostream.h>
class complex {
public:
complex (double r=0,double i=0) { real=r; imag=i;} complex operator + (const complex & c) { return complex(real+c.real, imag+c.imag); } complex operator * (const complex & c); private: double real, imag; }; complex complex::operator *(const complex & c) { complex c1; c1.real=real*c.real-imag*c.imag; c1.imag=real*c.imag+imag*c.real; return c1; } 七、找出下列程序中的语法错误,并注明出错类型。(8 分) class A { virtual A( ){ }; }; class B: A { }; int add(int x, int y, int z=10) { return x+y+z; } int add(int x, int y) { return x+y; } void main( ) { int x; const int z=5; int &y=x+1; z=x; x=&z; add(1, 2); if(x==1) continue; x = new int[5]; return 1; }
class C: virtual public A {
public: C(int i, int j): A(i) { cout<<"C:"<<i+j<<endl; }
}; class D: public B, public C { public:
D(int k1, int k2, int k3, int k4): B(k1,k2), C(k4,k3), A(k1) {
9.下列对派生类的描述中,哪个是错误的? A.一个派生类可以作另一个派生类的基类; B.派生类中继承的基类成员的访问权限到派生类仍然保持不变。 C.派生类至少有一个基类; D.派生类的成员除了自己的成员外,还包含它的基类的成员;
10.下列运算符中,哪一个不能重载?
A.<<
B.>>
C.( )
D.?:
三、试编写求两
相关文档
最新文档