当前位置:文档之家› C语言函数练习题及答案

C语言函数练习题及答案

1【单选题】在下列关于C函数定义的叙述中,正确的是A、函数可以嵌套定义,但不可以嵌套调用;B、函数不可以嵌套定义,但可以嵌套调用;C、函数不可以嵌套定义,也不可以嵌套调用;D、函数可以嵌套定义,也可以嵌套调用;我的答案:B得分:分2【单选题】下面函数调用语句含有实参的个数为nc((exp1,exp2),(exp3,exp4,exp5));A、1B、2C、4D、5我的答案:B得分:分3【单选题】C语言中函数返回值的类型是由以下哪个选项决定的A、函数定义时指定的类型;B、return语句中的表达式类型;C、调用该函数时的实参的数据类型;D、形参的数据类型;我的答案:A得分:分4【单选题】以下关于函数叙述中,错误的是A、函数未被调用时,系统将不为形参分配内存单元;B、实参与形参的个数必须相等,且实参与形参的类型必须对应一致;C、当形参是变量时,实参可以是常量、变量或表达式;D、如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间;我的答案:B得分:分5【单选题】若函数调用时参数为基本数据类型的变量,以下叙述正确的是A、实参与其对应的形参共享内存存储单元;B、只有当实参与其对应的形参同名时才共享内存存储单元;C、实参与对应的形参分别占用不同的内存存储单元;D、实参将数据传递给形参后,立即释放原先占用的内存存储单元;我的答案:C得分:分6【单选题】函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是A、实参将地址传递给形参,并释放原先占用的存储单元;B、实参将地址传递给形参,调用结束时形参再将此地址回传给实参;C、实参将值传递给形参,调用结束时形参再将其值回传给实参;D、实参将值传递给形参,调用结束时形参并不将其值回传给实参;我的答案:D得分:分7【单选题】若用数组名作为函数调用的实参,则传递给形参的是A、数组第一个元素的地址;B、数组的第一个元素的值;C、数组中所有元素的值;D、数组元素的个数;我的答案:A得分:分8【单选题】C语言规定了程序中各函数之间调用关系,以下说法正确的是A、既允许直接递归调用也允许间接递归调用;B、不允许直接递归调用也不允许间接递归调用;C、允许直接递归调用不允许间接递归调用;D、不允许直接递归调用允许间接递归调用;我的答案:A得分:分9【单选题】递归函数f(n)=f(n-1)+n (n>1)的递归体是f(1)=0B、f(0)=1C、f(n)=f(n-1)+nD、f(n)=n我的答案:C得分:分10【单选题】若函数的形参为一维数组,则下列说法中正确的是()。

使用函数时的对应实参必为数组名。

B、形参数组可以不指定大小。

C、形参数组的元素个数必须等于实参数组的元素个数。

D、形参数组的元素个数必须多于实参数组的元素个数。

我的答案:B得分:分11【单选题】在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B 又调用了函数fun A,则()。

A、为函数的直接递归调用B、称为函数的间接递归调用C、为函数的循环调用D、C语言中不允许这样的递归调用我的答案:B得分:分12【单选题】有以下函数定义:void fun(int n,double x) {……}下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。

A、fun(int y,double m);B、k=fun(10,;C、fun(x,n);D、void fun(n,x);我的答案:C得分:分13【单选题】已有以下数组定义和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])我的答案:C得分:分14【单选题】若程序中定义函数float fadd(float a, float b){return a+b;}并将其放在调用语句之后,则在调用之前应对该函数进行说明。

以下说明中错误的是A、float fadd(float a,b);B、float fadd(float b, float a) ;C、float fadd(float, float) ;D、float fadd(float a, float b) ;我的答案:A得分:分15【单选题】下面程序段运行后的输出结果是(假设程序运行时输入5,3回车)int a, b;void swap( ){int t;t=a;a=b;b=t;}void main(){int a,b;scanf("%d,%d",&a, &b);swap( );printf ("a=%d,b=%d\n",a,b); }A、a=5,b=3B、a=3,b=5C、5,3D、3,5我的答案:A得分:分16【单选题】以下程序运行后的输出结果是int fun (int x, int y) {if(x>y)return x;elsereturn y;}void main(){int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}A、3B、6C、8D、12我的答案:D得分:分17【单选题】下列程序的输出结果是()。

#include ""void fun(int a,int b,int c) {c = a * b;}int main( ){int c;fun(2,3,c);printf("%d\n", c);return 0;}A、B、1C、6D、无法确定我的答案:D得分:分18【单选题】有以下程序,运行后的输出结果是()。

#include<>float fun(int x, int y){return(x+y);}void main(){int a=2,b=5,c=8;printf(“%\n”, fun((int)fun(a+c, b), a-c));}A、编译出错B、921D、我的答案:A得分:分19【单选题】以下描述正确的是A、调用函数时的实参只能是有确定值的变量;B、return()语句的括号中,可以是变量、常量或有确定值的表达式;C语言中,函数调用时实参和形参间的参数传递方式不都是值传递;D、实参和形参若类型不匹配,编译时将报错;我的答案:B得分:分20【单选题】已有以下代码#include<>int a=6,b=3;int main(){int a=8;printf("%d\n",(a>ba:b));}则程序的输出结果是()A、3B、6C、8D、36我的答案:C得分:分21【单选题】已有以下代码#include<>f(){static int x = 1;x -= 1;printf("%d,", x);}int main(){int i;for (i = 0; i<4; i++)f();return 0;}则程序的输出是:()A、1, 2,3,4B、0,1,2,3,C、0,-1,-2,-3,D、-1,-2,-3,-4,我的答案:C得分:分22【单选题】C语言程序的基本单位是A、函数B、过程C、子程序D、源程序文件我的答案:A得分:分23【单选题】以下说法中正确的是A、C语言程序总是从第一个定义的函数开始执行;B、C语言程序中,要调用的函数必须在main( )函数中定义;C、总是从main( )函数开始执行;D、main( )函数必须放在程序的开始部分;我的答案:C得分:分24【单选题】在函数调用时,以下说法正确的是A、函数调用后必须带回返回值;B、实际参数和形式参数可以同名;C、函数间的数据传递不可以使用全局变量;D、主调函数和被调函数总是在同一个文件里;我的答案:B得分:分25【填空题】下面程序段运行后的输出结果是:_______(假设程序运行时输入5,3回车)void swap( int a, int b){int t;t=a;a=b;b=t;}void main(){int a,b;scanf("%d,%d",&a, &b);swap(a,b );printf ("a=%d,b=%d\n",a,b); }我的答案:得分:分第一空:a=3,b=5批语26【填空题】以下程序的功能是用递归方法计算工资,已知第一位员工工资最少,为3100元,其余员工工资一个比一个多500元,求第5位员工的工资。

请填空。

salary(int n){int s;if(n==1)s=3100;elses=salary(n-1)+500;return s;}void main(){int n=5;printf(“sarary:%d\n”,______);我的答案:得分:分第一空:salary(5)批语27【填空题】分析以下程序的运行结果是_______ #include “”func(int a ,int b){int c;c=a+b;return c;int main(){int x=6,y,r;y=x+2;r=func(x++,y);printf("%d %d %d\n",x,y,r);return 0;}我的答案:得分:分第一空:7 8 14批语28【填空题】有如下程序long fib(int n){if(n>2)return(fib(n-1)+fib(n-2));elsereturn 2;}int main(){printf("%d\n",fib(3));}该程序的输出结果是_______。

我的答案:得分:分第一空:4批语29【填空题】以下程序的输出结果是________。

f(int b[],int m,int n){int i,s=0;for(i=m;i<n;i=i+2)s=s+b[i];returns;}int main(){int x,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}我的答案:得分:分第一空:10批语30【填空题】以下程序的输出结果是_____。

#include<>int fac_sum(int n){static int f=1,t=1,s=0;int i;if(n>t)for(i=t+1; i<=n; i++)f=f*i;else{f=1;for(i=1; i<=n; i++)f=f*i;}t=n; s=s+f;return(s);}void main(){int a[]={3,5,2},i,sum;for(i=0; i<3; i++)sum=fac_sum(a[i]);printf(“sum=%d\n”,sum); }我的答案:得分:分第一空:sum=128批语31【填空题】以下程序的运行结果是________。

相关主题