版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MOOCCC++程序设计-同济大学中国大学慕课答案实验1C/C++概述第1讲单元测验1、问题:以下________是C/C++合法的标识符。选项:A、char2B、@xC、intD、7Bw正确答案:【char2】2、问题:下面的程序,对于输入:2915,输出的结果是________。#includeiostreamusingnamespacestd;intmain(){inta;intb;coutinputa,b:endl;cinab;couta+b=a+bendl;system(pause);return0;}选项:A、输入的数据超过要求的数据,程序运行出现错误B、11C、26D、24正确答案:【11】3、问题:在VSC++中,要在原有程序中修改程序代码应打开扩展名为________的文件。选项:A、objB、slnC、exeD、cpp正确答案:【sln】4、问题:有关C语言和C++语言以下正确的说法是________。选项:A、C语言和C++语言都是结构化程序设计语言B、C语言和C++语言都是面向对象的程序设计语言C、C语言是结构化语言,C++语言是面向对象的语言D、C++语言是结构化语言,C语言是面向对象的语言正确答案:【C语言是结构化语言,C++语言是面向对象的语言】5、问题:程序设计语言的发展通常被划分为三个阶段,其中不包括________。选项:A、高级语言B、汇编语言C、机器语言D、数据库语言正确答案:【数据库语言】6、问题:通过cin语句为多个变量输入数据时,不能用______分隔多个数据。选项:A、空格B、回车C、制表符D、逗号正确答案:【逗号】7、问题:C和C++语言中不区分大小写字母。选项:A、正确B、错误正确答案:【错误】8、问题:C语言最初是为开发UNIX系统而编写设计的。选项:A、正确B、错误正确答案:【正确】9、问题:在C和C++语言中,注释语句是可执行语句。选项:A、正确B、错误正确答案:【错误】10、问题:C和C++语言(C++11之前的标准)中,用户自定义的标识符中不能包含汉字。选项:A、正确B、错误正确答案:【正确】11、问题:C和C++语言源程序中如果存在语法错误,程序仍可以运行,但结果不正确。选项:A、正确B、错误正确答案:【错误】12、问题:cin后的提取运算符“”之后只能跟变量。选项:A、正确B、错误正确答案:【正确】13、填空题:C++源程序的扩展名为________。正确答案:【cpp##%_YZPRLFH_%##.cpp】14、填空题:在C语言中,无论一个程序中有多少个函数,总是从_______函数开始执行。正确答案:【main##%_YZPRLFH_%##主##%_YZPRLFH_%##主函数##%_YZPRLFH_%##main函数】15、填空题:C和C++语言中,________是语句结束的标志。正确答案:【分号##%_YZPRLFH_%##;】实验2顺序结构第2讲单元测验1、问题:下列不是C语言基本数据类型的是()。选项:A、字符型B、整型C、浮点型D、结构体正确答案:【结构体】2、问题:若有x=1,y=2,z=3,则表达式(xy?x:y)==z的值是()。选项:A、1B、2C、3D、0正确答案:【0】3、问题:已知x,y为整型,z为实型,ch为字符型,下列表达式合法的是()。选项:A、z=(y+x)++B、x+y=zC、y=ch+xD、y=z%x正确答案:【y=ch+x】4、问题:设整型变量a为5,使b不为2的表达式是()。选项:A、b=a/2B、b=6-(--a)C、b=a%2D、b=a3?2:1正确答案:【b=a%2】5、问题:下列语句不具有赋值功能的是()选项:A、a*=bB、x=1C、a+bD、a++正确答案:【a+b】6、问题:在C语言中,要求参加运算的数必须是整数的运算符是()。选项:A、/B、*C、%D、=正确答案:【%】7、问题:执行x=(6*7%8+9)/5;后,x的值为()选项:A、1B、2C、3D、4正确答案:【2】8、问题:以下能正确定义整型变量a、b、c并为其赋初值5的语句是()选项:A、inta=b=c=5;B、inta,b,c=5;C、inta=5,b=5,c=5;D、a=b=c=5;正确答案:【inta=5,b=5,c=5;】9、问题:在C语言中,所有算术运算符的优先级都相同。选项:A、正确B、错误正确答案:【错误】10、问题:'b'和b是不同的两种常量。选项:A、正确B、错误正确答案:【正确】11、问题:一般情况下,目数越多,优先级越高。选项:A、正确B、错误正确答案:【错误】12、问题:表达式a*b0可以表示“a和b同时为正或同时为负”选项:A、正确B、错误正确答案:【正确】13、填空题:若已定义x和y为double类型,且x=1;则表达式y=x+3/2的值是()。正确答案:【2##%_YZPRLFH_%##2.0##%_YZPRLFH_%##2.00000##%_YZPRLFH_%##2.000000##%_YZPRLFH_%##2.00】14、填空题:表达式10!=9的值是()。正确答案:【1##%_YZPRLFH_%##true】15、填空题:若已定义intx=1,y=1;则表达式x--y--的值是()正确答案:【1##%_YZPRLFH_%##true】16、填空题:字符串常量123在内存中的字节数是()。正确答案:【4】17、填空题:已有定义intx=3;则表达式x=x+1.78的值是()正确答案:【4】18、填空题:当a=3,b=2,c=1时,表达式f=abc的值是()正确答案:【0】实验3选择控制结构第3讲单元测验1、问题:若给定条件表达式(M)?(a++):(a--),则其中表达式M()。选项:A、和(M==0)等价B、和(M==1)等价C、和(M!=0)等价D、和(M!=1)等价正确答案:【和(M!=0)等价】2、问题:C语言中用于结构化程序设计的3种基本结构是()选项:A、顺序结构、选择结构、循环结构B、if,switch,breakC、for,while,do-whileD、if,for,continue正确答案:【顺序结构、选择结构、循环结构】3、问题:假设有定义intx=1,y=0,a=0,b=0;则执行以下程序段后,a、b的值为()。switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}//注意后面没有breakcase2:a++;b++;break;case3:a++;b++;}选项:A、a=l,b=0B、a=2,b=1C、a=1,b=lD、a=2,b=2正确答案:【a=2,b=1】4、问题:假设有定义inti=0,j=0,a=6;则执行以下语句后,各变量的值依次为()if((++i0)||(++j0))a++;选项:A、i=0,j=0,a=6B、i=l;j=1;a=7C、i=1,j=0,a=7D、i=0;j=1,a=7正确答案:【i=1,j=0,a=7】5、问题:关于switch语句描述正确的是()。选项:A、switch语句中default子句可能没有,也可能有一个B、switch语句的每个语句序列中必须有break语句C、switch语句中的case后面可以是一个关系表达式D、switch语句中switch后面的表达式可以是实型正确答案:【switch语句中default子句可能没有,也可能有一个】6、问题:已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()。if(xy)z=x;x=y;y=z;选项:A、x=10,y=20,z=30B、x=20,y=30,z=30C、x=20,y=30,z=10D、x=20,y=30,z=20正确答案:【x=20,y=30,z=30】7、问题:以下if语句语法正确的是()。选项:A、if(x0)coutxelsecout--x;B、if(x0){x=x+y;coutx;}elsecout--x;C、if(x0){x=x+y;coutx;};elsecout--x;D、if(x0){x=x+y;coutx};elsecout--x;正确答案:【if(x0){x=x+y;coutx;}elsecout--x;】8、问题:当a=1,b=2,c=4,d=3时,执行完下面一段程序后x的值是()。if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=4;elsex=5;选项:A、1B、2C、3D、4正确答案:【2】9、问题:执行以下程序段后a的值为()inta=0;if(32)a=1;elsea=2;选项:A、1B、2C、0D、程序有误正确答案:【1】10、问题:一个switch语句必须包含一个default语句。()选项:A、正确B、错误正确答案:【错误】11、问题:在C程序中,if语句中不能嵌套switch语句。()选项:A、正确B、错误正确答案:【错误】12、问题:空语句是合法的C语句。选项:A、正确B、错误正确答案:【正确】13、问题:C语言中规定,if语句的嵌套结构中,else总是无条件地和最近的if配对。选项:A、正确B、错误正确答案:【错误】14、问题:C语言中规定,if表达式后面的语句可以是复合语句。选项:A、正确B、错误正确答案:【正确】15、填空题:假设有定义inta=2,b=-1,c=2;则执行以下程序段后c的值为()。if(ab)if(b0)c=0;elsec++;正确答案:【2】16、填空题:假设有定义intm=5;则执行以下程序段的输出结果是()if(m++5)coutm;elsecoutm--;正确答案:【6】17、填空题:以下程序段的输出结果是()。inta=2,b=3,c=4;if(c=a+b)coutOK!”;elsecoutNO!”;正确答案:【OK!】实验4循环控制结构第4讲单元测验1、问题:若k为整型,以下while循环体中的语句执行()。k=2;while(k=0){coutk;k--;}选项:A、无限次B、0次C、1次D、2次正确答案:【0次】2、问题:假设有定义inti,j,k=0,m=0;则执行以下程序段后k和m的值分别为()for(i=0;i2;i++){for(j=0;j3;j++)k++;k-=j;}m=i+j;选项:A、k=0,m=3B、k=0,m=5C、k=l,m=3D、k=l,m=5正确答案:【k=0,m=5】3、问题:下列关于break语句描述错误的是()。选项:A、break语句可用于循环体内,它将退出该重循环B、break语句可用于switch语句中,它将退出switch语句C、break语句可用于if体内,它将退出if语句D、break语句只能用于循环语句和switch语句中正确答案:【break语句可用于if体内,它将退出if语句】4、问题:若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是for(i=5;i;i--)for(j=0;j4;j++){...}选项:A、20B、25C、24D、30正确答案:【20】5、问题:语句while(!e);中的条件!e等价于()。选项:A、e==0B、e!=1C、e!=0D、~e正确答案:【e==0】6、问题:以下程序段()。intx=-1;do{x=x*x;}while(!x);选项:A、是死循环B、循环执行二次C、循环执行一次D、有语法错误正确答案:【循环执行一次】7、问题:下面有关for循环的正确描述是()。选项:A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判定表达式C、在for循环中,不能用break语句跳出循环体D、for循环体语句中,可以包含多条语句,但要用花括号括起来正确答案:【for循环体语句中,可以包含多条语句,但要用花括号括起来】8、问题:continue语句的作用是结束整个循环的执行选项:A、正确B、错误正确答案:【错误】9、问题:假设有定义inti=100;则以下循环是死循环。while(1){i=i%100+1;if(i100)break;}选项:A、正确B、错误正确答案:【正确】10、问题:do-while的循环体至少无条件执行一次选项:A、正确B、错误正确答案:【正确】11、问题:do-while的循环体不能是复合语句选项:A、正确B、错误正确答案:【错误】12、问题:只能在循环体内和switch语句体内使用break语句选项:A、正确B、错误正确答案:【正确】13、填空题:假设有定义ints=0,i=1;则退出以下循环后i的值为()。while(s=10){s=s+i*i;i++;}正确答案:【4】14、填空题:执行以下程序段后,i的值为()inti=1,s=3;do{s+=i++;if(s%7==0)continue;else++i;}while(s15);正确答案:【8】15、填空题:假设有定义intn=0;则退出以下循环后n的值为()。while(n++3);正确答案:【4】第5讲单元作业第5讲单元测验1、问题:执行下面的程序段后,变量k中的值为()。intk=3,s[2];s[0]=k;k=s[1]*10;选项:A、不定值B、33C、30D、1正确答案:【不定值】2、问题:对以下说明语句的正确理解是()。inta[10]={6,7,8,9,10};选项:A、将5个初值依次赋给a[1]至a[5]B、将5个初值依次赋给a[0]至a[4]C、将5个初值依次赋给a[6]至a[10]D、因为数组长度与初值的个数不相同,所以此语句不正确正确答案:【将5个初值依次赋给a[0]至a[4]】3、问题:假定int类型变量占用4个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是()选项:A、3B、12C、10D、40正确答案:【40】4、问题:以下定义语句中,错误的是()。选项:A、inta[]={1,2};B、inta[5]={1,2};C、intn=2,a[n]={1,2};D、inta[2]={1,2};正确答案:【intn=2,a[n]={1,2};】5、问题:以下对一维数组a进行正确初始化的是()。选项:A、inta[5]=(0,0,0,0,0);B、inta[5]=1,2,3,4,5;C、inta[5]={0};D、inta[5]={1,2,3,4,5,6};正确答案:【inta[5]={0};】6、问题:假设有定义inti,x[9]={9,8,7,6,5,4,3,2,1};则执行以下程序段后输出()。for(i=0;i4;i+=2)coutx[i]'';选项:A、52B、51C、53D、97正确答案:【97】7、问题:如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};,则数组a的大小是()。选项:A、10B、11C、不确定D、有语法错误正确答案:【10】8、问题:有如下说明:inta[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是()。选项:A、a[10-1]B、a[8]C、a[9]D、a[9]-a[0]正确答案:【a[8]】9、问题:使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素。选项:A、正确B、错误正确答案:【正确】10、问题:数组的起始下标是从1开始的。选项:A、正确B、错误正确答案:【错误】11、问题:可以通过赋值运算符“=”给两个数组间整体赋值。选项:A、正确B、错误正确答案:【错误】12、问题:C语言中,数组名是一个常量,是数组首元素的内存地址,可以重新赋值。选项:A、正确B、错误正确答案:【错误】13、问题:C语言中,数组元素在内存中是顺序存放的,它们的地址是连续的。选项:A、正确B、错误正确答案:【正确】14、填空题:在C语言中,引用数组元素时,其数组下标的数据类型是()正确答案:【int##%_YZPRLFH_%##int型##%_YZPRLFH_%##整型##%_YZPRLFH_%##整数类型】15、填空题:假设有定义inta[10]={1,3,5,7};,则7是元素()的值。正确答案:【a[3]】16、填空题:数组名是一个地址(),由系统自动为其分配,不能人为修改,代表了数组在内存中存放的首地址。(提示:填“常量”或“变量”)正确答案:【常量】第6讲单元作业第6讲单元测验1、问题:若有说明inta[3][4];则a数组元素的非法引用是()。选项:A、a[0][2*1]B、a[4-2][0]C、a[4-2][0]D、a[0][4]正确答案:【a[0][4]】2、问题:假设有定义:intk,a[3][3]={9,8,7,6,5,4,3,2,1};则下面语句的输出结果是for(k=0;k3;k++)couta[k][k];选项:A、753B、951C、963D、741正确答案:【951】3、问题:已知:chara[15],b[15]={Ilovechina};则能将字符串Ilovechina赋给数组a的正确语句是()选项:A、a=Ilovechina;B、strcpy(b,a);C、a=b;D、strcpy(a,b);正确答案:【strcpy(a,b);】4、问题:以下不正确的定义语句是()。选项:A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5]={0,1,3,5,7,9};C、charc1[]={′1′,′2′,′3′,′4′,′5′};D、charc2[]={12345};正确答案:【inty[5]={0,1,3,5,7,9};】5、问题:以下能对二维数组c进行正确的初始化的语句是()。选项:A、intc[3][]={{3},{3},{4}};B、intc[][3]={{3},{3},{4}};C、intc[3][2]={{3},{3},{4},{5}};D、intc[][3]={{3},{0,1,1,2},{3}};正确答案:【intc[][3]={{3},{3},{4}};】6、问题:下述对C语言字符数组的描述中错误的是()。选项:A、字符数组的下标从0开始B、字符数组中的字符串可以进行整体输入/输出C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D、字符数组可以存放字符串正确答案:【可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值】7、问题:有如下定义语句:intaa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为()。选项:A、3,2B、3,1C、2,2D、2,1正确答案:【2,2】8、问题:若有定义chara[]=toyou,b[]={′t′,′o′,′y′,′o′,′u′};则正确的描述是()。选项:A、a数组和b数组的长度相同B、a数组长度小于b数组长度C、a数组长度大于b数组长度D、a数组等价于b数组正确答案:【a数组长度大于b数组长度】9、问题:如对数组的初始化为:ints[2][2]={1};,则数组s每个元素的值均为1选项:A、正确B、错误正确答案:【错误】10、问题:二维数组中元素存放顺序是:先存放第一行的元素,再存放第二行的元素,依次类推。选项:A、正确B、错误正确答案:【正确】11、问题:若有定义charstr[20]=\tGood\t,则strlen(str)的值为7。选项:A、正确B、错误正确答案:【错误】12、问题:假设有定义charstr1[20]=abcde,t[20];,则可以通过语句t=s;将字符串s的内容复制到字符串t。选项:A、正确B、错误正确答案:【错误】13、填空题:若二维数组a有m列,则计算任一元素a[i][j]在数组中的序号为()。(假设a[0][0]的序号为0)正确答案:【m*i+j##%_YZPRLFH_%##j+m*i##%_YZPRLFH_%##i*m+j##%_YZPRLFH_%##j+i*m】14、填空题:已知ꢀchara[20]=abc,b[20]=defghi;则执行coutstrlen(strcpy(a,b));语句后的输出结果为()。正确答案:【6】15、填空题:设有数组定义chararray[]=China;则数组array所占的空间为()个字节。正确答案:【6】第7讲单元作业第7讲单元测验1、问题:若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;假设0≤i≤9,则对a数组元素不正确的引用是()选项:A、a[p-a]B、*(a[i])C、p[i]D、a[10]正确答案:【a[10]】2、问题:假设有定义inta=3,b=5,*pa=a,*pb=b;则执行如下语句后,a,b的值分别为()*pa=a+b;*pb=a+b;选项:A、a=13,b=13B、a=8,b=8C、a=8,b=13D、出错正确答案:【a=8,b=13】3、问题:有说明inta[10]=[1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为9的表达式是()。选项:A、*(p+9)B、*(p+8)C、*p+=9D、*p+=9正确答案:【*(p+8)】4、问题:若有说明语句inta[10],*p=a;,对数组元素的正确引用是()选项:A、a[p]B、p[a]C、*(p+2)D、p+2正确答案:【*(p+2)】5、问题:下列各语句行中,能正确进行赋字符串操作的语句是()选项:A、chars[5]={ABCDE};B、chars[5]={'A','B','C','D','E'};C、char*s;s=ABCDE;D、char*s;*s=ABCDE;正确答案:【char*s;s=ABCDE;】6、问题:执行chara[10]={abcd},*p=a;后,*(p+4)的值是()选项:A、abcdB、'd'C、'\0'D、不能确定正确答案:【'\0'】7、问题:若有char*a=ABCD;,则执行couta的结果是()选项:A、AB、ABC、ABCD、ABCD正确答案:【ABCD】8、问题:假设有定义inta[10]={1,3,5,7,9},*p=a+1;则*(p+2)的值为5。选项:A、正确B、错误正确答案:【错误】9、问题:假设有定义chars[100],*p=s;,则可以用deletep;来释放p占用的内存空间。选项:A、正确B、错误正确答案:【错误】10、问题:char*a=china;等价于char*a;*a=china;选项:A、正确B、错误正确答案:【错误】11、问题:假设有定义inta[]={10,20,30,40,50,60,70,80,90,100},*p=a;,则表达式*p+9的值为100。选项:A、正确B、错误正确答案:【错误】12、问题:假设有定义chars1[20]=1234567,s2[20]={ABCD};,则执行strcpy(s1,s2)后,s1的内容为“ABCD”选项:A、正确B、错误正确答案:【正确】13、填空题:假设有定义floatd[10]={1.5,2.0,2.5,3.0},*p=d;则表达式*++p的值为()正确答案:【2.0】14、填空题:执行该程序段后,a的值为()int*p,a=10,b=1;p=a;a=*p+b;正确答案:【11】15、填空题:假设有定义chars[]=ABCD,*p=s;则执行coutp+2的结果为()正确答案:【CD】单元作业8第8讲单元测验1、问题:以下说法中正确的是________。选项:A、C/C++程序总是从源文件中第一个定义的函数开始执行B、在C/C++程序中,函数的定义必须写在调用该函数的语句之前C、C/C++程序总是从main()函数开始执行D、C/C++程序中的main()函数必须放在程序的开始部分正确答案:【C/C++程序总是从main()函数开始执行】2、问题:在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________。选项:A、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、传递方式由用户指定正确答案:【单向值传递】3、问题:若有以下调用语句,则正确的fun函数首部是_______________。main(){∶∶inta;floatx;∶∶fun(x,a);∶∶}选项:A、intfun(intm,floatx)B、voidfun(floata,intx)C、voidfun(intm,floatx[])D、intfun(intx,floata)正确答案:【voidfun(floata,intx)】4、问题:若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是__________。选项:A、3B、4C、5D、6正确答案:【3】5、问题:若程序中定义函数floatmyadd(floata,floatb){returna+b;}ꢀꢀ并将其放在调用语句之后,则在调用之前应对该函数进行说明。以下说明中错误的是____________。选项:A、floatmyadd(floata,b);B、floatmyadd(floatb,floata);C、floatmyadd(float,float);D、floatmyadd(floata,floatb);正确答案:【floatmyadd(floata,b);】6、问题:下面函数的功能是______________________。sss(s,t)chars[],t[];{inti=0;while(t[i]){s[i]=t[i];i++;}s[i]='\0';}选项:A、求字符串的长度B、比较两个字符串的大小C、将字符串s复制到字符串t中D、将字符串t复制到字符串s中正确答案:【将字符串t复制到字符串s中】7、问题:下面程序的输出结果是________________。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=9,r;r=func((x-y),z);coutrendl;}选项:A、10B、12C、6D、16正确答案:【6】8、问题:对以下程序,正确的说法是________。#includeiostreamusingnamespacestd;intsub(charx,chary){intz;z=x%y;returnz;}intmain(){intg=5,h=3,k;k=sub(g,h);coutkendl;system(pause);return0;}选项:A、实参与其对应的形参类型不一致,程序不能运行B、被调函数缺少数据类型说明,程序不能运行C、主函数中缺少对被调函数的说明语句,程序不能运行D、程序中没有错误,可以正常运行正确答案:【程序中没有错误,可以正常运行】9、问题:C/C++程序中的函数,既可以嵌套定义,也可以嵌套调用。选项:A、正确B、错误正确答案:【错误】10、问题:函数调用时,实参将数据传递给形参后,立即释放原先占用的存储单元选项:A、正确B、错误正确答案:【错误】11、问题:定义一个void型函数意味着调用该函数时,函数没有返回值选项:A、正确B、错误正确答案:【正确】12、问题:数组作为函数的参数时,系统为形参数组和实参数组分配不同的存储单元。选项:A、正确B、错误正确答案:【错误】13、问题:C/C++程序中,若函数的定义写在调用函数的语句之后,需要在调用前对函数进行说明。选项:A、正确B、错误正确答案:【正确】14、填空题:以下函数的功能是:求x的y次方,程序中划线处应填入________#includeiostreamusingnamespacestd;voidfun(doublex,inty,double*z){inti;for(i=1,*z=x;iy;i++)*z=*z*x;}intmain(){doublex=2,z;inty=3;________;coutzendl;system(pause);return0;}正确答案:【fun(x,y,&z)】15、填空题:以下函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即st时返回正值,st时返回负值。划线处应填入______。#includeiostreamusingnamespacestd;intmy_cmp(char*s,char*t){while(*s==*t){if(*s=='\0')return0;++s;++t;}return______;}intmain(){coutmy_cmp(abc,abcd)endl;system(pause);return0;}正确答案:【*s-*t】第9讲单元作业第9讲单元测验1、问题:C语言中,凡未指定存储类别的局部变量的隐含存储类别是____________。选项:A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)正确答案:【自动(auto)】2、问题:若定义函数float*fun(),则函数fun的返回值为___________。选项:A、一个实数B、一个指向实型变量的指针C、一个指向实型函数的指针D、一个实型函数的入口地址正确答案:【一个指向实型变量的指针】3、问题:在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则______。选项:A、称为函数的直接递归调用B、称为函数的间接递归调用C、称为函数的循环调用D、不允许这样的递归调用正确答案:【称为函数的间接递归调用】4、问题:以下程序的输出结果是________。inta,b;voidfun(){a=100;b=200;}intmain(){inta=5,b=7;fun();couta”“bendl;return0;}选项:A、100200B、57C、200100D、75正确答案:【57】5、问题:以下叙述中正确的是。选项:A、每次调用函数时,都为函数中的所有局部变量重新分配内存空间。B、静态(static)局部变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值正确答案:【静态(static)局部变量的生存期贯穿于整个程序的运行期间】6、问题:有以下函数char*fun(char*p){returnp;}该函数的返回值是______________。选项:A、无确切的值B、形参p中存放的地址值C、形参p指向的内存单元的内容D、形参p自身的地址值正确答案:【形参p中存放的地址值】7、问题:以下程序的正确运行结果是_______________。#includeiostreamusingnamespacestd;intmain(){intk=4,m=1,p;p=func(k,m);coutpendl;p=func(k,m);coutpendl;system(pause);return0;}intfunc(inta,intb){staticintm=0,i=2;i=m+1;m=i+a+b;return(m);}选项:A、66B、612C、68D、88正确答案:【612】8、问题:下面程序的运行结果是___________________。#includeiostreamusingnamespacestd;voidfun(intk){if(k0)fun(k-1);coutk;}intmain(){intw=5;fun(w);system(pause);return0;}选项:A、5432lB、012345C、12345D、543210正确答案:【012345】9、问题:C/C++程序中,形参是局部变量,函数调用完成即失去意义。选项:A、正确B、错误正确答案:【正确】10、问题:若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用域内不起作用。选项:A、正确B、错误正确答案:【正确】11、问题:在一个函数中定义的自动局部变量,在其它函数中不可以访问,在一个函数中定义的静态局部变量,在其它函数中可以访问。选项:A、正确B、错误正确答案:【错误】12、问题:在一个C/C++源程序文件中所定义的全局变量,其作用域为所在文件的全部范围。选项:A、正确B、错误正确答案:【错误】13、填空题:下面的程序用递归方法将一个十进制正整数转化成八进制数,例如输入一个正整数25,则输出31,划线处应填入________。#includeiostreamusingnamespacestd;voidconvert(intn){if(n0){_______;coutn%8;}}intmain(){convert(25);system(pause);return0;}正确答案:【convert(n/8)】14、填空题:下面程序求1!+2!+3!+4!+5!,划线处应填入________。#includeiostreamusingnamespacestd;intf(intn){_______________;k=k*n;returnk;}intmain(){longk=0;for(inti=1;i=5;i++)k=k+f(i);coutk;system(pause);return0;}正确答案:【staticintk=1##%_YZPRLFH_%##staticlongk=1##%_YZPRLFH_%##intk=n==1?1:f(n-1)##%_YZPRLFH_%##intk=(n==1)?1:f(n-1)】15、填空题:下面程序删除一维数组中的最大元素,划线处应填入________#includeiostreamusingnamespacestd;int*maxaddr(inta[],intn){int*p=a,*max=a;for(int*p=a;pa+n;p++)if(*p*max)________;returnmax;}intmain(){inta[]={1,4,9,100,3,2};int*p=maxaddr(a,6);for(;pa+6;p++)*p=*(p+1);for(inti=0;i5;i++)couta[i]'';system(pause);return0;}正确答案:【max=p】第10讲单元作业第11讲链表单元作业第11讲单元测验1、问题:在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入结点s,则执行()。选项:A、s-next=p-next;p-next=s;B、p-next=s-next;s-next=p;C、q-next=s;s-next=p;D、p-next=s;s-next=q;正确答案:【q-next=s;s-next=p;】2、问题:单链表中,增加一个头结点的目的是为了()。选项:A、标识表结点中首结点的位置B、使单链表至少有一个结点C、说明单链表是线性表的链式存储D、方便运算的实现,简化程序正确答案:【方便运算的实现,简化程序】3、问题:对于一个头指针为head的不带头结点的单链表,判定该表为空表的条件是()。选项:A、head==NULLB、head-next=NULLC、head-next==headD、head!=NULL正确答案:【head==NULL】4、问题:在一个表头指针为HL单链表中,若要向表头插入一个由指针p指向的结点,则执行()。选项:A、HL=p;p一next=HL;B、p一next=HL;HL=p;C、p一next=Hl;p=HL;D、p一next=HL一next;HL=p;正确答案:【p一next=HL;HL=p;】5、问题:在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:()。选项:A、p-next=s;s-next=p-next;B、s-next=p-next;p-next=s;C、p-next=s;p-next=s-next;D、p-next=s-next;p-next=s;正确答案:【s-next=p-next;p-next=s;】6、问题:在表尾指针为rs的链表的后面插入指针为p的结点的正确语句为()。选项:A、rs-next=p;p-next=NULL;B、rs-next=p;rs-next=NULL;C、p-next=rs;rs-next=NULL;D、p-next=NULL;rs=p;正确答案:【rs-next=p;p-next=NULL;】7、问题:假设p指向表头指针为h的不带表头结点的单链表中的第一个结点,则删除第一个结点应执行()。选项:A、h=p-next;deletep;B、h=h-next;deleteh;C、h=p-next;deleteh;D、h-next=p-next;deletep;正确答案:【h=p-next;deletep;】8、问题:假设p为表尾指针rs的前驱指针,则删除表尾结点的正确语句为()。选项:A、p=NULL;deleters;B、p-next=NULL;deleters;C、rs=NULL;deleters;D、p-next=NULL;deletep;正确答案:【p-next=NULL;deleters;】9、问题:顺序存储结构的主要缺点是不利于插入或删除操作。()选项:A、正确B、错误正确答案:【正确】10、问题:链表存储时,各结点的存储空间可以是不连续的。()选项:A、正确B、错误正确答案:【正确】11、问题:在链表中各结点的逻辑顺序和物理存储顺序必须一致。()选项:A、正确B、错误正确答案:【错误】12、问题:链表是一种动态存储结构,表的长度可根据需要动态扩充。选项:A、正确B、错误正确答案:【正确】13、问题:带表头结点的单链表比不带表头结点的单链表操作起来更复杂。选项:A、正确B、错误正确答案:【错误】14、填空题:以下函数为计算链表的长度,________处应为()intlist_len(node_t*head){inti;for(i=0;head!=NULL;______________)i++;returni;}正确答案:【head=head->next】15、填空题:在单链表L中,指针p所指结点有后继结点的条件是()。正确答案:【p->next!=NULL】16、填空题:链接存储的特点是利用()来表示数据元素之间的逻辑关系。正确答案:【指针】第12讲单元作业第12讲单元测验1、问题:假设有定义FILE*fp1;若文本文件f1.txt中原有内容为:good,则运行以下程序段后f1.txt中的内容为()ꢀꢀfp1=fopen(f1.txt,w);ꢀꢀfputs(abc,fp1);选项:A、goodabcB、abcdC、abcD、abcgood正确答案:【abc】2、问题:若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()选项:A、fopen(A:\user\abc.txt,r)B、fopen(A:\\user\\abc.txt,r+)C、fopen(A:\user\abc.txt,rb)D、fopen(A:\\user\\abc.txt,w)正确答案:【fopen(A:\\user\\abc.txt,r+)】3、问题:在C程序中,可把整型数以二进制形式存放到文件中的函数是()选项:A、fprintf函数B、fread函数C、fwrite函数D、fputc函数正确答案:【fwrite函数】4、问题:标准函数fgets(s,n,f)的功能是()选项:A、从文件f中读取长度为n的字符串存入指针s所指的内存B、从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C、从文件f中读取n个字符串存入指针s所指的内存D、从文件f中读取长度为n-1的字符串存入指针s所指的内存正确答案:【从文件f中读取长度不超过n-1的字符串存入指针s所指的内存】5、问题:设fp已定义,执行语句fp=fopen(file,w);后,以下针对文本文件file操作叙述的选项中正确的是()选项:A、写操作结束后可以从头开始读B、只能写不能读C、可以在原有内容后追加D、可以随意读和写正确答案:【只能写不能读】6、问题:读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是()选项:A、一个文件指针,指向待读取的文件B、一个整型变量,代表待读取的数据的字节数C、一个内存块的首地址,代表读入数据存放的地址D、一个内存块的字节数正确答案:【一个内存块的首地址,代表读入数据存放的地址】7、问题:函数fseek(pf,0L,SEEK_SET)中的SEEK_SET代表的是()选项:A、文件开始B、文件末尾C、文件当前位置D、以上都不对正确答案:【文件开始】8、问题:若定义:inta[5];,fp是指向某一已经正确打开了的文件的指针,下面的函数调用形式中不正确的是()选项:A、fread(a[0],sizeof(int),5,fp);B、fread(a[0],5*sizeof(int),1,fp);C、fread(a,sizeof(int),5,fp);D、fread(a,5*sizeof(int),1,fp);正确答案:【fread(a[0],sizeof(int),5,fp);】9、问题:C语言通过文件指针对它所指向的文件进行操作。选项:A、正确B、错误正确答案:【正确】10、问题:函数fseek(fp,n,k)中的第二个参数代表的位移量是相对于文件的开始来说的。选项:A、正确B、错误正确答案:【错误】11、问题:函数rewind()的作用是位置指针返回移动前的位置。选项:A、正确B、错误正确答案:【错误】12、问题:函数fopen()不可以打开二进制文件。选项:A、正确B、错误正确答案:【错误】13、填空题:若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为()正确答案:【0】14、填空题:若使文件的读写指针fp指向文件首,正确的函数调用形式为()正确答案:【rewind(fp)##%_YZPRLFH_%##fseek(fp,0L,0)##%_YZPRLFH_%##fseek(fp,0L,SEEK_SET)##%_YZPRLFH_%##fseek(fp,0,0)##%_YZPRLFH_%##fseek(fp,0,SEEK_SET)】15、填空题:利用fseek函数可实现文件的()读写。正确答案:【随机】第13讲单元作业第13讲单元测验1、问题:假设定义了一个类AA,则对其构造函数和析构函数形式描述正确的是()。选项:A、voidAA(),void~AA()B、AA(参数),~AA()C、AA(参数),~AA(参数)D、AA(),~AA(参数)正确答案:【AA(参数),~AA()】2、问题:以下函数中不属于类的成员函数的是()。选项:A、构造函数B、析构函数C、友元函数D、拷贝初始化构造函数正确答案:【友元函数】3、问题:关于静态数据成员的描述不正确的是()。选项:A、静态数据成员在类体外初始化。B、静态数据成员是所有对象共有的成员。C、静态数据成员初始化时一定要在前面加修饰符static。D、静态数据成员在内存中占有固定内存。正确答案:【静态数据成员初始化时一定要在前面加修饰符static。】4、问题:假设person是一个类,p1是该类的一个对象,p2是指向p1的指针,getname是该类的一个成员函数,则以下不正确的表达是()。选项:A、person.getname();B、p1.getname()C、p1.person::getname();D、p2-getname()正确答案:【person.getname();】5、问题:下列静态数据成员的特性中,()是错误的。选项:A、说明静态数据成员时前边要加关键字static来修饰B、静态数据成员在类体外进行初始化C、静态数据成员不是所有对象所共有的成员D、静态数据成员初始化时,要在静态数据成员名前加类名和作用域运算符正确答案:【静态数据成员不是所有对象所共有的成员】6、问题:下面说法中正确的是()。选项:A、一个类只能定义一个构造函数,但可以定义多个析构函数B、一个类只能定义一个析构函数,但可以定义多个构造函数C、构造函数与析构函数同名,只是名字前加了符号~D、构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以正确答案:【一个类只能定义一个析构函数,但可以定义多个构造函数】7、问题:关于常数据成员的说法不正确的是()。选项:A、常数据成员的定义与一般常量的定义形式相同,但需定义在类体中B、常数据成员必须进行初始化,并且不能被更新C、常数据成员可以在定义时直接初始化D、常数据成员通过构造函数的成员初始化列表进行初始化正确答案:【常数据成员可以在定义时直接初始化】8、问题:对于类中定义的成员,其隐含访问权限为()。选项:A、publicB、protectedC、privateD、static正确答案:【private】9、问题:下列特性中不是面向对象程序设计语言所特有的是()。选项:A、数据封装B、继承C、多态性D、模板正确答案:【模板】10、问题:析构函数可以重载选项:A、正确B、错误正确答案:【错误】11、问题:对象是类的一个实例。选项:A、正确B、错误正确答案:【正确】12、问题:构造函数的功能是用于初始化对象的。选项:A、正确B、错误正确答案:【正确】13、填空题:只有类的()和友元函数才可以访问该类的私有成员。正确答案:【成员函数】14、填空题:当含有类对象的函数结束时,系统会自动调用()函数来删除对象,以释放其所占用的内存。正确答案:【析构##%_YZPRLFH_%##析构函数】15、填空题:为该类的所有对象共享的数据被称为是该类的()数据成员正确答案:【静态##%_YZPRLFH_%##static】第14讲单元测验1、问题:下列对派生类的描述中,错误的是()。选项:A、一个派生类可以作为另一个派生类的基类。B、派生类至少有一个基类。C、派生类的成员除了其自身的成员外,还包含了其基类的成员。D、派生类中继承的基类成员的访问权限到派生类保持不变。正确答案:【派生类中继承的基类成员的访问权限到派生类保持不变。】2、问题:在公有继承中,派生类成员函数不可以访问()。选项:A、基类中的私有成员B、派生类中的私有成员C、基类中的保护成员D、基类中的公有成员正确答案:【基类中的私有成员】3、问题:派生类可以访问其基类的()。选项:A、公有成员B、保护成员C、私有派生D、公有和保护成员正确答案:【公有和保护成员】4、问题:#includeiostreamusingnamespacestd;classA{charc;public:A(charn){c=n;}~A(){coutc;};};classB:publicA{charc;public:B(charn):A(n+1){c=n;}~B(){coutc;};};intmain(){Bb('X');b.~B();system(pause);return0;}选项:A、XYB、YXC、XD、Y正确答案:【XY】5、问题:假设在以下派生类的fun函数中调用了基类的fun函数,则空白处应填写()classAA{public:voidfun(){coutaafuncalledendl;}};classBB:publicAA{public:voidfun(){_________________;coutbbfuncalledendl;}};选项:A、fun();B、AA::fun();C、AA.fun();D、AA-fun();正确答案:【AA::fun();】6、问题:关于虚函数的描述中,()是正确的。选项:A、派生类的虚函数与基类的虚函数可以具有不同的参数个数和类型B、基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数C、虚函数是一个成员函数D、虚函数是一个static类型的成员函数正确答案:【虚函数是一个成员函数】7、问题:关于纯虚函数,下列表述不正确的是()。选项:A、纯虚函数是无函数体的虚函数B、纯虚函数的声明总是以“=0”结束C、含有纯虚函数的类一定是基类D、含有纯虚函数的类一定是派生类正确答案:【含有纯虚函数的类一定是派生类】8、问题:以下不是实现动态联编的必要条件的是()。选项:A、要有虚函数的支持B、虚函数操作的是基类指针C、虚函数操作的是基类引用D、虚函数操作的是基类对象正确答案:【虚函数操作的是基类对象】9、问题:在程序中不能声明抽象类对象。选项:A、正确B、错误正确答案:【正确】10、问题:程序中指向抽象类的指针不能指向其派生类对象选项:A、正确B、错误正确答案:【错误】11、问题:派生类继承基类中除构造函数和析构函数以外的所有成员选项:A、正确B、错误正确答案:【正确】12、填空题:含有纯虚函数的类被称为()。正确答案:【抽象类】13、填空题:一个派生类只有一个直接基类的情况称为()继承正确答案:【单】14、填空题:面向对象程序设计的()机制提供了重复利用程序资源的一种途径。正确答案:【继承】C/C++程序设计期末考试单选题1、问题:假设m是一个三位数,则其十位数可表达为()。选项:A、m%100%10B、m%10/10C、m/10%10D、m/10/10正确答案:【m/10%10】2、问题:char型变量c1是为数字字符的正确表达为()选项:A、'0'=c1='9'B、(c1='0')(c1='9')C、(c1='0')||(c1='9')D、(c1=0)(c1=9)正确答案:【(c1='0')(c1='9')】3、问题:设a=4,b=3,d=2,则表达式:ab?b--:d--的结果为()选项:A、3B、0C、1D、2正确答案:【2】4、问题:假设有定义intx=5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理做好带教老师汇报
- 2026-2030中国次氧化锌市场供需形势及前景战略研究研究报告
- 2026-2030汽车贷款行业市场深度分析及发展策略研究报告
- 2024年住院医师规范化培训《医学检验科》题库+参考答案解析
- 2025年10月住院医师规范化培训《康复医学》模拟试题(含答案解析)
- 房屋修缮工程外墙维修施工方案
- 医疗器械文件版本控制制度
- 建筑楼宇智能化系统设计报告
- 重庆某高性能泵类产品项目可行性研究报告
- 中小学教师项目式学习(PBL)设计与实施能力提升工作坊教案
- JB T 6086-2013数控龙门镗铣床精度检验
- 胜利油田采油工程信息化建设及应用工作交流
- 慢性肾脏病5期查房
- SMT品质培训课件
- 运行病历质量检查表(使用版)
- 高级经济师《知识产权事务》综合练习4
- GB/T 5750.2-2006生活饮用水标准检验方法水样的采集与保存
- GB/T 38634.4-2020系统与软件工程软件测试第4部分:测试技术
- GA/T 718-2007枪支致伤力的法庭科学鉴定判据
- 千年菩提路解说词
- 初一语文(统编版)《西游记》2 精读:从“三打白骨精”看《西游记》中的“三”课件
评论
0/150
提交评论