LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1356|回复: 7

99年中财的一道c语言考研题,大家帮忙分析一下。

[复制链接]
发表于 2006-10-14 15:54:50 | 显示全部楼层 |阅读模式

  1. #include <stdio.h>
  2. struct sl{
  3.     char *s;
  4.     struct sl *ptr;
  5. };
  6. struct sl a[]={
  7.     {"efgh",a+1},
  8.     {"ijkl",a+2},
  9.     {"mnop",a}
  10. };
  11. struct sl *p=a;

  12. void main(){
  13.     int i;
  14.     for(i=0;i<3;i++)
  15.         printf("%s   %s   %c   %s\n",a[i].s,a[i].ptr->s,a[i].s[i]++,++p++->ptr->s+1);
  16. }
复制代码

结果是:

  1. ffgh   jkl   e   kl
  2. jll   nop   k   op
  3. nop   fgh   p   gh
复制代码
发表于 2006-10-14 16:19:32 | 显示全部楼层
结果是内存访问错误,因为那些字符串分配的空间是只读内存,不能修改。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-14 17:07:14 | 显示全部楼层
结果是有的,建议在纯dos下用tc试一下,我要问的是为什么a[0].s是ffgh 而不是efgh?
在下菜鸟,莫怪!:thank
回复 支持 反对

使用道具 举报

发表于 2006-10-14 18:17:43 | 显示全部楼层
这是个垃圾题

printf的参数中各表达式运算顺序导致的
回复 支持 反对

使用道具 举报

发表于 2006-10-25 20:13:54 | 显示全部楼层
运行到程序错误
还是用的gcc 开了ansi C 选项的
这题就象英语考级
实用性小 可读性差
回复 支持 反对

使用道具 举报

发表于 2006-10-27 10:29:39 | 显示全部楼层
一道晦涩的C语言考题,并无实际用途,可见考研早已经失去了原来的意义,仅仅是迫于就业压力或者工作压力不得不考而已了.
回复 支持 反对

使用道具 举报

发表于 2006-10-27 16:09:15 | 显示全部楼层
Post by 冰原子
一道晦涩的C语言考题,并无实际用途,可见考研早已经失去了原来的意义,仅仅是迫于就业压力或者工作压力不得不考而已了.


同意!!!

这种题目考的真是垃圾!
除非他们招的是开发编译器的人才!
回复 支持 反对

使用道具 举报

发表于 2006-10-28 18:38:27 | 显示全部楼层
一看吓了一大跳,现在中财这个名字用的人不少。呵呵
我是中央财经大学的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表