《C语言阶段测验(6章).doc》由会员分享,可在线阅读,更多相关《C语言阶段测验(6章).doc(9页珍藏版)》请在金锄头文库上搜索。
1、程序设计基础阶段测验(第6章)(函数)一、选择题8.1 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参考生答案:8.2 在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递 B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定考生答案:8.3 以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参
2、与实参类型不一致,以实参类型为准考生答案:8.4 以下正确的说法是A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用考生答案:8.6 下面对C语言的描述中,正确的是A)函数一定有返回值,否则无法使用函数B)C语言函数既可以嵌套定义又可以递归调用C)在C语言中,调用函数时,只能将实参的值传递给形参D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中考生答案:考生答案:8.8 以下程序有语法错误
3、,有关错误原因的正确说法是main() int G=5,k;void prt_char();.k=prt_char(G);.A)语句 void prt_char();有错,它是函数调用语句,不能用void说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线考生答案:考生答案:8.12 下面函数调用语句含有实参的个数为func(exp1,exp2),(exp3,exp4,exp5);A)1 B)2 C)4 D)5考生答案:8.13 设有如下函数fun (float x) printf(n%d,x*x);则函数的类型是A)与参数x的类型相同 B)是voidC)
4、是int型 D)无法确定考生答案:8.14 有以下程序Int fun(int x,int y) return(x+y);main() int a=2,b=5,c=8;printf(%3.0fn,fun(fun(a+c,b),a-c);程序运行后的输出结果是A)编译出错 B)9 C)21 D)9.0考生答案:8.19 有如下程序:long fib(int n) if(n2) return(fib(n-1)+fib(n-2);else return(2);main() printf(%dn,fib(3);该程序的输出结果是A)2 B)4 C)6 D)8考生答案:8.24 下面程序应能对两个整型变量
5、的值进行交换。以下正确的说法是main() int a=10,b=20;printf(1)a=%d,b=%dn,a,b);swap(&a,&b);printf(2)a=%d,b=%dn,a,b);swap(int p,int q) int t;t=p;p=q;q=t;A)该程序完全正确B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可D)以上说法都不对8.28 现有如下程序#include stdio.hint fun(int x) printf(x=%dn,+x);main() f
6、un(12+5);则程序的输出结果是A)12 B)13 C)17 D)188.33 现有如下程序,则程序的输出结果为#include stdio.hint f(int a,int b) int c;if(a0&a10) c=(a+b)/2;else c=a*b/2;return c;main() int a=8,b=20,c;c=f(a,b);printf(%dn,c);A)随机数 B)80 C)28 D)14考生答案:7.11 有以下程序main() char a= a, b, c,d, e, f, g,h,0;int i;i=strlen(a);printf(%db,i);程序运行后的输出
7、结果是A)9 B)8 C)1 D)107.28 已知:char a15,b15=I love china;则在程序中能将字符串I love china赋给数组a的正确语句是A)a=I love china; B)strcpy(b,a);C)a=b; D)strcpy(a,b)7.29 已知:char a20= abc,b20= defghi;则执行下列语句后的输出结果为printf(%d,strlen(strcpy(a,b);A)11 B)6 C)5D)以上答案都不正确.30 阅读如下程序段,则程序在先后输入love和china后,输出结果是#include #include main() c
8、har a30,b30;int k;gets(a);gets(b);k=strcmp(a,b);if(k0) puts(a);else if(k0) puts(b);A)love B)china C)lovechinaD)没有输出结果三、 编程题1 从键盘上输入两个数,求这两个数中的最大值。int max (int x,int y) int z; ; return z; void main (void ) int a,b,c; scanf(%d%d,&a,&b); c= ; printf(The max is%dn,c); 2 有一个一维数组,内放10个学生成绩,求平均成绩。float average (float array ,int 10) int i; float aver, sum=array0; for (i=1; i10; i+) sum=sum+arrayi; aver=sum/10; ;void main(void) float score10= 100, 90, 80,70,60,50,40,30,20,10; float aver; aver= ; printf(aver=%dn,aver);