全国计算机等级考试二级C语言复习资料
全国计算机等级考试二级C语言考前笔试资料
【说明】
这是真题分类解析,比较经典。为了节省时间,提高效率,希望大家按这样一种方式阅读这份资料:
直接做题库,因为每年的考题全部来自题库,而且每一年的题库是完全一样的
不懂,看解析
再不懂,看知识点介绍,书本,课堂笔记,要知道每一道题再考什么知识点
不要从头开始,一个字一个字地读
第二章运算符与表达式
1.知识点:C运算符简介
算术运算符:+、—、*、/、%
赋值运算符:=、+=、—=、*=、/=、%=、<<=、>>=、&=、^=、|=
关系运算符:>、>=、<、<=、= =、!=
逻辑运算符:!、&&、||
条件运算符:?:
逗号运算符:,
2.知识点:运算符的结合和优先级
3.知识点:强制类型转换运算符
●一般形式:(类型说明符)(表达式)
●功能:把表达式的运算结果强制转换成类型说明符所表示的类型
例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。
4.知识点:算术运算符:+、—、*、/、%
%:参与运算的量均为整型。
/:当除号左右两边都是整数的时候,商也要是整数,如果不是整数则舍弃小数部分。当参与运算量有一个为实型,则商为double型。
例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
【解析】参与%运算的左右操作数均为整型,故A项正确,C项错误。B项是赋值语句,不是表达式。赋值运算符左边必须是变量,而不是表达式,而D项中x+y=x,错误。
5.知识点:逗号表达式
●一般形式:表达式1,表达式2
●嵌套形式:表达式1,表达式2,表达式3,…表达式n
●求值过程:先求解表达式1,再求解表达式2,以表达式2的值为整个逗号表达式的值。例1:(2009-04-14)设有定义:int x=2;以下表达式中,值不为6的是(D)
A)x*=x+1 B)x++,2*x C)x*=(1+x) D)2*x,x+=2
【解析】A项x=x*(x+1)=2*(2+1)=6;B项x++后,x的值为3,2*x的值为6,整个逗号表达式的值为6;C项x=x*(1+x)=2*3=6;D项x=x+2=2+2=4,整个逗号表达式的值为4。故答案是D。
6.知识点:自增自减运算符
++i i自加1后再参与运算
i++ i参与运算后再自加1
--i i自减1后再参与运算
i-- i参与运算后再自减1
++和- -的运算对象只能为变量,不能是常量或表达式。
例1:(2009-09-06)若有定义语句:int a=5;则表达式:a++的值是 5 。
【解析】表达式a++的值是a未加1之前的值,即5。.
7.知识点:赋值表达式
●一般形式:变量名=表达式
●赋值运算符左边必须是变量,而不是表达式。
例1:(2010-03-14)若有定义:double a=22;int i=0,k=18;则不符合C语言规定的赋值语句是( C)
A)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a%11; D)i=!a;
【解析】a为double型,参与%运算的操作数均为整型,故C项错误。
●复合赋值运算符和表达式
+=、—=、*=、/=、%=、<<=、>>=、&=、^=、|=
例2:(2010-09-16)表达式a+=a-=a=9的值是(D)
A)9 B)-9 C)18 D)0
【解析】赋值运算符的结合性是从右到左,a=9→a=a-9=0→a=a+0=0+0=0。故答案是D。
第三章顺序结构
1.知识点:格式输入函数printf()
(1)一般形式:printf(“格式控制字符串”,输出列表);
(2)遇到控制字符,按照控制字符的规定输出,遇到非格式字符串按原样输出。
例1:(2009-04-07)若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(“x/y=%d ”,x/y);补充完整,使其输出的计算结果形式为:x/y=11。
(3)格式字符串
●输出最小宽度:若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义
的宽度则补以空格或0。
●精度:若输出数字,则表示小数的位数,若输出的是字符,则表示输出字符的个数,若
实际位数大于所定义的精度数,则截去超过的部分。
例3:(2009-04-15)程序段:int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);的输出结果是(A)
A)123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930
【解析】以%8.6f格式输出,即输出的总宽度为8,小数的位数为6。
2.知识点:格式输入函数scanf()
(1)一般形式:scanf(“格式控制字符串”,地址列表);
(2)若格式控制字符串中有非格式字符串,则按原样输入。若格式控制字符串中没有非格式字符作输入数据之间的间隔,则可用空格、Tab、回车作间隔。
例1:(2005-04-19)有以下程序
main()
{
int m,n,p;
scanf(“m=%dn=%dp=%d”,&m,&n,&p);
printf(“%d%d%d\n”,m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)
A)m=123n=456p=789 B)m=123 n=456 p=789
C)m=123,n=456,p=789 D)123 456 789
【解析】scanf(“m=%dn=%dp=%d”,&m,&n,&p); 格式控制字符串中有非格式字符串,则按原样输入,故答案是A。
(3)在输入字符数据时,若格式控制字符串中无非格式字符,则认为所有输入的字符均为有效字符。空格会被当作字符赋值给变量。
例2:(2009-04-23)有以下程序
#include
main()
{
int a1,a2;
char c1,c2;
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则正确的输入格式是(以下_代表空格,代表回车)A)12a34b B)12_a_34_b C)12,a,34,b D)12_a34_b
【解析】空格会被当作字符赋值给变量,故B、D错误;C项中逗号会被当作字符赋值给变量,故C项错误。
(4)格式字符串
●一般形式:%[*][输入数据宽度][长度]类型
●*表示该输入项,读入后不赋予相应的变量。
●输入数据宽度:用十进制数指定输入的字符数。
例3:(2010-09-07)有以下程序
#include
main()
{
int x,y;
scanf(“%2d%ld”,&x,&y); printf(“%d\n”x+y);
}
程序运行时输入:1234567程序的运行结果是34579 。
【解析】%2d输入的数据宽度为2,x的值为12,y的值为34567,x+y=34579。计算机二级考c语言吗
●长度格式符为h(短整型)和l(长整型),%ld长整型数据,%lf双精度浮点数据。●%d 输入十进制整数;%f或%e 输入实型数(用小数形式或指数形式)
%c 输入单个字符;%s 输入字符串;%o 输入八进制整数
%x 输入十六进制整数;%u 输入无符号十进制整数
例4:(2009-04-16)若有定义语句:double x,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是(C)
A)scanf(“%f%f”,x,y); B)scanf(“%f%f”,&x,&y);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。