当前位置: 首页 > news >正文

几道面试题

我起了个新标题,只是不想再贴一次了,所以整个拷过来,
给大家参考一下,并无要引起大家注意的意思。 谢谢!


发信人: ReAKiNg (ReAKiNg), 信区: Office
标 题: Re: 几道面试题
发信站: 鼓浪听涛 (Fri Nov 16 17:19:03 2001), 转信

faint...还是把理由给了算了。


【 在 ReAKiNg (ReAKiNg) 的大作中提到: 】
: 有一点点难度。 我做了一份参考答案,理由暂时不忙给。
: 【 在 tsky (sky) 的大作中提到: 】
: : 发信站: 饮水思源 (2001年11月16日11:53:18 星期五), 转信
: : 1。int i=5,j;
: : j=(++i)*(i--);
: : 运行后i=_______,j=_________
: i == 5; j == 36;

我们知道++i先算++i在参与表达式运算,而i--恰好相反。
原式相当于(j=(++i)*i)&&(i--)
(j==6*6)&&(i==6-1)

: : 2。 int a[] = {0,1,2,3,4};
: : int *p[] = {a,a+1,a+2,a+3};
: : int **pp = p;
: : 假设a=8239150(记不清了,大概吧),p=8239168
: : *(pp++)-a = ?
: 2

第三行告诉我们pp = p;
所以pp++相当于p++;
而p++相当于p+1;相当于&p[1];
所以*(pp++)相当于*(&p[1]);相当于p[1];
p[1]等于多少? 等于a+1;
所以原式等价于(a+1)-a;
考虑到a和a+1是整形地址,占2字节的空间;
所以答案为2。

: : 3。int a[100],i,*p=a;
: : for(i=0;i<100;i++) a[i]=i;
: : for(i=0;i<100;i++)
: : {
: : *p=a[i];
: : g(&p);
: : };
: : for(i=0;i<100;i++)
: : {
: : printf("%d",a[i]);
: : };
: : void g(int **p);
: : {
: : **p++;
: : *p++;
: : }
: 991234567...99
: 即a[0]==99;a[i]=i; 其中1<=i<=99;

++优先级高于*,所以*p++相当于*(p++);
所以函数void g(int **p)的唯一作用是p自增(p++)两次;
不对实参指向的内容造成任何影响。
在main()函数的循环中,当i==99时,*p==a[0]==a[99]==99;
其他a[i]没有任何变化。
所以答案就是上面我说的。

: : 4。下面函数的作用:
: : fun(char *a,char *b)
: : {
: : while (*a++=*b++)
: : {};
: : return;
: : }
: 字符串拷贝函数。

这题简单的要命,不到2秒钟就知道是怎么回事了。
*a++相当于*(a++),所以原式相当于(*(a++))=(*(b++));
一个一个字符拷贝。
循环终止的条件是*a == '\0'即*b == '\0';
是字符串拷贝函数还不明显吗?

相关文章:

  • golang读写锁简单例子
  • 急问数据结构用c c++描述的区别?
  • golang条件变量的作用并不保证在同一时刻仅有一个协程(线程)访问某个共享的数据资源
  • 华为面试题3
  • golang多个消费者访问共享数据
  • 创建第一个区块001
  • c语言常见出错信息(转)
  • 创建我的第一个区块链002
  • 几种开发工具的特性比较(转载)
  • 添加区块到区块链当中003
  • 很难见得到的一篇关于windows进程的说明书(转载)
  • 补充区块代码更新函数004
  • byte二位数组转换问题005
  • 写在周日的凌晨( 一次思维的对话)
  • 挖矿初出茅庐006
  • [Vue CLI 3] 配置解析之 css.extract
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Javascripit类型转换比较那点事儿,双等号(==)
  • leetcode98. Validate Binary Search Tree
  • PHP 小技巧
  • React-flux杂记
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 笨办法学C 练习34:动态数组
  • 漂亮刷新控件-iOS
  • 软件开发学习的5大技巧,你知道吗?
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用Swoole加速Laravel(正式环境中)
  • 终端用户监控:真实用户监控还是模拟监控?
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 容器镜像
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #数学建模# 线性规划问题的Matlab求解
  • (4.10~4.16)
  • (7)STL算法之交换赋值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (接口自动化)Python3操作MySQL数据库
  • (九)信息融合方式简介
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (区间dp) (经典例题) 石子合并
  • (三)uboot源码分析
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (原創) 未来三学期想要修的课 (日記)
  • (转)setTimeout 和 setInterval 的区别
  • (转载)OpenStack Hacker养成指南
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net core Swagger 过滤部分Api
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 的程序集加载上下文
  • .Net 高效开发之不可错过的实用工具
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • @KafkaListener注解详解(一)| 常用参数详解