您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 面向对象程序设计形成性考核册作业二
面向对象程序设计形成性考核册作业二一、选择题:1.若用数组名作为函数调用的实参,传递给形参的是(A)。A.数组的首地址B.数组中第一个元素的值C.数组全部元素的值D.数组元素的个数2.采用重载函数的目的是(D)。A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性3.下面的标识符中,(C)是文件级作用域。A.函数形参B.语句标号C.外部静态类标识符D.自动类标识符4.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是(B)。A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C.仅仅搜索源程序所在目录D.搜索当前逻辑盘上的所有目录5.在下面存储类中,(A)的对象不是局部变量。A.外部静态类B.自动类C.函数形参D.寄存器类6.预处理命令在程序中都是以(B)符号开头的。A.*B.#C.&D.@7.用new运算符创建一个含10个元素的一维整型数组的正确语句是(C)。A.int*p=newa[10];B.int*p=newfloat[10];C.int*p=newint[10];D.int*p=newint[10]={1,2,3,4,5}8.假定变量m定义为“intm=7;”,则定义变量p的正确语句为(B)。A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;9.关于void指针,下列说法正确的是(C)。A.void指针就是未指向任何数据的指针B.void指针就是已定义而未初始化的指针C.指向任何类型数据的指针可直接赋值给一个void指针D.void指针值可直接赋给一个非void指针10.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(C)。A.1B.4C.sizeof(double)D.sizeof(p)11.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。A.int*p=newint[30];B.int*p=newint(30);C.int*p=new[30];D.*p=newint[30];12.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book=newBOOK;”,则正确的语句为(A)。A.strcpy(book-title,”WangTao”);B.strcpy(book.title,”WangTao”);C.strcpy(*book.title,”WangTao”);D.strcpy((*book)-title,”WangTao”);13.下列对引用的陈述中不正确的是(C)。A.每一个引用都是其所引用对象的别名,因此必须初始化B.形式上针对引用的操作实际上作用于它所引用的对象C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D.不需要单独为引用分配存储空间14.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句(A)。A.deletep;B.delete*p;C.delete&p;D.delete[]p;15.关于消息,下列说法中不正确的是(B)。A.发送消息的对象请求服务,接受消息的对象提供服务B.消息的发送者必须了解消息的接收者如何相应消息C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用D.每个对象只能接收某些特定格式的消息16.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的(A)。A.可维护性B.可复用性C.兼容性D.正确性17.软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的(D)。A.可维护性B.可复用性C.兼容性D.正确性二、填空题1.作为语句标号使用的C++保留字case和defaule只能用于__switch______语句的定义体中。2.当在程序中执行到__break______语句时,将结束本层循环类语句或switch语句的执行。3.在程序执行完_主(或main)_______函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。4.存储字符’a’和字符串”a”分别需要占用___1_____和____2____个字节。5.字符串”a:\\xxk\\数据”的长度为__11______。6.一个二维字符数组a[10][20]能够存储___10_____个字符串,每个字符串的长度至多为___19_____。7.若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行__strcpy______函数的调用来实现。8.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__static________C++保留字。9.在函数模板的参数中,用class修饰的参数称为__虚拟类型(或类型)________参数。10.如果一个函数定义中使用了____static______修饰,则该函数不允许被其它文件中的函数调用。11.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的____头文件______。12.C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__代码区(程序区)________。13.若二维数组a有m列,设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中位置序号的公式为__i*m+j+1(从1开始算起,若从0开始则为:i*m+j)__________。14.一个指针类型的对象占用内存的___4_____个字节的存储空间。15.假定一个数据对象为int*类型,则指向该对象的指针类型为__int**_____。16.假定p所指对象的值为25,p+1所指对象的值为42,则*p++的值为__25______。17.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为__42______。18.一个数组的数组名实际上是指向该数组___首_____元素的指针,并且在任何时候都不允许__修改______它。三、程序填空:1.从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。注意二进制数的存放是按照从低位到高位的次序进行的。#includeiostream.hvoidmain(){intx;cout输入一个整数:;cinx;inta[20],k=0,r;do{r=x%2;a[k++]=r;x=__(1)___;}while(___(2)___);for(--k;k=0;k--)___(3)___;coutendl;}(1)x/2(2)x或x!=0(3)couta[k]2.对按从小到大排列的有序数组a[n]进行二分查找x的算法,若查找成功返回该元素下标,否则返回-1。intBinarySearch(inta[],intN,intx)//不增加intN将会提示N未声明{intlow=0,high=N-1;//定义并初始化区间下界和上界变量intmid;//定义保存中点元素下标的变量while(low=high){mid=___(1)___;//假定要找的数正好是下界和上界的中间if(x==a[mid])___(2)___;//如正好找到这个数就输出其下标elseif(xa[mid])high=mid-1;//要找的数比中间的小则在前半段中找else___(3)___;//要找的数比中间的大则在后半段中找}return-1;//找不到返回-1}(1)(low+high)/2(2)returnmid(3)low=mid+13.假定有定义为“structNODE{intdata;NODE*next;};”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。voidf6(NODE*&L,inttable[],intn){L=NULL;if(n=0)return;inti=0;NODE*p;while(___(1)___){p=newNODE;p-data=___(2)___;p-next=L;___(3)___;i++;}}(1)in(2)table[i](3)L=p四、写出程序运行结果1.#includeiostream.hconstintT=6;voidmain(){inti,j;for(i=1;i=T;i+=2)for(j=2;j=T;j+=2){if(i+jT)cout’+’;//行号与列号之和小于6输出加号elsecout’*’;//行号与列号之和小于6输出*号}}程序运行结果为:++*+*****Pressanykeytocontinue2.#includeiomanip.hconstintN=3;voidmain(){inta[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};intb[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};inti,j,c[N][N];for(i=0;iN;i++)//计算矩阵Cfor(j=0;jN;j++)c[i][j]=a[i][j]+b[i][j];for(i=0;iN;i++){//输出矩阵Cfor(j=0;jN;j++)coutsetw(5)c[i][j];coutendl;}}程序运行结果为:101-640-36-6-9Pressanykeytocontinue3.#includeiostream.hvoidf2(int&x,int&y){intz=x;x=y;y=z;}voidf3(int*x,int*y){intz=*x;*x=*y;*y=z;}voidmain(){intx=10,y=26;coutx,y=x,yendl;f2(x,y);coutx,y=x,yendl;f3(&x,&y);coutx,y=x,yendl;x++;y--;f2(y,x);coutx,y=x,yendl;}程序运行结果为:x,y=10,26x,y=26,10x,y=10,26x,y=25,11Pressanykeytocontinue五、指出程序或函数的功能1.#includeiostream.hvoidmain(){inti,p=1,s=0;intN;cout输入一个正整数:;cinN;for(i=1;i=N;i++){p*=i;s+=p;}coutsendl;}功能为:计算并输出Nii1!的值,其中N值由键盘输入。2.voidfun5(char*a,constchar*b){while(*b)*a++=*b++;*a=0;}功能为:实现字符串系统函数strcpy的功能,把b所指的字符串拷贝到a所指的字符数组空间中。六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。1.下面是一个类的定义,存在着3处语法错误,请指出错误行的行号并改正。classCE{//1行private://2行inta,b;//3行intgetmin(){return(ab?a:b);}//4行public//5行intc;//6行voidSetValue(intx1,intx2,intx3){//7行a=x1;b=x2;c=x3;//8行};//9行intGetMin();//10行};//11行intGetMin(){//12行intd=getmin();//13行return(dc?d:c);//14行}//16行错误行的行号为__5___、___9____和___12___。分别改正为___public:________、____}_____和___intCE::GetMin(){_____。七、编程:1.按照下面函数原型语句编写一个递归函数
本文标题:面向对象程序设计形成性考核册作业二
链接地址:https://www.777doc.com/doc-949738 .html