NIIT 博睿课程第一模块习题集 李永明.doc_第1页
NIIT 博睿课程第一模块习题集 李永明.doc_第2页
NIIT 博睿课程第一模块习题集 李永明.doc_第3页
NIIT 博睿课程第一模块习题集 李永明.doc_第4页
NIIT 博睿课程第一模块习题集 李永明.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

NIIT 博睿课程第一模块 习题集 李永明 张丽 主编NIIT 博睿课程第一模块习题集江苏联合职业技术学院NIIT第一协作组共用李永明 张丽 主编江苏省无锡立信职教中心校第一课 第二课一、 填空题1、类定义的关键字是 class 。2、类的访问权限有private、 public和 protected三种。3、类的成员分为 数据成员 和 成员函数 。将成员函数放在类外,所用的的作用域运算符为 : 。4、运算符 . 与类的对象一起使用,运算符 - 与指向类的对象的指针一起使用权,可以访问类的成员。5、类的变量称为 对象 。6、一个 类 和 对象 的关系,正如基本数据类型与该类型的变量一样,如int x;。二、选择题1、下列叙述错误的是_ B _。A)一个函数中可以有多条return语句B)调用函数必须在一条独立的语句中完成C)函数中通过return语句传递函数值D)主函数main也可以带有形参2、在C+语言中,对函数参数默认值描述正确的是_D_。A)函数参数的默认值只能设定一个B)一个函数的参数若有多个,则参数默认值的设定可以不连续C)函数参数必须设定默认值D)在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值3、不能作为函数重载判断依据的是_D_。A)constB)返回类型C)参数个数D)参数类型4、下列函数参数默认值定义错误的是_C_。A)Fun(int x,int y=0)B)Fun(int x=100)C)Fun(int x=0,int y)D)Fun(int x=f( )(假定函数f( )已经定义)5、函数定义为Fun(int &k),变量定义n=100,则下面调用正确的是_C_。A)Fun(20)B)Fun(20+n)C)Fun(n)D)Fun(&n)6、C+源程序文件的扩展名是:A A) .CPP B) .C C) .DLL D) .EXE7、以下中哪个为C+中基本数据类型?CA)Int, Float, Date 和 CharB)Int, Alphanumeric, Char, 和DateC)Int, Char, 和 FloatD)String, Int,和 Float三、写出程序运行结果1、#include class Distanceprivate: int feet; int inches;public: void get_distance(); void disp_distance();void Distance: get_distance()coutfeet;cout inches;void Distance: disp_distance() coutfeet” 英尺” inches” 英寸” get_distance();dist- dist_distance();delete dist;return 0;输入:输入英尺:2输入英寸:11输出:2英尺11英寸2、#include class Charprivate: char c1; dhar c2;public: void convert(char a) c2=(c1=a)-32; void disp () coutc1”转换为”c2endl;int main()Char a,b;a.convert(a);a.disp();b.convert(b);b.disp();return 0;输出:a转换为Ab转换为B3、#include class Sample private:int x; int y; public: void get(int a,int b) x=a; y=b;void disp() coutx=x,y=yendl; ; int main() Sample object1,object2; object1.get(10,20);object1.disp();object2= object1;object2.disp();return 0; 运行结果:x=10,y=20x=10,y=204、写出下列程序运行结果。#include int main() char str4 = S, A, N, 0; cout str1 endl; return 0; 运行结果:A第三课 第四课一、填空题1、类的静态成员分为 静态数据成员 和 静态成员函数 。2、静态数据成员在定义或说明时,前面要加上关键字 static 。3、类的 静态 成员函数不能对类中的非静态成员进行默认访问。4、类的 静态 数据成员是类的所有对象共享的成员。5、如果成员函数不需要访问类的 非静态 成员,则可以把它声明为静态成员函数。6、友元函数的声明可以放在类的 私有 部分,也可以放在类的 公有 部分,它们没有区别的。7、若需要把一个函数“void fun();”定义为一个类A的友元函数,则应在类A的定义中加入一条语句: friend void fun(); 。8、如果说明类B是类A的友元类,则类B的所有成员函数都有是类A的 友元函数 。9、设a=1, b=2,则(a+)+b这个表达式的值分别为: 3 。二、选择题1、将小写字母n赋值给字符变量one_char,正确的操作是:CA) one_char = n; B) one_char = “n”;C) one_char = 110; D) one_char = N;2、整型变量i定义后赋初值的结果是:B int i=2.8*6;A) 12 B) 16 C) 17 D) 183、下列表达式的值为false的是:CA) 13 & 54) C) 3&0&1 D) !(58)|(28) 4、设int a=10, b=11, c=12;表达式(a+b)c&b=c的值是:BA) 2 B) 0 C) 2 D) 15、下列程序执行完后,x的值是:Cint x=0;for (int k=0;k90; k+)if (k) x+;A) 0 B) 30 C) 89 D) 906、下列程序段循环次数是:Aint x = -10;while (+x) coutxendl;A) 9 B) 10 C) 11 D) 无限7、表示“大于10而小于20的数“,正确的是:DA) 10x10|x10&x20 D) !(x=20)8、若整型变量x=2,则表达式x2的结果是:DA) 2 B) 4 C) 6 D) 89、如果在条件求值前循环体至少要执行一次,应使用以下中哪个? C A)For B)While C)do.while D)switch.case10、for(int x=,y=o;!x& &y=5;y+)语句执行循环的次数是CA)B)C)D)无次数11、设x和y均为bool量,则x&y为真的条件是 AA) 它们均为真B) 其中一个为真C) 它们均为假D) 其中一个为假三、写出程序运行结果1、写出下列程序运行结果。#include int fun(int x,int y)returnx*y;int main()int k=5; coutfun(k+, +k)endl;return 0;运行结果:362、写出下列程序运行结果。#include int n=0;int& fun (int x) n -=x; return n;int main()fun(100)+=10; cout”n=”nendl;return 0;运行结果:n=-903、#include class Testprivate: int m;public: void setvalue(int n=0) m=n; void show () cout”m=”m setvalue(100);t1.add(10);t1.show();pt1.show();(*pt1).show();return 0;输出:m=1104、#include class Sampleprivate: int x; int y;public: void get(int a,int b) x=a; y=b;void disp() cout”x=”x”,”y=”yendl;int main()Sample *p;p=new Sample3;p0.get(1,2);p1.get(3,4);p2.get(5,6);for(int i=0;i3;i+) pi.disp();delete p;return 0;输出:x=1,y=2x=3,y=4x=5,y=65、#include class Sampleprivate: int x; static int y;public: Sample (int a) x=a; x+; y+void print() cout”x=”x”,”y=”yendl;int Sample:y=10;int main()Sample s1(20);Sample s2(30);s1.print();s2.print();return 0;输出:x=21,y=12x=31,y=126、#include class Testprivate: int n; static int m;public: int p; static int q; Test(int arg); static void disp1(); void disp2();int Test:m=10;int Test:q=20;Test:Test(int arg)n=arg;m=arg;Test:disp1()cout”m=”m”,”q=”qendl;Test:disp2()cout”m=”m”,”q=”qendl;cout”n=”n”,”p=”pendl;int main()Test obj1(2);cout”p=” obj1.p”, q=” Test:qendl;Test: obj1();obj1.disp2();return 0;输出:p=2,q=20m=10,q=20m=10,q=20n=2,p=27、#include class Aprivate: int x;public: A(int a) x=a; Friend class B;class Bpublic: void print1(A a) a.x-; cout”x=”a.xendl; void print2(A a) a.x+; cout”x=”a.xendl;int main()A a(10);B b;b.print1(a);b.print2(a);return 0;输出:x=9x=118、假定输入10个整数:32,64,53,87,54,32,98,56,98,83。下列程序的输出结果是? #include int main( ) int a,b,c,x;a=b=c=0;for (int k=0; kx;switch(x%3) case 0: a+=x; break;case 1: b+=x; break;case 2: c+=x; break;couta”,”b”,”c0; j-) for (k=j; k0; k-)cout”*”;coutendl;return 0;运行结果:*10、写出下列程序运行结果。#include int func(int x) int p;if (x=0 | x=1)return (3);p=x- func(x-2);return p;int main( )coutfunc(9);return 0;运行结果:711、#include int main()int a,b,c;coutabc;if(a=b) if(a=c) coutaendl; else coutc=c) coutbendl; else coutcendl;return 0;输入:12 16 90输出:9012、#include int main()int flower;cout flower;switch(flower) case 0: cout”red flower”endl; break; case 1: cout” blue flower”endl; break;case 2: cout” which flower”endl; break;case 3: cout” black flower”endl; break;case 4: cout” green flower”endl; break;default: cout”Sorry,I beg you pardon!”endl;return 0;输入:1输出:blue flower输入:8输出:Sorry,I beg you pardon!13、#include int main()int a,total=0;couta; if(a=0) break; total+=a;cout”total=”totalendl;输入:1 5 6 8 10 22 0输出:total=52四、编程题1、编写程序输出所有的水仙花数。所谓水仙花数是指一个三位数,其各位数的立方和等于该数。例如:153=13+53+33。#include int main()int a,b,c;for(int i=100;i=999;i+)a=i/100;b=i%100/10;c=i%10;if(a*a*a+b*b*b+c*c*c=i)coutiendl;return 0;2、编写程序,计算s=1+(1+2)+(1+2+3)+(1+2+3+n)的值。#include int main()int n,s,sum=0;cinn;for(int i=1;i=n;i+)s=0;for(int j=1;j=i;j+)s+=j;sum+=s;coutsumendl;return 0;3、某百货公司为了促销,采用购物打折的办法。(1)在1000元以上者,按九五折优惠;(2)在2000元以上者,按九折优惠;(3)在3000元以上者,按八五折优惠;(4)在5000元以上者,按八折优惠。编写程序,输入购物款数,计算并输出优惠价。(要求用switch语句编写)#include int main()int cost;double price,d;cincost;if(cost5000)d=0.8;switch(cost/1000)case 0:d=1.0;break;case 1:d=0.95;break;case 2:d=0.9;break;case 3:case 4:d=0.85;break;price=cost*d;coutpriceendl;return 0;第五课 第六课一、填空题1、 构造函数 是用来初始化类的数据成员的一种特殊的成员函数。2、一个类的 多 个构造函数,有 一 个析构函数。3、构造函数是 对象 被创建时自动执行,对象消失时自动执行的成员函数称为 析构函数。4、设p是指向一个类动态对象的指针变量,则执行“delete p;”语句时,将自动调用该类的 析构函数 。5、对一个类中的数据成员的初始化可以通过构造函数中的 初始化表 实现,也可以通过构造函数中的 函数体 实现。6、类中可以有许多相同名称、但参数类型或个数不同的成员函数,称为 函数重载 。7、运算符函数中的关键字是 operator ,它和运算符一起组成该运算符函数的函数名。8、类中运算符重载一般采用两种形式: 成员函数 和 友元函数 。9、对于一元运算符重载,参数为 空 ;对于二元运算符,若重载为类的成员函数,有 1 个参数。二、选择题1、就静态变量而言,以下陈述中哪个为真?BA)静态变量只能定义在main()函数中。B)静态变量即使在执行完它属于的函数后还保留它的值。C)静态变量自动地初始化。D) 静态变量必须定义为 public。2、下面那个函数组重载是错误的?BA)void add(int,int)void add(float,float)B) void display(int,char)int display(int,char)C) int get(int)int get(int,int)D) int square(int)float square(float)3、事前+运算符的重栽形式是?AA) operator +()B) operator ()+C) operator +( int) D) operator +( char)4、判读下面那个叙述对构造函数的说明是正确的?CA) 构造函数一个类只能有一个B) 构造函数必须要在每个类中声明一个C) 构造函数没有返回值D) 构造函数是有返回值的三、写出程序运行结果1、写出下列程序运行结果。#include int sum(int i,int j=10); /对sum函数的声明int sum(int i,int j) return (i+j);int main()int m=10,n=20;coutsum(m,n)endl;coutsum(m)endl;return 0;运行结果:30202、写出下列程序运行结果。#include class Aprivate: int x; int y;public: A() x=0; y=1;A(int a) x=a; y=1;A(int a,int b) x=a; y=b;void print() cout”x=”x”,y=”yendl;int main()A a1,a2(5),a3(-5,-10);a1.print();a2.print();a3.print();return 0;运行结果:x=0,y=1x=5,y=10x=5,y=-103、分析以下程序的执行结果: #include class Sample protected: int x; public: Sample() x=0; Sample(int val) x=val; void operator+() x+; ; class Derived:public Sample int y; public: Derived():Sample() y=0; Derived(int val1,int val2):Sample(val1) y=val2; void operator-() x-;y-; void disp() coutx= x y= y endl; f int main () Derived d(3,5); d.disp(); d+; d.disp (); d-; d-; d.disp(); return 0; 解: 所有运算都是对x而言的。 运行结果: x=3, y=5 x=4,y=5 x=2,y=54、#include class Aprivate: int x; int y;public: A() x=0; y=1;A(int a) x=a; y=10;A(int a,int b) x=a; y=b;void print() cout”x=”x”,y=”yendl;int main()A a1,a2(5),a3(-5,-10);a1.print();a2.print();a3.print();输出:x=0,y=1x=5,y=10x=-5,y=-105、#include class Sampleprivate: int x;public: Sample() Sample(int a) x=a;void disp() cout”x=”x endl;int operator+();int operator+(int);int Sample: operator+()x+=1;return x;int Sample: operator+(int)x+=1;return x;int main()Sample; obj(5);obj.disp();obj+;obj.disp();+obj;obj.disp();cout”x=”obj+endl;return 0;输出:x=5 x=6 x=7 x=8第七课 第八课一、填空题1、类有两种用法:一种是类的实例化,即生成类的对象;另一种是通过 继承 ,派生出新的类。2、如果类A继承了类B,则类A称为 派生类 ,类B称为 基类 。3、C+语言提供的 多重继承 机制允许一个派生类继承多个基类,即使这些基类是相互无关的。4、在多重继承的构造函数定义中,几个基类的构造函数之间用 , 分隔。5、面向对象程序设计的三大机制为: 封装性 、 继承性 、 多态性 。6、声明虚函数的方法是在基类中的成员函数原型前加上关键字 virtual 。7、在编译是就解决的函数调用称为 静态 联编;在运行时才解决的函数调用称为度 动态 联编。二、选择题1、下面描述中,表达错误的是 BA) 公有继承时基类中的public成员在派生类中仍是public的B) 公有继承是基类中的private成员在派生类中仍是public的C) 公有继承时基类中protected成员在派生类中仍是protected的D) 私有继承时基类中的public成员在派生类中是private的2、下列关于构造函数的描述中,错误的是 DA) 构造函数可以设置默认参数B) 构造函数在定义类对象时自动执行C) 构造函数可以是内联函数D) 构造函数不可以重载3、应在下列程序划线处填入的正确语句是 C#includeclass Base public:void fun()coutBase:funENDL;class Derived:public Base void fun()_ /显示调用基类的函数fun()coutDerived:funfun();4、考察关于C+的联编(Binding)以下陈述:C陈述 A:静态联编是效率较高。陈述 B:动态联编是灵活的。关于上面陈述,以下中哪个为真?A)两个陈述A和B都为假B)陈述A为真,陈述B为假C)两个陈述A和B都为真D)陈述A为假,陈述B为真5、以下中哪个指在运行时而不是在编译时解开函数?B A)动态多态性B)动态联编C)静态联编D)静态多态性6、为由派生类D调用基类A的析构符,可使用以下陈述中哪个?BA)不可由派生类显式地调用析构符B)A:A()C)A:A()D)A-A()三、写出程序运行结果1、分析以下程序的执行结果: #include class base public: base()coutconstructing base classendl; base()coutdestructing base classendl; ; class subs:public base public: subs()coutconstructing sub classendl; subs()coutdestructing sub classendl; ; int main() subs s; return 0; 解: 本题说明单继承情况下构造函数和析构函数的调用顺序。这里base为基类,subs为派生类。 所以输出为: constructing base class constructing sub class destructing sub class destrcuting base class 注意:在单继承情况下,首先调用基类的构造函数 ,随后调用派生类的构造函数,析构函数的调用顺序则正好相反。第九课 第十课一、填空题1、在类定义中,将 =0 置于虚函数的函数原型的末尾可以声明为该函数为纯虚函数。2、如果一个类中有一个或多个纯虚函数,则这个类称为 抽象类 。二、 选择题1、在C+中,_找出变量或某种数据类型所占有的字节数AA)sizeof B)size C)get D)getsize2、你把包含一个或多个纯虚函数的类称为什么?AA)抽象类B)虚拟类C)friend类 D)protected类3、在下面的一维数组定义中,哪一个有语法错误 CA)int a =1,2,3B)int a10=0C)int a D)int a54、下面的哪个保留字不能作为函数的返回类型?CA) void B) int C) new D) long三、 写出程序运行结果1、分析以下程序的执行结果:#include class Sample float a; / 实部 float b; / 虚部 public: Sample() Sample(float x,float y)a=x;b=y; void mult(Sample &s) / 对象引用作为参数 if(&s=this) / 不能自己相乘 cout自己不能相乘0) couta+biendl; else couta-biendl; int main() Sample s1(2,3),s2(3,4); cout复数s1:; s1.disp(); cout复数s2:; s2.disp(); s1.mult(s2); cout相乘结果:; s1.disp(); coutendl; return 0; 本程序执行结果如下: 复数s1:2+3i 复数s2:3+4i 相乘结果:-6+17i2、分析以下程序的执行结果:#include class A public: virtual void show() coutclass Aendl;class B:public A public: virtual void show() coutclass Bendl; class C:public A public: virtual void show() coutclass Cshow();int main() A a; B b;C c;Disp(&a);Disp(&b;Disp(&c);return 0; 运行结果:class Aclass Bclass C3、#include class Apublic: int a; void fun() cout”类A成员函数被正确调用”endl;class B:virtual public A public: void display() cout”Ab=”aendl;class C:virtual public A public: void display() cout”Ac=”aendl;class D: public B,public C void display() B:display();C:display();int main()D d;d.a=2;d.display();d.fun();return 0;输出:Ab=2 Ac=2 类A成员函数被正确调用4、#include class Basepublic: virtual void fun1() cout”fun1 of base”endl;virtual void fun2() cout”fun2 of base”endl;void fun3() cout”fun3 of base”endl;class Derive:public Base public: void fun1() cout”fun1 of derive”endl;void fun2() cout”fun2 of derive”endl;void fun3() cout”fun3 of derive”fun1();p-fun2();p-fun3();p=&d;p-fun1();p-fun2();p-fun3();return 0;输出:fun1 of basefun2 of basefun3 of basefun1 of derivefun2 of derivefun3 of base5、#include #include int main()char str100;fstream file;file.open(“abc.txt”,ios:in|ios:out);file”abcdefg”;file.seekp(0);while(!file.eof() file.getline(str,100); coutstr;file.close();return 0;输出:abcdefghijklmn6、#include #include struct nodeint data;node *next;class listprivate: node *head;public:list() head=NULL;void push(int d) node *p; p=new node;

温馨提示

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

评论

0/150

提交评论