新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集参考答案_第1页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集参考答案_第2页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集参考答案_第3页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集参考答案_第4页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集参考答案_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

新编C程序设计教程习题集第1章习题一.选择题.用高级语言编写的源程序要转换成等价的目标程序,必须经过【】cA)汇编B)编辑〇编译D)解释.计算机硬件能直接识别和执行的只有【 】DA)高级语言B)符号语言C)汇编语言D)机器语言3,在同等情况下,计算机执行【 】速度最快。BA)高级语言程序B)机器语言程序〇汇编语言程序D)源程序.以下说法错误的是【 】CA)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序.以下叙述中错误的是【 】AA)用户所定义的标识符允许使用关键字;B)用户所定义的标识符应尽量做到“见名知意”;C)用户所定义的标识符必须以字母或下划线开头;D)用户定义的标识符中,大、小写字母代表不同标识;TOC\o"1-5"\h\z.下列选项中属于合法C语言关键字的是1 】D。A)VARB)intergerC)floaTD)default.下列字符串不是标识符的是【 】DA)sumB)AverageC)Day_nightD)M.C)JOHN.正确的C语言自定义标志符是[ 】AoA)file_bak B)abc(10)C)continue D)class+3.ー个C程序的执行是从【 】AA)本程序的main函数开始,到main函数结束;B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束;C)本程序的main函数开始,到本程序文件的最后一个函数结束;D)本程序文件的第一个函数开始,到本程序main函数结束;.以下叙述中正确的是[ 】AA)构成C程序的基本单位是函数B)可以在ー个函数中定义另ー个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义.以下叙述不正确的是[ 】DA)ー个C源程序可由一个或多个函数组成;B)ー个C源程序必须包含ー个main函数;C)C程序的基本组成单位是函数;D)在C程序中,注释说明只能位于一条语句的后面;.以下叙述中正确的是[ 】CA)用C语言实现的算法必须要有输入和输出操作;B)用C语言实现的算法可以没有输出但必须要有输入;C)用C程序实现的算法可以没有输入但必须要佇输出;D)用C程序实现的算法可以既没有输入也没有输出;.以下说法错误的是【 】CA)ー个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是【 】BA)有零个输入或多个输入B)高效性C)有穷性D)确定性二.判断题ー个C程序的执行总是从该程序的main函数开始,在main函数最后结束。[く]main函数必须写在ー个C程序的最前面。[X]ー个C程序可以包含若干的函数。[セ]C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。[イ]C程序的注释只能是一行。【X】C程序的注释不能是中文文字信息。【X】可以使用TurboC来编译和连接ー个C程序。[イ]可以使用TurboC来运行一个C程序。[マ]可以使用TurboC来实时调试(即动态调试)ー个C程序。[4]三.问答题.c语言程序的总体结构是怎样的?答:ー个完整的C语言程序,是由一个main。函数(又称主函数)和若干个其它函数结合构成,或仅由一个main。函数构成。.c语言程序的基本单位是什么?它的结构又如何?答:函数是C语言程序的基本单位,每个源文件可由一个或多个函数组成。C语言的任何函数(包括主函数main。)都是由函数首部和函数体两部分组成。函数的一般结构如下:[函数类型]函数名(函数参数表)函数首部说明语句部分;执行语句部分:.主函数main。在程序中的地位如何。程序总是从哪个函数开始执行,到哪个函数执行完后结束?答:一个源程序不论由多少个文件组成,都只能有一个main函数,即主函数。main。函数的作用,相当于其它高级语言中的主程序。其它函数的作用,相当于子程序。不论主函数在程序中的位置如何,C语言程序总是从main。函数开始执行,也是在main。函数终止执行。当主函数执行完毕时,整个程序也执行完毕。习惯上,将主函数main。放在程序的最前面。.什么是算法?算法的基本特征是什么?答:算法(Algorithm)是为解决某个问题而采取的方法和步骤,是程序的灵魂。一个算法应该具有以下五个重要的特征:.有穷性算法的有穷性是指算法必须能在执行有限个步骤之后终止,不能是无限的。.确切性算法的每ー步骤必须有确切的定义,而不能是含糊的,模棱两可的。.可行性算法中的所有计算步都可以被分解为有限次的基本运算,即每个计算步都可以在有限时间内完成。4有0个或多个输入一个算法有。个或多个输入,以刻画运算对象的初始情况。所谓0个输入是指算法本身定出了初始条件。.有一个或多个榆出ー个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。.结构化程序设计采用方法是什么?答:结构化程序设计方法的主要原则可以概括为:(1)自顶向下。程序设计时,应先考虑总体,后考虑细节。(2)逐步求精。对复杂问题,应设计ー些子目标作为过渡,逐步细化。(3)模块化。ー个复杂问题,肯定是由若干个稍简单的问题构成(4)每种程序结构允许有一个入口和一个口。(5)严格控制GOTO语句的使用。.程序设计的一般ー那儿个步骤?答:程序设计的一般步骤如下:.分析问题对要解决的问题,首先必须分析清楚,明确问题的要求,列出所有已知量,找出问题的求解范围、解的精度等。.建立数学模型对实际问题进行分析之后,找出它的内在规律,就可以建立数学模型。3芯择算法建立数学模型后,还不能着手编程序,必须根据数据结构,选择解决问题的算法。•般选择算法时要注意:(1)算法的逻辑结构尽可能简单。(2)算法所要求的存储量应尽可能少。(3)避免不必要的循环,减少算法的执行时间。(4)在满足问题要求条件下,使所需的计算量最小。.编写程序把整个程序看作一个整体,先全局后局部,自顶向下,ー层ー层分解处理。如果某些子问题的算法相同,而仅仅是参数不同,可以用函数来表示。.调试运行准备多组试验数据,调试运行。对程序中的错误进行修改,使程序能运行出结果。.分析结果对试验数据计算的结果进行分析,看是否正确。如果不正确,返回修改程序,再调试运行。.写出程序的文档主要是对程序中的变量、函数或过程作必要的说明。解释编程思路,画出框图,讨论运行结果等。7.执行一个c语言程序的一般过程是什么?答:ー个简单C程序的上机执行过程如下图所示。1)启动Tc,进入Tc集成环境。2)编辑(或修改)源程序。3)编译。如果编译成功,则可进行下ー步操作;否则,返回2)修改源程序,再重新编译,直至编译成功。4)连接。如果连接成功,则可进行下ー步操作;否则,根据系统的错误提示进行相应修改,再重新连接,直至连接成功。5)运行。通过观察程序运行结果,验证程序的正确性。6)退出Tc集成环境,结束本次程序运行。图C程序的上机执行过程第2章习题一・选择题TOC\o"1-5"\h\z.不合法的字符常量是【 】B。A) '\t' B) "B" C) 'a' D)''x32'.合法的字符常量是[ 】D。A) '\084' B) ,\84‘ 〇 ’ab' D)''x4A'.C语言提供的合法的数据类型关键字是【 】Dリ。A)FloatB)signedC)integerD)chara.属于合法的C语言长整型常量的是【】B。A)2736B)0LC)2E10D)(long)5876273.下面选项中,不是合法整型常量的是【 】B。A)160 B)-Oxcdg 〇-01 D)-0x48a.以下所列的C语言常量中,错误的是【】B。A)0xFF B)1.2e0.5 C)2L D)'\72'.下面四个选项中,均是不正确的8进制数或16进制数的选项是【】D。A)0160x8f018B)Oabc017Oxa0010-0x110x16D)0al27ff-123TOC\o"1-5"\h\z.下选项中不属于C语言的类型是【 】D。A)signedshortintB)unsignedlongintB)unsignedintD)longshort.判断intx=Oxaffbl〇x的结果是【 】B。A)赋值非法 B)溢出C)为affbD)为ffbc.下面选项中,是合法浮点数的是【 】B。A)+leO.5B)-.60C)123eD)-e3.在C语言中,要求参加运算的数必须是整数的运算符是[】C。A)/ B)* 0%D)=.在C语言中,字符型数据在内存中存放形式是【 】D。A)原码B)BCD码C)反码 D)ASCH码TOC\o"1-5"\h\z13,下列语句中,不符合语法的赋值语句是【 】A。A)a=7+b+c=a+7; B)a=7+b++;C)a=(7+b,b++,a+7); D)a=7+b,c=a+7:.下面非法的C语言转义字符是[ 】B。A)''b'B)'\Oxf'C)''037'D)ヽ‘'.有字符串如下,"'n\\\407asiヽ”\xabc",则字符串的长度为【】DA)6 B)7 C)8 D)9.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,正确的是【 !B.A)语法错误 B)f为5.0C)f为0.0D)f为2.0.与代数式だ不等价的C语言表达式是[ 】A。uvA)x*y/u*vB)x*y/u/vC)x*y/(u*v)D)x/(u*v)*y.在C语言中,数字029是一个【】D〇A)ハ进制数 B)十六进制数C)十进制数D)非法数TOC\o"1-5"\h\z.C语言中整数一8在内存中的存储形式为1 】A。A)1111111111111000 B)1000000000010000000000000001000 0)1111111111110111.对于charcx='\039’;语句,正确的是[ 】A 。A)不合法 B)cx的ASCII值是33C)cx的值为四个字符 D)cx的值为三个字符.在C语言中,不正确的short类型的常数是【 】B。A)123B)32768C)037D)0xAF.若intk=7,x=12;则能使值为3的表达式是[ 】D,A)x%=(k%=5) B)x%=(k-k%5)C)x%=k-k%5 D)(x%=k)-(k%=5).假定x和y为double型,则表达式x=2,y=x+3/2的值是1 】D。A)3.500000 B)3 02.000000 D)3.000000.设以下变量均为int类型,则值不等于7的表达式是[ 1C。A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1).在16位C编译系统上,若定义!onga;,则能给a赋40000的正确语句是【 】D。A)a=20000+20000。 B)a=400〇・10〇030000+10000。 D)a=4000L*10L。.7/9*9在C语言中的计算结果是[ 】C。A)1 B)7〇〇D)以上都不是.以下能正确定义且赋初值的语句是【 】BA)intnl=n2=10; B)charc=32;C)floatf=f+l.1; D)doublex=12.3E2.5;.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是【AA)2.500000 B)2.750000C)3.500000D)0.000000.若有运算符くく,sizeof「,&ラ则它们按优先级由高至低的正确排列次序是【 】BA)sizeof,&=,«, B)sizeof,«,\&=C),«,sizeof,&= D)くく,ゝ&二,sizeof.设变量a是int型,f是float型,i是double型,则表达式10+'a'+i*f值的数据类型为【 】CA)intB)floatC)doubleD)不确定二.填空题1•在C语言中(以16位PC机为例),ー个char数据在内存中所占字节数为【1 】,其数值范围为【〇】~【255,ヰint数据在内存中所占字节数为【2】,其数值范围为【ー32768]〜[32767Iー个long数据在内存中所占字节数为【4】,其数值范围为【ー214783648】~【214783647エー个float数据在内存中所占字节数为【4】,其数值范围为【ー3.4X103ッ〜【3.4XIO38エC语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为【字母或下划线】。3,字符常量使用一对【单引号】界定单个字符,而字符串常量使用ー对【双引号】来界定若干个字符的序列。.在C语言中,不同运算符之间运算次序存在【优先级】的区别,同一运算符之间运算次序存在【结合性】的规则。.设x,i,_j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为【32】.6.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为【2】。.设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y的值为【3.5 】。.数学式子e、夜、+3丫)的C语言表达式为【exp(3)+sqrt(2*x+3*y)】。1+山.数学式子I"3x的C语言表达式为【abs(x-y)+(x+y)/(3*x)】。-b+ylb'-4ac.数学式子2a的C语言表达式为【(-b+sqrt(b*b-4*a*c))/(2*a)】。.已知:chara-'a',b='b',c='c',i;则表达式i=a+b+c的值为【294】。.已知inta=12,n=5;则:a+=a;a-=2;a*=2+3:a/=a+a;n%=(n%=2);a+=a-=a*=a;表达式运算后a的值各为【〇]〇.设inta;floatf:doublei;则表达式10+'a'+i*f值的数据类型是【double】。.若a为int型变量,则表达式(a=4*5,a*2),a+6的值为【40エ.假设所有变量均为整型,则表达式伝=2*=5工++小++房+七的值为【9]〇.已知a,b,c是ー个十进制数エ的百位,十位,个位,则计算该a,b,c数的表达式是【a=x/100,b=(x-x/100*100)/10,c=x%10 ]..定义:doublex=3.5,y=3.2;则表达式(int)x*0.5的值是【1.5],表达式y+=x++的值是【6.7]0.定义:intm=5,n=3;则表达式m/=n+4的值是【〇】,表达式m=(m=l,n=2,n-m)的值是【1】,表达式m+=m-=(m=l)*(n=2)的值是【ー2I〇.表达式5%(-3)的值是[2】,表达式ー5%(-3)的值是1-2エ.若a是int变量,则执行表达式a=25/3%3后,a的值是【2J0三.判断题.在C程序中对用到的所有数据都必须指定其数据类型。[J].ー个变量在内存中占据一定的存储单元。[V].ー个实型变量的值肯定是精确的。【X】.对几个变量在定义时赋初值可以写成:inta=b=c=3;【X].自增运算符(++)或自减运算符(一)只能用于变量,不能用于常量或表达式。[J].在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()"。[J].%运算符要求运算数必须是整数。[V].若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。[X].在C程序中,逗号运算符的优先级最低。[J].C语言不允许混合类型数据间进行运算。【X】四.简答题.为什么C语言的字符型可以进行数值运算?答:C语言将字符(character)以其ASCII码的值进行存储和处理,因此可以参加数值运算。.简述‘a'和“a”的区别。答:字符常量由单引号括起来,字符串常量由双引号括起来。例如:’a‘和"a"是不同的。'a’是字符常量,占ー个字节;"a”是字符串常量,占2个字节。.程序:intm=12;m=15;为什么整型变量m的值在运算后不是当初的12,而是15?答:intm=12;是在定义变量时进行初始化,m=15;是程序运行时对变量重新赋值,原来的值也就随之改变。.将下面各数用八进制和十六进制数表示:十进制32 -1 -32768 2002 -128 0ハ进制0400177777010000003722 017760000十六进制0x20Oxffff0x80000x7d20xff800x0.华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9,则floatc,F;c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?答:对五.程序阅读题写出以下程序运行的结果。voidmain(){charcl='a',c2='b',c3='c',c4='\10T,c5='\102';printf(*a%cb%c\tc%c\tabc\n*,cl,c2,c3);printf(*\t\b%c%c”,c4,c5);}aabbccabc AB 2.写出以下程序运行的结果。voidmain(){inti,j,m,n;=8;尸10;m=++i;n=j++;printf("%d,%d,%d,%dw,i,j,m,n);}9,11,9,10第3章习题一・选择题.printf函数中用到格式符"%5s”,其中数字5表示输出的字符串占用5歹リ。如果字符串长度小于5,则输出按方式【 】C。A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格 D)输出错误信息.已有定义inta=-2;和输出语句:printf("%81x”,a);以下正确的叙述是【D】0A)整型变量的输出格式符只有%d一种B)%x是格式符的ー种,它可以适用于任何ー种类型的数据0%x是格式符的ー种,其变量的值按十六进制输出,但%81x是错误的D)%81x不是错误的格式符,其中数字8规定了输出字段的宽度.以下程序的输出结果是【main(){inta=3;printf(*%d\n*,(a+=a-=a*a));)A)-6 B)12C)0 D)-12.putchar函数可以向终端输出ー个【 】D。A)整型变量表达式值 B)实型变量值C)字符串 D)字符或字符型变量值.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是【 】及scanf( ,&x,&y,&z);scanf( ,&x,&y,&z);scanf("%x%*d%〇”,&x,&y);D)scanf(w%x%o%6.2f",&x,&y,&z);.已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是【 】A„intal,a2;charcl,c2;scanf(,,%d%c%d%c",&al,&cl,&a2,&c2);A)10A20B<CR> B)10A20B<CR>C)10A20B<CR> D)10A20B<CR>TOC\o"1-5"\h\z.已有定义intx;floaty;且执行scanf("炮d%f",&x,&y);语句,若从第一列开始输入数据!2345678〈回车〉,则x的值为【 】B。A)12345 B)123 045 D)345.已有定义intX;floaty;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据!2345678V回车》,则y的值为【 】B。A)无定值 B)45.000000 0678.000000D)123.000000.阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为【Dmain()(intx,y,z;scanf(w%d%d%d",&x,&y,&z);printf(ux+y+z=%d\n",x+y+z);}x+y+z=48 B)x+y+z=350x+z=35 D) 不确定值.逻辑运算符两侧运算对象的数据类型【 】D。A)只能是〇或1 B)只能是〇或非〇正数C)只能是整型或字符型数据 D)可以是任何类型的数据.以下关于运算符优先顺序的描述中正确的是【 】C,A)关系运算符(算术运算符〈赋值运算符〈逻辑与运算符B)逻辑与运算符〈关系运算符〈算术运算符〈赋值运算符0赋值运算符〈逻辑与运算符く关系运算符く算术运算符D)算术运算符〈关系运算符〈赋值运算符〈逻辑与运算符.下列运算符中优先级最高的是【 】BoA)< B)+ C)&&D)!=.能正确表示’当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是[CoA)(x>=l)&&(x<=10)&&(x>=200)&&(x<=210)(x>=l)II(x<=10)II(x>=200)11(x<=210)(x>=l)&&(x〈=10)II(x>=200)&&(x<=210)(x>=l)II(x<=10)&&(x>=200)II(x<=210).能正确表示逻辑关系:“a210或aWO”的C语言表达式是[ 】D。A)a>=10ora<=0 B)a>=0|a<=10C)a>=10&&a<=0 D)a>=10IIa<=0.设intx=l,y=l;表达式Qx||y-)的值是【A)0 B)1 C)2D)-l.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c〈’B');执行该程序段后,x的值为【 】DA)ture B)false〇0D)1.表示图中坐标轴上阴影部分的正确表达式是[ 】C.勿ル忽忽怒勿 I,I»xa b c(x<=a)&&(x>=b)&&(x<=c)(x<=a)11(b<=x<=c)(x<=a)II(x>=b)&&(x<=c)(x<=a)&&(b<=x<=c).判断char型变量ch是否为大写字母的正确表达式是[ 】C。A)'A'<=ch<='Z' B)(ch>='A')&(ch<='Z')0(ch>='A')&&(ch<=,Z,)D)(,A'<=ch)AND(て’>=ch).设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为〇的是【D]〇A),x'&&,y' B)x<=yC)xIIy+z&&y-z D)!((x<y)&&!z|I1)TOC\o"1-5"\h\z.已知x=43,ch='A',y=0;则表达式(x>=y&&chく’B'&&!y)的值是[ ]C.A)0B)语法错 01D)“假”.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是[ 】C„A)A%2==1 B)!(A%2==0)〇!(A%2) D)A%2.设有:inta=l,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为【 】B。A)1 B)2 C)3 D)4.判断char型变量cl是否为小写字母的正确表达式是【 】D。A)匕’<=cl<=,z' B)(cl>=a)&&(cl<=z)C)(*a'>=cl)I('z'<=cl)D)(cl>=*a')&&(cl<=*z').已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为TOC\o"1-5"\h\z[ ]CA)1 B)2 C)3 D)4.以下程序的运行结果是【 】B。#include"stdio.h"main(){inta,b,d=241;a=d/100%9;b=(-l)&&(-l);printf("%d,%d”,a,b);}A)6,1 B)2,1 C)6,0 D)2,0.以下不正确的if语句形式是【 】C。A)if(x>y&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf("%d",&x)elsescanf(u%d",&y);D)if(x<y){x++;y++;}.已知charch='C';则以下表达式的值是【 】。Dch=(ch>='A'&&ch<='Z")?(ch+32):ch;A)AB)aC)ZD)c.已知intx=10,y=20,z=30;以下语句:if(x>y)z=x;x=y;y=z;执行后X,y,z的值是【 】。BA)x=10,y=20,z=30 B)x=20,y=30,z=30C)x=20,y=30,z=10 D)x=20,y=30,z=20.以下if语句语法正确的是[ 】B。if(x>0)printf("%f",x)elseprintf(w%f",-x);if(x>0){x=x+y;printf("%f",x);}elseprintf("%f",-x);C)if(x>0){x=x+y;printf(u%fn,x);};elseprintf("%f",-x);D)if(x>0){x=x+y;printf("%f”,x)}elseprintf("%f",-x);.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=l.0/x;elsey=l.0;printf("%f\n",y);}该程序的输出结果是【 】。CA)0.000000B)0.250000〇0.500000D)1.000000.若intk=8;则执行下列程序后,变量k的正确结果是[ 】Domain(){intk=8;switch(k){case9:k+=l;case10:k+=l;case11:k+=l;break;default:k+=l;)printf("%d\n",k);}A)12B)llC)10 D)9.对表达式for(表达式1;;表达式3)可理解为[ 】°BA)for(表达式1;〇;表达式3)B)for(表达式1;1;表达式3)for(表达式1;表达式1;表达式3)for(表达式1;表达式3;表达式3).下面有关for循环的正确描述是[ 】DoA)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来34.设有程序段intk=10;while(k=0)k=k-l;则下面描述中正确的是【 】C,A)while循环执行!0次 B)循环是无限循环

C)循环体语句ー次也不执行.设有以下程序段D)循环体语句执行ー次intx=0,s=0;C)循环体语句ー次也不执行.设有以下程序段D)循环体语句执行ー次intx=0,s=0;while(!x!=O)s+=++x;printf(“刎”,s);则【 】BoA)运行程序段后输出〇B)运行程序段后输出10程序段中的控制表达式是非法的 D)程序段执行无限次.语句while(!E);中的表达式!E等价于[ 】A。A)E==OB)E!=1C)E!=OD)E==1.下面程序段的运行结果是【 】A.a=l;b=2;c=2;while(a<b<c){t=a;a=b;b=t;c―;}printf("%d,%d,%d”,a,b,c);A)1,2,0B)2,1,001,2,1D)2,1,1.下面程序段的运行结果是[ 】Dox=y=O;while(x<15)y++,x+=++y;printf("%d,%d”,y,x);A)20,7 B)6,12 020,8D)8,20.已知intt=0;while(t=l){...}则以下叙述正确的是【A)循环控制表达式的值为〇〇循环控制表达式不合法40.下面程序段的运行结果是【0BB)循环控制表达式的值为1D)以上说法都不对]C.intn=0;while(n++<=2);printf("%d”,n);A)2 B)3 04D)有语法错.设有程序段t=0;while(printf(u*w)){t++;if(t<3)break;)则下面描述正确的是[ 】D。A)其中循环控制表达式与〇等价 B)其中循环控制表达式与’〇,等价0其中循环控制表达式是不合法的 D)以上说法都不对.C语言中while和do-while循环的主要区别是[ 】A。A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句.以下描述中正确的是[ 】CoA)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略whileTOC\o"1-5"\h\z.若i为整型变量,则以下循环执行次数是[ 】Bofor(i=2;i=0;)printf("%d”,i--);A)无限次 B)0次 C)1次 D)2次.以下for循环的执行次数是[ 】Cofor(x=0,y=0;(y=123)&&(x<4);x++)A)是无限循环 B)循环次数不定 C)执行4次D)执行3次.以下不是无限循环的语句为【 】AoA)for(y=0,x=l;x>++y;x=i++)i=x;for(;;x++;i);C)while(1){x++;}D)for(i=10;;i--)sum+=i;TOC\o"1-5"\h\z.下面程序段的运行结果是[ 】Cofor(y=l;y<10;)y=((x=3*y,x+1),x-l);printf("x二%d,y二%d”,x,y);A)x=27,y=27B)x=12,y=13C)x=15,y=14D)x=y=27.下面程序段的运行结果是[ 】Dofor(x=3;x<6;x++)printf((x%2)?("**%d”):(“##%d\n"),x);A)**3 B)##3 C)##3 D)**3##4##4 **4 **4##5 **5**5 ##5.下列程序段不是死循环的是[ 】DoA)inti=100;while(l){i=i%100+l;if(i>100)break;B)for(;;);intkニ〇;do{++k;}while(k>=0);ints=36;while(s)-s;.执行语句for(i=l;i++く4;);后变量i的值是1 】C。A)3 B)4 C)5D)不定.以下正确的描述是【 】。BA)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用goto语句.下面程序段【 】Dofor(t=l;t<=100;t++)(scanf( ,&x);if(x<0)continue;printf("%3d”,t);}A)当x<0时整个循环结束 B)x>=0时什么也不输出C)printf函数永远也不执行 D)最多允许输出100个非负整数.下面程序段【 】Cox=3;do(y=x;if(!y){printf(axw);continue;}printf("ザ’);}while(K=x<=2);A)将输出## B)将输出###*0是死循环 D)含有不合法的控制表达式二.填空题1.设y是int型,请写出y为奇数的关系表达式【y%2】〇2.设inta=5,b=6,表达式(++a=b--)?++a:--b的值是【7 】〇.将以下程序写成三目运算表达式是1a=(a>b)?a:b;]〇if(a>b)max=a;elsemax=b;.以下程序输出的结果是【〇】。main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n',d);.若从键盘输入58,则以下程序输出的结果是【585858]〇main(){inta;scanf("%d",&a);if(a>50)printf('%d”,a);if(a>40)printf("%d”,a);if(a>30)printf("%d”,a);}.阅读下面语句,则程序的执行结果是【1,0 ]〇#include"stdio.h"main(){inta="l,b=l,k;if((++a<0)&&!(b—<=0))printf("%d,%d\n”,a,b);elseprintf("%d,%d\n”,b,a);}.以下程序的输出结果为i:dec=-4,oct=177774J,hex=fffc,unsigned=65532main()(shorti;i=-4;printf("\ni:dec二%d,oct=%〇,hex=%x,unsigned二%u\n”,i,i,i,i);}.以下程序的输出结果为【*3.140000,3.142* ]〇main()(printf("*%f,%4.3f*\n",3.14,3.1415);).以下程序的输出结果为【c:dec=120,0ct=170,hex二78,ASCII二x ]main()(charc二'x';printf("c:dec=%d,oct=%o,hex=%x,ASCII^cXn^,c,c,c,c);

10.以下程序的输出结果为【10.以下程序的输出结果为【10Squaredis:100main()intx=l,y=2;printf(**x=%dy=%d*sum*=%d\n",x,y,x+y)printf(w10Squaredis:%d\nw,10*10);}intx=7281;printf(“(1)printf("(2)printf(aintx=7281;printf(“(1)printf("(2)printf(a(3)printf(a(4)printf(w(5)x=%3d,x=%6d,x=%6o,x=%6x,x二%6u\n”,x,x,x,x,x);xヌー3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n",x,x,x,x,x);x二%+3d,x=%+6d,x=%+08d\n”,x,x,x);x=%o,x=%#o\n”,x,x);x=%x,x=%#x\n”,x,x);>x=7281,x=7281,x=16161,x=lc71,x=7281>x=7281,x=7281 ,x=$7281 ,x=$007281,x=z06d>x=+7281,x=♦7281,x=+0007281>x=16161,x=016161>x=lc71,x=0xlc7112.假设变量a和12.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。a+=[b];b=a-[b];a-=[b];13.假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c屮的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c。例如:交换前,a中〇,b=20,c=30;交换后,a后〇,b=30,c=10。请填空。[t=a;];a=b;b=c;[c=t;];14,有一输入函数scanf(“如",k);其不能使float类型变量k得到正确数值的原因是【类型错】和【地址错】。151已有定义inta;floatb,x;charcl,c2;为使a=3,b=6.5,x=12.6,cl='a',c2='A',正确的scanf函数调用语句是【scanf("%d%f%f%c%c”,&a,&b,&x,&cl,&c2);】,输入数据的方式为【36.512.6aA]。16,已有定义inti,j;floatx;为将TO赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是[-12c410.34 ]。scanf("%0%x%e",&i,&j,&x);.当a=3,b=2,c=l时,表达式f=a>b>c的值是【〇!..当a=5,b=4,c=2时,表达式a>b!=c的值是【1】。.在C语言中,表示逻辑“真"值用【1】。.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【10 ]〇for(i=0,j=10;i<=j;i++,j—)k=i+j;.下列程序的功能是输入ー个整数,判断是否是素数,若为素数输岀1,否则输出0,请填空。main(){inti,x,y=l;scanf("%d",&x);for(i=2;i<=x/2;i++)if【(x%iニニ〇)】{y二〇;break;}printf("%d\n",y);}.阅读下面程序,则执行后程序的结果为[15,16 ]#include"stdio.h"main(){inta=0,b=0;while(a<15)a++;while(b++く15);printf("%d,%d\n”,a,b);}.C语言提供的三种逻辑运算符是【&&】、【丨丨】、【!]〇.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式【Xくz||y〈zL.设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式[x*y*z>0&&(x<0||y<0||z<0)]〇TOC\o"1-5"\h\z.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AくB&&!OB的值是[0 ]〇.若a=6,b=4,c=2,则表达式!(a-b)+cT&&b+c/2的值是【1 】。.若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是【1】。.若a=5,6=2,・1,则表达式ad代|ぬニニ(:的值是【〇】。.条件“2くxく3或xく-10”的C语言表达式是【2くx&&x<3||x<-10]〇.当m=2,n=l,a=l,b=2,c=3时,执行完d=(m=a!=b)&&(n二b>c)后;n的值是[0 】,m的值是【1】。.执行下面程序段后,k值是 【36 ]〇k=l;n=263;do{k*=n%10;n/=10;}while(n);.下面程序段中循环体的执行次数是【3 ]〇a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);.下面程序段的运行结果是【・* ]〇x=2;do{printf(“*”);x--;}while(!x==0);.下面程序段的运行结果是[a=-5 ]〇i=l;a=0;s=l;do{a=a+s*i;s=-s;i++;}while(i<=10);printf("a=%d",a);.下面程序段的运行结果是【ー1 ]〇for(a=l,i=-l;-K=i<l;i++){a++;printf(<<%2dw,a); }printf("%2d”,i);.若for循环用以下形式表示:for(表达式1;表达式2;表达式3)循环体语句则执行语句for(i=0;iく3;i++)printf("ザ);时,表达式1执行[1 ]次,表达式3执行【3 】次。.阅读下面语句,则执行后的输出结果为【0918273645]#include"stdio.h"main(){chara,b;for(a=‘0',b='9';aくb;a++,b--)printf(*%c%c*,a,b);printf("\n");}三.编程题.设圆半径r=1.5,圆柱髙h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。参考代码:#definePI3.14159voidmain(){floatr,h,1,si,s2,vl,v2;printflinputr,h\n");scanf("%f%f”,&r,&h);l=2*PI*r;sl=PI*r*r;s2=4*PI*r*r;v1=4*PI*r*r*r/3;v2=PI*r*r*h;printf("1二%-6.2f,si=%-6.2f,s2二%-6.2f,vl二%-6.2f,v2二%-6.2f\n",1,si,s2,vl,v2);).编制程序输入三个整数,按从大到小的顺序进行输出。参考代码:^include"stdio.h"voidmain(){inta,b,c;printf(,zinputa,b,c\n);scanf("%d%d%d”,&a,&b,&c);if(a>b)if(a>c)if(b>c)printf("%d,%d,%d\n”,c,b,a);elseprintfC%d,%d,%d\n*,b,c,a);elseprintf("%d,%d,%d\n”,b,a,c);elseif(a<c)if(b<c)printf(*%d,%d,%d\n”,a,b,c);elseprintf(*%d,%d,%d\n”,a,c,b);elseprintf(*%d,%d,%d\n*,c,a,b);}3.编制程序对输入的ー个小写字母,将字母循环后移5个位置后输出。如匕,变成‘广,变成年。参考代码:voidmain(){charc;printflinputc\n");scanf(飞c”,&c);c=((c」a'+5)%26+'a');printf("%c\n”,c);)4.试编程判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes,否则输出no。参考代码:#include"stdio.h"voidmain(){inta;printfCinput\n");scanf("%d",&a);if(a%5=0&&a%7=0)printf("yes'n");elseprintf("no\n");.编制程序要求输入整数a和b,若均大于100,则输出百位以上的数字,否则输出两数之和。参考代码:ttinclude"stdio.h"voidmain(){inta,b;printflinput\n");scanf("刎%d”,&a,&b);if(a>100&&b>100)printf("%d,%d\n",a/100,b/100);elseprintf("%d\n",a+b);}.编程实现:输入ー个整数,判断它能否被3,5,7整除,并输出以下信息之一:(1)能同时被3,5,7整除。(2)能被其中两数(要指出哪两个)整除。(3)能被其中一个数(要指出哪ー个)整除。(4)不能被3,5,7任一个整除。参考代码:ttinclude"stdio.h"voidmain(){inta;printf("input\n");scanf("%d",&a);if(a%3==0)if(a%5==0)if(a%7==0)printf("%d能被3,5,7整除つ;elseprintf("%d能被3,5整除");elseif(a%7==0)printf("%d能被3,7整除つ;elseprintfぐ%d能被3整除つ;elseif(a%5==0)if(a%7==0)printf(飞d能被5,7整除つ;elseprintf(/d能被5整除つ;elseif(a%7==0)printf(飞d能被7整除つ;elseprintf(*%d不能被3,5,7整除づ;}.某邮局对邮寄包裏有如下规定:若包裏的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄。对可以邮寄的包裹每件收手续费0.2元,再加上根据下表按重量wei计算的邮资:重量(千克)收费标准(元)wei<100.8010<=wei<200.7520<=wei<=300.70参考代码:Sinclude"stdio.h"voidmain(){floata,b,c,w,f;printfl.inputa,b,c,w\nつ;scanf(*%f,%f,%f,%f",&a,&b,&c,&w);if(a+b+c>100||w>30)printf("超大或超重,不予邮寄!つ;else{if(w>10)if(w>=20)f=10*0,8+10*0.75+(w-20)*0.70;elsef=l〇・〇.8+(w-10)*0.75;elsef=w*0.8;printf(*f=%6.2f*.f);)getchO;}.给ー个不多于5位的正整数,要求:①求出它是几位数。②分别打印出每一位数字。③按逆顺序打印出各位数字,例如原来为321,应输出123。参考代码:参考源程序1:ttinclude"stdio.h"voidmain(){inti;longm,n;scanf&m);n=m;i=0;while(m){printf('%d”,m%10);m=m/10;i++;}printf(*%ld是%d位数“,n,i);getchO;}参考源程序2:main()(inta,b,c,d,e,n;longm;scanf("%ld",&m);a=0.000l*m;b=10*(0.000l*m-a);c=100*(0.0001*m-a-0.l*b);d=1000*(0.0001*m-a-0.l*b-0.01*c);e=m-10000*a-1000*b-100*c-l0*d;if(a!=0)n=5,printf("%d%d,%d,%d,%d,%d%d%d%d%d%d\n”,n,a,b,c,d,e,e,d,c,b,a);elseif(b!=0)n=4,printf("%d%d,%d,%d,%d%d%d%d%d\n,z,n,b,c,d,e,e,d,c,b);elseif(c!=0)n=3,printf(*%d%d,%d,%d%d%d%d\n*,n,c,d,e,e,d,c);elseif(d!=0)n=2,printf(*%d%d,%d%d%d\n*,n,d,e,e,d);elsen=l,printf(*%d%d%d\n”,n,e,e);).编程实现:计算1至50中是7的倍数的数值之和。参考代码:#include"stdio.h"voidmain(){inti,s;i=l,s=0;while(i<50){if(i%7==0)s+=i;i++;)printf("s=%d",s);).编程计算从键盘输入的字符中统计数字字符的个数,用换行符结束循环。参考代码:#include"stdio.h"mainO{charc;inti=0;while((c=getchar())!='\n')if(c>=48&&c<=57)i++;printf("i^d'n”,i);).有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖兀«参考代码:ftinclude*stdio.h"mainO{inti=0,sum=1020;while(sum>0){sum=sum-sum/2-2;i++;}printf("i二%d\n”,i);).用“辗转想除法”求两个正整数的最大公约数。参考代码:mainO{longm,n,i=l,j,s;scanf("%ld,%ld”,&m,&n);for(;i<=m&&i<=n;i++){if(m%i=0&&n%i==0)s=i;}if(m>=n)j=m;elsej=n;for(;!(j%m==O&&j%n==O);j++);printf(*s=%ld,j=%ld\n*,s,j);.鸡兔共有30只,脚共有90个,编程计算鸡兔各有多少只?参考代码:^include<stdio.h>voidmain()inti;for(i=0;i<23;i++)/*23只兔子有92条腿・/(/*i只兔子,30-i只鸡・//・ー只鸡两条腿,ー只兔子4条腿*/if(i*4+(30-i)*2==90)(printf(*%d只兔子,%d只鸡。\n*,i,30-i);getchO;).ー个数如果恰好等于它的因子之和(除自身外),则称该数为完全数,例如:6=1+2+3,6为完全数,编程求1000以内的所有完全数。参考代码:main(){intm,i,j,s:for(m=6;m<l0000;m++){s=l;for(i=2;i<m;i++)if(m%i=0)s=s+i;if(m-s==0){printf(*%5ditsfastorsare1*,m);for(j=2;j<m;j++)if(m%j=0)printf(*%d”,j);printf("\n");}))或main(){intm,i,j,s;for(m=6;m<l000;m++){s=m-l;for(i-2;i<m;i++)if(m%i==0)s=s-i;if(s==0){printf(*%5ditsfastorsare1*,m);for(j=2;j<m;j++)if(m%j==0)printfC%d*,j):printf(*\n*):})).求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是ー个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。参考代码:#include"math.h"main(){intn,sum=0,i=l,s=2;scanf(*%d*,&n);while(i<=n){sum=sum+s;s=s+2*pow(10,i);i++;}printf("sum=%d\n”,sum);).从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。参考代码:Sinclude<stdio.h>main()(inti,j,k;printf("\nhongbaihei\n");for(i=0;i<=3;i++)for(j=l;j<=5;j++)(k=8-i-j;if(k<=6)printf(*%3d%3d%3d\n”,i,j,k);}).有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13-求出这个数列的前20项之和。参考代码:main(){inti=l,n;doublet,x=l,y=2,s,sum=0;scanf("%ld",&n);while(i<=n){s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;}printf("%f\n",sum);.试编程序求るる七k参考代码:#include<stdio.h>main()(inti;floats;for(i=l,s=0;i<=100;i++)s+=i;for(i=l;i<=50;i++)s+=i*i;for(i=l;i<=10;i-H-)s+=1.0/i;printfC*s=%f\n”,s);}.试编程序,求ー个整数任意次方的最后三位数。即求ズ的最后三位数,要求x,y从键盘输入。#include<stdio.h>main()(inti,x,y,s=l;scanf("%d%d”,&x,&y);for(i=l;i<=y;i++){s=s*x%1000;}printf("s二%d\n',s);.ー球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?参考代码:voidmain0{inti,n;doubleh=100,s=100;scanf("%d",&n);for(i=l;i<=n;i++){printf("i=%d,h=%f,s=%f\n”,i,h,s);h*=0.5;/・下次反弹高度・/s=2*h+s;/・下次落地路程・/)printf("h=%f\n”,h);/*第十次反弹高度・/.用牛顿迭代法求方程2x:'-4x2+3x-6=0在(TO,10)之间的根。参考代码:^include"stdio.h"#include<math.h>voidmain()(floatxl,xO,f,fl;printf("InputxO:");/・输入xO为1.5即求L5附近的根・/scanf("%f”,&x0);printf("x(0)=%f\n〃,xO);f=2*x0*x0*x0-4*x0*x0+3*x0-6;/・求函数值・/do{f1=6*x0*x0+8*x0+3;/・对方程求导・/xl=xO-f/fl;x0=xl;f=2*x0*x0*x0-4*x0*x0+3*x0-6;)while(fabs(f)>le-5);printf("\nTherootisx=%f\n,xO);).用二分法求方程2x3-4x2+3x-6=0在(TO,10)之间的根。参考代码:main(){doublexl,x2,yl,y2;xl=-10;x2=10;do{yl=2*xl*xl*xl-4*xl*xl+3*xl-6;xl=xl-yl/(6*xl*xl-8*xl+3);}while(yl!=0);do{y2=2*x2*x2*x2-4*x2*x2+3*x2-6;x2=x2-y2/(6*x2*x2-8*x2+3):}while(y2!=0);printf(*xl=%.3f,x2=%.3f\n”,xl,x2);.用迭代法求x=&.求平方根的迭代公式为:要求前后两次求出的得差的绝对值少于0.00001.#includez/math.h"main(){floatxO,xl,a;scanf&a);xl=a/2;do{x0=xl;xl=(xO+a/xO)/2;}while(fabs(x0-xl)>=0.00001);printf(*%.3f\n",xl);第4章习题选择题1•在C语言中,引用数组元素时,其数组下标的数据类型允许是【 】D。A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式2.以下对ー维整型数组a的正确说明是[ 】D。A)inta(10); B)intn=10,a[n];C)intn; D)ftdefineSIZE10scanf("%d",&n); inta[SIZE];inta[n];3•若有说明:inta[10];则对a数组元素的正确引用是1 】B。A)a[10] B)a[10-10] C)a(5) D)a[3,5].在C语言中,ー维数组的定义方式为:类型说明符数组名【 】A。;A)[常量表达式] B)[整型表达式]C)[整型常量]或[整型表达式]D)[整型常量].以下能对ー维数组a进行正确初始化的语句是【A)inta[10]=(0,0,0,0,0); B)inta[10]={};Ointa[]={0}; D)inta[10]=[10*l];TOC\o"1-5"\h\z.以下对二维数组a的正确说明是[ 】C。inta[3][]; B)floata(3,4);C)doublea[l][4]; D)floata(3)(4);7•若有说明:inta[3][4];则对a数组元素的正确引用是【 】C。A)a[2][4] B)a[l,3] C)a[l+l][0] D)a(2)(1).若有说明:inta[3][4];则对a数组元素的非法引用是【 】D。A)a[0][2*1]B)a[l][3] C)a[4-2][0]D)a[0][4].以下能对二维数组a进行正确初始化的语句是【 】B。A)inta[2]ロ={{1,0,1},{5,2,3}};B)inta[][3]={{1,2,3},{4,5,6});C)inta[2][4]={{1.2,3},{4,5},{6});D)inta[][3]={{l,0,1},{},{1,1});.以下不能对二维数组a进行正确初始化的语句是【 】C。A)inta[2][3]={〇};inta[][3]={{1,2},{0}};Ointa[2][3]={{1.2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};.若有说明:inta[3][4]={0};则下面正确的叙述是1 】D。A)只有元素a[〇][〇]可得到初值0B)此说明语句不正确0数组a中各元素都可得到初值,但其值不一定为〇D)数组a中每个元素均可得到初值〇.若二维数组a有m歹山则计算任一元素a[i][j]在数组中位置的公式为【 】D。(假设a[0][0]位于数组的第一个位置上。)A)i*m+jB)j*m+iC)i*m+j-l D)i*m+j+1.对以下说明语句的正确理解是【 】B,inta[10]={6,7,8,9,10);A)将5个初值依次赋给a[l]至a[5]B)将5个初值依次赋给a[0J至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确.以下不正确的定义语句是【 】B。A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)inty[5]={0,1,3,5,7,9};Ocharcl[]={T,,2‘,,3',,4',,5'};D)charc2[]={'\xl0','\xa','\x8'};.若有说明:1朮2ロ[3]={1,2,3,4,5,6,7};则2数组第一维的大小是1 ]B.A)2 B)3 04 D)无确定值

.若二维数组a有m列,则在前的元素个数为【 】B。A)j*m+iB)i*m+jC)i*m+j-1 D)i*m+j+l.定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};TOC\o"1-5"\h\z则下面语句的输出结果是[ 】Aofor(k=0;k<3;k++)printf(u%dw,a[k][2-k]);A)357B)369C)159D)147.下面是对s的初始化,其中不正确的是【 】D。A)chars[5]={"abc"};B)chars[5]={匕','b',セ};C)chars[5]=**"; D)chars[5]="abcdef";.下面程序段的运行结果是[ 】Bocharc[5]={'a','b','、〇’,'c','、〇'};printf("%s",c);A)'a''b'B)abC)abcD)'a','b',''020.対两个数组a和b进行如下初始化chara[]=chara[]="ABCDEF";charb[]={'A','B'则以下叙述正确的是【A)a与b数组完全相同'C,'D','E','F')]D,B)a与b长度相同C)a和C)a和b中都存放字符串D)a数组比b数组长度长TOC\o"1-5"\h\z21.有两个字符数组a、b,则以下正确的输入格式是【 】B。A)gets(a,b); B)scanf("%s%s",a,b);C)scanf("%s%s",&a,&b);D)gets("a"),get("b");22•有字符数组a[80]和b[80],则正确的输出形式是【 】DoA)puts(a,b); B)printf("%s%s",a[],b[]);C)putchar(a,b); D)puts(a),puts(b);.下面程序段的运行结果是[ 】Dochara[7]="abcdef";charb[4]="ABC":strcpy(a,b);printf("%c",a[5]);A)空格B)\0C)eD)f.有下面的程序段chara[3],b[]="China";a=b;printf("%s",a);则【 】DoA)运行后将输出China B)运行后将输出ChC)运行后将输出Chi D)编译出错TOC\o"1-5"\h\z.下面程序段的运行结果是【 】C。charc[]="\t\v\\\Owill\n";printf("%d",strlen(c));A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定.判断字符串a和b是否相等,应当使用【 】D«A)if(a==b) B)if(a=b)0if(strcpy(a,b))D)if(J_strcmp(a,b))27,判断字符串si是否大于字符串s2,应当使用【 】DoA)if(sl>s2) B)if(strcmp(si,s2))C)if(strcmp(s2,si)>0)D)if(strcmp(si,s2)>0).下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。charメロ=wprogrammingw;chary[]=FortranM;inti=0;while(x[i]!='、〇’&&y[i]!=‘、0')(if(x[i]—y[i])printf("%c",[ ]A);elsei++;}A)x[i++] B)y[++i]Ox[i]D)y[i].卜面描述正确的是[ 】DoA)两个字符串所包含的字符个数相同时,才能比较字符串B)字符个

温馨提示

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

评论

0/150

提交评论