东南大学c++复习三(含答案)_第1页
东南大学c++复习三(含答案)_第2页
东南大学c++复习三(含答案)_第3页
东南大学c++复习三(含答案)_第4页
东南大学c++复习三(含答案)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一. 选择(1.520 分) 1. 下列关于构造函数说法正确的是 C 。 A 构造函数不能重载. B 拷贝构造函数必须由用户显式定义 C 构造函数可以使用初始化列表 D 构造函数可用 private 限定其访问权限. 2. 下列关于指针的操作中,错误的是 D 。 A 两个同类型的指针可以进行比较运算。 B 可以用一个空指针值赋给某个指针变量。 C 一个指针可以加上两个整数之差。 D 两个同类型的指针可以相加。 3. 关于字符串,以下陈述错误的是 C 。 A 字符型二维数组可以存储多个字符串。 B 输出一个字符串时,不需要使用循环输出每个字符串。 C使用库函数 strlen 求出的串长度包括串结束符。 D字符型指针可以定义时赋予一个字符串常量的存储地址。 4. 设有说明 int (*ptr)M;其中的标识符 ptr 是 C 。 A M 个指向整型变量的指针 B 指向 M 个整型变量的函数指针 C 一个指向具有 M 个整型元素的一维数组的指针 D 具有 M 个指针元素的一维指针数组,每个元素都只能 指向整型变量 5. 关于抽象类,下列表述正确的是 (5) 。 A 抽象类的成员函数中至少有一个是没有实现的函数(即 无函数定义的函数) B 派生类必须实现作为基类的抽象类中的纯虚函数 C 派生类不可能成为抽象类 D 抽象类不可能用来定义对象 6. 下列关于派生类的叙述中不正确的是 (6) 。 A 派生类可以作为基类派生出新的派生类 B 一个派生类可以有多个基类 C 派生类继承了基类所有成员 D 派生类只能继承基类中的非私有成员 7. 设有说明 int (*ptr)M;其中的标识符 ptr 是 7 A) M 个指向整型变量的指针 B) 指向 M 个整型变量的函数指针 C) 一个指向具有 M 个整型元素的一维数组的指针 D) 具有 M 个指针元素的一维指针数组,每个元素都只 能指向整型变量 8. 有关内存分配的说法中,是 (8) 错误的。 2 A 指针变量可以保存动态分配的存储空间 B 数据元素存储在堆区的数组在建立时就被初始化(清零) C 用 new 为指针变量分配的存储空间可以是一个数组。 D 指向静态变量的指针不必用 delete 释放. 9. 以下语句中不正确的是 (9 ) 。 A int *p=0 ; B float p=(float)50 ; C int *p=new 50 ; D float *p=new float 50; 10.已知某函数有如下定义: int data43=1,3,5,7,9,2,4,6,8,10,11,12; int (*p)3; p=data; 则:*(p+2) 表示 (10) 。 A 数组 data 的元素的地址 ; B 数组 data 的元素的地址 ; C 数组 data 的元素的地址 ; D 数组 data 的元素的地址。 11.设函数声明语句中的参数表为(int 则正确的赋值语句是 (13) 。 AB=”ABCD”; B*B=”ABCD”; CP=”ABCD” D*P=”ABCD” 14.设有说明:int a4=1,2,3,4,5,6,7,8,9,10,*p=*(a+1); 则值为 9 的表达式是: 14 。 A. p+=3,*p+ B. p+=4,*(p+) C. p+=4,*+p D. p+=4,+*p 15.下列表示引用的方法中, 15 是正确的。 3 已知:int m=10: Aint void main() static int a23=1,3,5,7,9,11; int *p; p=new int; fut( cout void main() static int a=2,4,6,8,10; int y=0,x,*p; p= for(x=0;x void main(void) char *name=“newspaper“; cout class A int x; public: A(int a) 5 x=a; cout class X public: void virtual f()coutf(); px-g(); 5. 程序(4 分) #include char *f(char *s,char ch) 6 char *p=s,*q=s; while(*q=*p+) if(*q!=ch) q+; return s; void main() char s1=“Hello How are you“,s2=“1100101 11“; cout #include class A public: static int i; char *ps; A(char 1 ) ps=new charstrlen(s)+1; strcpy( 2 ,s); A() if( 3 ) cout #include char *sercher(char *s,char ch) while(*s) if(*s+=ch) return (6) ; return 0; void dele(char *s,char ch) char *p1=search(s,ch),*p2=p1+1; while(*p2) *p1+= (7) *p1=0; void add(char *s,char ch) while(*s) s+; (8) =ch;*s=0; void main() char str80=“abc12123“,c; coutc; void (9) ;if(search(str,c) fp=dele; else fp=add; fp( (10) );cout struct student int number; float grade; student *next; ; student *create(int m) student *p1, *p2,*head; head=0; coutp1-numberp1-grade; if(head=0)head=p1;p2=p1; elsep2-next=p1; 12 ; 13 ; return head; student *delete_student(student *head,int n) /删除节点 student *p1, *p2; while(head-gradenext; delete p1; 9 p2=p1=head; while(p2-next!=0) p1=p2; 14 ; if(p2-gradenext=p2-next; delete p2; p2=p1 return head; void print(student *head) const student *p; p=head; coutnumbergrademn; head=create(m); head=delete_student(head,n); print(head); 4. 以下程序定义了一个类 list,然后用 list 类定义了函数 creat,用来建立一个链表,链表结点有两个成员,其中数据 成员是字符类型。建立链表的特点是,新产生的结点总是插 在链表的末尾。 #include “iostream.h“ #include “string.h“ class list (16) char data; class list *next; 10 ; list *creat() list *h,*p; char ch; h=new list; p=h; cin.get(ch); p-data=ch; while(ch!=?) (17) p=p-next; cin.get(ch); p-data=ch; (18) return h; void main() list *head; (19) while(head) coutdata; 20 ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论