C++程序设计.doc_第1页
C++程序设计.doc_第2页
C++程序设计.doc_第3页
C++程序设计.doc_第4页
C++程序设计.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题(50分,每题2分)(1)以下叙述中错误的是A)算法正确的程序最终一定会结束B)算法正确的程序可以有零个输出C)算法正确的程序可以有零个输入D)算法正确的程序对于相同的输入一定有相同的结果(2)以下C+语言中用于单行注释的是( )A)/ B)/* C)*/ D)|(3)设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是A)k=k=k B)-k+ C)k%int(f) D)k=f=m(4)下列变量定义中合法的是 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3;(5)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(6)有以下程序main() char a1=M,a2=m; cout(a1,a2)endl;以下叙述中正确的是A)程序输出大写字母M B)程序输出小写字母mC)格式说明符不足,编译出错 D)程序运行时产生出错信息(7)以下不合法的字符常量是A)018B) C) D) xcc(8)表达式3.6-5/2+1.2+52的值是A)4.3B)4.8C)3.3 D)3.8(9)有如下程序段#include #include using namespace std;int main(int argc, char* argv)int a=4,b=5,x;char c=A;x=(a&b)&(cB);coutx;return 0;执行该程序段后,x的值为( )A)ture B)false C)0 D)1(10)下列程序的输出结果是( )#include #include usig namespace std;t x=1.2,y;y=(x+3.8)/5.0;couty*dendl;return 0;A)3 B)3.2 C)0 D)3.07using namespace std;int main(int argc, char* argv)double d=3.2;int x=1.2,y;y=(x+3.8)/5.0;couty*dendl;return 0;A)3 B)3.2 C)0 D)3.07(11)合法的数组定义是 A) int a=string; B) int a5=0,1,2,3,4,5; C) char s=string; D) char a=0,1,2,3,4,5;(12)若有以下定义: char s20=programming,*ps=s; 则不能代表字符o的表达式是 A)ps+2 B)s2 C)ps2 D)ps+=2,*ps(13)若有以下定义和语句:char s120=12345,*s2=1234; coutstrlen(strcpy(s1,s2); 则输出结果是 A)4 B)5 C)9 D)10(14)下面能正确进行字符串赋值操作的语句是 A) char s5=ABCDE; B) char s5 =A,B ,C,D,E; C) char *s;s=ABCDEF; D) char *s; scanf(%s,s);(15)设有如下定义:struct test int a;float b;data,*p; 若有p=&data;,则对data中的a域的正确引用是A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a (16)设有数组定义: char array =China; 则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节(17)下列程序的输出结果为( )#include using namespace std;int main(int argc, char* argv)char *a=hello,the,world;char *pa=a;pa+;cout*paendl;return 0;A)hello B)the C)world D)hellotheworld(18)有如下程序#include #include using namespace std;int main(int argc, char* argv)float x=2.0,y;if(x0.0) y=0.0;else if(x10.0) y=1.0/x;else y=1.0;couty;return 0;该程序的输出结果是( )A)0 B)0.25 C)0.5 D)1.0(19)执行以下程序后,输出的结果是#include #include using namespace std;int main(int argc, char* argv)int y=10;do y-; while(-y);couty-endl; return 0;A) -1 B) 1 C) 8 D) 0(20)如下程序的执行结果是( )int main(int argc, char* argv) static int a=1,7,3,9,5,11; int *p=a; *(p+3)+=4; out*p,*(p+3);return 0;A)1,13 B)1,16 C)3,13 D)1,14(21)有如下程序:#includeusing namespace std;class MyClass public: MyClass(int x):val(x) void Set(int x)val=x; void Print()constcoutval=valt;private: int val; ;int main() const MyClass obj1(10); MyClass obj2(20); obj1.Print(); /语句 1 obj2.Print(); /语句 2 obj1.Set(20); /语句 3 obj2.Set(30); /语句 4 return 0;其主函数中错误的语句是()。 A)语句 1 B)语句 2 C)语句 3 D)语句 4(22)已定义以下函数int fun(int *p) return *p;)fun函数返回值是A)不确定的值B)一个整数 C)形参P中存放的值D)形参P的地址值(23)在下列原型所示的 C+函数中,按“传值”方式传递参数的是( )。A) void f1(int x); B) void f2(int*x); C) void f3(const int*x); D)void f4(int&x);(24) 在 C+中,编译系统自动为一个类生成缺省构造函数的条件是( )。A)该类没有定义任何有参构造函数B)该类没有定义任何无参构造函数C)该类没有定义任何构造函数D)该类没有定义任何成员函数(25)在一个抽象类中,一定包含有( )。A)虚函数 B)纯虚函数 C)模板函数 D)重载函数(二)简答及名词解释(30分,每道题5分)(1)使用标准输入输出对象步骤?(2)C+变量声明于C变量声明的区别联系?(3) 类与结构体的区别与联系?(4)静态成员的定义及用法?(5) 虚函数的定义?(6) 函数模版定义的基本语法?(三)程序设计(20分,每道题10分)(1)编程计算 2+4+6+100的和?(2)编制Shape类,并派生Rectangle(长方形)和Circle(圆形)类,实现面积的计算?(1)B(2)A(3)B(4)C(5)B(6)B(7)A(8)D(9)D(10)C(11)D(12)A(13)A(14)C(15)B(16)C(17)B(18)C(19)D(20)A(21)C(22)B (23)A(24)C(25)A(1)使用标准输入输出对象步骤?A.包含包含流对象的头文件#include B.使用名称空间using namespace std;C.使用对象coutm不是素数endl;(2)C+变量声明于C变量声明的区别联系?答:C+继承了C中变量声明的机制,允许在程序段的开始位置,所有可以执行语句前声明变量。但是C+取消了对声明语句位置的限制,即在可执行语句之后,声明声明变量,并建议在使用变量前,在声明相关的变量。例如int sum = 0;for(int i=0;i100;i+)sum+=i;(3)类与结构体的区别与联系结构体实现了数据封装和抽象,实现对对象属性的描述,但是没有实现对对象功能的描述,而类扩展了结构体的定义,在实现数据封装的基础上实现了行为能力(功能)的封装,因此更加真实的描述现实世界。另外结构体实现的数据封装有限,不支持访问控制,结构体变量的所有成员均可以为外部程序访问,而类成员则实现访问控制。(4)静态成员的定义及用法答:静态成员是指对一类对象公有的信息和功能,此类的所有对象具有相同的静态成员。静态成员包括静态成员变量、静态成员函数。静态成员的使用可以与对象没有关系,直接通过类来访问。静态成员函数相当与C语言的中全局函数静态成员函数的使用与对象无关。静态成员函数是打破面向对象的封装性的技术,其主要用于构建工具类。(5)虚函数的定义虚函数指在继承类中声明,但是没有定义的函数,需要在派生类中定义的函数。实质为函数指针声明语法:普通虚函数:Virtual 函数类型 函数名称(函数参数);纯虚函数:Virtual 函数类型 函数名称(函数参数)=0;(6)函数模版定义的基本语法。函数模板是指在C+程序允许为功能完全相同,但是参数数据类型不同函数定义通用的函数,基本语法如下:template 函数类型 函数名称 (函数参数)或 template函数类型 函数名称 (函数参数)(1)编程计算 2+4+100的和?#include int main() int sum = 0, val = 2; / keep executing the while until val is greater than 10 while (val = 100) sum += val; / assigns sum + val to sum val+=2; / add 1 to val std:cout Sum of 1 to 10 inclusive is sum std:endl; return 0; (2)编制Shape类,并派生Rectangle和Circle类,实现面积的计算。#include #include using namespace std;class Math public:double Sin(double x)return sin(x);double Cos(double x)return cos(x);public:static const double PI;class Math:PI(3.1415926); class Shapepublic:virtual double Area()return 0;class Rectangle:public Shapeprivate:double width;double height;public:Rectangle(double w,double h)width=w;hei

温馨提示

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

评论

0/150

提交评论