收藏 分销(赏)

(C--)第二学期期末试卷类型.doc

上传人:仙人****88 文档编号:7458494 上传时间:2025-01-05 格式:DOC 页数:4 大小:95KB 下载积分:10 金币
下载 相关 举报
(C--)第二学期期末试卷类型.doc_第1页
第1页 / 共4页
(C--)第二学期期末试卷类型.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
程序设计基础(C++)试卷(A) 考试时间为120分钟 考试形式:闭卷 题号 一 二 三 四 总 分 得分 阅卷人 合分人 请同学们将答案填写在后面的答题卡中,注意相应的题号 一、 单项选择题(本大题共10小题,每小题2分,共20分) 1、.若有以下定义,int a=100,*p=&a ; 则说法错误的是( D )。 A.声明变量p,其中*表示p是一个指针变量 B.变量p经初始化,获得变量a的地址 C.变量p只可以指向一个整型变量 D.变量p的值为100 2、假定建立了链表结构,指针p,q分别指向相邻的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是( )。 A.delete q; p->next=q->next; B. (*p).next=(*q).next; delete q; C.q=(*q).next; (*p).next=q;delete q; D.q=q->next; p->next=q; p=p->next; delete q; 3、.若有下面的说明和定义: struct test{ int ml; char m2; float m3; union uu{char ul[5]; int u2[2]; } ua; }myaa; 则 sizeof(struct test)的值是( )。 A.12 B.14 C.17 D.9 4、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。 A.MyClass &(MyClass x) B.MyClass (MyClass x) C.MyClass (MyClass &x) D.MyClass (MyClass *x) 5、下面对于友元函数描述正确的是( )。 A.友元函数不破坏类的封装性,可尽量使用 B.友元函数是类的成员函数 C.友元函数可以是一般函数,也可以是另一个类的成员函数 D.友元函数不能访问类的所有数据成员 6、类的析构函数是在( )时候系统自动调用的? A.类创建时      B.创建对象时     C.删除对象时        D.不自动调用 7、若有BOX类的对象s1,用s1复制另一个对象s2,正确的是( ) A.s2=s1; B.BOX s2(s1); C.BOX s1(s2); D.s2=new(s10); 8、下列有关运算符重载的描述中,( )是正确的。 A.运算符重载可改变其优先级 B.运算符重载不改变其语法结构 C.运算符重载可改变其结合性 D.运算符重载可改变其操作数的个数 9、在C++语言程序中,对象之间的相互通信通过( ).  A.继承实现    B.调用成员函数实现 C.封装实现      D.函数重载实现 10、以下( )成员函数表示虚函数。 A.int virtual vf(); B.void vf(int)=0; C.void vf()=0; D.virtual void vf(int); 二、填空题(本大题共10小题,每小题1分,共10分) 11、定义 int y为x的引用,则定义语句为【 】。 12、设 union { int a; char c[99]; }b; 则sizeof(b)的值是【 】。 13、假定类AB中有一个公用属性的静态成员bb, 在类外不通过对象名访问该成员 bb 的写法为【 】。 14、若需要把一个函数 void f( ); 定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句【 】。 15、生成一个派生类对象时,先调用【 】的构造函数,然后调用派生类的构造函数。 16、派生类构造函数的初始化列表中包含【 】。 17、动态联编调用函数操作是指向对象的【 】或对象引用。 18、 语句ofstream f ("SALARY. DAT",ios::app);的功能是建立流对象f, 试图打开文件SAL:aRY. DAT并与之连接,ios::app文件操作方式为【 】。 19、文件访问方式有两种,顺序访问和【 】。 20、已知enum color{red,yellow=5,white,black};则执行cout<<red+black后的值是【 】。 三、程序分析、运行题(本大题共6小题,共30分,每小题5分) 21、分析程序,写运行结果。 #include<iostream> using namespace std; void fun(int *p,int m) { int i; for( i=0;i<m;i++) *p++=i*i+1; } void main() { int i,*b=new int[5]; fun(b,5); for( i=0;i<5;i++) cout<<b[i]<<" "; cout<<endl; delete [] b; } 22、下列函数sort用冒泡法实现对字符串按字典顺序由小到大排序,程序填空。 void sort(char *p[],int n) // 定义指针数组 p, n个字符串 {char ① ; //第1空 int i,j; for(i=0;i<n-1;i++) for(j=0;j<n-1-i;j++) if(strcmp( ② )>0 ) // 第 2空 { temp=p[j]; p[j]=p[j+1] ; p[j+1]=temp; } } 23、下面是包含子对象的派生类的构造函数。写出运行结果。 #include <iostream> #include <string> using namespace std; class Student {public: Student(int n, string nam ) {num=n; name=nam; } void display( ) {cout<<"num:"<<num<<endl<<"name:"<<name<<endl;} protected: int num; string name; }; class Student1: public Student { public: Student1(int n, string nam,int n1, string nam1,int a, string ad) :Student(n,nam),monitor(n1,nam1) {age=a; addr=ad; } void show( ) {cout<<"This student is:"<<endl; display(); cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl<<endl; } void show_monitor( ) { cout<<endl<<"Class monitor is:"<<endl; monitor.display( ); } private: Student monitor; int age; string addr; }; int main( ) { Student1 stud1(10010,"Wang-li",10001,"Li-sun",19,"115 Beijing Road,Shanghai"); stud1.show( ); //输出学生的数据 stud1.show_monitor(); //输出子对象的数据 return 0; } 24、下列程序通过把类Distance定义为类Point的友元类来实现计算两点之间距离。程序填空。 #include <iostream> #inlclude <cmath> using namespace std; class Point{ public: ① //第1空 Point(float a,float b){ X=a; Y=b;} void Print(){cout<<”X=”<<X<<endl; cout<<”Y=”<<Y<<endl;} private: float X,Y; }; class Distance { public: float Dis(Point & p,Point & q); }; float Distance::Dis(Point & p,Point & q) { float result; result= ② //第2空 cout<<result<<endl; return result; } int main(){ Point p(10,10), q(20,20); Distance d; d.Dis(p,q); return 0; } 25、下面是一个类的测试程序,设计出能使用如下测试程序的类。测试结果:8-5=3 void main(){ Test a; a.init(8,5); a.print(); } 26、下列函数功能是输出两个字符串对应位置相等的字符。将代码补充完整。 void outstring(char *str1,char *str2) { while(*str1!=′\0′&&__①______) //第1空 { if (*str1 == *str2) cout<<*str1<<endl; str1++; __ ②______; //第2空 } } 四、程序设计题(本大题共4小题,共40分) 27、根据以下链表示意图,设计链表综合操作程序。2个模块分别为:创建动态链表creat()、遍历链表print()。(16分) data next head… 8 4 3 .. #define NULL 0 struct list{char data; list *next;} ; list *creat( void) { return head; } void print(list *head) { } 28、将运算符“-”重载为适用于复数加法,重载函数作为成员函数。输出数据函数display()为类的成员函数。(8分) #include <iostream> using namespace std; class Complex { }; int main( ) { Complex c1(3,4),c2(5,-10),c3; c3=c1-c2; cout<<"c1="; c1.display( ); cout<<"c2="; c2.display( ); cout<<"c1-c2 ="; c3.display( ); } 29、输入3个整数,调用函数实现按由小到大排序(用指针法实现)(8分) #include <iostream.h> using namespace std; int main() { void sort(int *,int *); cout<<a<<”,”<<b<<”,”<<c<<eddl; } void sort(int *p,int *q) ( } 30、建立磁盘文件f1.dat(文本文件),从键盘输入20个整数存放在f1.dat中。(8分) #include<iostream> #include<fstream> using namespace std; int main() { } 注意:按屏幕输出格式写答案 得分 答 题 卡 1 2 3 4 5 6 7 8 9 10 得分 11 12 13 14 15 16 17 18 19 20 得分 21 22 23 24 25 26 得分 27得分 : 28得分 : 29得分: 30得分: 第 4 页 共 4 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服