1…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………学院专业班级学号姓名武汉理工大学考试试卷(A卷)2016~2017学年1学期高级语言程序设计课程时间120分钟64学时,4学分,闭卷,总分100分,占总评成绩70%年月日题号一二三四五六合计满分28241830100得分一、单项选择题(本大题共14小题,每小题2分,共28分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面表格中的对应位置。错选、多选或未选均无分。12345678910111213141.下列选项中,不能作为C++合法常量的是A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e02.下列转义字符中,表示换行的是A.\0B.\nC.\fD.\r3.设有inta=3,b=-4,c=5;表达式a=b=c=6+3/5的值是A.3B.4C.6D.6.64.设有inta=3,b=-4;表达式(ab)?a+b:(a-b,b+4,a-=b+4)的值是A.-1B.0C.3D.75.下列关系表达式中,结果为“假”的是A.(3!=4)2B.(3+4)6C.3=4||3D.(34)==16.设有inta=-2,b=0;循环程序段“while(a++&&++b);”执行后,a和b的值分别为A.0,2B.0,3C.1,2D.1,37.下列选项中,正确的是A.charstr3[]={'d','e','b','u','g','\0'};B.charstr4;str4=helloworld;C.charname[10];name=china;D.charstr1[5]=pass,str2[6];str2=str1;得分28.设intb[][3]={1,2,3,4,5,6,7};,则元素b[2][2]的值是A.0B.2C.6D.79.设charx[][10]={Windows,dos,unix};,执行coutx[1][2];后输出的结果是A.nB.iC.oD.s10.设宏定义#defineP(x)x/x则执行语句coutP(2+3)endl;后的输出结果是A.1B.5C.6D.6.511.若有int*p1,*p2,m=5,n;下列进行赋值的语句中合理的是A.p1=m;B.pl=&m;C.*p1=&m;D.&p2=n;12.若有inta[5][6],(*p)[6];且有p=a;则数组元素a[3][4]可以表示为A.&a[3][4]B.*(p+3)+4C.*(&a[3]+4)D.*(*(p+3)+4)13.若inta[4]={1,2,3,4},*p;则下列赋值语句中正确的是A.p=&a;B.*p=a;C.*(a+1)=a;D.p=a+114.设有charch[]={abc\0def},*p=ch;,则执行cout(p+4)endl;语句的输出结果是A.0B.0defC.dD.def二、程序阅读题(本大题共6小题,每小题4分,共24分)请将下面各程序的输出填写在下划线处。1.#includeiostream.hintmain(){inti,j,k,s=0;for(i=1;i=3;i++)for(j=1;j=i;j++)for(k=1;k=5;k++)s++;coutsendl;return0;}输出:2.#includeiostream.hintmain(){inta,b=0;for(a=0;a3;a++){b=b+a*a+1;cout(char)('A'+b);}return0;}输出:得分33.#includeiostream.hintmain(){intp[8]={11,12,13,14,15,16,17,18},i=0,s=0;while(i++7)if(p[i]%2)s+=p[i];coutsendl;return0;}输出:4.#includeiostream.hintfun(inty){staticinta=0;a=a+y;returna;}intmain(){intx[4]={3,5,7,0},s=0,i=0;while(x[i]){s+=fun(x[i]);i++;}coutsendl;return0;}输出:5.#includeiostream.hintmain(){chara[]=Language,b[]=Programe;char*p1,*p2;p1=a;p2=b;while(*p1&&*p2){if(*p1==*p2)cout*p1;p1++;p2++;}coutendl;return0;}输出:6.#includeiostream.h#includestring.hvoidfun(char*s){char*t,ch;for(t=s+strlen(s)-1;st;s++,t--){ch=*s;*s=*t;*t=ch;}}intmain(){chars1[]=12345;fun(s1);couts1endl;return0;}输出:4三、程序填空题(本大题共2小题,每空3分,共18分)请在程序中的下划线处填空,将程序补充完整。1.从4个人中选2个人参加活动,一共有6种选法。从n个人中选m个人参加活动,一共有多少种选法?下面的函数实现了这个功能。#includeiostreamusingnamespacestd;intf(intn,intm){if(mn)return0;if(m==0)___________;//(1)returnf(____________)+f(___________);//(2)、(3)}intmain(){intm,n;cinnm;coutf(n,m)endl;return0;}2.下列程序执行后,输出结果为:l2bc3,b4c56,c78b9l2c3,4c56,c789l23,456,789请填空将程序补充完整。#includeiostream.hvoidfun(char*s,charch){char*p=s;while(__________)//(1){if(*s!=ch){*p=*s;__________;}//(2)s++;}__________;//(3)}intmain(){charch='a',s[80]=la2bc3,b4c5a6,c7a8b9;inti;for(i=0;i3;i++){fun(s,ch+i);coutsendl;}return0;}…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………得分5四、程序编写题(本大题共3小题,每小题10分,共30分)1.编写程序利用公式e=1+1/1!+1/2!+1/3!+…+1/10!求e的近似值。2.编写程序求出3~100之间的所有孪生质数。所谓孪生质数是指它们的差是2的两个质数。如:5,7;11,13是孪生质数,而13,17不是。得分63.编写Node*creat(inta[],intn)函数,使得下列程序运行后,输出4--1--2--3--6--5。#includeiostream.hstructNode{intdata;Node*next;};typedefNode*LinkList;voidprint(LinkListhead){Node*p;if(head==NULL)return;p=head;while(p-next){coutp-data--;p=p-next;}coutp-dataendl;}Node*creat(inta[],intn);intmain(){inta[6]={4,1,2,3,6,5};LinkListhead;head=creat(a,6);print(head);return0;}Node*creat(inta[],intn){}7…………装订线………………装订线内不要答题,不要填写信息………………装订线…………武汉理工大学考试试题答案(A卷)2016~2017学年1学期高级语言程序设计课程一、单项选择题(本大题共14小题,每小题2分,共28分)1234567891011121314BBCCACAADCBDDD二、程序阅读题(本大题共6小题,每小题4分,共24分)1.302.BDI3.454.265.gae6.54321三、程序填空题(本大题共2小题,每空3分,共18分)1.(1)return1(2)n-1,m-1(3)n-1,m2.(1)*s!='\0'(2)p++(3)*p='\0'四、程序编写题(本大题共3小题,每小题10分,共30分)1.#includeiostream.hintmain(){inti,n=1;doublee=1;for(i=1;i=10;i++){n=n*i;e=e+1.0/n;}couteendl;return0;}82.#includeiostream.h#includemath.hintprime(intn){inti;for(i=2;i=sqrt(n);i++)if(n%i==0)break;if(isqrt(n))return1;elsereturn0;}intmain(){inti;for(i=3;i100;i=i+2)if(prime(i)&&prime(i+2))coutii+2endl;return0;}3.Node*creat(inta[],intn){LinkListhead,p,q;head=NULL;for(inti=0;in;i++){p=newNode;p-data=a[i];p-next=NULL;if(head==NULL){head=p;q=p;}else{q-next=p;q=p;}}returnhead;}9