C语言函数练习题及答案_第1页
C语言函数练习题及答案_第2页
C语言函数练习题及答案_第3页
C语言函数练习题及答案_第4页
C语言函数练习题及答案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1【单选题】在下列关于C函数定义的叙述中,正确的是?A、函数可以嵌套定义,但不可以嵌套调用;B、函数不可以嵌套定义,但可以嵌套调用;C、函数不可以嵌套定义,也不可以嵌套调用;D、函数可以嵌套定义,也可以嵌套调用;我的答案:B得分:2.5分2【单选题】下面函数调用语句含有实参的个数为?nc(exp1,exp2),(exp3,exp4,exp5);A、 1B、2C、4D、5我的答案:B得分:2.5分3【单选题】C语言中函数返回值的类型是由以下哪个选项决定的?A、函数定义时指定的类型;B、return语句中的表达式类型;C、调用该函数时的实参的数据类型;D、形参的数据类型;我的答案:A得分:2.5分

2、以下关于函数叙述中,错误的是?A、函数未被调用时,系统将不为形参分配内存单元;B、实参与形参的个数必须相等,且实参与形参的类型必须对应一致;C、当形参是变量时,实参可以是常量、变量或表达式;D、如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间;我的答案:B得分:2.5分5【单选题】若函数调用时参数为基本数据类型的变量,以下叙述正确的是?A、实参与其对应的形参共享内存存储单元;B、只有当实参与其对应的形参同名时才共享内存存储单元;C、实参与对应的形参分别占用不同的内存存储单元;D、实参将数据传递给形参后,立即释放原先占用的内存存储单元;我的答案:C得分:2.5分【单选题】 函

3、数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是?A、实参将地址传递给形参,并释放原先占用的存储单元;B、实参将地址传递给形参,调用结束时形参再将此地址回传给实参;C、实参将值传递给形参,调用结束时形参再将其值回传给实参;D、实参将值传递给形参,调用结束时形参并不将其值回传给实参;我的答案:D得分:2.5分7【单选题】若用数组名作为函数调用的实参,则传递给形参的是?A、数组第一个元素的地址;B、数组的第一个元素的值;C、数组中所有元素的值;D、数组元素的个数;我的答案:A得分:2.5分8【单选题】C语言规定了程序中各函数之间调用关系,以下说法正确的是?A、既允许直接递归调用

4、也允许间接递归调用;B、不允许直接递归调用也不允许间接递归调用;C、允许直接递归调用不允许间接递归调用;D、不允许直接递归调用允许间接递归调用;我的答案:A得分:2.5分9【单选题】递归函数f(n尸f(n-1)+n (n>1) 的递归体是?A、f(1)=0B、f(0)=1C、f(n)=f(n-1)+nD、f(n)=n我的答案:C得分:2.5分10【单选题】若函数的形参为一维数组,则下列说法中正确的是()。A、使用函数时的对应实参必为数组名。B、形参数组可以不指定大小。C、形参数组的元素个数必须等于实参数组的元素个数。D、形参数组的元素个数必须多于实参数组的元素个数。我的答案:B得分:2.

5、5分【单选题】在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数()。A、为函数的直接递归调用B、称为函数的间接递归调用C、为函数的循环调用D、C语言中不允许这样的递归调用我的答案:B得分:2.5分11【单选题】有以下函数定义:void fun(int n,double x) 下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()。A、fun(int y,double m);B、k=fun(10,12.5);C、fun(x,n);D、void fun(n,x);我的答案:C得分:2.5分13【单选题】已有以下数组定义和f函数调用语句,则在f函数的

6、说明中,对形参数组array的正确定义方式为int a34;f(a);A、f(intarray口6)B、f(int array3)C、f(intarray口4)f(int array25)我的答案:C得分:2.5分14【单选题】若程序中定义函数float fadd(float a, float b)return a+b;以下说明中错误并将其放在调用语句之后,则在调用之前应对该函数进行说明的是?A、floatfadd(floata,b);B、floatfadd(floatb, floata);C、float fadd(float, float) ;D、float fadd(float a, fl

7、oat b);我的答案:A得分:2.5分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=%dn",a,b);A、a=5,b=3B、a=3,b=5C、5,3D、3,5我的答案:A得分:2.5分16【单选题】以下程序运行后的输出结果是?int fun (int x, int y)if(x>y)return

8、x;elsereturn y;void main()int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%dn",r);)A、B、D、12我的答案:D得分:2.5分17【单选题】下列程序的输出结果是()。#include "stdio.h"void fun(int a,int b,int c)c = a * b;int main()int c;fun(2,3,c);printf("%dn", c);return 0;A、0B、1C、6D、无法确定我的答案:D得分:2.5分18【单选题】有以下程序

9、,运行后的输出结果是(#include<stdio.h>float fun(int x, int y)return(x+y);void main()int a=2,b=5,c=8;printf( " %n.0f, fun(int)fun(a+c, b), a -c);A、编译出错B、9C、21D、9.0我的答案:A得分:0.0分19【单选题】以下描述正确的是?A、调用函数时的实参只能是有确定值的变量;B、return()语句的括号中,可以是变量、常量或有确定值的表达式;C、C语言中,函数调用时实参和形参间的参数传递方式不都是值传递;D、实参和形参若类型不匹配,编译时将报错

10、;我的答案:B得分:2.5分20【单选题】已有以下代码#include<stdio.h>int a=6,b=3;int main() int a=8;printf("%dn",(a>b?a:b);则程序的输出结果是()?A、3B、6C、8D、36我的答案:C得分:2.5分21【单选题】已有以下代码#include<stdio.h>f()static int x = 1;x -= 1;printf("%d,", x);int main()int i;for (i = 0; i<4; i+)f();return 0;则程序

11、的输出是:()?A、1, 2,3,4B、0,1,2,3,C、0,-1,-2,-3,D、-1,-2,-3,-4,我的答案:C得分:2.5分22【单选题】C语言程序的基本单位是?A、函数B、过程C、子程序D、源程序文件我的答案:A得分:2.5分23【单选题】以下说法中正确的是?A、C语言程序总是从第一个定义的函数开始执行B、C语言程序中,要调用的函数必须在 main()函数中定义;C、总是从main()函数开始执行;D、main()函数必须放在程序的开始部分;我的答案:C得分:2.5分24【单选题】 在函数调用时,以下说法正确的是?A、函数调用后必须带回返回值;B、实际参数和形式参数可以同名;C、

12、函数间的数据传递不可以使用全局变量;D、主调函数和被调函数总是在同一个文件里;我的答案:B得分:2.5分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=%dn",a,b);我的答案:得分:0.0分第一空:a=3,b=5批语26【填空题】以下程序的功能是用递归方法计算工资,已知第一位员工工资最少,为 31

13、00元,其余员工工资一个比一个多 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 n” , ;我的答案:得分:2.5分第一空:salary(5)批语27【填空题】分析以下程序的运行结果是 #include “ stdio.h "func(int a ,int b)int c;c=a+b;return c;int main()int x=6,y,r;y=x+2;r=fun

14、c(x+,y);printf("%d %d %dn",x,y,r);return 0;我的答案:得分:2.5分第一空:7 8 14批语28【填空题】有如下程序long fib(int n)if(n>2)return(fib(n-1)+fib(n-2)elsereturn 2 ;int main()printf("%dn" , fib(3);该程序的输出结果是 。我的答案:得分:2.5分第一空:4批语29【填空题】以下程序的输出结果是。f(int b , int m , int n)int i , s=0 ;for(i=m ; i<n ; i=

15、i+2)s=s+bi;returns ;int main()int x, a尸1 , 2, 3, 4, 5, 6, 7, 8, 9;x=f(a , 3, 7);printf("%dn" , x);我的答案:得分:2.5分第一空:10批语30【填空题】以下程序的输出结果是。#include<stdio.h>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; 一|elsef=1; |for(i=1; i<=n; i+)f=f*i;t=n;

16、 s=s+f;return(s);void main()int a=3,5,2,i,sum;for(i=0; i<3; i+)sum=fac_sum(ai);printf ( "sum=%dn” ,sum);我的答案:得分:2.5分第一空:sum=128批语31【填空题】以下程序的运行结果是#include <stdio.h>int n=1;void main() static int x=5;void func();int y; y=n;printf("MAIN: x=%2d y=%2d n=%2dn",x,y,n);func();printf

17、("MAIN: x=%2d y=%2d n=%2dn",x,y,n);func();void func() static int x=4;int y=10;x=x+2;n=n+10;y=y+n;printf("FUNC: x=%2d y=%2d n=%2dn",x,y,n);我的答案:得分:2.5分第一空:MAIN: x= 5 y= 1 n= 1FUNC: x= 6 y=21 n=11MAIN: x= 5 y= 1 n=11FUNC: x= 8 y=31 n=21批语32【填空题】输入一个整数io,以下程序的运行结果是#include<stdio.

18、h>void main()int sub(int);int a,e10,c,i=0;printf("输入一个整数n");scanf("%d",&a);while(a!=0)c=sub(a);a=a/2;ei=c;i+;for(; i>0; i-)printf("%d",ei-1);int sub(int a)int c;c=a%2;return c;我的答案:得分:2.5分第一空:1010批语33【填空题】以下程序的运行结果是#include <stdio.h>int main()int i;void fun();for (i=0;i<3;i+)fun();return 0;void fun()static int x=0;x+=1;printf("%3d",x);我的答案:得分:2.5分第一空:1 2 3批语34以下程序的运行结果是#include <stdio.h>int workover(int i);int reset(int i);int i=0;int mai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论