2023年C++语言程序设计电大考试必备_第1页
2023年C++语言程序设计电大考试必备_第2页
2023年C++语言程序设计电大考试必备_第3页
2023年C++语言程序设计电大考试必备_第4页
2023年C++语言程序设计电大考试必备_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

C++语言程序设计课程期末针对性训练一、单选题(每小题2分,共20分)1.在每个C++程序中都必须包具有这样一个函数,该函数的函数名为(A)。A.mainB.MAINC.nameD.function2.设x和y均为bool量,则x&&y为真的条件是(D)。A.其中一个为假B.其中一个为真C.它们均为假D.它们均为真3.逻辑表达式x>0||y==5的相反表达式为(B)。A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==54.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(C)个字节。A.1B.2C.4D.85.枚举类型中的每个枚举常量的值都是一个(A)。A.整数B.浮点数C.字符D.逻辑值6.循环体至少被执行一次的语句为(C)语句。A.for循环B.while循环C.do循环D.任一种循环7.在下面的字符数组定义中,(D)语句有语法错误。A.chara[20]=”abcdefg”;B.chara[]=”x+y=55.”;C.chara[15]={’1’,’2’};D.chara[10]=’5’;8.若用数组名作为函数调用的实参,传递给形参的是(A)。A.数组的首地址B.数组中第一个元素的值C.数组所有元素的值D.数组元素的个数9.假定AB为一个类,则执行“ABa(4),b[5],*p[2];”语句时,自动调用该类构造函数的次数为(A)。A.6B.7C.9D.1110.当使用fstream流类定义一个流对象并打开一个磁盘文献时,文献的隐含打开方式为(D)。A.ios::inB.ios::outC.ios::in|ios::outD.没有二、填空题(每小题2分,共20分)1.若需要定义一个标记符常量,并且使C++可以进行类型检查,则应在定义语句的开始使用保存字__const__。2.算术表达式相应的C++表达式为_(x*y*y)/(3*a)+4*b-1_。3.逻辑表达式x>y&&x!=10的相反表达式为__x<=y||x==10__。4.每个字符指针变量占用内存__4____个字节。5.执行“typedefintDataType;”语句后,在使用int定义整型变量的地方都可以使用标记符___DataType_______来定义整型变量。6.对于在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它赋予的初值为___0_____。7.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);”语句后,p所指对象的值为___46_____。8.假定一个结构类型的定义为“structA{inta;double*b;A*c;};”,则该类型的大小为____12___字节。9.假定一维数组的定义为“inta[8];”,则该数组所含元素的个数为_____8___。10.若while循环语句的开始为”while(i++<=10)”,若i的初值为0,同时在循环体中不会修改i的值,则其循环体将被反复执行____11______次后正常结束。三、写出下列每个程序运营后的输出结果(每小题6分,共30分)1.#include<iostream.h>voidmain(){ints1=0,s2=1;for(inti=1;i<=6;i++){s1+=i;s2*=i;}cout<<s1<<','<<s2<<endl;}输出结果:21,7202.#include<iostream.h>voidmain(){inta[10]={68,79,86,65,46,94,37,78,60,53};intc=0;for(inti=0;i<10;i++)if(a[i]>=60)c++;cout<<”c=”<<c<<endl;}输出结果:c=73.#include<iostream.h>voidmain(){inta[3][4]={{1,2,7,8},{5,6,11,15},{9,20,3,4}};intm=a[0][0];for(inti=0;i<3;i++)for(intj=0;j<4;j++)if(a[i][j]>m)m=a[i][j];cout<<m<<endl;}输出结果:204.#include<iostream.h>voidmain(){inta=10,b=15;cout<<a<<''<<b<<'';{a*=3;intb=a+20;cout<<a<<''<<b<<'';}cout<<a<<''<<b<<endl;}输出结果:1015305030155.#include<iostream.h>voidmain(){inta[8]={6,19,4,12,20,5,18,25};int*p=a;for(p=a;p<a+8;p++)if(*p<10)cout<<*p<<’‘;cout<<endl;}输出结果:645四、写出下列每个函数的功能(每小题8分,共24分)1.boolWB(inta[],intn,intx){for(inti=0;i<n;i++)if(a[i]==x)returntrue;returnfalse;}函数功能:从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。2.intLJ(inta[],intn){intk=0;for(inti=1;i<n;i++)if(a[i]>a[k])k=i;returna[k];}函数功能:求出数组a中n个元素的最大值并返回。3.假定结构类型Dnode中的data域为结点值域,next域为结点指针域。DNode*QB(intn){if(n==0){returnNULL;}DNode*f=newDNode;cin>>f->data;DNode*p=f;while(--n){p=p->next=newDNode;cin>>p->data;}p->next=NULL;returnf;函数功能:建立一个具有n个结点的链表,每个结点的值依次由键盘输入,该函数返回其表头指针。五、按题目规定编写程序(6分)已知6≤a≤30、15≤b≤36,求出满足不定方程2a+5b=126的所有整数组解。如(13,20)就是其中的一组解,并按此格式输出每组解。答:#include<iostream.h>voidmain(){inta,b;for(a=6;a<=30;a++)for(b=15;b<=36;b++)if(2*a+5*b==126)cout<<'('<<a<<','<<b<<')'<<endl;}

训练第二套一、单选题(每小题2分,共20分)1.枚举类型中的每个枚举常量的值都是一个(A)值。A.整数B.浮点数C.字符D.逻辑2.设x和y均为bool量,则逻辑表达式x||y为假的条件是(C)。A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假3.声明或定义一个内联函数时,必须在函数开始使用保存字(D)。A.staticB.constC.externD.inline4.在下面的函数声明中,存在着语法错误的是(D)。A.BC(inta,int);B.C.5.假定a为一个整型数组名,则元素a[4]与(C)的表达等价。A.a+4B.*a+4C.*(a+4)D.6.下面循环语句执行结束后输出的i值为(B)的值。for(inti=0;i<n;i++)if(i>n/2){cout<<i<<endl;break;}A.n/2B.n/2+1C.n-1D.n7.将两个字符串连接起来组成一个字符串时,选用(C)函数。A.strlen()B.strcpy()C.strcat()D.strcmp()8.预解决命令在程序中都是以(B)字符开头的。A.*B.#C.&D.@9.假定有定义“structBOOK{chartitle[40];floatprice;};”,则不对的的变量定义语句为(D)。A.BOOKx;;B.BOOKx={"C++Programming",27.0};C.BOOK*x=newBOOK;D.BOOKx=newBOOK;10.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete[]px;”语句时,自动调用该类析构函数的次数为(B)。A.1B.nC.n-1D.n+1二、填空题(每小题2分,共20分)1.已知'A''Z'的ASCII码为6590,当执行“charch=14*4+12;cout<<ch;”语句序列后,得到的输出结果为___D_____。2.double类型的长度为____8____。3.表达式x=x+1表达成增量表达式为_____++x_____。4.逻辑表达式a<=b||b==15的相反表达式为____a>b&&b!=15____。5.假定一个二维数组的定义为“char*a[5][4];”,则该数组所含元素的个数为____20____,所占存储空间的字节数为___80_____。6.当函数中的___局部____变量没有被赋初值时,它的值是不拟定的。7.假定一个结构类型的定义为“structA{doublea,b;A*c;};”,则该类型的大小为___20_____字节。8.假定要访问一个结构指针p所指对象中的数据成员data,则表达方法为_p->data_。9.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为AB(){}_。10.当在程序中执行到break语句时,就立即结束本层循环类语句或switch语句的执行。三、写出下列每个程序运营后的输出结果(每小题6分,共30分)1.#include<iostream.h>voidmain(){ints=0;for(inti=1;i<=8;i=+2)s+=i*i;cout<<"s="<<s<<endl;}输出结果:s=842.#include<iostream.h>voidmain(){inti=1,s=0;while(s<20){if(i%2!=0)s+=i;i++;}cout<<i<<’,’<<s<<endl;}输出结果:10,253.#include<iostream.h>voidmain(){inta[8]={36,25,48,14,55,20,47,82};intb1,b2;b1=b2=a[0];for(inti=1;i<8;i++){if(a[i]<b1)b1=a[i];if(a[i]>b2)b2=a[i];}cout<<b1<<','<<b2<<endl;}输出结果:14,824.#include<iomanip.h>intLB(int*a,intn){ints=1;for(inti=0;i<n;i++){s*=*a;a++;}returns;}voidmain(){inta[5]={1,2,3,4,5};cout<<LB(a,5)<<endl;}输出结果:1205.#include<iostream.h>structWorker{charname[15];//姓名intage;//年龄floatpay;//工资};voidmain(){Workerx={"wangfong",46,1640};Workery,*p;y=x;p=&x;cout<<<<''<<y.age<<''<<y.pay<<endl;cout<<p->name<<''<<p->age+5<<''<<p->pay-300<<endl;}输出结果:wangfong461640wangfong511340四、写出下列每个函数的功能(每小题8分,共24分)1.intWC(inta[],intn,intk){intc=0;for(inti=0;i<n;i++)if(a[i]>=k)c++;returnc;}函数功能:记录出数组a的n个元素中大于等于参数k的值的元素个数并返回。2.boolSG(intx){//x为大于等于2的整数inta=int(sqrt(x));//sqrt(x)为求x的平方根inti=2;while(i<=a){if(x%i==0)break;i++;}if(i>a)returntrue;elsereturnfalse;}函数功能:判断x是否为一个素数(或质数),若是则返回真,否则返回假。3.假定结构类型Worker中的name域表达姓名,age域表达年龄,pay域表达工资。voidQA(Workera[],intn){for(inti=0;i<n;i++)cin>>a[i].name>>a[i].age>>a[i].pay;}函数功能:从键盘上输入n个Worker结构类型的记录依次保存到一维数组a的相应元素中。五、按题目规定编写函数(6分)假定函数声明为“voidPrint(inta[],intn);”,在函数体中按下标从大到小的顺序输出数组a中的n个元素的值,并规定每行输出6个元素,当然最后一行可以局限性6个。答:voidPrint(inta[],intn){inti,j=0;for(i=n-1;i>=0;i--){cout<<a[i]<<’’;if(++j%6==0)cout<<endl;}cout<<endl;}

训练第三套一、单选题(每小题2分,共20分)1.由C++源程序文献编译而成的目的文献的缺省扩展名为(A)。A.objB.likC.exeD.cpp2.程序运营中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车3.设x是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为(C)。A.1B.0C.与x值相同D.与x值相反4.for语句可以被改写为(D)语句。A.复合B.ifC.switchD.while5.在下面的do循环语句中,其循环体被执行的次数为(A)。inti=0;doi++;while(i*i<10);A.4B.3C.5D.26.在下面的一维数组定义中,(C)语句有语法错误。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];7.下面的(C)保存字不能作为函数的返回类型。A.voidB.intC.newD.long8.下面的函数声明中,(B)是“voidBC(inta,intb);”的重载函数。A.intBC(intx,inty);B.voidBC(inta,charb);C.floatBC(inta,intb,intc=0);D.intBC(inta,intb=0);9.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C)。A.nB.n+1C.n-1D.n-210.假定AB为一个类,则该类的拷贝构造函数的声明语句为(D)。A.AB&(ABx);B.AB(ABx);C.AB(AB*x);D.AB(AB&);二、填空题(每小题2分,共20分)1.执行“cout<<char('A'+3);”语句后得到的输出结果为___D__。2.在C++每个程序行的后面或单独一行的开始使用注释的标记符为____//____。3.表达式float(25)/4的值为____6.25_______。4.关系表达式x+y>5的相反表达式为____x+y<=5___5.假定一个二维数组的定义为“inta[3][6];”,则该数组具有____18____个元素。6.执行“typedefintABC[20];”语句把ABC定义为具有20个整型元素的_数组类型_。7.假定p所指对象的值为36,p+1所指对象的值为49,则*++p的值为__49___。8.假定a是一个一维数组,则a[i]的指针访问方式为__*(a+i)_9.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的___函数体__实现。10.当一个类对象离开它的作用域时,系统将自动调用该类的___析构函数_。三、写出下列每个程序运营后的输出结果(每小题6分,共30分)1.#include<iostream.h>#include<stdlib.h>intSD(inta,intb,charop){switch(op){case'+':returna+b;case'-':returna-b;default:{cout<<"操作符op犯错,退出运营!";exit(1);}}}voidmain(){intx=20,y=6;cout<<SD(x,y,'+')<<''<<SD(x,y,'-')<<endl;}运营结果:26142.#include<iostream.h>#include<string.h>voidmain(){char*a[5]={"student","worker","cadre","soldier","apen"};char*p1;p1=a[0];for(inti=1;i<5;i++){if(strcmp(a[i],p1)>0)p1=a[i];}cout<<p1<<endl;}运营结果:worker3.#include<iostream.h>intWF(intx,inty){x=x+y;y=x+y;returnx+y;}voidmain(){cout<<WF(8,5)<<endl;}运营结果:314.#include<iomanip.h>constintn=9;voidmain(){inta[n]={2,4,6,8,10,12,14,16,18};ints=0;for(inti=0;i<n;i++){if(i%3==0)s+=a[i];}cout<<”s=”<<s<<endl;}运营结果:245.#include<iomanip.h>voidmain(){int*d=newint[5];inti;for(i=0;i<5;i++){d[i]=2*i+1;cout<<d[i]<<'';}cout<<endl;delete[]d;}运营结果:13579四、写出下列每个函数的功能(每小题8分,共24分)1.floatFI(intn){//n为大于等于1的整数floatx,y=0;do{cin>>x;y+=x*x;}while(--n>0);returny;}函数功能:求出从键盘上输入的n个整数的平方和并返回。2.boolWE(inta[],intb[],intn){for(inti=0;i<n;i++)if(a[i]!=b[i])break;if(i==n)returntrue;returnfalse;}函数功能:判断具有n个元素的两个数组a和b中相应元素值是否所有相等,若是则返回真,否则返回假。3.voidLK(inta[],intn,int&m){floats=0;inti;for(i=0;i<n;i++)s+=a[i];s/=n;m=0;for(i=0;i<n;i++)if(a[i]>=s)m++;}函数功能:记录出数组a的前n个元素中大于等于其平均值的元素个数并由引用参数m带回。五、按题目规定编写函数(6分)假定一个函数声明为“voidAD(inta[],intn);”,规定把数组a中的n个元素值按相反的顺序仍保存在数组a中。答:voidAD(inta[],intn){for(i=0;i<n/2;i++){intx=a[i];a[i]=a[n-1-i];a[n-1-i]=x;}}

训练第四套一、单选题(每小题2分,共20分)1.C++程序的基本功能模块为(D)。A.表达式B.标记符C.语句D.函数2.存储以下数据,占用存储字节最多的是(A)。A.0B.’0’C.”0”3.在下面的一维数组定义中,有语法错误的是(C)。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];4.在下面的语句或语句组中,(B)不对的。A.inta[5];B.intM=10;inta[M];C.inta[]={1,5,10,45};D.constintN=12;inta[N];5.C++语言中的每条简朴语句以___B_____作为结束符。A.逗号B.分号C.空格D.换行符6.含随机函数的表达式rand()%20的值在(C)区间内。A.1~19B.1~20C.0~19D.0~207.当解决一个特定的问题时,若循环次数已知,则通常采用(A)来解决。A.for循环B.while循环C.do循环D.switch语句8.在下面循环语句中内层循环体S语句的执行总次数为(D)。for(inti=0;i<n;i++)for(intj=i;j<n;j++)S;A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/29.若函数声明为double*function(),则该函数的返回值为(B)。A.实数型B.实数指针型C.函数指针型D.数组型10.假定变量m定义为“intm=7;”,则定义变量p的对的语句为(A)。A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;二、填空题(每小题2分,共20分)1.C++语言中每条复合语句以_}(或右花括号)_作为结束符。2.假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则ac的值为___1____。3.十进制数25表达成符合C++语言规则的八进制数为___031_____。4.表达式x=x+y表达成复合赋值表达式为__x+=y__。5.若x=5,y=15,则x>y的逻辑值为__假(false或0)_。6.假定一个一维数组的定义为“char*a[8];”,则该数组所占用存储空间的字节数为_32__。7.假定x=10,则表达式2+x++的值为__12__。8.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为__25______。9.假定要动态分派一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为Worker*r=___newWorker[n];___。10.设px指向一个类的动态分派的对象,则执行“deletepx;”语句时,将自动调用该类的__析构函数__。三、写出下列每个程序运营后的输出结果(每小题6分,共30分)1.#include<iostream.h>voidSB(charch){switch(ch){case'A':case'a':cout<<"well!"<<’’;break;case'B':case'b':cout<<"good!"<<’’;break;case'C':case'c':cout<<"pass!"<<’’;break;default:cout<<"bad!";break;}}voidmain(){SB(’A’);SB(’c’);SB(’b’);cout<<endl;}运营结果:well!pass!good!2.#include<iostream.h>voidmain(){inta[6]={36,25,48,14,55,40};intb1=a[0];for(inti=1;i<6;i++)if(a[i]>b1)b1=a[i];cout<<”b1=”<<b1<<endl;}运营结果:553.#include<iomanip.h>voidmain(){in

温馨提示

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

评论

0/150

提交评论