C语言程序设计 第六章 函数 试题及答案

2019-01-07 17:48

C语言程序设计 第六章 函数 试题及答案 1 选择题

*6.1建立函数的目的之一,以下正确的说法是 。

A)提高程序的执行效率 B)提高程序的可读性

C)减少程序的篇幅 D)减少程序文件所占内存 参考答案:B

*6.2 以下正确的说法是 。

A)用户若需要调用标准库函数,调用前必须重新定义

B)用户可以重新定义标准库函数,若如此,该函数将失去原有意义 C)用户系统根本不允许用户重新定义标准库函数

D)用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动寻找该文件。 参考答案:B

6.3 以下正确的函数定义形式是 。

A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)doubel fun(int x;int y); 参考答案:A

*6.4 以下正确的函数形式是 。

A)double fun(int x,int y){z=x+y;return z;} B)double fun(int x,y){int z;return z;}

C)fun(x,y){int x,y;double z; z=x+y; return z;}

D)double fun(int x,int y){double z;z=x+y;return z;} 参考答案:D

*6.5以下正确的说法是 。

A)实参和与其对应的形参占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元

C)只有当实参和与其对应的形参同名时才共占用一个存储单元 D)形参是虚拟的,不占用存储单元 参考答案:A

参考分析:本题并不严谨,因为实参可以是表达式,当实参为表达式时,实参并不单独占用独立的存储单元。

6.6 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数 。

A)没有返回值 B)返回若干个系统默认值 C)返回一个用户所希望的函数值 D)返回一个不确定的值 参考答案:D

参考分析:函数有没有返回值是由函数类型所决定的,当没有retrun语句,系统不能返回一个确定的值而已。

6.7 以下不正确的说法是,C语言规定 。

A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以是任意类型

D)实参应与其对应的形参类型一致

参考答案:B

6.8 以下正确的说法是 。

A)定义函数时,形参的类型说明可以放在函数体内 B)return后面的值不能为表达式

C)如果函数的类型与返回值类型不一致,以函数类型为准 D)如果形参与实参的类型不一致,以实参类型为准 参考答案:C

6.9 C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。

A)地址传递 B)单向值传递

C)由实参传给形参,再由形参传回实参 D)由用户指定传递方式 参考答案:B

6.10 以下程序有语法性错误,有关错误原因的正确说法是 。

main() {int G=5,k;

void prt_char(); ......

k=prt_char(G); ...... }

A)语句void prt_char();有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母

C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 参考答案:C

6.11 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 。

A)float型 B)int型 C)long型 D)double型 参考答案:B

6.12 C语言规定,函数返回值的类型是由 所决定。

A)return语句中的表达式类型 B)调用该函数时的主调函数类型 C)调用该函数是系统临时指定

D)在定义该函数时所指定的函数类型 参考答案:D

*6.13 下面函数调用语句含有实参的个数为 。

fun((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5 参考答案:B

参考分析:该函数的实参是两个逗号表达式。 6.14 以下错误的描述是 。 函数调用可以

A)出现在执行语句中 B)出现在表达式中 C)作为函数的实参 D)作为函数的形参 参考答案:D

6.15 以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

#include #include float f(float,float); main()

{float x,y,z,sum;

scanf(\ sum=f(【1】)+f(【2】); printf(\}

float f(float a,float b) {float value; falue=a/b; return(value); }

【1】A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y 【2】A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y 参考答案:【1】B 【2】C

6.16以下正确的描述是________。

A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可嵌套 D)函数的定义和函数的调用均可以嵌套 参考答案:B

6.17 以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有的这样的数及其个数。请选择填空。

sub(int k,int n) {int a1,a2; a2=【1】; a1=k-【2】;

if((k%3==0&&a2==5)||(k%3==0&&a1==5)) {printf(\ else return -1; }

main()

{int n=0,k,m;

for(k=10;k<100;k++) {m=sub(k,n); if(m!=-1) n=m; }

printf(\}

【1】A)k*10 B)k C)k/10 D)k*10 【2】A)a2*10 B)a2 C)a2/10 D)a2 参考答案:【1】C 【2】A

6.18 以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A','B','C');则符合程序段运行结果的选项是 。

void move(char getone,char putone) {printf(\

void hanoi(int n,char one,char two,char three) {if(n==1) move(one,three); else

{hanoi(n-1,one,three,two); move(one,three);

hanoi(n-1,two,one,three);

} }

A)A-->C B)A-->C C)A-->C D)A-->C A-->B A-->B A-->B A-->B C-->B C-->A C-->B C-->B B-->A A-->B A-->C A-->C C-->B B-->C B-->A A-->B A-->C A-->C B-->C B-->C A-->B A-->B A-->C A-->C 参考答案:C

6.19 若用数组名作为函数调用的实参,传递给形参的是 。

A)数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数 参考答案:A

6.20 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为 。

int a[3][4]; f(a);

A)f(int array[][6]) B)f(int array[3][]) C)f(int array[][4]) D)f(int array[2][5]) 参考答案:B

6.21 若使用一位数组名作为函数实参,则以下正确的说法是 。

A)必须在主调函数中说明此数组的大小 B)实参数组类型与形参数组类型可以不匹配 C)在被调函数中,不需要考虑形参数组的大小 D)实参数组名与形参数组名必须一致 参考答案:C

6.22 以下函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。

int binary(int a[],int m) {int low=0,high=9,mid; while(low<=high) {mid=(low+high)/2; if(ma[mid]) 【2】; else return(mid); }

return(-1); }

A)high=mid-1 B)high=mid+1 C)low=mid-1 D)low=mid+1 参考答案:【1】A 【2】D

6.23如果在一个复合语句中定义了一个变量,则有关该变量正确的说法是 。

A)只在该复合语句中有效 B)只在该函数中有效 C)在本程序范围内均有效 D)为非法变量 参考答案:A

6.24 以下不正确的说法为 。

A)在不同函数中可以使用相同名字的变量 B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

参考答案:D

6.25 以下程序的正确运行结果是 。

#define MAX 10 int a[MAX],i; main()

{printf(\sub2()

{int a[MAX],i,max; max=5;

for(i=0;i

sub1()

{for(i=0;i

for(i=0;i

A) 0 2 4 6 8 10 12 14 16 18 B) 0 1 2 3 4

0 1 2 3 4 0 2 4 6 8 10 12 14 16 18 C) 0 1 2 3 4 5 6 7 8 9 D) 0 2 4 6 8 10 12 14 16 18 0 1 2 3 4 0 2 4 6 8 10 12 14 16 18 参考答案:D

*6.26 以下程序的正确运行结果是 。

#include void num() {extern int x,y; int a=15,b=10; x=a-b; y=a+b; }

int x,y; main()

{int a=7,b=5; x=a+b; y=a-b; num();

printf(\}

A)12,2 B)12,25 C)5,25 D)5,2 参考答案:C

6.27 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 。

A)auto B)static C)extern D)register 参考答案:A

6.28 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 。

A)extern B)register C)auto D)static 参考答案:D

*6.29 以下程序的正确运行结果是 。

main() {int a=2,i;


C语言程序设计 第六章 函数 试题及答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版高一语文2018上学期期中考试模拟题(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: