(27)下列程序执行后的输出结果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{ int i=0; func1(i); printf("\n");}
A)hello
B)hel
C)hlo
D)hlm
正确答案: C
(28)以下函数返回a所指数组中最大值所在的下标值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]>a[p])_________;
return(p);}
在下划线处应填入的内容是
A)i=p
B)a[p]=a[i]
C)p=j
D)p=I
正确答案: D
(29)下面说明不正确的是
A)char a[10]="china";
B)char a[10],*p=a;p="china"
C)char *a;a="china";
D)char a[10],*p;p=a="china"
正确答案: D
(30)以下程序的输出结果是
#include <stdio.h>
void prt (int *x, int *y, int *z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
正确答案: B
(31)若有函数内部说明:int a[3][4];则数组a中各元素
A)可在程序的运行阶段得到初值0
B)可在程序的编译阶段得到初值0
C)不能得到确定的初值
D)可在程序的编译或运行阶段得到初值0
正确答案: C
(32)有如下程序
main()
{ char s[]="ABCD", *p;
for(p=s+1; p<s+4; p++)printf ("%s\n",p);}
该程序的输出结果是
A)ABCD
BCD
CD
D
B)A
B
C
D
C)B
C
D
D)BCD
CD
D
正确答案: D