09年电机学院C 专升本考试试卷(5月3日2稿).doc_第1页
09年电机学院C 专升本考试试卷(5月3日2稿).doc_第2页
09年电机学院C 专升本考试试卷(5月3日2稿).doc_第3页
09年电机学院C 专升本考试试卷(5月3日2稿).doc_第4页
09年电机学院C 专升本考试试卷(5月3日2稿).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

09年电机学院C 专升本考试试卷(5月3日2稿) 绝密xx年上海电机学院“专升本”招生统一考试C+程序设计试卷考生注意 一、本科目考试时间为120分钟。 二、本科目试卷共5大题,满分为150分。 三、考生试卷答案做答题纸上,做在试卷上无效。 考生注意 一、本科目考试时间为120分钟。 二、本科目试卷共5大题,满分为150分。 三、考生试卷答案做答题纸上,做在试卷上无效。 题 一、选择题(每题1分,共201=20分)1在下面的一维数组定义中,哪一个有语法错误。 C CAint a5=1,2,3;B.int a10=0;C.int a;Dint a5;2再将两个字符串连接起来组成一个字符串时,选用()函数。 Astrlen()Bstrcpy()Cstrcat()Dstrcmp()3.假设所有变量均为整型.则表达式(a=4,b=6,a+,a+b)的值是A.10B.11C.9D.44.下列程序段运行后x的值是a=b=c=0;x=35;if(!a)x-;else if(b);if(c)x=3;else x=5;A.34B.3C.35D.55.有以下程序段int k=0;while(k=1)k+;while循环执行的次数是A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次6.以下程序的输出的结果是:int x=3;void incre()static int x=1;x+;cout0;j+=2)s=10*s+pij-0;cout A.只能有一个B.只可有公有的C.可以有多个D.只可有缺省的13.假定一个类的构造函数为A(int aa,int bb)a=aa-;b=a*bb-;,则执行A x(8,9);语句后,x.a和x.b的值分别为()A.8和9B.8和63C.72和8D.8和7214若类Y是类X的友元类,则下列哪种访问关系是正确的A.类Y的成员不能访问类X的私有成员B.类Y的成员可以访问类X的私有成员C.类X的成员可以访问类Y的私有成员D.只有类X的公共成员才能访问类Y的私有成员15.假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为()。 A.int AA:a()B.int AA:a()C.AA:a()D.AA:int a()16.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。 A.in B.inline C.inLine D.InLiner17.在C+程序中使用的cin标识符是系统类库中定义的()类中的一个对象。 A.istream B.ostream C.iostream D.fstream18.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为()。 A.abc B.*this C.this D.this&19.结构中定义的成员默认为()访问属性。 A.public B.private C.protected D.friend20.假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的()。 A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数 二、填空题(18分,每空一分)1.含随机函数的表达式rand()%20的值在_0_至_19_区间内。 2.若while循环的“头”为“while(i+=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行_11_次后正常结束。 3.字符串”axy=4n”的长度为_88_。 4.strlen(”apple”)的值为_5_,strcmp(”a”,”A”)的值为_11_。 5.若“double x=100;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某个函数需要访问此x,则应在文件F2.CPP中添加对x的声明语句为_extern_。 6.已知int cubin(int n)return n*n*n;和double cubin(double n)return n*n*n;是一个函数模板的两个实例,假定类型参数用T表示,则该函数模板的定义是T cubin(T n)return n*n*n;。 7打印出2至99之间的所有素数(即不能被任何数整除的数)。 #include#includevoid main()int i,n;for(n=2;_i=99_;n+)int temp=int(sqrt(n);/求出n的平方根并取整for(i=2;_itemp)cout 9已知一维数组类ARRAY的定义如下,ARRAY与普通一维数组区别是其重载的运算符要对下标是否越界进行检查。 class ARRAYint*v;/指向存放数组数据的空间int s;/数组大小public:ARRAY(int a,int n);ARRAY()deletev;int size()return s;int&operator(int n);_int_ARRAY:operator(int n)/的运算符成员函数定义if(ns_)cerr下标越界!;exit (1);return_0_;10斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。 求斐波那契数列中的前20个数,要求每行输出5个数。 #includevoid main()int f,f1,f2,i;cout”斐波那契数列n”;f1=0;f2=1;cout (6) (6) (6) 三、程序填空题(18分,每空2分) 1、统计字符串中英文字母个数的程序。 #includeint count(char str);void main()char s180;couts1;cout”count=”=a&stri=A&stri=Z_)_num+_;_return num_;2从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。 注意二进制数的存放是按照从低位到高位的次序进行的。 #includevoid main()int x;coutx;int a20,k=0,r;dor=x%2;ak+=r;x=_x/2_;while(_x!=0_);for(-k;k=0;k-)_cout 四、看程序写结果(18分,每题3分) 1、#includeclass samplepublic:sample();sample(int);sample();void display();protected:int x;sample:sample()x=0;cout”constructing normallyn”;sample:sample(int m)x=m;cout”constructing witha number:” (20);obj1.display();obj2.display();答案 2、#includeclass vehicleint wheels;float weight;public:virtual void message()cout”vehicle messagen”;class car:public vehicleint passengers;public:void message()cout”car messagen”;class truck:public vehicleint goods;public:voidmessage()coutmessage();ptr=&obj1;ptr-message();ptr=&obj2;ptr-message()答案 3、#includeclass plexpublic:plex(double,double);plex(plex&);plex();plex operator+(plex&);plex&operator=(plex&);void display();protected:double real;double image;plex:plex(double x,double y)real=x,image=y;plex:plex(plex&x)cout”Runing copyconstructorn”real=x.real;image=x.image;plex:plex()real=image=0.0;plex plex:operator+(plex&x)return plex(real+x.real,image+x.image);plex&plex:operator=(plex&x)cout”Runing assignoperatorn”;real+=x.real;image+=x.image;return*this;viod plex:display()cout 4、#includedouble&fn(const double&pd)static double ad=32;ad+=pd;cout”fn beingcalledthe valueis:” 5、#includeclass baseint n;public:base(int a)cout”constructing baseclass witha number=” 6、#includetemplateclass samplepublic:sample();sample(T x)n=x;sample&operator+(const sample&);void disp()coutdata=x;/3行p-next=NULL;/4行if(list=NULL)return p;/5行NODE*p1=list;/6行while(p1-next!=NULL)p1=p1-next;/7行p1=p;/8行return list;错误行的行号为_2_和_8_。 分别改正为_和_。 2.下面程序段第4-10行中存在着三行语法错误,请指出错误行的行号并改正。 class A/1行int a,b;/2行const intc;/3行public/4行A():c (0);a (0);b (0)/5行A(int aa,int bb)c(aa+bb);a=aa;b=bb;/6行;/7行A a,b(1,2);/8行A*x=&a,&y=b;/9行A*z=new A,w10;/10行错误行的行号为_4_、_5_和_6_。 分别改正为_public:_、_A()a=0;b=0;c=0_和_A(int aa,int bb,int ):(aa+bb)a=aa;b=bb;c=;_。 六、编程题(16分,每题8分)1编写程序,用随机数函数产生1000个16之间的随机数。 用这1000个随机数分别代表殷子6个面的面值。 要求输出6个面的面值各自出现的次数。 #include#include#includevoid main()srand(unsigned)time(NULL);/初始化随机数种子int count6=0,0,0,0,0,0;/定义计数器数组int i;for(i=0;i1000;i+)int n=rand()%6+1;/随机出现1-6的数字countn-1+;/对应位置-1的计数器+1for(i=0;i6;i+)coutname=new charstrlen(name)+1;/动态分配数组内存strcpy(this-name,name);/复制姓名strcpy(this-sex,sex);/复制性别this-age=age;/年龄赋值Student()/析构函数deletename;/销毁name所用堆空间friend void display(Student&s);/友元输出函数声明private:char*name;/姓名char sex2;/性别int age;/年龄;voiddisplay(Student&s)/友元输出函数实现coutname;coutsex;coutage;Student s(name,sex,age);display(s);xx年上海电机学院专升本C+程序设计答题卡题号一二三四五总分分数评卷人题 一、选择题(每题1分,共201=20分)题目12345678910答案题目11121

温馨提示

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

评论

0/150

提交评论