第1题
设有定义语句int(*f)(int);,则以下叙述中正确的是( )。
f是指向函数的指针变量,该函数具有一个int类型的形参
f是基类型为int的指针变量
f是指向int类型一维数组的指针变量
f是函数名,该函数的返回值是基类型为int类型的地址
第2题
设有以下函数:
void
fun(
int
n,
char
* s){……}
则下面对函数指针的定义和赋值均是正确的是()。
void(*pf)();pf=fun;
void * pf();pf=fun;
void * pf();* pf=fun;
void(* pf)(int,char);pf=&fun;
第3题
有以下程序
#include <stdio.h>
add(
a,
b)
{
return
(a+b);
}
main()
k, (*f)(),a=5,b=10;
f=add;
…
则以下函数调用语句错误的是()。
k=*f(a,b);
k=add(a,b);
k=(*f)(a,b);
k=f(a,b);
第4题
以下叙述中正确的是()。
简单递归不需要明确的结束递归的条件
任何情况下都不能用函数名作为实参
函数的递归调用不需要额外开销,所以效率很高
函数既可以直接调用自己,也可以间接调用自己
第5题
n)
if
(n==1)
1;
else
(n+fun(n-1));
x;
scanf
(
"%d"
,&x);
x=fun(x);
printf
"%d\n"
,x);
执行程序时,给变量x输入10,程序的输出结果是()。
55
54
65
45
第6题
有以下程序:
(n)
fun(n-1)+n;
0;
,fun(3));
程序的运行结果是()。
4
5
6
7
第7题
有如下程序:
convert(
ch)
(ch<
'D'
)convert(ch+1);
"%c"
,ch);
'A'
);
"%\n"
程序运行后的输出结果是()。
ABCDDCBA
ABCD
A
DCBA
第8题
设有如下函数定义:
k)
(k<1)
(k==1)
fun(k-1)+1;
若执行调用语句:n=fun(3);,则函数fun()总共被调用的次数是()。
2
3
第9题
以下程序:
x)
(x/2>1) fun(x/2);
fun(7);
"\n"
程序运行后的结果是()。
137
731
73
37
第10题
i;
((i=n/10)!=0)
fun(i);
putchar
(n%10+
'0'
fun(256);
256
652
2560
52
第11题
get_put()
ch;
ch=
getchar
();
(ch!=
'\n'
)get_put();
(ch);
get_put();
程序运行时,输入1234<回车>,则输出结果是()。
1234
4321
4444
1111
第12题
程序运行时,输入ABCD<回车>,则输出结果是()。
DCDC
BABA
第13题
fac2(
fac1(
"*"
(n>0)fac2(n-1);
"#"
(n>0)fac2(--n);
fac1(3);
*###
*##*
**##f
*#*#
第14题
p;
(x==0||x==1)
(3);
p=x-fun(x-2);
,fun(7));
执行后的输出结果是()。
0
第15题
f(
y;
y=x*x-f(x-2);
z;
z=f(3);
,z);
9
8
第16题
t[],
n);
a[4]={1,2,3,4},s;
s=f(a,4);
,s);
(n>0)
t[n-1]+f(t,n-1);
10
14
第17题
(b==0)
a;
(fun(--a,--b));
,fun(4,2));
程序运行的结果是()。
1
第18题
若有以下程序
a[],
(n>1)
t;
t=f(a,n-1);
t>a[n-1]?t:a[n-1];
a[0];
a[]={8,2,9,1,3,6,4,7,5};
,f(a,9));
则程序的输出结果是()。
第19题
x[],
f(&x[1],n-1);
"%d,"
,x[0]);
z[6]={1,2,3,4,5,6};
f(z,6);
6,5,4,3,2,1,
1,1
1,1,1,1,1,1,
1,2,3,4,5,6,
第20题
*s)
f;
(n == 1)*s = n + 1;
fun(n-1,&f);
*s = f;
x = 0;
fun(4,&x);
第21题
sum(
*array,
len)
(len == 0)
array[0];
array[0]+sum(array+1,len-1);
array[5] = {1,2,3,4,5};
res = sum(array,4);
,res);
15
选择题(1 - 21题,共计100分)