程序员求职真题7C++语言基础

上传人:ji****en 文档编号:116480465 上传时间:2019-11-16 格式:PDF 页数:31 大小:566.30KB
返回 下载 相关 举报
程序员求职真题7C++语言基础_第1页
第1页 / 共31页
程序员求职真题7C++语言基础_第2页
第2页 / 共31页
程序员求职真题7C++语言基础_第3页
第3页 / 共31页
程序员求职真题7C++语言基础_第4页
第4页 / 共31页
程序员求职真题7C++语言基础_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《程序员求职真题7C++语言基础》由会员分享,可在线阅读,更多相关《程序员求职真题7C++语言基础(31页珍藏版)》请在金锄头文库上搜索。

1、应聘者的编程基础是招聘方一定会考察的内容。考察的方 面包括对基础知识的掌握、求职者的编程风格和求职者的编程 能力。 所以求职者在面试之前要复习一下程序设计的基本知识, 并重视细节问题。本章列举一些典型的程序设计基础相关的笔 试题,涵盖了招聘公司比较常考的内容,能够帮助大家提高程 序基础部分的笔试能力。 C/C+C/C+语言基础语言基础 8 第章 94 8.1常量与变量常量与变量 面试真题面试真题 1: 局部变量和全局变量能否重名?局部变量和全局变量能否重名? (华为面试真题华为面试真题) 高频考点高频考点: 考点分析考点分析: 本题考察的是对局部变量和全局变量的掌握。 简单说来局部变量是定义在

2、函数内部的变量;全局变量是定义在函数之 外的变量。全局变量可以为本文件中其他函数所共用。 局部变量和全局变量可以重名。在函数中默认使用的是局部变量。 参考答案:参考答案: 能, 局部变量会屏蔽全局变量。 要使用全局变量, 要在变量名前添加 “:” 。 面试真题面试真题 2:全局变量的应用(华为面试真题):全局变量的应用(华为面试真题) 全局变量可不可以定义在可被多个.C 文件包含的头文件中?为什么? 高频考点高频考点: 考点分析考点分析: 本题考察的是全局变量在函数外部的定义,它的作用域是从定义的位置 开始到本程序文件末为止;可以在不同的 C 文件中声明同名的全局变量, 前 提是其中只能有一个

3、 C 文件中对此变量赋初值,此时连接不会出错。 参考答案:参考答案: 全局变量可以定义在可被多个.C 文件包含的头文件中。因为在不同的 C 文件中以 static 形式来声明同名全局变量,但在这些同名的全局变量中只能 有一个 C 文件对其赋初值,这样才不会出错。 95 面试真题面试真题 3:如何引用一个已经定义过的全局变量?如何引用一个已经定义过的全局变量?(华为面华为面 试真题)试真题) 高频考点高频考点: 考点分析考点分析: 本题考察的是对全局变量基本使用方法的掌握。 可以用引用头文件的方式,也可以用 extern 关键字来引用已经定义过的 全局变量。使用引用头文件的方式来引用某个头文件中

4、的全局变量,如果变 量名书写错误,则在编译时提示错误;使用 extern 关键字引用时,如果变量 名书写错误,则在连接时提示错误。 参考答案:参考答案: 使用 extern 关键字引用一个已经定义过的全局变量。 面试真题面试真题 4:全局变量和局部变量的存储方式:全局变量和局部变量的存储方式 全局变量和局部变量在内存中是怎样存放的?两者之间有何区别? 高频考点高频考点: 考点分析考点分析: 本题需要掌握的是局部变量与全局变量的存储方式以及生命周期,这些 都是需要记住的基本内容,只有掌握了这些知识,才能真正掌握局部变量与 全局变量的使用,所以这也是容易出题的一个考点。 参考答案:参考答案: 全局

5、变量储存在静态数据库,局部变量在堆栈。全局变量在程序开始执 行时分配存储区,程序执行完毕释放,在程序执行过程中全局变量始终占据 固定的存储单元;局部变量是动态分配存储空间的,在调用变量所在函数时 系统会给函数的局部变量分配存储空间,在函数调用结束时就自动释放这些 存储空间。 96 面试真题面试真题 5:整型常量的存储:整型常量的存储 -8 在内存中的存储形式是() A11111111 11111000; B10000000 00001000; C00000000 00001000; D11111111 11110111; 高频考点高频考点: 考点分析考点分析: 本题主要考察整型常量的存储方式。

6、 整型数据在内存中是以二进制的形式存放,数值是以补码表示的。一个 正数的补码和其原码的形式相同,一个负数的补码是将该数绝对值的二进制 形式,按位取反再加 1。这里-8 绝对值在内存中的存储形式如图 8.1 所示。 0001000000000000 图 8.1十进制 8 在内存中的存储 将其进行取反操作,得到的结果如图 8.2 所示。 1110111111111111 图 89.2 按位取反的效果 取反后加 1,效果如图 8.3 所示。 0001111111111111 图 8.3 取反加一(-8 的存储效果) 参考答案:参考答案: A 97 面试真题面试真题 6:整型常量的表示形式:整型常量的

7、表示形式 数值 029 是一个() A八进制数; B十六进制数; C十进制数; D非法数; 高频考点高频考点: 考点分析考点分析: 本题主要是对八进制、十六进制和十进制三种形式的考察。 这三种形式需要注意的是, 八进制整常数必须以 0 开头, 数码取值为 0 7;十六进制整常数是以 0X 或 0x 开头的,其数码取值为 09,AF 或 af; 十进制整常数无前缀,其数码为 09。这里,数值 029 是以 0 开头的,但含 有数字 9,所以不是八进制数,因此它是非法的。 参考答案:参考答案: D 8.2基本数据类型基本数据类型 面试真题面试真题 7:整型数据的计算:整型数据的计算 int i;

8、i=5/2; 则 i 的值是() A2 B2.5 C3 D不能确定 98 高频考点高频考点: 考点分析考点分析: 本题主要考察整型数据的运算。 i 的值是 2,而不是 3,更不是 2.5;先计算 5/2,由于 5 和 2 都是整数, 所以 i 的值也为整数,故选择 A。 参考答案:参考答案: A 面试真题面试真题 8:转义字符:转义字符 若有说明语句:char c=72;则变量 c() A包含 1 个字符 B包含 2 个字符 C包含 3 个字符 D说明不合法,c 的值不确定 高频考点高频考点: 考点分析考点分析: 本题考察对转义字符的掌握。 转义字符是特殊的字符常量,“”后面接一个或几个字符,

9、整体表示一 个转义字符,如“n”是一个字符,代表回车。这里的“72”是一个字符, 72 是八进制数,代表 ASCII 吗(十进制数)“:”。求职者如不知道这些内 容,很可能误选 B。 参考答案:参考答案: A 面试真题面试真题 9:数据类型所占内存:数据类型所占内存 在 C 语言中,int、char 和 short 这三种类型数据所占用的内存是() A均为 2 个字节 B由用户自定义 C由所用机器的机器字长决定的 99 D任意的 高频考点高频考点: 考点分析考点分析: 本题考察数据类型在内存中的占用形式。 这 3 种类型的数据所占用的内存是由所用机器的机器字长决定的。 在 16 位机中,int

10、 型数据所占用的字节是 2,而在 32 位机上,int 型数据所占用的 字节是 4。求职者若不仔细考虑,可能会误选 A 参考答案:参考答案: C 面试真题面试真题 10:数据类型的混合运算:数据类型的混合运算 设变量 i 是整型,f 是实型,d 是双精度型,则表达式 6+a-i+d*f 值的数 据类型为() A int B float C double D 不确定 高频考点高频考点: 考点分析考点分析: 本题考察对数据类型在运算过程中的转换规则的掌握;在整型、实型和 字符型数据间进行混合运算时,应从低精度向高精度转换,即将字符型数据 先转换成整型,再将整型数据和实型数据转换成双精度类型数据,然

11、后在同 类型数据间进行运算, 结果为 double 型。 数据类型的转换规则如图 8.4 所示。 100 图 8.4数据类型的转换规则 参考答案:参考答案: C 面试真题面试真题 11:float 型变量型变量 写出 float a 与“零值”比较的 if 语句。 高频考点高频考点: 考点分析考点分析: 本题考察 float 型变量特性及对 0 值的判断。 一般来说,如果用 if 判断一个数值型变量(short、int、long 等),应该用 if(a=0),表明是与 0 进行“数值”上的比较;但 float 型变量并不精确,不 能直接拿来与 0.0 进行比较,所以不可使用“=”或“!=”这种

12、形式,应该 使用“=”或“=”这种形式。如果写成 if (a= 0.0),就错了。这也是求 职者比较容易出错的地方。 参考答案:参考答案: if (a = -0.00001) unsigned long w=5; double x=1.42; 则以下不符合 C 语法的表达式是() Ax%(-3) Bw+=-2 Ck=(a=2,b=3,a+b) Da+=a-=(b=4)*(a=3) 高频考点高频考点: 考点分析考点分析: 本题考察取模运算的规则。 取模运算是用于计算两个整数相除得到的余数,这就规定了取模运算符 的两侧必须是整数;这里 x 是双精度的小数,故 A 不符合。 参考答案:参考答案: A

13、 面试真题面试真题 15:自增运算:自增运算 请写出下列代码的输出内容 #include 103 main() int a,b,c,d; a=10; b=a+; c=+a; d=10*a+; printf(“b,c,d:%d,%d,%d“,b,c,d); return0; 高频考点高频考点: 考点分析考点分析: 本题主要是考察对自增运算的掌握程度。 +a 是 a 自增 1 后再参与其他运算,而 a+是 a 参与运算后,a 的值再自 增。这里 a 的初值为 10,表达式 b=a+;中 a 先进行赋值运算,因此 b 的值是 10,a 再进行自增变为 11;表达式 c=+a;中 a 先进行自增,变为

14、 12,再进行 赋值运算,因此 c 的值是 12;表达式 d=10*a+;中 a 先进行乘法运算,再 自增,因此,d 的值是 120,此时,a 的值为 13。 参考答案:参考答案: 10,12,120 面试真题面试真题 16:加一运算的效率:加一运算的效率 x=x+1,x+=1,x+,那个效率最高? 高频考点高频考点: 考点分析考点分析: 本题考察加一的运算效率。 求职者需要对这三个表达式的执行过程有一定的了解; 第一个表达式x=x+1的执行过程是先读取等号右边的x的地址, 计算x+1 的值,然后读取等号左边的 x 的地址,最后将等号右边的值传给等号左边的 值; 第二个表达式 x+=1 的执行

15、过程是先读取等号右边的 x 的地址,然后计 104 算 x+1 的值,最后将得到的值传给左边的 x,因为 x 的地址已在前面读出, 故省去了传值过程; 第三个表达式 x+的执行过程是先读取 x 的地址,然后 x 自增 1; 因此,x+的效率最高。 参考答案:参考答案: x+效率最高。 面试真题面试真题 17:复合表达式的规则:复合表达式的规则 以下是求一个数的平方的程序,请找出错误。 #define SQUARE(a)(a)*(a) int a=5; int b; b=SQUARE(a+); 高频考点高频考点: 考点分析考点分析: 本题考察自增运算符在表达式中的使用规则。 当对语句中的变量使用

16、自增或自减运算符时,该变量不应在语句中出现 一次以上,因为求值的顺序取决于编译器。编写代码时不要对顺序作假设, 也不要编写在某一机器上能够如期运行但没有明确定义行为的代码。这是比 较容易出错的地方,应避免这样的错误。 参考答案:参考答案: 预期结果是 a=6,b=36.但是实际结果是 a=7,b=25 实际是 b=(a+)*(a+) a 累加 2 次 面试真题面试真题 18:逗号表达式:逗号表达式 看下面的代码: main() int a, b,c, d; a=3; b=5; 105 c=a,b; d=(a,b); printf(“c=%d“ ,c); printf(“d=%d“ ,d); 输出结果是() Ac=3 d=3 Bc=5 d=3 Cc=3 d=5 Dc=5 d=5 高频考点高频考点: 考点分析考点分析: 本题考察逗号运算符的使用。 在 C 语言

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号