西南交大历年C++期末试题.doc_第1页
西南交大历年C++期末试题.doc_第2页
西南交大历年C++期末试题.doc_第3页
西南交大历年C++期末试题.doc_第4页
西南交大历年C++期末试题.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

历 年 期 末 试 题C + +2007-2008C+期末试题一选择题(10小题,每题3分)1. 程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分 B)变量成分C)语句成份D)传输成分2. 以下各选项组中,均是C+语言关键字的组是 A) public operator thisB)shod string staticC)it whileD)private cout printf3. C+语言的跳转语句中,对于break和continue说法正确的是()A)break语句只应用与循环体中B)continue语句只应用与循环体中C)break是无条件跳转语句,continue不是D)break和continue的跳转范围不够明确,容易产生问题 4. for(intx=,y=o;!x&y=5;y+)语句执行循环的次数是()A)B)C)D)无次数 5. 下面程序错误的语句是#includevoid main()int*pnew int1;p=9;cout *pn为true或mn&mnB)switch语句结构中必须有default语句C)if语句结构中必须有else语句D)如果至少有一个操作数为true,则包含“”运算符的表达式为true 7. 下列语句中不是死循环的是A)int i10; B)for( int i1:i=0): 8. 下面对静态数据成员的描述中,正确的是A)静态数据成员是类的所有对象共享的数据B)类的每个对象都有自己的静态数据成员C)类的不同对象有不同的静态数据成员值D)静态数据成员不能通过类的对象调用 9. 下面关于数组的描述错误的是A)在C+语言中数组的名字就是指向该数组第一个元素的指针B)长度为n的数组,下标的范围是0-n-1C)数组的大小必须在编译时确定D)数组只能通过值参数和引用参数两种方式传递给函数 10. 以下程序中,错误的行是 #include class A public: int n2: A( int val)coutvalendl; A(); ; void main() A a(0); A) B) C) D) 二写出下列程序运行结果(四小题,每题5分) 1. #incudeintf(int);intmain()inti;for(i=0;i5;i+)coutF(I)0;i-)k+=i;returnk; 2. #include void fun(int*a,int*b) int x=*a *a=,b;*b=x; cout*a*b” ”; void main() int x1,y=2; fun(&x,&y); coutxyendl; 3. #includevoid main(void) int i,j,n=4; for(i=1;i=n;i+) for(j=1;j=30;j+) cout ; for(j=1; j= 2*(n-i) ;j+) cout ; for(j=1; j=2*i-1 ;j+) if (j=1|j=2*i-1) cout*; else cout ; coutendl; for(i=1;i=n-1;i+) for(j=1;j=30;j+) cout ; for(j=1; j=7-2*i ;j+) if(j=1|j=7-2*i) cout*; else cout ; coutendl; 4. void main()int i,j,n; coutn; for(i=1;i=n;i+) for(j=1;j=i;j+) coutsetw(2)i; for(j=i+1;j=n;j+) coutsetw(2)j; coutendl;5. #include void main()void fun(int*,int*);int a=5,b=8;while(a!=b)fun(&a,&b);coutatb=*pb)*pa-=*pb;else*pb-=*pa; 6. #include void main()char *p; int i; int len(char *ptr); p=asdfghjkl9876; i=len(p); coutlength of p is iendl;int len(char *ptr) int i; for(i=0;*ptr+!=0;i+) ; return(i);三编写程序1.求Fibonacci数列的第n项及前n项之和。2. S是一家小型园林公司的老板,他需要创建一个 程序使其销售人员能够算出铺设草坪的费用。作为一家围栏公司的老板,J也需要一个程序,可以计算出安装围栏的费用。20062007 C期末试题一、填空(每空2分,共20分) 1.C+源程序文件扩展名为_。2.unsigned long 型数据占_字节存储空间。3.执行语句coutd:datac+test.exe;后,输出结果是_。4.表达式8|3的结果是_。5.全局变量和_若在定义时未进行初始化,则自动初始化为0。6.将s初始化为值是Hello!的指针常量,初始化语句是_。7.类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问属性_。8.定义输出文件流f,并以追加数据方式打开相应文件a:aaa.dat,定义f的语句是_。9.设文件f.cpp中的一个函数要访问在另一个文件中定义的int型变量x,则在f.cpp中x应定义为_。10.函数模板的说明格式是:template_函数定义。二、单项选择题(每空2分,共20分)1.类型修饰符unsigned修饰( )类型是错误的。 A char B int C long int D float2.下列变量名中,( )是合法的。 A _var B bye-bye C int D 123_cc3.设int a=3,* p=&a;,则*p的值是( )。 A 变量a的地址值 B 无意义 C 变量p的地址值 D 34.设int m=0;,下列表示引用的方法中,( )是正确的。 A int &x=m; B int &y=10; C int &z; D float &t=&m5.循环for(int i=0,x=0;!x&i=5;i+);的循环体执行次数是( )。 A 5 B 6 C 1 D 无限 6.磁盘文件操作时,在打开磁盘文件的访问方式中,( )是以追加数据 方式打开文件的。 A in B out C app D ate7.类X中,若没有定义构造函数,则默认的构造函数是( )。 A X ( ) B X (X & x) *this=x; C X ( ) D 不存在8.设int * p2=&x,* p1=a;*p2=*b;则变量a和b的类型分别是( )。 A int和int B int * 和int C int和int * D int * 和int *9.设p为指针变量,则以下表达式正确的是( )。 A -p+ B -+p C -(p+5) D (p-5)+ 10.设void f1(int &x,char * p);int m;char s =c+;以下调用合法的是( )。 A f1(&m,&s); B f1(&m,s); C f1(m,s); D f1(m,&s);三、回答问题(每题5分,共15分)1.设int a34;double b345; 请写出数组指针pa和pb的定义,使其分别与数组名a和b等价。2.设int f1(int n,char * s);char * f2(int n,char * s);3.请初始化一维指针数组week。其初值表初值为Sun,Mon,Tue,Wed,Thu,Fri和Sat。 4.要使语句p1=new int(10) ;p2=new double 10;能正常执行,写出p1和p2的定义。 5.设有int f1(int n)n+=2;return n*n; int f2(int &n)n+=2;return n*n; 执行 int m=5,n=3; m=f1(n);coutm nendl; m=f2(n);coutm nendl; 写出结果。四、(每题10分,共20分)1.写出下列程序的执行结果。 # include void main() int i=1,j=2,k=3,a=10; if (!i) a-; else if(j) if(k) a=5; else a=6; a+; coutaendl; if(ij) if(i!=3) if(!k) a=1; else if(k) a=5; a+=2; coutaendl; 2.设a盘上文本文件aaa.dat中保存有0至100之间的所有奇数,下列程序将全部数据及其和输出至屏幕上,请将程序补充完全。 # include # include _ void main(void) _ f1(a:aaa.dat,ios:in|ios:nocreate); if (!f1) cerra:aaa.dat file not open!x;coutx ;_; f1._; 五、(每题10分,共20分)1.用while循环编程,求自然数1至100之间各奇数平方和并输出。2.设有函数void sum(int score 5,int row);,它将数组score每行后四个元素之和用首元素保存。试编写这个函数 编写主函数并初始化相应实参调用这个函数,并输出结果3.一圆型游泳池如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。20052006 C期末试题一填空题(每小题2分,共24分) 1若需要定义一个标识符常量,并且使C+能够进行类型检查,则应在定义语句的开始使用保留字 。 2算术表达式+461对应的c+表达式为 。 3逻辑表达式x3 & & x10的相反表达式为 。 4逻辑表达式ab|b5的相反表达式为 。 5假定一个二维数组的定义为“char a56;”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。 6变量分为全局和局部两种, 变量没有赋初值时,将由系统自动置为0。 7假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为 。8假定一个结构类型的定义为“structAint a,b;A * c;”,则该类型的大小为 字节。9假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 。10在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先) ,后 ,最后为 。 11假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 。12若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: 二写出程序运行结果(共5小题,每小题6分,30分)1#include #include void fiddle(int in1, int &in2);void main() int count = 7, index = 12; cout The values are setw(5)count; coutsetw(5)indexendl; fiddle(count, index); cout The values are ; coutsetw(5)count; coutsetw(5)indexendl; void fiddle(int in1, int &in2) in1 = in1 + 100; in2 = in2 + 100; cout The values are setw(5)in1; coutsetw(5)in2endl;2#includeusing namespace std;void main()int i(1),a(0);for(;i=5;i+) do i+; a+; while(i3); i+; couta”,”iendl; 3#include using namespace std; void main() int i,j;int n=5;for(i=1;i=n;i+) for(j=1;j=i;j+) cout ; for(j=1;j=2*(n-i);j+) cout*; coutendl; 4#include using namespace std;int a=1,b=2,c=3; void main() int a=4,b=5;int han(int a,int b);c=a+b;coutcendl;couthan(c,b)endl;coutaendl;int han(int c,int b) coutaendl; a=b+c; coutaendl; return a;5#include using namespace std;void main() int n=0;while (n4)switch(n)case 0: case 1: cout n; case 2: cout n+;break; default: cout*;n+;三改错(共3小题,每小题6分,18分)1#include using namespace std;void main()int num = 1;while (num 5)cout num endl; /end while2#include using namespace std;void getNumber(int &);void calcSum(int, int, int);int main()int num1 = 0;int num2 = 0;int num3 = 0;getNumber(&num1);getNumber(&num2);calcSum(num1, num2, num3);cout Sum: num3 endl;return 0; void getNumber(int &num)cout num; void calcSum(int n1, int n2, int n3)n3 = n1 + n2;3#include #include using namespace std;void getName(string);int main()string name = ;getName(name);cout You entered name as the name. endl;return 0;void getName(string nameInput)cout y&x!l0的相反表达式为。 4逻辑表达式abb15的相反表达式为。 5假定一个二维数组的定义为“char*a54;”,则该数组所含元素的个数为,所占存储空间的字节数为。 6变量分为全局和局部两种,变量没有赋初值时,将由系统自动置为o。 7.假定a是一个一维数组,则ai对应的存储地址(以字节为单位)为 8假定一个结构类型的定义为“struct Adouble a,b,A*c;;”,则该类型的大小为-字节。 9假定要访问一个结构指针P所指对象中的b指针成员所指的对象,则表示方法为 10在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先,后,最后为。 11假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为。 12若需要把一个函数void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句三、给出下列程序运行后的输出结果(每小题6分,共30分)1. #include include double SD(int a, int b, char op) double x; switch(op) case+: x= double(a)+b; break; case-:x=double(a)-b; break; case*:x=double(a)*b; break; ease/ ;if(b)x=double(a)/b; else exit(l); break; default: exit (1); return x; void main() int x=20, y=5; eoutSD(x, y,+); court.SD(x, y,*); eoutSD(x-y,y, /)endl; )2. #include include void main() char*a5=student, worker, cadre, soldier, apen; char *pl,*p2; pl=p2=a0; for(int i=l; i0) pl=ai; if(strcmp(ai, p2)0) p2=ai; ) coutplp2endl;3. #include void WF(int x, int y) x=x+y; y=x+y; coutsubs:x, y=x,yendl; void main() int x=8, y=l5; coutmain:x, y=xi, yendl; WF(x, y); X=2*X; coutmain:x, y=x, yendI; 4. # include void LG(int*& a, int& m) a=new intm int* p=a; for(int i=0, im, i+) *p+=i*i+l, void main() int * b, n=5, LG(b, n); for(int i=0; in; i+) coutbi coutendl; deleteIh; 5. #include #include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() Worker x;char * t=WeiRong;int d=45; float f=1235;strcpy(x, name, t)x. age=d; x. pay=f;coutx, namex. agex. payb) a=b; i(ac) a=c; return al 2. #include template TT WG(TT a, TT b) if(ab) return 1; else if(a=b) return 0; else return -1; 3. struct StrNode char name15;/字符串域 StrNode*next; /指针域 ; void QB(StrNode * & f, int n) if(n=0) f=NULL; return; f=new StrNode; cinf-name; StrNode 0, p=f; while(-n) p=p-next = new StrNode; cinp-name; p-next=NULL; 4. /struct Worker / char name15; /姓名/ iht age; /年龄/ float pay; /工资/;istream & operator(istream & istr, Worker & x) cout请输入一个职工记录:姓名、年龄、工资、x.agex.pay; return istr;五、(10分) 1. 编一程序计算并输出12+22+n2的值,其中n值由键盘输入。2. 编程将数字1到25的平方保存在顺序访问文件中20032004C期末试题一、单选题(每小题2分,共12分)1设x和y均为b。1量,则x&y为真的条件是( )。A它们均为真 B其中一个为真 C它们均为假 D其中一个为假2设x和y均为bool量,则xy为假的条件是( )。A它们均为真 B其中一个为真 C它们均为假 D。其中一个为假3声明或定义一个内联函数时,必须在函数开始使用保留宇( )。A static Bconst C inline D。extern4在下面的函数声明中,存在着语法错误的是( )。ABC(int a, int) B BC(int,int);CDC(int,int=5); D BC(int x; inl y);5假定AB为一个类,则执行“ABa(4),b5,*p2:”语句时,自动调用该类构造函数的次数为( )。A6 B7 C 9 D 116假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“deletepx;”语句时,自动调用该类析构函数的次数为( )。A1 Bn C nl Dn+l二、填空题(每小题2分,共24分)7已知A一Z的ASCII码为6590,当执行charch=14*5+2;coutch5的相反表达式为( )。11假定一个二维数组的定义为“int a36;”,则该数组所含元素的个数为( ),所占存储空间的字节数为( )。12执行“typedef int ABC20;”语句把ABC定义为具有20个整型元素的( )13假定p所指对象的值为36,p+l所指对象的值为49,则*+p的值为( )14 假定a是一个二维数组,则 aii的指针访问方式为 ( )。15假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为( )。16对一个类中的数据成员的初始化可以通过构造函数中的实现,也可以通过构造函数中的( )实现。17当一个类对象离开它的作用域时,系统将自动调用该类的( )。18假定AB为一个类,则执行ABa8;”语句时,系统自动调用该类构造函数的次数为( )。三、给出下列程序运行后的输出结果(每小题6分,共30分)19. #includevoid SB(char ch) switch(ch) case A: case a:coutwell !; break;case B: case bcoutgood !; break;case C: case c:coutpass ! ; breakdefault:coutbad! ; break;)coutendl;void main() char a6 =Abcaffor(int i=0; ai; i+) SB(ai);20. #includevoid main() int a10= 36,25,48,14,55,40,72,40,86,27;int b1, b2;b1 = b2 = aO;for(int i= 1;ib1) if(bib2) b2=bl;b1 = aicoutb1 b2endl;21. #includevoid main() int a8= 3,5,7,9,11,13,15,17;int * p=a;for(int i=0;i8;i+) p+=l0;coutsetw(5) * p+;if(i+1 %3= =0 coutendl;22. # ineludevoid LF(int& x, int y) x=x+y;y= x+y;coutx=x, y=yendl;void main() int x=5, y=8,coutx=x, y=yendl;LF(x, y);coutx=x, Y=Yendl;23.# includevoid main() int x=25,y= 120;coutdec:decsetw(l0) xsetw(l0)yendl;coutoct: octsetw(l0) xsetw(l0)yendl;couthex:hexsetw(10) xsetw(10) ydecx;n-; y+=x; while(nO);return y;25. int LK(int a, int n) float s-0; iht i,for(i=0 ;in; i+)s+= ai;s/=n;int m=0;or(i=O ;in;i+)if(aliis) m+return m;26. # ineludetemplateType WD(Type a, int n) Type m= a0 ;for(int i=l;im) re=ai;return m27. # includeincludevoid JD(char* fname) 可把以fname所指字符串作为文件标识符的文件称为fname文件,假定该文件保存着一批整数。ifstream fin(fname, ios: :in |ios: :nocreate | ios: :binary)int x, s=O, n=O;while(fin, read(char * ) &x, size of(x) s+=x; n+coutn s float(s)/nendl;fin. close( );28已知6a30,15b36,编一程序求出满足不定方程2a十5b=126的全部整数组解。如(13,20)就是其中的一组解。20022003 C期末试题一、填空(每空2分,共20分)1 C+目标程序经_后生成扩展名为exe的可执行程序文件。2 16位计算机中整型占_个字节存储空间。3 要在屏幕上显示Hello,world!应执行语句cout=0|x=0) coutabcd;else coutwxyz;屏幕

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论