二级C语言-函数(三)
(总分54, 做题时间90分钟)
一、选择题
1.
下列程序段正确的是______。
∙A. #include <stdio.h> main() { int i, j; int(i)=j; }
∙B. #include <stdio.h>; include <stdio.h> #include <stdio.h> main() { }
∙C. main() { int i, j; }
∙D. main() { }
A B C D
分值: 1
答案:D
[解析] 选项A错在调用库函数int时,将它放在赋值号的左边;选项B中在第一行使用include命令时,最后放了一个分号:选项C在使用include命令时,缺少一个"#"号。
2.
以下函数:
fff(float x)
{ printf("% d\n", x*x);
}
的类型是______。
fff(float x)
{ printf("% d\n", x*x);
}
的类型是______。
∙A.与参数x的类型相同
∙**类型
∙**类型
D.无法确定
A B C D
分值: 1
答案:C
[解析] 在函数的首部(第一行),函数名(在此是fff)的前面应当是一个类型名,此类型名规定了函数返回值的类型;此类型名可以省略,这时C默认函数返回值的类型为int,因此本题的答案应当是C。读者应当记住:当定义函数时,函数名前缺类型名时,函数返回值的类型应为int。
3.
有以下函数调用语句:
func((exp1, exp2), (exp3, exp4, exp5));
其中含有的实参个数和是______。
func((exp1, exp2), (exp3, exp4, exp5));
其中含有的实参个数和是______。
∙**
∙**
∙**
**
A B C D
分值: 1float()函数
答案:B
[解析] 在调用函数时,实参可以是表达式,若有两个以上的实参时,实参之间用逗号隔开。在以上调用语句中,(exp1, exp2)和(exp3, exp4, exp5)是两个用括号括起来的逗号表达式,它们之间用逗号隔开,因此,该函数调用语句中含有两个实参。总结:本题要求读者正确掌握前面学过的逗号表达式,这样才能理解本题函数调用语句中实参的个数。
4.
以下程序的输出结果是______。
#include <stdio.h>
func (int a, int b)
{ int temp=a;
a=b; b=temp;
}
main()
{ int x, y;
#include <stdio.h>
func (int a, int b)
{ int temp=a;
a=b; b=temp;
}
main()
{ int x, y;
x=10; y=20;
func (x, y);
printf("% d, % d\n", x, y);
}
func (x, y);
printf("% d, % d\n", x, y);
}
∙**,20
∙**,10
∙**,10
**,20
A B C D
分值: 1
答案:A
[解析] 这里是传值调用,不会改变实参的值,所以输出为10,20。注意:传值调用时,只将实参的副本传给形参,在函数中只对副本进行修改,不会影响实参的值。
5.
以下程序的输出结果是______。
试题程序
#include <stdio.h>
main()
{ int i=2, p;
p=f(i, i+1);
printf("% d\n", p);
}
int f(int a, int b)
{ int c;
c=a;
if(a>b)
c=1;
else if(a==b)
c=0;
else
c=-1;
return(c);
}
{ int c;
c=a;
if(a>b)
c=1;
else if(a==b)
c=0;
else
c=-1;
return(c);
}
∙A.-1
∙**
∙**
**
A B C D
分值: 1
答案:A
[解析] 以上程序中定义了名为f()的整型函数,它有两个int类型的形参。在main()函数中调用了f()函数,可以很直观地看到,实参的值分别是2和3,2传给函数形参a,3传给函数形参b。函数返回的值赋给变量p,main()函数中输出的值就是函数中的返回值。在函数f()中,若a的值大于b,c被赋1;若a的值等于b,c被赋0;若a的值小于b,c被赋-1。按照实参传送过来的值,a的值小于b,因此c被赋-1,所以函数的返回值为-1。总结:本题中没有复杂的算法,但读者必须熟练地掌握if...else分支结构的执行流程,同时建立清晰的有关函数定义和函数调用的基本概念,就可得出正确的答案。
6.
若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是______。
∙A.函数调用可以作为独立的语句存在
∙B.函数调用可以作为一个函数的实参
∙C.函数调用可以出现在表达式中
∙D.函数调用可以作为一个函数的形参
A B C D
分值: 1
答案:D
[解析] 函数的形参只能是一般变量,函数调用不可以作为一个函数的形参,但可以作为实参,选项A、B和C的描述都是正确的。
7.
以下程序的输出结果是______。
#include <stdio.h>
func (int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6, r;
r=func(x, x+=2);
printf("% d\n", r);
}
#include <stdio.h>
func (int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6, r;
r=func(x, x+=2);
printf("% d\n", r);
}
∙**
∙**
∙**
**
A B C D
分值: 1
答案:C
[解析] 对于func()函数,先求右边x+=2参数,它返回8(x=8),然后求左边参数,x为8。所以输出为16。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论