《高级程序设计语言C++试卷及答案10套.docx》由会员分享,可在线阅读,更多相关《高级程序设计语言C++试卷及答案10套.docx(85页珍藏版)》请在三一办公上搜索。
1、诚信应考,考试作弊将带来严重后果!期末考试高级程序设计语言C+试卷考前须知:1.考前请将试卷和答题纸密封线内各项填写清楚;2.所有答案写在答题纸上,否那么无效;3.试卷和答题纸同时提交:4考试形式:闭卷;5本试卷共五大题,总分值100分,考试时间120分钟。题号四五总分得分评卷人单项选择题(每题2分,共26分)(B) l=a, a=b, t=b, b=a;1.由C+目标文件连接而成的可执行文件的缺省扩展名为(C)。(A) &ra=a;(B) rb = ra;(C) &rb=&ra;(D) *rb=*ra;Obj(八)cppintbreak(B)intcharnew(C)breakCASEsiz
2、eof,以下四个选项中,不能交换变Ifta和b的值是(PJ。SWitChfloatinteger2.以备演中全部都是C+关键字的选项为(B(d)(八)a=a-b,b=a+b,a=b-a;(八)143.字符串Hello,nHi041”包含的有效字符个数为(D(八)14(B)13(C)12(D)IO4.以下代码执行的结果是(B)。intX=3510;doubley=x/100*100;couty;(八)3510(B)3500(C)3000(D)I5.inti=3;下面语句执行的循环次数是(B)。(八)Idoi-;coutiendl;)while(i!=1);(八)1(B)2(C)(D)无限次7.假
3、设inta=l,b=2,&ra=a,&rb=b;以下正确的语句是(C)t=a,a=b,b=t;(D)t=b,a=b,b=a;7.假堡)BM0b=2,&ra=a,&rb=b;以下正确的语句是B)o8.在下面的函数声明中,存在着语法错误的选项是(D2 H3 24 、ttincludevoidfunc(int,int,int*):voidmain()(intx,y,Z;func(1,2,&x);func(3,x,&y):func(x,y,&z):coutxcndlycndlzendl;)voidfunc(inta,intb,int*c)b-=a:*c=b-a;06-65 、ttincludeintf
4、l(inta,intb)returnalb*5:)intf2(inta,intb)returna*b;)intf3(int(*t)(int,int),inta.intb)return(*t)(a,b);voidmainOint(*p)(int,int):=fl;coutf3(p,5,6)endl;p=f2;cout3(p,7,8)endl:)25566 、tfincludettincludevoidfNum(intW)inti;if(w0)for(i=l;i=w;i+)coutsetw(3)wjcoutendl;INum(w-1);)voidmain()fNum(4):4444333221四、
5、程序填空题(每空2分,共20分)1、下面程序的功能是:输入三角形的三条边存放在变量a,b和C中,判别它们能否构成三角形,假设能,那么判断是等边、等腰、还是其它三角形,在横线上填上适当内容。eincludevoidmain()floata,b,c;coutabc;if(a+bc&b+c)a&c+ab)(if(jj)a=b&b=Ccout等边三角形!n:elseif(2)H=ba=CIIb=Ccout等腰三角形!n;elsecout其它三角形!n,;)clsccoutn不能构成三角形!nn;)2、以下程序功能是输出IoOO以内个位数为6且能被3整除的所有数。请填空。ftincludevoidmai
6、n()inti,j:for(i=0;【3;i+)i100j=i*10+6;if(141)continue;j%3coutj*;)3、求n(n26)内的所有偶数表示为两个素数之和,图1为输入12的运行结果。补充完整以下程序。提小:一个偶数11(1126)可以表小为l+(11T),2+(n-2),3(11-3),.*includeHinCIUde*include。Omanip.hintisprime(int);voidmain()intnum;COU请输入一个偶数N(N=6):n:c=6):126=3+38=3+510=3+712=5+7Pressanykeytocontinuecinnum;fo
7、r(intn=6;n=num:n+二2)for(inti=3;i=n2;i+=2)if(5】)isprime(i)&isprime(n-i)coutsctw(3)n*,sotw(3)i*+,setw(3)(n-i)cndl;break:intisprime(intn)inti,sqrtm=(int)sqrt(n);for(i=2;i=sqrtm;i+)if(【6return0:11%i-0j;return14、以下程序是创立一个动态数组,数组长度由程序运行时输入数据决定。调用随机函数对动态数组赋初值,并输出动态数组各元素值。请填空。4includettincludetfincludevoidm
8、ain()intn,*p=8;NULLeOUt*Plcascinputn:nw;cinn;P二9new.intnif(p=NULL)cout*Allocationfaiurcnn;return:srand(time(O);for(inti=0;in;i+)pi=rand()%100;for(110;ap+n;a+)int*a=pcout*a,W;/coutendljdeletep;)五、编程题(20分)1、(6分)编写程序,打印正整数的平方和立方值。程序运行后显示相应的提示信息,要求输入2个正整数,然后显示这个范围的数据的平方和立方值。例如,分别输入整数2和9,执行效果如图2所示。-1!x49
9、1625364964811CE:C+C和C+题07卷Debug平方立方根请揄入宜I个整和=0:2造输入翁个整物:9N聿方立方82764125216343512729Pressanvkeytocontinue_1J图2显示数制对照农#include#includevoidmain()inta,b;couto请输入第1个整数(=0):;cina;COUt请输入第2个整数(=第1个整数):;cinb;coutselw(12),Nsetw(12)平方vsetw(12)立方endl;for(inti=a;i=b;i)coutsetw(12)isetw(12)i*isetw(12)i*i*iendl;2、
10、函数原型。(6分)以下程序用随机函数生成两位整数,取M个各不相等的数据,按生成顺序存放在数组a中。图3是生成20个数据的显示效果。请依题意编写函数insert及填写函数原型。cE:.C+C和C+题TO出卷Debug性成数,.ttincludettincludettinclude生成数组:54学日3468801117951299、,一46909669366339496420Pressanykeytocontinue11intinsert(int*aainikimn);函数原型或:intinsert(intapfLintkintn):voidmainOIconstintM=20:intnli=0;
11、intaM=0;srand(time(O);while(iM)fdeITI=toCZl八11Ilarh;1c/c/IC二lz(Jif(insert(a,i,把不相同数据插入数组an)图3生成数组C+程序设计试卷第13页共92页cout生成数组:,endl;for(i=l:i=M;i+)coutai,*;if(i%10=0)coutendl;coutendl;)intinsert(int*ap,intk,intn)for(intj=0;jk;j+)tf滤去相同数if(apj=n)break;if(j=k)apj=n;return1;添加数据return0;)3、(8分)木程序功能是把一个用拼音输
12、入的名字自动生成6位数字串的密码。生成规那么是把字母串的最后6位逆序,取每个字母小写的ASCH码值,其除以10的余数为该位的密码值。当输入名字的字母串缺乏6位,生成时以字母“z”补足。图4是程序的运行效果。请填写Change函数的函数原型并编写函数。4includestructlinkchars;link*next:):voidinputName(link*&h);voidoutLink(link*h);/change的函数原型voidmain()link*nam。二NULL*code=NULL;COUt请输入名字拼音,以#结束:ninputName(nune);change(code,nam
13、e);ttincludeCA EAC+ + 3DC+ +S 07S XDebttinclude请输入名字拼音.以“结束:耳ZhOngFUWatt 生成密码 为:797230#Press any key to cont inue11图4生成密码structlinkchars;link*next;:voidinputName(link*&h);voidoutLink(link*h);/change的函数原型voidmain()link*nameXNULL,*code=NULL;COUt(p-s);while(p-s=*a,&p-ss=A&p-ss!=*)p-next=h;h=pzp-newlink
14、:cin(p-s);voidchange(link*&hCode,link*h)chard;C+程序设计试卷第14页共92页link*p=NULL;hCode=newlink;hCode-next=NULL;p=hCode;d=h-s;for(inti=0;is=int(tolower(d)%10+0;p-next=newlink;p=p-next;p-s=,#;p-next=NULL;if(h-next)h=h-next;d=h-s;elsed=z,;)voidoutLink(link*h)(while(h)(couts);h=h-next;coutendl;诚信应考,考试作弊将带来严重后果
15、!考前须知:C+程序设计试卷考前须知:1.考前请将密封线内填写清楚;所有答案请答在试卷的答案栏上;2 3.考试形式:闭卷;4.本试卷共五大题,总分值100分,考试时间120分 钟。题号四五总分得分评卷人、单项选择题:(每题2分,共20分)1.结构化程序设计的三种基本控制结构是(A)输入、)o 处理、输出B)树形、网形、环形2.以下哪个是C+的合法变量名(C)顺序、选择、循环D)主程序、子程序、函数3 .以下哪个是C+的合法变量名()?A)8dex3. 12C)i.2aD) int4 .假设整型变量int a=2, b=l, c=3,d=4 ;那么条件表达式ab?a:c23、45678910二、
16、简答题:(共20分).语句COUIVyx42x102nx”的显示结果是什么?说明理由。(3分)答:1.以下程序的输出结果是什么?请说明原因。(2分)intmain()unsignedshorta=65535;shortintb;b=a;couttb=b;retum0;)答:C+程序设计试卷第16页共92页.设有说明chara6,*b=a;sizeof(a),sizeof(b)的值各是多少?分析结果原因。(3分)2.设有说明inta2*3;请写出两个表示数组a最后一个元素地址的表达式(2分)。答:3 .设在主函数中有以下定义和函数调用语句,且fun函数为Void类型;请写出fun函数的原型。(2
17、分)main()doubles1022;intn;fun(s);答:4 .设有如下定义:structpersoncharname10;intage;personClaSS10=“John”,17,“Paul”,19,Mary:18,“Adam16,:根据上述定义,写出能输出字母M语句。(3分)答:5 .以下语句不能正确输出单链表head的数据元素值,请找出原因。(2分)structlinkintdata;link*next;);link*head,*p;p=head;while(p!=NULL)coutp.data;p+;)答:C+程序设计试卷第17页共92页6 .设有函数调用语句arraym
18、axmin(a,n,max,min);功能是由参数max,min返回基本整型数组a的n个元素中的最大值和最小值。对应的函数原型是什么?(3分)(只需给出原型,不用写函数定义)三、阅读程序,写出运行结果:(每题4分,共20分)1.#includeusingnamespacestd;intmain()intx,n;x=n=5;x+=n+;coutxnendl;return0;)2.#includeusingnamespacesld;intmain()chars6=abcde,*p=sjcout*ppendl;return0;)includeusingnamespacestd;intmain()in
19、ti,j;for(i=l;i=3;i+)j=l:while(ji)coutijendl;j+;)return0;以下程序的输出的结果是ttincludeusingnamespacestd;voidincre();intx=3;intmain()inti;C+程序设计试卷第18页共92页for(i=l;ix;i+)incre();)voidincre()staticintx=l;x*=x+l;coutx;4includeusingnamespacestd;voidfun(int,int,int*);intmain()intx,y,z;fun(5,6,&x);fun(7,x,&y);fun(x,y
20、,&z);coutx,z;retumO;)voidfun(inta,intb,int*c)b=a;*c=b-a;)答案栏:1、2、4、5、程序填空题:(每空2分,共22分)1.下面程序的功能是:输入三角形的三条边存放在变量a,b和C中,判别它们能否构成三角形,假设能,那么判断是等边、等腰、还是其它三角形,在横线上填上适当内容。#includeusingnamespacestd;intmain()floata,b,c;coutabc;if(a+b)c&b+ca&c+ab)C+程序设计试卷第19页共92页(八)voidf(inta,int)(B)voidf(inta,intb)(C)voidf(i
21、nta,intb=5)(D)voidf(inta;intb).假设有定义语句:inta(2)(3).p:那么以下语句中正确的选项是(C).(八)p=a;(B)pE0=a;(C)p0=feal2;(D)pl=&a;.以下代码输出结果为(D)int*arr=newint10;coulno=3011;(C)(*p).no=3011;(D)*p.no=3011;.要求翻开文件D:file.dat”,可写入数据,正确的语句是(D)。(A) ifstreaminfile(c6Dfile.dat,ios:in);(B) ifstreaminfile(Dfile.dafios:in);(C) ofslream
22、inflle(D:flle.dat,ios:out);(D) fstreaminfile(Dfile.dal,ios:in|ios:out);Zlx简答题(共12分)1、(3分)有以下语句:inta=63;doubleb=3.456789coutsetfill()setw(6)hexansetprecision(5)bendl;输出显示什么?#3f3.45682、(3分)有说明intA35;写出两个不同形式的表示元素值的表达式。A1J3J*(A11+3)*(*(A+l)+3)3.(3分)设有说明doublea6=O),*b=newdouble6;sizeof(a),SiZeof(b)的值各是多
23、少?并分析结果原因。4844、(3分)设有函数调用语句Count(A,N,right,negative);功能是由参数right,negative返Pl统计数组A的N个元素中正整数和负整数的个数。对应的函数原型是什么?voidCount(int*.int,int&,int&);三、读程序写结果(共6题,每题45分,共28分)1、(4分):#includeif(U)cout(等边三角形!n;elseif(12)COUt等腰三角形!n;elsecout其它三角形!nff;elsecout(不能构成三角形!n*;return02以下程序功能是打印100以内个位数为6且能被3整除的所有数。ttincl
24、udeusingnamespacestd;intmain()inti,j;fbr(i=0;31;i+)j=i*10+6;if(4)continue;coutj;return0;3.以下程序实现两个变量的值互换。ttincludeusingnamespacestd;voidswap(int*,int*);intmain()inta=3,b=8;swap(5);cout6)内的所有偶数表示为两个素数之和,以下图为输入16的运行结果。补充完整以下程序。提示:一个偶数n(nN6)可以表示为l+(n-l),2+(n-2),3+(n-3).ttinclude喻品砂出哪曲荆情输入一个偶数NCN=6)Tli撕
25、晒tf侬晒Std6=8=#include10=K+程序设计试卷:12=14=1116=*13Pressanykeytocontinue#includeintisprime(int);intmain()intnum,i,n;cout=6):,;cinnum;fbr(n=6;n=num;n+=2)for(i=3;i=n/2;i+=2)if(7)coutsetw(3)nz=-zsetw(3)iz+setw(3)(n-i)endl;break;)intisprime(intm)inti,k=sqrt(m)for(i=2;i=k;i+)if(8)return0;95.下面是一个类的测试程序,其执行结果为
26、:50-12=38请将程序补充完整。#includeusingnamespacesld;classTestintm,n;public:voidinit(int,int);voidprint(););voidTest:init(inti,intj)(1101)voidTesl:print()-LIUintmain()Testa;a.init(50,12);a.print();return0;C+程序设计试卷第21页共92页答案栏:Q)(3)(4)(5)(7)(9)(三)答:a.init(50,12);a.print();return0;(6)(10)五编程题:(18分)(6分)编写程序,打印正整
27、数的平方和立方值。程序运行后显示、相应的提示信息,要求输入2个正整数,然后显示这个范围的数据的平方和立方值。例如,分别输入整数1和10,执行效果如以下图所示。请揄入第一个整数(=0):1上请端入靠二个整数3第一个整数)=10H平为立方Ill248392741664525125636216749343864512981729101001000Pressanykeytocontinue12JCaMD:c_07WJSDebugchar1.eei,C+程序设计试卷第22页共92页2.(6分)以下程序求一维数组元素的最大值,并返回此值。请依题意编写函数f及填写函数原型。Itincludeviostrea
28、mAusingnamespacestchconstinln=IO;函数原型intmain()intan,i,max;fbr(i=0;ia(i;max=f(a,n);coutmax=zmax;return0;答:C+程序设计试卷第23页共92页(6分)以下程序的功能是别离一个浮点数的整数局部和小数局部。程序用字符串存放输入数据,执行效果如下图。根据main函数,请写出SeParate函数的原型和实现定义。#includeusingnamespacestd;intmain()chars20;inti=0,d=0;couts;separate(s,i,d);调用函数CoUts整数局部是:i(endl
29、;/separate函数原型DAc 07WSDebugchar 1 .ex1情输入一勺日息数: 102.35876 102.35876整数局部是:102 1 n2.K76小釉局都早: 35876Press any key to continue-1 Icouls小数局部是:Cdintmain()chars20;inti=0,d=0;CoUts;separate(s,i,d);调用函数COUts整数局部是:i(endl;答:couts小数局部是:data;p=p-next;voidarrayjnax_min(int*,int,int*,int*);八、 阅读程序,写出运行结果:(每题4分,共20
30、分)1066. aabcde2,12,66,6,6九、 程序填空题:(每空2分,共22分)a=bMb=c1. a=bHa=cIb=ci102. j%3&a,&b3. *xisprime(i)&isprime(n-i)4. !(m%i)retum1;5. m=i;n=j;coutm-znJ=zm-nendl;十、编程题:(18分)ttincludeusingnamespacestd;#includeintmain()inta,b,i;cout*请输入第个整数0-0):;cina;COUt请输入第二个整数。第一个整数):cinb;C+程序设计试卷第25页共92页coutsetw(10)zN7zse
31、tw(10)“平方,setw(10),立方endl;for(i=a;i=b;i+)coutsetw(10)isetw(l0)i*isetw(l0)i*i*iendl;returnO;ttincludeusingnamespacestd;constintn=10;intf(int*,int);*f函数原型intmain()intan,i,max;fbr(i=0;in;i+)cinai;max=f(a,n);cout-max=一max;return0;intf(int*a,intn)inti,max;max=a0;for(i=l;imax)max=aireturnmax;)#includeusin
32、gnamespacestd;voidseparate(char*,int&,int&);/separate函数原型intmaino诚信应考,考试作弊将带来严重后果!华南理工大学期末考试考前须知:1.考前C+程序设计试卷P请将密封线内填写清楚;2 .所有答案请答在试卷的答案栏上;.考试形式:闭卷;3 .本试卷共五大题,总分值100分,考试时间120分钟。C+程序设计试卷第26页共92页题号T*四五总分得分评卷人十一、单项选择题:(每题2分,共20分).一个C+程序从编写源程序到得到运行结果要经历的四个步骤是OOA)编译、编辑、连接、运行B)编辑、编译、汇编、运行C)编辑、编译、连接、运行D)编译
33、、连接、汇编、运行11 .以下选项中,哪个是C+语言的合法变量名O?A)file.cppB)_123C)9abcD)new.对于语句序列:intx=5,y=6,z;floata=2.5;z=yx+ya+a;执行后z的值为()。A)5B)606.1D)5.9.以下选项中可作为C语言合法常量的是()oA)-8el.0B)C)-80.D)-80.Oe12 .设)80ta=l,b=2,c=3,d=4;那么条件表达式ab?a:cd?c:d的值为()。A)IB)2C)3D)413 .以下程序的运行结果是()ointmain()unsignedshorta=65535;ShOrtb;b=a;coutb;re
34、turn0;)A)-32768B)32767C)65535D)-117 .设有定义语句:inta6=2,4,6,8,5,7,*p=a,i;要求依次输出a数组6个元素的值,不能完成此操作的语句是()。A) for(i=0;i6;i+)cout*(p+)endl;for(i=0;i6;i+)cout*(p+i)endl;B) fbr(i=0;i6;i+)cout*p+endl;for(i=0;i6;i+)cout(*p)+endl;18.设有定义语句:CharaUOL*p=a;以下赋值语句中,正确的选项是()。A) a=nhellon;B)a10=hello;C)strcpy(a,hello);D
35、)*p=,hello”;19.以下带有默认参数的函数原型声明中,正确的选项是()ofloatfun(inta=5,intb=5,intc,intd);A)floatfun(inta=5,intb=5,intc,intd=5);C+程序设计试卷第27页共92页B) floatfun(inta=5,intb,intc,intd);floatfun(inta,intb,intc=5,intd=5);20.设有定义语句:StrUCtPOinIintx;inty;vl;那么以下语句中正确的选项是O。A)point,x=10;Bpointv2;v2.x=10;structv2;v2.x=10;)vlv2;v2.x=IO;答案栏:1、2、3、4、5、:6、7、8、9、10、二、程序填空题(每空2分,共20分)答案栏:5、;一6、1、以下函数的功能是:用递归法将一个整数n转换成字符串。例如:输入整数1635,应输出字符串“1635”。n的位数不确定,可以是任意位数的整数。请填空。voidfun(intn)if(n10)Ll1递归出口else2递归体putchar(n%10+48);2、以下程序的功能是:用起泡法对6个整数排序(按从小到大顺序)。请填空。#includeusingnamespacestd;voidmain()
链接地址:https://www.31ppt.com/p-6920289.html