第二部分程序结果分析,分析流程还是写入代码注释中

分析下面程序的输出:

#include <stdio.h>int main()
{char *a = "hello";char *b = "hello";if (a == b)printf("YES");elseprintf("NO");//由于a、b指针指向的常量字符串相同,编译器为了节省空间,//将a、b指针变量都指向了hello字符串所在的内存位置return 0;
}

分析下面代码,输出什么结果:

#include <stdio.h>int func(int a)
{int b;switch (a){case 1: 30;case 2: 20;case 3: 16;default: 0;}return b;
}int main()
{printf("%d", func(1));//输出结果随机,因为b变量没有初始化,也没有赋值,直接返回了return 0;
}

写出程序运行结果:

#include <stdio.h>int sum(int a)
{//auto int c = 0; vs2013不能用这种方式声明auto变量auto c = 0;static int b = 3;c += 1;//每次调用函数是c最后都等于1b += 2;//因为b是静态变量,所以第一次调用函数时b等于5,以后每次调用b增加2return (a + b + c);
}int main()
{int i;int a = 2;for (i = 0; i < 5; i++){printf("%d,", sum(a));//所以第一次调用sum结果是2+1+5=8,第二次调用2+1+7=10,以此类推,输出结果为8,10,12,14,16,}return 0;
}

写出程序输出结果:

#include <stdio.h>void g(int **);int main()
{int line[10], i;int *p = line;for (int i = 0; i < 10; i++){*p = i;g(&p);//调用后相当于p[0]++=i,p++}for (int i = 0; i < 10; i++)printf("%d\n", line[i]);//所以最后输出结果为1,2,3,4,5,6,7,8,9,10return 0;
}void g(int **p)
{(**p)++;//让传进来的二级指针最终指向的值自增(*p)++;//让传进来的指针自增
}

分析下面程序的输出结果:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>void GetMemory(char **p, int num)
{*p = (char *)malloc(num);
}int main()
{char *str = NULL;GetMemory(&str, 100);strcpy(str, "hello");free(str);//str指向的内存被释放了,但是str值没变,肯定不为NULLif (str != NULL){strcpy(str, "world");//这里很可能奔溃,如果没有奔溃向下之行}printf("\n str is %s", str);//输出  str is worldreturn 0;
}

此系列题目已经结束,如果有什么问题和疑问可以在下面留言互相探讨。

原题我已经上传到这里了http://download.csdn.net/detail/yincheng01/6461073 ,

解压密码为 c.itcast.cn

转载于:https://www.cnblogs.com/new0801/p/6177578.html

基于Visual C++2013拆解世界五百强面试题--题18-程序结果分析2-终结篇相关推荐

  1. 基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr

    http://blog.csdn.net/itcastcpp/article/details/12907371 请用C语言实现字符串的查找函数strstr, 找到则返回子字符串的地址,没有找到返回为空 ...

  2. 基于Visual C++2013拆解世界五百强面试题--题14-循环删除

    有一个数组a[1000]存放0-1000,要求每隔二个数删除一个数,到末尾时循环到开头继续进行,求最后一个被删掉数的原始下标. 看到题目可以用循环链表保存这些数,然后循环删除,大大减少了一些复杂的边界 ...

  3. 世界五百强第一的沃尔玛在用区块链做什么

    每一次的技术升级都是行业的洗牌,沃尔玛无疑为同业甚至其他领域的巨头做出了示范. <区块链应用案例>专栏04期 作者丨区块链落地小能手 图丨部分来源于网络 专栏简介 不知不觉区块链已经发展了 ...

  4. 三本毕业后,我进入了世界五百强

    作者 | 静思    责编 | 八宝粥 来源 | 转载自猎聘(ID:liepinwang) 前两天,在我的职场社交平台上有位朋友发布了这样一条消息: 从自考本科.到斯坦福法学院毕业生.再到现在的律师事 ...

  5. 世界五百强面试题目及应答评点

    世界五百强面试题目及应答评点 作者:深圳的小屋    文章来源:天涯虚拟社区      更新时间:2004-12-3       问题1             你为什么觉得自己能够在这个职位上取得成 ...

  6. 世界五百强背景,为啥到了保险行业就成了「小公司」?

    每当学姐聊到产品的时候,总有人问: 这个保险公司我没听过啊-靠不靠谱? 小保险公司会不会倒闭啊? 就怕理赔没有保障啊- 虽然学姐每次都会耐心的解答,告诉大家保险行业没有"小公司". ...

  7. 世界五百强面试题目及应答评点(50题)

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 世界五百强面试题目 ...

  8. 世界五百强世硕科技工作经历——05

    我走了,谁还在你身旁 时光容易把人抛,红了樱桃,绿了芭蕉.三日一晃而过,脱下外套,抖落一地疲惫,换上逐梦的衣裳,踏上新一年的征程,内心忐忑,如小鹿乱撞怦怦直跳,那个令我茶饭不思,魂牵梦萦的地方--世硕 ...

  9. 美通企业周刊 | 爱立信已获100份5G商用合同;北京广东世界五百强数量领跑全国​...

    一周企业资讯看点:北京广东世界五百强数量领跑全国.爱立信已获100份5G商用合同,腾讯第二季度收入1148.83亿元.凯悦与首旅如家合资品牌逸扉开业.摩凡陀启用全球代言人李荣浩,薇姿与国大药房推动消费 ...

最新文章

  1. MongoDB系列四(索引).
  2. 3D Vision公开课精华 | 深度三维感知:数据、学习架构与应用
  3. sz 命令错误输入成xz,粗心导致的小事故
  4. 将网页发布到远程windows server
  5. 拉登是我罩的队_软件需求规格说明书
  6. SSM框架原理以及流程
  7. ps如何图片调色教程及ps有哪些好用的调色滤镜插件
  8. 《线性代数:行列式》: 克拉默法则
  9. js 实现在线考试切屏代码
  10. JavaScript 教程「2」:注释、输入输出、变量
  11. 手机成移动互联网入口必争之地
  12. 分体式蓝牙耳机有哪些推荐?好用的分体式蓝牙耳机推荐
  13. 计算机为何用二进制而不用十进制,为什么计算机使用二进制而不是十进制?
  14. 模糊查询银行卡号mysql_mysql模糊查询
  15. 解决潘多拉路由器固件使用AIDISK共享优盘,出现U盘每次爆满问题
  16. 线性代数-向量,矩阵,线性变换
  17. Mac快捷键及手势基本操作
  18. 《自己动手写框架8》:高屋建瓴,理念先行
  19. HTML期末大作业~节日礼品购物商城网站html模板(HTML+CSS+JavaScript)
  20. MiniGui 逻辑字体放大后脏点处理方法

热门文章

  1. [HNOI2015]亚瑟王
  2. 控制器view生命周期
  3. 使用Qt Installer Framework制作软件安装包
  4. 多进程多线程GDB调试 (转)
  5. 集合,stack,queue,dictionary,ArrayList,listT
  6. JQuery Attributes 方法说明
  7. [导入]第 3 章 Enterprise Library 的设计
  8. 用汇编实现add函数
  9. NEO从源码分析看NEOVM
  10. java json格式的转换和读取