1.关于C++语言,下列说法不正确的是
A.C++具有简洁、高效和接近汇编语言的特点
B.C++本身几乎没有支持代码重用的语言结构
C.C++语言不是一种纯面向对象的语言
D.C++支持面向对象的程序设计,这是它对C的重要改进
B
2.使用关键字________说明的函数为内联函数。
inline
3.C++支持两钟多态性,即________和________。
编译时的多态性运行时的多态性
4.在下面横线处填上适当字句,使程序输出结果为5,10
# include
void main(){________int n=5;
int& ________=n;
ref=ref+5;
cout< const ref 5.const int *p;表明 A.p本身是常量 B.p指向一个固定的int类型的地址,而p的内容可以修改 C.p只能指向一个整型常量 D.p只能指向一个被const修饰的int类型的常量 C 6.数据封装给数据提供了与外界联系的________,只有通过这些________,使用规范的方式,才能访问数据。 标准接口接口 7.在下面横线处填上适当字句,使程序完整。 int arr[]={1,2,3,4,5}; ________index(int i){return a[i];} void main(){ index(3)= ________;//将a[3]改为6 } int & 6 8.#include void main(){int *p,i,j; cin>>j;//输入4 p=new int[j]; if(!p){cout<<”Allocation error\n”;} for(i=0;i for(i=0;i cout< delete []p; } 输出为:4(这是输入的数据) 0 1 2 3 9.#include void comp(const int&,int&); int main(){int n=6,t=10; cout<<”n=”< comp(n,t); cout<<”n=”< return 0; } void comp(const&in1,int &in2){in2=in1*10+in2;} 输出为:n=6, t=10 n=6,t=70 10.下列属于C++头文件约定使用的扩展名的是 i..cpp ii..hpp iii..c iv..c++ B 11.C++提供了一种新的注释方式:从“//”开始,直到________,都被计算机当做注释。 行尾 12.在C++中,多态性被直观地称为“________”。 一个名字,多个函数 13.#include void addsub(int&,int&); void main(){int a=10,b=15; addsub(a,b); cout<<”a=”< } void addsub(int &m,int &n) {int temp=m; m=m*n; n=temp-n;} 输出为:a=150,b=-5 14.#include void main(){int a[2][2]={{2,4},{6,8}}; int *pa[2]; pa[0]=a[0]; pa[1]=a[1]; for(i=0;i<2;i++) for(j=0;j<2;j++,pa[i]++) cout<<“a[”< } 输出为:a[0][0]=2 a[0][1]=4 a[1][0]=6 a[1][1]=8 15.#include #include main(){cout< } 输出为:21 *21 **21 16.C++有几种联编 i.1种 ii.2种 iii.3种 iv.4种 B 17.由于引用不是变量,所以不能说明引用的________,也不能说明数据类型为引用数组或是指向引用的指针。 引用 18.函数原型标识一个函数的________,同时也标识该函数参数的________和________。 返回类型个数类型 19.#include void f(){static int i=15; i++; cout<<”i=”< } void main() { for(int k=0;k<2;k++) f(); } 输出为:i=16 i=17 20.#include #include main(){cout< cout< cout< cout<<100<<”aa”< return 0; } 输出为:14 12 xxxxxxx144aa 21.#include int fun(int n1,int n2){return n1*n2;} float fun(int f1,float f2){return f1*f2;} void main(){int a=10; int b=2.5; float c=2.55; float d=5.52; cout< cout< } 输出为:20 11.04 22.与标准错误输出设备相关联(缓冲方式)的,由C++流库预定义的流是________。 clog 23.C++的流类库预定义的,与标准输出设备相关联的流是 i.cin ii.cout iii.cerr iv.clog B 第三章习题及答案 9.缺省的析构函数的函数体是 A.不存在的 B.随机产生的 C.空的 D.无法确定的 C 10.以下说法中正确的是 A.一个类只能定义一个构造函数,但可以定义多个析构函数 B.一个类只能定义一个析构函数,但可以定义多个构造函数 C.构造函数与析构函数同名,只是名字前加了一个波浪号(~) D.构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是void 类型也不可以 B 11.不能在C++中提供封装的关键字是 A.class B.s truct C.t ype D.union C 12.由于数据隐藏的需要,静态数据成员通常被说明为 A.私有的 B.保护的 C.公有的 D.不可访问的 A 13.在类中说明的任何成员都不能用________、________和________关键字进行修饰。 extern auto regist 14.构造函数是和________同名的函数,但要在后者的名字之前冠有一个________,以区别于前者。 析构函数波浪号~ 15.用关键字static修饰的成员称为________。 静态成员 16.已知AA是一个类,则AA *a[2];声明了一个________数组。 类对象指针 17.拷贝初始化构造函数用对它所在类的________作为参数。 引用 18.指出下面程序段中的错误,并说明出错原因。 //str1.h #include #include class str{private:char *string; public:str(char* s){string=new char[strlen(s)+1];strcpy(string,s);} ~str(){cout<<”Delete…”< void print(){cout< #include “str1.h” void main(){str s1=”student”;str s2=s1; s1.print();s2.print();} 指针悬挂问题 24.指出下面程序段中的错误,并说明出错原因。 class Location{ public:void init(int initX,int initY); private:int X=1; public:int getX(); private:int y; }; 不能采用这种方式初始化 25.指出下面程序段中的错误,并说明出错原因。 class Test{ private: int num; protected: int p; }; void fun() {Test m; int x=m.p;} 类之外定义的函数不能访问类的保护成员 26.指出下面程序段中的错误,并改正。 class test{int x;}; test *ptr=new test[2]; delete ptr; 应为:delete []ptr; 27.在下面横线处填上适当字句,完成类的定义。 class T{public: void init(int initx) {x=initx;} int getx(){________;}//取x值 private: ________;}; return x int x 28.在下面横线处填上适当字句,完成类中成员函数的定义。class ABC{int n;float f; public: ABC(int,float); ABC(ABC&); }; ABC::ABC(________){n=num;f=f1;} ABC::ABC(ABC&t){n=________;f=t.f;} int num,float f1 t.n 29.#include class A{public: static int x; int y;}; int A::x=15; void main(){A a; cout< cout< } 输出为:15 15 30.class test{private: int num; public: test(); int get(){return num;} ~test(); }; test::test(){num=0;} test::~test(){cout<<”Destructor is active”< void main(){test t[2]; cout<<”Exiting main”< } 输出为:Exiting main Destructor is active Destructor is active 31.#include class salary{int x,y; static int n; public: salary(int b):x(b){} void f(double i){y=x*i;} static void g(int p){n=p;} int h()const{return(x+y+n);}}; int salary::n=100; void main(){salary s1(1000),s2(2000); s1.f(0.2);s2.f(0.15); salary::g(400); cout<<”s1=”< 输出为:S1=1600,S2=2700 32.#include class t{int x;float y; public: t(int n){x=n;} t(int n,float f){x=n;y=f;} int f(){return x;} float g(){return y;}}; t one[2]={3,4}; t two[2]={t(3,5.5),t(7,8.8)}; void main(){for(int i=0;i<2;i++) cout<<“one[”< cout< for(int i=0;i<2;i++) cout<<“two[”< one[1]=4 two[0]=(3,5.5) two[1]=(7,8.8) 33.说明友元函数使用关键字 i.friend ii.static iii.const iv.volatile A 34.指向类X中类型为type的数据成员的指针的说明形式为 i.type X::*pointer ii.X::type *pointer iii.Type *X::pointer iv.X::*type pointer A 35.有关类作用域,下列说法中不正确的是 i.说明类时使用的一对花括号形成所谓的类作用域 ii.类作用域不包含类中成员函数的作用域 iii.类作用域中说明的标识符只在类中可见 iv.在可能出现两义性的情况下,必须使用作用域限定符“::” B 36.形如X::X(X&)的构造函数称为 i.拷贝函数 ii.复制函数 iii.初始化构造函数 iv.拷贝初始化构造函数 D 37.友元关系不具有________,即当说明类A是类B的友元时,类B不一定是类A的友元。 交换性 38.new和________一同起作用,delete与________一起工作。 构造函数析构函数 39.指出下列程序段中的错误,并改正。 class Bb{private:int n;float f; public:Bb(int n1,float f1){n=n1;f=f1;} Bb(Bb b){n=b.n;f=b.f;} }; 应为:Bb(Bb &b){n=b.n;f=b.f;} 40.指出下面程序段中的错误,并改正。 class test{ public: static int x;}; int test.x=10; 应为:int test::x=10; 41.在下面横线处填上适当字句,完成类中成员函数的定义。 class A{private: int x;float y; public: A (int aa,float b){x=________;//用aa初始化x y=________;}//用b初始化y }; aa b 42.#include class A{private: int a,b; public: A(int m,int n){a=m;b=n;} void fun(){cout< void fun()const{cout< }; void main(){A a(5,8);a.fun(); const A b(8,5);b.fun(); } 输出为:5,8 8:5 43.下列关于封装的说法中正确的是 i.在C++中,封装是借助于函数达到的 ii.封装不要求对象具备明确的功能 iii.在数据封装的情况下,用户可以直接操作数据 iv.封装是将一组数据和与这组数据有关的集合组装在一起,形成一个能动的实体 D 44.定义的内容允许被其它对象无限制地存取的是 i.private部分 ii.protected部分 iii.public部分 iv.以上都不对 C 45.析构函数不用于 i.在对象创建时执行一些清理任务 ii.在对象消失时执行一些清理任务 iii.释放由构造函数分配的内存 iv.在对象的生存期结束时被自动调用 A 46.静态成员函数 i.只能通过对象名(或指向对象的指针)访问该对象的静态成员 ii.只能通过对象名(或指向对象的指针)访问该对象的非静态成员 iii.可以被说明为虚函数 iv.有this指针 B 47.关于下面程序段,说法正确的是 class A{ private: int n; public: A(A&); }; A::A(A&a){n=a.n;} A.A obj2(obj1);用对象obj1初始化具有相同类类型的对象obj2 B.A obj2(obj1);用对象obj2初始化具有相同类类型的对象obj1 C.A(A&a)也可以不使用引用参数而仍然是复制初始化构造函数 D.A(A&a)不能访问对象的私有成员 A 48.已知A是一个类,则对于A x=2;编译器将其解释为________。 A x(2) 49.结构是________的一种特例,其中成员在缺省情况下是________的。 类,公有 50.友元在________中说明,其名字的作用域在________。 类类外 51.指出下面程序段中的错误,并说明出错原因。 class A{ public: int a; void fa(void){} void fb(void){} }; void (A::*p)(void); p=A::fa; A x, *px=new A; (x. *p)(); px->*p(); 应为:(px->*p)(); 52.在下面横线处填上适当字句,使其输出结果为25,10。 #include class Location{int X,Y; public: ________; int GetX(){return X;} int GetY(){return Y;}} void Location::init(int k,int t)(X=k;Y=t;) void main(){Location a; a.init(25,10); ________;}//输出对象a的数据成员X和Y的值。 void init(int k, int t) cout< 53.在下面横线处填上适当字句,使程序输出结果为:x=10,y=5 x=5,y=10 Delete x=5,y=10 Delete x=10,y=5 #include class tt{private: int x,y; public: tt(int a, int b){x=a; y=b; ________;} ~tt(){ ________;} }; void main(){tt arr[2]={tt(10,5),tt(5,10)};} cout<<”x=”< cout<<”Delete x=”< 54.#include class ConstFun{public: const int f5(){return 5;} int obj(){return 3;} }; void main(){ConstFun a; const int i=a.f5(); int x=obj(); cout< const ConstFun b; int j=b.f5(); cout< } 输出为:5 3 5 55.运行下面的程序,写出当输入15,12时的结果 #include class Rectange{int width,length; public: Rectange(int x,int y){length=x;width=y;} void show(){ cout<<”The length is:”< cout<<”The width is:”< cout< } }; void main(){int m,n; cout<<“Input the length and the width!”< cin>>m;//输入15 cin>>n;//输入12 Rectangle r(m,n); r.show();} 输出为:Input the length and width 15 12(这是输入数据) The length is:15 The width is:12 The area is:180 56.#include class myclass{int val; public: myclass(int i=0){val=I;} myclass(myclass& cp); void set(int i); void print(); ~myclass(); }; myclass::myclass(myclass& cp){val=cp.val; cout<<”Hi.val=”< void myclass::print(){cout<<”This Print val=”< myclass::~myclass(){cout<<”Destructor for val=”< myclass myfun(myclass obj){obj.print(); obj.set(10); return obj;} void gFun(){myclass my(5),ret; ret=myfun(my);} void main(){gFun(); cout<<”Exiting main”< 输出为:Hi.val=5 This print val=5 Hi.val=10 Destructor for val=10 Destructor for val=10 Destructor for val=10 Destructor for val=5 Exiting main 57.类的静态成员 i.是指静态数据成员 ii.是指静态成员函数 iii.为该类的所有对象共享 iv.遵循类的其它成员所遵循的所有访问限制 C 58.一个类最多可有几个虚析构函数 i.不定 ii. 4 iii. 3 iv. 1 D 59.下列说法中正确的是 i.运算符new用于建立生存期可控的对象 ii.new建立动态对象的语法完全不同于建立动态变量的情况 iii.使用new建立的动态对象不用时必须调用析构函数删除 iv.new和构造函数不能同时使用 A 60.允许访问该类的所有对象的私有成员、公有成员和保护成员的是 i.友元函数 ii.成员函数 iii.内联函数 iv.重载函数 A 61.如果没有使用关键字,则所有成员 A.都是public权限 B.都是protected权限 C.都是private权限 D.权限情况不确定 C 62.联合以关键字________定义,成员缺省为________,并且在某个给定时间,只出现________个成员。 Union 公有一 63.不带参数的构造函数又称为________。 缺省构造函数 64.建立指向类A的无参数、无返回值的成员函数的指针p的语句是________。void(A::*p)(void); 65.在类定义中,在关键字protected之后说明的成员称________。保护成员 66.在________部分定义的内容允许被其它对象无限制地存取。public 67.指出下列程序段中的错误,并说明出错的原因。 class test{private: int num; public: test(); test(int n); }; test::test(){num=0;} test::test(int n){num=n;} void main(){test x;test y(2,3);test arr[2]={2,3};} 没有定义两个参数的构造函数 68.指出下面程序段中的错误,并改正。 class M{private: int a; static int x; public: void f(); static void sf(M&m); }; void M::f(){x=15;} void M::sf(M&m){a=10;} 应为:m.a=10; 69.#include class M{public: M(int i){X=i;cout< M(M &m){X=m.X;cout< void setX(int a){X=a;} ~M(){cout< private: int X;}; void main(){M m1(2),m2(m1); m2.setX(3); M m3=m2; } 输出为:2 2 3 3 3 2 57.已知example是已定义的类,则在程序结束前,共存在几个对象#include “example,h” main() {example x(5); example arr[2]={1,2}; x=10; x=example(15); x.print(); } E.3个 F.5个 G.7个 H.8个 B 第四章习题及答案 19.关于下面程序段,说法正确的是 class Location{ public: int GetX(); }; class Rectangle: private Location{ public: int GetW(); }; I.类Rectangle私有派生类Location J.类Rectangle中的public成员在类Location中是私有的 K.类Location中的public成员在类Rectangle中是不可访问的L.void f(){ Rectangle r; int X=r.GetX();} 其中X=r.GetX();是非法语句 D 20.对于多重继承,有 A.一个派生类只能有一个基类 B.一个基类只能产生一个派生类 C.一个基类必须产生多个派生类 D.一个派生类可有多个基类 D 21.派生类的对象与基类的对象的关系是 A.属于前者则不属于后者 B.属于前者,不一定属于后者 C.不属于前者则一定不属于后者 D.属于前者则一定属于后者 D 22.对于以下程序段,表达式正确的是 class base{public: int b;}; class base1:public base{}; class base2:public base{}; class derived: public base1,public base2{public: int fun();}; M. d.base1::b N. d.base::b O. d.b P. d.base::fun() A 23.对于以下的程序段,没有二义性的表达式是 class A{public: int f( );}; class B{public: int g( ); int f( );}; class C:public A, public B{public: int g(); int h();}; C obj; A.obj.f( ) B.o bj.A::g() C.o bj.B::f() D.obj.b::h() C 24.构造函数(包括析构函数)是________继承的,所以,一个派生类只能调用它的________基类的构造函数。 不能直接 25.指出下面程序段中的错误,并说明出错原因。 class A{public: void fun();}; class B{private: void fun();}; class C: public A , private B{ }; C x; x.fun(); 两义性检查是在访问权限检查之前进行的,故成员的访问权限不能解决两义性问题 26.在下面横线处填上适当字句,使程序完整。 class base{int a; public: base(int i){a=I;} }; class derived: public base{ int d; public: derived(int I,int j); }; ________(int I, int j): base(i){d=j;} void main(){derived d(________);//将基类成员初始化为3,派生类成员初始化为5 } derived::derived 3,5 27.单一继承形成一个________的树,多重继承形成一个________图。 倒挂有向无环 28.在下面横线处填上适当字句,使程序完整。 #include class A{protected: int x,y; public: void setx(int a){x=a;} void sety(int b){y=b;} }; class B:public A{private: ________; public: void seth(int c){h=c;} void setw(int d){w=d;} void show(){cout< }; void main(){B r; ________;//将对象r的地址置给指针p p->setx(3);p->sety(4);p->seth(5);p->setw(6); p->show(); } int h,w b* p=&r 29.指出下面程序段中的错误,并改正。 class base{}; class base1:public base{}; class base2:public base{}; class derived:public base1,public base2{}; base *bptr; derived *dptr; dptr=(derived *)bptr; 可改为:dptr=(derived *)(base1 *)bptr;或dptr=(derived *)(base2 *)bptr; 30.在下面横线处填上适当字句,使程序完整。 #include class A{ public: void f(){cout<<”a.f”< class B{public: void g(){cout<<”b.g”< void f(){cout<<”b.f”< class C:________//类C从类A和类B公有派生 {void g(){cout<<”c.g”< void main(){C x; ________;//对象x访问类B的g() x.A::f(); } public A, public B x.B::g() 31.下面程序用于计算各类形状的总面积。在下面横线处填上适当字句,完成程序功能。 #include class shape{public: virtual float area=0;}; float total (________,int n) {float sum=0; for(int i=0;i sum+=s[i]->area(); return sum; } class triangle:public shape{protected: float H,W; public: triangle(float h,float w){H=h;W=w;} float area(){return H*W*0.5;} }; class rectangle:public triangle{public: rectangle(float h,float w):triangle(h,w){} float area(){return H*W;} }; void main(){shape *s[2]; s[0]=new triangle(1.0,2.0); s[1]=new rectangle(2.0,4.0); float sum=total(s, ________); } shape *s[] 2 32.在可能出现两义性的情况下,必须使用________。 作用域限定符(::) 33.赋值兼容原则是指在________派生的情况下,一个________的对象可以作为________的对象来使用。 公有派生类基类 34.C++派生类从父类中继承性质时的变化可归结为两类,即_______和________。性质约束性质扩展 35.指出下面程序段中的错误,并改正。 class AA{private: int a; public: AA(int i){a=i;} }; class BB: public AA{private: int b; public: BB(int i,int j) }; BB:BB(int i,int j):AA(j){b=i;} V oid main(){BB b(3,6):AA(6);} 应为:BB b(3,6); 第五章习题及答案 36.编译时的多态性使用什么获得 A.重载函数 B.继承 C.虚函数 D.B和C A 37.抽象类 A.至少含有一个纯虚函数 B.至少含有一个空虚函数 C.派生的类必须提供纯虚函数的实现代码 D.可以说明抽象类的对象,也可以派生新类 A 38.一般来讲,对于二元运算符,为便于使用,应将它重载为 A.成员函数 B.虚函数 C.构造函数 D.友元函数 D 39.对于表达式1+2,C++编译器在处理它时,将其解释成函数调用表达式A.operator(1+2) B.o perator+(1,2) C.+(1,2) D.operator1+2 B 40.下列程序段中,错误的是 class A{public: virtual void f()=0;//① void g(){f();}//② A(){f();}//③ }; A.① B.② C.③ D.①和② C 41.运算符 A.只能用类运算符重载 B.只能用友元运算符重载 C.可以用类运算符或友元运算符重载 D.不能重载 A 42.许多情况下,在基类中不能为虚函数给出一个有意义的定义,这时可以将它说明为________。 纯虚函数 43.指出下面程序段中的错误,并改正。 class number{private: int num; public: number(int i){num=i;} int ++operator(); }; int number::++operator() {num++; return num;} int operator++(); int number::operator++(); 44.指出下面程序段中的错误,并说明出错原因。 class A{ public: virtual void show()=0; }; A a; A *p; 不能说明抽象类的对象 45.下面是实现重载++运算符的类number的定义。在下面横线处填上适当字句。class number{private: int num; public: number(int i){num=i;} int operator++()//前缀:++n { num++; return________;} int operator++(int)//后缀:n++ {int i=num; num++; return ________;} }; num i 46.#include class A{; public: virtual void f1(){cout<<”f1()—f2()”< void f2(){cout<<”f2()—f3()”< virtual void f3(){cout<<”f3()—f4()”< virtual void f4(){cout<<”f4()—f5()”< void f5(){cout<<”The end”< class B:public A{public: void f3(){cout<<”(f3--f4)”< void f4(){cout<<”(f4—f5)”< void f5(){cout<<”All done”< void main(){A *ptr=new B; ptr->f1(); delete ptr;} 输出为:f1()—f2() f2()—f3() (f3—f4) (f4—f5) All done 47.operator经常和C++中的一个________联用,表示一个________名。 运算符运算符函数 48.下面是类complex(复数)的定义,其中重载的运算符<<以复数形式输出结果,如将实部为3虚部为2的复数输出为3+2i。在横线处填上适当字句。 class complex{private: float Re,Im;//Re是实部,Im是虚部 public: complex(float r=0,float i=0){ Re=r;Im=i;} friend ostream& operator<<(ostream &s,complex e) {________; return ________;} }; s< 49.静态联编的最大优点是________。 速度快 50.要获得多态性的对象,必须建立一个________,然后在派生类中重定义基类函数。 类等级 51.#include class A{public: virtual operator const *(){return “ABC”;}}; class B:public A{public: operator const *(){return”DEF”;{}; void main(){A *p=new A; A *t=new B; cout<<*p<<*t< } 输出为:ABCDEF 52.#include class base{int i; public:base(int a=0):i(a){} virtual int sum(void)const{return i;} }; class derived:public base{int j; public: derived(int a=0,b=0):base(a),j(b){} int sum(void)const{return base::sum()+j;} }; void call(bse B){cout<<”sum=”< void main(){base b(10); derived d(10,40); call(b); call(d); } 输出为:sun=10 sun=10 注意:由于函数call的参数是对象,故采用静态联编,若用base&B 做参数,则语句call(d)输出sum=50 53.________函数只能是类中的一个成员函数,但不能是静态成员,关键字virtual 用于类中该函数的说明中。 虚 19.若运算符所需的操作数,尤其是第一个操作数希望进行隐式类型转换,则该运算应该通过_______来重载。 友元 20.希望下面程序产生的输出是B::fb()而程序运行结果是A::fb(),请指出错误并改正。 #include class A{public: virtual void fa(void){cout<<”A::fa()”< void fb(void){cout<<”A::fb()”< }; class B: public A{public: void fa(void){cout<<”B::fa()”< void fb(void){cout<<”B::fb()”< }; 1.在类作用域中能够通过直接使用该类的()成员名进行访问。 A. 私有 B. 公用 C. 保护 D. 任何 答案:D 2.小数类型和浮点类型都可以表示小数,正确说法:( ) A. 两者没有任何区别 B. 小数类型比浮点类型取值范围大 C.小数类型比浮点类型精度高 D. 小数类型比浮点类型精度低 答案:C 3.能作为C#程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 答案:B 4. 可用作C#程序用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 答案:B 5.引用类型主要有4种:类类型、数组类型、接口类型和()。 A.对象类型 B.字符串类型 C.委托类型 D.整数类型 答案:C 6.使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是(). A.Exists() B.GetFiles() C.GetDirectories() D.CreateDirectory() 答案:B 7.加载窗体时触发的事件是( )。 A. Click B.Load C.GotFoucs D.DoubleClick 答案:B 8.改变窗体的标题,需修改的窗体属性是( )。 A. Text B. Name C.Title D. Index 答案:A 9.在接口的成员中,不能包含( ). A.属性 B.方法 C.事件 D.常量 答案:D 10.在C#中定义接口时,使用的关键字是( )。 A.interface B.: C.class D.overrides 答案:A 1.当在程序中执行到语句时,将结束所在循环语句中循环体的一次执行。 答案:continue 2.元素类型为double的2行5列的二维数组共占用字节的存储空间。 答案:80 3.C#数组类型是一种引用类型,所有的数组都是从System命名空间的类继承而来的引用对象。 答案:object 4.枚举是从System. 类继承而来的类型。 答案:Enum 5.一般将类的构造方法声明为访问权限。如果声明为private,就不能创建该类的对象。 答案:public或公有 6.类中声明的属性往往具有get()和两个函数。 答案:set() 7.对于方法,参数传递分为值传递和两种。 一、求一个任意边长的矩形面积。 #include #include C++/C经典笔试题及答案 C++/C试题 本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 笔试时间90分钟。请考生认真答题,切勿轻视。 一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。(10分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 ) 请写出BOOL flag 与“零值”比较的if 语句: 请写出float x 与“零值”比较的if 语句: 请写出char *p 与“零值”比较的if 语句: char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 sizeof (str ) = sizeof ( p ) = sizeof ( n ) =void Func ( char str[100]) { 请计算 sizeof( str ) = } void *p = malloc( 100 );请计算 sizeof ( p ) = 1、头文件中的 ifndef/define/endif 干什么用? 2、#include 1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键 C 语言习题100 例(最新整理版) 习题目录:(按住Ctrl 点击可以快速跳转到对应页面) 【程序1】 (5) 题目:有1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? (5) 【程序2】 (6) 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元 时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? (6) 【程序3】 (7) 题目:一个整数,它加上100 后是一个完全平方数,再加上168 又是一个完全平方数,请问该数是多少? (7) 【程序4】 (7) 题目:输入某年某月某日,判断这一天是这一年的第几天? (7) 【程序5】 (8) 题目输入三个整数x,y,z请把这三个数由小到大输出。 (8) 【程序6】 (9) 题目用*号输出字母C的图案。 (9) 【程序7】 (9) 题目:输出特殊图案,请在C环境中运行,看一看,VeryBeautifuI! (9) 【程序8】 (9) 题目:输出9*9 口诀。 (9) 【程序9】 (10) 题目:要求输出国际象棋棋盘。 (10) 【程序10】 (10) 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 (10) 【程序11】 (11) 题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (11) 【程序12】 (11) 题目:判断101-200 之间有多少个素数,并输出所有素数。 (11) 【程序13】 (12) 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1 的三次方+5的三次方+3的三次方。 (12) 【程序14】 (12) 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 。 (12) 【程序15】 (13) 题目利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用 C 表示。 (13) 【程序16】 (13) 题目:输入两个正整数m和n ,求其最大公约数和最小公倍数。 (13) 【程序17】 (14) 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。14【程序18】 (14) 《数据结构与算法》复习题 选择题 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 B.数据结构 C 3 A 。 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是 O(n2) 。 s =0; for( I =0; i 15.带头结点的单链表head为空的判定条件是 B 。 A.head == NULL B head->next ==NULL C.head->next ==head D head!=NULL 16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用 D 存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 20 21 B 。 22 A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C.在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素 23.与单链表相比,双链表的优点之一是 D 。 A.插入、删除操作更简单 1、猴子吃桃子:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子第一天共摘了几个桃子 #include 东风冷雪提供 /* 1.0用函数模板实现任何两个简单类型数据交换,并给出实例加以验证!(请先预习教材函数模板相关知识) */ #include p(s); return 0; } /*3.0 编写三个名为add的重载函数,分别实现两个整数、 两个实数和两个复数相加。*/ #include C语言习题100例(最新整理版) 习题目录:(按住Ctrl点击可以快速跳转到对应页面) 【程序1】 (5) 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? (5) 【程序2】 (6) 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成 1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? (6) 【程序3】 (7) 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? (7) 【程序4】 (7) 题目:输入某年某月某日,判断这一天是这一年的第几天? (7) 【程序5】 (8) 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 (8) 【程序6】 (9) 题目:用*号输出字母C的图案。 (9) 【程序7】 (9) 题目:输出特殊图案,请在c环境中运行,看一看,VeryBeautiful! (9) 【程序8】 (9) 题目:输出9*9口诀。 (9) 【程序9】 (10) 题目:要求输出国际象棋棋盘。 (10) 【程序10】 (10) 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 (10) 【程序11】 (11) 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (11) 【程序12】 (11) 题目:判断101-200之间有多少个素数,并输出所有素数。 (11) 【程序13】 (12) 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 (12) 【程序14】 (12) 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 (12) 【程序15】 (13) 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 (13) 【程序16】 (13) 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 (13) 【程序17】 (14) 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 (14) 【程序18】 (14)C经典习题答案
C语言经典例题和答案
c和c++经典笔试题及答案
C语言练习题(带答案)-绝对经典题目不看后悔
最新版c语言经典习题100例(最全面)
数据结构(C语言)【经典题库】含参考答案
C语言经典例题目解析
C经典例题
最新版c语言经典习题100例(最全面)
C经典编程练习题