C模拟题答案

合集下载

c语言笔试模拟题以及答案

c语言笔试模拟题以及答案

1.一、单选题:(每题1.5分,共60分)1、 C语言程序的基本单位是_______.A. 语句B. 函数C. 程序行D. 字符答案: B2、 C语言程序由( )组成A. 子程序B. 过程C. 函数D. 主程序段程序答案: C3、算法的表示方法有________。

A. 自然语言,传统流程图,N-S流程图,伪代码,计算机语言B. 高级语言,汇编语言,机器语言C. C语言,QBASIC语言,InterDevD. 图形图像法,描述法,编程法E. 计算机语言答案: A4、以下程序的输出结果是main( ){ int k=17;printf(“%d,%o,%x \n”,k,k,k);}A. 17,021,0×11B. 17,17,17C. 17,0×11,021D. 17,21,11答案: D5、下列变量定义中合法的是A. short _a=1-.le-1;B. double b=1+5e2.5;C. long do=0xfdaL;D. float 2_and=1-e-3;答案: A6、 C语言中合法的字符常量是____A. ‘\084′B. ‘\X43′C. ‘ab’D. “\0″答案: B7、下面说法中正确的是( )A. int型和long型运算先将int型转换成unsigned型,再转换B. 两个float型运算结果为double型C. 只要表达式中存在double型,所有其他类型数据都必须转D. 表达式中的类型转换与运算顺序有关答案: C8、以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值答案: D9、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A. n=(n*100+0.5)/100.0B. m=n*100+0.5,n=m/100.0C. n=n*100+0.5/100.0D. n=(n/100+0.5)*100.0答案: B10、下列运算符中优先级最高的是A. <B. +C. &&D. !=答案: B11、若变量已正确定义并赋值,下面符合C语言语法的表达式是A. a:=b+1B. a=b=c+2C. int 18.5%3D. a=a+7:c+b答案: B12、设CH是字符型变量,其值为’A',下列表达式的值是CH=(CH > =’A'&&CH < =’Z')?(CH+32):CHA. AB. aC. zD. Z答案: B13、表达式18/4*sqrt(4.0)/8值的数据类型为A. intB. floatC. doubleD. 不确定答案: C14、在C语言中,要求运算数必须是整型的运算符是A. /B. %C. !D. >答案: B15、以下说法中正确的是A. #define和printf都是C语句B. #define是C语句,而printf不是C. printf是C语句,但#define不是D. #define和printf都不是C语句答案: D16、下面程序的输出是main(){int a=-1,b=4,k;k=(a++<=0)&&(!(b–<=0));printf(“%d%d%d%\n”,k,a,b);}A. 0 0 3B. 0 1 2C. 1 0 3D. 1 1 2答案: C17、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a > b)&&(n=c > d)后n的值是A. 1B. 2C. 3D. 4答案: B18、若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是A. (exp==0B. (exp!=0)C. (exp==1)D. (exp!=1)答案: B19、为表示关系X≥Y≥Z应使用C语言表达式:__A. (X > =Y)&&(Y > =Z)B. (X > =Y)and(Y > =Z)C. (X≥ Y≥ Z)D. (X≥ Y)&(Y≥ Z)答案: A20、能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是A. a > =10 or a< =0B. a > =0||a < =10C. a > =10 && a < =0D. a < =0 || a>=10答案: D21、下面的程序是______main(){ int x=3,y=0,z=0;if (x==y+z) printf(“****”);else printf(“####”);}A. 有语法错误不能过通过编译B. 输出****C. 可能通过编译,但是不能通过连接,因而不能运行D. 输出####答案: D22、执行下面语句后的输出为( )int i= -1;if (i < =0)printf(“****\n”)else printf(“%%%%\n”)A. ****B. %%%%C. %%%%CD. 有语法错,不能执行答案: D23、若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是#include <stdio.h>main(){char c;int v0=0,v1=0,v2=0;do{switch(c=getchar()){case ‘a’:case ‘A’:case ‘e’:case ‘E’:case ‘i’:case ‘I’:case ‘o’:case ‘O’:case ‘u’:case ‘U’:v1+=1;default:v0+=1;v2+=1;}}while(c!=’\n’);printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);}A. v0=7,v1=4,v2=7B. v0=8,v1=4,v2=8C. v0=11,v1=4,v2=11D. v0=12,v1=4,v2=12答案: D24、以下程序的输出结果是main( ){ int n=4;while(n–)printf(“%d “,–n);}A. 2 0B. 3 1C. 3 2 1D. 2 1 0答案: A25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

c语言模拟考试试题及答案

c语言模拟考试试题及答案

c语言模拟考试试题及答案C语言模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable#name答案:B2. 下列哪个选项是C语言中的关键字?A. charB. variableC. ifD. string答案:C3. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. float var;C. double var;D. char var;答案:A5. 下列哪个选项是C语言中的控制结构?A. switch-caseB. if-elseC. for-loopD. All of the above答案:D6. 在C语言中,哪个函数用于计算两个数的和?A. pow()B. sqrt()C. sum()D. None of the above答案:D(注:C语言标准库中没有sum()函数)7. 以下哪个选项是C语言中数组的正确声明方式?A. int array[10] = {1, 2, 3};B. int [10] array = {1, 2, 3};C. Both A and BD. None of the above答案:C8. 在C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. printf()D. sprintf()答案:A9. 下列哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { ... }B. int function(int a; int b) { ... }C. int function(int a, int b) { ... }D. int function(int a, b) { ... }答案:C10. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用____关键字可以定义一个函数。

C语言模拟题

C语言模拟题

一.D A C A A B C B A B A A A D C二.TFTFT TFFTF TFFFT FFTTF三. 3 4,4 1 0 0 递归 b 20四1.【参考代码】double y=0;int i;for(i=0; i<=m; i++)y+=1.0/(i+5);return(y);2.【参考代码】int i,max,min;max=min=a[0];for(i=1;i<n;i++)if(a[i]>max) max=a[i];else if(a[i]<min) min=a[i];return(max*min);五1.【参考答案】for (k=4; k<=n; k++)【参考答案】a=b;【参考答案】return d;2.【参考答案】void fun(char *str, char ch )【参考答案】if ( *str == '\0' )【参考答案】str[1] = '\0';六1.【参考答案】i=1【参考答案】200【参考答案】f12.【参考答案】a,bb,a【参考答案】x>yy<x一单选1.下面四个选项中,均是不合法的用户标识符的选项是()。

A、float la0 _AB、A P_0 doC、_123 temp intD、b-a goto int2.表达式18/4*sqrt(4.0)/8值的数据类型为()。

A、doubleB、floatC、intD、不确定3.设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是( ).w=65535,t=7654321endA、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");D、printf("w=%5u,t=%7u\n",w,t);printf( "end");4.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。

安全员C模拟试题及参考答案

安全员C模拟试题及参考答案

安全员C模拟试题及参考答案一、单选题(共47题,每题1分,共47分)1.根据《北京市建筑起重机械安全监督管理规定》,起重机械的安装(包括顶升和附着),可以由()完成。

A、不同的拆装单位B、产权单位C、同一家拆装单位D、施工总承包单位正确答案:C2.劳务分包单位的施工人员50人—200人的,应当配备()专职安全生产管理人员A、1名B、3名C、2名D、4名正确答案:C3.根据《北京市生产安全事故报告和调查处理办法》,事故发生单位和相关责任单位应当认真吸取事故教训,落实整改措施,严肃处理本单位负有事故责任的人员;在事故处理工作完成之日起()个工作日内,将落实人民政府批复的情况报告组织事故调查处理的安全生产监督管理部门。

A、30B、15C、5D、10正确答案:D4.门式脚手架的施工作业层外侧周边应设置()高的挡脚板和两道栏杆,挡脚板和杆均应设置在门架立杆的内侧。

A、120mmB、150mmC、180mmD、250mm正确答案:C5.建筑施工专业承包二级和二级以下资质企业的安全生产管理机构所配备的专职安全生产管理人员应不少于()。

A、4人B、2人C、6人D、3人正确答案:B6.工程合同价1亿元以上的土木工程、线路管道、设备安装工程项目配备的专职安全生产管理人员应不少于()。

A、3人B、1人C、4人D、2人正确答案:A7.施工升降机的金属结构和电气设备外壳均应可靠接地,其接地电阻不应大于()。

A、4ΩB、3ΩC、10ΩD、2Ω正确答案:A8.《中华人民共和国安全生产法》国家对严重危及生产安全的工艺、设备实行()。

A、评估B、论证C、安全管理D、淘汰正确答案:D9.调试塔机力矩限制器的原则是:当起重力矩超过其相应幅度的额定值并小于额定值的()%,应切断提升及向外变幅方向的电源,但是机构可以做相反方向的运动。

A、105B、103C、110D、120正确答案:C10.《中华人民共和国安全生产法》规定,生产经营单位的主要负责人未履行本法规定的安全生产管理职责的,导致发生生产安全事故,受刑事处罚或者撤职处分的,自刑罚执行完毕或者受处分之日起,()内不得担任任何生产经营单位的主要负责人。

C程序设计模拟试题4答案

C程序设计模拟试题4答案

C程序设计模拟试题4C程序设计》模拟试题四一、单项选择题(每小题2分,第15题4分,共40分)。

1. C++语言是先进的程序设计语言,具有以下的特点【①】。

①面向对象、封装性、继承性、多态性②面向过程、封装性、继承性、多态性③面向对象、封装性、继承性、稳定性④面向过程、封装性、继承性、多元性2. C语言中最简单的数据类型包括【③】①整型,实型,逻辑型②整型,实型,空类型③整型,实型,字符型④整型,实型,指针型3. 以下不正确的C语言标识符是【④】。

① ABC123 ② _123abc③ a_bc123 ④ 123abc4. 软件是所有程序、数据和文档资料的总和,计算机软件可分为【③】。

①商业软件、应用软件②工具软件、应用软件③系统软件、应用软件④系统软件、工具软件5. 以下不是结构化程序设计的基本结构的是【②】。

①选择结构②逻辑结构③循环结构④顺序结构6. 如下程序的执行结果是【①】。

main(){int n=1;n++;printf(“%d %d %d “,n,n++,--n);}①1 1 1 ②2 2 2 ③2 3 2 ④2 2 17. 循环语句while(!E);中的表达式!E等价于【③】。

① E!=0 ②E!=1 ③E==0 ④ E==18. 设int m=1,n=2,则++m==n的结果是【①】。

①1 ②0 ③2 ④39. 如果变量定义有:int a=10,c=9;则表达式(--a!=c++)?—a:++c的值为【②】。

①10 ②11 ③8 ④910. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型是【③】。

①int ②float ③double ④不确定11. 以下程序的执行结果是【④】。

main(){int a=2,i;for(i=0;i<3;i++)printf(“%d,”,func(a));}func(int a){int b=0;static c=3;b++;c++;return(a+b+c);}①777 ②7,7,7 ③789 ④7,8,9,12. 有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值3,c的值为2,从键盘输入数据的正确形式应是【③】。

浙江大学C语言模拟考试试题及答案

浙江大学C语言模拟考试试题及答案

4、 读入一批正整数(以零或负数为结束标志),输出其中的素数。函数 prime(m)用于判 断 m 是否为素数。素数就是只能被 1 和自身整除的正整数,1 不是素数,2 是素数。
A. res = 1
B. x >= 0
C. res
浙江大学 C 语言模拟考试试题及答案
第9页
版权所有:浙江大学计算机学院
共 56 页
C. __int&int
D. ___intintint
2、 对于以下的变量定义,表达式______是正确的。
struct node {
char s[10];
int k;
} p[4];
A. p->k=2
B. p[0].s="abc"
C. p[0]->k=2 D. p->s='a'
3、 以下函数的功能是 _____。
B. NUMBER - 1 E. &data[i] H. %d\n
C. %d\0 F. %d\s I. i
浙江大学 C 语言模拟考试试题及答案
第 10 页 共 56 页
版权所有:浙江大学计算机学院
熊熊看星星整理
浙江大学 C 语言模拟试题 2
一、判断题。共 10 题,每题 1 分,共 10 分。正确的请选择 A,错误的请选择 B。
第7页
版权所有:浙江大学计算机学院
共 56 页
熊熊看星星整理
D. n>6&&n<1 G. n-1
E. n>=1&&n<=6 H. n-i+1
F. if(j==n-i)break I. n-i
2、 将一个磁盘文件中的小写字母全部改成大写字母,写入另一个磁盘文件。

C 模拟题 答案

C 模拟题 答案

C++程序设计模拟试卷(二)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 静态成员函数没有()A. 返回值B. this指针C. 指针参数D. 返回类型答案:B解析:(P107)静态成员函数是普通的函数前加入static,它具有函数的所有的特征:返回类型、形参,所以使用(P107)静态成员函数,指针可以作为形参,也具有返回值。

静态成员是类具有的属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this 指针。

静态成员函数当在类外定义时,要注意不能使用static关键字作为前缀。

由于静态成员函数在类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象来访问。

2. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数为()A. 3B. 4C. 5D. 9答案:B解析:(P79)a(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它分配空间,没有调用构造函数。

所以共调用构造函数的次数为4。

3. 有关多态性说法不正确的是()A. C++语言的多态性分为编译时的多态性和运行时的多态性B. 编译时的多态性可通过函数重载实现C. 运行时的多态性可通过模板和虚函数实现D. 实现运行时多态性的机制称为动态多态性答案:C解析:(P171)多态性分为静态的和动态的。

静态通过函数的重载来实现,动态是通过基类指针或基类引用和虚函数来实现的。

所以错误的是C项。

4. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语句后,x.a和x.b的值分别为()A. 1和0B. 1和4C. 4和0D. 4和1答案:A解析:(P75)带默认的构造函数,对应实参没有值时就采用形参值。

c语言模拟考试题及答案

c语言模拟考试题及答案

c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。

答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。

答案:continue4. C语言中,使用________关键字可以立即退出循环。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C模拟题答案文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)C++程序设计模拟试卷(二)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1. 静态成员函数没有()A. 返回值B. this指针C. 指针参数D. 返回类型答案:B解析:(P107)静态成员函数是普通的函数前加入static,它具有函数的所有的特征:返回类型、形参,所以使用(P107)静态成员函数,指针可以作为形参,也具有返回值。

静态成员是类具有的属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this 指针。

静态成员函数当在类外定义时,要注意不能使用static关键字作为前缀。

由于静态成员函数在类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象来访问。

2. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数为()A. 3B. 4C. 5D. 9答案:B解析:(P79)a(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它分配空间,没有调用构造函数。

所以共调用构造函数的次数为4。

3. 有关多态性说法不正确的是()A. C++语言的多态性分为编译时的多态性和运行时的多态性B. 编译时的多态性可通过函数重载实现C. 运行时的多态性可通过模板和虚函数实现D. 实现运行时多态性的机制称为动态多态性答案:C解析:(P171)多态性分为静态的和动态的。

静态通过函数的重载来实现,动态是通过基类指针或基类引用和虚函数来实现的。

所以错误的是C项。

4. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语句后,和的值分别为()A. 1和0B. 1和4C. 4和0D. 4和1答案:A解析:(P75)带默认的构造函数,对应实参没有值时就采用形参值。

调用构造函数时,i=1,不采用默认值,而只有一个参数,j采用默认值0即j=0,因此a=1,b=0,选择A项。

5. 类MyA的拷贝初始化构造函数是()A. MyA()B. MyA(MyA*)C. MyA(MyA&)D. MyA(MyA)答案:C解析:(P80)复制即拷贝构造函数使用对象的引用作形参,防止临时产生一个对象,A无参构造函数,B是指针作为形参,D项是对象,所以选择C项。

6. 在C++中,函数原型不能标识()A. 函数的返回类型B. 函数参数的个数C. 函数参数类型D. 函数的功能答案:D解析:函数的声明,说明函数的参数、返回类型以及函数名,函数体即实现部分决定功能。

所以函数的原型不能决定函数的功能。

7. 友元关系不能()A. 提高程序的运行效率B. 是类与类的关系C. 是一个类的成员函数与另一个类的关系D. 继承答案:D解析:(P111)友元可以是函数与类的关系即友元函数,也可以类与类的关系即友元类,但友元不能继承,是单向性,且不具有传递性。

友元可以访问类中所有成员,提高了访问的方便性。

因此选择D项。

8. 实现两个相同类型数加法的函数模板的声明是()A. add(T x,T y)B. T add(x,y)C. T add(T x,y)D. T add(T x,T y)答案:D解析:(P63)实现两个相同类型数加法结果应该和操作数具有相同类型。

进行加法运算后结果也是和参数具有相同类型,需要返回值。

A无返回值时要用void,B形参无类型,C形参y 没有类型,所以选择D项。

9. 在int a=3,int *p=&a;中,*p的值是()A. 变量a的地址值B. 无意义C. 变量p的地址值D. 3答案:D解析:*p代表引用a变量的值,p代表a的地址值。

所以选择D项。

10. 下列不是描述类的成员函数的是()A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数答案:C解析:(P109)构造函数、析构函数、拷贝构造函数都是特殊的成员函数,友元则不是成员函数。

所以选择C项。

11. 如果从原有类定义新类可以实现的是()A. 信息隐藏B. 数据封装C. 继承机制D. 数据抽象答案:C解析:(P129)继承指在原有类的基础上产生新类。

数据封装即数据和操作组合在一起,形成类。

信息的隐藏,通过访问权限来实现。

数据抽象,将事物的特征抽象为数据成员或服务。

因此选择C项。

12. 下面有关类说法不正确的是()A. 一个类可以有多个构造函数B. 一个类只有一个析构函数C. 析构函数需要指定参数D. 在一个类中可以说明具有类类型的数据成员答案:C解析:(P80)构造函数可以有参数、可以重载、因此可以有多个,A项正确。

析构函数只有一个不能重载、不能继承,没有返回值,B项正确,C项错误。

13. 在函数定义中的形参属于()A. 全局变量B. 局部变量C. 静态变量D. 寄存器变量答案:B解析:形参或函数中定义的变量都是局部变量。

在函数外定义的变量是全局变量。

形参只能用局部变量,频繁使用的变量可以声明为寄存器变量,形参不能使用静态变量或寄存器变量。

14. 下列有关重载函数的说法中正确的是()A. 重载函数必须具有不同的返回值类型B. 重载函数参数个数必须相同C. 重载函数必须有不同的形参列表D. 重载函数名可以不同答案:C解析:(P59)函数的重载必须函数名相同而形参类型或个数不同,与返回值无关。

15. this指针存在的目的是()A. 保证基类私有成员在子类中可以被访问B. 保证基类保护成员在子类中可以被访问C. 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码D. 保证基类公有成员在子类中可以被访问答案:C解析:(P86)C++要求函数在被调用之前,应当让编译器知道该函数的原型,以便编译器利用函数原型提供的信息去检查调用的合法性,强制参数转换成为适当类型,保证参数的正确传递。

对于标准库函数,其声明在头文件中,可以用#include宏命令包含这些原型文件;对于用户自定义函数,先定义、后调用的函数可以不用声明,但后定义、先调用的函数必须声明。

一般为增加程序的可理解性,常将主函数放在程序开头,这样需要在主函数前对其所调用的函数一一进行声明,以消除函数所在位置的影响。

所以选择C项。

16. 关于new运算符的下列描述中,错误的是()A. 它可以用来动态创建对象和对象数组B. 使用它创建的对象或对象数组可以使用运算符delete删除C. 使用它创建对象时要调用构造函数D. 使用它创建对象数组时必须指定初始值答案:D解析:(P78)new创建的对象数组不能指定初始值,所以调用无参的构造函数,选择D 项。

17. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。

如果要给m赋值为5,正确的是()A. =5;B. A1->p=5;C. A1.*p=5;D. *=5;答案:C解析:(P118)A中p是指针即地址,错误;B选项中A1不是指针不能使用指向运算符->,错误;“*”比“.”级别要高,所以D选项*=5相当于(*A1).p=5;错误。

另外涉及到指向成员函数时注意以下几点:指向成员函数的指针必须于其赋值的函数类型匹配的三个方面:(1)参数类型和个数;(2)返回类型;(3)它所属的类类型。

成员函数指针的声明:指向short型的Screen类的成员的指针定义如下:short Screen::* ps_Screen;ps_Screen可以用_height的地址初始化如下:shortScreen::*ps_Screen=&Screen::_height;类成员的指针必须总是通过特定的对象或指向改类型的对象的指针来访问。

是通过使用两个指向成员操作符的指针(针对类对象和引用的.*,以及针对指向类对象的指针的->*)。

18. 以下基类中的成员函数表示纯虚函数的是()A. virtual void tt()=0B. void tt(int)=0C. virtual void tt(int)D. virtual void tt(int){}答案:A解析:(P173)当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,实现由派生类完成。

格式:virtual<函数返回类型说明符><函数名>(<参数表>)=0;。

19. C++类体系中,不能被派生类继承的有()A. 常成员函数B. 构造函数C. 虚函数D. 静态成员函数答案:B解析:(P132)构造函数不能被继承。

20. 静态成员函数不能说明为()A. 整型函数B. 浮点函数C. 虚函数D. 字符型函数答案:C解析:(P108)使用关键字static声明的成员函数就是静态成员函数,静态成员函数也属于整个类而不属于类中的某个对象,它是该类的所有对象共享的成员函数。

静态成员函数可以在类体内定义,也可以在类外定义。

当在类外定义时,要注意不能使用static关键字作为前缀。

由于静态成员函数在类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象来访问。

虚函数是非静态的、非内联的成员函数。

静态成员函数不能被说明为虚函数。

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答案。

错填、不填均无分。

1. 假设int a=1,b=2;则表达式(++a/b)*b--的值为___。

答案:2[解析]前缀++或――表示先使变量值变化,再使用,这和后缀恰恰相反。

但是编译cout<<(++a/b)*b--时,先++a/b值为1,后1*b--,先取b=2,结果为2,再让b=1。

2. 抽象类中至少要有一个___函数。

答案:(P173)纯虚[解析]至少有一个纯虚函数的类就称为抽象类,即不能实例化。

3. 一个抽象类的派生类可以实例化的必要条件是实现了所有的___。

答案:(P173)纯虚函数的定义[解析]抽象类只因有纯虚函数,所以不能被实例化,所以派生类要实例化必须对纯虚函数进行定义。

4. 下面程序的输出结果为___。

#include <>void main(){int num=2,i=6;do{i--;num++;}while(--i);cout<<num<<endl;}答案:5[解析]do-while循环,前缀先使i减少1后判断是否为零,不为零时再次执行循环,为零退出循环。

相关文档
最新文档