二级C语言教程章节测试11.对函数的进一步讨论

文章作者 100test 发表时间 2007:05:13 22:44:07
来源 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

(6) 有以下程序
#include
main(int argc ,char *argv[ ])
{ int i,len=0.
for(i=1.i printf(“5d\n”,len).
}
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
执行后输出结果是
A) 14 B) 12 C) 8 D) 6

(7) 有以下程序
void f(int a[],int i,int j)
{ int t.
if(i { t=a[i]. a[i]=a[j].a[j]=t.
f(a,i 1,j-1).
}
}
main( )
{ int i,aa[5]={1,2,3,4,5}.
f(aa,0,4).
for(i=0.i<5.i ) printf(“%d,”,aa[i]). printf(“\n”).
}
执行后输出结果是
A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,

(8) 有以下程序
void fun(int *a,int i,int j)
{ int t.
if(i { t=a[i].a[i]=a[j].a[j]=t.
fun(a, i,--j).
}
}
main()
{ int a[]={1,2,3,4,5,6},i.
fun(a,0,5)
for(i=0.i<6.i )
printf("%d",a[i]).
}
执行后的输出结果是
A) 6 5 4 3 2 1 B) 4 3 2 1 5 6 C) 4 5 6 1 2 3 D) 1 2 3 4 5 6

(9) 有以下程序
int f(int n)
{ if (n==1) return 1.
else return f(n-1) 1.
}
main()
{ int i,j=0.
for(i=i.i<3.i ) j =f(i).
printf(“%d\n”,j).
}
程序运行后的输出结果是
A) 4 B) 3 C) 2 D) 1

(10) 有以下程序
#include
main(int argc,char *argv[])
{ int i,len=0.
for(i=1.i printf(“%d\n”,len).
}
程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:
ex1 abcd efg 10<回车>
则运行的结果是:
A) 22 B) 17 C) 12 D) 9


相关文章


二级C语言教程章节测试3.顺序结构:输入与输出
二级C语言教程章节测试15.位运算
二级C语言教程章节测试11.对函数的进一步讨论
二级C语言教程章节测试9.一维数组与指针(一)
二级C语言教程章节测试10.字符串
二级C语言教程章节测试14.结构体与共用体及用户定义类型
二级C语言教程章节测试8.指针
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛