第八节函数练习题.docVIP

  • 115
  • 0
  • 约9.91千字
  • 约 14页
  • 2017-07-29 发布于北京
  • 举报
第八章 函数 8.1 选择题 【题8.1】以下正确的说法是    。 建立函数的目的之一是 A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 【题8.2】以下正确的函数形式是    。 double fun(int x,int y) { z=x+y; return z; } fun(int x,y) { int z; return z; } fun(x,y) /*说明:函数定义时,确省返回类型时,默认为int*/ { int x,y; double z; z=x+y; return z; } double fun(int x,int y) /*本答案是最好的*/ { double z; z=x+y; return z; } 【题8.3】以下正确的说法是    。 在C语言中 A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用存储单元 D)形参是虚拟的,不占用存储单元 【题8.4】以下正确的说法是    。 定义函数时,形参的类型说明可以放在函数体内 return后边的值不能为表达式 如果函数值的类型与返回值类型不一致,以函数值类型为准 如果形参与实参的类型不一致,以实参类型为准 说明:以形参类型为准,因为传递过程是实参将其值赋予形参 【题8.5】以下程序有语法性错误,有关错误原因的正确说法是    。 main() { int G=5,k; void prt_char(); … … k=prt_char(G); … … } 语句void prt_char();有错,它是函数调用语句,不能用void说明 变量名不能使用大写字母 函数说明和函数调用语句之间有矛盾 /*说明:函数为void类型时,只能作为独立语句调用,而不能出现在表达式中*/ 函数名不能使用下划线 【题8.6】C语言允许函数值类型缺省定义,此时该函数值隐含的类型是    。 float型 B)int型 C)long型 D)double型 【题8.7】以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,‘A’,‘B’,‘C’);则符合程序段运行结果的选项是    。 void move(char getone,char putone) { printf(“%c--%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 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.8】若用数组名作为函数调用的实参,传递给形参的是    。 数组的首地址 B)数组第一个元素的值 C)数组中全部元素的值 D)数组元素的个数 【题8.9】折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;返回-1。请选择填空。 binary(int a[10],int m) { int low=0,high=9,mid; while(low=high) { mid=(low+high)/2; if(ma[mid]) 【1】; else if(ma[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.10】以下正确的说法是    。 如果在一个函数中的复合语句中定义了一个变量,则该变量 只在

文档评论(0)

1亿VIP精品文档

相关文档