1…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………姓名学号专业班级学院武汉理工大学考试试卷(B卷)2018~2019学年1学期高级语言程序设计A课程闭卷时间120分钟,56学时,3.5学分,总分100分,占总评成绩70%年月日题号一二三四五六七八九十合计任课教师满分30251530100得分一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面表格中的对应位置。错选、多选或未选均无分。1234567891011121314151.在C++中,错误的int类型的常数是A.0B.037C.0xafD.1E52.已知intx=7,y=8,z=5;则表达式(x*y/z++)的值是A.9B.9.33C.11D.11.203.与k=n++完全等价的表达式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+14.设inta=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c++:d++;后f的值是A.2B.3C.4D.55.设inta;,则语句for(a=0;a==0;a++);和语句for(a=0;a=0;a++);执行循环的次数分别是A.0,0B.1,0C.0,1D.1,16.若有定义inta[4]={1,2,3,4};则a[a[0]+2*a[2]-a[3]]等于A.1B.2C.3D.47.定义二维数组并初始化,正确的是A.inta[][]={1,2,3,4,5,6};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2,3]={1,2,3,4,5,6};8.下面有关重载函数的说法中,正确的是A.重载函数名可以不同B.重载函数必须有不同的形参列表C.重载函数形参个数必须不同D.重载函数必须具有不同的返回值类型9.在C++中,函数的形式参数是A.局部变量B.全局变量C.静态变量D.外部变量得分210.设有inta[3][2]={1,2,3,4,5,6,},(*p)[3];p=a;则*(p+1)+1代表的是A.a[0][1]+1B.&a[1]+1C.a[1][1]D.&a[1][1]11.已知函数func的原型是doublefunc(double*pd,int&ri);变量x和y的定义是doublex;inty;则正确的调用语句是A.func(x,&y);B.func(&x,y);C.func(&x,&y);D.func(x,y);12.设有定义inti=0;执行语句“while(i++5);”后,变量i的值为A.1B.5C.6D.713.设有定义inta[20];则与元素a[4]等价的表示为A.a+4B.*a+4C.*(a+4)D.*(a+16)14.设有定义inti,*p;使p指向i的赋值语句是A.p=&i;B.*p=&i;C.*p=i;D.p=*&i;15.设宏定义#defineN3#defineY(n)((N+1)*n)则执行语句cout2*(N+Y(5+1))endl;后的输出结果是A.42B.48C.54D.62二、程序阅读题(本大题共5小题,每小题5分,共25分)请将下面各程序运行后的输出结果填写在下划线处。16.#includeiostreamusingnamespacestd;intmain(){inta[3][3]={1,2,3,4,5,6,7,8,9};intn,sum=0;for(n=0;n3;n++)sum=sum+a[n][n];coutsumendl;return0;}输出:17.#includeiostreamusingnamespacestd;intmain(){intx,y,s=0,k;for(x=1;x=5;x++){k=0;for(y=1;y=x;y++)k=10*k+x;s=s+k;}coutsendl;return0;}输出:得分318.#includeiostreamusingnamespacestd;intfib(void){staticintf0=0,fl=1;intf;f=f0+fl;f0=fl;fl=f;return(f);}intmain(){inti,s=0;for(i=1;i=8;i++)s=s+fib();coutsendl;return0;}输出:19.#includeiostreamusingnamespacestd;voidprim(intm,intn){if(mn){while(m%n!=0)n++;m/=n;prim(m,n);coutn*;}}intmain(){intn=60;prim(n,2);coutendl;return0;}输出:20.#includeiostreamusingnamespacestd;#defineMAX50voidrep(char*s,char*s1,char*s2){char*p;for(;*s;s++){for(p=s1;*p&&*p!=*s;p++);if(*p)*s=*(p-s1+s2);}}intmain(){chars[MAX]=AaBbCcDd;chars1[MAX]=abc;chars2[MAX]=xyz;rep(s,s1,s2);coutsendl;return0;}4三、程序填空题(本大题共2小题,每空3分,共15分)请填空将下面的程序补充完整以实现指定的功能。要求每个空只能填写一个表达式。多余填写一律无分。21.ThisprogramistoverifyTheoremofNicoqish.Thatisthecubeofanyintegercanberepresentedasthesumofsomecontinueoddnumbers.Forexample,8^3=512=57+59+61+63+65+67+69+71.#includeiostreamusingnamespacestd;intmain(){intn,a,i;while(1){coutPleaseinputaintegertoverify(0toquit):;cinn;if(____________)break;//(1)//输出等差数列,首项为n*n-n+1,公差为2,项数为n________________;//(2)coutn*n*n=n*n*n=a;for(i=1;in;i++)cout+____________;//(3)coutendl;}return0;}22.Thisprogramistofindtherealrootoffunctioncos(x)-x=0.#includeiostream#includecmathusingnamespacestd;intmain(){floatx0,x1=0.0;while(1){________________;//(1)________________;//(2)if(fabs(x0-x1)1e-6)break;}coutTherealrootisx1endl;return0;}…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………得分5…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………姓名学号专业班级学院四、程序编写题(本大题共3小题,每小题10分,共30分)23.编写程序求1―1/3+1/5―1/7+1/9…的前100项的和。24.把一个整数的每个数位都平方后求和,又得到一个整数,我们称这个整数为:位平方和。对新得到的整数仍然可以继续这一运算过程。比如,给定整数为4,则一系列的运算结果为:16,37,58,89,....。本题的要求是,已知一个整数x,求第n步的运算结果。试编写函数intdigitSum(intx),使得程序能正确运行。#includeiostream.hintdigitSum(intx);intmain(){intx,n,i;cinxn;for(i=1;i=n;i++)x=digitSum(x);coutxendl;return0;}得分625.设单链表的结点结构如下:structnode{intdata;node*next;}试编写一个函数doubleaver(node*head)计算单链表中所有元素的平均值。7…………装订线………………装订线内不要答题,不要填写信息………………装订线…………武汉理工大学考试试题答案(B卷)2018~2019学年1学期高级语言程序设计A课程一、单项选择题(本大题共15小题,每小题2分,共30分)123456789101112131415DCACBDBBACBCCAB二、程序阅读题(本大题共5小题,每小题5分,共25分)16.1517.6035518.8719.5*3*3*2*20.AxByCzDd三、程序填空题(本大题共2小题,每空3分,共15分)21.(1)n==0(2)a=n*n-n+1(3)a+i*222.(1)x0=x1(2)x1=cos(x0)四、程序编写题(本大题共3小题,每小题10分,共30分)23.#includeiostreamusingnamespacestd;intmain(){intn,sign=1;doubles=0;for(n=1;n=100;n++){s=s+sign*1.0/n;sign=-sign;}couts=sendl;return0;}824.intdigitSum(intx){ints=0,d;while(x!=0){d=x%10;s=s+d*d;x=x/10;}returns;}25.doublefun(node*head){node*p;intn;doublesum=0.0;p=head;n=0;while(p!=NULL){n++;sum=sum+p-data;p=p-next;}returnsum/n;}9