您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 南开大学08-09_一_C++试卷_A卷_
2008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第1页(共9页)南开大学理科《面向对象程序设计2-1》2008级期末考试试卷(A卷)2009年1月任课教师______学院________系别(班级)_________姓名________学号_______一、单项选择(每空1分,共20分)(注意选项填写到下面表格中!)1.将小写字母n赋值给字符变量one_char,正确的操作是()A)one_char='\n';B)one_char=n;C)one_char=110;D)one_char='N';2.已知:charch=049;coutch;将在屏幕输出()A)49B)1C)41D)程序报错3.已知:intx=2;则cout(x2);的输出结果为()A)4B)8C)0D)14.在C++语言中,自定义的标识符()A)能使用关键字并且不区分大小写B)不能使用关键字并且不区分大小写C)能使用关键字并且区分大小写D)不能使用关键字并且区分大小写5.判断字符变量c不是字母的逻辑表达式为()A)c='a'&&c='z'||c='A'&&c='Z'B)c'a'||c='z'&&c'A'||c'Z'C)c'A'||c'z'D)!(c='a'&&c='z'||c='A'&&c='Z')6.下列语句正确的是()A)charstr[4]={word};B)charstr[4]={'w','o','r','d','\0'};C)charstr[6]=wo\0rd;D)charstr[5];str=word;7.已知:inta=10,*p=&a;则p的值为()A)10B)a的值C)a的地址D)随机值8.下列语句正确的是()A)inta,*p;*p=&a;B)inta,*p;p=&a;题目一二三四卷面成绩分数得分12345678910111213141516171819202008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第2页(共9页)C)inta,*p;&a=p;D)inta,*p;a=*p;9.已知定义:inta[5],*p;则下列描述错误的是()A)表达式p=p+1是合法的B)表达式a=a+1是合法的C)表达式p-a是合法的D)表达式a+2是合法的10.下列程序段执行后,x的值为()x=0;for(i=0;i90;i++)if(i)x++;A)0B)30C)89D)9011.一个指针类型的变量占用内存的字节数是()A)1B)4C)8D)由指向地址的类型决定12.当函数定义时指定的函数返回值类型为void时,表示()A)函数没有返回值B)函数肯定没有return语句C)函数肯定含有return;D)函数返回任意类型的值13.函数原型中,不必要给出的是()A)函数参数的类型和参数名B)函数名C)函数的类型D)函数体14.一个函数的参数的默认值应该在()中给出A)函数定义B)函数原型C)函数定义或原型D)函数调用15.下列关于函数的描述正确的是()A)函数必须要有参数和返回值B)函数体中只能含有一条return语句C)函数通过return语句至多能够返回一个值D)函数必须定义在先,调用在后16.关于内联函数的描述错误的是()A)函数定义或函数原型前加上关键字“inline”,该函数成为内联函数B)内联函数一般是一个小函数C)内联函数在编译时进行内联置换,减少了调用的开销D)内联函数在运行时仍然被调用17.有关函数的形参和实参描述错误的是()A)函数调用时,实参的值传递给相应的形参,形参在函数体内的改变并不影响实参B)因为可以设定函数的默认参数值,所以调用函数时,实参的个数可以少于形参C)调用重载函数时,根据参数的不同决定去调用哪一个重载函数D)实参是数组名时,表示将数组的所有元素的值都传递到了函数中18.下面程序段的输出结果为()for(inti=4;i=10;i++){if(i%3!=0)continue;couti;}A)45B)457810C)69D)456789102008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第3页(共9页)19.已知:char*s=abcde;则couts+2;输出为()A)abcdeB)cdeC)cD)abc20.已知:char*s=abcde;则cout*(s+2);输出为()A)abcdeB)cdeC)cD)abc二、填空题(每空1分,共20分)(注意将结果填写到下面相应横线上!)①②③④⑤⑥⑦⑧⑨⑩⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇1.已知:char*p=abcde;chars[10]=abcde;则strlen(p)的值为①,strlen(s)的值为②,sizeof(s)的值为③,sizeof(abcde)的值为④2.已知:intx=10;则表达式50=x=100的值为⑤3.已知:intx=15;couthexxendloctxendldecxendl;输出为⑥,⑦,⑧。4.已知:intx=-15;couthexxendl;输出为⑨。5.已知:int*p;为p动态分配内存且为该内存赋值为整数10的语句是:⑩。6.具有相同函数名但参数表不完全相同的函数称为⑾。7.已知:voidfun(inta,intb=2,intc=3){coutabc;}则执行语句fun(2,3)会输出⑿。8.已知:inta[10],*p=a;则a[i]还可以表示为⒀,⒁,⒂。9.C++源程序的扩展名是.cpp,经过⒃生成目标文件的扩展名是⒄,再经过⒅生成可执行程序,最终执行的是.exe文件。10.已知:chara[7]=abcedf,b[4]=123;strcpy(a,b);则couta;输出为⒆,couta[4];输出为⒇。三、读程序写结果(每空3分,共30分)(注意将结果写在下面相应横线上!)①②③④⑤⑥⑦⑧⑨⑩1.写出下面程序的运行结果。#includeiostream.hvoidmain()得分得分2008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第4页(共9页){intx=5,y,k;floatz=15,w;y=x++;w=z/y+7%x;k=x||w++;coutw=wendl;coutk=kendl;}运行结果为:___①______②___2.写出下面程序的运行结果。#includeiostream.hintf(intn){if(n==1||n==2)return2;elsereturnf(n-1)+f(n-2);}voidmain(){inti,j=0;for(i=4;i6;i++){j+=f(i);coutj=jendl;}}运行结果为:___③④3.写出下面程序的运行结果。#includeiostream.hintfun(int*s,intt,int*k){inti;*k=0;for(i=0;it;i++)if(s[*k]s[i])*k=i;returns[*k];}voidmain(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun(a,10,&k);2008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第5页(共9页)couta[k]=a[k]endl;}运行结果为:⑤4.写出下面程序的运行结果。#includeiostream.hdoublefun(doublea,doubleb,charc='*'){doubled;switch(c){case'+':d=a+b;break;case'-':d=a-b;break;case'*':d=a*b;break;case'/':d=a/b;break;}returnd;}voidmain(){doubled=1.0;d-=fun(fun(2.5,3.5,'+'),fun(3,5),'/');coutd=dendl;}运行结果为:___⑥5.写出下面程序的运行结果。#includeiostream.hvoidmain(){inta,p=1,s=0;for(a=1;a=5;a++){p=p*a;s=s+p;}coutp=pendl;couts=sendl;}运行结果为:⑦⑧6.写出下面程序的运行结果。2008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第6页(共9页)#includeiostream.hvoidmain(){voidf(int,int);intx=1,y=2;f(x,y);coutx,yendl;}voidf(intx,inty){intz=x;x=y;y=z;coutx,yendl;}运行结果为:⑨⑩四、程序填空(每空3分,共30分)(注意将结果写在下面相应横线上!)①②③④⑤⑥⑦⑧⑨⑩1.下面函数fun()的功能是返回二维数组中大于本行平均值的所有元素之和。#includeiostream.hdoublefun(①){doublesum2=0.0;for(inti=0;i5;i++){得分2008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第7页(共9页)doublesum1=0.0;intj=0;for(j=0;j5;j++)sum1+=B[i][j];sum1/=5;for(j=0;j5;j++)if(②)sum2+=B[i][j];}returnsum2;}voidmain(){doubleA[5][5]={{4431.3,45.56,5697.65,768.678,122.45},{444.4,34.545,5667.656,2548.678,1562.45},{537.3,655.5456,5677.65,7168.678,1242.45},{134.3,454.5486,5637.65,7687.678,1322.45},{189.3,445.5786,5677.65,7528.678,142.45}};coutfun(A)endl;}2.冒泡法从小到大排序,第一轮最小的元素向上“浮”到最上面,第二轮次小的元素“浮”到最小元素的后面,依次类推。//一维数组气泡排序#includeiostream.hvoidmain(){inta[5]={55,2,6,4,32},i,temp;for(intpass=0;pass4;pass++){for(i=4;③;i--)if(④){temp=a[i];a[i]=a[i-1];a[i-1]=temp;}}for(i=0;i5;i++)couta[i],;}3.对二维数组a[4][4],求出下三角元素的和(包括对角元素),并输出结果。#includeiostream.hvoidmain(){2008-2009第一学期《面向对象程序设计2-1》期末试卷(A卷)A卷第8页(共9页)doublea[4][4]={{10,11,12,13},{20,21,22,23},{30,31,32,33},{40,41,42,43}};inti,j;doubles=0;for(i=0;i4;i++)for(j=0;⑤;j++)⑥;cout”s=”sendl;}4.根据需要,从键盘输入n值,为n个元素组成的整型数组动态分配存储空间,从键盘输入元素值后,逆序重排,最后将重排后的元素值输出。#includeiostream.h#includestdlib.h#includeiomanip.hvoidmain(){intn,i,t;coutinputn:;cinn;int*p;⑦;//为数组分配存储空间for(i=0;in;i++)cinp[i];for(i=0;⑧
本文标题:南开大学08-09_一_C++试卷_A卷_
链接地址:https://www.777doc.com/doc-2608313 .html