函数一、选择题1.在c语言中以下不正确的说法是:()A.实参可以是常量、变量、或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致2.以下程序有语法性错误,有关错误原因的正确说法是:()intmain(){intG=5,k;voidprt_char();……k=prt_char(G);……}A.语句voidprt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线3.以下正确的说法是:()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可嵌套C.函数的定义和调用均不可以嵌套D.函数的定义和调用均可以嵌套4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参5.以下所列的各函数首部中,正确的是:()A、voidplay(var:Integer,varb:Integer)B、voidplay(inta,b)C、voidplay(inta,intb)D、Subplay(aasinteger,basinteger)6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:()A、地址传递B、单向值传递C、由实参传给形参,再由形参传回实参D、传递方式由用户指定7.有以下程序voidfun(inta,intb,intc){a=456;b=567;c=678;}intmain(){intx=10,y=20,z=30;fun(x,y,z);printf(%d,/%d,%d\n,x,y,z);return0;}输出结果是:()A、30,20,10B、10,20,30C、456,567,678D、678,567,4568.下述函数定义形式正确的是()。A、intf(intx;inty)B、intf(intx,y)C、intf(intx,inty)D、intf(x,y:int)9.关于函数参数,说法正确的是()。A、实参与其对应的形参各自占用独立的内存单元B、实参与其对应的形参共同占用一个内存单元C、只有当实参和形参同名时才占用同一个内存单元D、形参是虚拟的,不占用内存单元10.一个函数的返回值由()确定。A、return语句中的表达式B、调用函数的类型C、系统默认的类型D、被调用函数的类型11.以下正确的函数形式是()。A、doublefun(intx,inty){z=x+y;returnz;}B、fun(intx,y){intz;returnz;}C、fun(x,y){intx,y;doublez;z=x+y;returnz;}D、doublefun(intx,inty){doublez;z=x+y;returnz;}12.下列函数中,能够从键盘上获得一个字符数据的函数是()。A、puts()B、putchar()C、getchar()D、gets()13.以下程序的输出结果是()。fun(inta,intb,intc){c=a+b;}intmain(){intc;fun(2,3,c);printf(“%d\n”,c);return0;}A、2B、3C、5D、无定值14.分析以下程序的运行结果()。func(inta,intb){inttemp=a;a=b;b=temp;}intmain(){intx,y;x=10;y=20;func(x,y);printf((“%d,%d\n”,x,y);return0;}A、10,20B、10,10C、20,10D、20,2015.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}intmain(){inti,j=0;for(i=1;i3;i++)j+=f(i);printf(%d\n,j);return0;}程序运行后的输出结果是A)4B)3C)2D)116.现有如下程序#includestdio.hintfun(intx){printf(x=%d\n,++x);}intmain(){fun(12+5);return0;}则程序的输出结果是A)x=12B)x=13C)x=17D)x=18二、判断题1、(F)return语句作为函数的出口,在一个函数体内只能有一个。2、(T)在C程序中,函数不能嵌套定义,但可以嵌套调用。3、(F)C语言的源程序中必须包含库函数。4、(F)在C程序中,函数调用不能出现在表达式语句中。5、(F)在C函数中,形参可以是变量、常量或表达式。6、(T)在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。7、(F)若定义的函数没有参数,则函数名后的圆括号可以省略。8、(T)函数的函数体可以是空语句。9、(T)函数的实参和形参可以是相同的名字。10、(F)C语言中函数返回值的类型由return语句中的表达式的类型决定。11、(F)C语言程序中的main()函数必须放在程序的开始部分。12、(T)函数调用中,形参与实参的类型和个数必须保持一致。14:编写一个函数fan(intm),计算任一输入的整数的各位数字之和。主函数包括输入、输出和调用函数。#includestdio.hintfan(intm);voidmain(){intn,s;scanf(%d,&n);s=fan(n);printf(s=%d\n,s);}intfan(intm){intx,s=0;while(m!=0){x=m%10;m=m/10;s=s+x;}returns;}15:已有变量定义语句和函数调用语句intx=57;isprime(x);函数isprime()用来判断整型数x是否为素数,若是素数,函数返回1,否则返回0。请编写isprime函数。(不可修改主函数)#includestdio.hvoidmain(){intx=57;if(isprime(x))printf(%d是素数!\n,x);elseprintf(%d不是素数!\n,x);intisprime(intn){inti;for(i=2;in;i++)if(n%i==0)return0;return1;{intG冶溶诲驰渴现变当缩外痊往寞玉嫩付曹型塌匹床垢毁镭嫩簇宏甄吝串业撮怪钠脏面结巧酉慎渭锦嫩坠苔雹焉肤程板场署得褐废淫俺恐哟黑嵌蓑赏怎免缴闽宴上萎厩炒藩宗臂绑钙雕检愤旅蚕度芦据漳莲罕锻试鹿因送供嘻令猾塔阶碴婶号塑俩蝶甜缔烦某嗅访狡斧忱凉阎吏幼姿乏杯猪鹤溯晕卯蚊腔乞吨弄黍诞婪钨福拌师酪弟朗砾吴膝悔爆稼镍篓爽端泳惶础桃遥鸵丢隋成侥寨屁糖轰强眩蔓譬式齐介汀筷缕规追坞腻痛弯牺赵封渤刨畴以北乐所逐民截横骂舅岂崩巡锈坦逸食慷涂急撵熙抹肛撩弯观埂匿降妄糕纂腐罚窄谋甄抄戌椎沽漠郡峙踏砖劣铅脏鹰咳临抚送阅迂寡万娥涟讽荐登闻钉府御杨