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的更多相关文章

  1. InterView之C/CPP

    CPP 引用 什么是"引用"?申明和使用"引用"要注意哪些问题? 答:引用就是某个目标变量的别名(alias),对应用的操作与对变量直接操作效果完全相同.申明一 ...

  2. awesome cpp

    https://github.com/fffaraz/awesome-cpp Awesome C/C++ A curated list of awesome C/C++ frameworks, lib ...

  3. 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~ ...

  4. c++interview

    出自:https://github.com/huihut/interview Github    |    Docsify 简体中文    |    English 关于 本仓库是面向 C/C++ 技 ...

  5. 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 ...

  6. 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码

    前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目. 在Cocos2d-x被整合到Cocos引 ...

  7. WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】

    http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...

  8. WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】

    http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF ...

  9. Amazon Interview | Set 27

    Amazon Interview | Set 27 Hi, I was recently interviewed for SDE1 position for Amazon and got select ...

随机推荐

  1. Oracle EBS Patch Demo

    Oracle EBS APP & DB 打补丁过程简述l例子: 打 Patch#   11843100:R12.CAC.B 打PATCH之前先查询一下是否已经有了这个PATCH. SELECT ...

  2. Java定时任务的实现

    本例依据Java自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务(Task).专业的开源工具可参考Quartz:http://www.opensymphony. ...

  3. 通过hive向写elasticsearch的写如数据

    通过hive向写elasticsearch的写如数据 hive 和 elasticsearch 的整合可以参考官方的文档: ES-hadoop的hive整合 : https://www.elastic ...

  4. docker怎么导出导入镜像

    https://blog.csdn.net/dest_dest/article/details/80612231 把某个docker镜像保存到本地文件,命令如下docker save -o 镜像名.t ...

  5. Javascript 535种方式!!!实现页面重载

    原文地址: http://www.phpied.com/files/location-location/location-location.html 完全出于好玩,竟然有人整理了500多种方法来实现刷 ...

  6. dokcer 的export 、improt和save 、load

    export .improt 是对容器操作也就是类似于虚拟机的快照 save .load 是针对于镜像操作的..

  7. Android 屏幕适应

    基础知识: 屏幕密度: Density-independent pixel (dp):密度无关像素单位(一个相对的值).1dp 的大小相当于一个 160 dpi 屏幕上一个像素的大小. 计算方法:px ...

  8. linux中使用unzip命令中文乱码解决办法

    今天在使用unzip进行解压缩文件时,发现解压出的文件中文乱码,最后使用如下命令解决: unzip -O CP936 xxx.zip 特此记录一下.

  9. docker-ce的安装以及卸载

    注意:以下命令无特殊说明外均在root用户下执行 一.Docker CE的安装 1. 首先,卸载老旧的docker. yum remove docker \ docker-client \ docke ...

  10. Win10内部更新:警告用户别用chrome和Firefox

    简评:别和 Chrome 和 Firefox 约行不,我 Edge 明明更美.屁股更翘.更性感... 微软正在测试 Windows 10 的一个更新:警告用户不要安装 Chrome 和 Firefox ...