计算机等级考试二级C语言重点测试题:函数(1)
文章作者 100test 发表时间 2007:06:26 12:58:44
来源 100Test.Com百考试题网
一、选择题
(1)有以下程序
# include
void f(char *s, char *t)
{ char k.
k=*s. *s=*t. *t=k.
s . t--.
if (*s) f(s, t).
}
main()
{ char str[10]="abcdefg", *p .
p=str strlen(str)/2 1.
f(p, p-2).
printf("%s\n",str).
}
程序运行后的输出结果是
A)abcdefg
B)gfedcba
C)gbcdefa
D)abedcfg
(2)有以下程序
float f1(float n)
{ return n*n. }
float f2(float n)
{ return 2*n. }
main()
{ float (*p1)(float),(*p2)(float),(*t)(float), y1, y2.
p1=f1. p2=f2.
y1=p2( p1(2.0) ).
t = p1. p1=p2. p2 = t.
y2=p2( p1(2.0) ).
printf("%3.0f, %3.0f\n",y1,y2).
}
程序运行后的输出结果是
A)8, 16
B)8, 8
C)16, 16
D)4, 8
(3)程序中若有如下的说明和定义语句
char fun(char *).
main()
{
char *s="one",a[5]={0},(*f1)()=fun,ch.
……
}
以下选项中对函数fun的正确调用语句是
A)(*f1)(a).
B)*f1(*s).
C)fun(&.a).
D)ch=*f1(s)
(4) 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则
A) 称为函数的直接递归调用
B) 称为函数的间接递归调用
C) 称为函数的循环调用
D) C语言中不允许这样的递归调用
(5) 有以下程序
void fun(int *a,int i,int j)
{ int t.
if(i { t=a[i].a[i]=a[j].a[j]=t.
i . j--.
fun(a,i,j).
}
}
main()
{ int x[]={2,6,1,8},i.
fun(x,0,3).
for(i=0.i<4.i ) printf("-",x[i]).
printf("\n").
}
程序运行后的输出结果是
A) 1 2 6 8
B) 8 6 2 1
C) 8 1 6 2
D) 8 6 1 2
参考答案
src="/ncre2/js/wxgg.js">