计算机程序设计(C++)单元测试题2及答案_第1页
计算机程序设计(C++)单元测试题2及答案_第2页
计算机程序设计(C++)单元测试题2及答案_第3页
计算机程序设计(C++)单元测试题2及答案_第4页
计算机程序设计(C++)单元测试题2及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单选题1、假定函数定义为:voidfx(intn,doublex){…}‍那么,正确的调用语句是()。A.voidfx(n,x);B.fx(x,n);//x,n是已定义的int,double变量C.fx(inty,doublem);D.k=fx(10,19.8);正确答案:B2、‌在一个C++程序中,main函数()。A.和普通函数一样,可以在代码主体的任何位置出现。B.必须出现在所有普通函数之前C.必须出现在所有普通函数之后D.必须出现在固定位置正确答案:A3、​定义函数的目的是()。A.提高程序的可读性B.减少程序文件占用的内存空间C.提高程序的执行效率D.减少程序的篇幅正确答案:A解析:其余三个选项都不成为创建函数的目的4、​以下哪个函数声明是正确的?()A.voidplay(a:Integer,b:Integer);B.voidplay(inta,intb);C.voidplay(inta,b);D.Subplay(aasinteger,basinteger);正确答案:B5、‌函数的返回值类型是()决定的。A.由定义函数时所指定的返回值类型B.由return语句中的表达式类型C.在调用函数时临时D.由调用该函数的主调函数类型正确答案:A6、假定函数定义为:voidfun(charch,floatx){…}‍那么,正确的调用语句是()。A.fun('65',2.8);B.t=fun('D',16.5);C.fun(32,32);D.fun("abc",3.0);正确答案:C解析:A、第一个实参与相应形参类型不匹配。B、该函数无返回值D、第一个实参与相应形参类型不匹配。7、引入内联函数的目的是为了______。A.方便变量的使用B.提高函数调用的效率C.扩大局部变量的使用范围D.节省内存空间正确答案:B解析:提高函数调用效率是使用内联函数的主要目的8、下列说法中不正确的是:A.函数必须有返回值B.return语句后的括号可要可不要C.函数值是由return语句返回给主调函数的D.如果函数有返回值,那么它的类型是确定的正确答案:A9、‎在一个程序中,如果函数fA调用了函数fB,函数fB又调用了函数fA,那么______A.这样调用方式是不允许的B.称为函数的间接递归调用C.称为函数的直接递归调用D.称为函数的循环调用正确答案:B10、由inline修饰的是______。A.外联函数B.内联函数C.宏定义D.调用函数定义正确答案:B11、‎当给函数的参数设置默认值时,正确的说法是____________。‎A.若给某一参数设置了默认值,那么在参数表中其后所有的参数都必须也设置默认值B.任何情况下,函数调用时均可不列出已设置默认值的参数C.若给某一参数设置了默认值,那么在参数表中其前所有的参数都必须也设置默认值D.给函数的参数设置默认值可以提高程序运行效率正确答案:A解析:B、在调用时,若给已经设置默认值的参数传递实际值,则在参数表中被取代参数的左边所定义的所有参数,无论是否有默认值,都必须传递实际参数。12、关于C++函数的叙述中,正确的是A.函数在被调用之前必须先声明或定义B.函数不能自己调用自己C.每个函数都必须返回一个值D.每个函数至少要有一个参数正确答案:A解析:C++的语法规定:函数可以没有参数,可以没有返回值,函数可以递归调用,自己调用自己13、地址是指______。A.变量的类型B.变量的值C.变量所在的内存单元编号D.变量本身正确答案:C14、引用______。A.指向一块内存区域B.需要分配内存区域C.是某内存区域的别名D.可以为空正确答案:C解析:引用是某内存区域的别名,不能为空,不需要分配内存区域。15、‏指针______。A.不能为空B.是一块内存区域的别名C.的内容为指向内存的地址D.的内容不可变正确答案:C解析:C、指针指向一块内存,其内容为指向内存的地址,可以变化,也可以为空。16、指针做形参的函数不能做到的是____________A.将被调用函数内部的变量地址传递到调用函数。B.在被调用函数内部修改调用函数中变量的值。C.将调用函数中变量的值通过参数传递到被调用函数。D.将被调用函数内部变量的值通过参数传递到调用函数。正确答案:A解析:A、函数内部的变量一旦函数执行结束就会被销毁,将其地址传递到调用函数是没有意义且危险的。17、‎如果定义inta,*p=&a;则下列哪项的表达式为逻辑假值。A.p==&*pB.a==*&aC.*p==&aD.p==&a正确答案:C解析:C、p、a、*p、&a分别表示:指针变量p、整型变量a、指针p所指向的变量a、变量a的地址,故只有A中表达式为逻辑假值。18、‏若有以下定义,则赋值正确的是______。inta,b,*p;floatc,*q;‏A.q=&a;B.p=NULL;C.q=p;D.p=&c;正确答案:B解析:其他选项赋值号两边变量的数据类型不匹配。19、两个指针______。A.可在一定条件下进行相等或不等的比较运算B.可在一定条件下相加C.如果同时指向一个变量,则此后就不能再指向其他变量了D.任何时候都不能相减正确答案:A解析:A、如果两个指针都指向同一个数组中的元素,则可以相减,其值为两个指针之间的元素个数,但它们不能相加。某个时刻两个指针同时指向了一个变量,不影响其后改变其值而指向其他变量。20、如果定义intx[10]={1,2,3},*m=x;则结果不能表示地址的表达式是______。A.*mB.&x[0]C.xD.m正确答案:A21、设p和q是指向同一个int类型数组不同元素的指针变量且q>p,k也为int类型的变量,则可以执行的语句是______。A.p+qB.k=*(p+q)C.k=*(q-p)D.k=*p*(*q)正确答案:D22、‎如果定义inta[10],*p=a;则不与a[5]等价的是______。A.*(p+5)B.p[5]C.*(a+5)D.p+5正确答案:D23、如果定义intaa[10]={1,2,3,4,5,6,7,8,9,10},*p=aa;则下列选项中数值为6的表达式是______。‎A.*(p+6)B.p+5C.*p+6D.*p+=5正确答案:D24、‏使用new向系统动态申请内存时,正确的是______A.有可能获得空指针B.总是能获得一个指向所需内存空间首地址的指针C.分配的内存空间只能使用一个特定的指针访问D.分配的内存空间不用时系统会自动收回正确答案:A二、判断题1、‏程序中的其他函数可以调用主函数。正确答案:×解析:主函数可以调用其他函数,但不能被其他函数调用。2、‏一个程序有且只有一个主函数。正确答案:√3、‎函数声明就是函数定义。正确答案:×解析:函数定义中包括该函数完整的源代码。函数声明中仅有函数原型(头语句或简化的头语句),当调用语句所处位置之前没有函数定义时使用。4、‌C++程序总是从最先定义的函数开始执行。正确答案:×解析:C++程序总是从main()函数开始执行的。5、‏参数个数类型都相同,但返回值类型不同的两个函数可以同名重载。正确答案:×6、‏当变量超出它的作用域时就一定会被销毁。正确答案:×解析:静态变量不会。7、​实参的数据类型必须与形参的相同。正确答案:×解析:实参与相应形参的数据类型相容即可。例如,当形参定义为double型时,实参可以定义为int型。8、‎当需要从函数中返回多个值时可以使用全局变量。正确答案:√解析:这是全局变量的用途之一,尽管不是十分推荐这样做。9、‌如果一个指针加1,实际上是加上了指针所指向的数据类型大小。正确答案:√10、可以交换两个数的函数定义为:voidswap(int*p,int*q){int*temp;*temp=*p;*p=*q;*q=*temp;‌}正确答案:×解析:swap传递的了一个地址,函数中的形参p、q是指向实参数a、b的两个指针。但这里的语句int*temp;*temp=*p;是错误的,原因是:int*temp新建了一个指针但未分配内存。*temp=*p并非指向而是拷贝,即将*p所指向的内存的值(a的值)拷贝到*temp所指内存。但int*temp是不分配内存的,于是系统在拷贝时临时给一个随机地址存值。所分配的随机地址是无法预期的,且在函数运行结束后也不回收,造成内存泄漏。11、‏指针可以通过赋给不同的常数值来指向内存空间的任意位置。正确答案:×12、‏指针不仅可以指向变量,还可以指向函数,通过合适类型的函数指针可以调用类型匹配的函数。正确答案:√13、语句int**cc=newint*[10];动态申请了有10个元素的数组,数组中每个元素都是一个int*指针。正确答案:√14、‌应用中,C++中的

温馨提示

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

评论

0/150

提交评论