工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1635|回复: 8

无聊的C语言考题

[复制链接]
发表于 2006-5-1 23:57 | 显示全部楼层 |阅读模式
五一的晚上好无聊,恰巧看到这个题目,那位作者说这是他参加一家公司笔试的题目.

以下程序的输出结果是什么?

  1.         main()
  2.         {
  3.             int x = 1, y = 2;

  4.             x = x++ + y++;
  5.             y = ++x + ++y;

  6.             printf("%d %d", x, y);
  7.         }
复制代码


我用两个不同的编译器测试的结果都是5,9

这种题怎么理解?为什么公司会出这种题目的?
发表于 2006-5-2 01:00 | 显示全部楼层
编译器不同得出的结果不同吧?
这种题目好像没有一个明确答案才对啊。
回复

使用道具 举报

发表于 2006-5-5 23:18 | 显示全部楼层
就只有一个答案:

           x = x++ + y++;  /*  先取 x值,y值相加赋与x   接着,x加一,y加一   此时,x=1+2+1=4    y=2+1=3*/
             y = ++x + ++y;/*  x,y值先加一,然后两者相加,赋与y  即些时,x=4+1=5  y=5+(3+1)=9*/
回复

使用道具 举报

发表于 2006-5-5 23:20 | 显示全部楼层
应该是考基础的吧

知识点:++x  与 x++的区别
回复

使用道具 举报

 楼主| 发表于 2006-5-6 19:57 | 显示全部楼层
按5,9的答案,我这样分析.

  1. int main()
  2.         {
  3.             int x = 1, y = 2;
  4.             x = x++ + y++;//x=1+2=3;x++,y++离开这句则加1,所以x=x+1=4;y=y+1=3
  5.             y = ++x + ++y;//x,y先加1,x=5;y=4;然后y=5+4=9
  6.             printf("%d %d", x, y);
  7.         }
复制代码

但也有人说结果未定义,这样无聊的题目应该没多大意义,除非哪天去公司笔试时又遇到这种题.
回复

使用道具 举报

发表于 2006-5-7 03:08 | 显示全部楼层
貌似楼上 的分析对……

和我的分析也一样呀……
         

   int x = 1, y = 2;

               x=x+y;
               x++;
               y++;
               x++;
               y++;
               y=x+y;

[ 本帖最后由 iptton 于 2006-5-7 03:49 编辑 ]
回复

使用道具 举报

发表于 2006-5-7 19:48 | 显示全部楼层
哈哈...我最怕这种题目...

BS出这种笔试题的公司...
回复

使用道具 举报

发表于 2006-5-9 01:38 | 显示全部楼层
为什么要bs呢?
回复

使用道具 举报

发表于 2006-5-9 11:24 | 显示全部楼层
真正项目没人这么写吧???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-30 23:37

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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