您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 华南理工大学2012年C++试卷及答案
《高级程序设计语言C++》试卷A第1页共9页诚信应考,考试作弊将带来严重后果!华南理工大学期末考试《高级程序设计语言C++(1)》试卷A注意事项:1.考前请将试卷和答题纸密封线内各项填写清楚;2.所有答案写在答题纸上,否则无效;3.试卷和答题纸同时提交;4.考试形式:闭卷;5.本试卷共五大题,满分100分,考试时间120分钟。题号一二三四五总分得分评卷人一、单项选择题(每小题2分,共22分1.表达式65/10*2.0+100%3的结果为(D)。(A)14(B)12(C)1(D)132.设变量定义intx=10,y,z;执行语句y=z=x--;y=x==z;后变量y的值是(A)。(A)0(B)1(C)9(D)103.下面for语句执行时循环次数为(B)。inti,j;for(i=0,j=3;i=j;){coutijendl;i++;j--;}(A)0(B)3(C)10(D)无限4.下列不合法的标识符名称是(B)。(A)word(B)continue(C)cpp(D)_ab5.假定有以下说明语句,则下面引用形式错误的是(B)。structStudent{charsno[20];doublescore;};Studentstu[3]={{“201011111”,80},{“201011112”,75},{“201011113”,91}},*p=stu;(A)p-sno;(B)(p++).sno;(C)(p++)-sno;(D)(*p).sno;_____________________…姓名学号学院专业座位号(密封线内不答题)……………………………………………………密………………………………………………封………………………………………线……………………………………线………………………………………《高级程序设计语言C++》试卷A第2页共9页6.已知inti=1;int*Ptr1,*Ptr2;下面哪条语句不合法(C)。(A)Ptr1=&i;(B)Ptr1=Ptr2;(C)Ptr1=0x1234;(D)Ptr1=NULL;7.已知char*s1=123,*s2=34;coutstrcmp(s1,s2);的输出结果为(D)。(A)true(B)false(C)1(D)-18.设已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是(C)。(A)outfile.write((double*)&data,sizeof(double));(B)outfile.write((double*)&data,data);(C)outfile.write((char*)&data,sizeof(double));(D)outfile.write((char*)&data,data);9.已知intA=50;int*constiA=&A;constintB=80;constint*iB=&B;下面哪条语句不合法(B)。(A)*iA=200;(B)iA=&B;(C)iB=&A;(D)iB=iA;10.若有定义语句:inta[2][3],*p[3];则以下语句中正确的是(C)。(A)p=a;(B)p[0]=a;(C)p[0]=&a[1][2];(D)p[1]=&a;11.有函数原型voidfun(int*);已知inta=10;int*x=&a;下面选项中,正确的调用是(A)。(A)fun(x);(B)fun(*x);(C)fun(&x);(D)fun(*a);二、简答题(共15分)1、(3分)设有说明inta[6]={0},*b;这段代码运行时总共需要分配给数据多少内存空间?请分析并说明。(假定运行在32位的windows系统环境下)28字节2、(3分)已知char*a[]={you,are,a,student,right};则cout*(a+3);的显示结果是?student3.(3分)语句coutsetfill(‘%’)setw(6)3456;的输出结果是?%%34564、(3分)有如下代码intmain(){charstr[10];cinstr;coutstr;}如果输入的字符串为“southchina”,那么输出结果是什么,请解释这种结果的原因。south《高级程序设计语言C++》试卷A第3页共9页5、(3分)下面代码存在什么问题,请指出并改正。intmain(){int*p=NULL;p=newint(50);if(p==NULL){coutallocationfaiure\n;return1;}cout*p;}new动态生成的对象没有释放会造成内存泄露问题,需要在最后加上deletep;三、读程序写结果(共6题,每题4~5分,共28分)1、(4分)。#includeiostreamusingnamespacestd;intmain(){intm=75,n=35,a,b,r;if(mn){a=m;b=n;}else{a=n;b=m;}r=b;while(r!=0){r=a%b;a=b;b=r;}coutaendl;}52、(4分)。#includeiostreamusingnamespacestd;intmain(){inta[9];int*p=a,sum=0;for(inti=0;i9;i++){a[i]=i+4;}for(;pa+9;p++)if(*p%2==0)sum+=*p;coutsum=sumendl;}sum=40《高级程序设计语言C++》试卷A第4页共9页3、(5分)。#includeiostreamusingnamespacestd;voidfunc(int,int&,int*);voidmain(){intx=10,y=20,z=30;func(1,x,&z);coutx''y''zendl;func(2,z,&y);coutx''y''zendl;}voidfunc(inta,int&b,int*c){b+=a;*c=b-a;}4、(5分)。#includeiostreamusingnamespacestd;voidprint(intw){inti;if(w){print(w-1);for(i=1;i=w;i++)coutw;coutendl;}}voidmain(){print(3);}《高级程序设计语言C++》试卷A第5页共9页5、(5分)。#includeiostreamusingnamespacestd;intf(charp[]){ints=0,n;n=sizeof(p)/sizeof(char);for(inti=0;in;i++){s+=(p[i]-'A');}returns;}intmain(){charap[]=ABCDEF;intsum=f(ap);coutsumendl;}66、(5分)。#includeiostreamusingnamespacestd;structemployee{charname[20];charsex;};voidfun(employee*p){if((*p).sex=='f')coutp-name','(*p).sexendl;}intmain(){employeeemp[5]={liming,'m',wangxiaoping,'f',luwei,'m',lixiaohong,'f'};inti;for(i=0;i5;i++)fun(emp+i);}《高级程序设计语言C++》试卷A第6页共9页四、读程序填空(每空2分,共20分)1.下面程序的功能是:用选择法从大到小排序。请将程序补充完整。#includeiostreamusingnamespacestd;voidsort(int[],int);intmain(){inti,a[10]={41,72,18,9,7,46,80,34,25,13};(1);//调用排序函数//sort(a,10)for(i=0;i10;i++)couta[i];coutendl;}voidsort(int*x,intn){intmax,t;for(inti=0;in-1;i++){t=i;for(intj=i+1;jn;j++)if(x[j]x[t])(2);//t=jif(t!=i){(3);//max=x[i]x[i]=x[t];x[t]=max;}}return;}2.下面程序的功能是:把文件d:\test复制到文件d:\testnew中。请将程序补充完整。#includeiostream#includefstreamusingnamespacestd;intmain(){charch;(4);//ifstreamf1(“d:\\test”);《高级程序设计语言C++》试卷A第7页共9页if(!f1){coutcannotopen'test'forinput.;return0;}ofstreamf2(d:\\testnew);if(!f2){coutcannotopentestnewforouput.;return0;}while(!f1.eof()&&f1.get(ch))f2.put(ch);(5);//f1.close()f2.close();coutItisover!\n;}3.以下程序的功能是:判断一个字符串是否是回文,是输出“yes”,否则输出“no”.(回文是字符串正读反读一样,如abcba)#includeiostream#includecstringusingnamespacestd;intmain(){inti,j,length;chara[100];cina;(6);//length=strlen(a)for(i=0,j=length-1;ij;(7),(8))//i++,j--if(a[i]!=a[j])break;if(i=j)coutyes;elsecoutno;}4.下面程序的功能是:输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3和5。#includeiostreamusingnamespacestd;intmain(){intm,i=2;coutpleaseinputm:;cinm;while(i=m)if((9))//!(m%i){couti,;(10);//m=m/i}elsei++;《高级程序设计语言C++》试卷A第8页共9页}五、编程题(共15分)1.(7分)设计程序,输出所有各位数字之和等于7的三位数,每行显示10个数。运行效果如下图所示。#includeiostreamusingnamespacestd;intmain(){inti,n=0;cout各位数之和等于的位整数:\n;for(i=100;i1000;i++)if(i%10+i/10%10+i/100==7){couti;n++;if(n%10==0)coutendl;}coutendl;}2.(8分)补全下面程序,使程序的运行结果如下图所示。任务:(1)给出函数原型;(2)写出stringcopy函数的实现代码,以实现字符串拷贝功能.要求:在实现stringcopy函数过程中不能调用任何其他函数。#includeiostreamusingnamespacestd;voidstringcopy(char*,char*);//函数原型voidmain(){charstr[20];stringcopy(str,Iamastudent.);coutstrendl;}voidstringcopy(char*s1,char*s2){inti=0;while(s2[i]!='\0')《高级程序设计语言C++》试卷A第9页共9页{s1[i]=s2[
本文标题:华南理工大学2012年C++试卷及答案
链接地址:https://www.777doc.com/doc-1838399 .html