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

上传人:夺命阿水 文档编号:886283 上传时间:2024-01-07 格式:DOCX 页数:100 大小:519.16KB
返回 下载 相关 举报
全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx_第1页
第1页 / 共100页
全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx_第2页
第2页 / 共100页
全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx_第3页
第3页 / 共100页
全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx_第4页
第4页 / 共100页
全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言考前复习资料(真的非常全的笔试资料)().docx(100页珍藏版)》请在课桌文档上搜索。

1、空一乡小白自匆室内含AdobeAUtodeSk等各种软件、教程,以及各种福利全国计算机等级考试二级C语言考前复习资料单分支选择分支选择多分支选择嵌套选择选择结构WhiIe循环语句do.WhiIe循环语句for循环语句循环机构跳转语句循环嵌套一维数组二维数组;,数瞒组-锚串)数组锤串数组J字符数组JC程序设计基础变量运算符C语言文件&编译系统函数定义函数A函数碉用概念&定义(引用&运算,指针与数组指针行指针一指针数组I指针与函数,指向指针的指针结构体&共用体预处理文件结构体(&共用体)类型定义结构体(&共用体)变量结构体数组结构体指针链表definetypedefinclude打开&关闭定位谀写

2、思维导图1:C语言程序设计知识第一课C语言程序设计基础整型交量float(4字节)普通字符转义字符字符串常M输入&输出函数C程序框架十进制常数(0强成,首位不能是0)实型/1_double(8字节)字符型Char(I字节)int(2字里long(4字节)0122正5、指数形式实型人进制常数,:0、7表示,0升主)十六进制常数r9,a(或AF渍示,0x(或QX讲头)字符型+一(type)+-(IEiti)*&(取地址)SiZeof单目运算符位移运算符=仁)&aIa位逻辑运算符!俳)&(与蚂I遂福运其样双目预算符、;M运算符函数,=+=;/=&二ML-左边交右迦变量,常量表达式三目运算符赋值预算符

3、逗号运算符库函数数学函数SCanf(通.*拈纵Wt)getchar()邦gets序懒更名)钟神Pnmf(掷控源符*,较出项)*出/PUtCha行符变量)puisi?三)铿,rcmpCT剃,钩2)域“EN如cpy仔那蛆翎*)S字符串处理函数“StrCat例斓,审神),Smen帝阐林度sized吊网求学彼用户自定义函数(详见函数章)思维导图2:第一课C语言程序设计基例1:(202*.03-12)以下叙述正确的是(B)A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x)C) C语言函数不可以单独编译D) C语言中除了main函数,其他函数不可作为单独文件形式存

4、在例2:(202*-09-ll)以下叙述中错误的是(C)AC语言编写的函数源程序,其文件名后缀可以是CB.C语言编写的函数都可以作为一个独立的源程序文件CC语言编写的每个函数都可以进行独立的编译并执行D.一个C语言程序只能有一个主函数3 .知识点:标识符命名规则:标识符中只能包含字母(a-z,A-Z),数字(0-9),下划线(_)。第一个字符必须是字母或下划线。 分类关键字(32个) 都(有固定含义,不可改变) 是1类型说明符:int, float, double等语句定义符:if, for, while等, 预定义标识写1(有特殊含义,夺库函数的名字:printf,scanf等可以改变)编译

5、预处理命令名:include等用户自定义的标识符i格式合法,ii不能使用关键字,Hi见名知意例1:(202*-03-13)以下C语言用户标识符中,不合法的是(D)A)_lB)AaBcC)a_bD)a-b4 .知识点:数据类型例1:(202*-03-16)以下关于C语言数据类型使用的叙述中错误的是(D)A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型本课主要知识点:L知识点:C程序基础C语言是一种结构化程序设计语言。三种基本结构:顺序、选择、循环例1:(202*-09-ll)以下关于结构化程序设计的叙述中正确的是(C)A)一个结构化程序必须同时由顺序

6、、分支、循环三种结构组成B)结构化程序使用goto语句会很便捷C)在C语言中,程序的模块化是利用函数实现的D)由三种基本结构构成的程序只能解决小规模的问题例2:(202*-03-26)计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是(八)A)C语言程序仅可以编译执行B)C语言程序仅可以解释执行C)C语言程序既可以编译执行又可以解释执行D)以上说法都不对【解析】计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。C语言程序仅可以编译。例3:(202*-03-26)

7、以下叙述中错误的是(D)A)C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件【解析】C程序开发过程:编辑一(.c)编译一(.obj)链接一可执行文件(.exe)2.知识点:C语言程序的构成C程序是由函数构成的,一个C程序有且仅有一个main函数。一个函数由两部分组成:函数的首部和函数体。函数体包括声明部分和执行部分。一个C程序总是从main函数开始执行(即程序的入口),由main函数结束,(即程序的出口)。D.经常被使用的变量可定义

8、成常量【解析】根据常量的基本概念,则不难判断A、B、C均正确。例1:(202M4-13)以下选项中,能用作数据常量的是(D)A)oll5B)0118C)1.5el.5D)115L【解析】八进制整常数以0开头,A项错误;八进制整常数的数码味0-7,B项错误;实型常量的指数形式E后必为整数,故C项错误;长整型数后缀为L或1,故D项正确。例2:(202*03-26)以下选项中可用作C程序合法实数的是(八)A).leOB)3.0e0.2C)E9D)9.12E【解析】实型指数表示方式“E前E后比有数,E后必须是整数”,故选A字符常量:用单引号括起来的一个字符。包括普通字符常量和转义字符。普通字符常量:如

9、a、A、转义字符:由一对单引号引起来的以开头的若干字符的组合。如n表示回车换行、表示反斜线符、表示单引号符、表示双引号、ddd表示八进制数、xhh表示十六进制数。例3:(202*-09-15)以下选项中能表示合法常量的是(C)A)整数:1,200B)实数:1.5E2.0C)字符斜杠:D)字符串:“007”【解析】表示整常量不能用逗号分隔,A项错误;实型常量的指数形式E后必为整数,故B项错误;、007,是转义字符,只能用单引号括起来,不能用双引号或其他括号,故D项错误。例4:(202*-03-26)以下选项中不能用作C程序合法常量的是(B)A)1,234B)123C)123D)x7G【解析】A中

10、的,在编译时会出错的,直接写成1234即可,B是一个三位八进制数代表的字符,C是一个数字常量,D是一个字符串,其中x7是一个一位十六进制数代表的字符,也即D中的字符串是两个字符,如果SiZeOf的话C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型【解析】结构数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的,一个结构类型的值可以分解成若干个“成员”或“元素”,每个“成员”都是一个基本数据类型或又是一个构造类型,C项正确。C语言没有逻辑类型,故D项错误。例2,(202*-03-26)定义无符号整数类为UInt,下

11、面可以作为类UInt实例化值的是(B)A)-369B)369C)0.369D)整数集合1,2,3,4,5【解析】无符号整数类型为只有正整数和0,所有选择B。5.知识点:常量 整型常量十进制整常数:没有前缀,其数码为0-9。例如65535,-568八进制整常数:以0开头,其数码为0-7。例如015十六进制整常数:以OX或Ox开头,其数码为09,AF或af。例如0x2A长整型数:整型常数后缀为L或1。例如L无符号数:整型常数后缀为U或u。例如158u 实型常量的形式小数形式:必须有小数点,小数点前后不能同时没有数字。指数形式:aEn(其中a表示十进制数,E阶码标志,n阶码)。E前E后必须有数字,E

12、后必为整数,可以带符号。例如21E35E8例h(202*-09-13)以下选项中关于C语言常量的叙述错误的是:(D)A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量【解析】一个字符变量只能存放一个字符,A项字符变量存放的是普通字符常量;B、D项字符变量存放的转义字符;字符常量只能是单个字符,不能是字符串,、a,不是单个字符,故C项错误。7 .知识点:ASCIl码 的ASeil码值为48;0的ASClI码值为65;6,的ASCn码值为970 大写字母与小写字母的ASCII码值相差32。例1:(202*

13、-09-23)有以下程序stdio.hemain()charcl,c2;cl=,A,+,8,-t4,;c2=,A,+,8,-5,;printf(%c,%dn,cl,c2);)己知字母A的ASCIl码为65,程序运行后的输出结果是(八)A)E,68B)D,69C)E,DD)输出无定值【解析】A,的ASCII码值为65,8的ASCII码值为56,的ASCII码值为52,65+56-52=69,对应于字符,EL,5,WASCn码值为53,65+56-53=68,对应于字符D字符变量Cl以c格式输出,即,E,字符变量c2以d格式输出,即68。故答案是A。8 .知识点:进制转换十进制转换成二进制、八进制

14、、十六进制:将十进制的数字除以2(8、16),得到的商数继续除以2,直到商为0,然后将各次相除所得的余数从后往前排列。是3,如果StrIen的话是2。6.知识点:变量整型变量和实型变量以考试标准Viusalc+6.0为例,说明各类型变量所占的位数。类型所占位数所占字节数类型所占位数所占字节数short162unsignedint324int324unsignedlong324long324float324unsignedshort162double648例1:(202*-09-38)有以下程序stdio.hemain(0)ints,t,A=100idoubleB=6;s=sizeof(八);t

15、=sizeof(B);Printf(%d,%dn”,s,。;)在VC6平台上编译运行,程序运行后的输出结果是(C)A)2,4B)4,4CM,8D)10,6【解析】在VC6平台上,int型占4个字节,double型占8个字节,故答案是C。字符变量:一个字符变量只能存放一个字符。字符串不能存放在字符变量中,只能用字符数组或指针存放字符串。例1:(202*-09-22)有以下定义语句,编译时会出现编译错误的是(C)A)chara=,a,;B)chara=n;C)chara=aa;D)chara=x2d,;printf(%dn,a);答案:3【解析】(3/2)=I,(double)。+0.5=1.5,

16、(int)1.99*2=2,所以(double)(32)+0.5+(int)1.99*2=3.5,故a=3。11.知识点:算术运算符:+、一、*、/、%:参与运算的量均为整型。/:当除号左右两边都是整数的时候,商也要是整数,如果不是整数则舍弃小数部分。当参与运算量有一个为实型,则商为double型。例1:(202*-09-14)若有定义语句:inta=10;doubleb=3.14;,则表达式short-int-long-float-double例1:(202*-09-15)如有定义语句:imx=12,y=8,z;,在其后执行语句z=0.9+xy厕Z的值为(B)A.l.9B.lC.2D.2.4

17、【解析】x,y,z均为整型变量,因此x/y结果为1,即z=0.9+l=L9,Z最终结果为1例1:(202*09-14)有以下定义:inta;Iongb;doublex,y;则以下选项中正确的表达式是(八)A)a%(int)(x-y)B)a=x!=y;C)(a*y)%bD)y=x+y=x【解析】参与运算的左右操作数均为整型,故A项正确,C项错误。B项是赋值语句,不是表达式。赋值运算符左边必须是变量,而不是表达式,而D项中x+y=x,错误。 二进制、八进制、十六进制转换成十进制:将二(八、十六)进制数的每一位数从高位到低位乘以2的n-1次塞,n为该位所在的位数。 二进制与八进制之间的转换:每个八进

18、制数字转换成3位二进制数字。 二进制与十六进制之间的转换:每个十六进制数字转换成4位二进制数字。例1:(202*-09)以下程序运行后的输出结果是202中。stdio.hemain()inta=200,b=010;printf(u%d%dn,a,b);)【解析】八进制数010转换成十进制数为8,按“d%d”格式分别输出a、b,即202*o9 .知识点:运算符的优先级级别由大到小:(逻辑)非算(术运算符)关(系运算符)(逻辑)与(逻辑)或条(件运算符)赋(值运算符)10 .知识点:强制类型转换运算符一般形式:(类型说明符)(表达式)功能:把表达式的运算结果强制转换成类型说明符所表示的类型例1:(

19、202*-04-06)表达式(int)(double)(52)+2.5)的值是4。【解析】(int)(double)(52)+2.5)-*(int)(double)2)+2.5)-(int)(2.000000+2.5)(int)(4.)-*4例2:以下程序运行后的输出结果是O。main()(inta;a=(int)(double)(32)+0.5+(int)1.99*2);【解析】oil是一个八进制的数,转为十进制则为1*8+1=9;+X是X先自增1再参与其他运算,所以先X自增I为IO再输出即为10,故选Co14.知识点:赋值表达式一般形式:变量名;表达式赋值运算符左边必须是变量,而不是表达式

20、。例1:(202*-03-14)若有定义:doublea=22jinti=0,k=18;则不符合C语言规定的赋值语句是(C)A)a=a+,i+;B)i=(a+k)=(i+k);C)i=a%ll;D)i=!a;【解析】a为double型,参与运算的操作数均为整型,故C项错误。例2:(202*-03-26)若有定义语句:inta=3,b=2,c=l;,以下选项中错误的赋值表达式是(八)A)a=(b=4)=3;B)a=b=c+1;C)a=(b=4)+c;D)a=l+(b=c=4);【解析】赋值表达式的左边必须是变量不能是表达式。而答案A中,(b=4)是一个赋值表达式。复合赋值运算符和表达式+=、一=

21、、*=、/=、=、=、&=、八=、I=例2:(202*-09T6)表达式a+=a-=a=9的值是(D)A)9B)-9C)18D)0【解析】赋值运算符的结合性是从右到左,a=9-*a=a-9=0-*a=a+0=0+0=0o故答案是D。15.知识点:位运算 按位与运算&规则:0&0=0Ofel=O1&0=0Ul=I 按位或运算I规则:OIO=O0l=l10=111=1 按位异或运算八12.知识点:逗号表达式 一般形式:表达式1,表达式2表达式n 求值过程:自左向右依次求解,最后一个表达式的值为整个逗号表达式的值。例1:(202*-04-14)设有定义:intx=2;以下表达式中,值不为6的是(D)

22、A)x*=x+lB)x+,2*xC)x*=(l+x)D)2*x,x+=2【解析】A项X=X*(x+l)=2*(2+l)=6;B项X+后,X的值为3,2*x的值为6,整个逗号表达式的值为6;C项x=x*(l+x)=2*3=6;D项x=x+2=2+2=4,整个逗号表达式的值为4。故答案是D。13.知识点:自增自减运算符+ii自加1后再参与运算i+i参与运算后再自加1-ii自减1后再参与运算1- i参与运算后再自减1+和-的运算对象只能为变量,不能是常量或表达式。例h(202*-09-06)若有定义语句:inta=5;则表达式:a+的值是50【解析】表达式a+的值是a未加1之前的值,即5。.当+或一

23、与Printf语句结合时,若+/-X的形式,则先自增/自减,然后输出:若X+/-的形式,则先输出X原值,在进行自增/自减操作。例2:(202*-03-26)有以下程序#includemain()intX=Oll;printf(%dn,+x);)程序运行后的输出结果是(C)A)12B)llC)10D)9程序运行后的输出结果是(八)A)21B)llC)6D)l0【解析】左移2位相当于该数乘以2、5把左边的运算数的各二进位全部右移若干位。高位补0,低位丢弃。右移一位相当于该数除以2。右移n位相当于除以20。例3:(202*-09-39)若有以下程序段intr=8;printf%dn,rl);输出结果

24、是(C)A)16B)8C)4D)2【解析】右移一位相当于该数除以2。81相当于除以2,等于4,故答案是Co16 .知识点:关系运算符和表达式例1:(202*-09-08)在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为非0时表示逻辑值“真例2:(202*-03-06)设X为int型变量,请写出一个关系表达式(x%3=0)&(x%7=0),用以判断X同时为3和7的倍数时,关系表达式的值为真。17 .知识点:逻辑运算符和表达式 逻辑运算符优先级从高到低:!、&、H 逻辑运算的真值表规则:OAO=O O1=1 求反运算IAO=IIAl=O规则:0=lI=O 左移运算规则:把左边的运算数的各

25、二进位全部左移若干位,高位丢弃,低位补0。左移一位相当于该数乘以2。左移n位相当于该数乘以2,例1:(202*-09-40)有以下程序stdio.hemain()shortc=124;c=c_D;piintf(%dn,C);)若要使程序的运行结果为248,应在下划线处填入的是A)2B)1248O&0248D)1相当于124乘以2,等于248。故答案是D。例2:(202*-04-39)有以下程序stdio.hemain()inta=5,b=l,l;t=(ak2)&(k2=k2kl)后,kl和k2的值分别为(B)A.0和1B.0和20CJo和11).10和20【解析】klk2为假,因此kl=klk

26、2结果0,逻辑与左边表达式为假,右边表达式不再处理,因此H结果为0,k2不变,仍为20例2:inta=2;则表达式(!a=l)&(a+=2)的值为0,a的值为2。【解析】!a为0,!a=l的值为0,&左边的值为0,则不再对右边的运算对象进行运算,所以a的值为2。若Il左边的运算对象的值为L则不再对右边的运算对象进行运算,整个表达式的值为U例2:(202*-03-17)若a是数值类型,则逻辑表达式(a=l)(a!=l)的值是(八)A)lB)0C)2D)不知道a的值,不能确定【解析】a的值有两种情况:a等于1或a不等于1。故逻辑表达式(a=l)(a!=l)的值为1。18.知识点:格式输入函数Pri

27、ntf()一般形式:Primf(“格式控制字符串”,输出列表);遇到控制字符,按照控制字符的规定输出,遇到非格式字符串按原样输出。 一般形式:*输入数据宽度长度类型 *表示该输入项,读入后不赋予相应的变量。 输入数据宽度:用十进制数指定输入的字符数。例4:(202*-09-07)有以下程序stdio.hemain()intx,y;SCanfC%2d%ld”,&x,&y);PrintfC%dnx+y);程序运行时输入:程序的运行结果是一345790【解析】2d输入的数据宽度为2,X的值为12,y的值为34567,x+y=345790例5:(202*-04-16)若有定义语句:doublex,y,

28、*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是(C)A)SCanf(%f%f,x,y);B)SCanf(%f%F,&x,&y);C)scanf(u%lf%le,px,py);D)scanf(u%lf%lf,x,y);【解析】A、D项地址列表,应为&x,&y;x、y为double型,格式控制字符串不是f%f,故B项错误。当定义的变量类型和SCanf中“格式符”类型不致时(这里只限定在字符型和整型两种类型,其他数据类型不可以。)整型和字符型之间通过ASCALL可以相互转化。例6:(202*-03-12)有以下程序(说明:字符0的ASCn码值为48)main()charcl,c

29、2;scanf(,%d,cl);c2=c1+9;printf(1,%c%cn,cl,c2);若程序运行时从键盘输入48,则输出结果为(09)。C)m=123,n=456,p=789D)123456789【解析】SCanf(m=%dn=%dp=%d”,&m,&n,&p);格式控制字符串中有非格式字符串,则按原样输入,故答案是A。例2:(202*03-26)有以下程序段charname20;intnum;scanf(name=%snum=%d,name;&num);当执行上述程序,并从键盘输入:name=Lilinum=1001v回车后,name的值(八)A)LiliB)name=LiIiC)Li

30、linum=D)name=Lilinum=100l【解析】SCanf中格式字符串的非格式字符串原样输入,如其中的name=和num=,所以接受到的name值是后面的Lili,num值为IOo1。故选A。(3)在输入字符数据时,若格式控制字符串中无非格式字符,则认为所有输入的字符均为有效字符。空格会被当作字符赋值给变量。例3:(202*-04-23)有以下程序stdio.hemain()intal,a2;charcI,c2;scanf(4i%d%c%d%c,a1,&cI,&a2,&c2);printf(u%d,%c,%d,%c,al,cI,a2,c2);若想通过键盘输入,使得al的值为12,a2

31、的值为34,CI的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是(以下_代表空格,代表回车)A)l2a34bB)12_a_34_bC)12,a,34,bD)i2_a34_b【解析】空格会被当作字符赋值给变量,故B、D错误;C项中逗号会被当作字符赋值给变量,故C项错误。(4)格式字符串【解析】输入48,则cl=48,c2=48+9,以字符输出Cl和c2,则为输出ASCn码为48和57对应的字符,分别为O和9o20 .知识点:字符输出函数putchar()一般形式:putchar(ta,);putchar(t10);21 .知识点:字符输入函数getchar()

32、一般形式:getchar();或Ch=getchar();例1:(202*-03-15)有以下程序stdio.hemain()chara,b,c,d;scanf(u%c%c&a,&b);c=getchar();d=getchar();printf(tl%c%c%c%cn,a,b,c,d);)当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是(B)A)1234B)12C)12D)12334【解析】以c格式读取一个字符,以geichar()形式也是读取一个字符。空格会被当作字符赋值给变量。所以,a=,b=,2t,c=,nd=3togelchar经

33、常作为While循环条件,判断输入哪一个字符时,循环结束。例如,输入字符串,直到输入0,程序结束,则可写成While(gctcha()!T()例2:(202*-03-26)有以下程序段main()(while(getchar()!=n);以下叙述中正确的是(C)A)此while语句将无限循环B)getchar()不可以出现在while语句的条件表达式中。当执行此WhiIe语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行【解析】while条件表达式getchar()=H只要输入的字符不是回车,就一宜执行循环,而循环内是一个空语句,所以按回车键程序才能继续

34、执行,选择C。第二课选择结构与循环结构循环结构程序设计菖典环(循环结束)tort-Abreak语句疑转虐旬C句直接进入下次借环判断秀环提套外层每循环一次,内层循环全部执行直到结束if(表达式),其中表达式可以是任意合法的C语言表达式。例1:(202*-09-19)下列条件语句中输出结果与其他语句不同的是(D)选择结构程序设计分支舞椅本课重要知识点:1.知识点:if语句y为0。注意和if(x=y)t=x;x=y;y=t;区别。当多个if(表达式)单分支形式并行出现时,其执行顺序是:先判断第一if单分支的条件,如果为真,执行其后面的语句,执行完后,继续向下执行。判断第二个if单分支语句,依次类推。

35、如果第一个if表达式的值为假,则不执行其后的语句,而去判断第二个if单分支条件。例1:(202*-03-26)有以下程序main()intx;scanf(%d,&x);if(x15)printf(%d,x-5);if(x10)printf(%d,x);if(x5)printf(%dn,x+5);若程序运行时从键盘输入12v回车,则输出结果为7【解析】输入12,比较不大于15所以不执行if(x15)内的语句;大于10执行Prinlfc%d”,x);输出大于5执行Prinlfr%dx+5);输出17。2.知识点:if语句的嵌套内嵌结构中,else总是与前面最近的且未曾配对的if语句配对,组成一对i

36、f-clse语句。例2:(202*-09-18)有以下程序stdio.hemain()inta=1,b=0;if(!a)b+;elseif(a=0)if(a)b+=2;elseb+=3;printf(%dn,b);程序运行后的输出结果是(八)A.if(a)Primf(dn,x);elseprinlf(a%dnM,y);B.if(a=0)Primf(%dn,y);elseprintf(w%dnw,x);C.if(a!=O)printf(*%dnw,x);elseprintf(%dn,y);D.if(a=O)printf(u%dnw,x);elseprintf(w%dno,y);【解析】作为if语

37、句的条件,a等价于a!=O,因此A和C是等价的。例2:(2O2*-O3-26)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是(D)A)必须是逻辑值B)必须是整数值C)必须是正数D)可以是任意合法的数值【解析】表达式不限于关系表达式、逻辑表达式,也可以是任意的数值类型,其中非0为真,0为假。故选D。对于单个if语句,其后跟随的受if控制的只能是1个语句或者是1个复合语句。例1:(202*-0917)设有定义:inta=l,b=2,c=3;以下语句中执行效果与其它三个不同的是(C)A)if(ab)c=a,a=bb=c;B)if(ab)c=a,a=b,b=c;C)if

38、(ab)c=a;a=b;b=c;D)if(ab)c=a;a=b;b=c;【解析】对于单个if语句,其后跟随的受if控制的只能是1个语句或者是I个复合语句。故C项,if(ab)条件成立时,语句c=a;才被执行,而无论if(ab)条件成立与否,语句a=b;b=c;都会被执行。A、B、D项,只有if(ab)条件成立时,语句c=a;a=bjb=c;才被执行。例2:(202*-03-26)以下程序运行后的输出结果是200main()intx=10,y=20,t=0;if(x=y)t=x;x=y;y=t;printf(%d%dn,1,x,y);【解析】x=10,y=20,所以x=y为false,t=x;不

39、执行,直接执行x=y;y=t;x为20,例1:(202*-09-19)若有定义语句intabdoublex;则下列选项中没有错误是(C)A)switch(x%2)B)switch(int)x%2.0)case0:a+;break;(case0:a+;break;case1:b+;break;casel:b+;break:default:a+;b+;default:a+:b+;)C)switch(int)x%2)D)switch(int)(x)%2)case0:a+;break;case0.0:a+;break;case1:b+;break;case1.0:b+;break;default:a+

40、;b+;)default:a+;b+;)【解析】SWiICh语句的圆括号中的表达式的值必须是整型或字符型,不能为实型。X是double型,x%2不合法,A项错误。(int)x%2.0不合法,B项错误。(int)x%2值为整型,故C项正确。CaSe后面的表达式可以是求得整型量和字符型量的常量表达式,故D项错误。例2:(202*-09-18)有以下程序stdio.hemain()intc=0,k;for(k=l;k3;k+)switch(k)defaultx+=k;case2:c+;break;case4:c+=2;break;A)0B)lC)2D)3【解析】else总是与前面最近的且未曾配对的if语句配对,组成对ifelse语句。即elseb+=3;与if(a)b+=2;配对。if(!a)不成立,不执行b+;elseif(a=O)不成立,不执行if(a)b+=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号