T*****J 发帖数: 193 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: ThomasJ (JY), 信区: Programming
标 题: 问个面试的编程题目
发信站: BBS 未名空间站 (Sat Jan 2 23:23:23 2010, 美东)
现场让30分钟做完
50 char *b, q, *r;
200 b = getbuf ();
201 q = *b;
212 R = anotherfunction (b);
213-2003 /* we want to use 'q' and 'r' here */
2000 char * getbuf ()
2001 {
2002 char buff [8];
2003-2050 /* unspecified buff defined here */
2051 return (char*) buff;
2052 }
1. What will be in variable 'q' after line 201 is executed? Under
what conditions might this not be so?
2. Is t | c*****o 发帖数: 178 | 2 1. q = b[0]; getbuf() 中没有buff的初始化部分代码。如果没有,q的值不定。
2. 不应该返回localvariable的地址,编译有warning。如果只想得到一个char值,可
以返回buff[]中的具体值。不知道怎么改写,这个返回地址本身就不对。
3. 不是,同2.
4. 可以执行。
5. 同2.
6. 如果一定要修改一个数组的值,不如传数组的reference作为getbuf()的一个
parameter
7. 在主程序里declare引用的函数。在b = getbuf (); 之前:char * getbuf ();
8. void getbuf(char*, char*); | e********e 发帖数: 12 | 3
must be void getbuf(char**, char**)
【在 c*****o 的大作中提到】 : 1. q = b[0]; getbuf() 中没有buff的初始化部分代码。如果没有,q的值不定。 : 2. 不应该返回localvariable的地址,编译有warning。如果只想得到一个char值,可 : 以返回buff[]中的具体值。不知道怎么改写,这个返回地址本身就不对。 : 3. 不是,同2. : 4. 可以执行。 : 5. 同2. : 6. 如果一定要修改一个数组的值,不如传数组的reference作为getbuf()的一个 : parameter : 7. 在主程序里declare引用的函数。在b = getbuf (); 之前:char * getbuf (); : 8. void getbuf(char*, char*);
|
|