2011-2012第一学期_地大武汉vc 考试题及答案

上传人:xinsh****encai 文档编号:28444799 上传时间:2021-08-28 格式:DOC 页数:9 大小:64KB
收藏 版权申诉 举报 下载
2011-2012第一学期_地大武汉vc 考试题及答案_第1页
第1页 / 共9页
2011-2012第一学期_地大武汉vc 考试题及答案_第2页
第2页 / 共9页
2011-2012第一学期_地大武汉vc 考试题及答案_第3页
第3页 / 共9页
资源描述:

《2011-2012第一学期_地大武汉vc 考试题及答案》由会员分享,可在线阅读,更多相关《2011-2012第一学期_地大武汉vc 考试题及答案(9页珍藏版)》请在装配图网上搜索。

1、中国地质大学(武汉)2011-2012学年第一学期 《高级语言程序设计(VC++)》考试笔试卷A 使用班级: 考试日期:2011.12.08 一、 选择题(在A、B、C、D中选择一个正确的,每题1分,共30分。用答题纸答题,答案依次填在1~30答题号内) 1.以下各标识符中,合法的用户标识符组为 1 。 A)PAd,P#d,b-b,abc,_0123,ssiped B)cin,a10,CPP,float,del_word,signed C)void,max,hiy,,list,*jer D)a,temp,_isw,INT,keep,wind

2、 2.在VC++中,以下语句的输出为 2 。 short int k=-1; cout << k << , << (unsigned short)k <代表回车换行,_代表空格)。 cin >> a >> b; A)1020 B)10_20 C)10,20 D)20_10 4.若给出以

3、下程序,其输出为 4 。 #include void main(void) { int a=4,b=7; cout << (a=a+1,b+a,b+1) << endl; } A)5 B)8 C)11 D)程序有错误,无法运行 5.在以下关于C++语言的注释的叙述中,不正确的是 5 。 A)在C++程序中,注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B)C++编译器在编译一个程序时,将跳过注释,不对其进行处理 C)C++编译器在编译一个程序时,可发现

4、注释中的单词拼写错误 D)程序中注释的多少不会影响所生成的可执行文件的长度 6.若给定条件表达式(m)?(a++):(a--),则其中表达式m 6 。 A)和(m==0)等价 B)和(m==1)等价 C)和(m!=0)等价 D)和(m!=1)等价 7.在C++语言的if语句中,用作判断的表达式为 7 。 A)关系表达式 B)逻辑表达式 C)算术表达式 D)任意表达式 8.设i和k都是int类型,则以下for循环语句 8 。 for(i=0,k=-1;k=1;i++,k++) cout << "****\n";

5、 A)判断循环结束的条件不合法 B)是无限循环 C)循环体一次也不执行 D)循环体只执行一次 9. 字符串”\”EOF=-\61\””的长度是 9 。   A) 8  B) 9   C) 12 D) 非法字符串 10. 已知int a[3][2]={3,2,1}; 则表达式“a[0][0]/a[0][1]/a[0][2]”的值是 10 。   A) 0.166667 B) 1 C) 0    D) 错误的表达式 11. 已知char a[ ][20]={“Beijing”, “

6、shanghai”, “tianjin”, “chongqing”}; 语句cout<

7、) int a[ ][3]={1,2,3,4,5,6}; D) int a[2, 3]={1,2,3,4,5,6}; 14. 对字符数组s赋值,不合法的一个是 14 。   A) char s[ ]=”Beijing”;   B) char s[20]={”Beijing”};   C) char s[20]; s=”Beijing”;  D) char s[20]={‘B’,’e’,’i’,’j’,’i’,’n’,’g’}; 15. 在一个C++源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要使用的存储类别是 15 。   A) ext

8、ern B) register  C) auto  D) static 16. 定义一个函数实现交换x和y的值,并将结果正确返回。能够实现此功能的是 16 。   A) swap(int x, int y){ int t; t=x; x=y; y=t; }   B) swap(int *x, int *y){ int t; t=x; x=y; y=t; }   C) swap(int *x, int *y){ int t; t= *x; *x = *y; *y=t; }   D) swap(int *x, int *y){ int *t; t=x; x=y; y=t;

9、} 17. 下面函数的功能是 17 。 void fun(char s1[ ], char s2[ ]) { while(*s2++=*s1++); } A) 字符串比较 B) 字符串复制 C) 字符串连接 D) 字符串反向 18说明语句”int (*p)( );”的含义是 18 。 A) p是一个指向一维数组的指针变量 B) p是指针变量, 指向一个整型数据 C) p是一个指向函数的指针,该函数的返回值是一个整型 D) 以上都不对 19设有说明int (*p)[ ]; 其中的标识符p是 19 。 A) 4个指向整

10、型变量的指针变量 B) 指向4个整型变量的函数指针 C) 一个指向具有4个整型元素的一维数组的指针 D) 具有4个指向整型变量的指针元素的一维指针数组 20已知:char s[100]; int i; 则引用数组元素的错误的形式是 20 。 A) s[i+10] B) *(s+i) C) *(i+s) D) *((s++)+i) 21. 数学式在C++程序中对应正确的表达式为 21 。 A. sqrt(sin(x)>0?sin(x):-sin(x)) B. sqrt(fabs(sinx)) C. sqrt(s

11、qrt(sinx*sinx)) D. fabs(sqrt(sin(x))) 22. 设int a[]={1,2,3,4},*p=a; 则 22 不能正确计算数组a的元素个数。 A. sizeof(a)/sizeof(int) B. sizeof(a)/sizeof(a[0]) C. sizeof(p)/sizeof(int) D. sizeof(a)/sizeof(1) 23. 以下叙述不正确的是 23 。 A. 在C++程序中,严格区分大小写字母   B. 一个C++源程序有且仅有一个main

12、函数   C. 在C++程序中,注释只能位于一条语句的后面   D. 一个C++程序总是从main函数开始执行 24. 在C++语言程序中,当调用函数时, 24 。 A. 形、实参各占一个独立存储单元 B. 形、实参可以共用存储单元 C. 可由用户指定是否共用存储单元 D. 由系统自动确定是否共用存储单元 25. 若有以下说明和语句,则 25 是对a数组元素的错误引用。 int a[12]={0},*p[3],**pp=p,i; for(i=0;i<3;i++) p[i]=&a[i*4]; A. a[12] B.

13、p[2][3] C. a[10] D. pp[0][1] 26. 下列叙述中,不正确的是 26 。 A. 类的构造函数可以重载 B. 类的析构函数可以重载 C. 一个类可以不定义构造函数 D. 一个类可以不定义析构函数 27. 下列叙述中,不正确的是 27 。 A. 含纯虚函数的类为抽象类 B. 不能直接由抽象类建立对象 C. 抽象类不能作为派生类的基类 D. 纯虚函数不能定义其实现部分 28. 下列叙述中,不正确的是 28 。 A. this指针是指向当前调用成员函数的对

14、象的指针 B. this指针可用于类中非静态的数据成员和函数成员 C. this指针破坏了类的封装性 D. this指针的类型与所指对象的类型相同 29. 若有以下语句,则输出结果为 29 。 int a=2,b=1; cout << a>b?"a大于b":"a小于b" << endl; A. a大于b B. a小于b C. 1 D. 输出语句有错 30. 已知宏定义: #define N 3 #define Y(n) ((N+1)*n) 执行语句z=2*(N+Y(5+1));

15、后,变量z的值是 30 。 A. 42 B. 48 C. 52 D. 出错 二、填空题(每个空格1分,共30分。请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题,共5分 1. 执行语句cout<<"x86\082\n";后,输出结果为 1 。 2. 用new运算符申请动态对象时,系统将自动调用该对象的 2 。 3. 定义内联函数的方法是在函数的返回值类型之前增加关键字 3 。 4. 在多重继承时,若欲使公共基类只在派生类中产生一个拷贝,则应在派生类中将该基类用关键字 4

16、 。 5. 在C++的I/O流类库中,预定义了4个流,即cin、cout、cerr和clog,其中 5 不可重定向。 ●阅读程序题,共13分 6. [程序](2分) #include int m[3][3]={ {1}, {2}, {3} }, n[3][3]={ 1, 2, 3 }; void main(void) { cout<

17、clude int f(char *s) { char *p=s; while(*p) p++; return p - s; } void main(void) { cout< void f(int *s) { static int j; do{ s[j]+=s[j+1]; } while(++j<2); }

18、 void main(void) { int k, a[10]={1, 2, 3, 4, 5}; for(f(a),k=0; k<5; k++) cout< int k=1; void f(int m) { m+=k; k+=m; { cha

19、r k=’B’; cout<< k - ‘A’ <<’\n’; } cout< class A { protected: int x; public: int& Access

20、(){ return x; } }; class B { protected: int x; public: int& Access(){ return x; } }; class C:public A,public B { int y; public: C(int a,int b,int c) { A::x=a; B::x=b; y=c; } int& Accessy(){ return y; } }; class D:public C{

21、 int z; public: D(int a,int b,int c,int d):C(a,b,c){ z=d; } int& Accessz(){ return z; } }; void main() { D d(35,100,300,500); d.A::Access()+=20; d.B::Access()+=d.B::Access(); cout<

22、; } 程序的输出第一行是 15 ,第二行是 16 。 11. [程序](2分) #include class Shape { public: Shape() { } virtual int Area()=0; }; class Circle:public Shape { int r; public: Circle(int c){ r=c; } int Area() { return int( 3.1415*r*r); } }; class R

23、ectangle:public Shape { int h,w; public: Rectangle(int c, int d) { h=c; w=d; } int Area() { return h*w; } }; void fun(Shape &s) { cout<

24、,共12分 12. 下面的程序是统计学生中A类学生与B类学生各多少。A类学生的标准 是平均分在80分以上,其余都是B类学生。 [程序](5分) #include int& level( 19 ,int size, 20 , 21 ) { int i,sum; for(i=0,sum=0;i=80) return tA; else return tB; } void

25、main() { int a[][4]={{60,80,90,75},{75,85,65,77},{80,88,90,98}, {89,100,78,81},{62,68,69,75},{86,85,77,91}}; int i,A=0,B=0; for(i=0;i

26、程序中,数组类DArr通过重载运算符“<<”实现数组元素的顺序查找。 顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字比较,直到找到此元素或查找到数组尾部时结束。若找到,返回此元素的下标;否则返回-1。 #include class DArr{ int *a,n; //分别为动态数组的指针和元素个数 public: DArr(const int*b=0,const int m=0) { if(b) { a=new int[ 24 ]; for(int i=0;i

27、b[i]; }else a=0,n=0; } ~DArr(){ delete []a; } int& Elem(int i) { return a[i]; } int operator<<(int f) //在当前对象中顺序查找值为f的元素 { for(int i=0;i

28、!=-1) //在d中查找值为2的元素 cout<<"找到指定元素,其下标为"< struct Lnode { double data; Lnode* next; }; void ShowList(Lnode* list) { if(list) { cout<data<

29、st->next) 27 ; } } void AddToEnd(Lnode* New,Lnode*&head) { if(head==NULL) head=New; else AddToEnd(New, 28 ); } void DeleteList(Lnode*& head) { Lnode* p=head; if(p) { head= 29 ; delete p; if(head) 30 ; } } void main() { Lnode* head=

30、NULL,*temp; temp=new Lnode; while(temp) { temp->next=NULL; cout<<"data?"; cin>>temp->data; if(temp->data>0) AddToEnd(temp,head); else break; temp=new Lnode; } ShowList(head); DeleteList(head); } 2011-2012学年第一学期 《高级语言程序设计(VC++)》考试笔试卷A参考答案 一、选择题(每题1分,共30分)

31、 1D 2D 3B 4B 5C 6C 7D 8B 9A 10B 11C 12A 13C 14C 15D 16C 17B 18C 19C 20D 21A 22C 23C 24A 25A 26B 27C 28C 29D 30B 二、填空题(每个空格1分,共30分) 1 x86 2 构造函数 3 inline

32、 4 virtual 5 cerr和clog 6 3 7 0

33、 8 6 9 求字符串的长度 10 35345 11 35745

34、 12 1 13 5,6 14 4,6 15 55,200

35、16 300,500 17 50 18 20 19 int grade[]或int *grade 20 int &tA

36、 21 int&tB 22 size 23 sizeof(a[0]) 24 n=m

37、 25 a[i]==f 26 d.Elem(i) 27 ShowList(list->next ) 28 head->next 29 p->next 30 DeleteList(head)

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!