云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 2013年全国计算机等级考试二级C语言复习资料--已标注 - 图文

2013年全国计算机等级考试二级C语言复习资料--已标注 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 2:21:21

聪智学校

n

A)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a; D)i=!a; 【解析】a为double型,参与%运算的操作数均为整型,故C项错误。 例2:(2011-03-26)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是(A)

A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4); 【解析】赋值表达式的左边必须是变量不能是表达式。而答案A中,(b=4)是一个赋值表达式。

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

+=、—=、*=、/=、%=、<<=、>>=、 &=、 ^=、 |= 例2:(2010-09-16)表达式a+=a-=a=9的值是(D) A)9 B)-9 C)18 D)0

一位相当于该数乘以2。左移n位相当于该数乘以2。 例1:(2010-09-40)有以下程序 #include main() {short c=124; c=c____D____; printf(“%d\\n”,c); }

若要使程序的运行结果为248,应在下划线处填入的是 A)>>2 B)|248 C)&0248 D)<<1

【解析】赋值运算符的结合性是从右到左,a=9→a=a-9=0→a=a+0=0+0=0。故答案【解析】左移一位相当于该数乘以2,124>>1相当于124乘以2,等于248。故答是D。

案是D。

例2:(2009-04-39)有以下程序 #include main() {int a=5,b=1,t; t=(a<<2)|b; printf(“%d\\n”,t); }

程序运行后的输出结果是(A) A)21 B)11 C)6 D)1

【解析】左移2位相当于该数乘以2。5<<2相当于5乘以4等于20。20|1=21。

第 9 页 共 67 页

2

15.知识点:位运算

? 按位与运算&

规则:0&0=0 0&1=0 1&0=0 1&1=1 ? 按位或运算|

规则:0|0=0 0|1=1 1|0=1 1|1=1 ? 按位异或运算∧

规则:0∧0=0 0∧1=1 1∧0=1 1∧1=0 ? 求反运算~ 规则:~0=1 ~1=0 ? 左移运算<<

规则:把<<左边的运算数的各二进位全部左移若干位,高位丢弃,低位补0。左移

聪智学校

故答案是A。 ? 右移运算>>

把>>左边的运算数的各二进位全部右移若干位。高位补0,低位丢弃。右移一位相当于该数除以2。右移n位相当于除以2。 例3:(2009-09-39)若有以下程序段 int r=8;

printf(“%d\\n”,r>>1); 输出结果是(C)

A)16 B)8 C)4 D)2

n

真 假 假 假 真 假 假 假 假 真 真 假 假 真 真 ? 进行逻辑运算时,若&&左边的值为0,则不再对右边的运算对象进行运算,

整个表达式的值为0。

例1:(2011-09-17)若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为 (B) A. 0和1

B.0和20

C.10和1 D. 10和20

【解析】k1>k2为假,因此k1= k1>k2结果0,逻辑与左边表达式为假,右边表达

【解析】右移一位相当于该数除以2。8>>1相当于除以2,等于4,故答案是C。 式不再处理,因此k1结果为0,k2不变,仍为20

16.知识点:关系运算符和表达式

值为

非0 时表示逻辑值“真”。

例2:int a=2;则表达式(!a==1)&&(a++==2)的值为0,a的值为2。

例1:(2010-09-08)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式【解析】!a为0,!a==1的值为0,&&左边的值为0,则不再对右边的运算对象进

行运算,所以a的值为2。

? 若||左边的运算对象的值为1,则不再对右边的运算对象进行运算,整个表达

例2:(2010-03-06)设x为int型变量,请写出一个关系表达式 式的值为1。

(x%3==0)&&(x%7==0) ,用以判断x同时为3和7的倍数时,关系表达式的例2:(2010-03-17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(A) 值为真。

A)1 B)0 C)2 D)不知道a的值,不能确定

【解析】a的值有两种情况:a等于1或a不等于1。故逻辑表达式(a==1)||(a!=1)的值为1。

17.知识点:逻辑运算符和表达式

? 逻辑运算符优先级从高到低:!、&&、|| ? 逻辑运算的真值表 a 真 b 真 a&&b 真 a||b 真 !a 假 18.知识点:格式输入函数printf()

(1)一般形式:printf(“格式控制字符串”,输出列表);

(2)遇到控制字符,按照控制字符的规定输出,遇到非格式字符串按原样输出。

第 10 页 共 67 页

聪智学校

例1:(2009-04-07)若变量x,y已定义为int类型且x的值为99,y的值为9,请将C)m=123,n=456,p=789 D)123 456 789

输出语句printf(“ x/y=%d ”,x/y);补充完整,使其输出的计算结果形式为:x/y=11。 【解析】scanf(“m=%dn=%dp=%d”,&m,&n,&p); 格式控制字符串中有非格式字符例2:(2009-04-15)程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);的串,则按原样输入,故答案是A。

例2:(2011-03-26)有以下程序段 输出结果是(A)

char name[20];

A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930

int num;

【解析】以%8.6f格式输出,即输出的总宽度为8,小数的位数为6。 scanf(\name=%s num=%d\

当执行上述程序,并从键盘输入:name=Lili num=1001<回车>后,name的值(A) 19.知识点:格式输入函数scanf()

A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001

(1)一般形式:scanf(“格式控制字符串”,地址列表);

【解析】scanf中格式字符串的非格式字符串原样输入,如其中的‘name=’和

(2)若格式控制字符串中有非格式字符串,则按原样输入。若格式控制字符串中‘num=’,所以接受到的name值是后面的Lili,num值为1001。故选A。 没有非格式字符作输入数据之间的间隔,则可用空格、Tab、回车作间隔。 (3)在输入字符数据时,若格式控制字符串中无非格式字符,则认为所有输入的例1:(2011-09-16)若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数字符均为有效字符。空格会被当作字符赋值给变量。 3赋给变量a,5付给变量b的输入数据是 例3:(2009-04-23)有以下程序

A.3 5 B.3,5

C.3;5 D.35

#include

【解析】scanf格式字符串中两个%d之间带有非格式字符分号,运行时应原样输入。 main() 例1:(2005-04-19)有以下程序 {int a1,a2; char c1,c2; main() {int m,n,p;

scanf(“m=%dn=%dp=%d”,&m,&n,&p); printf(“%d%d%d\\n”,m,n,p);

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); printf(“%d,%c,%d,%c”,a1,c1,a2,c2);

}若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是(以下_代表空格,

}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,代表回车) 则正确的输入是(A) A)12a34b B)12_a_34_b C)12,a,34,b D)12_a34_b A)m=123n=456p=789 B)m=123 n=456 p=789

【解析】空格会被当作字符赋值给变量,故B、D错误;C项中逗号会被当作字符

第 11 页 共 67 页

聪智学校

赋值给变量,故C项错误。 (4)格式字符串

? 一般形式:%[*][输入数据宽度][长度]类型 ? *表示该输入项,读入后不赋予相应的变量。 ? 输入数据宽度:用十进制数指定输入的字符数。 例4:(2010-09-07)有以下程序 #include main() {int x,y;

scanf(“-%ld”,&x,&y); printf(“%d\\n”x+y);

}程序运行时输入:1234567程序的运行结果是 34579 。

【解析】-输入的数据宽度为2,x的值为12,y的值为34567,x+y=34579。

{ char c1,c2;

scanf(\c2=c1+9;

printf(\

}若程序运行时从键盘输入48<回车>,则输出结果为 (09)。

【解析】输入48,则c1=48,c2=48+9,以字符输出c1和c2,则为输出ASCII码为48和57对应的字符,分别为0和9。

20.知识点:字符输出函数putchar()

一般形式:putchar(?a?);putchar(?\\101?);

21.知识点:字符输入函数getchar()

一般形式:getchar();或ch=getchar(); 例1:(2010-03-15)有以下程序 #include

例5:(2009-04-16)若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;main() 之后,正确的输入语句是(C)

A) scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y); C)scanf(“%lf%le”,px,py); D)scanf(“%lf%lf”,x,y);

{char a,b,c,d;

scanf(“%c%c”,&a,&b); c=getchar(); d=getchar();

【解析】A、D项地址列表,应为&x,&y;x、y为double型,格式控制字符串不是%f%f,printf(“%c%c%c%c\\n”,a,b,c,d); 故B项错误。

}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回

? 当定义的变量类型和scanf中“格式符”类型不一致时(这里只限定在字符型车也是一个字符)

和整型两种类型,其他数据类型不可以。)整型和字符型之间通过ASCALL可12 以相互转化。

例6:(2011-03-12)有以下程序 (说明:字符0的ASCII码值为48) main()

34 则输出结果是(B)

A)1234 B)12 C)12 D)12

第 12 页 共 67 页

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

聪智学校 nA)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a; D)i=!a; 【解析】a为double型,参与%运算的操作数均为整型,故C项错误。 例2:(2011-03-26)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是(A) A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4); 【解析】赋值表达式的左边必须是变量不能是表达式。而答案A中,(b=4)是一个赋值表达式。 ? 复合赋值运算符和表达式 +=、—=、*=、/=、%=、<>=、 &=、 ^=、 |= 例2:(2010-09-16)表达式a+=a-=a=9的

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com