资源描述:
《chapter8习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章函数 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的) 8.1若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 正确答案:D 8.2在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递 B)单向值传递 C)由实参传形参,再由形参传实参 D)传递方式由用户指定 正确答案:B 8.3以下正确的说法是
2、A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参类型不一致,以实参类型为准 正确答案:C 8.4以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用 正确答案:B 8.5以下叙述正确的是 A)
3、函数可以嵌套定义但不能嵌套调用 B)函数既可以嵌套调用也可以嵌套定义 C)函数既不可以嵌套定义也不可以嵌套调用 D)函数可以嵌套调用但不可以嵌套定义 正确答案:D8.6下面对C语言的描述中,正确的是 A)函数一定有返回值,否则无法使用函数 B)C语言函数既可以嵌套定义又可以递归调用 C)在C语言中,调用函数时,只能将实参的值传递给形参 D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中 正确答案:C 8.7下列说法中错误的是 A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值 B)若全局变量
4、和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽 C)静态全局变量可以被其他的编辑单位所引用 D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失 正确答案:C 8.8以下程序有语法错误,有关错误原因的正确说法是 main() {intG=5,k; voidprt_char(); ... k=prt_char(G); ... } A)语句voidprt_char();有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字
5、母8-7 C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 正确答案:C 8.9以下正确的函数头定义形式是 A)doublefun(intx,inty) B)doublefun(intx;inty) C)doublefun(intx,inty); D)doublefun(intx,y); 正确答案:A 8.10以下所列的各函数首部中,正确的是 A)voidplay(var:Integer,varb:Integer) B)voidplay(inta,b) C)voidplay(inta,intb) D)Su
6、bplay(aasinteger,basinteger) 正确答案:C 8.11不合法的main函数命令行参数表示形式是 A)main(inta,char*c[]) B)main(intarc,char**arv) C)main(intargc,char*argv) D)main(intargv,char*argc[]) 正确答案:C8.12下面函数调用语句含有实参的个数为 func((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5 正确答案:B 8.13设有如下函数
7、fun(floatx) {printf("%d",x*x); } 则函数的类型是 A)与参数x的类型相同B)是void C)是int型D)无法确定 正确答案:C 8.14有以下程序 floatfun(intx,inty) {return(x+y);} main() {inta=2,b=5,c=8; printf("%3.0f",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是 A)编译出错 B)9 C)21 D)9.0 正确答案:B 8.15下列程序执行后的输出结果是
8、 voidfunc1(inti); voidfunc2(inti); charst[]="hello,friend!"; voidfunc1(inti)