高级程序设计语言C++试卷及答案10套.docx
诚信应考,考试作弊将带来严重后果!期末考试高级程序设计语言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)breakCASEsizeof,以下四个选项中,不能交换变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;cout«y;(八)3510(B)3500(C)3000(D)I5.inti=3;下面语句执行的循环次数是(B)。(八)Idoi-;cout«i«endl;)while(i!=1);(八)1(B)2(C)(D)无限次7.假设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 、ttinclude<iostream.h>voidfunc(int,int,int*):voidmain()(intx,y,Z;func(1,2,&x);func(3,x,&y):func(x,y,&z):cout<<x<<cndl<<y<<cndl<<z<<endl;)voidfunc(inta,intb,int*c)b-=a:*c=b-a;06-65 、ttinclude<iostream.h>intfl(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;cout<<f3(p,5,6)<<endl;p=f2;cout<<3(p,7,8)<<endl:)25566 、tfinclude<iostream.h>ttinclude<iomanip.h>voidfNum(intW)inti;if(w>0)for(i=l;i<=w;i+)cout<<setw(3)<<wjcout<<endl;INum(w-1);)voidmain()fNum(4):4444333221四、程序填空题(每空2分,共20分)1、下面程序的功能是:输入三角形的三条边存放在变量a,b和C中,判别它们能否构成三角形,假设能,那么判断是等边、等腰、还是其它三角形,在横线上填上适当内容。einclude<ioslream.h>voidmain()floata,b,c;cout<<'a,b,C二;cin>>a>>b>>c;if(a+b>c&&b+c)a&&c+a>b)(if(jj)a=b&&b=Ccout<<等边三角形!n:elseif(2)H=ba=CIIb=Ccout<<等腰三角形!n;elsecout<<"其它三角形!n,;)clsccout<<n不能构成三角形!nn;)2、以下程序功能是输出IoOO以内个位数为6且能被3整除的所有数。请填空。ftinclude<iostream.h>voidmain()inti,j:for(i=0;【3;i+)i<100j=i*10+6;if(141)continue;j%3cout«j«*";)3、求n(n26)内的所有偶数表示为两个素数之和,图1为输入12的运行结果。补充完整以下程序。提小:一个偶数11(1126)可以表小为l+(11T),2+(n-2),3÷(11-3),.*include<iostream,h>HinCIUde<math.h>*include。Omanip.h>intisprime(int);voidmain()intnum;COU请输入一个偶数N(N>=6):n:c<',E:C+CWC+S07SADel请输入一个偶数N(N>=6):126=3+38=3+510=3+712=5+7Pressanykeytocontinuecin>>num;for(intn=6;n<=num:n+二2)for(inti=3;i<=n2;i+=2)if(5】)isprime(i)&&isprime(n-i)cout<<sctw(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、以下程序是创立一个动态数组,数组长度由程序运行时输入数据决定。调用随机函数对动态数组赋初值,并输出动态数组各元素值。请填空。4include<iostrcam.h>ttinclude<stdlib.h>tfinclude<time.h>voidmain()intn,*p=8;NULLeOUt«*Plcascinputn:nw;cin>>n;P二9new.intnif(p=NULL)cout<<*Allocationfaiurcnn;return:srand(time(O);for(inti=0;i<n;i+)pi=rand()%100;for(110;a<p+n;a+)int*a=pcout«*a«,W;/cout<<endljdeletep;)五、编程题(20分)1、(6分)编写程序,打印正整数的平方和立方值。程序运行后显示相应的提示信息,要求输入2个正整数,然后显示这个范围的数据的平方和立方值。例如,分别输入整数2和9,执行效果如图2所示。-1!x491625364964811CE:C+C和C+题07卷'Debug平方立方根请揄入宜I个整和<>=0>:2造输入翁个整物<=欹1个整>:9N聿方立方82764125216343512729Pressanvkeytocontinue_1J图2显示数制对照农#include<iostream.h>#include<iomanip.h>voidmain()inta,b;couto请输入第1个整数(>=0):;cin>>a;COUt«请输入第2个整数(>=第1个整数):»;cin>>b;cout<<selw(12)<<,N"<<setw(12)平方"v<setw(12)立方"<<endl;for(inti=a;i<=b;i÷÷)cout<<setw(12)«i«setw(12)«i*i«setw(12)«i*i*i«endl;2、函数原型。(6分)以下程序用随机函数生成两位整数,取M个各不相等的数据,按生成顺序存放在数组a中。图3是生成20个数据的显示效果。请依题意编写函数insert及填写函数原型。c"E:.C+C和C+题TO出卷Debug性成数,.ttinclude<iOstrecim.h>ttinclude<stdlib.h>ttinclude<time.h>生成数组:54学日3468801117951299、,一46909669366339496420Pressanykeytocontinue11intinsert(int*aainikimn);函数原型或:intinsert(intapfLintkintn):voidmainOIconstintM=20:intnli=0;intaM=0;srand(time(O);while(i<M)fdeITI=toCZl八11Ilarh;1c/c/IC'"二lz(Jif(insert(a,i,把不相同数据插入数组an)图3生成数组C+程序设计试卷第13页共92页cout<<生成数组:,<<endl;for(i=l:i<=M;i+)cout<<ai<<,*";if(i%10=0)cout<<endl;cout<<endl;)intinsert(int*ap,intk,intn)for(intj=0;j<k;j+)tf滤去相同数if(apj=n)break;if(j=k)apj=n;return1;添加数据return0;)3、(8分)木程序功能是把一个用拼音输入的名字自动生成6位数字串的密码。生成规那么是把字母串的最后6位逆序,取每个字母小写的ASCH码值,其除以10的余数为该位的密码值。当输入名字的字母串缺乏6位,生成时以字母“z”补足。图4是程序的运行效果。请填写Change函数的函数原型并编写函数。4include<ctypc.h>structlinkchars;link*next:):voidinputName(link*&h);voidoutLink(link*h);/change的函数原型voidmain()link*nam。二NULL*code=NULL;COUt«请输入名字拼音,以#结束:ninputName(n<une);change(code,name);ttinclude<iostream.h>CA "EAC+ + <3DC+ +S 07S XDebttinclude<ctypc.h>请输入名字拼音.以“结束:耳ZhOngFUWatt 生成密码 为:797230#Press any key to cont inue±11图4生成密码structlinkchars;link*next;:voidinputName(link*&h);voidoutLink(link*h);/change的函数原型voidmain()link*nameXNULL,*code=NULL;COUt<<请输入名字拼音,以#结束:ninputName(name):change(