![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
thomas_blog
路漫漫其修远兮
展开
-
第20题 输入字符串 输出整数
输入一个表示整数的字符串, 把该字符串转换成整数并输出例如输入字符串"1234", 则输出整数1234for(i = 3; i >= 0; i--){ a += (buf[i] - '0') * tmp; tmp *= 10; }原创 2015-03-02 13:17:19 · 1418 阅读 · 0 评论 -
第32题 有序列a,b
我们发现全部四个网络监控工具,都很出色的完成了基本任务,如检查主机的可用性和测量带宽使用功能。除了基本的功能,它们在小功能和配置选项方面有不少的差异。监测工具比较 网络监控是确保网络平稳运行的重要组成部分。我们测试了4款开源网络监控产品:Cacti、Icinga、ZABBIX 和 Observium。我们发现全部四个网络监控工具,都很出色的完成了基本任务,如检查主机的可用性和测量带宽使用功能。Z原创 2015-03-10 14:54:15 · 548 阅读 · 0 评论 -
exit()与_exit()的区别
从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()函数在调用exit 系统调用前要检查文件的打开情况,把文件缓冲区中的内容写回文件转载 2015-12-28 16:47:40 · 296 阅读 · 0 评论 -
自旋锁和互斥锁
1. 理论分析 从理论上说, 如果一个线程尝试加锁一个互斥锁的时候没有成功, 因为互斥锁已经被锁住了, 这个未获取锁的线程会休眠以使得其它线程可以马上运行。 这个线程会一直休眠, 直到持有锁的线程释放了互斥锁, 休眠的线程才会被唤醒。 如果一个线程尝试获得一个自旋锁的时候没有成功, 该线程会一直尝试加锁直到成功获取锁。 因此它不允许其它线程运行(当然, 操作系统会在该线程所在的时间片用完时, 强制转载 2015-12-28 16:40:59 · 364 阅读 · 0 评论 -
给出一个16位的二进制数
给出一个16位的二进制数, 求每四位相加的和 例: 1111 1011 0111 0101 = 1111 + 1011 + 111 + 101 = 2334void get_sum(int a){ int i = 0; int sum = 0; int num = 1; for(i = 0; i < 16; i++)原创 2015-03-06 17:45:20 · 3597 阅读 · 0 评论 -
递归
利用递归实现1到100以内的求和int get_sum(int a){ if(a > 0) { return a + get_sum(a - 1); }}原创 2015-03-04 22:46:25 · 349 阅读 · 0 评论 -
char能表示(-128~127)
char 的取值范围是 -128 ~127 注:数0的补码表示是唯一的: +0的补码=+0的反码=+0的原码=00000000 -0的补码=11111111+1=00000000(mod 2的8次方) 由于-128的原码用8位无法表示,所以必须扩展到16位去表示,然后对16位的原码计算出16位的反码和补码,最后对16位的补码作低8位的截断,截断的低8位的值就是-128的补码了。转载 2015-03-05 20:49:34 · 1391 阅读 · 0 评论 -
第14题 已序数组和数字
输入一个已经按升序排序过的数组和一个数字在数组中查找两个数, 使得他们的和正好是输入的那个数字. 要求时间复杂度是O(n). 如果有多对数字的和等于输入数字, 输出任意一对即可例如: 输入数组 1 2 4 7 11 15 和数字15. 由于4+11=15, 因此输出4 和 11法一:for(i = 0; i < 6; i++)原创 2015-02-28 17:22:16 · 410 阅读 · 0 评论 -
数组第二大数
写一个函数找出一个整数数组中第二大的数#if 0 for(i = 0; i < 8; i++) { if(buf[i] > max) { sec = max; max = buf[i]; } }#endif for(i =原创 2015-03-02 22:41:18 · 361 阅读 · 0 评论 -
第25题 查找连续数字串
写一个函数, 他的原型是 int continumax(char outputstr, char inputstr)功能: 在字符串中找出连续最长的数字串, 并把这个串的长度返回, 并把这个最长数字串赋给其中一个函数参数outputstr所指内存 char *str = "abcd12345ed125ss123456789"; int num = 0; int num_tmp =原创 2015-03-02 16:30:46 · 384 阅读 · 0 评论 -
表达式求值
#include #include using namespace std;void mutiply(deque::iterator &it, deque &stmp, deque &ftmp){ for(it = ftmp.begin(); it != ftmp.end(); it++) { if('\0' == *it)原创 2015-02-03 13:01:27 · 382 阅读 · 0 评论 -
查重字符串
记录方法for(i = 0; str[i] != '\0'; i++){ record[str[i]]++; //记录出现次数 if(1 == jilu[str[i]]) { result[num++] = str[i]; //输出不重复项 }}将26字母剩余部分拼接for(assic = 'A'; assic <= 'Z'; assic++){原创 2015-01-29 14:26:39 · 2999 阅读 · 0 评论 -
子数组最大和
void getMaxChildBuf(char *str, int length){ int i = 0; int sum = 0; int tmp = 0; for(i = 0; i < length; i++) { sum += str[i];原创 2015-02-03 14:38:42 · 236 阅读 · 0 评论 -
c知识点总结
长整型,单精度浮点型 3235L,32.5F 分别表示3235是长整型数据,32.5是单精度浮点型左,若不写上L,F则表示3235是整型,32.5是双精度浮点型,L,F大小写皆可命名规则 以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头逗号表达式 如3+4,a=9,8*a 最后一个的值,如上例为8*ascanf(“格式控制串”,变量地址表列); 1. 若其格式控制串内各格式符原创 2015-03-03 22:06:35 · 577 阅读 · 0 评论 -
内存申请与一级二级指针
1.如果是函数内进行内存申请,很简单,标准用法就可以了test(){ int *array; array=(int *)malloc(sizeof(int)*10);//申请10*4 bytes,即10个单位的int内存单元}注意,malloc使用简单,但是注意参数和返回值,参数是申请内存的字节数,多字节的类型如int,short,float等需要乘上类型字节数,返回值是没有定义类转载 2015-03-03 17:19:21 · 587 阅读 · 0 评论 -
字节对齐
1. 对齐的作用和原因 各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为32转载 2015-12-24 18:47:45 · 332 阅读 · 0 评论