全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资(2)

2019-08-31 13:16

符、‘\\”’表示双引号、‘\\ddd’表示八进制数、‘\\xhh’表示十以考试标准Viusal c++6.0为例,说明各类型变量所占的位数。 六进制数。 所占 所占 所占 所占 例3:(2010-09-15)以下选项中能表示合法常量的是(C) 类型 字节类型 字节位数 位数 A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠:‘\\\\’ 数 数 D)字符串:“\\007” short 16 2 unsigned 32 4 【解析】表示整常量不能用逗号分隔,A项错误;实型常量的int 指数形式E后必为整数,故B项错误;?\\007?是转义字符,只int 32 4 unsigned 32 4 能用单引号括起来,不能用双引号或其他括号,故D项错误。long 例4:(2010-03-26)以下选项中不能用作C程序合法常量的是long 32 4 float 32 4 ( B) unsigned 16 2 double 64 8 A)1,234 B)'\\123' C)123 short 例1:(2010-09-38)有以下程序

D)\

#include

【解析】A中的‘,’在编译时会出错的,直接写成1234即可,main(0)

{int s,t,A=100;double B=6;

B是一个三位八进制数代表的字符,C是一个数字常量,D是s=sizeof(A); t=sizeof(B); 一个字符串,其中\\x7是一个一位十六进制数代表的字符,也printf(“%d,%d\\n”,s,t);

}

即D中的字符串是两个字符,如果sizeof的话是3,如果strlen在VC6平台上编译运行,程序运行后的输出结果是(C)

A)2,4 B)4,4 C)4,8 D)10,6

的话是2。

【解析】在VC6平台上,int型占4个字节,double型占8个

6.知识点:变量 字节,故答案是C。 ? 整型变量和实型变量 ? 字符变量:一个字符变量只能存放一个字符。字符串不能

第 6 页 共 78 页

存放在字符变量中,只能用字符数组或指针存放字符串。 定值 例1:(2009-09-22)有以下定义语句,编译时会出现编译错误【解析】?A?的ASCII码值为65,?8?的ASCII码值为56,?4?的是(C) 的ASCII码值为52,65+56-52=69,对应于字符?E?。?5?的ASCIIA)char a=?a?; B)char a=‘\\n’; C)char a=‘aa’; 码值为 53,65+56-53=68,对应于字符?D?。字符变量c1以í)char a=‘\\x2d’; 格式输出,即?E?。字符变量c2以%d格式输出,即68。故答【解析】一个字符变量只能存放一个字符,A项字符变量存放案是A。

的是普通字符常量;B、D项字符变量存放的转义字符;字符8.知识点:进制转换

常量只能是单个字符,不能是字符串,?aa?不是单个字符,故? 十进制转换成二进制、八进制、十六进制:将十进制的数C项错误。 字除以2(8、16),得到的商数继续除以2,直到商为0,然7.知识点:ASCII码 后将各次相除所得的余数从后往前排列。 ? ?0?的ASCII码值为48;?A?的ASCII码值为65;?a?的ASCII? 二进制、八进制、十六进制转换成十进制:将二(八、十

码值为97。 六)进制数的每一位数从高位到低位乘以2的n-1次幂,n为? 大写字母与小写字母的ASCII码值相差32。 该位所在的位数。 例1:(2009-09-23)有以下程序 ? 二进制与八进制之间的转换:每个八进制数字转换成3位#include 二进制数字。 main() ? 二进制与十六进制之间的转换:每个十六进制数字转换成{char c1,c2; 4位二进制数字。 c1=?A?+?8?-?4?; 例1:(2010-09)以下程序运行后的输出结果是 2008 。 c2=?A?+?8?-?5?; #include printf(“%c,%d\\n”,c1,c2); main() } {int a=200,b=010; 已知字母A的ASCII码为65,程序运行后的输出结果是(A) printf(“%d%d\\n”,a,b); A)E,68 B)D,69 C)E,D D)输出无}

第 7 页 共 78 页

【解析】八进制数010转换成十进制数为8,按“%d%d”格式分别输出a、b,即2008。 9.知识点:运算符的优先级

级别由大到小:(逻辑)非 >算(术运算符) >关(系运算符) >(逻辑)与 >(逻辑)或 >条(件运算符) >赋(值运算符) 10.知识点:强制类型转换运算符 ? 一般形式:(类型说明符)(表达式)

? 功能:把表达式的运算结果强制转换成类型说明符所表示的类型 例1:(2009-04-06)表达式(int)((double)(5/2)+2.5)的值是4。 【解析】(int)((double)(5/2)+2.5)→(int)((double)2)+2.5)→(int)(2.000000+2.5)→(int)(4.500000) →4。 例2:以下程序运行后的输出结果是 () 。 main() { int a;

a=(int)((double)(3/2)+0.5+(int)1.99*2); printf(\} 答案:3

【解析】(3/2)=1,(double)(3/2)+0.5=1.5,(int)1.99*2=2,所以(double)(3/2)+0.5+(int)1.99*2=3.5,故a=3。

11.知识点:算术运算符: +、—、*、/、% %:参与运算的量均为整型。

/:当除号左右两边都是整数的时候,商也要是整数,如果不是整数则舍弃小数部分。当参与运算量有一个为实型,则商为double型。 例1:(2011-09-14)若有定义语句:int a=10;double b=3.14;,则表达式‘A’+a+b值得类型是 (C)

A.char B.int C.double D.float 【解析】各种类型数据混合运算时,最终结果的类型可依据以下转换规律:

char -> short -> int -> long -> float -> double 例1:(2011-09-15)如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为 (B)

A.1.9 B.1 C.2 D.2.4 【解析】x,y,z均为整型变量,因此x/y结果为1,即z=0.9+1=1.9,z最终结果为1 例1:(2010-09-14)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是(A)

A)a%(int)(x-y) B)a=x!=y; C) (a*y)%b D)y=x+y=x

第 8 页 共 78 页

【解析】参与%运算的左右操作数均为整型,故A项正确,C【解析】表达式a++的值是a未加1之前的值,即5。.

项错误。B项是赋值语句,不是表达式。赋值运算符左边必须? 当++或—与printf语句结合时,若++/--x的形式,则先自是变量,而不是表达式,而D项中x+y=x,错误。

增/自减,然后输出;若x++/--的形式,则先输出x原值,12.知识点:逗号表达式

? 一般形式:表达式1,表达式2??表达式n

在进行自增/自减操作。

? 求值过程:自左向右依次求解,最后一个表达式的值为整

例2:(2011-03-26)有以下程序 个逗号表达式的值。

例1:(2009-04-14)设有定义:int x=2;以下表达式中,值

#include

不为6的是(D)

A)x*=x+1 B)x++,2*x C)x*=(1+x) main() D)2*x,x+=2

{ int x=011;

【解析】A项x=x*(x+1)=2*(2+1)=6;B项x++后,x的值为

3,2*x的值为6,整个逗号表达式的值为6;C项 printf(\x=x*(1+x)=2*3=6;D项x=x+2=2+2=4,整个逗号表达式的值

} 为4。故答案是D。

13.知识点:自增自减运算符 程序运行后的输出结果是(C) ++i i自加1后再参与运算

A)12 B)11 C)10 D)9 i++ i参与运算后再自加1

--i i自减1后再参与运算

【解析】011是一个八进制的数,转为十进制则为1*8+1=9;

i-- i参与运算后再自减1

++x是x先自增1再参与其他运算,所以先x自增1为10再++和- -的运算对象只能为变量,不能是常量或表达式。

例1:(2009-09-06)若有定义语句:int a=5;则表达式:a++

输出即为10,故选C。

的值是 5 。

第 9 页 共 78 页

14.知识点:赋值表达式 a=a+0=0+0=0。故答案是D。 ? 一般形式:变量名=表达式 15.知识点:位运算 ? 赋值运算符左边必须是变量,而不是表达式。 ? 按位与运算& 例1:(2010-03-14)若有定义:double a=22;int i=0,k=18;规则:0&0=0 0&1=0 1&0=0 1&1=1 则不符合C语言规定的赋值语句是( C) ? 按位或运算| A)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a; 规则:0|0=0 0|1=1 1|0=1 1|1=1 D)i=!a; ? 按位异或运算∧

【解析】a为double型,参与%运算的操作数均为整型,故C规则:0∧0=0 0∧1=1 1∧0=1 1∧1=0 项错误。 ? 求反运算~ 例2:(2011-03-26)若有定义语句:int a=3,b=2,c=1;,以下选规则:~0=1 ~1=0

? 左移运算<<

项中错误的赋值表达式是(A) 规则:把<<左边的运算数的各二进位全部左移若干位,高位丢

0。左移一位相当于该数乘以2。左移n位相当于 A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; 弃,低位补

该数乘以2n。

D)a=1+(b=c=4); 例1:(2010-09-40)有以下程序

#include

【解析】赋值表达式的左边必须是变量不能是表达式。而答案

main()

{short c=124; A中,(b=4)是一个赋值表达式。

c=c____D____;

? 复合赋值运算符和表达式

printf(“%d\\n”,c);

+=、—=、*=、/=、%=、<<=、>>=、 &=、 ^=、 |=

}

例2:(2010-09-16)表达式a+=a-=a=9的值是(D)

若要使程序的运行结果为248,应在下划线处填入的是

A)9 B)-9 C)18 D)0

A)>>2 B)|248 C)&0248

【解析】赋值运算符的结合性是从右到左,a=9→a=a-9=0→

第 10 页 共 78 页


全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:感受生命的意义教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: