C)调用该函数的主调函数类型
D)定义函数时指定的函数返回值类型
28-执行下列语句后,程序的运行结果为( A ). int a=10; f( )
{int a; a=12; }
main() {f();
printf(\ }
A) 10 B) 12 C) 0 D) 不确定 29-以下说法中不正确的是( D ).
A)主函数中定义的变量只在主函数内部有效 B)形式参数是局部变量
C)在函数内部定义的变量只在本函数范围内有效
D)当全局变量与局部变量同名时,局部变量不起作用
30-当全局变量与函数内部的局部变量同名时,则在函数内部( A ). A)全局变量有效 B)局部变量有效
C)全局变量与局部变量都有效 D)全局变量与局部变量都无效
31-设下面程序段中调用fun函数传送实参a和b: main( )
{ char a[10],b[10]; ……
fun(a,b); …… }
则在fun函数头部中,对形参正确的定义是:(BCD) A) fun(char a,b) B) fun(char a1[],char a2[]) C) fun(char p[10], char q[10]) D) fun(char *s1,char *s2)
二、判断题
1 形参可以是常量、变量或表达式。错
2 如函数值的类型与返回值类型不一致,以函数值类型为准。对 3 下面两种写法等价。对
(1) int fun(int x,int y) (2) int fun(x,y)
int x,y ; 4 在C语言中,最好使用全局变量. 错
5 以下说法是否正确:若调用C标准库函数,调用前必须重新定义。错 6 形式参数和实际参数的个数可以不同。错
7 数组名做函数的参数时,实参数组和形参数组大小一定要一致。错 8 用数组名做函数参数,形参数组可以不指定大小。对
9 C语言中函数的返回值类型是由return语句中的表达式类型决定的。对
10 数组名作为函数参数,应该在主调函数与被调函数中分别定义数组,不能只在一方定义。对
11 以数组名作为参数时,数据传送方向是“双向的”。即形参值可以传回给实参。对 12 所有的函数都是平行的,一个函数并不从属于另一个函数。对 13 只有主函数才可以调用其它函数。错
14 在C语言中,函数可以递归调用或递归定义。错
15 在同一文件中,外部变量与局部变量同名。在局部变量的作用范围内,外部变量的值等于局部变量的值。错
16 main函数中定义变量是全局变量。错
17 当全局变量与函数内部的局部变量同名时,则在函数内部全局变量有效。错 三、填空题
[1] 以下程序的输出结果是_____12___. unsigned fun6(unsigned num) { unsigned k=1; do
{ k*=num; num/=10; } while(num); return k; }
main()
{ unsigned n=26;
printf(\ }
[2] 以下程序的输出结果是___9.000000_____. double sub(double x,double y,double z) { y-=1.0; z=z+x;
return z; }
main()
{ double a=2.5,b=9.0; printf(\ }
[3] 以下程序的输出结果是____4____. fun1(int a,int b) { int c;
a+=a; b+=b; c=fun2(a,b); return c*c; }
fun2(int a,int b)
{ int c; c=a*b%3; return c; }
main()
{ int x=11,y=19;
printf(\ }
[4] 下面pi函数的功能是,根据以下公式返回满足精度要求的的值.请填空.
double pi(double eps) { double s=0.0,t=1.0; int n;
for(__n=1___;t>eps;n++) { s+=t;
t=n*t/(2*n+1); }
return (2.0*__s___); }
[5] 以下函数用以求x的y次方.请填空. double fun(double x,int y) { int i; double z=1; for(i=1; i__ i<=y___; i++) z=__ z*x___; return z;
} [6] 以下程序的功能是计算.请填空. long f(int n)
{ int i; long s; s=__1___;
for(i=1; i<=n; i++) s=__ s*i___; return s; }
main()
{ long s; int k,n; scanf(\ s=__-1___;
for(k=0; k<=n; k++)s=s+__ f(k)___; printf(\ }
四、编程题
[1] 编写函数 int mymod ( int a, int b)用以求a被b除之后的余数. int mymod( int a, int b) {
}
return a%b;
[2] 编写函数,根据整型形参m的值,计算如下公式的值. t=1-1/2*2-1/3*3-...-1/m*m 例如,若m=5,则应输出0.536389. #include
void main() {
printf(\}
[3] 编写函数用以求表达式x*x-5*x+4,x作为参数传送给函数,调用此函数求: y1=2*2-5*2+4
y2=(x+15)*(x+15)-5*(x+15)+4 y3=sinx*sinx-5*sinx+4 #include
void main() { float y1,y2,y3; int x=2; y1=y(x); y2=y(x+15); y3=y(sin(x)); printf(\}
[4]编写一个函数,把一个字符串中的大写字母改为小写字母,其余不变。并从键盘输入一个字符串,然后使用该函数将大写字母变为小写字母后输出。 #include
void changestr(char str[]) { int i=0; while(str[i]!='\\0') { if(str[i]>='A'&&str[i]<='Z') { str[i]=str[i]+('a'-'A'); } i++; } }
void main() { char st[N]; printf(\ scanf(\ changestr(st); printf(\}