CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一道基础面试题

楼主kuwe34()2006-12-31 21:52:06 在 C/C++ / C语言 提问

欢迎到编程群   34239472  
  我们期待你的加入  
  但为了营造一个真正的学习讨论氛围,大家都有一定的基础  
   
  请以下面问题的答案进行验证  
   
  用变量a进行如下定义  
  定义一个指向整个二维数组的指针,此数组为10x10,其每个元素是一个指向函数的指针,此函数的返回值为指向字符的指针,参数有两个分别为int   *   和   char   *;  
   
  我们期待你的加入  
  问题点数:100、回复次数:55Top

1 楼Aaron_Jerry(音乐诗人)回复于 2006-12-31 22:01:16 得分 0

typedef   char*   (*pfun[10][10])(int*   ,char*);Top

2 楼kuwe34()回复于 2006-12-31 22:06:32 得分 0

错了楼上   知道的请不要发答案上来  
   
  欢迎到编程群   34239472  
  我们期待你的加入  
  但为了营造一个真正的学习讨论氛围,大家都有一定的基础  
   
  请以下面问题的答案进行验证Top

3 楼mochen5460(mochen)回复于 2006-12-31 22:07:42 得分 0

typedef   char*   (*pf)(int   *,char   *);  
  pf   a[10][10];  
  Top

4 楼mochen5460(mochen)回复于 2006-12-31 22:08:51 得分 0

呵呵,没看到1,2楼,直接发上来了,不过不知道对不对Top

5 楼kuwe34()回复于 2006-12-31 22:17:58 得分 0

错了楼上   知道的请不要发答案上来  
   
  欢迎到编程群   34239472  
  我们期待你的加入  
  但为了营造一个真正的学习讨论氛围,大家都有一定的基础Top

6 楼rongcanf(沉默是猪。)回复于 2007-01-01 18:41:13 得分 0

^_^,有创意~Top

7 楼caocheng8230(学C++而不知疲倦)回复于 2007-01-01 20:01:39 得分 0

 
  定义一个指向整个二维数组的指针,此数组为10x10,其每个元素是一个指向函数的指针,此函数的返回值为指向字符的指针,参数有两个分别为int   *   和   char   *;  
  //////  
  //使用typedef   很easy  
  typedef   char*   (*function)(int*,char*);  
  function   param[10][10];Top

8 楼weixing979(★★★闪电侠★★★)回复于 2007-01-01 23:34:10 得分 0

还是typedef好一些Top

9 楼kuwe34()回复于 2007-01-01 23:50:34 得分 0

还是错了:caocheng8230(学C++而不知疲倦)  
  要求是   定义一个指向整个二维数组的指针Top

10 楼a_humble_programmer(lovecreatesbeauty.googlepages.com)回复于 2007-01-02 00:44:25 得分 0

>typedef   char*   (*pfun[10][10])(int*   ,char*);  
   
  it's   almost   close   to:  
                    char     (*afp   [10][10])(int   *,   char   *);  
         
  >错了楼上   知道的请不要发答案上来  
   
  why   not?  
   
  >欢迎到编程群   34239472  
   
  什么群,猪牛群,马羊群还是鸟群?Top

11 楼kuwe34()回复于 2007-01-02 00:56:13 得分 0

是基础群   a_humble_programmer()说的对大部分人都出问题在定义一个指向整个二维数组的指针Top

12 楼hxliu_leo()回复于 2007-01-02 11:20:31 得分 0

int   *(char*a(int*,char*))[10][10];Top

13 楼yzx1983(捕风捉影)回复于 2007-01-02 11:31:48 得分 0

typedef   char*   (*pf)(int   *,char   *);  
  pf   (*   a)[10];Top

14 楼DragonBill(用户中文昵称------静观其变,以静制动)回复于 2007-01-02 13:01:01 得分 20

typedef   char*   (*PF)(int   *,   char   *);  
  PF   (*a)   [10][10];  
   
  我不用QQ的,有没有MSN?Top

15 楼davidxbc()回复于 2007-01-02 13:32:36 得分 0

#define   N   10  
  typedef   char*   (*pf)(int   *,   char   *)   pfCIC;  
   
  pfCIC   (*pa)[N][N]  
   
  pa就是你想要的Top

16 楼davidxbc()回复于 2007-01-02 13:33:13 得分 0

#define   N   10  
  typedef   char*   (*pf)(int   *,   char   *)   pfCIC;  
   
  pfCIC   (*pa)[N][N]  
   
  pa就是你想要的Top

17 楼davidxbc()回复于 2007-01-02 13:35:35 得分 0

#define   N   10  
  typedef   char*   (*pf)(int   *,   char   *)   pfCIC;  
   
  pfCIC   (*pa)[N][N]  
   
  pa就是你想要的Top

18 楼gujianxin(木头象)回复于 2007-01-02 13:42:42 得分 0

char*       (*   a[10][10])(   int   *   ,   char   *)Top

19 楼davidxbc()回复于 2007-01-02 13:43:26 得分 20

 
  #define   N   10  
  typedef   char*   (*pfCIC)(int   *,   char   *)  
   
  pfCIC   (*pa)[N][N]  
   
  pa就是你要的  
   
  qq:113007620Top

20 楼kuwe34()回复于 2007-01-02 16:03:45 得分 0

用啦Top

21 楼kuwe34()回复于 2007-01-02 16:18:37 得分 0

当前统计人气290  
  要求验证的有35人  
  答对的有10人  
  欢迎到编程群     34239472Top

22 楼robert126(学习不忘座板凳)回复于 2007-01-02 20:17:53 得分 0

typedef   char*   (*PF)(int   *,   char   *);  
  PF   (*a)   [10][10];Top

23 楼dx30611(想要clean code)回复于 2007-01-02 20:46:12 得分 0

typedef   char*   ((*funtion)[10][10])(int*   ,char*);Top

24 楼kuwe34()回复于 2007-01-02 23:14:54 得分 0

好的答对的人多了    
  答案是  
  char*   (   *(   (*a)[10][10]   )   )(int   *   ,   char   *);  
  简明的是  
  typedef char*   (*pfun)(int   *   ,   char   *);  
  pfun   (*a)[10][10];  
  看来要换题目了  
  请看下面程序片段(有错吗?)  
  FILE   *   fp;  
  struct   record   rec;  
  ....  
  while   (fread(   (char   *)&rec,   sizeof(rec),   1,   fp)   ==   1)    
  {  
  /*   对rec执行操作*/  
                        (A)  
  if   (/*rec   必须被重新写入*/)  
  {  
                                  (B)  
  fseek(fp,-(long)sizeof(rec),1);  
                                  (C)  
  fwrite(   (char*)&rec,   sizeof(rec),   1,   fp);  
                                  (D)  
  }  
  }  
  认为有错的   请在A   B   C   D   其中一处加上改正代码   用   A(位置)   添加的语句   验证  
  认为没错的   请用   NO验证  
  编程群   34239472Top

25 楼yzx1983(捕风捉影)回复于 2007-01-03 12:55:19 得分 0

fseek(fp,-(long)sizeof(rec),1);  
  写成  
  fseek(fp,-(long)sizeof(rec),SEEK_CUR);  
   
  比较好吧Top

26 楼kuwe34()回复于 2007-01-03 13:40:16 得分 0

是的   但是问题不在这里Top

27 楼kuwe34()回复于 2007-01-03 13:48:28 得分 0

这题应该相对容易点吧Top

28 楼kuwe34()回复于 2007-01-03 13:50:59 得分 0

人   气: 469  
  Top

29 楼ReverseEngineering(★给我一杯壮阳水☆换我一夜不下垂★男人阳萎不是罪☆)回复于 2007-01-03 14:52:12 得分 0

学习,好刁专呀!Top

30 楼yqever()回复于 2007-01-03 16:07:43 得分 0

什么群,还要发答案才能加入?  
  先想想别人是否愿意加你的群吧.Top

31 楼kuwe34()回复于 2007-01-03 16:26:08 得分 0

为了营造一个真正的学习讨论氛围,大家都有一定的基础Top

32 楼kuwe34()回复于 2007-01-03 17:24:37 得分 0

其实语句是没错的   就是少了一句关键的   很容易忽略的Top

33 楼Arthur_()回复于 2007-01-03 17:50:18 得分 0

dTop

34 楼Arthur_()回复于 2007-01-03 17:50:59 得分 0

帮你顶Top

35 楼xmxoxo(xmxoxo)回复于 2007-01-03 17:55:43 得分 0

群嘛,人多,水平高都没啥子用  
  说一句话,半天没人应,人再多,水平再高又有啥用  
  关键是有几个热心的人......Top

36 楼kuwe34()回复于 2007-01-03 18:30:44 得分 0

以前有个群   老是有人出来说帮忙写课程设计的东西   烦  
  所以才有问题验证的这主意   起码不会是一些为了作作业的人进来了Top

37 楼liangxing110()回复于 2007-01-03 22:40:52 得分 0

heheTop

38 楼kuwe34()回复于 2007-01-03 22:48:15 得分 0

难道每人看出漏了哪句吗?  
  大家发表一下咯Top

39 楼Arthur_()回复于 2007-01-04 13:02:57 得分 10

choose   D  
   
  读写交叉问题Top

40 楼Arthur_()回复于 2007-01-04 13:03:41 得分 0

顺便顶,   公司没qq,郁闷期待webqqTop

41 楼mlwu3(wml)回复于 2007-01-04 13:30:29 得分 0

markTop

42 楼kuwe34()回复于 2007-01-04 15:09:05 得分 0

Arthur_(事业迷忙期)   是的  
  是读写交叉问题Top

43 楼yzx1983(捕风捉影)回复于 2007-01-04 15:29:03 得分 30

Reads     and   writes   may   be   intermixed   on   read/write   streams   in   any   order.  
                Note   that   ANSI   C   requires   that   a   file     positioning     function     intervene  
                between     output   and   input,   unless   an   input   operation   encounters   end-of-  
                file.     (If   this   condition   is   not   met,   then   a   read   is   allowed   to     return  
                the   result   of   writes   other   than   the   most   recent.)     Therefore   it   is   good  
                practice   (and   indeed   sometimes   necessary   under   Linux)   to   put     an     fseek  
                or     fgetpos     operation     between     write     and     read     operations   on   such   a  
                stream.     This   operation   may   be   an   apparent   no-op   (as   in   fseek(...,     0L,  
                SEEK_CUR)   called   for   its   synchronizing   side   effect.Top

44 楼yzx1983(捕风捉影)回复于 2007-01-04 15:29:13 得分 0

好神奇……Top

45 楼ccczqh(jingoo)回复于 2007-01-04 16:52:50 得分 20

struct   record  
  {  
  int   a;  
  int   b;  
  };  
   
  int   main(int   argc,   char*   argv[])  
  {  
  FILE   *   fp;  
  struct   record   rec;  
  int   i=0,ret=0;  
   
  #if   1  
  fp=fopen(".\\t.txt","w");  
  for(i=0;i<1;i++)  
  {  
  rec.a='a'+i;  
  rec.b=0;  
  fwrite(   (char*)&rec,   sizeof(rec),   1,   fp);  
  }  
  fclose(fp);  
  i=0;  
  #endif  
  fp=fopen(".\\t.txt","r+");  
  while   (fread(   (char   *)&rec,   sizeof(rec),   1,   fp)   ==   1)  
  {  
  /*   对rec执行操作*/  
  //(A)  
  if   (1/*rec   必须被重新写入*/)  
  {  
  //(B)  
  //fseek(fp,-sizeof(rec),1);  
  ret=fseek(fp,-sizeof(rec),1);  
  printf("cur:%d\n",ftell(fp));  
  //(C)  
  fwrite(   (char*)&rec,   sizeof(rec),   1,   fp);  
  fflush(fp);  
  printf("cur2:%d\n",ftell(fp));  
  //(D)  
   
  if(i++>2)  
  {  
  fseek(fp,0,SEEK_END);  
  printf("cur3:%d\n",ftell(fp));  
  break;  
  }  
  }  
  }  
  fclose(fp);  
   
   
  printf("Hello   World!\n");  
  return   0;  
  }  
  //刚才写的测试代码!如果不添加fflush(fp);就错误!  
  Top

46 楼kuwe34()回复于 2007-01-04 17:13:04 得分 0

正解是    
  yzx1983(捕风捉影)   (   )   信誉:100  
  大家看看  
  Top

47 楼ccczqh(jingoo)回复于 2007-01-04 17:31:58 得分 0

kuwe34()   再来一个把!呵呵Top

48 楼qualcommbrew()回复于 2007-01-04 17:34:21 得分 0

没必要     我想真正的高手也不会去加这样的群。  
  虽然我也不是什么高手,这样的题也太小儿颗了吧。Top

49 楼kuwe34()回复于 2007-01-04 17:47:35 得分 0

其实用  
  fflush也是可以的Top

50 楼windspeaker()()回复于 2007-01-04 20:26:25 得分 0

其实大家都上当了,哈哈Top

51 楼kuwe34()回复于 2007-01-04 20:57:26 得分 0

是基础群Top

52 楼kuwe34()回复于 2007-01-04 21:03:16 得分 0

我们十分希望真正的高手加入  
  注明:小儿科  
  即可Top

53 楼kuwe34()回复于 2007-01-04 21:06:09 得分 0

回复人:qualcommbrew()   (   )   信誉:100 2007-01-04   17:34:21 得分:0  
   
   
  ? 没必要   我想真正的高手也不会去加这样的群。  
  虽然我也不是什么高手,这样的题也太小儿颗了吧。Top

54 楼studyall123(不想当将军的士兵不是一名好士兵)回复于 2007-01-04 21:09:32 得分 0

jfTop

55 楼wapdiannet(孤独剑)回复于 2007-01-05 13:01:46 得分 0

while   (fread(   (char   *)&rec,   sizeof(rec),   1,   fp)   ==   1)    
  {  
  /*   对rec执行操作*/  
                        (A)  
  if   (/*rec   必须被重新写入*/)  
  {  
                                  (B)  
  fseek(fp,-(long)sizeof(rec),1);  
                                  (C)  
  fwrite(   (char*)&rec,   sizeof(rec),   1,   fp);  
                                  (D)  
  //fseek(fp,(long)sizeof(rec),1);  
  }  
  }  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:kuwe34
  • DragonBill
  • davidxbc
  • Arthur_
  • yzx1983
  • ccczqh

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo