| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2541 人关注过本帖
标题:几个小题,娱乐一下
只看楼主 加入收藏
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
[bo]以下是引用 [un]永夜的极光[/un] 在 2008-3-11 18:47 的发言:[/bo]

第一题这次可以了,TC2测试通过

#define __STDIO_DEF_
#include
void printf(char *s)
{
    puts("abcdefg\nhijklmn\nopq rst\nuvw xyz\n");
}
int main(void)
{
    printf("abcdefg\n");
    return 0;
} ...

不建议这样做。
甚至你直接定义一个宏:
#define printf(x) printf("abcdefg\nhijklmn\nopq rst\nuvw xyz\n")
或者针对这个题目
#define printf(x) printf(x"hijklmn\nopq rst\nuvw xyz\n")
都可以。
但不建议修改直接printf函数的行为。
收到的鲜花
  • 永夜的极光2008-03-11 19:13 送鲜花  8朵   附言:有道理
  • cosdos2008-03-11 19:20 送鲜花  6朵   附言:我很赞同
  • cosdos2008-03-11 19:20 送鲜花  2朵   附言:我很赞同

坚决不跟用TC的人打交道!
2008-03-11 19:10
spring4676
Rank: 1
来 自:内蒙古大草原
等 级:新手上路
帖 子:103
专家分:0
注 册:2007-12-10
收藏
得分:0 
这么多人那
真厉害
2008-03-11 19:16
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
[bo]以下是引用 [un]永夜的极光[/un] 在 2008-3-11 18:53 的发言:[/bo]


突然想想,puts也是在stdio.h里面定义的,应该也没有了才对呀,怎么TC还能测试通过呢?

因为stdio.h是默认包含的,puts、printf等函数也是属于build-in的。
再说一点,TC能编译通过不能说明问题。

坚决不跟用TC的人打交道!
2008-03-11 19:16
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
怎么没想到宏呢,
看来宏用的太少了。

—>〉Sun〈<—
2008-03-11 19:18
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:0 
第3题
int s()
{static int i=-10;
i+=10;
return i;
}

How are you 怎么是你?
How old are you   怎么老是你?
2008-03-11 20:27
yxwsbobo
Rank: 5Rank: 5
等 级:职业侠客
帖 子:345
专家分:306
注 册:2007-10-29
收藏
得分:0 
好像多了个括号替换一下

#define s s()
int s
{static int i=-10;
i+=10;
return i;
}
收到的鲜花
  • zbqf1092008-03-11 20:37 送鲜花  4朵   附言:Very Good!

How are you 怎么是你?
How old are you   怎么老是你?
2008-03-11 20:33
lv5sky
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-10-5
收藏
得分:0 
第三题!
在if (s > 0)不成立的而 else if (s > 9)成立的条件下时输出2 的结果!
2008-03-11 20:43
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
收藏
得分:0 
总结一下吧。
(1)可以参考http://hi.baidu.com/akiraww/blog/item/db1be589a4f6d5b00e2444e5.html
(2)几种参考答案:
 a.  i = printf("  4  7 10 13 16 19 22 25")
 b.  i = (printf("  4  7 10 13 16 19 22 25"), 10)
       用逗号表达式是因为预防printf执行失败之后返回一个负数
 c.  i = i + (printf("\b\b\b%3d", 3 * i - 2)) * 0 + 1
 d.  i = 10) ; for (i = 1; i <=25; i+=3
(3) 几种参考答案
 a.  #define printf(x)  printf("2\n")
       这种方法很无耻,-_-
 b.
程序代码:

 int foo()

 {
    static int i = -10;
    return i += 10;

 }

 #define  s  foo()

 c.
程序代码:
  int foo()
  {
      printf("2\n");
      exit(0);
  }
  #define  s  foo()


就这些了,欢迎补充。

[[it] 本帖最后由 zbqf109 于 2008-3-11 20:52 编辑 [/it]]

坚决不跟用TC的人打交道!
2008-03-11 20:49
jaycui
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-11
收藏
得分:0 
1. 有段程序如下:复制内容到剪贴板代码:
#include <stdio.h>
#define abcdefg abcdefg
                hijklmn
                opq rst
                uvw xyz
int main(void)
{
    printf("abcdefg\n");
    return 0;
}
2. 有段程序如下:复制内容到剪贴板代码:
#include <stdio.h>
int main(void)
{
    int i = 0;
    for (i = 1; i <= 9; i = _i+3________________)
        printf("%3d", i);
    printf("\n");
    return 0;
}问:在空白处填什么使得程序输出为:
1  4  7 10 13 16 19 22 25

3. 有段代码如下:复制内容到剪贴板代码:
if (s > 0)
    printf("1\n");
else if (s > 9)
    printf("2\n");
else
    printf("3\n");
2008-03-11 20:53
agcaccc
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-3-8
收藏
得分:0 
for (i = 1; i <= 9; i = 10, printf("  4  7 10 13 16 19 22 25"))
        printf("%3d", i);
看不懂,哪位高手告诉我
2008-03-11 22:42
快速回复:几个小题,娱乐一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved