InterView之C/CPP cal
cal
#define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
i 为30。 5 * 5 + 5
下面关于“联合”的题目的输出?
A
//
// Created by zhangrongxiang on 2018/3/15 11:10
//
#include <stdio.h>
union {
int i;
char x[2];
} a;
void main() {
a.x[0] = 10;
a.x[1] = 1;
printf("%d", a.i);
}
266 低位低地址,高位高地址,内存占用情况是Ox010A
B
//
// Created by zhangrongxiang on 2018/3/15 11:13
//
#include <stdio.h>
int main() {
union { /*定义一个联合*/
int i;
struct { /*在联合中定义一个结构*/
char first;
char second;
} half;
} number;
number.i = 0x4241; /*联合成员赋值*/
printf("%c%c\n", number.half.first, number.half.second);//AB
number.half.first = 'a'; /*联合中结构成员赋值*/
number.half.second = 'b';
printf("%x\n", number.i);//6261
return 0;
}
AB(0x41对应'A',是低位;Ox42对应'B',是高位)6261(number.i和number.half共用一块地址空间)
已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。
Mystrcpy
//
// Created by zhangrongxiang on 2018/3/15 11:18
// File 4
//
/*
编写strcpy函数(10分)
已知strcpy函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。
(1)不调用C++/C的字符串库函数,请编写函数 strcpy
(2)strcpy能把strSrc的内容复制到strDest,为什么还要char * 类型的返回值?
答:为了 实现链式表达式。 // 2分
例如 int length = strlen( strcpy( strDest, “hello world”) );
*/
#include <assert.h>
#include <stdio.h>
char *Mystrcpy(char *strDest, const char *strSrc) {
assert((strDest != NULL) && (strSrc != NULL));// 2分
char *address = strDest; // 2分
while ((*strDest++ = *strSrc++) != '\0');// 2分
return address; // 2分
}
int main() {
char desc[20] = {0};
char src[20] = "Hello World";
Mystrcpy(desc, src);
printf("%s\n", desc);
return 0;
}
Mystrlen
//
// Created by zhangrongxiang on 2018/3/15 16:17
// File 7
//
#include <stdio.h>
#include <assert.h>
int Mystrlen(const char *str) { // 输入参数const
assert(str != NULL); // 断言字符串地址非0
int len = 0;
while ((*str++) != '\0') {
len++;
}
return len;
}
int main() {
char str[] = "Hello World";
printf("%d\n", Mystrlen(str));//11
printf("%d\n", (int) sizeof(str));//12
}
There are twoint variables: a and b, don’t use “if”, “? :”, “switch”or other judgementstatements, find out the biggest one of the two numbers.
( ( a + b ) + abs( a - b ) ) / 2
如何打印出当前源文件的文件名以及源文件的当前行号?
cout << __FILE__ ;
cout << __LINE__ ;
//__FILE__和__LINE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的
main主函数执行完毕后,是否可能会再执行一段代码,给出说明?
可以,可以用_onexit 注册一个函数,它会在main 之后执行int fn1(void), fn2(void), fn3(void),fn4 (void);
void main( void ){
String str("zhanglin");
_onexit( fn1 );
_onexit( fn2 );
_onexit( fn3 );
_onexit( fn4 );
printf( "This is executed first.\n" );
}
int fn1(){
printf( "next.\n" );
return 0;
}
int fn2(){
printf( "executed " );
return 0;
}
int fn3(){
printf( "is " );
return 0;
}
int fn4(){
printf( "This " );
return 0;
}
如何判断一段程序是由C编译程序还是由C++编译程序编译的?
#ifdef __cplusplus
cout << "c++";
#else
cout << "c";
#endif
InterView之C/CPP cal的更多相关文章
- InterView之C/CPP
CPP 引用 什么是"引用"?申明和使用"引用"要注意哪些问题? 答:引用就是某个目标变量的别名(alias),对应用的操作与对变量直接操作效果完全相同.申明一 ...
- awesome cpp
https://github.com/fffaraz/awesome-cpp Awesome C/C++ A curated list of awesome C/C++ frameworks, lib ...
- Hdu 4734 【数位DP】.cpp
题意: 我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字. 题目给出a,b,求出0~ ...
- c++interview
出自:https://github.com/huihut/interview Github | Docsify 简体中文 | English 关于 本仓库是面向 C/C++ 技 ...
- Pramp mock interview (4th practice): Matrix Spiral Print
March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...
- 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码
前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目. 在Cocos2d-x被整合到Cocos引 ...
- WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】
http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...
- WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】
http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ...
- Amazon Interview | Set 27
Amazon Interview | Set 27 Hi, I was recently interviewed for SDE1 position for Amazon and got select ...
随机推荐
- SSO单点登录三种情况的实现方式详解(转载)
单点登录(SSO——Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子系统——百度经验.百度知道.百度文库等 ...
- C#计算两个日期之间相差的天数
说明:如:1900-01-01与1900-01-01之间算一天 private static int DateDiff(DateTime dateStart, DateTime dateEnd) { ...
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
目录 一.前言 1. 运行环境 二.前期准备工作 1. 创建 MongoDBContext MongoDb操作上下文类 2.创建测试类 3.创建测试代码 三.内嵌数组增加元素操作 1.Update.S ...
- Handler运行机制
https://blog.csdn.net/u012827296/article/details/51236614
- Mysql 中日期类型bigint和datetime互转
MySql数据库中字段类型bigint 长度是10位的 mysql> select (from_unixtime(1554047999))as datatime;+--------------- ...
- ceph 移除 osd
1:从crush中移除节点ceph osd crush remove osd.0 2:删除节点ceph osd rm osd.0 3:删除节点认证(不删除编号会占住)ceph auth del osd ...
- WPF ControlTemplate 动画板 结束事件不触发
解决此问题很简单 将Storyboard单独提取出来及可 给定Key名称,然后在触发器中的BeginStoryboard的storyboard绑定即可 <!--单独提取并设置Xkey--> ...
- Web Api 内部数据思考 和 利用http缓存优化 Api
在上篇<Web Api 端点设计 与 Oauth>后,接着我们思考Web Api 的内部数据: 其他文章:<API接口安全加强设计方法> 第一 实际使用应该返回怎样的数据 ? ...
- JavaWeb -jsp文件和内置对象的解析
jsp文件和内置对象的解析 对page解析 JSP九大内置对象(自带,无需new) 1 out:输出对象 2 request:请求对象,存储“客户端像服务端发送的请求信息” 3 response:响应 ...
- mxonline实战-1,创建应用及相应模型
前言 环境说明:python3.5 + django2.0, 用的pycharm4.04专业版 课程视频地址 https://coding.imooc.com/learn/list/78. ...