1…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………学院专业班级学号姓名武汉理工大学考试试卷(A卷)2012~2013学年1学期高级语言程序设计课程时间120分钟64学时,4学分,闭卷,总分100分,占总评成绩70%年月日题号一二三四五六合计满分201010201030100得分一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面表格中的对应位置。错选、多选或未选均无分。123456789101.在C++中,合法的字符常量是A.‘\084'B.‘\x43'C.‘ab'D.“\0”2.C++中,运算符″=″和″==″的功能分别是A.都是关系运算B.都是赋值运算C.关系运算和赋值运算D.赋值运算和关系运算3.若有变量inta;floatb,c;在系统自动转换后,表达式12+c*b+a+’x’值的数据类型为A.charB.doubleC.floatD.int4.设inta=2,b=5;,结果为0的表达式是A.a%bB.a&bC.a=bD.a!=b5.设intm=5;,语句while(m==0)coutm-=2;的循环体执行的次数是A.0B.1C.2D.无限6.设intb[][5]={1,2,3,4,5,6,7};,则元素b[1][2]的值是A.0B.2C.6D.77.设charx[][10]={Win,dos,unix};,执行coutx[1][2];后输出的结果是A.nB.iC.oD.s8.下列关于C++函数的叙述中,正确的是A.每个函数至少要具有一个参数B.每个函数都必须返回一个值C.函数在被调用之前必须先声明D.函数不能自己调用自己得分29.若变量已正确定义并且指针p已经指向变量x,则*&x相当于A.&xB.&*pC.xD.p10.若有定义:inta[5];则a数组中首元素的地址可以表示为A.aB.a+1C.&aD.&a[1]二、填空题(本大题共5小题,每空1分,共10分)请在每小题的空格中填上正确答案,错填、不填均无分。1.C++编译系统在处理布尔型数据时,将false处理为________,将true处理为________。2.在一个函数中直接或间接地调用函数本身,则称该函数为________函数,该调用称为__________调用。3.全局变量的有效范围是从___________________开始到__________________结束。4.在C++中,用户存储区域除了代码区、全局数据区,还有____________和____________。5.若有定义:charch[]=”abcde”,则strlen(ch)的值为____________,数组ch在内存占用的空间为____________个字节,三、判断题(本大题共5小题,每小题2分,共10分)下面的说法正确的在题号前括号内打“√”;错误的打“x”。()1.不同类型的指针变量只能赋予相应类型的地址表达式。()2.在函数之外定义的变量称为外部变量。()3.C++中的变量名是不区分大小写的。()4.在设置了参数默认值后,调用函数的对应实参必须省略。()5.当引用作为函数的形参时,调用函数的实参必须是变量名或对象名。四、程序阅读题(本大题共4小题,每小题5分,共20分)请将下面各程序的输出填写下划线处。1.#includeiostreamusingnamespacestd;intmain(){inta[10]={1,2,3,4,5,6,7,8,9,10};int*p,s=0;for(p=a;pa+10;p++)if(*p%2==0)s=s+(*p);coutsendl;return0;}输出:得分得分得分32.#includeiostream.hintmain(){inta[3][4]={{1,3,-5,7},{2,4,-6,8},{10,-20,25,-30}};intt,i,j;t=a[0][0];for(i=0;i3;i++)for(j=0;j4;j++)if(ta[i][j])t=a[i][j];couttendl;return0;}输出:3.#includeiostreamusingnamespacestd;intfun(intx){staticinty=1;intz=2;y=y+1;z=z+2;returnx+y+z;}intmain(){inti,s=0;for(i=1;i=3;i++)s=s+fun(i);coutsendl;return0;}输出:4.#includeiostream.hintmain(){inti;charstr1[10]=abcde,str2[10];for(i=0;str1[i]!='\0';++i)if(str1[i]='a'&&str1[i]='z')str2[i]=str1[i]-'a'+'A';str2[i]='\0';coutstr2endl;return0;}输出:4五、程序填空题(本大题共2小题,每空2分,共10分)请在程序中的下划线处填空,将程序补充完整。1.猴子吃桃问题:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子共摘了几个桃子?#includeiostreamusingnamespacestd;intmain(){intday,x1,x2;day=9;x2=1;while(day0){x1=2*(x2+1);_____________;//(1)_____________;//(2)}coutTotal=x1endl;return0;}2.求符合下列条件的四位数中最大..的一个数。条件为:它的千位数字与十位数字之和等于百位数字与个位数字之积,例如,3136,3+3=1*6,故3136是符合条件的一个四位数。#includeiostream#includecmathusingnamespacestd;intmain(){inti,a,b,c,d;for(i=9999;i=1000;i--){a=_____________;//(1)b=(i-a*1000)/100;c=(i-a*1000-b*100)/10;d=i%10;if(_____________)//(2){coutiendl;_____________;//(3)}}}…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线…………得分5六、程序编写题(本大题共3小题,每小题10分,共30分)1.从键盘上输入20个整数,求其中正数的累加和并输出结果。2.编写一个递归函数....voidinvert(inta[],intk),将指定数组a中的前k个元素逆置。得分63.设单链表的结点结构如下:structnode{intdata;node*next;}试编写一个函数intcount(node*head,intx)统计单链表中data值为x的结点个数。7…………装订线………………装订线内不要答题,不要填写信息………………装订线…………武汉理工大学考试试题答案(A卷)2012~2013学年1学期高级语言程序设计课程一、单项选择题(本大题共10小题,每小题2分,共20分)12345678910BDBBAADCCA二、填空题(本大题共5小题,每空1分,共10分)1.012.递归递归3.定义变量的位置源程序文件4.堆区栈区5.56三、判断题(本大题共5小题,每小题2分,共10分)1.(√)2.(x)3.(x)4.(x)5.(√)四、程序阅读题(本大题共4小题,每小题5分,共20分)1.302.253.274.ABCDE五、程序填空题(本大题共2小题,每空2分,共10分)1.(1)x2=x1(2)day—(或day=day-1)2.(1)i/1000(2)a+c==b*d(3)break六、程序编写题(本大题共3小题,每小题10分,共30分)1.#includeiostream.hintmain(){inti,x,sum;sum=0;for(i=1;i=20;i++){cinx;if(x0)sum+=x;}coutSum=sumendl;return0;}82.voidinvert(inta[],intk){intt;if(k1){invert(a+1,k-2);t=a[0];a[0]=a[k-1];a[k-1]=t;}}(注:如果写成非递归函数,最多给5分)3.intcount(node*head,intx){inti=0;node*p;p=head;while(p!=NULL){if(p-data==x)i++;p=p-next;}returni;}9