2007年春试题6
#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) 程序运行时&#
关于省计算机二级考试的一个出题错误
最新推荐文章于 2021-09-23 21:14:35 发布
本文分析了一道2007年计算机二级考试中的C语言试题,指出在函数`f`中使用结构体成员作为返回值的问题。由于返回的是局部变量的指针,离开函数作用域后指针将失效,导致程序行为未定义。正确做法应改为通过指针或引用参数传递结构体。
摘要由CSDN通过智能技术生成