1、,这部分主要讨论了函数的相关知识,一般会出4-5个选择题和3-4个填空题,同时,也是编程的重点。,1.下述程序段的输出结果是( )。 int x=10; int y=x+; printf(“%d,%d”,(x+,y),y+); A)11,10 B)11,11 C)10,10 D)10,11 答案:A),函数参数求解顺序:自右向左,3.以下叙述中正确的是( )。 A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分,答案:C),C程序总是从
2、main()函数开始执行,不能在一个函数内部定义另一个函数,main()函数可以放在程序的任何位置,4.以下函数 fff(float x) printf(“%dn”,x*x); 的类型是( )。 A)与参数x的类型相同 B)void类型 C)int D)无法确定 答案:C),当定义函数时,函数名前缺类型名时,类型应为int类型。 void类型 表示空类型,就是不属于任何类型。,6.以下程序输出的结果是( )。 #include main() int i=2,p; p=f(i,i+1); printf(“%dn”,p); int f(int a,int b) int c; c=a; if(ab)
3、 c=1; else if(a=b) c=0;eles c=-1;return(c); A) -1 B) 0 C) 1 D) 2,答案:A),1、确定变量的值a=ia=2 b=i+1b=3c=ac=2 2、执行if语句后得到c=-1 3、执行return(c) 语句,把c的值返回到main函数中的p=f(i,i+1);p的值就是c的值,7.以下程序的输出结果是( )。 #include fun(int a,int b,int c) c=a*b; main() int c fun(2,3,c); printf(“%dn”,c); A)0 B)1 C)6 D)无定值,答案:D),1、确定变量的值a
4、=2 b=3main函数中的c:随机值(无定值,定义变量未赋值就是随机值)fun函数中的c:c=a*b c=6 2、fun函数执行完main函数中的c的值任然是随机值。在C语言中数据只能从实参传递给形参,而形参的数据不能传送给实参。,8.有如下程序: #include int max(x,y) int x,y; int z; if(xy)z=x; else z=y; return(z); main() extern int a,b; printf(“max=%dn”,max(a,b); int a=3,b=5; 运行结果为( )。 A)max=3 B)max=4 C)max=5 D)max=6
5、,当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序,该变量是一个已在外部定义了的全局变量,已经分配了存储单元,不需要为它另开辟存储单元 。,定义外部变量,用extern说明,答案:C),这是老版本写法 等价于下面的写法 int max(int x,int y) ,9.如下程序的运行结果为( )。 #include f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c); main() int a=2,i; for(i=0;i3;i+) printf(“%d ”,
6、f(a); A)6 7 8 B)7 8 9 C)5 6 7 D)无输出结果 答案:B),i=0时 第一次循环 调用f(a)函数在f函数中:a=2 b=1 c=4a+b+c=7 通过return返回到main函数,输出7i=1时 第二次循环 调用f(a)函数在f函数中:a=2 b=1 c=5a+b+c=8 通过return返回到main函数,输出8 i=2 时 第三次循环 调用f(a)函数在f函数中:a=2 b=1 c=6a+b+c=9 通过return返回到main函数,输出9 i=3时 循环条件不成立 退出循环 程序结束,变量C是静态变量,上一次的结果会作为下一次的初始值,同步练习 .以下对
7、C语言函数的描述中,正确的是( A )。 A)C程序由一个或一个以上的函数组成 B)C函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数 D)C程序中调用关系的所有函数必须放在同一个程序文件中,.C语言中函数返回值的类型由( D )决定。 A)return语句中的表达式类型 B)调用函数的主调函数类型 C)调用函数时的临时类型 D)定义函数时所指定的函数类型,.在C语言程序中( D )。 A)函数的定义可以嵌套,但函数的调用不可以嵌套 B)函数的定义和调用均可以嵌套 C)函数的定义和调用均不可以嵌套 D)函数的定义不可以嵌套,但函数的调用可以嵌套,.C语言中形参的默认存储
8、类别是( A )。 A)自动(auto) B)静态static) C)寄存器(register) D)外部(extern),12.以下程序的输出结果是( B )。 #include int a,b; viod fun( ) a=100;b=200; main() int a=5,b=7; fun(); printf(“%d%dn”,a,b); A)100200 B)57 C)200100 D)75,掌握变量的作用域,全局变量和局部变量作用域相同部分,局部屏蔽全局,16.下列程序执行后输出的结果是( A )。 #include int d=1; fun(int p) int d=5; d+=p+
9、; printf(“%d ”,d); main() int a=3; fun(a); d+=a+; printf(“%dn”,d); A)8 4 B)9 6 C)9 4 D)8 5,掌握变量的作用域,掌握变量的作用域,全局变量和局部变量作用域相同部分,局部屏蔽全局,20.在一个源文件中定义的外部变量的作用域为( B )。 A)本文件的全部范围 B)本程序的全部范围 C)本函数的全部范围 D)从定义该变量的位置开始至本文件结束,5.在C语言中,一个函数一般由两个部分组成,它们是 和 。 答案:函数说明 函数体,能正确定义fun函数的选项是(),fun(int x,y) return x+y;,B)int fun(int x,int y) return x+y;,C)int fun(int x,int y) return x+y+z;,D)fun(int x,int y); return x+y;,形参的定义必须是分别定义,应该是:fun(int x,int y),变量z没有定义,fun(int x,int y)后面不能有分号,答案:B),