版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章C语言程序设计C语言的基本知识考试必备知识ー、C语言的结构1、程序的构成、main函数和其他函数结构化程序由三种基本结构组成:顺序结构、循环结构和选择结构。由这三种基本结构组成的算法可以解决任何复杂的问题。在编写程序特别是大型程序时,有时会把程序分割成多个模块,各个模块具有各自的功能,这样的程序设计方法就是“模块化”结构方法。C语言程序是由函数构成的。对于一个完整的C源程序至少包含ー个main函数,也可以包含•个main函数和若干个其他函数(库函数和用户自定义函数)。用户使用此特点很容易实现C语言程序的模块化;一个C语言程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。从格式上看,每个函数是由函数名、参数表和花括号对“{ド包围的若干语句组成的。但是在组成C语言程序的函数中,必须有且只有一个名为main的函数,叫做主函数。除主函数之外的函数由用户命名。C语言程序的执行是从主函数开始的,主函数中的所有语句执行完毕,则程序执行结束。C语言程序执行当中可调用函数,main函数之外的其他函数都是在main函数执行时,以嵌套调用方式得以执行的。在程序中除了可调用用户自己编制的函数外,也可调用山系统提供的标准函数。程序编写中,算法是ー个重要概念。算法是指为解决某个特定问题而采取的确定且有限的步骤。ー个算法应该具有以下特点:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。2、头文件、数据说明、函数的开始和结束标志⑴程序前部带有#号的行是编译预处理语句。(2)函数由两部分组成:①函数体的说明部分——包括函数名、函数类型、函数参数名、形式参数类型。②函数体——函数说明部分下面的花括号“{}”内的部分。函数体一般包括:变量定义和执行语句部分。C语言函数的一般格式如下所示:函数名(参数){变量定义部分:执行语句部分;)有的函数不带参数,这时参数说明部分也就不存在了,但函数名后的圆括号不能省略。3、源程序的书写格式⑴C语言源程序习惯上使用小写英文字母,大写字母常常是作为常量的宏定义和其他特殊用途使用。⑵C语言源程序由若干个语句组成。每个语句都具有规定的语法格式和特定的功能。⑶在C语言的源程序中不能使用行序号。(4)C语言源程序使用分号“;”作为语句的终止符或分离符。⑸C语言源程序不存在程序行的概念。ー个程序行可以自由使用任意的书写行,即一行中可以有多个语句,ー个语句也可以占用任意多行,但语句之间必须用“;”分隔。(6)C语言源程序中用花括号对“{ド,表示程序的结构层次范围。⑺C语言源程序中,为增强可读性,可使用适量的空格和空行。但变量名、函数名以及C语言本身所使用的单词(即C语言中的关键字),不能在其中间插入空格。此外空格和空行可任意设置,C编译系统将忽略这些空格和空行。4,C语言的风格C语言源程序输入时,首先要使用系统提供的编辑程序(又称为编辑器)建立C语言程序的源文件。建立后的源文件将以文本形式存储在磁盘ヒ。源文件的名字由用户给出,扩展名为.C。由高级语言编写的程序称为‘‘源程序",由二进制代码表示的程序称为“目标程序”。计算机不能直接执行源程序,ー个源程序必须经过编译(生成.。bj文件)和连接オ能生成可执行文件(文件后缀名为.exe)。与其他程序ー样,C语言源程序中的注释可占用一行以上的位置,也可写在语句的后面。注释部分可作为源程序的ー个部分存在于源程序清单中,但源程序进行编译时,系统将忽略注释部分。二、数据类型及其运算在C语言中,数据处理的基本対象是常量和变量。运算是对各种形式的数据进行加工的过程。C语言的运算种类十分丰富,既有算术运算、逻辑运算和关系运算等一般常用运算功能,也有对数据进行移位操作、位处理和某些特殊运算等功能。C语言的数据类型在解释C语言数据类型之前,有一个“标识符”的概念。它可以用作变量名、符号名、函数名等等。标识符区分大小写。合法的标识符由字母、下划线和数字组成,并且第一个字符必须为字母或下划线。C语言中的标识符分为三类:⑴关健字,如if、case等。(2)预定义标识符,如printf等。⑶用户标识符。对于整型常量和实型常量,在C语言中使用整数和实数两种数。整数可以是十进制数、ハ进制数和十六进制数。在表示时,当整数的第一位是0时,为ハ进制数;当前两位为Ox时为十六进制数;其他为十进制数。实数也称为浮点小数。在C语言中,实数只能按十进制表示。它有两种表示形式:⑴小数形式。由数字和小数点组成(可以省略整数部分或小数部分)。如4.27,314,.0423(等价于0.0423),10.(等价于!0.0)o(2)指数形式。如456e4。以“e”或“E”后跟ー个整数来表示以10为底的事数。C语言的语法规定,字母e或E之前必须有一个数字,e或E后面的指数必须为整数,且e或E与前后的两个数之间不能加空格。在程序执行过程中,其值不能被改变的量,称为常量。有整型常量、实型常量、字符常量和字符串常量。字符常量是单ー的字符,表示形式为由两个单引号包围的ー个字符。在C语言中,字符常量具有数值特性,字符常量的值就是该字符的ASCII码值,因此,可以说字符常量实际上是ー个正整数。字符串常量用双引号包围的一串字符表示。字符串常量在内存中存储时,自动在其尾部追加一个字符'\0',所以长度为n个字符的字符串常量,在内存中占用n+1个字节的空间。转义字符常量为C语言中使用字符的ー种特殊形式。转义字符常量用反斜线‘ヽ’后面跟ー个字符或ー个数字表示。在C语言中,常量可用符号代替。代替常量用的符号称为符号常量。为便于与一般变量相区分,符号常量一般使用大写英文字母。符号常量在使用之前必须预先定义,定义的一般格式是:#define符号常量常量在每个符号常量定义式中只能定义ー个符号常量,并占据ー书写行。注意必须以#号打头,且后面不能加分号。它们不是C语言程序语句,而是发给编译系统的预处理命令。C运算符的种类、运算优先级、结合性运算是对数据加工的过程。表示各种不同运算的符号称为运算符,参加运算的数据称为运算量或操作数。其中取余运算的运算量必须是整型常量或整型变量,即实型数运算量不能参加取余运算。注意单目算术运算中的加一和减ー运算中,运算符++或ー一可以写在变量之后或之前。它们分别称为后缀运算符和前缀运算符。无论是前缀还是后缀运算符,对于变量本身来说自增1或自减1都具有相同的效果,但作为表达式来说却有着不同的值。例如,若变量i为int类型,且值为6,则表达式++i,先进行i增1运算,表达式的值为7;-i先进行i减1运算,表达式的值为5;i++表达式的值为6,i进行增1运算,使i的值变为7;i—表达式的值为6,i进行减1运算,使i的值变为5。在C语言中,双目算术运算可以与赋值运算结合在一起,形成算术复合赋值运算符。比如:a+=2等价于a=a+2o关系运算是对两个运算量进行大小关系比较。C语言中的六种关系运算符是:大于0),小于(<),等于(==),大于等于(>=),小于等于(<=),不等于。=)。逻辑运算表示运算量的逻辑关系。C语言中有三种逻辑运算,分别是:逻辑与(&&),逻辑或(II),逻辑非。)。三目条件运算有三个运算量,它使用两个运算符“?"和不同类型数据间的转换与运算强制类型转换表达式的形式如下:(类型名)(表达式)其中(类型名)称为强制类型转换运算符,可以利用强制类型转换运算符,将一个表达式的值转换成指定的类型。不同类型数据冋的运算的规则如ド:⑴双目运算符两边的运算数的类型必须一致才能进行操作,所得的运算结果的类型与运算数的类型一致。⑵如果双目运算符两边运算数的类型不一致,系统将自动转换类型,使两边的类型一致,再进行计算。C表达式类型和求值规则⑴算术表达式用运算符将运算量连接起来的式子称为算术表达式,简称表达式。任何算术表达式都有一定的运算结果值。算术表达式是C语言程序中可执行语句的ー种。在算术表达式中的运算量可为常量或变量。所有运算量都是常量的算术表达式称为常量表达式。⑵赋值表达式简单赋值是把ー个算术表达式的值赋予ー个变量,其一般形式是:变量=算术表达式称为赋值表达式。其中,“=”是运算符,称为赋值符。赋值符左边的运算量必须是变量,右边的算术表达式可为单ー的常量、变量和函数调用。在赋值运算时,当赋值号两边的数据类型不同时,由系统自动进行类型转换。转换原则是:赋值符右边的数据类型转换成左边的类型。⑶关系表达式表示关系运算的表达式称为关系表达式。关系表达式的结果值是1或0。运算的规则是:如关系表达式表示的关系成立,则它的结果是1,否则结果为〇〇关系表达式经常用于流程控制中作为分支或循环的条件,所以关系运算又称为二目条件运算。关系表达式又称为二目条件表达式。此外,三目条件算术表达式的・般形式为:el?e2:e3。其中el、e2和e3是三个运算量,它们可以是算术表达式。三目条件运算的过程是:当el的值非零,则此三目条件表达式的结果值是e2。否则,若el的值是零,则三目条件式的的结果是e3。(4)逻辑表达式逻辑运算的表达式称为逻辑表达式。逻辑表达式的运算值为1或〇。逻辑反运算是,当运算量是非零值时,运算结果是零;反之,当运算量是零值时,运算结果是lo逻辑与运算是,当两个运算量都是非零值时,运算结果为1,否则运算结果为0。逻辑或运算是,当两个运算量中只要有一个为非零值,则运算结果为1。只有当两个运算量都是零值时,结果オ为零。⑸逗号表达式C语言中可用逗号把若干个独立的算术表达式结合成一个算术表达式,称为逗号结合算术表达式,简称逗号表达式。逗号表达式的一般形式为:表达式1,表达式2 表达式n在逗号表达式中,从左向右进行各个表达式的运算,最后一个表达式的值就是逗号表达式的结果。逗号表达式可作为赋值运算的右边表达式使用。由于逗号表达式是一个算术表达式,所以在程序中可以作为ー个单ーー语句使用。1.2历届最新考题汇编【2007年9月考题】(1)C语言源程序名的后缀是:A).exe B).c C).obj D).cpp答案:B【分析】C语言源程序的后缀是.C或.c。后缀为.exe的文件是可执行文件;后缀为.obj的文件是目标文件。【2007年9月考题】(2)可在C程序中用作用户标识符的ー组标识符是:A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl答案:A【分析】C语言中,用户所定义的标识符由字母、数字、和下划线组成,并且第一个字符必须为字母或下划线,所以选项B和C错误;case是C语言的关键字,不能用来作为用户标识符,所以选项D错误。答案是A。【2007年9月考题】(3)以下选项中,合法的ー组C语言数值常量是:A)028 B)12. C).177 D)0x8A,5e-3 0Xa23 4el.5 10,000-Oxf 4.5e0 Oabc 3.e5答案:B【分析】指数形式表示数值常量时,字母e或E前必须有数字,且e或E后面的指数必须为整数,因此选项A和C错误:10,00〇是ー个逗号表达式不是一个数值常量,所以选项D错误。答案是B。【2007年9月考题】(4)以下叙述中正确的是:A)C语言程序将从源程序中第一个函数开始执行B)可在程序中由用户指定任意ー个函数作为主函数,程序将从此开始执行〇C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意ー个函数作为主函数答案:C【分析】一个C语言程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何,main不能作为用户标识符。答案是C。【2007年9月考题】(5)以下关于long、int和short类型数据占用内存大小的叙述中正确的是:A)均占4个字节 B)根据数据的大小来决定所占内存的字节数〇由用户自己定义 D)由c语言编译系统决定答案:D【分析】不同的C语言编译系统中,long、int和short类型数据占用内存大小不同,所以,答案是D。【2007年9月考题】(6)设有条件的表达式:(EXP)?i++:j-,则以下表达式中与(EXP)完全等价的是:A)(EXP==0) B)(EXP!=0) C)(EXP==1) D)(EXP!=1)答案:B【分析】三目条件算术表达式的一般形式为:el?e2:e3。其中el、e2和e3是三个运算量,它们可以是算术表达式。三目条件运算的过程是:当el的值非零,则此三目条件表达式的结果是e2。否则,若el的值是零,则三目条件式的结果是e3。因此,答案是B。【2007年9月考题】(7)已有定义:charc;,程序前面已在命令行中包含ctype.h文件。不能用于判断c中的字符是否为大写字母表达式是:—A)isupper(c) B)'A'<=c<='Z'C)'A'v=c&&cv=Z D)cv=('z'-32)&&('a'-32)v=c答案:B【分析】表示变量c的值大于字符,A,并且小于字符N,正确的写法为:,AV=c&&cv=2I而不能连在ー起写。【2007年9月考题】(8)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的:A)正当性 B)可行性 〇确定性 D)有穷性答案:C【分析】算法具有五个基本特性,分别是有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。其中,确定性是指算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必须得到相同的执行结果。所以答案是C»【2007年4月考题】(9)以下叙述错误的是:A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序后,生成后缀为.obj的文件是ー个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是•个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行答案:D【分析】计算机不能直接执行源程序,ー个源程序必须经过编译(生成.obj文件)和连接オ能生成可执行文件(文件后缀名为.exe)。后缀为.obj的文件和.exe文件都是二进制文件,但是其中只有后缀为.exe的二进制文件可以直接运行。所以答案是D。【2007年4月考题】(10)按照C语言规定的标识符命名规则,不合法的标识符是:一A)Int B)2a C)double D)name答案:B【分析】合法的标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或者下划线。关键字不是合法的用户标识符,但却是标识符的ー类,所以C项合法;关键字必须都是小写,所以A项不再是关键字,但却是合法的标识符。故答案是B。【2007年4月考题】(11)以下叙述中错误的是:—A)C语言是一种结构化程序设计语言B)结构化程序由顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块的设计方法答案:C【分析】C语言是一种结构化程序设计语言,结构化程序由三种基本结构组成,它们分别是顺序结构、选择(分支)结构和循环结构。由三种基本结构组成的算法可以解决任何复杂的问题。为了提高编码效率,结构化程序设计提倡模块的设计方法。所以答案是C。【2007年4月考题】(12)对于ー个正常运行的C程序,以下叙述正确的是:一A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后ー个函数结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束答案:A【分析】C语言程序是由函数构成。对于ー个完整的C源程序至少包含ー个main函数,也可以包含ー个main函数和若干个其它函数(库函数和用户自定义函数)。一个C语言程序总是从main函数开始执行的,在main函数结束,而不论main函数在整个程序中位置如何。所以答案是A。【2007年4月考题】(13)若有代数式加、+eツ(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是:一A)sqrt(abs(nAx+eAx)) B)sqrt(fabs(pow(n,x)+pow(x,e)))C)sqrt(fabs(pow(n,x)+exp(x))) D)sqrt(fabs(pow(x,n)+exp(x)))答案:c【分析】在C语言中,开方函数是sqrt(),取绝对函数是fabs(),哥方函数为pow,自然对数的底数e的基方函数为exp(),所以答案是C。如果把选项B改写为sqrt(fabs(pow(n,x)+pow(e,x))),则也是正确的。[2007年4月考题】(14)设有定义:intk=0:以下选项的四个表达式中与其他三个表达式的值不同的是:A)k++ B)k+=1 C)++k D)k+1答案:A【分析】选项B、C和D的值都是相同的,表达式的值都是1。而选项A中,表达式的值是0,然后变量k的值再加1。所以答案是A。【2007年4月考题】(15)以下选项中,当x为大于1的奇数时,值为0的表达式是:A)x%2==l B)x/2 C)x%2!=0 D)x%2==0答案:D【分析】选项A中,表达式x%2的值为1,所以表达式x%2=l的值为真,不为0;选项B中,由于x为大于1的奇数,所以表达式x/2的值大于等于1;由于表达式x/2的值为1,所以选项D中的表达式x%2==0的值为假,即其值为0。答案是D。【2007年4月考题】(16)以下合法的字符型常量是:—A)'\xl3' B)'\081' C)'65' D)“\n”答案:A【分析】要表示转义字符常量,必须以ー个反斜线开头后跟•个特定的字符,用来代表某一特定ASCII字符,这些字符常量也必须括在ー对单引号内。在转义字符常量中,反斜线后的ハ进制数可以不用。开头,即可用反斜线后跟ー个八进制数来表示ー个ASCII字符,反斜线后的十六进制数只能山小写字母x开头,所以选项A正确。1.3全真试题训练ー、选择题【2006年9月考题】(1)下列叙述错误的是:一A)ー个C语言程序只能实现ー种算法 B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)ー个C函数可以单独作为ー个C程序文件存在答案:A【分析】C程序可以由一个或多个程序文件组成,选项B正确;ー个C程序至少包含ー个main函数,也可以包含一个main函数和若干个其他函数(库函数和用户自定义函数),选项C正确;ー个C程序文件可以只包含一个C函数,选项D正确:而ー个C语言程序是可以实现多种算法的,选项A错误。【2006年9月考题】(2)下列叙述中正确的是:A)每个C程序文件中都必须要有一个main。函数B)在C程序中main。函数的位置是固定的C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另ー个函数答案:D【分析】在一个C程序包含的所有C文件中,只能有一个main。函数,选项A错误;ー个C语言程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何,C程序中main。函数的位置不是固定的,选项B错误;C程序中main。函数不能被其他函数调用,选项C错误;在C程序的函数中不能再定义另外一个函数,选项D正确。【2006年9月考题】(3)下列定义变量的语句中错误的是:一A)int_int; B)doubleint_;C)charFor;D)floatUS$;答案:D【分析】C语言中,用户定义的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,所以选项D错误。【2006年9月考题】(4)若变量x、y已正确定义并赋值,则以下符合C语言语法的表达式是:一A)++x,y=x—B)x+l=yC)x=x+10=x+y D)double(x)/10答案:A【分析】选项A是ー个逗号表达式,合法;赋值运算符的左边必须是ー个代表某一存储单元的变量名,或是代表某存储单元的表达式,所以B和C错误;选项D中的double(x)书写错误,若改为(double)x/10则正确。答案是A。【2006年9月考题】(5)以下关于逻辑运算符两侧运算对象的叙述中正确的是:—A)只能是整数0或1 B)只能是整数〇或非〇整数C)可以是结构体类型的数据 D)可以是任意合法的表达式答案:D【分析】逻辑表达式的运算结果为1或0,而在逻辑运算符两侧的运算对象可以是任意合法的表达式。所以答案是D。【2006年9月考题】(6)若有定义int、x,y:并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是:一A)(x-y>0) B)(x-y<0) C)(x-y<0Ix-y>0) D)(x-y==0)答案:C【分析】条件表达式的一般形式为:el?e2:e3»其中el、e2和e3是三个运算量,它们可以是算数表达式。条件运算的过程是:当el的值非零(大于零或小于零),则此条件表达式的结果值是e2。否则,若el的值为零,则条件表达式的结果为e3。所以答案是C。【2006年9月考题】(7)有以下程序main(){intx,y,zx=y=l;z=x++,y++,++y;printf("%d,%d,%d\n”,x,y,z);)程序运行后的结果是:一A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,l答案:C【分析】赋值运算符“=”的优先级高于逗号运算符",'因此赋值语句z=x++,y++,++y;等价于(z=x++),y++,++y;。表达式x++中的“++”运算符是后缀运算符,所以变量z的值被赋值为当前x的值,即为1,然后x的值增加1,变为2;执行语句y++,++y后,y的值变为3。所以答案是C。【2006年9月考题】(8)以下选项中,值为1的表达式是:一A)l-'O' B)1-'\O' C)T"〇 D)'\〇'-'〇'答案:B【分析】NULL常用へ(T表示,在ASCII码中,其代码值为0。所以表达式1ーへ(T的值为1。答案是Bo【2006年4月考题】(9)以下不合法的用户标识符是:一A)j2_KEY B)Double C)4d D)_8_答案:C【分析】C语言中,用户定义的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,所以选项C错误。答案是C。【2006年4月考题】(10)以下不合法的数值常量是:-A)011 B)lel C)8.0E0.5 D)Oxabcd答案:C【分析】C语言中,ハ进制数用数字〇开头,所以选项A正确;实型常量可用小数形式和指数形式表示,其中指数形式以“e”或“E”后跟ー个整数来表示以10为底的哥数,但是字母e或E之前必须要有数字,且e或E之后的指数形式必须为整数,所以选项C错误:十六进制数以Ox或者0X开头,所以选项D正确。答案是C。【2006年4月考题】(11)以下不合法的字符常量是:A)'\018' B)'V" C)'\\' D)*\xcc'答案:A【分析】要表示一个转义字符常量,必须以ー个反斜线开头后跟ー个特定的字符,用来代表某ー特定的ASCII字符,这些字符常量也必须括在ー对单引号内。要将反斜杠字符へ赋给变量a,则表达式应为chara=N,。在转义字符常量中,反斜线后的ハ进制数可以不用。开头,即可以用反斜线后跟ー个ハ进制数来表示ー个ASCII字符,所以选项A错误。【2006年4月考题】(12)表达式3.6-5/2+1.2+5%2的值是:A)4.3 B)4.8 C)3.3 D)3.8答案:D【分析】表达式3.6-5/2+1.2+5%2中,5/2的计算结果为2,5%2的计算结果为1,所以表达式等于3.6-2+1.2+1,值为3.8。所以,答案是D。【2006年4月考题】(13)以下四个程序中,完全正确的是:一#include<stdio.h>main();{/"programming*/printf("programming!\n");}#include<stdio.h>main(){/#/programming/*/printf("programming!\n");)C)#include<stdio.h>main()/"/"programming*/*/printf(ttprogramming!\nM);}}D)include<stdio.h>main(){/"programming*/printf(kkprogramming!\n^);}答案:B【分析】选项A中,main。函数后多加了一个分号,选项A中的程序错误;注释不能嵌套,所以选项C错误:选项口中,在包含头文件的时候,include前应该加上符号#。所以答案是B。【2006年4月考题】(14)以下叙述中错误的是:A)C语言源程序经编译后生成后缀为.obj的目标程序。B)C程序经编译、连接步骤之后才能形成一个真正可执行程序的二进制机器指令文件。。用C语言编写的程序称为源程序,它以ASCII代码的形式存放在ー个文本文件中。D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令。答案:D【分析】C语言源程序经过编译之后生成后缀为.obj的目标程序,选项A正确:C程序经过编译、连接后才能形成一个可执行的二进制机器指定文件,选项B正确;用C语言编写的程序称为源程序,它以ASCII代码形式存放在ー个文本文件中,如.c文件,选项C正确;C语言中的每条可执行语句将被转换成二进制的机器指令;非执行语句不被转换成二进制的机器指令,所以选项D错误。答案是D。【2006年4月考题】(15)以下叙述中错误的是:A)算法正确的程序最终一定会结束 B)算法正确的程序可以有零个输出C)算法正确的程序可以有零个输入D)算法正确的程序对于相同的输入一定有相同的结果答案:B【分析】算法具有五个基本特性,分别是有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。所以选项B错误。答案是B。【2006年4月考题】(16)以下叙述中错误的是:—A)C语言程序必须由一个或ー个以上的函数组成B)函数调用可以作为ー个独立的语句存在C)若函数有返回值,必须通过return语句返回 D)函数形参的值也可以传回给对应的实参答案:D【分析】C程序必须由一个或ー个以上的函数组成,选项A正确;函数调用可以作为ー个独立的语句存在,选项B正确;若函数有返回值,必须通过return语句返回;选项C正确;C语言中,数据只能从实参单向传递给形参,称为“按值”传递,所以选项D错误。【2006年4月考题】(17)以下叙述中错误的是:A)C程序中的#include和#define行均不是C语句B)除逗号运算符外,赋值运算符的优先级最低C)C程序中,j++;是赋值语句D)C程序中,+、ー,・、/、%号是算数运算符,可用于整型和实型数的运算答案:D【分析】在C语言中,凡是以“が’号开头的行,被称为“编译预处理”命令行,所以C程序中的#include和#define行均不是C语句,选项A正确:C语言中逗号运算符优先级最低,赋值运算符的优先级仅仅比逗号运算符高,选项B正确;C程序中,j++;是赋值语句,它相当于语句j=j+l;,选项C正确;C程序中,+、ー、*、%号是算数运算符,其中%运算符的运算对象只能是整型,所以选项D错误,答案是D。【2005年4月考题】(18)以下叙述中错误的是:A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大小写字母代表不同标识符答案:A【分析】程序中使用的用户标识符除要遵循起名规则外,还应注意做到“见名知意”,所以选项B正确;用户所定义的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,所以选项C正确;用户所定义的标识符中,大写字母和小写字母都被认为是两个不同的标识符,所以选项D正确;C语言中规定了一批标识符,它们在程序中代表着固定含义,不能另作它用,所以选项A错误。答案是A,【2005年4月考题】(19)以下叙述中错误的是:一A)C语句必须以分号结束 B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加上分号就构成赋值语句答案:C【分析】C语句必须以分号结束,所以选项A正确;复合语句是用花括号把若干语句括起来构成的一个语句组,ー个复合语句在语法上视为一条语句;所以选项B正确;在ー个赋值表达式末尾加上分号就构成了赋值表达式,所以选项D正确:仅仅ー个分号也可以构成一条语句,称为空语句,但是随意加上分号有时也会导致逻辑错误,空语句并不能随意出现在程序任何位置,所以选项C错误,答案是Co【2005年9月考题】(20)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是:一A)k%2 B)k%2==l C)(k%2)!=0 D)!k%2==l答案:D【分析】当把四个选项中的表达式用作if语句的控制表达式时,当k为奇数时,选项A、B、C中的表达式的值不等于。(值为真):当k为偶数时,选项中A、B、C、中的表达式等于〇(值为假)。选项D中的表达式!k%2可以写成(!k)%2,表示的意思是k等于。,!k%2的值为1;k不等于。时,!k%2的值为。。所以答案是Do【2005年9月考题】(21)以下不能正确计算代数式やsi/(外值的C语言表达式是:一A)l/3*sin(l/2)*sin(l/2) B)sin(O.5)*sin(O.5)/3C)pow(sin(0.5),2)/3 D)l/3.0*pow(sin(1.0/2),2)答案:A【分析】选项A中由于!/3的计算结果为0,所以整个表达式的值为〇〇所以答案是Ao【2005年9月考题】(22)设有定义:intk=l,m=2;floatf=7;,则以下选项中错误的表达式是:A)k=k>=k B)-k++ C)k%int(f) D)k>=fi>=m答案:C【分析】在C语言中,强制类型转换表达式的形式为:(类型名)(表达式)所以选项C错误,如果把选项C改成k%(int)f,则正确〇【2005年9月考题】(23)设有定义,inta=2,b=3,c=4;,则以下选项中值为。的表达式是:A)(!a=l)&&(!b==0)B)(a<b)&&!clllC)a&&b D)all(b+b)&&(c-a)答案:A【分析】!是逻辑非运算符,运算符!的优先级高于=,在选项A中,!a的值是。而不是1,所以表达式(!a==l)的值为0,&&是逻辑与运算符,只要它的ー个运算符为0,则结果为0.所以表达式(!a==l)&&(!b==O)的值为〇〇答案是Ao【2005年9月考题】(24)有以下程序段intk=0.a=l,b=2,c=3;k=a<b?b:a;k=k>c?c:k;执行该程序段后,k的值是:一A)3 B)2 C)1 D)0答案:B【分析】首先执行语句k=a<b?b:a;,由于a<b,所以把变量b的值赋给变量k,k的值变为2;然后执行语句k=k>c?c:k;,由于k<c,所以把变量k的值赋给变量k,k的值仍为2〇【2005年4月考题】(25)算法具有五个特性,以下选项中不属于算法特性的是:一A)有穷性 B)简洁性 C)可行性 D)确定性答案:B【分析】算法具有五个基本特征,分别是有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。所以答案是B。【2005年4月考题】(26)以下选项中可作为C语言合法常量的是:一A)-80. B)-080 C)-8el,O D)-80.0e答案:A【分析】选项A是实数一80.0的常量形式,选项B试图表示一个ハ进制的负数,但是ハ进制数只能用。〜7来表示;选项C和D用指数形式来表示实数,但是e或E后面的指数必须是整数。所以,答案是Ao【2005年4月考题】(27)以下叙述中正确的是:A) 用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D) 用C程序实现的算法可以既没有输入也没有输出答案:C【分析】根据算法的特征,ー个算法可以没有输入,但至少应该有一个输出,算法的目的是求解,这些解只能通过输出オ能得到。所以答案是C。【2005年4月考题】(28)以下不能定义为用户标识符是:一A)Main B)_0 C)_int D)sizeof答案:D【分析】sizeof是C语言中的操作符,不能用来做用户标识符,所以答案是D。【2005年4月考题】(29)以下选项中,不能作为合法常量的是:—A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0答案:B【分析】要用指数形式来表示实型常数,在字母e或E前必须有数字,且e或E后的指数必须为整数,而选项B中,e后的指数为0.4,不是ー个整数,答案是B。【2005年4月考题】(30)数字字符〇的ASCII值为48,若有以下程序main(){chara=T,b='2':printf("%c,”,b++);printf(',%d\n",b-a);)程序运行后的输出结果是:—A)3,2 B)50,2 C)2,2 D)2,50答案:C【分析】第一个printf语句输出b的值(字符2)和一个逗号,然后b自加1,变为3;第二个printf语句输出b和a之差,即整数2。所以输出的结果是2,2,答案是C。【2005年4月考题】(31)有以下程序main(){intm=12,n=34;printf("%d%d'',m++,++n); printf(u%d%d\n,,,n++,++m);}程序运行后的输出结果是:一A)12353514 B)12353513 C)12343514 D)12343513答案:A【分析】在第一个printf语句中,输出m++的值12和++n的值35,输出后m和n的值分别为13和35;在第二个printf语句中,输出n++的值35和++m的值14,输出后m和n的值分别为14和36。所以,程序运行后输出的结果是12353514.答案是A。【2005年4月考题】(32)有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-l);printf("%d,%d\n”,a,b);)程序运行后的结果是:—A)6,1 B)2,l C)6,0 D)2,0答案:B【分析】/是整数除法运算符,%是整数取模运算符,d/10的值为2,2%9的值为2,所以,a的值为2;&&是逻辑与运算符,a和一1都是非。值,所以,b的值为真,即1。程序运行后的输出结果是2,1,答案是B。【2005年4月考题】(33)有以下程序main(){inti=lj=2,k=3;if(i++=1&&(++j==3llk++==3))printf("%d%d%d\n”,i,j,k);)程序运行后的输出结果是:—A)123 B)2 3 4 C)2 2 3 D)23 3答案:D【分析】表达式i++==l的值为真,所以程序还要计算(++j==3llk++==3)的值,因为++j==3的值为真,程序不用计算k++==3的值已经能判定(++j==3llk++==3)的值为真,这种现象称为“短路”。所以,在本题中,i和j均执行了自加1操作,而k保持不变。输出时,i、j、k的值分别是2、3、3,答案是D。二、填空题【2007年4月考题】(1)执行以下程序后的输岀结果是ー〇main()inta=10;a=(3*5,a+4);printf("a=%d\n”,a);)答案:a=14【分析】语句a=(3*5,a+4);中,逗号表达式3*5,a+4的值为14,所以执行语句printf("a=%d\n”,a);,将输出a=14。【/r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拉伸放松动作教学规范
- 老年人康复按摩护理操作规范
- 枣树龟甲幼虫越冬防治技术指引
- 农药经营店进货验收管理细则
- 有机肥生产质量控制技术规范
- 减脂塑形轻食食谱搭配指南
- 手扶拖拉机田间驾驶安全制度
- 荔枝冷链运输温度控制实施方案
- 危机事件公关处理手册
- 危险化学品重大隐患排查治理方案
- 2026湖北武汉首义科技创新投资发展集团有限公司招聘8人笔试历年备考题库附带答案详解
- (四模)新疆2026年高三普通高考五月适应性文科综合试卷(含答案及解析)
- 邮政寄递活动方案策划(3篇)
- 2026四川宜宾市科教产业投资集团有限公司下属子公司第一批自主招聘33人考试备考题库及答案解析
- 景德镇辅警考试2026真题
- 2026中国氢能源基础设施建设与政策支持分析报告
- (二模)2026年广州市普通高中高三毕业班综合测试(二)物理试卷(含答案及解析)
- 2025年河北省石家庄市八年级地生会考考试试题及答案
- 交叉作业审批制度
- 初中八年级英语下册 Unit 7 Natural Disasters 写作提升课:灾害事件报道与个人经历叙述教案
- 江苏国企社招笔试内容题库
评论
0/150
提交评论