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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(C语言程序设计模拟试题A(含答案).docx)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

C语言程序设计模拟试题A(含答案).docx

1、《C语言程序设计》试卷A-带答案 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D) A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAINB) _HJC) 2ongD) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5] = {0,1,2,3,4,5}; B) int a[5] =” 012345”; C) char a[ ]=” 012345”;D) cha

2、r a[5] = {0, 1, 2, 3, 4, 5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) { printf(“*” ); x; } A) **** B) ***C) **D) * 5、设 char str1[10] = "ABCDE”, str2[10] = "xyz”; 则执行语句 printf“%d”,strlen(strcpy(str1,str2)));后的输出结果是(D)。 解析: strcpy(str1,str后;str1[]里是"XYZ", Z后面有字符串结束符 strcpy(str1,str2执行后,函数返回

3、的是str1, 因为str1[]里是新值"XYZ",而 strlen(strcpy(str1,st 就是 strlen(str的新值),所以得 3。 strlen统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。 A) 数组的首地址B)数组第一个元素的值 C)数组中全部元素的值D)数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(C)。 A) voidB)double C)int D)char 8、下面不能正确进行字符串赋值操作的语句是(C)。

4、 A) char s[5] = {"ABCD"};B) char s[5]; s="ABCD"; C) char *s; s="ABCDEF";D) char *s="ABCD"; 解析:这样理论上的没错的把s指针指向字符串可以改变s指针但不能改变其指向的值正确的应该是这样 char s[] = "ABCDEF"; 或 char s[8];strcpy(s, "ABCDEF"); 9、设有说明int s[5] = {1,3,5,7,9}; int *p=s;则下列表达式中值为3的是(C)。 A) ++pB)++(*p) C) *(++p) D) *(p+=2) 解析: A是把p得

5、地址后移一个int单位长度,即使p指向数组的第二个元素。 B是取得p当前指向的元素值然后加1,即1+1=2; C是先移动p,使其指向第二个元素,然后取得当前指针指向的元素值,即3. D是先使p指向数组的第三个元素,然后去的当前指针指向的元素的值,即5。 10、下面程序的输出结果是(B)。 int m=13; int fun( int x, int y) { int m=3; return( x*y-m); } main( ) { int a=7,b=5; printf(“%d\n”,fun(a,b)/m); } A) 1B) 2C) 3D) 10 二、填空题。(每空2

6、分,共30分) 1. 设有变量说明语句: int x=1,y=2; 则执行下述printf语句的输出结果是__1._ printf("%f\n",1.0+x/y); 2. 执行下述程序: #include main() { int x,y; scanf("%2d%*2s%1d”,&x,&y); printf("%d\n",x+y); } 若从键盘输入: 12345671 则程序的输出结果是一 17 一。 解析:x,y为int类型,x的长度为2,y的长度为1,即x为12,y为5,故x+y=17 3. 以下程序的功能是:从键盘上输入若干名学生的

7、成绩(百分制,可带小数,以输入 负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while (x>0) { if (x>amax) amax=x; else if (x

8、 1 1 — — — — —— 2 2 3 3 4n n 1 求s的值并输出。可编写如下之程序段来实现。请填空。 int k; double s,d; s=0.0; d=1.0; k=0; do { s=s+d; __k++_; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5. 执行下述程序的输出结果是——4 0 4 4 3-。 #include main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5;

9、 printf("%3d",a[i]); } printf("\n"); } 解析:(i>3)为真时值为1,反之为0, 6. 执行下述程序的输出结果是___6___。 #include main() { int a[] = {2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y) main() { int a[][2] = {10,2

10、0,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8. 执行以下程序的输出结果是__其一。 #include main() int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n”,s); } sum(int k) { int x=0; return (x+=k); } 9. 下述函数定义用来求出两个整数之各,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int

11、y,—int *z—) { *z=x+y; } 10. 函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一 位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; ==r; x/=2; } while (x); 11. 以下程序中函数invert实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出: 10987654321 请填空。 #include main() {

12、 int a[10] = {1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while (—t>s) { k=*s; *s=*t; *t=k; s++; t--; } 12. 若有以下定义和说明,则结构体变量w在内存中所占的字节数是 union aa { float x; float y; char c[6];

13、 }; struct st { union aa v; float w[5]; double ave; } w; 13. 执行下述程序的输出结果是——-。 #include struct str { float x; char *y; } *m; struct str group[3] = { 95.0,"Li”, 82.5, "Wang”, 73.5, "Sun” }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 14. 下面的程序用来统计某文件中字符的个数。请填空。

14、 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); while (― ) { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15. 执行下述程序后,输出结果为。 #include #define FUN1(a,

15、b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n”,CAL(FUN1(3,5),FUN2(4,5))); } 三、修改程序(在程序出错的语句下划横线并标号,把修改后的语句写在程序 之后的横线上。每小题5分,共10分) I. 下列给定程序的功能是:读入一个整数(2<=k< = 1),打印它的所有质因 子(即所有为素数的因子)。例如,若输入整数2310,则应输出2、3、5、7、 II。 #include #include IsPrim

16、e(int n); { int i,m; m=1; for ( i=2; i

17、\n%4d”,j); printf("\n”); } 2. 下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中 的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。 例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为: aBcdeFgh。 #include #include void fun(char *p,char *q,char *c); { int k=1; while(*p!=*q) { if (*p<*q) c[k]=*q; else c[k]=*

18、p; if (*p) p++; if (*q) q++; k++; } main() { char a[10]=“aBCDeFgh”,b[10]=“ABcd”,c[80] = {"”}; fun(a,b,c); printf(“The string a:”); puts(a); printf(“The string b:”); puts (b); printf(“The result:”); puts(c); } 四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。 (每小题5分,共20分) 1. #include void

19、main() { char ch; int k=0; for(ch=’ A’ ;ch<’ H’ ; ch++, k++) if (k%2==0) printf(“%c”,ch); printf("\n” ); } 输出结果: 2. #include void main( ) { int k=0; char c=’A’; do { switch (c++) (case ‘A’: k++; break; case‘B’:k--; case‘C’:k+=2;break; case‘D’:k=k%2;break; case‘E’:k=k*10;br

20、eak; default: k=k/3; } k++; } while(c<’G’); printf( "k=%d\n”, k); } 输出结果: 3. #include void main() ( int a[6] = (12,4,17,25,27,16},b[6] = (27,13,4,25,23,16},i,j; for(i=0;i<6;i++) ( for(j=0;j<6;j++) if(a[i]==b[j])break; if(j<6) printf("%d”,a[i]); } printf("\n”); } 输出结果: 4.

21、 #include void main() ( int a[8] = (1,0,1,0,1,0,1,0},i; for(i=2;i<8;i++) a[i]+=a[i-1]+a[i-2]; for(i=0;i<8;i++) printf(“%d”,a[i]); 输出结果: 五、编程题(本大题20分,第一题8分,第二题12分) 1、计算分段函数的值: 「1-x(x<0) Y= 2*X2-2(x>=0) 编程实现。 2、输入10个学生3门课的成绩,用函数实现:找出最高的分数所对应的学号和 成绩。 模拟试卷十一参考答案: 一、 单选题 1) D 2)

22、C 6) A 7) C 二、 填空题 1、 1. 2、 17 3、 x>0.0 4、 k=k+1 5、 4 0 4 4 3 6、 6 7、 60 8、 10 9、 int *z 10、 * (b++ ) 11、 t>s 12、 42 13、 95, Li 14、 fgetc(fp)!=EOF 15、 29 三、 改错题 3) C 8) C 4) C 9) C 5) D 10) B 1、IsPrime(int;n)改为 IsPrime(int n) scanf(“%d”,改为 scanf("%d&k); { m=0; continue;改

23、为 {if (!(n%i)) m=0; continue; } if ((!(k%j))&(IsPrime改为 if((!(k%j)& (IsPrime(j))) 2、studio, 改为 stdio.h void; fun(char *p,char *q,chai改为)void fun(char *p,char *q,char *c) k=l改为k=0while (*p!=*(改为 while((*p)|(*q)) k++后添加一个} 四、阅读程序 1、ACEG 2、8 3、4252716 4、1022571320 五、编程题 1、 #include

24、h> main() { float x,y; scanf("%f ",&x); if(x<0){ y=1-x; } else {y=2*x*x-2;} printf("%f\n",y); } 2、 #include struct student { int num; float score[3]; }stu[10]; void chosescore(struct student *stu,int n) { int i=0,j=0,k=0; float temp; for(i=0;i<3;i++) { temp=stu[0].score[i]; k=

25、stu[0].num; for(j=1;j

26、score[2]); } chosescore(stu,10); } C++面向对象程序设计模拟试题(带答案) 1.1选择题 在C++中用(D )能够实现将参数值带回。 a)数组 b)指针 c)引用 d)上述ABC都可 考虑函数原型void test(int a,int b=7,char下!面的"函,数调用中,属于不合法调用的 是:(C ) A)test(5) B)test(5,8) C)test(6,"#") D)test(0,0,"*") 已知:int m=t0下列表示引用的方法中,正确的是:(C ) A)int &Z B)int &t=10 C)int &X=m

27、 D)float &f=&m 下列不是函数重载所要求的条件是:(D ) A)函数名相同B)参数个数不同 C)参数类型不同D)函数返回值类型不同 在C++中执行以下4条语句后输出rad值为:(C ) static int hot=;2 int &rad=ho;t hot=hot+1; cout<

28、部分兼容CC)C++不兼容C D)C兼容C++ 在C++中使用流进行输入输出,其中用于屏幕输出的对象是:(C ) A)cerr B)cin C)cout D)cfile 对使用关键字new所开辟的动态存储空间,释放时必须使用(C ) A)free B)create C)delete D)realse 在函数调用时,如某一默认参数要指明一个特定值,则有(A ) A)其之前所有参数都必须赋值B)其之后所有参数都必须赋值 C)其前、后所有参数都必须赋值D)其前、后所有参数都不必赋值 下列哪个类型函数不适合声明为内联函数(A ) A)函数体语句较多B)函数体语句较少 C)函数执行

29、时间较短 D)函数执行时间过长 int Func(i,ntint;)不可与下列哪个函数构成重载(B ) A)int Func(i,ntint int)B)double Func(intint) C)double Func(doubl,edouble);D)double Func(i,ntdouble); 下面的哪个保留字不能作为函数的返回类型(C ) A)void B)int C)new D)long 一个函数功能不太复杂,但要求被频繁调用,选用(A )。 A. 内联函数 B.重载函数 C.递归函数 D.嵌套函数 已知函数f的原型为:void f (int&a,char*变量s

30、的定义是:int ;schar t[ ]="ABCD" 把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是(C ) A f(&s,&t;) B f(&s,t;) C f(s,;t) D f(s,&t;) 若定义cin>>str; 当输入 Microsoft Visual StudiO 6.0 所得结果是str=(B)。 A、Microsoft Visual Studio 6.0 B、Microsoft C、Microsoft Visual D、Microsoft Visual Studio 6.0 .函数模板(C)。 A、代表某一具体函数 B、与模板函数是

31、同一个函数 C、与某一个具体的数据类型连用 D、是模板函数实例化的结果 在C++中,关于下列设置参数默认值的描述中,正确的是(C) A、不允许设置参数的默认值 B、设置参数默认值只能在定义函数时设置 C、设置参数默认值时,应该是先设置右边的再设置左边的 D、设置参数默认值时,应该全部参数都设置 下列表示引用的方法中,(A)是正确的。 已知:k=10; A、int &x=k;B、char &y; C、int &z=10;D、float &t=&k; 有如下模板定义: template T fun(T x,T y){return x*X+y*y 在下列对

32、fun的调用中,错误的是:(C ) A) fun(2,8)B)fun(2.0,8.2) C)fun(2.3,8) D)fun (‘2’,’8’) 通常情况下,函数模板中的类型参数个数不能是(A ) A)0个 B)1个 C)2个 D)3个 1.2填空题 1、假定有如下定义:int x若要将整型变量y定义为变量x的引用,则应使用的定义语句是 int &y=x;_ 具有相同函数名但具有不同参数表的函数称为重载函数。' 2、在进行函数调用时,将把参数的值传递给值参数,把参数的一地址一传递给引用参数。 3、执行完下列三条语句后,指针变量c指向-i--o Int a,b,*c=&a;

33、int *&p=c; p=&b; 4、假设有如下函数定义:void Fun(int x,int y=1©D旬 Fun(5)语句__ Fun (5 1)_等价。 5、在一个C++程序中,每个变量都必须遵循―先定义后使用―的原则。 6、下面是一个求数组元素之和的程序。主程序中定义并初始化了一个数组,然后计算该数 组各元素之和,并输出结果。 函数TotalSum计算数组元素之和。请完成下列程序。 #include —二int Totalsum(int array[],int len)__ ; void main() { int a[5] = {2,3,6,8,

34、10}; __int Total —; Total =Totalsum(a,5); cout<<"Sum of array:"<

35、数时,若只允许函数体访问形参的值而不允许修改它的值,则应把该形参声 明为--常量--,即在该形参声明的前面加上_const_关键字进行修饰。 9、在一个函数的定义或声明前加上关键字— inline一时,该函数就声明为内联函数。 1.3简答题 A、.内联函数的含义 在函数前加上关键字inline明了一个内联函数,这使一个函数在程序行里进行代码扩 展而不被调用。这样的好处是减少了函数调用的开销,产生较快的执行速度。但是由于重复 编码会产生较长代码,所以内联函数通常都非常小。如果一个函数在类说明中定义,则将自 动转换成内联函数而无需用inlin说明。 B、.函数重载的含义 在同一作用域范

36、围内,相同的函数名通过不同的参数类型或参数个数可以定义几个函 数,编译时编译器能够识别实参的个数和类型来决定该调用哪个具体函数。需要注意的是, 如果两个函数仅仅返回类型不同,则编译时将会出错,因为返回类型不足以提供足够的信息 以使编译程序判断该使用哪个函数。所以函数重载时必须是参数类型或者数量不同。 C、引用与指针的区别 D、内联函数使用上的限制 E、定义带默认参数值函数的规则 F、指针与常量的关系 1.4程序阅读题 1) 写出下列程序的运行结果。 #include void main() { int x; int &p=x; x=10; p

37、x+10; cout< int f(int a) { return ++a; int g(int &a) { return ++a; } void main() { int m=0,n=0; m+=f(g(m)); n+=f(f(n)); cout<<"m="<

39、0 The Field's num is 30 The main's num is 10 类和对象 2. 1选择题 下列的各类函数中,不是类的成员函数。(c ) A)构造函数B)析构函数C)友元函数 D)拷贝初始化构造函数 作用域运算符“::”的功能是:(B ) A)标识作用域的级别的B)指出作用域的范围的 C)给定作用域的大小的D)标识成员是属于哪个类的 已知:print®数是一个类的常成员函数,它无返回值,下列表示中,是正确的。(A ) A)void print()cqnst B)const void pript() C)void const print() D)v

40、oid print(const) 在类定义的外部,可以被访问的成员有(C ) A)所有类成员B)privat的类成员 C)public的类成员D)publi^ privat的类成员 关于类和对象不正确的说法是:(C ) A)类是一种类型,它封装了数据和操作B)对象是类的实例 C) 一个类的对象只有一个D) 一个对象必属于某个类 在C++中实现封装是借助于(B ) A)枚举 B)类 C)数组 D)函数 定义析构函数时,应该注意:(C ) A)其名与类名完全相同B)返回类型是void类型 C)无形参,也不可重载D)函数体中必须有delete吾句 类clase CC1的说明如

41、下,错误的语句是:(A ) clase CC1( int a-2 //(A) CC1 (); //(B) public: CC1 (int vai) //(C) "CCl (); //(D) ); 类的指针成员的初始化是通过函数完成的,这个函数通常是:(B ) A)析构函数B)构造函数 C)其它成员函数 D)友元函数 关于构造函数的说法,不正确的是:(A ) A)没有定义构造函数时,系统将不会调用它B)其名与类名完全相同 C)它在对象被创建时由系统自动调用D)没有返回值 通常拷贝构造函数的参数是:(C ) A)对象名 B)对象的成员名 C)对象的引用

42、名 D)对象的指针名 关于成员函数特征的描述中,错误的是:(A ) A)成员函数一定是内联函数B)成员函数可以重载 C)成员函数可以设置参数的默认值D)成员函数可以是静态的 下列关于构造函数的描述中,错误的是:(D ) A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行 C)构造函数可以是内联函数;D)构造函数不可以重载 有如下类声明“class A{int x };”,则A类的成员x是:(B ) A)公有数据成员B)私有数据成员C)公有成员函数 D)私有成员函数 类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:(C ) A)TM *

43、a B)TN & a C)TM a D)TN a; 以下关于thi指针的叙述中正确的是:(D ) A)任何与类相关的函数都有thi指针;B)类的成员函数都有thi指针; C)类的友员函数都有thi指针;D)类的非静态成员函数才有thi指针; .关于类模板的说法正确的是:(B ) A)类模板的主要作用是生成抽象类 B)类模板实例化时,编译器将根据给出的模板实参生成一个类 C)在类模板中的数据成员具有同样类型 D)类模板中的成员函数没有返回值 .以下关键字不能用来声明类的访问权限的是:(C ) A)public B)private C)static D)protected .

44、类的私有成员可在何处访问(D ) A)通过子类的对象访问B)本类及子类的成员函数中 C)通过该类对象访问D)本类的成员函数中 .如果没有为一个类定义任何构造函数的情况下,下列描述正确的是:(A ) A)编译器总是自动创建一个不带参数的构造函数B)这个类没有构造函数 C)这个类不需要构造函数D)该类不能通过编译 . 一个类可包含析构函数的个数是:(B ) A)0个 B)1个 C)0个或1个 D)0个或多个 . 一个类可包含构造函数的个数是:(D ) A)0个 B)0个或1个 C)0个或多个D)1个或多个 .this指针存在的目的是:(B ) A)保证基类公有成员在子类中可以

45、被访问 B)保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 C)保证基类保护成员在子类中可以被访问 D)保证基类私有成员在子类中可以被访问 .下列关于类的权限的描述错误的是:(A ) A)类本身的成员函数只能访问自身的私有成员 B)类的对象只能访问该类的公有成员 C)普通函数不能直接访问类的公有成员,必须通过对象访问 D)一个类可以将另一个类的对象作为成员 .设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是:(B ) A)A类构造函数先执行B)成员构造函数先执行 C)两者并行执行D)不能确定 .假定有类AB,有相应的构造函数定义,能正确执行“

46、AB a(4),b(5), c[3], *p[2] = {&a,&b};”语句,请问执行完此语句后共调用该类构造函数的次数为 (C ) A)3 B) 4 C) 5D)6 拷贝构造函数的作用是(C )。 A. 进行数据类型的转换B.用对象调用成员函数 C.用对象初始化对象D.用一般类型的数据初始化对象 下列静态数据成员的特性中,错误的是(D )。 A. 静态数据成员的声明以关键字static头 B. 静态数据成员必须在文件作用域内初始化 C. 引导数据成员时,要在静态数据成员前加(类名)和作用域运算符 D. 静态数据成员不是类所有对象共享的 通过指针访问类对象成员的方法是(D

47、 )。 A. :: B.; 静态成员函数没有(B )。 A.返回值 B. this指针 型 C. . C.指针参数 D.-> D,返回类 在下列关键字中,用于说明类中公有成员的是(A )。 A . public B. privat;e C. protected D . 不是构造函数的特征(D )。 A.构造函数的函数名与类名相同; C.构造函数可以设置缺省参数; 明。 是析构函数的特征(A )。 A.一个类中只能定义一个析构函数; C. 析构函数的定义只能在类体内; 参数。 关于成员函数特征的下述描述中,(A )是错误的。 A.成员函数一定是内联函数; C.成员函数可

48、以设置参数的缺省值; 下述静态数据成员的特性中,(D )是错误的。 说明静态数据成员时前边要加修饰符static; 静态数据成员要在类体外进行初始化; 引用静态数据成员时,要在静态数据成员名前加<类名〉和作用域运算符; 静态数据成员不是所有对象所共用的。 friend B. B. 构造函数可以重载; D. 构造函数必须指定类型说 析构函数名与类名不同; D. 析构函数可以有一个或多个 B. D. 成员函数可以重载; 成员函数可以是静态的。 A. B. C. D. 2.2填空题 1、在撤销类的对象时,c++程序将自动调用该对象的―析构一―函数。 2、

49、类中的构造函数是一个特殊的成员函数,它由类的对象―自动一调用,它的作用是一―为 对象分配内存,数据成员初始化一_。 3、对类中的成员函数和属性的访问是通过__public__ —protected和___private3这3个 关键字来控制的。 4、—delete一运算符删除new运算符所动态分配的内存空间。 5、假定用户没有给一个名为MyClass的类定义析构函数,则系统为其定义的默认析构函数 形式为 _MyClass () _ 6、类中构造函数有―一个或多―个,析构函数有一一…个。 7、类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的…数据 成员一_,共同行为

50、被描述为类中的―成员函数―。 8、若要把类FriendClas定义为类MyClass的友元类,则应在类MyClass的定义中加入语句 _friend class FriendClass__。 9、在结构定义中,数据和成员函数默认权限是— Dublic__在类定义中,数据和成员函数默认 权限是 __pr ivate_f_ 10、在下面程序的横线处填上适当的语句,使类型该程序执行结果为10。 #include class MyClass { public: —MyClass ( inta){x = a;为_x一置值 __int GetNum(){return

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服