当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《C语言程序设计》课程教学资源:第八章 函数 练习8

资源类别:文库,文档格式:DOC,文档页数:34,文件大小:169KB,团购合买
第八章函数 8.1选择题 【题8.1】以下正确的说法是 建立函数的目的之一是A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 【题8.2】以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文 件包括到用户源文件中,系统自动去调
点击下载完整版文档(DOC)

第八章函数 8.1选择题 【题8.1】以下正确的说法是_ 建立函数的目的之一是A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 【题8.2】以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件 包括到用户源文件中,系统自动去调 【题8.3】以下正确的函数定义形式是 A) double fun(int B) double fun(int x; int y) D) double fun(int x, y) 【题8.4】以下正确的函数形式是 A) double fun(int x, int y) I z=x+y: return z: I B)fun (int x, y) i int z: return z: I I int x, y: double z: z=x+y: return z: double z: z=x+y: return z: I 【题8.5】以下正确的说法是 在C语言中A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用存储单元 D)形参是虚拟的,不占用存储单元 【题8.6】若调用一个函数,且此函数中没有 return语句,则正确的说法是 该函数A)没有返回值 B)返回若干个系统默认值

第八章 函数 8.1 选择题 【题 8.1】以下正确的说法是 。 建立函数的目的之一是 A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 【题 8.2】以下正确的说法是 。 A) 用户若需调用标准库函数,调用前必须重新定义 B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C) 系统根本不允许用户重新定义标准库函数 D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件 包括到用户源文件中,系统自动去调 【题 8.3】以下正确的函数定义形式是 。 A) double fun(int x,int y) B) double fun(int x;int y) C) double fun(int x,int y); D) double fun(int x,y); 【题 8.4】以下正确的函数形式是 。 A) double fun(int x,int y) { z=x+y; return z; } B) 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; } 【题 8.5】以下正确的说法是 。 在 C 语言中 A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用存储单元 D)形参是虚拟的,不占用存储单元 【题 8.6】若调用一个函数,且此函数中没有 return 语句,则正确的说法是 。 该函数 A)没有返回值 B)返回若干个系统默认值

C)能返回一个用户所希望的函数值 D)返回一个不确定的值 【题8.7】以下不正确的说法是 C语言规定A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以为任意类型 D)形参应与其对应的实参类型一致 【题8.8】以下正确的说法是 A)定义函数时,形参的类型说明可以放在函数体内 B) return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准 D)如果形参与实参的类型不一致,以实参类型为准 【题8.9】C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 A)地址传递 B)单向值传递 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式 【题8.10】以下程序有语法性错误,有关错误原因的正确说法是 void prt char o prt char(G) A)语句 void prt char0;有错,它是函数调用语句,不能用void说明 B)变量名不能使用大写字母 C)函数说明和函数调用语句之间有矛盾 D)函数名不能使用下划线 【题8.11】C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 A) float型 B)int型 C)long型 D) double型 【题8.12】C语言规定,函数返回值的类型是由 A) return语句中的表达式类型所决定 B)调用该函数时的主调函数类型所决定 C)调用该函数时系统临时决定

C)能返回一个用户所希望的函数值 D)返回一个不确定的值 【题 8.7】以下不正确的说法是 。 C 语言规定 A)实参可以是常量、变量或表达式 B)形参可以是常量、变量或表达式 C)实参可以为任意类型 D)形参应与其对应的实参类型一致 【题 8.8】以下正确的说法是 。 A) 定义函数时,形参的类型说明可以放在函数体内 B) return 后边的值不能为表达式 C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 D) 如果形参与实参的类型不一致,以实参类型为准 【题 8.9】C 语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 。 A) 地址传递 B) 单向值传递 C) 由实参传给形参,再由形参传回给实参 D) 由用户指定传递方式 【题 8.10】以下程序有语法性错误,有关错误原因的正确说法是 。 main() { int G=5,k; void prt_char(); … … k=prt_char(G); … … } A) 语句 void prt_char();有错,它是函数调用语句,不能用 void 说明 B) 变量名不能使用大写字母 C) 函数说明和函数调用语句之间有矛盾 D) 函数名不能使用下划线 【题 8.11】C 语言允许函数值类型缺省定义,此时该函数值隐含的类型是 。 A) float 型 B) int 型 C) long 型 D) double 型 【题 8.12】C 语言规定,函数返回值的类型是由 。 A) return 语句中的表达式类型所决定 B) 调用该函数时的主调函数类型所决定 C) 调用该函数时系统临时决定

D)在定义该函数时所指定的函数类型所决定 【题8.13】下面函数调用语句含有实参的个数为 func((expl, exp2),(exp3, exp4, exp5)) A)1 B)2 【题8.14】以下错误的描述是 函数调用可以A)出现在执行语句中 B)出现在一表达式中 C)做为一个函数的实参 D)做为一个函数的形参 【题8.15】以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择 填空 #include #include scanf(“%f%f%f”,&x,&y,&z) sum=f(【1】)+f(【2】) printf(“sum=%f\n”,sum) float f(float a, float b) float value return(value) 【2】A)x-y,x+y Xty, x-y C)z+y, z-y D)z-y, z+y 【题8.16】以下正确的描述是 在C语言程序中A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套 【题8.17】以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数 及其个数。请选择填空 sub int k, int n)

D) 在定义该函数时所指定的函数类型所决定 【题 8.13】下面函数调用语句含有实参的个数为 。 func((exp1,exp2),(exp3,exp4,exp5)); A)1 B)2 C)4 D)5 【题 8.14】以下错误的描述是 。 函数调用可以 A)出现在执行语句中 B)出现在一表达式中 C)做为一个函数的实参 D)做为一个函数的形参 【题 8.15】以下程序的功能是计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择 填空。 #include #include main() { float x,y,z,sum; scanf(“%f %f %f”,&x,&y,&z); sum=f(【1】)+f(【2】); printf(“sum=%f\n”,sum); } float f(float a,float b) { float value; value=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 【题 8.16】以下正确的描述是 。 在 C 语言程序中 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义不可以嵌套,但函数的调用可以嵌套 C)函数的定义和函数的调用均不可以嵌套 D)函数的定义和函数的调用均可以嵌套 【题 8.17】以下程序是选出能被 3 整除且至少有一位是 5 的两位数,打印出所有这样的数 及其个数。请选择填空。 sub(int k,int n) { int a1,a2;

a2=【1】 【2】 if(k%3==08展a2=5)|(k%3=0&a1==5)) lse return -1 for(k=10;kB A-->B A→>B C-B C-->A C-->B

a2=【1】; a1=k-【2】; if((k%3==0&&a2==5)||(k%3==0&&a1==5)) { printf(“%d”,k); n++; return n; } else return -1; } main() { int n=0,k,m; for(k=10;k%c\n”,getone,putone); } 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 C—>B B-->C B-->A A-->B A-->B 【题8.19】若用数组名作为函数调用的实参,传递给形参的是 A)数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数 【题8.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]) 【题8.21】若使用一维数组名作函数实参,则以下正确的说法是 A)必须在主调函数中说明此数组的大小 B)实参数组类型与形参数组类型可以不匹配 C)在被调函数中,不需要考虑形参数组的大小 D)实参数组名与形参数组名必须一致 【题8.22】折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于 中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只 测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数 binary 的作用是应用折半査找法从存有10个整数的a数组中对关键字m进行查找,若 找到,返回其下标值;返回-1。请选择填空。 binary (int a[10, int m) nt low=0, high=9, mid while(lowa[mid])【2】 else return(mid) return(-1 (1 A) high=mid-1 B) low=mid+1 C)high=mid+1 D) low=mid-1

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 【题 8.19】若用数组名作为函数调用的实参,传递给形参的是 。 A) 数组的首地址 B) 数组第一个元素的值 C) 数组中全部元素的值 D) 数组元素的个数 【题 8.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]) 【题 8.21】若使用一维数组名作函数实参,则以下正确的说法是 。 A) 必须在主调函数中说明此数组的大小 B) 实参数组类型与形参数组类型可以不匹配 C) 在被调函数中,不需要考虑形参数组的大小 D) 实参数组名与形参数组名必须一致 【题 8.22】折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于 中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只 测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数 binary 的作用是应用折半查找法从存有 10 个整数的 a 数组中对关键字 m 进行查找,若 找到,返回其下标值;返回-1。请选择填空。 binary(int a[10],int m) { int low=0,high=9,mid; while(lowa[mid]) 【2】; else return(mid); } return(-1); } 【1】 A)high=mid-1 B)low=mid+1 C)high=mid+1 D)low=mid-1

(2] A) high=mid-1 B) low=mid+1 c) high=mid+1 D) low=mid-1 【题8.23】以下正确的说法是 如果在一个函数中的复合语句中定义了一个变量,则该变量 A)只在该复合语句中有效 B)在该函数中有效 C)在本程序范围内均有效 D)为非法变量 【题8.24】以下不正确的说法为 )在不同函数中可以使用相同名字的变量 B)形式参数是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 【题8.25】以下程序的正确运行结果是 #define max 10 int a [MAX],i malI printf(“Ⅶn”);sub10;sub3(a);sub20;sub3(a) int a[MAX], i, max for(i=0: i<max: i++)ali]=i subl for (i=0: i<MAX: i++)ali]=i+i (int a[) for(i=0;i<MAX;i++) printf(“%d”,a[i]) printf(“n” A)024681012141618 01234

【2】 A)high=mid-1 B)low=mid+1 C)high=mid+1 D)low=mid-1 【题 8.23】以下正确的说法是 。 如果在一个函数中的复合语句中定义了一个变量,则该变量 A) 只在该复合语句中有效 B) 在该函数中有效 C) 在本程序范围内均有效 D) 为非法变量 【题 8.24】以下不正确的说法为 。 A) 在不同函数中可以使用相同名字的变量 B) 形式参数是局部变量 C) 在函数内定义的变量只在本函数范围内有效 D) 在函数内的复合语句中定义的变量在本函数范围内有效 【题 8.25】以下程序的正确运行结果是 。 #define MAX 10 int a[MAX],i; main() { printf(“\n”); sub1(); sub3(a); sub2(); sub3(a); } sub2() { int a[MAX],i,max; max=5; for(i=0;i<max;i++) a[i]=i; } sub1() { for(i=0;i<MAX;i++) a[i]=i+i; } sub3(int a[]) { int i; for(i=0;i<MAX;i++) printf(“%d”,a[i]); printf(“\n”); } A) 0 2 4 6 8 10 12 14 16 18 0 1 2 3 4

B)01234 024681012141618 C)0123456789 0123 D)024681012141618 024681012141618 【题8.26】以下程序的正确运行结果是 #include void num o extern int x inta=15,b=10; X-a- int x, y malI int a=7, b=5 printf(“%d,%dn”,x,y) A)12,2B)不确定 C)5,25D)1,12 【题8.27】凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 A)自动(auto) B)静态( static) C)外部( extern) D)寄存器( register) 【题8.28】在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局 变量,则该变量需要使用的存储类别是 A) extern B)register C) auto D) static 【题8.29】以下程序的正确运行结果是 malI for(i=0;i<3;i++) printf(“%4d”,f(a)) f(int a)

B) 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 0 1 2 3 4 D) 0 2 4 6 8 10 12 14 16 18 0 2 4 6 8 10 12 14 16 18 【题 8.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(“%d,%d\n”,x,y); } A)12,2 B)不确定 C)5,25 D)1,12 【题 8.27】凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 。 A)自动(auto) B)静态(static) C)外部(extern) D)寄存器(register) 【题 8.28】在一个 C 源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局 变量,则该变量需要使用的存储类别是 。 A)extern B)register C)auto D)static 【题 8.29】以下程序的正确运行结果是 。 main() { int a=2,i; for(i=0;i<3;i++) printf(“%4d”,f(a)); } f(int a) {

return(a+b+c) A)777B)71013 C)7911 【题8.30】以下程序的正确运行结果是 #include malI p=func(k,m); printf(“%d”,p); p=func(k,m); printf(“%d\n”,p) func (int a, int b) int m0, i=2. return(m) B)8,16C)8,20D)8,8 8.2填空题 【题8.31】C语言规定,可执行程序的开始执行点是 【题8.32】在C语言中,一个函数一般由两个部分组成,它们是【1】和【2】 【题8.33】若输入的值是-125,以下程序的运行结果是 #include printf(“%d=”,n); fun(n)

int b=0; static int c=3; b++; c++; return(a+b+c); } A)7 7 7 B)7 10 13 C)7 9 11 D)7 8 9 【题 8.30】以下程序的正确运行结果是 。 #include main() { int k=4,m=1,p; p=func(k,m); printf(“%d”,p); p=func(k,m); printf(“%d\n”,p); } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } A)8,17 B)8,16 C)8,20 D)8,8 8.2 填空题 【题 8.31】C 语言规定,可执行程序的开始执行点是 。 【题 8.32】在 C 语言中,一个函数一般由两个部分组成,它们是【1】和【2】。 【题 8.33】若输入的值是-125,以下程序的运行结果是 。 #include main() { int n; scanf(“%d”,&n); printf(“%d=”,n); if(n<0) printf(“-”); n=fabs(n); fun(n); }

fun (int n) for(k=2:k (n);k++) while(r==o) 【题8.34】下面ad函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误 的部分是【1】:改正后为【2】 void add (float a, float b) return 【题8.35】以下程序的运行结果是 fun (j, 6): printf(“i=%d;j=%d;x=%d\n”,i,j,x) 【题8.36】以下程序的运行结果是 main increment

fun(int n) { int k,r; for(k=2;k1) printf(“*”); r=n%k; } } if(n!=1) printf(“%d\n”,n); } 【题 8.34】下面 add 函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误 的部分是【1】;改正后为【2】。 void add(float a,float b) { float c; c=a+b; return c; } 【题 8.35】以下程序的运行结果是 。 main() { int i=2,x=5,j=7; fun(j,6); printf(“i=%d;j=%d;x=%d\n”,i,j,x); } fun(int i,int j) { int x=7; printf(“i=%d;j=%d;x=%d\n”,i,j,x); } 【题 8.36】以下程序的运行结果是 。 main() { increment();

increment Increment printf(“%d”,x) 【题8.37】以下程序的运行结果是 #include main( int a=l, b=2 c=max(a, b) max(int x, Int y int z return (z) 【题8.38】以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显 示出“ This is yes.”与“ This is no.”。请填空。 void YesNo(char ch case"Y’: printf(“ nThis is yes.n”);【1】 N': printf("\nThis is No. \n"):[21 maln har ch printf(“ AnEnter a char‘y’,“Yor‘n

increment(); increment(); } increment() { int x=0; x+=1; printf(“%d”,x); } 【题 8.37】以下程序的运行结果是 。 #include main() { int a=1,b=2,c; c=max(a,b); printf(“max is %d\n”,c); } max(int x,int y) { int z; z=(x>y)?x:y; return(z); } 【题 8.38】以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显 示出“This is YES.”与“This is NO.”。请填空。 #include void YesNo(char ch) { switch(ch) { case ‘y’: case ‘Y’: printf(“\nThis is YES.\n”); 【1】; case ‘n’: case ‘N’: printf(“\nThis is No.\n”); 【2】; } } main() { char ch; printf(“\nEnter a char ‘y’,‘Y’or‘n’,‘N’:”);

点击下载完整版文档(DOC)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共34页,可试读12页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有