2023年全国计算机等级考试二级C语言复习资料_第1页
2023年全国计算机等级考试二级C语言复习资料_第2页
2023年全国计算机等级考试二级C语言复习资料_第3页
2023年全国计算机等级考试二级C语言复习资料_第4页
2023年全国计算机等级考试二级C语言复习资料_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常量变区运算符

单分支选择

程序设计基础

分支选择C

3抨结构-一函数定义

多分支选择函数<4函数调用

嵌套选择

概念&定义

while循环语句

/引用&运算

de...whiled环语句

指针与数组

指针行指甘

跳转语句C语言/指针数组

循环嵌套

指针与函数

[指向指针的指针

一维费组

-维数蛆一~~X

u0t组结构体(A共用体)类型定义

一二、字符数组丁结构体(&共用体)变量

字符率专组一-------'结构体&

文件&编注系统结构体数经

共用体

结构体指针

预处理文件链表

definetypedefindude打开&关闭定位谀写

思维导图1:C语言程序设计学问结构

第一课C语言程序设计基础

(g«-・■—不能融》

ht(2〉节〉作援宿鳍头)

t<long(墀节)(g』端等焉呵*町关))]

f

交量MS11一回1_包卜、

知二的”8抒)-2号。小:冲一\

矍:W—/

V:转义,符,字符型/

字符型char(1字节)_w..字符串**

个4“rem用”,—第峭

钛/———

C程序框架2鹏《,

,~”-加)・•(;£1)■*取城)weo(单目运算彳f\,魄/pthaiffWM)

♦F算一运算符f\WaiJ

/\效2

<«»>位移运算符

关系适修符)双目

<<,=>■>>■1I/\|.mp(yW・CT>2)的

<<1>位运建运算行~fT^L'V字相串处现函数二二二二

।"―二^晒Kg/更就8■哥,、'-,函数2.哈费④钠制相

\1Qw«<ffgWCTW

L:c三目运年才

U\

=»==«=/=»=配*=|=<•:二>>:版值预匏,

L藏我取蝉卜)一™^

?S\

用户自定义的效(详■函数章)

思维导图2:第一课C语言程序设计基础

本课主要学问点:•C语言是一种结构化程序设计语言。三种基本结构:依次、选择、循环.

1.学问点:C程序基础例1:(2023-I9-11)以下关于结构化程序设计的叙述中E确的是(C)

A)一个结商化程序必需同时由依次、分支、循环三种结构组成D>C语言中除了main函数,其他帐数不行作为单独文件形式存在

B)结构化程序运用got。语句会很便挫(2023-19-11)以下叙述中错误的是(C)

AC语言编写的函数源程序,其文件名后缀可以是C

C)在C酒音中.程序的限块化是利用函数实现的

B.C谙言编写的函数邻可以作为-个独立的

D)由三种步木结构构成的程序只能解决小规模的问题C.C语言编写的每个函数都可以进行独立的编译并执行

例2:(2023-03-26)计算机高级语言程序的运行方法有编译执行和说明执行两种,D.一个C语言程序只能有一个主函数

以下叙述中正确的是(A)

3.学问点:标识符

A)C语言程序仪可以编译执行

B)C语言程序仅可以说明执行•命名规虬

C)C语言程序既可以编译执行又可以说明执行①标识符中只能包含字母(a-z.A-Z),数字(0-9),下划线(J°

D)以上说法都不对②第一个字符必需是字母或卜划线。

•分类

【解析】计算机不能干脆理解高级语言,只能干脆理解机器语言,所以必须要把高类型说明符:int,fbat,double等

级语言掰译成机涔语音,计算机才能执行高级语言编写的程序。酣译的方式有两0①关铤字(32个)

(有固定含义,不行变更)

种,一个是编译,一个是说明。C语言程序仪可以编译。语句定义符:if,for,while等

例3:(2023-03-26)以下叙述中错误的是(D)

小②预定义标识符库函数的名字:print!,,scanf等

A)C语言的可执行程序是由一系列机器指令构成的

写L(有特别含义,可以变更)

B)用C语言编写的源程序不能T•腌在计算机上运行

编洋预处理吩咐名:include等

。通过编译等到的二进制目标程序须要连接才可以运行

D)在没有安装C语言渠成开发环境的机器上不能运行C源程序生成的.cxc文件③用户自定义的标识符i格式合法,ii不能运用关键字,道见名知意

【解析】C程序开发过程:编辑一>(.c)编译一〉(.obj)链接一>可执行文件(.cxc)例1:(2023-I3-13)以下C语言用户标识符中,不合法的是(D)

2.学问点:C语言程序的构成A)_lB)AaBcC)a_bD)a-b

•C程序是由函数构成的,一个C程序有且仅有一个main函数。一个函数4.学问点:数据类型

由两部分组成:函数的首部和函数体。函数体包括声明部分和执行部分。一个C例1:(2023-I3-16)以下关于C语言数据类型运用的叙述中错误的是(D)

程序卷是从main函数起先执行(即程序的入口),由main函数结束,(即程序的A)若要精确无误差的表示自然数,应运用整数类型

出口)。B)若要保存帮仃多位小数的数据,应运用双精度类型

例1:(2023-03-12)以下叙述正确的是(B)C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

A)C忠吉程序是由过程和函数组成的D)若只处理“真”和“假”两种逻辑值,应运用逻辑类型

B〉C语言函数可以嵌套调用,例如:fun(fun(x))【解析】结构数据类型是依据已定义的一个或多个数据类型用构造的方法来定义

C)C语言函数不行以单独编译的,一个结构类型的值可以分解成若干个“成份”或“元素”,每个“成员”都是

一个基本数我类型或又是一个构造类型,C项正确。C语言没有逻辑类型,故D误:实型常量的指数形式E后必为整数,故C项错误;长整型数后缀为L或I,故

项错误。D项正确。

例2:(202303.26)定义无符号整数类为Ulnl,下面可以作为类Hint实例化值的是例2:(2023-13-26)以下选项中可用作C程序合法实数的是(A)

(B)A).lcOB)3.0c0.2C)E9D)912E

AA369B)369C)0.369D)整数集合(12345}【解析】实小指数表示方式“E前E后比有数,E后必芾是整数二故选A

【解析】无符号性数类型为只有正整数和0,全部选择B,•字符常量:用单引号''括起来的一个字符。包括一般字符常量和转义字符。

5.学问点:常量一般字符常量:如‘a'、'A'、T'。

•整型常盘转义字符:由一对单引号引起来的以'开头的若干字符的组合.如表示回车

十进制整常数:没有前缀,其数码为例如

59.65535,-568换行、、’表示反斜线符、中'表示单引号符、表示双引号、'\ddd'表示八

八进制整常数:以开头,其数码为例如

00*7.015进制数、‘Uhh'表示十六进制数。

十六进制整笔数:以或开头,其数码为或例如

0XOx69,A-Fa-f.0x2A例3:(202349-15)以下选项中能表示合法常量的是(C)

长整型数:斜长常数后城为或。例如

LI358OOOLA)整数:1.200B)实数:1.5E2.0C)字符斜杠:*WD)字符中:

无符号数:联型常数后缀为或。例如

UuI58u“\007”

•实型常量的形式【解析】表示整常量不能用逗号分隔.A顼错误:实型常量的指数形式E后必为

小数形式:必需小数点,小数点前后不能何时没有漱字。

fr整数,故B项错误:”「只诜用”不能用双引号或其

指数形式:aEn(其中a表示十进制数,E阶码标记,n阶玛九E前E后必需有数

他括号,故D项错误.例4:(2023-03-26)以下选项中不能用作C程序合法常址

字,E后必为整数,可以带符号•例如2.IE-3、5ES

的是(B)

例h(202.V09-13)以下选项中关于C语言常垃的叙述错误的是:(D)A)1,234B)Y23'C)123D)"\x7G"

【解析】A中的‘,'在编译时会出错的,干脆写成1234即可,B是一个三位八进

A.所谓常量,是指在程序运行过程中,其值不能被变更的量

制数代表的字符.C是一个数字常量,D是一个字符串,其中\x7是一个一位十六

B.常量分为型型常量、实型常量、字符常版和字符串常垃

进制数代表生字符,也即D中的字符串是两个字符.假如;izeof的话是3,假如sirlen

C.常量可分为数值型常垓和非数值型常成的话是2・

D.常常被运用的变量可定义成常量6.学问点:变量

【解析】依据常量的范本概念,则不雄推断A、B,C为正确。•整型变耀和实型变量

例1:(2023-04-13)以下选项中,能用作数据常量的是(D)以考试标准ViusalC++6.0为例,说明各类型变量所占的位数,

A)ol15BK)1I8C)1.5el.5D)1I5L所占所占所占所占

类型类型

【解析】八/制整令数以0开头,A项错误:八进制整常数的数码味37,B项错位数字节数位数字节数

short162unsignedint324例1:(2023-09-23)有以卜程序

int324unsignedIcng324#include<stdiu.h>

long324float324main()

unsignedshort162double648{charcl.c2:

例1:(2023-09-38)有以下程序cl='A'+'8'-4:

#include<stdio.h>c2='A'+'8'-5:

,,

main(0)printfC,%c,%(ftn,cl.c2):

(ints.t.A=100:doubleB=6:]

s=sizeof(A);t=sizeof(B>:己知字母AMASCII码为65,程序运行后的输出结果是(A)

printf("%d.%d\n”,s,l);A)E,68B)D,69C)E,DD)输出无定值

1【解析】火的ASCII码值为65,'8'的ASCII码值为56,W的ASCII码值为

在VC6平台上编译运行,程序运行后的输出结果是(C)52,65+56-52=69,对应于字符‘E\'5'的ASCII码值为53,65+56-53=68,对应于字

A)2,4BJ4.4C)4,8D)IO,6苻刀、才苻变量cl以%c格式输出,印小符变1itc2以%d格式输出,即68。

【解析】在VC6平台上,int型占4个字节,故答案是A,

double型占8个与二节,故答案是C.8.学问点,进制转换

•字行%匕j彷小,•十进制也换成二进制、八进制、十六进制:将十进制的数字除以2(8、16),

只能用字符数组或指针存放字符串.得到的商数接若除以2,直到就为0,然后将各次相除所得的余数从后往前排列。

例I:(2023-09-22)有以卜定义语句,编译时会出现编译错误的是(C)•二进制、八进制、十六进制转换成十进制:耨二(八、十六)进制数的每一位

A)chara=,a':B)chara='\n';C>chara=*aa':D)chara='\x2d,;数从高位到低位乘以2的nd次%,n为该位所在的位数。

【解析】一个字符变量只能存放一个字符,A项字符变量存放的是一般字符常量:•二进制与八进制之间的转换:每个八进制数字转换成3位二进制数字。

B、D项字符变他存放的转义字符:字符常量只能是单人字符,不能是字符串,’aa'•二进制与十六进制之间的转换:每个十六进制数字转换成4位二进制数字。

不是单个字符,故C项错误。例1:(2023-09)以下程芹运行后的输出结果是2023。

7.学问点:ASCII码#include<stdio.h>

••的ASCII码值为48:W的ASCII码值为65:6'的ASCII码值为97°main()

•大写字母与小写字母的ASCII码值相差32。{inta=2(X).b=OIO:

printf(M%d%d\n,,.a,b):得类型是(C)

)A.charB.intC.doubleD.float

【解析】八曲制数010转换成十进制数为s.按“%d%d”格式分别输出a、b.nil【解析】各利类型数拉:混合运算时.最稣结果的券型可依据以下转换规律:

2023»char->short->int->long•>float->double

9.学问点:运算符的优先级例1:(2023-09-15)如仃定义i开句:inix=12.y=8.z:,在其后执行语句z=0.9+x/y.则z

级别由大到小:(逻辑)非>算(术运算符)>关(系运算符)>(逻辑)与>(逻的值为(B)

辑)或>条1件运算符)〉赋(值运算符)B.lC.2

10.学问点:强制类型转换运算符【蚂析】x,y,z均为整型变量.因此x/y结果为I,即z=0.9+l=l.9,z最终结果为1

•一般形式:(类型说明符)(表达式)例I:(2023-09-14)有以下定义:inia:longb:doublex.y:则以下选项中正确

•功能:把表达式的运算结果强制转换成类型说明符所表示的类型的表达式是(A)

例I:(2023-04-06)发达式(im)((d<>uble)(5/2)+2.5)的值是4.A)a%(int)(x-yiB)a=x!=y;C)(a*y)%bD)y=x+y=x

【解析】(in0((double)(5/2)+2.5)-(int)((double)2)+2.5)--(int)(2.000000+2.5)【解析】舂加%运算的左右操作数均为整型,故A项正确,C项错误。B项是赋值

—(Inr)(4.500000)-4.语句,不足表注式。赋值运算苻左边必需是变量,而不足表注式,而D项中x+y=x,

例2:以下程序运行后的输出结果是()・错误。

main()

12.学问点:逗号表达式

(inta;

a=<int)((double)(3/2>+O.5+(int)1.99,2);•一般形式:表达式1,表达式2……表达式n

printf("%d\n"^);•求值过程:自左向右依次求解,最终一个表达式的值为整个逗号表达式的值。

I

例1:(2023-54-14)设有定义:intx=2:以下表达式中,值不为6的是(D)

答案:3

A)x*=x+lB)x++,2*xC)x*=(l+x)D)2*x,x+=2

【解析】(3/2>l.(double)(3/2)+«.5=1.5.(int)1.99*2=2,所以

«loubleX3/2:+0.5+(int)1.99*2=3.5,故a=3。【解析】A项x=x*(x+l)=2*(2+1)=6;B项x++后,x的值为3,2*x的值为6,整个

11.学问点:算术运算符:+、一、*、/、%过号表达式的值为6:C项x=x"(l+x)=2・3=6;D项x=x+2=2+2=4,整个逗号表达

%:参加运算的钺均为整型式的值为4。故答案是D。

/:当除号左右两边都是整数的时候,商也要是整数.位如不是整数则舍弃小数部13.学问点:自增自减运算符

分。当参加近算量有一个为实型,则商为double型.++ii自加1后再参加运算

例I:(2023-09-14)若有定义语句:inta=10;doublcb=314;.则表达式'A'+a+b值i++i参加运算后再自加1

-ii自减1后再参加运算•及合赋值运算符和表达式

i-i参加运算后再自诚1+=、一=、*=、/=、%=、<<=、>>=、&=、八=、|=

++和--的运算对象只能为变量,不能是常量或表达式.例3(2023-59-16)表达式a+=a-=a=9的值是(D)

例1:(2023-09-06)若有定义语句:inta=5;则表达式:a++的值是50A)9B)-9018D)0

【解析】表土式a++的值是a未加1之前的值,即5。.【解析】赋值运算符的结合性是从右到左,a=9-a=a-9=0-a=a*0=0+0=0o故答案

•当++或一与prinif语句结合时,若++/-x的形式,则先自增/自减,然后输出;是D.

若x++/•.的形式,则先输出x原值,在进行自增/自减操作。

15.学问点:位运算

例2:(2023-03-26)有以下程序

ttinclude•按位与运算&

main()规则:0&0=0041=01&0=0141=1

{intx=01l;

•按位或运算I

priitf("%d\n",++x);

规则:0|0^00|1=11|0=11|1=1

}

程序运吁后的输出结果是<C)•按位异或运算八

A)12B)llC)1OD)9规则:0八0=0OA1=11AO=11A1=O

【解析】00是一个八进制的数,转为十进制则为1*8+1避;++X是x先自增1再

•求反运算、

参加其他运算,所以先x自增I为10再输出即为10,故选C,

规则:'0=1'1=0

14.学问点:赋值表达式

•左移运算<<

•一般形式:变量名=表达式

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

•赋值运算符左边必需是变量,而不是表达式.

一位相当于该数乘以2.左移n位相当于该数乘以2、

例1:(2022-03-14)若仃定义:doublea=22:inti=0,k=18;则不符合C语言规

例1:(202379-40)有以下程序

定的赋值语句是(C)

^include<stdio.h>

A)a=a++.i-+;B)i=(a+k)<=(i+k);C)i=a%ll;D)i=!a;

mainO

【解析】a为double型,参加%运算的操作数均为整型,故C项错误。

例2:(2023-03-26)若有定义语句:inia=3.b=2.c=l:,以下选项中错误的赋值表达{shortc=12<;

式是<A)c=c____D____;

A)a=(b=4)=3:B)a=b=c+1:C)a=(b=4)+c;D)a=l+(b=c=4);

printf(u%d\nM,c);

【解析】赋皆表达式的左边必需是变量不能是表达式。而答案A中,(b=4)是■

}

个赋值表达式。

若要使程序的运行结果为248,应在卜划线处填入的是例I:(2023*)8)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式

A)»2B)248O&0248D)«l值为_____

【解析】左含一位相当于该数垂以2.124yH相当于124亚以2.等于24g.故答非0时友示逻辑值“我”.

案是D。例2:(2023-03-06)设x为int室变量,请写出一个关系表达式

例2:(2023-04-39)有以下程序(x%3==0)&&ix%7==0),用以推断x同时为3和7的倍数时,关系表达式的

/include<s(dio.h>值为真。

main。17.学问点:逻辑运算符和表达式

(in(a=5.b=11:

t=(a«2)|b;

printf(**%d\n\t);

)

程序运行后的输出结果是(A>

A)2IB)llC)6D)l

【解析】左称2位相当于该数乘以2\5«2相当于5乘以4等于20,201=21,

故答案是A,

•右移运克》整个表达式的值为0.

把》左边的运用数的各二进位全部右移若干位。高位补0,低位丢弃.右移一位相例I:(2023-09-17)若有定义语句:intkl=10,k2=20;,执行表达式(kl=kl>k2)

当于该数除以2.右移n位相当于除以2"。

&&(k2=k2>kl)后,kl和k2的值分别为(B)

例3:(2023-09-39)若有以下程序段A.0和1B.0和20C.10和1D.10和20

intr=8;【解析】kl>k2为假,因此kl=kl>k2结果0,逻辑与

printfC-%d\n\r»l);左边表达式为假,右边表达式不再处理,因此kl结果

输出结果是(C)为0,k2不变,仍为20

A)16B)8C)4D)2例2:inia=2;则表达式(!a==l)&&(a++==2)的值为0,a的值为2。

【解析】右移位相当于该数除以2。8>>1相当于除以2,等于4.故答案是C。【解析】!a为0,!a==l的位为0.&&左边的值为0,则不再对右边的运算对象进

16.学问点:关系运算符和表达式行运算,所以a的值为2。

•若I庄边的运算对象的值为1,则不再对右边的运算对象进行运算,整个表达main()

式的值为1。|intm.n.p:

例2:(202X03-17)若a是数值类型.则避粉表达式心」)||(a!=l)的值是(A)scanf(',m='%dn=%dp=%<l".&m.&n.<fcp>:

A)lB)0C)2D)不知道a的值,不能确定printf(',%d%dM\Ji'\m.n.p):

【解析】aKJ值有两种状况:a等于I或a不等于1.故逻辑表达式(a==l)||(a!=l))若想从键盘上输入数据,使变城m中的值为123,n中的{ft为456,p中的值为789,

的值为1。则正确的输入是(A)

18.学问点:格式输入函数printfOA)m=123n=456p=789B)m=123n=456p=789

⑴般形式:priniR”格式限制字符串”,输出列表):C)m=l23,n=456.p=789D)I23456789

(2)遇到限制字符,依据限制字符的规定输出,遇到非格式字符申按原样输出,【解析】scanf(“m=%dn=%dp=%d”,&m,&n.&p);格式限制字符串中有非格式字符

例1:(2023-04-07)若变量x,y已定义为im

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论