C++笔试要点代C语言要点.docx
- 文档编号:26144918
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:50
- 大小:73.47KB
C++笔试要点代C语言要点.docx
《C++笔试要点代C语言要点.docx》由会员分享,可在线阅读,更多相关《C++笔试要点代C语言要点.docx(50页珍藏版)》请在冰豆网上搜索。
C++笔试要点代C语言要点
C++笔试部分要点:
1.标识符(可作为变量名、数组名、函数名等)的命名规范
①由52个英文大小写字母,10个数字,一个下划线构成
②以英文字母或下划线开头,不能是保留字
(例子)下列符号中可以用作C++标识符的是__________
A)MainB)foo-barC)elseD)3room
常见错误及注意事项:
①以数字开头(如3room),
②中间含有空格或非法字符(如foo-bar,或MyName)
③区别大小写(如Main与main不同,if与If不同)
④保留字(如if、while等)不能作为标识符
⑤但编译预处理命令(如include、define、main等)不是保留字,它们可以被用作标识符。
如,下列程序合法:
#include
voidmain()
{
intinclude;
cin>>include;
cout< } #include voidmain() { intmain; cin>>main; cout< } #include voidmain() { intdefine; cin>>define; cout< } 2.各种类型常量书写规范 0650X9A0X9AL45L45l35U35u 3.26F3.4f2.3E822.3e-45.3e4 'C''\t''\n''\24''\101''\x4.99a' '\"''\'''\\'"string" 空字符'\0',空格'',空串"" 常见错误: ①八进制数048,0后面跟大于7的数字 ②'\038',\0后面跟大于7的数字 ③十六进制数0xaG,0x后面跟大于f/F的字符 ④5.3e4.2,指数部分写成了带小数点的实型数 ⑤'abc',单引号中括多个字符 (例子)以下合法的常量是__________ A)'\28'B)'0XAB'C)2.3E8.0D)"ab\0cd" #include main() { printf("%d,%d\n",strlen("ab\0cd"),sizeof("ab\0cd")); }输出2,6 3.基本类型数据在内存中的长度以及存放形式: 整型数据: 补码形式存储正整数的补码与原码相同 实型数据: 浮点形式存储 sizeof(char)=sizeof(unsignedchar)1字节 sizeof(short)=sizeof(unsignedshort)2字节 sizeof(int)=sizeof(unsignedint)2字节 sizeof(long)=sizeof(unsignedlong)4字节 sizeof(float)4字节 sizeof(double)8字节 sizeof(char*)=sizeof(int*)=sizeof(float*)=…=2 即所有指针类型的变量的长度都是2。 4.不同整型数据(长度不同)相互赋值原则 char,int,short,long, (每种类型前都可加signed和unsigned)得: signedchar,signedint,signedshort,signedlong, unsignedchar,unsignedint,unsignedshort,unsignedlong 均可用作整型量 赋值时: 短←长截取“长”数据的低位,然后赋值 长←短将“短”数据扩展成等长数据,然后赋值 扩展原则: 若短数据为无符号型,则前面补0(unsigned) 若短数据为有符号型,则前面补符号位 (例子)短←长 已知216=65536,请写出下列程序段的输出。 inti=65538;cout< 65538是长整型常量 65538: 00000000000000010000000000000010 i: 0000000000000010 (例子)请写出下列程序段的输出。 长←短 voidmain() { charc1=-3;unsignedcharc2=-3;/*短←长*/ inta1=c1,a2=c2;/*长←短*/ cout< } -3: 1111111111111101(32位)整型常数 c1: 11111101(8位)c2: 11111101(8位) a1: 1111111111111101(16位)a2: 0000000011111101(16位) 5.类型转换(赋值时的类型转换,混合运算时的类型转换) (例子)设有语句: for(ints=1,i=2;i<=6;i++)s*=i/2; 执行该语句后,s的值是_______________。 A.1B.12 C.22D.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 (例子)设有语句: chars[]="246",*ptr=s; cout<<(char)(*(ptr+1)+1)<<'\n'; 执行以上语句后,输出_______。 A.5B.6C.46D.56 ①cout<<(*(ptr+1)+1)<<'\n';输出什么? ②表达式(*(ptr+1)+1)的类型是什么? 答案: ①输出53('5'的ASCII码) ②表达式类型是int型 (例子)设有变量说明: inta=0,b=0; 则表达式sizeof('a'+'b')的值为: A.1B.2C.4D.8 (例子)设有变量说明: floata=0,b=0; 则表达式sizeof(a+b)的值为: A.1B.2C.4D.8 【解析】 横向: 必定转换 问题: ①表达式'3'+'5'的类型? int型 ②sizeof('3'+'5')的值? 2 ③cout<<('3'+'5')< (因为'3'和'5'的ASCII码分别是51和53) ④sizeof('a'*'b')的值为? 2 ⑤sizeof(3)的值? 2 ⑥sizeof('3')的值? 1 ⑦cout<<'3'< ⑧cout< 6.表达式的计算 (逗号表达式,赋值表达式,逻辑表达式优化,关系表达式,整数求余%,整数整除/) (例子)设定义了说明语句: intk,j; 下列选项中,没有语法错误的表达式是_________。 A.(k++)++B.(k+3)=5C.k--/=5D.k---j 【解析】 A.++不能作用于表达式 B.C.赋值表达式的左值不能是表达式。 D.k---j等价于(k--)-j,不是赋值表达式。 自左至右扫描,尽量构成运算符。 因此k---j不等价于k-(--j)。 (例子)设有变量说明: inta=3,b=4,c=5;下列表达式中,值为0的表达式是__________。 A.'a'&&'b'B.a<=b C.a||b+c&&b-cD.! (a (例子)已知intx=1,y=3,m=0,n=0,k=0; k=(n=y>x)||(m=x 则语句cout< 输出的是__________。 A)1,1,0B)1,0,1C)1,1,1D)0,1,1 (例子)若有语句 intx=0,y=1,z=2; z=++x||++y; 执行以上语句后,变量x、y和z的值分别为_____。 答案: 1,1,1 以上两题适用于如下规则 逻辑运算优化规则: 不管优先级,从左至右扫描,若||前为“真”,或者&&前为“假”,则停止。 (“或”运算的前一个值若为真,则后一个表达式不算) (“与”运算的前一个值若为假,则后一个表达式不算) (例子)请写出下列程序段的输出。 intx=-5; if(0 printf("***\n"); else printf("###\n"); 本题答案: 输出*** 表示数学关系0 1 另外还有: 'A'<=ch&&ch<='Z' 不能写成: 'A'<=ch<='Z' (例子)若a1,a2,a3和a4均为整型变量,则以下选项中,符合C++语法规则的表达式是_______________。 A.a1=25%3.3B.a2=a1+a3=3*5 C.a3=078D.a4=0Xa2 解析: %要求运算量为整型 +比=优先级高 078是非法常量 7.=与==的区别 (例子) 设有语句: inti=10,j=10; if(j=0)i=i*i; elsei=i+j; 执行以上语句后i的值为______。 //答案: 10。 j被赋值是0,所以if里面是0,为假,若j被赋值是12(非零量即可),则输出100; (例子) 设有语句: inti=10,j=0; if(j==0)i=i*i; elsei=i+j; 执行以上语句后i的值为______。 //100 8.前后缀++,―― (例子)执行以下程序段后,输出结果是_______。 intx=9,y=8; inta,b,c; a=(--x==y++)? --x: ++y;//注意=与==的区别 b=x++; c=y;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 笔试 要点 语言