西南交大历年C期末试题.docx
- 文档编号:24268087
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:42
- 大小:45.17KB
西南交大历年C期末试题.docx
《西南交大历年C期末试题.docx》由会员分享,可在线阅读,更多相关《西南交大历年C期末试题.docx(42页珍藏版)》请在冰豆网上搜索。
西南交大历年C期末试题
历年期末试题
C++
2007---2008C++期末试题
一.选择题(10小题,每题3分)
1.程序设计语言的基本成分是数据成分、运算成分、控制成分和
A)对象成分 B)变量成分 C)语句成份 D)传输成分
2.以下各选项组中,均是C++语言关键字的组是
A)publicoperatorthis B)shodstringstatic
C)itwhile>= D)privatecoutprintf
3.C++语言的跳转语句中,对于break和continue说法正确的是()
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
4.for(int x=0,y=o;!
x& &y<=5;y++)语句执行循环的次数是()
A)0 B)5 C)6 D)无次数
5.下面程序错误的语句是
①#include
②voidmain()
③{
④int*p=newint[1];
⑤p=9;
⑥cout<<*p< ⑦delete[]p ⑧} A)④ B)⑤ C)⑥ D)⑦ 6.下列描述正确的是 A)表示m>n为true或m B)switch语句结构中必须有default语句 C)if语句结构中必须有else语句 D)如果至少有一个操作数为true,则包含“‖”运算符的表达式为true 7.下列语句中不是死循环的是 A)inti=10; B)for(inti=1: i<10;i++) while (1) { } i--; i--; } if(i==1)break; } C)inti=0; D)inti=1; do{ for(;;)i=i+1; i++; }while(i>=0): 8.下面对静态数据成员的描述中,正确的是 A)静态数据成员是类的所有对象共享的数据 B)类的每个对象都有自己的静态数据成员 C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调用 9.下面关于数组的描述错误的是 A)在C++语言中数组的名字就是指向该数组第一个元素的指针 B)长度为n的数组,下标的范围是0-n-1 C)数组的大小必须在编译时确定 D)数组只能通过值参数和引用参数两种方式传递给函数 10.以下程序中,错误的行是 ①#include ②classA ③{ ④ public: ⑤ intn=2: ⑥ A(intval){cout< ⑦ ~A(){}; ⑧}; ⑨voidmain() ⑩{ ⑩ Aa(0); ⑩} A)⑤ B)⑥ C)⑦ D)⑩ 二.写出下列程序运行结果(四小题,每题5分) 1.#incude int f(int); int main() { int i; for(i=0;i<5;i++) cout< return0; } int f(int i) { static int k=1; for(;i>0;i- -) k + = i; return k; } 2. #include voidfun(int*a,int*b) {intx=*a *a=,b;*b=x; cout<<*a<<*b<<””; } voidmain() {intx=1,y=2; fun(&x,&y); cout< 3.#include voidmain(void) {inti,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<<'*'; elsecout<<"";} cout< 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<<'*'; elsecout<<"";} cout< 4.voidmain() {inti,j,n; cout<<"input行数: ";cin>>n; for(i=1;i<=n;i++) {for(j=1;j<=i;j++) cout< (2)< for(j=i+1;j<=n;j++) cout< (2)< cout< 5.#include voidmain() {voidfun(int*,int*); inta=5,b=8; while(a! =b) {fun(&a,&b); cout< } voidfun(int*pa,int*pb) {if(*pa>=*pb)*pa-=*pb; else*pb-=*pa;} 6.#include voidmain() {char*p;inti; intlen(char*ptr); p="asdfghjkl9876"; i=len(p); cout<<"lengthof"<<"\""< <<"\""<<"is"< intlen(char*ptr) {inti; for(i=0;*ptr++! ='\0';i++) ;return(i);} 三.编写程序 1.求Fibonacci数列的第n项及前n项之和。 2.S是一家小型园林公司的老板,他需要创建一个程序使其销售人员能够算出铺设草坪的费用。 作为一家围栏公司的老板,J也需要一个程序,可以计算出安装围栏的费用。 2006――2007C++期末试题 一、填空(每空2分,共20分) 1.C++源程序文件扩展名为_____________。 2.unsignedlong型数据占__________字节存储空间。 3.执行语句cout<<"d: \\data\\c++\\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 longint D float 2.下列变量名中,( )是合法的。 A _var B bye-bye C int D 123_cc 3.设inta=3,*p=&a;,则*p的值是( )。 A 变量a的地址值 B 无意义 C 变量p的地址值 D 3 4.设intm=0;,下列表示引用的方法中,( )是正确的。 A int&x=m; B int&y=10; C int&z; D float&t=&m 5.循环for(inti=0,x=0;! x&&i<=5;i++);的循环体执行次数是( )。 A 5 B 6 C 1 D 无限 6.磁盘文件操作时,在打开磁盘文件的访问方式中,( )是以追加数据 方式打开文件的。 A in B out C app D ate 7.类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.设voidf1(int&x,char*p);intm;chars[]="c++";以下调用合法的是( )。 A f1(&m,&s); B f1(&m,s); C f1(m,s); D f1(m,&s); 三、回答问题(每题5分,共15分) 1.设inta[3][4];doubleb[3][4][5]; 请写出数组指针pa和pb的定义,使其分别与数组名a和b等价。 2.设intf1(intn,char*s);char*f2(intn,char*s); 3.请初始化一维指针数组week。 其初值表初值为"Sun","Mon","Tue","Wed","Thu","Fri"和"Sat"。 4.要使语句p1=newint(10);p2=newdouble[10];能正常执行,写出p1和p2的定义。 5.设有intf1(intn){n+=2;returnn*n;} intf2(int&n){n+=2;returnn*n;} 执行intm=5,n=3; m=f1(n);cout< m=f2(n);cout< 写出结果。 四、(每题10分,共20分) 1.写出下列程序的执行结果。 #include voidmain() {inti=1,j=2,k=3,a=10; if(! i)a--; elseif(j) if(k)a=5; elsea=6; a++; cout< if(i if(i! =3) if(! k) a=1; elseif(k) a=5; a+=2; cout< 2.设a盘上文本文件aaa.dat中保存有0至100之间的所有奇数,下列程序将全部数据及其和输出至屏幕上,请将程序补充完全。 #include #include____________ voidmain(void) {_____________f1("a: aaa.dat",ios: : in|ios: : nocreate); if(! f1){ cerr<<"a: aaa.datopen! "< exit (1); } intx,s=0; while(___________){f1>>x;cout< f1.____________; } 五、(每题10分,共20分) 1.用while循环编程,求自然数1至100之间各奇数平方和并输出。 2.设有函数voidsum(intscore[][5],introw);,它将数组score每行后四个元素之和用首元素保存。 试①编写这个函数②编写主函数并初始化相应实参调用这个函数,并输出结果 3.一圆型游泳池如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。 栅栏价格为35元/米,过道造价为20元/平方米。 过道宽度为3米,游泳池半径由键盘输入。 要求编程计算并输出过道和栅栏的造价。 2005――2006C++期末试题 一.填空题(每小题2分,共24分)1.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字。 2.算术表达式+46—1对应的c++表达式为。 3.逻辑表达式x>3&&x<10的相反表达式为。 4.逻辑表达式a>b||b==5的相反表达式为。 5.假定一个二维数组的定义为“chara[5][6];”,则该数组所含元素的个数为,所占存储空间的字节数为。 6.变量分为全局和局部两种,变量没有赋初值时,将由系统自动置为0。 7.假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为。 8.假定一个结构类型的定义为“structA{inta,b;A*c;};”,则该类型的大小为 字节。 9.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 。 10.在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先) ,后,最后为。 11.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为。 12.若需要把一个函数“voidF();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: 二.写出程序运行结果(共5小题,每小题6分,30分) 1.#include #include voidfiddle(intin1,int&in2); voidmain() {intcount=7,index=12; cout<<"Thevaluesare"< cout< fiddle(count,index); cout<<"Thevaluesare"; cout< cout< voidfiddle(intin1,int&in2) {in1=in1+100;in2=in2+100; cout<<"Thevaluesare"< cout< 2.#include usingnamespacestd; voidmain() {inti (1),a(0); for(;i<=5;i++) { do{i++; a++; }while(i<3); i++; } cout< } 3.#include usingnamespacestd; voidmain() {inti,j; intn=5; for(i=1;i<=n;i++) {for(j=1;j<=i;j++) cout<<""; for(j=1;j<=2*(n-i);j++) cout<<"*"; cout< 4.#include usingnamespacestd; inta=1,b=2,c=3; voidmain() {inta=4,b=5; inthan(inta,intb); c=a+b; cout<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 交大 历年 期末 试题