ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:836.33KB ,
资源ID:18563944      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18563944.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(江苏省计算机二级c++考试试题集Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

江苏省计算机二级c++考试试题集Word格式文档下载.docx

1、A派生类的对象可以赋值给基类的对象B基类的对象可以赋值给派生类的对象C派生类的对象可以初始化其基类的引用D可以将派生类对象的地址赋值给其基类的指针变量29. 下列关于变量的叙述中不正确的是(29) 。AC+语言中将变量分为auto、static、extern和register四种存储类型B自动变量和外部变量的作用域为整个程序文件 C函数内定义的静态变量的作用域为定义它的函数体 D外部静态变量的作用域为定义它的文件内30. 设有说明语句:char a =”string!”, *p = a;以下选项中正确的是(30) 。Asizeof (a)的值与strlen (a)的值相等 Bstrlen (a

2、)的值与strlen (p)的值相等Csizeof (a)的值与sizeof (p)的值相等 Dsizeof (a)的值与sizeof (*p)的值相等 二、填空题(请将答案填写在答题纸的相应答题号内)基本概念题(共5分)1.当一个类的非静态成员函数被调用时,该成员函数的 (1) 指向调用它的对象。2.C+语言中的友元函数提供了在类外访问类中私有成员和保护成员的功能,但破坏了类的 (2) 。3.使用成员函数对双目运算符进行重载时,其左操作数是 (3) 。4.设有宏定义和变量说明:#define T(x,y) x+yint a= T( 3, 4 )*T( 3, 5 )则变量a的初值为 (4) 。

3、5.设有说明语句:int a 4=1,2, 2,3,4,5, *p=(int *)a;则*( p+5 )的值为 (5) 。阅读程序题(共13分)6. 【程序】(3分)#include string.hint isvowel(char c) return (c=a| c=e| c=i| c=o| c=u); void pluralize(char* s) int len=strlen(s); char *p = s+len-1; char *q = s+len-2; if ( *p=h &(*q =c|*q =s) strcat ( p, “es” ); else if ( *p =s ) st

4、rcat( p, “es” ); else if ( *p=y ) if ( isvowel (*q ) ) strcat ( p, “s” ); else strcpy ( p, “ies” ); else if ( *p =z ) if ( isvowel (*q ) ) strcat( p, “zes” ); else strcat ( p, “es” ); else strcat ( p, “s” );void main(void) char word620=“wish”, “bus”, “toy”, “navy” ,“quiz”, “computer” ; for( int i=0;

5、 i6; i+) pluralize( word i ); coutword i t; if( ( i+1 )%2 = 0) cout n;程序输出的第一行是 (6) ,第二行是 (7) ,第三行是 (8) 。7. 【程序】void f ( int j ) if ( !j ) coutj; return ; if ( j%2 ) f ( j/10 ); j%10; else cout f ( j/10 ); f ( 0 );n; f ( 1357 ); f ( 2468 );程序输出的第一行是 (9) ,第二行是 (10) ,第三行是 (11) 。8. 【程序】int x =2, y = x+

6、30;class A int y; static int x; public: operator int ( ) return x+y; A operator + ( int ) return A ( x+, y+ ); A ( int x =2, int y =3 ) A:x =:x + x; A:y =:y + y; void print( ) cout ”x=” x ”,t” ”y=” y endl;int A:x =23; A a (54, 3 ), b ( 65 ), c;a.print( );int i =a+b; ”i = ” i endl;c + + ; c.print ( )

7、;程序输出的第一行是 (12) ,第二行是 (13) ,第三行是 (14) 。9. 【程序】(2分)char* f( char* s, char ch ) char* p = s, *q = s; while (*q =*p+ ) if ( *q!= ch ) q+; return s; char s1 =”Hello How are you”, s2 =”1100101 11”;f ( s1,e ) f ( s2, 0 )程序输出的第一行是 (15) ,第二行是 (16) 。10. 【程序】 int x, y; A( int i , int j ) x = i; y = j; operato

8、r + ( int ) + x + y ”重载1” friend A opertor + (A);A opertor + (A op ) cout + op.x + op.y ”重载2”void main(void ) A a ( 1, 2 ); +a; a+;程序输出的第一行是 (17) ,第二行是 (18) 。完善程序题(共12分)11. 下面程序的功能是:先输入一行字符串,并从输入的字符串中找到最小的字符(其ASCII值最小),用min保存该字符。然后将该字符前的所有字符顺序往后移动一个字符位置。最后,将保存的字符放在该字符串的第0个位置上。例如,设输入的字符串为“bcdfae”,其中字

9、母a为最小字符,经移动处理后,输出的字符串为“abcdfe”。【程序】(4分)void fun( char* str ) char min , *q , *p ; (19) ; min = *p+ ; while ( *p !=0 ) if ( (20) ) min =*p; q = p ; p+; p = q; while( (21) ) *p = *( p-1 ); (22) ; *p = min; char str 80 ; cin.getline( str , 80 ); fun ( str ); str 12. 用程序模拟两个大整数(为简化程序,设整数为正数)的加法运算。假定一个整数

10、最多N位,用一个一维数组存放其各位数字。在数组下标为0的元素中存放该整数的个位数字,在下标为1的元素中存放该整数的十位数字,依此类推。例如,大整数a的值为88099005798957,大整数b的值为776988213577,则两个整数相加的结果为88875994012534。以下是程序输出的结果:Integer a: 88099005798957Integer b: 776988213577 Sum: 88875994012534#define N 20 /整数的位数void add( int sum , int a , int b ); /sum = a + bvoid wrt ( (23)

11、 ); int a N = 7,5,9,8,9,7,5,0,0,9,9,0,8,8; int b N = 7,7,5,3,1,2,8,8,9,6,7,7; int sum N ; add (sum , a , b); wrt (“Intrger a:”, a); wrt( “Intrger b:”, b); wrt (“ Sum:”, sum);void add ( int sum , int a , int b ) int carry = 0, i; /carry表示进位 for ( i = 0;N; + i ) sum i = (24) ; if ( sum i 10 ) carry =

12、0 ; else carry = sum i /10; sum i = (25) ;void wrt ( const char* s, int a ) int i; cout 0 &a i =0 ; -i ) /输出前导空格( ); /输出一个空格 for( ;=0 ; -i ) cout productcategory; if( strcmp(product, “end” ) =0 ) break ; p2-next = new node; p2=p2-next; strcpy( p2-product, product );category, category ); (27) ;return

13、 temp. next;void print( node* h ) /输出链表h while(h) h-product t category void deletechain ( node* h ) /删除链表h node* p; while ( (28) ) h = h- delete p;node* insertascategory( node * h , node * p ) /按类别插入结点 node * p2 =0 , *p1 = h; if ( h=0 ) p-next = 0; return p; while ( p1&strcmp( p1-category, p-categor

14、y ) ) p2 = p1; p1 =p1- /找同类结点category ) =0 ) /定位在同类结点后 p-next = p1; (29) ; /插入在p1、p2结点之间 return h;node* classify( node* h ) /按类别分类 node* h2 = 0, *p; while( h ) p=h; (30) ; h2= insertascategory( h2, p ); return h2; node* h; h= create( ); print( h ); h= classify( h ); deletechain ( h );2007年(春)笔试试卷21.

15、设有变量说明:“short int a=0,b=0;”,则表达式sizeof(a+b)的值为 (21) 。A1 B2 C4 D822.下列关于while与dowhile循环语句的叙述中正确的是(22) 。Adowhile的循环体至少执行一次Bwhile的循环体至少执行一次Cdowhile的循环体不能是复合语句Ddowhile允许从循环体外跳转到循环体内23. 设有函数原型说明: void test(int a, int b=7, char * c=”# ” ); 下面的函数调用中存在语法错误的是 (23) 。 Atest ( 3 ) Btest( 3, 8.2) Ctest(6, ”*” )

16、Dtest(0, 0, ”*”)24. 执行以下程序时,输入一行字符串为Thank you very much!程序的输出结果为 (24) 。 #include void main(void) char line100;line;lineAT BThankCThank you very much! DThank you25. 下列关于运算符重载的叙述中正确的是(25) 。A运算符重载可以改变操作数的个数B运算符重载可以改变运算符的优先级C运算符重载可以改变运算符的结合性D运算符重载不能改变操作数的个数,也不能改变运算符的优先级和结合性26. 定义以下的类:class X int a; X( i

17、nt x=0) a=x;class Y: public X int b; Y(int x=0,int y=0): X(y) b=x; 在以下选项的说明语句中,存在语法错误的是(26) 。 AX * pa= new Y(1,2); BX a1=Y(1,3); CX b2(2,3); Y & a2=b2; DY b3(10); X a3(b3);27. 设有以下语句:int a=5; int arra; /第1行const int b=5; int xb; /第2行int c=5; int * p=new intc; /第3行const int d=5; int * p1=new intd; /第

18、4行其中存在语法错误的是(27) 。A第1行 B第2行 C第3行 D第4行28. 设有说明语句:float a33=1,2,3,4,5, *b3=0, (*c)3=a, *d=0;以下选项中语法正确的语句是(28) 。 Aa0=b0; Bb0=c0; Cc0=d0; Dd0=a00;29. 下列关于虚函数的描述中正确的是(29) 。A虚函数可以是一个static类型的成员函数B虚函数可以是一个非成员函数C虚函数可以实现静态多态性D基类中采用virtual说明一个虚函数后,派生类中定义相同原型的虚函数时,可不必加virtual说明30. 设变量a、b是整型变量,下列switch语句中语法正确的是

19、(30) 。Aswitch(a) Bswitch(a+b)case a: break; case 1: b=a+;case b: b+; a=+b; Cswitch(a*a) Dswitch(a/10+b) case 10,12:+a; case 3: b=a/10;break; case 14,16:+b; default: a+=b; 二、填空题6.对于switch( e ),表达式e只能是整型、 (1) 或枚举型表达式。7.面向对象程序设计的三大特性是封装性、继承性和 (2) 。8.执行以下语句后,a的值为 (3) 。 int a=0,m=3,n=10; a=(m+,m+n);9.在C+

20、中,标识符是以字母或 (4) 开头的,由字母、数字和 (4) 组成的字符序列。10.在C+中,类的每一个非静态成员函数都有一个 (5) 指针,该指针指向正在调用成员函数的对象。int fun(int x, int y) x=x+y; y=x+y;”x=”x”,y=”y return x+y; int x=5, y=8, z=fun(x,y);” x=”z=”z程序输出的第二行是 (6) ,第三行是 (7) 。int f(int m,int &n) static int a=1; int c=2; m+=+a; n+=+c; return m+n; int a=1, b=2;f(a,b)atbf(f(a,b),b)程序输出的第一行是 (8) ,第二行是 (9) ,第三行是 (10) 。void findmax(int* a, int n, int i, int * pk) if(ia*pk ) *pk=i; findmax ( a,n,i+1,pk); int a10=34,32,23,12,67,54,44,60,33,24, index=0; findmax( a,10,0,&index);aindex”Its index is:”index程序输出的第一行是 (11) ,第二行是 (12) 。int a=100;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1