1…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………学院专业班级学号姓名武汉理工大学考试试卷(B卷)2016~2017学年1学期高级语言程序设计课程时间120分钟64学时,4学分,闭卷,总分100分,占总评成绩70%年月日题号一二三四五六合计满分28241830100得分一、单项选择题(本大题共14小题,每小题2分,共28分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面表格中的对应位置。错选、多选或未选均无分。12345678910111213141.下列转义字符中,错误的是A.′\108′B.′\\′C.′\n′D.′\xbb′2.设charcl;,则cl为小写英文字母字符的正确表达式为A.’a’=c1=’z’B.(cl=’a’)&&(cl=’z’)C.(cl=a)&&(c1=z)D.(’a’=c1)||(’z’=c1)3.设inta=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c++:d++;后f的值是A.2B.3C.4D.54.设for(i=0,j=10;(j0)&&(i4);i++,j--);,该语句的循环次数是A.0B.3C.4D.105.若有定义inta[4]={1,2,3,4};则a[a[0]+2*a[2]-a[3]]等于A.1B.2C.3D.46.设有定义chara[]=xyz,b[]={'x','y','z'};,则语句coutsizeof(a)sizeof(b)endl;的输出结果为A.33B.34C.43D.447.如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,则这个变量的存储类型应该被说明为A.自动变量B.静态变量C.外部变量D.寄存器变量8.C++中,指针变量的值只能是A.变量名B.变量的值C.变量的别名D.NULL或地址值得分29.定义二维数组并初始化,正确的是A.inta[][]={1,2,3,4,5,6};B.inta[2][]={1,2,3,4,5,6};C.inta[][3]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6};10.设宏定义#defineP(x)(x)/(x)则执行语句coutP(4+6)endl;后的输出结果是A.1B.8.5C.11D.11.511.若变量已正确定义并且指针p已经指向变量x,则*&x相当于A.xB.pC.&xD.&*p12.设chars[10],*p=s;下列语句中错误的是A.p=s+5;B.*p=s[0];C.s[2]=p[4];D.s=p+5;13.在C++中,函数的形式参数是A.局部变量B.全局变量C.静态变量D.外部变量14.有以下定义和语句inta[3][2]={1,2,3,4,5,6,},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是A.a[0][1]B.a[1][0]C.a[1][1]D.a[1][2]二、程序阅读题(本大题共6小题,每小题4分,共24分)请将下面各程序的输出填写在下划线处。1.#includeiostream.hintmain(){inti,j,k,s=0;for(i=1;i=5;i++)for(j=1;j=i;j++)for(k=1;k=j;k++)s++;coutsendl;return0;}输出:2.#includeiostream.hintmain(){intm,n;m=63;n=14;while(m!=n){while(mn)m-=n;while(nm)n-=m;}coutmendl;return0;}输出:得分33.#includeiostream.hintmain(){char*s=12134;intk=0,a=0;while(s[k]!='\0'){if(k%2==0)a=a+(s[k]-'0'+1);elsea=a+(s[k]-'0');k++;}coutk=k,a=aendl;return0;}输出:4.#includeiostream.hintf1(inta){staticints1=1;s1*=a;returns1;}intf2(inta){autoints2=1;s2*=a;returns2;}intmain(){intsum1=0,sum2=0,i;for(i=1;i=4;i++)sum1+=f1(i);for(i=1;i=4;i++)sum2+=f2(i);coutS1=sum1,S2=sum2endl;return0;}输出:5.#includeiostream.hintf(intk){return(k0?(k*=2):f(k-2)+k);}intmain(){coutf(3)endl;return0;}输出:6.#includeiostream.hintmain(){intx=3,y[7]={1,3,5,8,9,11,12};intt=0,b=7,m;while(b=t){m=(b+t)/2;if(y[m]==x){couty[m]=y[m]endl;break;}elseif(y[m]x){b=m-1;couty[m];}else{t=m+1;couty[m];}}if(bt)cout\nNotfind!\n;return0;}输出:4三、程序填空题(本大题共2小题,每空3分,共18分)请在程序中的下划线处填空,将程序补充完整。1.下面程序执行后,按从小到大的顺序输出用0至9之间的不同的数字组成的全部三位数(从102到987共648个)。#includeiostream.hintmain(){inti,j,k,cnt=0;for(i=1;i=9;i++)for(j=0;j=9;j++)if(_____________)continue;//(1)elsefor(k=0;k=9;k++)if(____________________)//(2){cout_______________;//(3)cnt++;}coutendlcntendl;return0;}2.将从键盘上输入的十进制数(long型)以二到十六进制形式输出#includeiostreamusingnamespacestd;intmain(){charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};intc[64],base,i;longn;coutEnteranumber:;cinn;coutEnternewbase:;cinbase;i=0;do{c[i]=______________;//(1)i++;n=_________________;//(2)}while(n!=0);coutTransmitenewbase:;for(--i;i=0;--i)cout__________________;//(3)coutendl;return0;}…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………得分5四、程序编写题(本大题共3小题,每小题10分,共30分)1.数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。例如,24的数根是6,39的数根是3。编写程序,输入一个正整数,输出它的数根。2.编写函数char*huiwen(char*str)检查一个字符串str是否是回文,当字符串是回文时,函数返回字符串“yes!”;否则函数返回字符串“no!”。所谓回文即正向与反向的拼写都一样,例如:adgda。得分63.编写voidinsert(LinkList&head,intx)函数,使得下列程序运行后,输出1--2--3--4--5--6。#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;}voidinsert(LinkList&head,intx);intmain(){inta[6]={4,1,2,3,6,5},i;LinkListhead;head=NULL;for(i=0;i6;i++)insert(head,a[i]);print(head);return0;}voidinsert(LinkList&head,intx){}7…………装订线………………装订线内不要答题,不要填写信息………………装订线…………武汉理工大学考试试题答案(B卷)2016~2017学年1学期高级语言程序设计课程一、单项选择题(本大题共14小题,每小题2分,共28分)1234567891011121314ABBCDCBDCAADAC二、程序阅读题(本大题共6小题,每小题4分,共24分)1.352.73.k=5,a=144.S1=33,S2=105.26.8y[1]=3三、程序填空题(本大题共2小题,每空3分,共18分)1.(1)j==i(2)k!=i&&k!=j(3)100*i+10*j+k2.(1)n%base(2)n/base(3)b[c[i]]四、程序编写题(本大题共3小题,每小题10分,共30分)1.#includeiostream.h#includemath.hintmain(){intn,m,t;cinn;t=n;while(t=10){m=0;while(t){m=m+t%10;t=t/10;}t=m;}couttendl;return0;}82.char*huiwen(char*str){char*p1,*p2;p1=str;p2=str+strlen(str)-1;while(p1p2){if(*p1++!=*p2--)break;}if(p1=p2)return(yes!);elsereturn(no!);}3.voidinsert(LinkList&head,intx){LinkListp,q;q=newNode;q-data=x;q-next=NULL;if(head==NULL){head=q;return;}if(head-data=x){q-next=head;head=q;return;}p=head;while(p-next!=NULL&&p-next-datax)p=p-next;q-next=p-next;p-next=q;}9