第1页共6页南京信息工程大学滨江学院2011─2012学年第一学期面向对象程序设计课程试卷(期中卷)注意:1、本课程为必修(表明必修或选修),学时为51,学分为32、本试卷共10页;考试时间120分钟;出卷时间:2011年11月3、姓名、学号等必须写在指定地方;考试时间:2011年11月日4、本考卷适用专业年级:网络工程、实验班任课教师:李振宏(以上内容为教师填写)专业年级班级学号姓名题号一二三四五六七八九十十一十二总分得分阅卷人请仔细阅读以下内容:1、考生必须遵守考试纪律,本人已经阅读并清楚了解《南京信息工程大学滨江学院考试纪律规定》。2、所有考试材料不得带离考场。3、考生进入考场后,须将学生证或身份证放在座位的左上角。4、考场内不许抽烟、吃食物、喝饮料。5、考生不得将书籍、作业、笔记、草稿纸带入考场,主考教师允许带入的除外。6、考试过程中,不允许考生使用通讯工具。7、开考15分钟后不允许考生进入考场,考试进行30分钟后方可离场。8、考生之间不得进行任何形式的信息交流。9、除非被允许,否则考生交卷后才能离开座位。10、考试违纪或作弊的同学将被请出考场,其违纪或作弊行为将上报学院。本人郑重承诺:我已阅读上述10项规定,如果考试时违反了上述10项规定,本人将自愿接受学校按照有关规定所进行的处理。上面姓名栏所填姓名即表示本人已阅读本框的内容并签名。第2页共6页一、选择题(每2.5分,共75分)(1)下列关于C++关键字的说法中正确的是DA)关键字是用户为程序中各种需要命名的元素所起的名字B)关键字是对程序中的数据进行操作的一类单词C)关键字是在程序中起分割内容和界定范围作用的一类单词D)关键字是C++中预先定义并实现一定功能的一类单词(2)下列关于C++函数的描述中正确的是BA)主函数是程序的入口,它由用户定义的函数调用B)函数在调用之前必须先被声明C)每个用户定义的函数只能被其他函数调用一次D)函数是C++中面向对象程序设计框架的基本组成单元(3)C++语言中运算对象必须是整型的运算符是AA)%=B)/C)=D)=(4)在C++语言中,退格符是DA)\nB)\tC)\fD)\b(5)有如下程序段D#includeiostream.hvoidmain(){inta=14,b=15,x;charc=′A′;x=(a&&b)&&(c′B′);coutx;}执行该程序段后,x的值为A)tureB)falseC)0D)1(6)#includeiostream.hvoidmain(){intn=9;while(n6){n--;第3页共6页coutn;}}该程序的输出结果是BA)987B)876C)8765D)9876(7)如下程序的执行结果是A#includeiostream.hvoidmain(){staticinta[]={1,7,3,9,5,11};int*p=a;*(p+3)+=4;cout*p,*(p+3);}A)1,13B)1,16C)3,13D)1,14(8)下面说明不正确的是DA)chara[10]=china;B)chara[10],*p=a;p=china;C)char*a;a=china;D)chara[10],*p;p=a=china;(9)下列程序的输出结果是C#includeiostream.hvoidmain(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;couty*dendl;}A)3B)3.2C)0D)3.07(10)有以下程序#includeiostream.hintf(intn){if(n==1)return1;elsereturnf(n-1)+1;}第4页共6页voidmain(){inti,j=0;for(i=1;i3;i++)j+=f(i);coutj;}程序运行后的输出结果是BA)4B)3C)2D)1(11)C++语言中类的定义的结束声明的符号是AA)}B),C);D){(12)关于类定义中的语句错误的是BclassA{inti;Aa;A*b;char*ch;};A)inti;B)Aa;C)A*b;D)char*ch;(13)执行下面的程序段后,变量k中的值为A#includeiostream.hvoidmain(){intk=3,s[2];s[0]=k;k=s[1]*10;coutk;}A)不定值B)33C)30D)10(14)关于语句#includeiostreamusingnamespacestd;voidmain(){cout100.8989663′′;coutfixed100.8989663′′;coutscientific100.8989663′′;}第5页共6页的输出结果为AA)100.899100.8989661.008990e+002B)100.8989663100.8989661.008990e+002C)100.899100.8989661.008989e+002D)100.899100.89896631.008989e+002(15)以下程序的结果是D#includeiostream.hvoidmain(){char*p=abcdefgh,*r;long*q;q=(long*)p;q++;r=(char*)q;coutrendl;}A)defgB)cdefC)ghabD)efgh(16)以下程序的输出结果是A#includeiostream.hvoidmain(){charc=′z′;coutc-25;}A)97B)ZC)z-25D)z(17)有以下程序#includeiostream.hstructSTU{charnum[10];floatscore[3];};voidmain(){structSTUs[3]={{20021,90,95,85},{20022,95,80,75},{20023,100,95,90}},*p=s;inti;floatsum=0;第6页共6页for(i=0;i3;i++)sum=sum+p-score[i];coutsum;}程序运行后的输出结果是BA)260B)270C)280D)285(18)下面程序段中,for循环的执行次数是Bchar*s=\ta\018bc;for(;*s!=′\0′;s++)cout*;A)9B)5C)6D)7(19)下列程序的运行结果是A#includeiostream.hvoidfun(int*a,int*b){int*k;k=a;a=b;b=k;}voidmain(){inta=2004,b=9,*x=&a,*y=&b;fun(x,y);coutabendl;}A)20049B)92004C)00D)编译时出错(20)以下程序的输出结果是D#includeiostream.hintf(){staticinti=0;ints=1;s+=i;i++;returns;}voidmain(){inti,a=0;for(i=0;i5;i++)a+=f();couta;}第7页共6页A)20B)24C)25D)15(21)以下C++语言中用于单行注释的是AA)//B)/*C)*/D)|(22)在32位的计算机中,一个char型数据所占的内存长度的字节是BA)4B)1C)2D)8(23)若变量已正确定义并赋值,以下符合C++语言语法的表达式是BA)a:=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b(24)有如下程序:A#includeiostream.hvoidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}couta=a,b=b;}该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2(25)有以下程序C#includeiostream.hvoidmain(){inti=1,j=1,k=2;if((j++||k++)&&i++)couti,j,k;第8页共6页coutendl;}执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3(26)若有说明inta[3][4];,则a数组元素的非法引用是DA)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4](27)若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是DA)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point(28)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是BA)函数调用可以作为独立的语句存在B)函数调用可以无返回值C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参(29)若运行时给变量x输入12,则以下程序的运行结果是A#includeiostream.hvoidmain(){intx,y;cinx;y=x12?x+10:x-12;couty;coutendl;}A)0B)22C)12D)10(30)以下类定义中可能会引起错误的语句是DclassA{public:~A(){}//1inti;//2private:intj;//3第9页共6页A(inti){i++;}//4};A)1B)2C)3D)4二、填空题(共25分)(1)C++语言标识符是以字母或【1】下划线开头的,由字母,数字和下划线组成的字符串。(2)在内存中,存储字符′X′要占用1个字节,存储字符串″X″要占用【2】2个字节。(3)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。intmystrlen(char*str){inti;for(i=0;【3】str[i]!=′\0′;i++);return(i);}(4)以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。#includeiostream.hvoidfun(int*s,intt,int*k){inti;*k=0【4】;【5】for(i=1;it;i++)if(s[*k]s[i])*k=i;}voidmain(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun(a,10,&k);coutk,a[k];}(5)如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是【6】成员对象。(6)请在mian函数中填空使下面程序的输出结果为11。#includeiostream.hclassA{private:inta;第10页共6页intb;public:A():a(0),b(1){}voidshow(){coutab;}};classB{private:inta;intc;public:B():a(1),c(1){}voidshow(){coutac;}};classC:publicA,publicB{};voidmain(){Ccc;【7】cc.B::show();}(7)C++在重载运算符中,如用成员函数重载一元运算符参数表中需要【8】0个参数,如用友元函数重载一元运算符参数表中需要【9】1个参数。(8)以下程序的输出结果是【10】16。#includeiostream.hvoidmain(){inta=0;a+=(a=8);couta;}(9)以下程序的执行结果为acdb【11】。#includeiostream.hclassA{public:A(){couta;}~A(){coutb;}};第11页共6页classB:publicA{publ