注册 登录
编程论坛 新人交流区

2级考试一个题

angelofman 发布于 2007-11-09 14:44, 850 次点击
#include <stdio.h>
struct st{
char c; char s[80];
};
char * f(struct st t);
void main( )
{ int k;
struct st a[4]=
{{'1',"123"}, {'2',"321"}, {'3',"123"}, {'4',"321"}};
for(k = 0; k < 4; k++)
printf("%s\n", f(a[k]));
}
char * f(struct st t)
{ int k = 0;
while(t.s[k]!='\0'){
if(t.s[k] == t.c) return t.s+k;
k++;
}
return t.s;
}
(21) 程序运行时,第1行输出 (21) 。
A、321 B、21
C、123 D、12
(22) 程序运行时,第2行输出 (22) 。
A、21 B、12
C、3 D、1
(23) 程序运行时,第3行输出 (23) 。
A、3 B、123
C、1 D、321
(24) 程序运行时,第4行输出 (24) 。
A、123 B、1
C、3 D、321
谁能给我解释下22-24 3个选项哦??
14 回复
#2
qq956204122007-11-09 16:32
看不懂, 你的源程序 格式不正确。
#3
小包子2007-11-09 16:48
迷茫```
#4
longfeng8672007-11-09 17:26

就你这个程序:没有结果

#5
nty6182007-11-09 17:27
没有结果
#6
longyikun2007-11-09 17:46
为了能从新手中走出去, 顶~~~~~~~~~~~~~~~~~~~~~~~~
#7
星洋2007-11-09 17:48
为了离开那四个字
我来了
#8
wangfengLLD2007-11-09 17:56

初步判断前面三个选项没答案,
最后一个选D

#9
hemingway1042007-11-09 18:09
路过了!看不明白啊!!
#10
sonfly2007-11-09 19:27
1.C
2.A
3.A
4.D
这题考的是“数组名代表数组首元素地址”这个概念。出现相等的位置加上这个地址自然就输出这以后的字符串了。
#11
滴滴雨2007-11-09 20:06
10楼正解
#12
zf108272007-11-09 20:24
看看
#13
〃秋风〃2007-11-09 21:33
yun
#14
zhangjian1102007-11-10 13:33

这是一个函数调用和指针问题
不是太难的

#15
now2007-11-10 13:35
路过,顶下.
1