C++笔试要点(代C语言要点)

上传人:缘*** 文档编号:333288722 上传时间:2022-09-01 格式:PDF 页数:42 大小:6.33MB
返回 下载 相关 举报
C++笔试要点(代C语言要点)_第1页
第1页 / 共42页
C++笔试要点(代C语言要点)_第2页
第2页 / 共42页
C++笔试要点(代C语言要点)_第3页
第3页 / 共42页
C++笔试要点(代C语言要点)_第4页
第4页 / 共42页
C++笔试要点(代C语言要点)_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《C++笔试要点(代C语言要点)》由会员分享,可在线阅读,更多相关《C++笔试要点(代C语言要点)(42页珍藏版)》请在金锄头文库上搜索。

1、C+笔试部分要点:1.标识符(可作为变量名、数组名、函数名等)的命名规范 由 52个英文大小写字母,10个数字,一个下划线构成 以英文字母或下划线开头,不能是保留字(例子)下列符号中可以用作C+标识符的是A)Main B)foo-bar C)else D)3room常见错误及注意事项:以数字开头(如 3room),中间含有空格或非法字符(如 foo-bar,或 My Name)区别大小写(如 Main与 main不同,if与 If不同)保留字(如 if、while等)不能作为标识符但编译预处理命令(如 include、define、main等)不是保留字,它们可以被用作标识符。如,下列程序合法

2、:/include void main()(int include;cininclude;coutincludeendl;)/include void mainO(int main;cinmain;coutmainendl;)#include void mainQint define;cindefine;coutdefineendl;)2.各种类型常量书写规范065 0X9A 0X9AL 45L 451 35U 35u3.26F 3.4f 2.3E8 22.3e-4 5.3e4C t n 24 MO I*x4.99aTn 3 string”空字符*0 空 格,,空串”常见错误:八进制数048,

3、0后面跟大于7的数字,038,,0后面跟大于7的数字十六进制数O xaG,Ox后面跟大于f/F的字符5.3e4.2,指数部分写成了带小数点的实型数fa b cS单引号中括多个字符(例 子)以下合法的常量是A)28 B)O XAB C)2.3E8.0 D)nabO cdHinclude main()(printf(H%d,%dnH,strlen(HabO cdH),sizeof(nabO cdH);)输 出2,63.基本类型数据在内存中的长度以及存放形式:整型数据:补 码 形 式 存 储 正整数的补码与原码相同实型数据:浮点形式存储sizeof(char)=sizeof(unsigned cha

4、r)1 字节sizeof(short)=sizeof(unsigned short)2 字节sizeof(int)=sizeof(unsigned int)2 字节sizeof(long)=sizeof(unsigned long)4 字节sizeof(float)4字 节sizeof(double)8字 节sizeof(char*)=sizeof(int*)=sizeof(float*)=.=2即所有指针类型的变量的长度都是2o4.不同整型数据(长度不同)相互赋值原则char,int,short,long,(每种类型前都可加signed和 unsigned)得:signed char,sig

5、ned int,signed short,signed long,unsigned char,unsigned int,unsigned short,unsigned long均可用作整型量赋值时:短一长 截取“长”数据的低位,然后赋值长 一 短 将“短”数据扩展成等长数据,然后赋值扩展原则:若短数据为无符号型,则前面补0(unsigned)若短数据为有符号型,则前面补符号位(例子)短一长已知216=65536,请写出下列程序段的输出。int i=65538;co u t i n;输出 265538是长整型常量65538:0000 0000 0000 0001 0000 0000 0000 0

6、010i:0000 0000 0000 0010(例子)请写出下列程序段的输出。长一短void main()char cl=-3;unsigned char c2=-3;/*短 长 */int al=cl,a2=c2;/*长 短*/coutalya2endl;输出-3,253-3:11111111 11111101(32 位)整型常数cl:11111101(8 位)c2:11111101(8 位)al:11111111 11111101(16 位)a2:00000000 11111101(16位)5.类型转换(赋值时的类型转换,混合运算时的类型转换)(例子)设有语句:for(int s=l,i

7、=2;i=6;i+)s*=i/2;执行该语句后,s的值是 oA.1 B.12C.22 D.22.5【解析】若两个量都是整型,则运算结果应是整型量。i/2的结果应是整型量,如i=3,则i/2的结果应是1。(例子)已知 x=2.5,a=7,y=4.7求 x+a%3*(int)(x+y)%2/4 的值答案:2.5(例子)设有语句:char s=H246,*ptr=s;cout(char)(*(ptr+l)+l),n,;执行以上语句后,输出 oA.5 B.6 C.46 D.56coutw(*(ptr+l)+l)*n*;输出什么?表达式(*(ptr+l)+l)的类型是什么?答案:输出53(5的A SCH

8、码)表达式类型是in t型(例子)设有变量说明:inta=O,b=0;则表达式sizeof(卬+E)的值为:A.1 B.2 C.4 D.8(例子)设有变量说明:float a=0,b=0;则表达式sizeof(a+b)的值为:A.1 B.2 C.4 D.8【解析】图2-3混合运算类型转换原则横向:必定转换doubleAY-float,tlongA1.,unsignedA.Jint v-char,short问题:表 达 式3+5的类型?i n t型 sizeof(3+5)的值?2 coutvv(3+5)vvendl;104(因为3和5的A SCI I码分别是51和53)sizeof(a*b)的值

9、为?2sizeof(3)的值?2sizeof(3)的值?1co u t 3*en d l;3 coutint(,3,)endl;516.表达式的计算(逗号表达式,赋值表达式,逻辑表达式优化,关系表达式,整数求余,整数整除/)(例 子)设定义了说明语句:intk,j;下列选项中,没有语法错误的表达式是 OA.(k+)+B.(k+3)=5 C.k-/=5 D.kj【解析】A.+不能作用于表达式B.C.赋值表达式的左值不能是表达式。D.k-j等 价 于(k-)-j,不是赋值表达式。自左至右扫描,尽量构成运算符。因 此k-j不 等 价 于k-(j)o(例 子)设有变量说明:inta=3,b=4,c=5

10、;下列表达式中,值 为0的表达式是 OA.卬&3 B.a=bC.a|b+c&b-c D.!(ab&cx)|(m=xy);贝!I语句 cou tm,n,kendl;输出的是 oA)1,1,0 B)1,0,1 C)1,1,1 D)0,1,1(例 子)若有语句int x=0,y=l,z=2;z=+4-x|+y;执行以上语句后,变 量x、y和z的值分别为答案:1,1,1以上两题适用于如下规则逻辑运算优化规则:不管优先级,从左至右扫描,若II前为“真”,或者&前 为“假”,则停止。(“或”运算的前一个值若为真,则后一个表达式不算)(“与”运算的前一个值若为假,则后一个表达式不算)(例子)请写出下列程序段

11、的输出。int x=-5;if(0 x10)/0 小于-5,错,所 以(0-5)=0,010 为Tprintf(n*n);elseprintf(H#n);本题答案:输 出*表示数学关系0 x10的正确写法为:ivx&x10另外还有:,AY=ch&ch=不能写成:A,v=chv=Z(例子)若 al,a2,a3和 a4均为整型变量,则以下选项中,符合C+语法规则的表达式是 OA.al=25%3.3 B.a2=al+a3=3*5C.a3=078 D.a4=0Xa2解析:%要求运算量为整型+比=优先级高078是非法常量7.=与=的区别(例子)设有语句:int i=10,j=10;if(j=O)i=i*

12、i;else i=i+j;执行以上语句后i 的值为 o/答案:10 o j 被赋值是 0,所以if里面是0,为假,若 j 被赋值是12(非零量即可),则输出100;(例子)设有语句:int i=10,j=0;if(j=O)i=i*i;else i=i+j;执行以上语句后i 的值为 o/1008.前后缀+,-(例子)执行以下程序段后,输出结果是 Oint x=9,y=8;int a,b,c;a=(x=y+)?x:+y;/注 意=与=的区别b=x+;c=y;cout a,b,c en d l;A)7,7,9 B)8,8,8 C)8,9,8 D)1,10,9(例子)有语句:int y=100;whi

13、le(y-cout Hy=n y Hnn;其输出为:A)y=0 B)while构成无限循环C)y=1 D)y=-1(例 子)i=5;while(i+10);运行结束后 i=?答案:i=U9.运算符的优先级和结合性(例子)以下程序输出int x=5,y=6;y*=x+y;/等价于 y=y*(x+y);coutyendl;【解析】*=的优先级与=一样(例子)void fun(int*a,int*b)a 指向 cl0,b 指向 c20(*a)+;*b+;/等价于*(b+),表达式b+的值是b 的原始值,而+是作用在b 上的*a+;(*b)+;cout*a,t,*bendl;)void main(vo

14、id)(int cl3=10,20,30,c23=40,50,60;fun(cl,c2);参数传递时,有 int*a=cl;int*b=c2;coutcl O,t,c l lendl;coutc2 0,t,c2|lendl;)程 序 输 出 的 第 一 行 是,第 二 行 是,第三行是答案:20 51 11 20 40 51lO.if语句的语义(else的匹配问题)(例子)写出程序的输出void main()int x=2,y=-1,z=2;if(x y)if(y0)z=0;else z+=l;coutz*n,;)A)3 B)2 C)1 D)0【解析】eke与距它最近的尚未匹配的if匹配,而不

15、是靠书写对齐来匹配(例子)写出程序的输出int a=l,b=2,c=3;if(a=b)if(b=c)printf(a=b=cii);else printf(Ha!=bnH);答案:无输出switch俄达11.switch 语句-字符型case整型、枚举类型或case常数2:.case常数3:.default:.注意:“表达式”中可以有变量。“常数 i”只能是常数表达式,如 3 或 3+2 或 3+N 等,N 是已定义的符号常数。(例子)设变量a,b 是整型变量,下列switch语句中,语法正确的是:A.switch(a)case a:a+;break;case b:b+;break;)B.sw

16、itch(a+b)case 1:b=a+;break;case 1:a=+b;)C.switch(a*a)case 10,12:+a;case 14,16:+b;)D.switch(a/10+b)case 3:b=a/10;break;default:a+=b;)(例子)#include void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)厂 case 0:a+;break;jcase 1:b+;break/case 2:a+;b+;break;)cout,a=,a,b=,b,n,;程序输出为:A)a=2,b=l B)a=l,b=lC)a=l,b=0 D)a=2,b=2(例子)void main(void)(char c,*s=1234;while(c=*s+)switch(c-O)(case 0:case 1:printf(%c”,c+1);case 2:printf(%cn,c+2);break;default:printf(%cn,c+3);break;)printf(n”);)程 序 的 输 出 的 第 一 行 是 o

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

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