程序设计原理C++试卷_第1页
程序设计原理C++试卷_第2页
程序设计原理C++试卷_第3页
程序设计原理C++试卷_第4页
程序设计原理C++试卷_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

试卷编号试卷编号命题人:审批人:试卷分类(A卷或B卷)B大学试卷学期:2至学年度第2学期课程:程序设计原理专业:计算机、电子、交通班级:姓名:学号:题号一二三四五六七八九十总分得分得分得分选择题(30分,1.5*20)1、下列各组中全是字符串常量的是()A)"a+b""1+2=5","china"B)'abc','xyz','5'C)'123',"456","789"D)'\n',"1+2=3","aaa"下面各选项中,属于非法的C++整型常量的是()A)01B)0x11C以下各选项中,(a?)中都是C++语言保留字的A)cout,operator,thisB)short,string,staticC)if,while,>=D)private,public,printf逻辑运算符两侧运算对象的数据类型()A)只能是0或1 B)只能是0或非0数C)只能是整型或字符型数据 D)可以是任何类型的数据(b)A)静态B)自动C)外部D)存储器设有以下语句,对a数组元素的引用中(其中0<=i<10),不正确的是(d?)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A)a[p-a]B)*(&a[i])C)p[i]D)*(*(a+i))关于类型转换的说法中,错误的是()A)如果a为int型变量,b为char型,则a+b的值为int型B)如果a为float型变量,b为int型,则a-b的值为float型C)如果a为double型变量,b为float型,则a*b的值为double型D)如果a为int型变量,b为int型,则a/(double)b的值为int型下列关于switch语句的描述中,正确的是(a)A)switch语句中default字句可以没有,也可有一个B)switch语句中每个语句序列中必须哟break语句C)switch语句中default字句只能放在最后D)switch语句中case子句后面的表达式可以是整型表达式9、对于switch(c)中的变量c不能定义为的类型是(d?)A)unsigned B)int C)char D)float10、下面不属于C++语言的基本数据类型的是(b)A)字符类型 B)枚举类型 C)逻辑类型 D)整数类型11、下列关于成员访问权限的描述中,不正确的是()A)公有数据成员和公有成员函数都可以被类对象直接处理B)类的私有数据成员只能被公有成员函数以及该类的任何元素或友元函数访问C)只有类和派生类的成员函数和友元函数可以访问保护成员D)保护成员在派生类中可以被访问,而私有成员不可以12、在重载一个运算符函数时,其参数表中没有任何参数,这说明该运算符是()A)一元非成员运算符 B)一元成员运算符C)二元非成员运算符 D)二元非成员运算符13、一个类的友元函数或友元类可以通过成员操作符访问该类的()A)私有成员 B)保护成员 C)公有成员 D)所有成员14、下列关于派生类的描述中,错误的是()。A)一个派生类可以作为另一个派生类的基类B)派生类至少有一个基类C)派生类的成员除了它自己的成员外,还包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类中保持不变15、下列运算符中,()运算符不能在C++中重载。A)?:B)+C)-D)<=16、继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员A)规律性 B)传递性 C)重复性 D)多样性17、下列关于虚函数的描述中,正确的是()A)如果在重定义函数时使用了保留字virtual,则重定义函数仍然是虚函数B)虚函数不得声明为静态函数C)虚函数不得声明为另一个类的友元函数D)派生函数必须重新定义基类的虚函数18、下列描述中,表达错误的是()A)公有继承时基类中的public成员在派生类中仍是public的B)公有继承时基类中的private成员在派生类中仍是private的C)公有继承时基类中的protected成员在派生类中仍是protected的D)私有继承时基类中的public成员在派生类中是private的19、实现运行时的多态性要使用()A)重载函数 B)析构函数 C)构造函数 D)虚函数20、基类中的()不允许外界访问,但允许派生类的成员访问,这样既在一定的隐藏能力,又提供了开放的接口A)公有成员 B)私有成员 C)保护成员 D)私有成员函数得分得分二、判断题(在括号内正确的打√,错误的打╳,每空1分共10分)。1、C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。()2、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()3、在不同类型操作数组成的表达式中,其表达式类型一定是最高类型double型。()4、当break语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能直接退出整个双重循环。()5、For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。()6、返回值类型、参数个数和参数类型都相同的函数也可以重载。()7、重新定义的标识符在定义它的区域内是可见的,而与其同名的原标识符在此区域内是不可见的但是却是存在的。()8、数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。。()9、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。()10、已知:类A中一个成员函数说明如下:voidSet(A&a);其中A&a的含意是将a的地址值赋给变量Set。()三、程序填空(根据给出的程序功能说明,补充完整程序中缺少的代码,每一空行只填写一条语句或一个表达式,不写、多写、错写不给分。)(20分每空2分)1.编写程序,判断某一年是否为闰年。#include<iostream>usingnamespacestd;intmain(){intyear;①leap;cout<<″pleaseenteryear:″;cin>>year;if(year%4==0){if(year%100==0){if(year%400==0)②elseleap=false;}else③}elseleap=false;if(④)cout<<year<<″is″;elsecout<<year<<″isnot″;cout<<″aleapyear.″<<endl;return0;}2.编写程序,用起泡法对10个数排序(按由小到大顺序)。#include<iostream>usingnamespacestd;intmain(){inta[11];inti,j,t;cout<<″input10numbers:″<<endl;for(i=1;i<11;i++)⑤cout<<endl;for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(⑥){t=a[i];⑦;a[i+1]=t;}cout<<″thesortednumbers:″<<endl;for(i=1;i<11;i++)cout<<a[i]<<″″;cout<<endl;return0;}3、用递归方法求n!。#include<iostream>usingnamespacestd;longfac(int);intmain(){intn;longy;cout<<″pleaseinputaninteger:″;cin>>n;y=fac(n);cout<<n<<″!=″<<y<<endl;return0;}longfac(intn){longf;if(n<0){cout<<″n<0,dataerror!″<<endl;f=-1;}elseif(⑧)f=1;else⑨return⑩;}得分四、 阅读程序(20分)得分阅读下面程序,在相应的语句后写注释(说明该语句的作用)。(5分)

#include<iostream>#include<string>usingnamespacestd;classStudent//①{public:voiddisplay();protected:intnum;stringname;charsex;};voidStudent::diaplay()//②定义基类成员函数{cout<<”num:”<<num<<endl;cout<<”name:”<<name<<endl;;cout<<”sex:”<<sex<<endl;}classStudent1:protectedStudent//③用保护方式声明基类Student的派生类Student1{public:voiddisplay1();private:intage;stringaddr;};voidStudent1::diaplay1(){cout<<”num:”<<num<<endl;cout<<”name:”<<name<<endl;;cout<<”sex:”<<sex<<endl;cout<<”age:”<<age<<endl;;cout<<”addr:”<<addr<<endl;}intmain(){Student1stud1;//④声明派生类Student1类的对象stud1.display1();//⑤通过对象stud1访问派生类中的公用成员函数stud1.num=10023;return0;}4)阅读下面程序,在相应的语句后写注释(说明该语句的作用)。(5分)

#include<iostream>#include<string>usingnamespacestd;classStudent{public:voiddisplay();protected://①声明以下是基类中的保护成员intnum;stringname;charsex;};voidStudent::diaplay(){cout<<”num:”<<num<<endl;cout<<”name:”<<name<<endl;;cout<<”sex:”<<sex<<endl;}classStudent1:protectedStudent//②用保护方式声明基类Student的派生类Student1{public:voiddisplay1();private:intage;stringaddr;};voidStudent1::diaplay1()//③定义派生类的公用成员函数{cout<<”num:”<<num<<endl;cout<<”name:”<<name<<endl;;cout<<”sex:”<<sex<<endl;cout<<”age:”<<age<<endl;;cout<<”addr:”<<addr<<endl;}intmain(){Student1stud1;stud1.display1();//④通过对象stud1访问派生类中的公用成员函数stud1.num=10023;//⑤错误,外界不能访问保护成员return0;}}3、阅读下面程序,写出该程序的功能和运行结果。(5分)

#include<iostream>usingnamespacestd;intmain(){chars1[20]=“student”,s2[20];inti=0,j=0;

while(s1[i]!=’\0’s2[j++]=s1[i++];s2[j]=’\0’cout<<”Thestring2is:”<<s2<<eddl;return0;}①该程序的功能是:②该程序的运行结果是:4、阅读下面程序,写出执行后的输出结果

温馨提示

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

评论

0/150

提交评论