王道程序员求职宝典阅读笔记20151204
来源:互联网 发布:淘宝上哪家店牛仔裤好 编辑:程序博客网 时间:2024/05/21 11:32
数组篇
1、如下定义是否正确?
int& a[2];错误
int a[2]={1,2};int(&p)[2]=a;正确
知识点:虽然没有引用数组,但是数组可以有引用
2、给出如下代码
int x[4]={0}; int y[4]={1};
数组x和y的值为(B)
A.{0,0,0,0},{1,1,1,1} B.{0,0,0,0},{0,0,0,0}
C.{0,不确定},{1,不确定} D.与编译器有关
知识点:数组初始化,对于内置类型数组,若数组定义在函数体外,则元素初始化为0,若定义在函数体内,则无初始化,但是,如果有部分已经初始化,则其余的元素初始化为0。
3、下列(C)是不正确的字符常量?
A.'n' B.'V' C."a" D'\101'
知识点:单引号的'A'为字符常量,仅包含单个字符A,双引号的“A”是字符串常量,包含字符A和空字符(null)
4、下列哪些是C风格字符串
char ca1[]={'C','+','+'}; 否
char ca2[]={'C','+','+','\0'}; 是
char ca3[]="C++"; 是
char *cp1=ca1; 否
char *cp2=ca2; 否
const char *cp="C++"; 是
知识点:C风格字符串末尾必须带有一个字符‘\0’,因此为了兼容C语言,C++中所有字符串串常量都由编译器自动在末尾添加一个空字符,因为ca1是一个不带结束符的字符数组,因此明显不是,cp1指向ca1,所以也不是。
5、下列语句正确吗?
char ca[]={'C','+','+'};
cout<<strlen(ca)<<endl;
错误
知识点:C/C++中有很多字符串处理函数(strlen、strcat、strcpy等),传递给这些标准库函数的指针必须具有非零值,并且指向亿null结束的字符数组,在处理C风格字符串的标准库函数时,牢记参数必须以结束符null结束。标准库函数strlen总是假定其参数字符串以null结束,,当调用该标准库函数时,系统将会从实参ca指向的内存空间开始一直搜索结束符,直到恰好遇到null为止。strlen返回这一段内存空间总共有多少字符,不包括null,因此上述代码将无法输出正确的值。printf函数也是遇到空字符‘null’就输出终止的, 因此下列语句char c[5]={'a','b','\0','c','\0'};printf("%s",c);的输出是ab。
6、以下声明是否正确?
int disp(int a[][])
错误
知识点:C++规定,在声明和初始化一个二维数组时,如果对所有的元素都赋值,则第一维(行)可以省略。但注意第二维不能省略,在声明更高维的数组时,也只有第一维可以省略。
7、下列代码输出是什么?
int a[3][2]={(0,1),(2,3),(4,5)};
int *p=a[0];
printf("%d",p[0]);
输出1
知识点:注意此处有陷阱!看清楚了,大括号里不是大括号,而是中括号,于是这个就变成了逗号运算符!逗号运算符的特点就是前面的都不看,只看最后一个表达式,于是0,2,4,都没什么用了,这个就等价于int a[3][2]={1,3,5}。为了对逗号运算符有更深的理解,再举例如下:int b=2,c=7,d=5 int a1,a2;a1=(++b,c--,d+3);a2=++b,c--,d+3;这里a1=8,a2=4。由逗号运算符的自左向右结合可知a1=8,因赋值运算符优先级高于逗号运算符,因此a2等于b++,因为b经历两次自加,因此值为4。
8、int a[2][2][3]={{{1,2,3},{4,5,6}},{{7,8,9},{10,11,12}}};
for(int i=0;i<12;i++);
cout<<;
请问cout语句后面如何填写能顺序输出?
参考答案是a[i/6][i/3%2][i%3];
我的答案是*((int*)a+i);
知识点:因为不管是几维数组,在内存中都是顺序存储,因此肯定都能顺序输出,只要将行号和列号与输出的顺序对应正确就行。因此有了参加答案,我的答案的解释是,因为a本是int*[2][3]类型的,指向数组首元素(首元素是int[2][3]形式的)地址,将其强制转化为int*,则就指向第一个整数值地址了(和首元素地址是一样的),那么顺序+1则可顺序输出。
- 王道程序员求职宝典阅读笔记20151204
- 王道程序员求职宝典阅读笔记20151204
- 王道论坛 程序员求职宝典 学习笔记
- 【求职】程序员面试宝典--笔记
- 程序员面试宝典阅读错误笔记
- sizeof(程序员求职宝典)
- 王道求职宝典,硬币分发问题,采用深度优先搜索算法
- 《PHP求职宝典》--PHP语言基础笔记
- 《PHP求职宝典》--PHP语言基础笔记
- 《PHP求职宝典》--Web设计页面笔记
- 《PHP求职宝典》--PHP语言基础笔记
- C/C++求职宝典重点笔记整理
- 程序员面试宝典笔记
- 程序员面试宝典笔记
- 程序员求职之道(《程序员面试笔试宝典》)
- 程序员求职攻略(《程序员面试笔试宝典》)
- 程序员求职之道(《程序员面试笔试宝典》)之
- 程序员求职之道(《程序员面试笔试宝典》)
- GCD Extreme 【FZU--1969】
- 大数据时代:生活、工作与思维的大变革(上)
- HDU 1086 You can Solve a Geometry Problem too
- Ubuntu15.04+caffe+cuda+cudnn+matlab
- 双向循环链表的实现
- 王道程序员求职宝典阅读笔记20151204
- 数据库常用操作集合_1
- 一个操作系统的实现(1):分析linux下如何运行一个执行文件
- 星空幻想
- 解压版的Tomcat基本配置和安装
- 《电子或通信领域当前的主流技术及其社会需求调查报告》
- hdu1176
- python基础教程共60课-第3课IDE
- LibSVM C/C++