东南融通笔试题
来源:互联网 发布:vue require引入js 编辑:程序博客网 时间:2024/05/17 07:28
感觉题很简单,但是还有很多问题是值得思考的
一、
int main()
{
char *a="Hello";
char *b="world/n";
strcpy(a,b);
printf("%s,%s",a,b);
}
程序运行的结果是什么?
解析:这道题看上去很简单,第一想到的就是strcpy的地址越界问题,所以认为结果可能是
world
world
或者是运行错误,因为出现了地址越界,对于越界后的地址我们并不知道存的是什么,有可能是很重要的内容。
第二想到的是/n在结果中怎么输出呢,这个问题考虑的多余,//n才是输出/n,而/n直接以回车形式输出。
第三真正上机运行会发现,即使地址不发生越界,运行也会错误,仔细分析原因,得出如下结论
char *a="Hello";
其中的"Hello"是字符串常量,存放在常量存储区(具体存放在内存什么位置,还有待于验证),但有一点是肯定的,常量是不允许修改的。
改正:char a[6]="Hello";
或者是char *a=(char *)malloc(sizeof(char)*6);
strcpy(a,"Hello");
二、下面这道题很简单,但刚看到时也思考了一会儿,考虑怎么做会更好一些呢
输入16进制数,编写程序将其以10进制数形式输出
代码:已经上机运行通过,只要输入的16进制数合法,就能输出正确结果,如果有不对的地方,还希望明白的朋友给予指正
#include <stdio.h>
int convert(char *p){
int i=0;
int sum=0;
while(p[i]!='/0'){
if(p[i]>='0'&&p[i]<='9')
sum=sum*16+p[i]-'0';
else
sum=sum*16+p[i]-55;
i++;
}//while
return sum;
}//convert
int main()
{
char a[4];
gets(a);
printf("16进制 %s 转换为 10进制 %d/n",a,convert(a));
return 0;
}
- 东南融通笔试题
- 去东南融通实习了
- 东南融通 oracle面试感想
- 东南融通无领导小组面试记
- 我已经进入东南融通公司工作。
- 东南融通,你咋整的?
- 东南融通沉沦:危险的并购游戏
- VSS2005 安装疑难解惑-----东南融通实习之1
- 东南融通 面试~~~ 对面试官近乎崇拜啦!
- 东南融通之殇(软件企业思考系列之一)
- 我们需要怎样的企业文化(写东南融通)
- 中国概念股“被猎杀”真相 【有讲东南融通】
- 东南融通之殇(软件企业思考系列之一)
- 海外势力做空中国概念问题的一些看法(写东南融通)
- 纪念东南融通【仿鲁迅的纪念刘和珍君】
- 东南融通之殇-网友点评篇(软件企业思考系列之二)
- 东南928真题订正
- 对方答复 融通
- 删除表中重复的数据
- tcp协议是面向连接的,而http是无状态的,面向连接和无状态怎么感觉好像优点矛盾呢?
- 对EJB3 中的实体的一些认识
- VB PDU mode 7 bit 解码
- Steve Jobs的十句金玉良言(10 Golden Lessons From Steve Jobs)(转)
- 东南融通笔试题
- http://www.ucatch.cn/read.php/207.htm
- 数据库日志已满。请备份该数据库的事务日志以释放一些日志空间
- 简单的实时提示功能的实现
- 简易函数信号发生器与计数器设计
- 11月总攻发起,嘹亮的号角又响起来~~快乐回归!
- 教训:时间一定要用统一输入接口
- 因特网与TCP/IP
- 字符串中全角半角字符的转换