历年c语言考试题及答案函数_第1页
历年c语言考试题及答案函数_第2页
历年c语言考试题及答案函数_第3页
历年c语言考试题及答案函数_第4页
历年c语言考试题及答案函数_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

历年c语言考试题及答案函数

一、单项选择题(每题2分,共10题)1.以下关于C语言函数定义正确的是()A.intfun();{}B.intfun(){}C.fun()int{}D.intfun({}答案:B2.函数调用时,实参和形参()A.个数、类型必须一致B.个数可以不同C.类型不必相同D.无任何要求答案:A3.若函数没有返回值,其返回值类型应定义为()A.intB.charC.voidD.float答案:C4.以下函数声明正确的是()A.intfunx,y;B.intfun(intx;inty);C.intfun(intx,inty);D.intfunintx,inty;答案:C5.以下说法正确的是()A.函数定义可嵌套,函数调用不可嵌套B.函数定义和调用都可嵌套C.函数定义和调用都不可嵌套D.函数定义不可嵌套,函数调用可嵌套答案:D6.函数形参在函数定义时()A.不分配内存B.分配固定内存C.随机分配内存D.分配动态内存答案:A7.C语言中,函数返回值通过()带回A.形参B.实参C.return语句D.全局变量答案:C8.若有函数定义intfun(inta,intb){returna+b;},则函数返回值类型是()A.intB.不确定C.voidD.float答案:A9.以下函数定义中,形式参数是数组的是()A.intfun(inta)B.intfun(inta)C.intfun(inta[5])D.B和C都对答案:D10.函数在调用前()A.必须声明B.一定不用声明C.简单函数不用声明D.复杂函数才声明答案:A二、多项选择题(每题2分,共10题)1.以下关于C语言函数的说法正确的有()A.函数可以有多个形参B.函数可以没有形参C.函数必须有返回值D.函数可以返回多个值答案:AB2.函数声明的作用有()A.说明函数的参数个数B.说明函数的返回值类型C.说明函数的功能D.让编译器知道函数的存在答案:ABD3.以下哪些可以作为函数的返回值类型()A.intB.floatC.charD.struct结构体类型答案:ABCD4.以下说法正确的是()A.函数可以调用自身B.不同函数中可以有相同名字的局部变量C.函数中定义的局部变量在函数调用结束后释放内存D.全局变量的作用域是整个程序答案:ABC5.函数调用时传递参数的方式有()A.值传递B.地址传递C.引用传递D.名称传递答案:AB6.以下哪些函数定义形式是合法的()A.voidfun(){}B.intfun(inta=0){}C.charfun(charc){returnc;}D.floatfun(floatf,inti){}答案:ACD7.函数形参和实参的关系是()A.实参将值传递给形参B.形参和实参占用不同内存C.形参和实参类型必须匹配D.形参和实参个数必须相同答案:ABCD8.以下函数返回值类型为指针的是()A.intfun(){}B.charfun(){}C.floatfun(){}D.structnodefun(){}答案:ABD9.关于函数的递归调用,正确的是()A.必须有递归结束条件B.递归调用会消耗更多系统资源C.递归函数执行效率高D.递归函数可以转换为非递归实现答案:ABD10.函数的定义包含()A.函数头B.函数体C.函数声明D.函数调用答案:AB三、判断题(每题2分,共10题)1.函数必须有返回值。()答案:×2.函数形参在函数调用时才分配内存。()答案:√3.函数声明和函数定义是一回事。()答案:×4.函数中可以定义多个同名局部变量。()答案:×5.全局变量在整个程序运行期间都占用内存。()答案:√6.函数调用时,实参和形参的顺序可以不一致。()答案:×7.函数可以嵌套定义。()答案:×8.无返回值的函数可以使用return语句。()答案:√9.函数的形参只能是变量。()答案:×10.递归函数一定比非递归函数执行效率高。()答案:×四、简答题(每题5分,共4题)1.简述函数声明的作用。答案:函数声明的作用是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查。让编译器在编译调用函数的代码时,知道函数的存在及相关信息,从而顺利编译。2.简述函数参数值传递和地址传递的区别。答案:值传递是将实参的值复制一份给形参,形参的改变不会影响实参;地址传递是将实参的地址传递给形参,形参通过地址对实参所指向的内存进行操作,形参的改变会影响实参。3.什么是函数的递归调用?答案:函数的递归调用是指在函数定义中,函数直接或间接调用自身的情况。递归调用需要有递归结束条件,否则会导致无限递归,使程序崩溃。递归常用于解决可以分解为相似子问题的情况。4.函数中局部变量和全局变量有什么区别?答案:局部变量在函数内部定义,作用域局限于函数内部,函数调用结束后内存释放;全局变量在函数外部定义,作用域是整个程序,程序运行期间一直占用内存。局部变量和全局变量同名时,函数内优先使用局部变量。五、讨论题(每题5分,共4题)1.讨论函数在C语言编程中的重要性。答案:函数在C语言中非常重要。它能将复杂程序分解为多个小模块,提高代码的可读性和可维护性;实现代码复用,减少重复代码;便于分工协作开发。通过函数调用,可使程序结构更清晰,逻辑更有条理,提高编程效率。2.分析递归函数在实际应用中的优缺点。答案:优点是对于解决具有递归性质的问题,如阶乘、斐波那契数列等,代码简洁直观,逻辑清晰。缺点是递归调用会消耗较多系统资源,因为每次调用都要保存现场等信息;递归深度过大会导致栈溢出;执行效率相对较低,因为有大量函数调用开销。3.讨论函数参数传递方式对程序的影响。答案:值传递适用于参数不需要被函数修改的情况,简单直接且安全,不会意外改变实参值。地址传递用于需要在函数内修改实参值的场景,能实现数据的双向传递,但使用不当可能导致数据错误。不同传递方式选择影响程序逻辑实现和数据

温馨提示

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

评论

0/150

提交评论