您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 面向对象程序设计形成性考核册作业一
面向对象程序设计形成性考核册作业一一、单选题1.C++源程序文件的缺省扩展名为(A)。A.cppB.exeC.objD.lik2.编写C++程序一般需经过的几个步骤依次是(B)。A.编译、编辑、连接、调试B.编辑、编译、连接、调试C.编译、调试、编辑、连接D.编辑、调试、编辑、连接3.程序中主函数的名字为(A)。A.mainB.MAINC.MainD.任意标识符4.存储以下数据,占用存储字节最多的是(D)。A.0B.‘0’C.“0”D.0.05.假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是(D)。A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c6.x0||y==5的相反表达式为(B)。A.x=0||y!=5B.x=0&&y!=5C.x0||y!=5D.x0&&y==57.字符串”a+b=12\n”的长度为(B)。A.6B.7C.8D.98.循环语句“for(inti=0;in;i++)couti*i’’;”中循环体执行的次数为(C)。A.1B.n-1C.nD.n+19.在下面循环语句中循环体执行的次数为(C)。inti=0,s=0;while(s20){i++;s+=i;}A.4B.5C.6D.710.在下面循环语句中循环体执行的次数为(C)。inti=0,s=0;while(s20){i++;s+=i;}A.4B.5C.6D.711.循环体至少被执行一次的语句为(C)。A.for循环B.while循环C.do循环D.任一种循环12.在下面的一维数组定义中,哪一个有语法错误。(C)A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];13.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(C)。A.2B.4C.6D.814.以下说法中正确的是(B)。A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中15.以下关于函数模板叙述正确的是(C)。A.函数模板也是一个具体类型的函数B.函数模板的类型参数与函数的参数是同一个概念C.通过使用不同的类型参数,函数模板可以生成不同类型的函数D.用函数模板定义的函数没有类型16.函数原型语句正确的是(B)。A.intFunction(voida);B.voidFunction(int);C.intFunction(a);D.voidint(doublea);17.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为(B)个。A.1B.2C.4D.518.以下正确的说法是(B)。A.用户调用标准库函数前,必须重新定义B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义C.系统不允许用户重新定义标准库函数D.用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中二、填空题1.C++语言的编译单位是扩展名为___.cpp_______的__程序________文件。2.用于输出表达式值的标准输出流对象是__cout_______。3.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个__空白______符,然后才能继续输入下一个数据。4.一条表达式语句必须以__分号____作为结束符。5.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型(或声明)_____语句。6.当使用__void_____保留字作为函数类型时,该函数不返回任何值。7.假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为____4______和_____11_____。8.十进制常数245对应的十六进制的C++表示为___0Xf5_______。9.float和double类型的数据分别占用_____4____和___8_____个字节。10.字符串”This\’sabook.\n”的长度为___15_______。11.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为____1______和______3____。12.假定x是一个逻辑量,则x||true的值为___true_______。13.假定x是一个逻辑量,则x&&!x的值为____false______。14.数学算式yxxy3的C++表达式为__3*x*y/(x+y)______________。15.常数-4.205和6.7E-9分别具有____4______和_____2_____位有效数字。16.若x=5,y=10,则计算y*=++x表达式后,x和y的值分别为__6____和__60____。17.含随机函数的表达式rand()%20的值在___0__至___19___区间内。18.假定x=5,y=6,则表达式x++*++y的值为____35______。三、程序填空:1.打印出2至99之间的所有素数(即不能被任何数整除的数)。#includeiostream.h#includemath.hvoidmain(){inti,n;for(n=2;___(1)___;n++){inttemp=int(sqrt(n));//求出n的平方根并取整for(i=2;___(2)___;i++)if(n%i==0)___(3)___;if(itemp)coutn'';}cout'\n';}(1)n100或n=99(2)i=temp或itemp+1(3)break2.下面函数是求两个整型参数a和b的最小公倍数。intf2(inta,intb){inti=2,p=1;do{while(a%i==0&&___(1)___){p*=i;a/=i;b/=i;}___(2)___;}while(a=i&&___(3)___);returnp*a*b;}(1)b%i==0或!(b%i)(2)i++(3)b=i3.主函数调用一个fun函数将字符串逆序。#includeiostream.h#includestring.h___(1)___;voidmain(){chars[80];cins;___(2)___;cout”逆序后的字符串:”sendl;}voidfun(charss[]){intn=strlen(ss);for(inti=0;___(3)____;i++){charc=ss[i];ss[i]=ss[n–1–i];ss[n–1–i]=c;}}(1)voidfun(charss[])(2)fun(s)(3)in/2四、写出程序运行结果1.#includeiostream.hvoidmain(){inta,b;for(a=1,b=2;b50;){couta''b'';a=a+b;b=a+b;}coutendl;couta''b''endl;}程序运行结果为:123581321345589Pressanykeytocontinue2.#includeiostream.hvoidmain(){intx=5;switch(2*x-3){case4:coutx’’;case7:cout2*x+1’’;case10:cout3*x-1’’;break;default:coutdefaultendl;}coutswitchend.endl;}程序运行结果为:1114switchend.Pressanykeytocontinue3.#includeiomanip.hconstintM=20;voidmain(){intc2,c3,c5;c2=c3=c5=0;for(inti=1;i=M;i++){if(i%2==0)c2++;if(i%3==0)c3++;if(i%5==0)c5++;}coutc2''c3''c5endl;}程序运行结果为:1064Pressanykeytocontinue五、指出程序或函数的功能1.#includeiostream.hvoidmain(){inti,s=0;for(i=2;i=30;i+=2)s+=i*i;couts=sendl;}功能是:计算并输出22+42+62+……+302的值。2.#includeiostream.hdoublef1(intn){doublesign=1,s=1;for(inti=2;i=n;i++){s+=sign/(i*i);sign*=-1;}returns;}voidmain(){inta;cina;coutf1(a)endl;}功能是:计算并输出1+aiii22)1(的值,其中a的值由键盘输入。六、程序改错,请根据程序段或函数模块的功能改写个别地方的错误。1.假定要求下面程序的输出结果为“11/15”,其主函数中存在着三行语句错误,请指出错误语句行的行号并改正错误行。#includeiostream.hclassFranction{//定义分数类intnume;//定义分子intdeno;//定义分母public://把*this化简为最简分数,补出函数定义如下:voidFranSimp(){intm,n,r;m=nume;n=deno;r=m%n;while(r!=0){m=n;n=r;r=m%n;}if(n!=1){nume/=n,deno/=n;}if(deno0){nume=-nume;deno=-deno;}}//返回两个分数*this和x之和,补出函数定义如下:FranctionFranAdd(constFranction&x){Franctionc;c.deno=deno*x.deno;c.nume=nume*x.deno+x.nume*deno;c.FranSimp();returnc;}//置分数的分子和分母分别0和1voidInitFranction(){nume=0;deno=1;}//置分数的分子和分母分别n和dvoidInitFranction(intn,intd){nume=n;deno=d;}//输出一个分数voidFranOutput(){coutnume'/'denoendl;}};voidmain()//1行{//2行Franctiona,b,c;//3行a.InitFranction(6,15);//4行b.InitFranction(1);//5行c.InitFranction();//6行c=FranAdd(a,b);//7行coutnume'/'denoendl;//8行}//9行//作业本原来未给出定义而只是用函数原型对FranAdd()作了声明,//现在下面补出定义,否则整个程序虽能通过编译但无法运行错误行的行号为___5___、__7_____和__8_____。分别改正为__InitFranction(1,3);_、_c=a.FranAdd(b);__和__c.FranOutput();_。∵11/15-6/15=5/15=1/3∴b的分母是3七、编程:1.计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。#includeiostream.hvoidmain(){inti;//用i作为循环变量intp=1;//用p作为累乘变量ints=1;//用s作为累加循环变量for(i=1;i=10;i++){p*=3;s+=p;}coutsendl;}2.求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用max表示
本文标题:面向对象程序设计形成性考核册作业一
链接地址:https://www.777doc.com/doc-949851 .html