免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22405 | 回复: 78
打印 上一主题 下一主题

[C] HELP!我是C新手,看到两个oracle的C语言面试题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-09 20:54 |只看该作者 |倒序浏览
1) 使用C语言写出以下函数,给你三个变量a,b,c,请不使用其他变量的情况下交换他们的值,使得a=b, b=c, c=a;

2) 使用C语言写出以下函数,给你一个用字符串表示的整数,请写一个函数把该字符串转化成为整数,并要求处理异常情况。函数体中的语句不能超过5句

就上面两个,想了一下不会做,高手来解答下呢!

论坛徽章:
0
2 [报告]
发表于 2007-01-09 21:36 |只看该作者
题目跟ORACLE有上面关系呢?不解!!

论坛徽章:
0
3 [报告]
发表于 2007-01-09 21:57 |只看该作者
好难啊
第一个好象以前讨论过
但是忘记鸟啊

论坛徽章:
0
4 [报告]
发表于 2007-01-09 22:01 |只看该作者
原帖由 bleem1998 于 2007-1-9 21:57 发表
好难啊
第一个好象以前讨论过
但是忘记鸟啊


加加减减

论坛徽章:
0
5 [报告]
发表于 2007-01-09 22:11 |只看该作者
好是的
而且还讨论过不会溢出
right?
a = 1
b = 2

a = a + b
b = a - b
a = a - b

论坛徽章:
0
6 [报告]
发表于 2007-01-09 22:22 |只看该作者
写了个
远远超过5句
sigh

  1. int str2int(char *str, int *ret)
  2. {
  3.     int xx = 1;
  4.     if (str == NULL) return -1;
  5.     if (*str++ == '-')
  6.         xx = -1;
  7.     while(str && *str) {
  8.         if ((*str >= '0') && (*str <= 9))
  9.             *ret = (*ret * 10) + *str - '0';
  10.         else
  11.             return -1;
  12.     }
  13.     *ret *= xx;
  14.     return 0;
  15. }
复制代码

论坛徽章:
0
7 [报告]
发表于 2007-01-09 22:30 |只看该作者
c = (a+c)-(a=b,b=c);

论坛徽章:
0
8 [报告]
发表于 2007-01-09 22:34 |只看该作者
第二题考虑符号...我实在是...不行了...

  1. void
  2. exchange(int *a, int *b, int *c)
  3. {
  4.     *a = *a + *b + *c;
  5.     *c = *a - *b - *c;
  6.     *b = *a - *b - *c;
  7.     *a = *a - *b - *c;
  8. }
复制代码


8行...我实在想不出来了...如果不要求代码格式...估计5行..还有点希望....

  1. void
  2. atoi(char *str, int *rc)
  3. {
  4.     *rc = 0;
  5.     if (str == NULL)
  6.         return ;
  7.     int sign = (*str != '-' ? 1 : 0); /* only for ... c99 */
  8.     str = (*str == '-' || *str == '+') ? str + 1 : str;
  9.     while ((*str) && isdigit(*str))
  10.         *rc = *rc * 10 + (*str++ - '0');
  11.     *rc = (sign) ? *rc : -*rc;
  12. }
复制代码

[ 本帖最后由 Edengundam 于 2007-2-12 17:50 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-01-09 22:36 |只看该作者
a ^= b ^= c ^= a ^= b ^= c ^= a ^= b;

[ 本帖最后由 路小佳 于 2007-1-9 22:50 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-01-09 23:34 |只看该作者
原帖由 路小佳 于 2007-1-9 22:36 发表
a ^= b ^= c ^= a ^= b ^= c ^= a ^= b;


强,不过没看懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP