《第2-5-9章-习题与答案.docx》由会员分享,可在线阅读,更多相关《第2-5-9章-习题与答案.docx(40页珍藏版)》请在三一办公上搜索。
1、第2章数据类型和运算符习题及解答选择跑.1 .下列是用户自定义标识符的是AJ1.B)3_xyOintD)1.INE-3答案:A解析:C语言规定用户标识符仲英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B).D)是错的:此外,C语言不允许用户将关犍字作为标识符,而选项C)选项项中的int是C语言的关键字。2 .C语言中最简单的数据类型包括)整型、实型、逻辑型B)整型、实型、字符型O整型字符型、逻辑型D)字符型、实型、逻辑组答案:B解析:本题考有C语言的数据类型。在C语言中,没有+门的龙卷型数据类型,可以用O和1米表示逻辑值.所以,在本超的选择答案中,不应该包括逻辑型.3
2、 .假定int类型变量:占用两个字节,其有定义:intX10=0,2,4:,则数组X在内存中所占字节数是A)3B)6C)10D)20答案:D解析:X数组共有IO个元素,在花括弧内只提供3个初值,这表示只给的面的3个成员赋值,后7个元素的伯为0,所以,一共有20个字节。4 .以下选项中不正确的实里常更是)1.6O7E1B)0.7201eC)-77.77D)234e-2答案:B解析:实型常心表示时字母E或e前必须行数字,其后数字必需为整数,故B错,5,若变埴己正确定义并赋值,以下符合C语言语法的表达式是)ar=b1.B)a=b=c+2C)int18.5%3D)a=a7=c*b答案:B解析:选项A中
3、包含一个不合法的运算符*:=,;选项应改为(int)18.5%3:选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变1不能是表达式或常量等.因此正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b,6 .下列可用于C语言用户标识符的一组是Avoid,define,WORDB)a3_b3,_123,CarC)For,abc,IFCaseD)2a,DO,sizeof答案:B解析:C语言规定标识符只能由字母、数字和下划设三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D).C诺音中还
4、规定标识符不能为C语言的关犍字,而选项A)中Void为关谯字,故排除选项A).7 .。语言中运算对象必须是整型的运算符是A)%=B)/C)=D=答案:A解析:C沿古规定:取余运W符的运算对象必须是整型,笑合运算符“%=”中包含%运算,它的运算对象也必筑是整型。8 .若变附a,i已正确定义,且i已正确赋值,合法的语句是)a=-1B)+i:C)a-a+=5:D)a=i11t(i):答案:B解析:选项A是一个表达式,因为缺少分号,所以不是语句;JiJfiO包含一个不合法的运算符“+=”;选项D)应改为a=(int)i:。9 .设x.y和Z都是int型变fit且x=3.y-4.z=5.则下面表达式中.
5、值为0的表达式是A)x&yB)x=yC)x+y&y-zD)!(xyftft!z1)答案:D耨析:该题写查逻辑与“44”和逻辑或“”以及逻辑非“!”符号的用法.选项A)即舞S为其,选项B)即3是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接秒止执行逻辑或右半部分程序,因为X的值为真.此时选项C)变为UfiT为IX,选项D)不用计算,括号内龙辑或右边的值为1.因而括号内的值为1,再进行逻辑非运算得0.10 .有以下程序ain)(inti=1.,j=1.,k=2:if(j1.k+)Ai+Oprintf*%d,d.%dn,i,j.k):)执行后输出结果是)1,1,2B)2.2.1O
6、2,2,2D)2,2,3答案:C解析:该题目的关键是要搞清丸”&”和两个逻辑运比符的运算功能,运算符和“丁是双目运算符,要求有两个运舞量。且规定逻靴与运算中,只有前面运算盘的值为其时.才需要判别后面的值,只要前面为假,就不必判别后面的(ft.而逻辑或则为只要前为我,我不必判别后面的伯:只有前为假,才判别后.本Sfi中尸+值为ft,不进行k+的运算,所以k的他保持不变,11 .设iniX=1.y=1;表达式(!xIy-)的值是)0B)1C)2D)-1答案:B先计算!值是0.然后再计算y由于是后缀运算符.所以y在本次是算中的值仍然是I,最后计算O1.11.值为1.12 .若有说明语句:CharC=
7、72:则变做CA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法C的值不确定答案:A解析:C语言的字符型常收中,允许用种特殊形式的字符常量,就是以,个开头的字符.其中“ddd”表示用ASCn码(A途制数)表示一个字符,本题中的Charc=72,即表示占一个字符的变Stc的AsCn眄值.13 .在C语吉中,退恪符是A) nB) tC) fD) b答案:D解析:C语言的转义字符见卜表所示.转义字符转义字符的意义n回车换行t横向跳到下一制表位置v竖向跳格b退格rIHI车f换页W反制线符“”,单引号符M在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”.在求设轨
8、值时,用O表示逻辑表达式值为“直”,又用O表示逻辑表达式值为mir*)10B)01O非0非0D)11答案:A解析:在C程序中,判断逻辑值时,用非。表示真,用0表示假,逻辑表达式计弊时,逻,表达式倩为我是用1表示的,若逻辑表达式的值为假,则用0表示。15.字符型数据在机器中是用ASCn码表示的,字符“5”和“7”在机器中表示为A)IO1.oOon和01110111B)O1.(KX)IoI和O1.1.oo(H1.C)OOI1.O1.OI和OO1.Io1.1.1.D)O1.100ioif1.ioi100i1.1.答案:C解析,为便于表示各种数据类型,机器中采用了BCD码(表示十进制数人ASCII码(
9、字符型)、汉字机内码等等各种码.数据我用了补码、原码和反码为衣示形式.实型数据表示方法有浮点法和定点法等,考生需熟练掌旌各种码的含义,并用之来计算、比较.需要提出的是,在机器内部,所布码行是由二进制编码而成的,它都是以二进制存储在机器之中的。字符“5”和“7”的ASCI1.的值分别为53和55,其二进制形式分别为(KnK)Hn4H00110U1.16 .若已定义:inta=25,b=M.c=1.9;以下三目运算符(?:)所构成谙句的执行后a=25fcSb-=2Ac7printf(*a=%d,b=%d,c=dn*,a,b,c):printf(ma=%d,b=%d,c=;程序输出的结果是A)*a=
10、25,1.=13,c=19B)*a=26,b=14,C=19O附#a=25,b=13.c=19D)a=26,b=M,319答案:C解析:此膜综合考性多种运算符的使用:首先计算表达式a=25SAb-=2c的ffi.很容易百出b-Y=2的值为f3因此表达式为假;根据三目运舞的特点,由于前面的表达式为低.应执行Printf(U#a-%d,b-%d.c*na.b,c),应注意a的值依然为25.b的值经过b一运打后改变为13.而c的(ft仍为19.17 .若有定义:inta=7:f1.oat=2.5,yX.7:则表达式x+喊3*(int)(xy)%21的值是)2.500000B)2.750000O3.5
11、00000D)0.000000答案:A解析:x+y的值为实型7.200000,经瓢制类型转化成整型7。a*3的伯力1,1*7的值为7,7%2值为1。4的值为0,而作0.25,因而为两个整数相除的结果为整数.舍去小数部分。与实型X相加.股终得结果为2.500000.18 .有如下程序段inta=14,b=15,x:charc=A,:x=at&b)&(ctureB)fa1.seC)0D1答案:D解析:在C谓当中逻辑运算符有4个,它们分别是:!(逻辑非)、(逻辑或,&k(逻辑与)、(异或).在位运算里面还有&(位与)、I(位或)的运算.本SS考查逻辑与运算符的用法,在表达式X=(aA&b)&Ac,B
12、,);中,先判断aft&b条件,逻辑与条件的两边都要保证为1,即H和b都成立,当然c=O%DJ&答案:C解析:关系运算符、逻辑与和簿术运算符总算术运算符的优先级最高,故选C).20 .以下选项中,与k=n+完全等价的表达式是Ak=n,n=n+1.B)n=n+1.,k=nCk=+nD)k+=n+1.答案:A解析:k=n+的意思是先将n的值赋给k.然后n的值再加】,选项A)符合即意:选项C)是先使n的假加1,然后再赋使给k;选项D等价于k=k+(n+1.21.以下选项捺误的是)main(intx,y,z;B)main()i11tx,y,z;X=Ojy=X-I:z=x+y:)x=0,y=x1.;z=
13、x+y:C)main(D)main(intx;inix,y,z;inty;x=O:y=x+1.:x=0.y=x+1.;z=xy,)7.=x+y;答案:D解析:在选项A中的语句没有一条是错误的。选项B)和O中有一个迎号表达式.选项B)中是X=O.y=x”;在选项C中是y=t1.,z-x,y:所以B)和C)中也没有怫误.选项I)中的最后一条语句是以逗号结束的,而C语吉中不能用逗号作为一个语句的结束标志,林一条语句最后应该是分号,所以D)选项中的程序是错误的。22 .以卜4个选项中,不能看做一条语句的足):Ba=5,b=2.5,c=3.6:C)ifaif(b!=5)x=2;y=6:答案:D解析:选J
14、SD为两条语句.23 .下列运算符中优先缴级高的是.)B)C)&4D)!=答案:B24 .判断char型变址Ch是否为大写字母的正确去达式是。R)A=三,A,)(C1.K=Z)C)(CII=,)4(CH=,Z,)D)CA=ch)答案:C25 .设inia=12.则执行完语句a+=a-=a*a后,a的值是一.A)552B)261O141D)-264答案:D26 .设a=5,b=6,c=7,d=8,b=2,n=2,执行(m=ab)A(n=cb)后n的值为一,A)1.B)203D)4答案:B27 .逻辑运灯符两的运算对&的数匏类型.A)只能是。或1B)只能是。或非O正数C)只旎足拓型或字符里数据D)
15、可以是任何类型的数据答案:D28 .正确衣示”当X的取伯在1,10411200,210范田内为此,否则为假”的表达式是。)(X=1.)4(X=200)4ft(X=1.)II(X=200)I(X=1.)&(X=10)I=200)&(X=210)D)=1)I1.(X=200)I(X=210)答案:29 .设x,y和Z是int型变址,且x=3,yM,z=5,则下面表达式中值为0的是.A),&y,B)x=yOxy+z&iy-zD)!(xy)SA!z!i1)答案:D30 .已知xM3,ch-.V,尸0;则表达式x-y&ichC)*D)483答案:D33 .若有以下定义chars=092:则该语句.R)使
16、S的值包含一个字符B)定义不合法,S的值不确定C)使S的(ft包含4个字符D)使S的依包含3个字符答案:B34 .下列正确的字符常量是。.CB.,VC、UD答案:C下列不正确的字符申常瞅是,A)ABCB)VC)SDF3rD)答案:B35 .若定义inta=7;f1.oatx=2.5;y=4.7:则表达式xa%3*(i11t)(x+y)%24的便是A)2.500000B)2,750000O3.50000D)0.000000答案:R36 .iS有说明:Charw;intx;f1.oaty:doub1.ez;则表达式w*x+z-y值的数据类型是)intB)f1.oatC)doub1.eD)char答
17、案:C37.执行下列语句int8=3,1e=-(一8);后a,b的值分别是.A)2和-2B)2和-3C)3和-2D)3和-3答案:D38.执行下歹IJiH句f1.oatf=3.9;inta=4;f=(int)f+a;后f的ft是.A)7.9B)7.OOOOOOC)7.0D)出错答案:B39 .执行下列谙句intf=3.g,h:g=:h-*:后f和h的值是A)5和5B)6和5C)5和6D4和5答案:A40 .下列C语句格式错的是,)inta=10:B)inta,b.z:C)a=2:b=3:D)z=a*b;答案:C41 .下列变做定义中合法的是.A)int_a=1.-.e-i;B)doub1.eb
18、=1.+5e2.5:C)1.ongx-12.5;D)f1.oat2_and-1-e-3:答案:C-12.以下符合C语言语法的实型常疏,A)1.3E0.5B),7E-2C)3.14159ED)E5答案:C43 .以下一符合C语言i?J法的赋值表达式.A)d=8+e+f=d+aB)8+e=f=dC)d=f=8+e+D)d=8+e+=d+7答案:C44 .设有以下变量定义,并已赋确定的值charw:intx;f1.oaty:doub1.ez;则去达式:w+x+z/y值的数据类型为A)charB)intC)f1.oatD)doub1.e答案:D45 .若X为int类型,则下面与逻辑上达式!x等价的C语
19、言关系表达式是A)x=1.B)x!=1.C)x=0D)x!=0答案:C-16.设inta=3:下列表达式值等于。的是.A)a&(a0)B)!aaC)a=aD)a=a答案:C47.假定有以下变量定义:intk=7,x=12s则能使值为3的表达式是.A)x*=(k%=5)B)x%=(k-1*5)C)x%=k-k5D)(x*=k)-(k%=5)答案:D48 .设X和y均为int型变1.it,则语句:x+=y:y=x-y;x-=y:的功能是.R)把X和y按从大到小排列B)把X和y按从小到大排列C)无确定结果D)交换X和y中的假答案:D49 .下面能正确表示整数X的绝对值大于等于5”的C语古表达式是.A
20、)XHe1.B)abs(x)HOC)abs(x)=OD)abs(int(x)=0答案:C50 .以下所列的C潘吉常St中,错误的是.A)OxFFB)1.2e0.5C)1.0/2.0D)72答案:C二填空题1 .在CiA古中用关犍字-1.1.1.定义整型类型变展,用关键字门。at定义总耕位实型变最,用关键字doub1.e定义双制质买型变1匕答案:【1】ini解析:C语音中规定用关犍字int定义整型变肽.2 .3.5+1/2的计算结果是【2】答案:【2】3.5解折:1/2的值为0,故3.5+1/2的值为3.5。3 .设y是int型.请写出y为奇数的关系表达式DJ1.答案:【3】(y2)=1.或(y
21、W!=04 .设inta=5,b=6,表达式:答案:【5】1234解析:在与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。6 .以下程序的险出结果是囱.Oain)(inta=0;a+=(a=8);printf5)printf(dn*m);e1.seprintf(*%dn*,-);)答案:【9】610 .设有inix=8:则表达式(+x*3)的俏足【101答案:【10】3H.设X,y,z和k都是int型变fit,则执行表达式:X=(y=4,z=16,k=32)后,x的值为(11.,答案:【U】32】2.设ini类S!的数据长度为2个
22、字节,则unsignedint类鞭数据的取值范树是回,答案:【12】0至6553513 .执行以下语句后b的值为【13.inta,b,c;a=b=c=1.;+a1.+MA+c:答案:【13】114 .设intx三2.y=1.:则表达式Qx丫一)的值是1141答案:【14】15 .设inia=5.b=2.c=3,(1=4;则表达式ab?a:cd?c:d值为答案:【15】516 .若有以下程序段,intc1.=1.,c2=2,c3;c3=1.0c2*c1.:则执行后,c3的伯是【16.答案:【16】0.517 .有程序:nain()(inty=3,x=3,Z=I;printf(-%d%dn*,(+
23、xy+,z+2);)运行该程序的输出结果是3J.答案:【17】3318 .健正确表示逻辑关系:飞5或aW-r的C语言表达式是.答案:【18a=5a-119 .执行下面程序段:inta=10,b=9,c:c=(a-=(b-5);c=(a%1.1.)*(b-3):则变俄b的值是3J.答案:【19】920 .假定w、x、八Z、均为拈型变地,且w=1.,x=2,y=3,z=4则执行语句:11f(wx)?r:X:m-(my)?m:y:m=(mz)?m:z;.的值是120.答案:【20】1第5章函数习题及解答选界题.1 .若已定义的函数有返回值,则以N关于该函数调用的叙述中错误的是A)函数调用可以作为独立
24、的谙句存在B)函数网用可以作为一个函数的实参O函数调用可以出现在去达式中D)函数调用可以作为一个函数的形卷答案:D解析:本遨综合考查函数的两用方式.函数的形参和实参具有以下特点:形与变请只有在被调用时才分配内存单元,在调用结束时,即刻群放所分配的内存单元,因此,形参只有在南故内部有效.因数调用结束返回主调函数后则不能再使用该形参变盘.实参可以是常出、变量、表达式、函数等.无论实参是何种类型的出.在进行函数调用时,它们描必须具有确定的值.以便把这些值传送给形参.因此府预先用赋值,输入等办法使实多获得确定伯。实参和形参在数网上,类型上,顺序上应严格一致,否则会发生“类型不匹配”的错设.函数调用中发
25、生的数据传送是单向的.即只能把实参的伯传送给形参,而不能把形参的伯反向地传送给实参.因此在函数网用过程中,形多的做发生改变,而实卷中的俏不会变化。2 .有以下程序f1.oatfun(intx,inty)(return(xy);ainO(inta=2,b=51.c=8:printf*%3.Ofn*,fun(int)fun(ac,b),a-c):)程序运行后的输出结果是A)编注出错B) 9C) 21D) 9.0答案:B耨析:本超考比函数的综合知识.首先,我们可以利川强制转换类型转摸运算符将一个友达式转换成所需类型.1.Ah(doub1.e)a是将a转换成doub1.e类型:(int)(x+y)是将
26、x+y的伯转换成整型.本题可按部就班班逐步送尊:fun(int)fun(a*c,b),-c)fun(int)fun(10,5),2-8)fun(int)15.000000,-6)fun(15,-6)93.若有以下两用语句,则不正确的fun函数的首部是ain;)A) voidfun(int,C)voidfun(intp,intx)inth41)int*s)D)voidfun(intn,inta)B) voidfun(ints,答案:D解析:用数定义的一般形式为:类型说明符函数名O(类型说明语句)根据fun函数的网用语句可知,fun晓数的第二个参数是一个地址值.1.以下说法正确的是A)C语言程序总
27、是从第一个的函数开始执行B)在C谙音程序中要利用语数必须在三ainO函数中定义C) Ci4古程序总是从Inain()函数开始执行D)C语言程序中的IreinO函数必须放在程序的开始部分答案:C解析:C谙吉的程序是由主函数main()开始运行,由主函数来词用其他函数.所以.选项Q错误.C语言中定义的函数必须是并列的,不能在一个函数中定义其他的数.选项B)错,用数必须先定义后使用,在调用函数以前要定义函数,而ainO函数不必放在最前面,故选项D)错。5.以下程序中函数SOrt的功能是对U数组中的数据进行由大到小的排序voidsort(inta,intn)1.inti.j.t;for(i=0;in-
28、1.;i+)for(j=i*iJifait=ai:ai=aj:aj=t:)BainO(intaa10=1,2.3,4,5.6.7.8.9,IO1.i;sort:for(i=0;i:PrinIf(*n);)程序运行后的输出结果是A) 1,2,3,15,6,7,8,9,10,B) 10,9,8,7,6,5,4,3,2,1,C) 1,2,3,8,7,6,5.4,9.10,1,2,10,9,8,7,6,5,4,3.答案:C解析:C语言中,实冬变量和形参变*之间的数据传递是单向的“值传递”方式,指针变推作的数金也要遵值这规则谓用函数不可能改变实参指针变St的Gi但可以改变实参指针变盘所指变破的值.6 .
29、在调用函数时,如果实卷是筒单的变最,它与对应形卷之间的数据传递方式是)地址传递B)单向伯传递C)由实由传形件,再由形多传实卷D)传递方式由用户指定答案:B解析:如果实参是简成变坡,它与对应形参之间的数据传递方式魁由实参传给形参.而形参值的改变不能改变实卷的值。7 .以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)mainO函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义答案:A解析:本即踪合考查C语古的概念部分,关于C语吉,我的应该了解以下必须要掌握的茶础知识:C程序是由函数构成的.一个函数由两部分组成:函数的首部和函数体.一个C程序总
30、是从三ain函数开始执行的,而不论main区数的整个程序中的位置如何(main函数可以放在程序般开始,也可以放在程序量后,或写在一些函数之前,在另一些函数之后)。C程序在书写上表现形式比较自由.一行内可以写几个谙句,一个语句可以分写在几行上.每个语句和数据定义的最后必须有一个分号.8 .若有函数内部说明:inta34:则数组a中各元素A)可在程序的运行阶段得到初值OB)可在程序的编译阶段得到初使OO不能得到确定的初(ftD)可在程序的编详或运行阶段得到初伯O答案:C解析,我们可以把二维数组的常出表达式在做足矩阵或者表格的行数与列数.要注意每个元案有两个下标,第一个是方括号中的下标代龙行号,称行
31、下标:第二个是方括号中的下标代表列号,行下标和列下标总是从0开始的,:缎数组在不赋初值时,不能得到确定.9 .有以下函数charfunchar*p)(returnp;)该函数的返回值是)无确切的值B)形参P中存放的地址伯O一个略时存储单元的地址D)形一P自身的地址值答案:B解析:本题考我函数返回做的知识.函数返1“1值是通过函数中的return语句获得,re1.urn语句中的衣达式的值就是所求函数的值.此表达式的值必须与函数首部所说明的类型一致.若类型不一致.则以函数值的类型为准,由系统进行转换.10 .以下正确的说法是A)定义函数时,形卷的类型说明可以放在用数体内8) re1.urn后边的值
32、不能为表达式O如果函数值的类型与返回值类型不一致.以函数值类型为准1)如果形参与实参类型不一致,以实参类型为准答案:C解析:选项A)中定义南数时,形参的类型说明应该放在形参表列内说明。老版本C语言中.对形参类型的声明是放在函数定义的第2行.也就是不在第1行的括号内指定形参的类型,而在括号外单独指定.选项B)中return后面的位可以是个表达式.选项D)中实参与形翱的类型应相同或瞅伯兼容。如果实参为整型而形多为实型,或者相反,则按不同类型数值的赋值规则进行也换,以形卷类型为准011 .有以下程序intf(int11)ifreturn1:e1.sereturnf(n-1.+1:)aain)(int
33、i,j=0;for(i=1.;ij+=f(i:rintf(%dn*,j);程序运行后的输出结果是A) B) 3C) 2D) 1答案:B解析:在main函数中,Xtf(1)I1.1.f的伯进行了累加,f=1f=f(1)*1=2最后,j的值为1+2=312 .在C语言中,变心的胞含存储类别是A) autoB) staticC) externD)无存储类别答案:A解析:auto变成:无StatiC声明的局部变显.用HUto作存储类别的声明时,可以不写au1.。,存储类别总含确定为auto(自动存储类别)。是动态存储方式,大多数变量是自动变量。用SuniC声明的局部变电是峥态局部变用.函数调用结束后静
34、态局部变量占据的内存存催单元空间不择放.局部变盘保留原值,下次调用时可以维续使用该值.用extern声明外部变址.外部变量即全局变量,可以用extern小明来改变全局变Ift的作用域,实际上,关键字aui。可以省略,auto不写则除含确定为“自动存储类别”,它属于动态存储方式。13 .若有以下程序Sinc1.udevoidfintn);ainO(voidfi11tn);f(5);Jvoidf(intn)(printf*%dn*,n):)则以下叙述中不正确的是AJ若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数r进行说明,则在主闲数和其后的其他函数中都可以正确
35、调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对f函数更狂说明D)函数f无返回值,所以可用VOid将其类型定义为无返回伯型答案:C解析:C语言规定.一个函数中调用另一个函数(即被调用函数)需要具饴的条件有:首先被调用的函数必筑是己经存在的函数(是速两数或用户自己定义的函数),如果使用库函数,一般还应该在本文件开头用轲nc1.ude命令将函数调用有关库场数时所需要到的僧息“也含”到本文件中来.如果使用自定义函数,而且该函数与词用它的函数在同一个文件中,一般还应该在主网函数中对被调用的函数作声明.即向编译系统声明将要调用此函数,并将有关信息通知端详系统,在C语言中,可以使用函数原型进行
36、声明,函数原型的一般形式为:函数类型函数名(参数类里1.参数类型2)或函数类型函数名参数类型1参数名I,参数类型2参数名2)11.下列程序的运行结果是voidfun(int*a,int*b)(intk:k=a;a=b:b=k;)ain)(inta=3,b=6.*x=a,y=b;fun(x,y):printf%d%,a,b);)A) 63B) 36C)编诉出错D)OO答案:H解析:函数的卷数不仅可以是整型、实型、字符型等数据,还可以是指针类型,它的作用是将一个变质的地址传送到另一个函数中去.在本题解析中,我们试图将这一问题解拜清楚!大家可以考虑一下利用下面这函数可不可以实现a和b的互换.swap
37、intxy:(intt:t=x:x=y:y=t:15 .已定义以下函数fun(char*p2,char*p1.)(hi1.c(*p2=*1.)!=0)(p1.+p2J)函数的功能是A)将P1.所指字符申城制到成所指内存空间B)将PI所指字符耶的地址赋给指针p2O对PI和p2两个指针所指字符串进行比较0)检21.和p2两个指针所指字符串中是否有O答案:A解析:在本题中,BhiIe(!=0)有两个作用,一个是判断条件是否成立以决定是否再次进入循环,另一个作用是判定的先完成*p2-p1.该处的作用是把PI所指存储单元的字符逐一送p2所指存储通元中,直到P1.所指单元内容为0为止。16 .有以下程序v
38、oidss(char*s,chart)(whi1.ea+,A,:s+:)ItainO(charstr1.100-*abcddfefdbd*-1c=d:ssabc!)DfefDbDOabcAAfefbAD)Abcddfefdbd答案:B解析:在内存中,字符数据以AsCu码存储,它的存储形式就与整数的存储形式相类似.C语言使字符型数据和径型数据之间可以通用。也可以对字符数据进行算术运獴,此时相当于时它们的AsC1.I码进行算术运算,在本题中,S+相当于s=s+1.,即让S指向数组中的下一个元索17 .以下存储类型只有在使用时才为该类型变质分配内存的是.A)aui。和S1.a1.iCB)auio和r
39、egisterOregister和StatiCD)siaiic和extern答案:B18 .设有以下函数:fun(intx)(i11ty=0;staticintz=2;y+;z+;return(x+y+z);)若在下面主程序中网用该函数,则怆出结枭是.三ain()(intx=3.k;fork=1.;k=3:k+)printf(dn,fun(x):)A)7B)7C)7D)78910713答案:A19 .运行下面程序:intffintn)staticintf=1.:f=f*n:returnf;)ain()(intk;for(k=1.;k4;k+)printf(*%dn*,ff(k):则输出结果是O
40、)1B)1C)1D)I22226633244答案:B20.一个C程序的执行毡从.R)本程序的Inain函数开始,到main函数结束B)本程序文件的第一个函数开始.到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束)本程序文件的第一个函数开始,到本程序main函数结束答案:A二康SM.1.设在主函数中有以下定义和函数两用语句,且fun函数为Void类型:请写出fun函数的首部.111要求形参名为b,ain)(doub1.es1022:intn:IIfun(三);(t)答案;【1】voidfun(doub1.esJ22j)解析:本题中,为了明确表示“不俗回值”.可以用void定义“无类型”(或称“空类型”这系统就保证不使函数带I可任何伯,二维数组的第维可以省略.2 .若给fun函数的形参S传送字符申:635佃bcc”(其中表示空格字符),则南数的返回值是3Pinc1.ude1.ongfun?-1.:1.:ifs=三,+*s=三,-)s+;for(n=0;isdigit(