版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级C语言(C语言基础知识)机试模拟试卷2(共9套)(共251题)国家二级C语言(C语言基础知识)机试模拟试卷第1套一、选择题(本题共31题,每题1.0分,共31分。)1、以下叙述中正确的是A、程序必须包含所有三种基本结构才能成为一种算法B、如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达C、只有简单算法才能在有限的操作步骤之后结束D、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令标准答案:D知识点解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法+数据结构才是程序,结构化的程序南顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。2、以下选项中不合法的标识符是A、FORB、&aC、printD、_00标准答案:B知识点解析:介法的标识符要满足组成字符为a~z以及A~z,数字字符0到9和下划线,其中数字不开头,不能是关键字。选项B)中,&不属于组成字符,是错误的。3、以下选项中,能用作数据常量的是A、115LB、0118C、1.5e1.5D、o115标准答案:A知识点解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0-7,第一个字符为0,而不是o。指数法表示时,指数部分须为整犁,选项A)中数字后加入L是说明此变量为长整型,是正确的常量表示形式。4、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A、连接符B、大写字母C、数字字符D、下划线标准答案:A知识点解析:在C语言中,合法标识符的命令规则是:标识符可以由字母、数字或下划线组成,并且第一个字符必须为字母或下划线。在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。选项A)是连字符,不在C语言规定的命名变量标识符的范围内。5、以下选项中,能用作用户标识符的是A、_O0_B、8_8C、voidD、unsigned标准答案:A知识点解析:在C语言中,用户的标识符只能由字母或下划线开始。一般强调文见其义的命名方法。仍是C语言中的保留字不能用作用户的标识符。而选项C)和D)全部为保留字,选项B)中以数字开头,这些都不止确。6、下列定义变量的语句中错误的是A、floatUS$;B、doubleint;C、charFor;D、int_int;标准答案:A知识点解析:C语言规定,变量的标识符只能由字母、数字或下划线3种字符组成,且首字符必须为字母或下划线。存C语言中大写字母和小写字母被认为是两个不同的字符。选项B)定义的变量标识符int和选项D)定义的变量标识符int与C语言的关键字jnt是不同的,是正确的变量标识。选项C)定义的变量标识符For与C语言中的关键字for是两个不同的标识符,而在选项A)包含有特殊字符$,因而其不符合C语言的变量命名规定。7、以下选项中关于C语言常量的叙述错误的是A、常量分为整型常量、实型常量、字符常量和字符串常量B、经常被使用的变量可以定义成常量C、常量可分为数值型常量和非数值型常量D、所谓常量,是指在程序运行过程中,其值不能被改变的量标准答案:B知识点解析:常量指在程序运行过程中,其值小能被改变的量。常最分为整型常量(即整常数)、实型常量、字符型常量和字符串常量。常量也可以按数据类犁分为为数据常量和非数据常量。变量是指存程序运行过程中,其值能被改变的量。8、以下选项中,不合法的C语言用户标识符是A、AaBcB、a_bC、abD、_1标准答案:B知识点解析:在C语言中的用户标识符只能由字母,数字和下划母组成,并且第一个字符必须是字母或下划线,在选项A)中出现了非法的字符--。9、以下关于C语言数据类型使用的叙述中错误的是A、若要保存带有多位小数的数据,可使用双精度类型B、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型C、若只处理“真”和“假”两种逻辑值,应使用逻辑类型D、整数类型表示的自然数是准确无误差的标准答案:C知识点解析:在C语言中没有定义逻辑类型,而是用O代表假,用非零代表真。10、以下选项中不能用作C程序合法常量的是A、’\123’B、1,234C、123D、\x7D标准答案:B知识点解析:选项B)中的1,234在两侧加双引号才是C程序的合法字符串常量。11、阅读以下程序#includemain(){intcase;floatprintF;printf("请输入2个数:");scanf("%d%f",&case,&printF);prin七f("%d%f\n",case,printF);}该程序在编译时产生错误,其出错原因是A、定义语句出错,printF不能用作用户自定义标识符B、定义语句出错,case是关键字,不能用作用户自定义标识符C、定义语句无错,scanf不能作为输入函数使用D、定义语句无错,printf不能输出case的值标准答案:B知识点解析:case是C语言中的一个关键字,不能用作用户标识符来使用,所以这段程序代码在编译时就会出错。12、以下选项中合法的标识符是A、1-1B、1_1C、_11D、1_标准答案:C知识点解析:本题考台标识符定义。合法标识符的要求是由下划线、英文大小写字母和数字组成的字符串,且第一个字符必须是字母或下划线。13、关于C语言的符号常量,以下叙述中正确的是A、符号常量的符号名是标识符,但必须大写B、符号常量在整个程序中其值都不能再被重新定义C、符号常量是指在程序中通过宏定义用一个符号名来代表一个常量D、符号常量的符号名必须是常量标准答案:C知识点解析:在C语言苦程序中,用一个符号名来代表一个常量,称为符号常量。注意:这个符号名必须在程序中进行特别的“指定”,并符合标识符的命名规则。一般在程序中都是利用宏定义来定义符号常量的,在代码中可以利用undef来结束符号常量的定义,然后进行重新定义,符号常量的大小写并没有特别的规定,一般时候为了和变量区分利用人写。14、关于C语言的变量,以下叙述中错误的是A、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后才能使用D、由三条下划线构成的符号名是合法的变量名标准答案:B知识点解析:变量是指存程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单冗。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。15、以下选项中不属于C语言标识符的是A、用户标识符B、关键字C、常量D、预定义标识符标准答案:C知识点解析:C语言的标识符可分为以下3类:①关键字。C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如,int、dotlble、if、else、while、for等。②预定义标识符。即预先定义并具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。16、以下选项中合法的变量是A、5aB、A%C、_10_D、sizeof标准答案:C知识点解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成如下:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线;因此选项A)中数字开头,选项B)出现了非法字符%,而选项D)中sizeof为关键字,不能为变量命名。17、以下叙述中正确的是A、标识符的长度不能任意长,最多只能包含16个字符B、语言中的关键字不能作变量名,但可以作为函数名C、用户自定义的标识符必须“见名知义”,如果随意定义,则会出编译错误D、标识符总是由字母、数字和下划线组成,且第一个字符不得为数字标准答案:D知识点解析:标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。C语言合法标识符的命名规则是:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线;③大写字母与小写字母被认为是两个不同的字符;④C语言规定了一个标识符允许的字符个数,为32,超过的字符将不被识别。C语言的标以符可分为以下3类:①火键字,不能用于为自定义标识符命名。②预定义标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知义,但是没有特殊规定。18、C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A、关键字可用作用户标识符,但失去原有含义B、在标识符中大写字母和小写字母被认为是相同的字符C、用户标识符可以由字母和数字任意顺序组成D、预定义标识符可用作用户标识符,但失去原有含义标准答案:D知识点解析:预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin等和编译预处理命令名(如define和include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。19、以下叙述中错误的是A、常量可以用一个符号名来代表B、数值型常量有正值和负值的区分C、常量是在程序运行过程中值不能被改变的量D、定义符号常量必须用类型名来设定常量的类型标准答案:D知识点解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下:#define<符号常量名>(常量)其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符。20、以下选项中,合法的一组C语言数值常量是A、12.0Xa234.5e0B、028.5e.3-0xfC、.1774e1.50abcD、0x8A10.0003.e5标准答案:A知识点解析:八进制数其开头必须是数字“0”,其数字包括0~7,而在选项B)中,028是错误的。浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须要有数字,且e或E之后的指数必须为整数,而选项C)中4e1.5是错误的。在选项D)中,整型数据10,000的表示形式是错误的。21、C源程序中不能表示的数制是A、八进制B、十进制C、二进制D、十六进制标准答案:C知识点解析:在C语言的源程序中,数值可以用十进制、八进制和十六进制来表示。不用二进制来表示。22、以下叙述中正确的是A、在C程序中的八进制和1十六进制,可以是浮点数B、八进制数的开头要使用英文字母o,否则不能与十进制区分开C、整型变量可以分为int型、short型、long型和unsigned型四种D、英文大写字母X和英文小写字母X都可以作为二进制数字的开头字符标准答案:C知识点解析:整型变量分为以下4种类型:①基本型:以int表示。②短整型:以shortint表示,或以short表示。③长整型:以longint表示,或以long表示。④无符号型:以unsignedint表示,选项C)正确,实型常量仅有十进制表示形式,八进制以数字0开头,十六进制开头为0x或者0X,不是二进制。23、以下选项中合法的常量是A、2.7eB、999C、123E0.2D、0Xab标准答案:D知识点解析:0xab是十六进制表示的常量。24、以下选项中能表示合法常量的是A、\007B、1.5E2.0C、’\’D、1,200标准答案:A知识点解析:选项D),1.200中间不能有逗号,否则编译时会认为是1或出错。选项B),2.0错误,必须为整数。选项C),要表示字符斜杠常量’\’.应该在反斜杠的前面再加上一个反斜杠。选项A)为字符串常量,为正确选项。25、以下选项中可用作C程序合法实数的是A、3.0e0.2B、E9C、.1e0D、9.12E标准答案:C知识点解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对,用指数形式表示的实数米说,需要注意的赴字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数。26、以下不合法的数值常量是A、1e1B、011C、0xabcdD、8.0E0.5标准答案:D知识点解析:实型常量又称为实数或浮点数。在C语言中,可以用两种形式表示一个实型常量。①小数形式是由数字和小数点组成的一种实数表示形式,这种表示形式的常量必须要有小数点。②指数形式用以“e”或“E”后跟一个整数来表示以10为底的幂数。C语言的沿法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。因为选项D)中字母E后面的指数为小数形式,所以选项D)这种表示方法不合法。27、以下选项中正确的定义语句是A、doublea=b=7:B、doublea;b;C、double,a,b;b=7;D、doublea=7,标准答案:D知识点解析:在C语言中,可以用一条语句同时定义几个同类型的变量,变量之间用逗号隔开。28、若有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是A、5.175000B、5.169000C、5.170000D、5.168000标准答案:B知识点解析:(int)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三何小数,把第四四舍五入。29、以下选项中合法的实型常量是A、-914B、3.13e-2.1C、0D、2.0*10标准答案:A知识点解析:实型常量又称实数或浮点数,一股用小数形式或指数形式来表示。实型常量分为以下两种形式:①小数形式:小数形式是由数字和小数点组成的一种实数表示形式。例如0.345、123、0.0等是合法的实数。这种表示形式必须要有小数点。②指数形式:在C语言中,用“e”或“E”后跟一个整数来表示以10为底的幂数。注意:字母“e”或“E”之前必须要有数字,后面的指数必须为整数。选项B)中,e后必须为整数,选项C)没有小数点,而选项D)则出现非法字符*。30、C语言中double类型数据占字节数为A、4B、12C、8D、16标准答案:C知识点解析:double类型所占字节为8。31、以下叙述中正确的是A、整型常量和实型常量都是数值型常量B、常量的类型不能从字面形式上区分,需要根据类型名来决定C、预定义的标识符是C语言关键字的一种,不能另作它用D、只能在函数体内定义变量,其他地方不允许定义变量标准答案:A知识点解析:整型常量和实型常最都是数值型常量,选项A)止确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为0~9等,选项B)错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项C)错误;变量可以定义在程序中任何的地方,属于不同的变量,选项D)错误。国家二级C语言(C语言基础知识)机试模拟试卷第2套一、选择题(本题共25题,每题1.0分,共25分。)1、以下叙述中正确的是A、C程序书写格式严格,要求一行内只能写一个语句B、C程序书写格式自由,一个语句可以写在多行上C、C程序中的注释只能出现在程序的开始位置和语句的后面D、剧C语言编写的程序只能放在一个程序文件中标准答案:B知识点解析:本题主要考查的是C语言结构中的源程序书写格式这个知识点,在C语言中注释部分对程序的运行结果不产乍任何影响,它可以出现在仟意位置;C语言书写自由,一行内可以写多个语句,一个语句可以写在多行上:由于C语苦编写的程序有很好的移植性,可以放在多个程序文件中。2、以下关于C语言的叙述中正确的是A、C语言中的变量可以在使用之前的任何位置进行定义B、在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致C、C语言的数值常量中夹带空格不影响常量值的正确表示D、C语言中的注释不可以夹在变量名或关键字的中间标准答案:D知识点解析:C语言中的注释可以出现在程序中的任何位置,但是不能夹在变量或者关键字之间;C语言的变量在函数开始位置进行定义,也可以在变量使用前位置定义;一个浮点数可以和一个整数相加,运算符两侧的运算类型也可以不一致;数值常最中不允许夹带空格。3、有以下程序#includemain(){inta=0,b=0;/*给a赋值a=10;b=20:给b赋值*/printf("a+b=%d\n",a+b);/*输出计算结果*/}程序运行后的输出结果是A、a+b=30B、a+b=10C、出错D、a+b=0标准答案:D知识点解析:C语言规定,在字符“/*”和其后紧跟的第一个字符“*/”中间的部分是注释内容,且注释部分的内容不参与程序的编译和运行,因此,本题中程序语句“a=10;b=20;”没有执行。4、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是A、一条C语句可能会被转换成多条机器指令B、一条C语句对应转换成一条机器指令C、一条C语句可能会被转换成零条机器指令D、某种类型和格式的C语句被转换成机器指令的条数是崮定的标准答案:B知识点解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语言条数和机器指令的条数不是一对一的关系。5、以下选项中不属于C语言程序运算符的是A、sizeofB、()C、<>D、&&标准答案:C知识点解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。6、若变量已正确定义并赋值,以下不能构成C语句的选项是A、A=a+b;B、B++;C、a=a+bD、A?a:b;标准答案:C知识点解析:C语言语句的农示为分号,不加分号的表达式不能看成C语句。7、以下叙述中正确的是A、程序必须包含所有三种基本结构才能成为一种算法B、如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达C、只有简单算法才能在有限的操作步骤之后结束D、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令标准答案:D知识点解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来捕述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。8、以下选项中不合法的标识符是A、FORB、&aC、printD、——00标准答案:B知识点解析:合法的标识符要满足组成字符为a~z以及A~z,数字字符0到9和下划线,其中数字不开头,不能是关键字。选项B中,&不属于组成字符,是错误的。9、以下选项中,能用作数据常量的是A、115LB、0118C、1.5e1.5D、0115标准答案:A知识点解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0-7,第一个7符为0,而不是o。指数法表示时,指数部分须为整型,选项A中数字后加入L是说明此变量为长整型,是正确的常量表示形式。10、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A、连接符B、大写字母C、数宁字符D、下划线标准答案:A知识点解析:在C语言中,合法标识符的命令规则是:标识符可以由字母、数字或下划线组成,并且第一个字符必须为字母或下划线。在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。选项A是连字符,不在C语言规定的命名变量标识符的范围内。11、以下选项中,能用作用户标识符的是A、_0_B、8_8C、voidD、unsigned标准答案:A知识点解析:住C语言中,用户的标识符只能由字母或下划线开始。一般强调义见其义的命名方法。但是C语音中的保留字不能用作用户的标识符。而选项C和D)全部为保留字,选项B中以数字开头,这些都不正确。12、下列定义变量的语句中错误的是A、floatUS$;B、doubleinL;C、charFor;D、im_int;标准答案:A知识点解析:C语言规定,变量的标识符只能由字母、数字或下划线3种字符组成,且首字符必须为字母或下划线。在C语言中人写字母和小写字母被认为是两个不同的字符。选项B定义的变量标识符int和选项D定义的变量标识符int与C语言的关键字int是不同的,是正确的变量标识。选项C定义的变量标识符For与C语言中的关键字for是两个不同的标识符,而在选项A包含有特殊字符$,因而其不符合C语言的变量命名规定。13、以下选项中关于C语言常量的叙述错误的是A、常量分为整型常量、实型常量、字符常量和字符串常量B、经常被使用的变量可以定义成常量C、常量可分为数值型常量和非数值型常量D、所谓常量,是指在程序运行过程中,其值不能被改变的量标准答案:B知识点解析:常量指在程序运行过程中,其值不能被改变的量。常量分为整型常量(即整常数)、实型常量、字符型常量和字符串常量。常量也可以按数据类型分为为数据常量和非数据常量。变量是指在程序运行过程中,其值能被改变的量。14、以下选项中,不合法的C语言用户标识符是A、AaBcB、a-bC、a_bD、_1标准答案:B知识点解析:在C语言中的用户标识符只能由字母,数字和下划母组成,并且第一个字符必须是字母或下划线,在选项A中出现了非法的字符--。15、以下关于C语言数据类型使用的叙述中错误的是A、若要保存带有多位小数的数据,可使用双精度类型B、若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型C、若只处理“真”和“假”两种逻辑值,应使用逻辑类型D、整数类型表示的自然数是准确无误差的标准答案:C知识点解析:在C语言中没有定义逻辑类型,而是用0代表假,用非零代表真。16、以下选项中不能用作C程序合法常量的是A、’\123’B、1.234C、123D、\x7D标准答案:B知识点解析:选项B中的1,234在两侧加双引号才是C程序的合法字符串常量。17、阅读以下程序#includetma,in(){intcase:floatprintF;printf("请输入2个数:"):scanf("%d%f",&case,&printF);printf("%d%t5n",case,printF);}该程序在编译时产生错误,其出错原因是A、定义语句出错,printF能用作用户自定义标识符B、定义语句出错,case是关键字,不能用作用户自定义标识符C、定义语句无错,scanf不能作为输入函数使用D、定义语句无错,printf能输出case的值标准答案:B知识点解析:case是C语言中的一个关键字,小能用作用户标识符米使用,所以这段程序代码在编译时就会处错。18、以下选项中合法的标识符是A、1.1B、11C、11D、1标准答案:C知识点解析:本题考查标识符定义。合法标识符的要求是由下划线、英文大小写字母利数字组成的字符串,且第一个字符必须是字母或下划线。19、关于C语言的符号常量,以下叙述中正确的是A、符号常量的符号名是标识符,但必须大写B、符号常量在整个程序中其值都不能再被重新定义C、符号常量是指在程序中通过宏定义用一个符号名来代表一个常量D、符号常量的符号名必须是常量标准答案:C知识点解析:在C语言程序中,用一个符号名米代表一个常量,称为符号常量。注意:这个符号名必须在程序中进行特别的“指定”,并符合标识符的命名规则。一般在程序中都是利用宏定义来定义符号常量的,在代码中可以利用undef。来结束符号常量的定义,然后进行重新定义,符号常量的火小写并没有特别的规定,一般时候为了和变量区分利用大写。20、关于C语言的变量,以下叙述中错误的是A、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后才能使用D、由三条下划线构成的符号名是合法的变量名标准答案:B知识点解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质t是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期问,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成宁符。程序中所有变量都必须先定义后使用。21、以下选项中不属于C语言标识符的是A、用户标识符B、关键字C、常量D、预定义标识符标准答案:C知识点解析:C语言的标识符可分为以下3类:①关键字。c语言预先规定了一批标识符,它们在程序中都代表着同定的含义,不能另作他用。这些字符称为关键字。例如,int、double、if、else、while、for等。②预定义标识符。即预先定义并具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。22、以下选项中合法的变量是A、5aB、A%C、10D、sizeof标准答案:C知识点解析:对于变量的命名要利用标识符命名,所谓标识符就赴C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成如下:①标识符由字母、数字和下划线组成:②第一个字符必须为宁母或下划线;因此选项A)中数字丌头,选项B)出现了非法宁符%,而选项D)中sizeof为关键字,不能为变量命名。23、以下叙述中正确的是A、标识符的长度不能任意长,最多只能包含16个字符B、语言中的关键字不能作变量名,但可以作为函数名C、用户自定义的标识符必须“见名知义’’,如果随意定义,则会出编译错误D、标识符总是由字母、数字和下划线组成,且第一个字符不得为数字标准答案:D知识点解析:标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。C语言合法标识符的命名规则是:①标识符由字母、数宁和下划线组成;②第一个字符必须为字母或下划线;③大写字母与小写字母被认为是两个不同的宁符;④C语言规定了一个标识符允许的宁符个数,为32,超过的字符将不被识别。C语言的标识符可分为以下3类:①关键字,不能用于为自定义标识符命名。②预定义标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知义,但是没有特殊规定。24、C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A、关键字可用作用户标识符,但失去原有含义B、在标识符中大写字母和小写字母被认为是相同的字符C、用户标识符可以由字母和数字任意顺序组成D、预定义标识符可用作用户标识符,但失去原有含义标准答案:D知识点解析:预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin等和编译预处理命令名(如define和include)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。25、以下叙述中错误的是A、常量可以用一个符号名来代表B、数值型常量有正值和负值的区分C、常量是在程序运行过程中值不能被改变的量D、定义符号常量必须用类型名来设定常量的类型标准答案:D知识点解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下:#define<符号常量名>(常量)其中,<符号常量名)用标识符,习惯上用人写字母,<常量>可以是数字常量,也可以是字符。国家二级C语言(C语言基础知识)机试模拟试卷第3套一、选择题(本题共30题,每题1.0分,共30分。)1、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A、C语言程序仅可以编译执行B、C语言程序仅可以解释执行C、C语言程序既可以编译执行又可以解释执行D、以上说法都不对标准答案:A知识点解析:C语言是编译型语言,只在编译链接后才能执行。2、以下选项中关于程序模块化的叙述错误的是A、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序标准答案:B知识点解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序,3、以下叙述中正确的是A、在C语言程序设计中,所有函数必须保存在一个源文件中B、在算法设计时,可以把复杂任务分解成一些简单的子任务C、只要包含了三种基本结构的算法就是结构化程序D、结构化程序必须包含所有的三种基本结构,缺一不可标准答案:B知识点解析:模块化设计思想,就是把复杂的任务分成简单的子任务,用函数或者过程描述子任务,C语言中一个程序可以包括多个源文件,每个源文件可以有若干个函数,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成,不一定全要包括这三种结构,而算法不等于程序。4、以下叙述中正确的是A、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B、C语言程序将从源程序中第一个函数开始执行C、main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等D、C语言规定必须用main作为主函数名,程序将从此开始执行标准答案:D知识点解析:C语言规定必须以main作为主函数名。程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个可执行的C程序都必须有一个且只能有一个主函数。一个C程序中可以包含任意多个不同的函数,但只能有一个主函数。程序要从main()函数开始执行,最后在main()函数中结束。5、以下叙述中正确的是A、程序的主函数名除main外,也可以使用Main或mainB、在C程序中,模块化主要是通过函数来实现的C、程序可以包含多个主函数,但总是从第一个主函数处开始执行D、书写源程序时,必须注意缩进格式,否则程序会有编译错误标准答案:B知识点解析:C语言中任何一个有效的程序都有且只能有一个main()函数,不能写成其他形式,一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。6、以下叙述中正确的是A、C程序中的每一行只能写一条语句B、简单C语句必须以分号结束C、C语言程序中的注释必须与语句写在同一行D、C语句必须在一行内写完标准答案:B知识点解析:C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上。C语言注释是比较自由的,可以写在一行或者多行。C语言规定每条语句和数据定义的最后必须有一个分号,分号是c语句的必要组成部分。7、以下选项中不属于C语言程序运算符的是A、sizeofB、()C、<>D、&&标准答案:C知识点解析:sizeof为测试内存的运算符,()为算*运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。8、以下不能定义为用户标识符是A、MainB、_0C、_intD、sizeof标准答案:D知识点解析:本题考查用户标识符。C语言中用户标识符只能由字母和数字组成,且必须以字母开头,不能和C语言的关键字相同。选项A)、B)和C)都符合要求,选项D)中的sizeof是C语言关键字,不能作为用户标识符。9、关于C语言中数的表示,以下叙述正确的是A、只要允许范围内整型数和实型数都能精确的表示B、只有整型数在允许范围内能精确无误的表示,实型数会有误差C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有用八进制表示的数才不会有误差标准答案:C知识点解析:本题考查C语言基本数据类型,整型数是有范围的,只在允许的范围内才能精确无误的表示,实型数由于存储长度限制存在误差。10、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A、连接符B、大写字母C、数字字符D、下划线标准答案:A知识点解析:在C语言中,合法标识符的命令规则是:标识符可以由字母、数字或下划线组成,并且第一个字符必须为字母或下划线。在C语言的标识符中,大写字母和小写字母被认为是两个不同的字符。选项A)是连字符,不在C语言规定的命名变量标识符的范围内。11、以下关于C语言数据类型使用的叙述中错误的是A、若要保存带有多位小数的数据,可使用双精度类型B、若要处理如“人员信息、”等含有不同类型的相关数据,应自定义结构体类型C、若只处理“真”和“假”两种逻辑值,应使用逻辑类型D、整数类型表示的自然数是准确无误差的标准答案:C知识点解析:在C语言中没有定义逻辑类型,而是用0代表假,用非零代表真。12、关于C语言的变量,以下叙述中错误的是A、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后才能使用D、由三条下划线构成的符号名是合法的变量名标准答案:B知识点解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标示符的规定,其中下划线是标识的组成字符。程序中所有变量都必须先定义后使用。13、以下叙述中错误的是A、常量可以用一个符号名来代表B、数值型常量有正值和负值的区分C、常量是在程序运行过程中值不能被改变的量D、定义符号常量必须用类型名来设定常量的类型标准答案:D知识点解析:C语言中,常常用一个标识符来代表一个常量。称为符号常量。符号常量在使用之前要先定义,定义格式:#define<符号常量名>(常量)其中,<符号常量名)用标识符,习惯上用大写字母.<常量>可以是数字常量,也可以是字符。14、以下选项中合法的常量是A、2.7eB、999C、123E0.2D、0Xab标准答案:D知识点解析:0xab是十六进制表示的常量。15、若有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000):则程序段的输出结果是A、5.175000B、5.169000C、5.170000D、5.168000标准答案:B知识点解析:(int)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三位小数,把第四位四舍五入。16、以下选项中,值为1的表达式是A、1-’0’B、’1’-0C、1-’\0’D、’\0’-’0’标准答案:C知识点解析:在C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的ASCII码值再参与整数运算。字符“’1’”对应的ASCII码值是49,字符’0’对应的ASCII码值是48,字符“’\0’”是字符串结束标识符NuLL,其对应的ASCII码值是0。17、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)0的程序段是A、n=0;while((ch=getchar())!=’\n’)n++;B、n=0;while(getchar()1=’\n’)n++;C、for(n=0;getchar())i=’n’;n++);D、n=0;for(ch=getchar0;ch!=’ha’;n++);标准答案:D知识点解析:本题主要考查循环的使用。选项A)中,首先把输入的字符放到ch变量中,然后判断ch是否为回车符,如果不是则n增加,循环结束条件是输入的是回车符;选项B)中,直接判断getchar函数的返回值是否是回车符,如果不是则n增加,输入回车符循环结束:选项C)使用for循环,n的初值为0,每次循环n增加1,循环的结束条件是输入回车符;选项D)中for循环的初始条件ch值为输入的字符,只有一次输入,不能统计输入的字符数。如果第一次输入的不是回车符循环不能结束。18、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’);C、printf("%c\n",65);D、printf("%c\n",’B’-1);标准答案:B知识点解析:在选项B)的输出函数中,大写字符’A’以整型数据的形式输出。19、以下选项中非法的C语言字符常量是A、\b’B、\007’C、aa’D、\xaa’标准答案:C知识点解析:一个宁符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。20、以下叙述中正确的是A、字符常量在内存中占2个字节B、转义字符要用双引号括起来,以便与普通的字符常量区分开C、字符常量需要用单引号括起来D、字符常量是不能进行关系运算的标准答案:C知识点解析:在程序中用单引号把一个字符括起来作为字符常量。转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的AscIl字符,这些字符常量也必须括在一对单引号内,和整型常量一样,字符常量也可以进行关系运算的。21、有以下程序,程序运行后的输出结果是main(){chara=’H’;a=(a>=’A’&&a<=’Z’)?(a+321):a;printf("%c\n",a);}A、HB、AC、hD、a标准答案:C知识点解析:表达式a=(a>=’A’&&a<’Z’)?(a+32):a,为条件表达式,如果a是大写字符,则转换为小写字符存放到a中,否则不变。22、表达式:(int)((double)9/2)-9%2的值是A、0B、4C、3D、5标准答案:C知识点解析:这个表达式的计算过程为,首先求出9除以2的商等于4,再把其强制转化为实型数据为4.0,然后再强制转4,减去9对2求余数1,得到其结果等于3。23、不能正确表示数学式的表达式是A、a*b/cB、a/c*bC、a/b*cD、a*(b/c)标准答案:C知识点解析:表达式的含义为a乘以b除以c,选项C)正好曲解了这一个含义。24、若有定义:doublea=22;inti=0,k=18;则不符合C语言规定的赋值语句是A、i=(a+k)<=(i+k);B、a:a++,i++;C、i=a%11;D、i=!a;标准答案:C知识点解析:在C语言中,求余运算符的运算对象只能是整型,在题目中,变量a是一个双精型实型变量。25、若有定义语句:inta=3,b=2,c=1;以下选项中错误的赋值表达式是A、a=b=c+1;B、a=(b=4)=3;C、a=(b=4)+c;D、a=1+(b=c=4);标准答案:B知识点解析:本题主要考查赋值表达式,对于赋值表达式来说,赋值号“=”的左边一定为变量名,右边为一个C语言合法的表达式。26、若有定义和语句:inta,b;scanf("%d,%d,",&a,&b):以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A、3,5B、3,5,C、3,5D、3,5,4标准答案:C知识点解析:在格式控制字符串中插入其他字符。则在输入的时候应该据实加入到输入流中,不能随意加入空格等。否则无法得到正确的输入结果。27、若变量x、y己正确定义并贼值,以下符合C语言语法的表达式是A、++x,y=x-B、x+1=yC、x=x+10=x+yD、double(x)/10标准答案:A知识点解析:用逗号将表达式连接起来的式子称为逗号表达式。其表达式的一般形式为:表达式1,表达式2,……,表达式n。最后一个表达式的值就是此逗号表达式的值。所以选项A)为C语言中的逗号表达式。赋值表达式的左侧只能是变量,不能是常量或表达式。强制类型转换表达式的形式为:(类型名)(表达式),其中(类型名)称为强制类型转换运算符,数据类型两边的圆括号不能省略。28、若有定义“intx,y;”并已正确给变量赋值,则以下选项中与表达式“(x-y)?(x++):(y++)”中的条件表达式(x-y)等价的是A、(x-y<0)B、(x-y>0)C、(x-y<0||x-y>0)D、(x-y==0)标准答案:D知识点解析:条传表达式的形式如下:表达式1?表达式2:表达式3。其含义为当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,则求“表达式3”的值,这时“表达式3”的值就是整个表达式的值。本题条件表达式的执行顺序是先求解表达式“x-y”的值,若其值为非0(可以是正数,也可以是负数),则再求表达式“x++”的值,其值就是条件表达式的值:若表达式“x-y”的值为0,则再求表达式“y++”的值,其值就是条件表达式的值。29、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A、0B、2C、1D、不知道a的值,不能确定标准答案:C知识点解析:在逻辑表达式中,a||b,只有在a跟b都为0时,表达式的结果才为0。在题中所给的表达式中a要么等于1,要么不等于1,肯定会有一方的值不为真,表达式值为1。30、与数学表达式x≥y≥z对应的C语言表达式是A、(x>=y>=z)B、(x>=y)&&(y>=z)C、(x>=y)!(y>=z)D、(x>=y)||(y>=x)标准答案:B知识点解析:若要表示x大于等于y,同时y大于等于z,需要用逻辑与表达式连接。国家二级C语言(C语言基础知识)机试模拟试卷第4套一、选择题(本题共25题,每题1.0分,共25分。)1、以下叙述中错误的是A、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中C、C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D、C语言源程序经编译后生成后缀为.obj的目标程序标准答案:A知识点解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”。C语言编写的源程序就是一ASCII的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。2、下列叙述中错误的是A、C程序可以由多个程序文件组成B、一个C语言程序只能实现一种算法C、C程序可以由一个或多个函数组成D、一个C函数可以单独作为一个C程序文件存在标准答案:B知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。在C语言中一个算法是用函数来实现的。一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C语言程序可以实现多种算法。3、以下叙述中错误的是A、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法标准答案:C知识点解析:结构化程序由顺序结构、选择结构和循环结构3种基本结构组成。已经证明,由3种基本结构组成的算法可以解决任何复杂的问题。由3种基本结构所构成的算法称为结构化算法;由3种基本结构所构成的程序称为结构化程序。4、以下叙述中错误的是A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果标准答案:C知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应该具有以下5个特征:①有穷性。一个算法包含的操作步骤应该是有限的。也就是说,在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。②确定性。算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。③可行性。算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现。④有零个或多个输入。在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。⑤有一个或多个输出。算法的目的是为了求“解”,这些“解”只有通过输出才能得到。5、以下选项中关于程序模块化的叙述错误的是A、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序标准答案:B知识点解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。6、C语言源程序名的后缀是A、.exeB、.objC、.cD、.cp标准答案:C知识点解析:由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。源程序经过C编译程序编译生成后缀为“.obj”的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连接起来,生成后缀为“.exe”的可执行文件。7、关于算法,以下叙述中错误的是A、同一个算法对于相同的输入必能得出相同的结果B、一个算法对于某个输入的循环次数是可以事先估计出来的C、某个算法可能会没有输入D、任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕标准答案:D知识点解析:算法和程序不同,算法满足以下特性:算法有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指算法中的每一个步骤都必须有明确定义,不允许有模棱两可的解释,也不允许有多义性,因此对于相同的输入必有相同的输出,同时可以事先估计算法的时间复杂度,对于有循环的算法,以循环体内的循环次数来估测时间复杂度。8、以下不能用于描述算法的是A、程序语句B、E-R图C、伪代码和流程图D、文字叙述标准答案:B知识点解析:E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。描述算法的有流程图,盒图,伪代码,文字描述以及程序代码描述。9、以下叙述中正确的是A、程序的算法只能使用流程图来描述B、N-S流程图只能描述简单的顺序结构的程序C、计算机可以直接处理C语言程序,不必进行任何转换D、结构化程序的三种基本结构是循环结构、选择结构、顺序结构标准答案:D知识点解析:结构化程序有三种基本结构循环结构、选择结构、顺序结构,描述算法常见的有文字描述,流程图,盒图,伪代码等。N-S图为盒图,可以描述比较复杂的程序结构,而计算机不能直接处理C程序,只能处理二进制代码。10、以下叙述中正确的是A、在C语言程序设计中,所有函数必须保存在一个源文件中B、在算法设计时,可以把复杂任务分解成一些简单的子任务C、只要包含了三种基本结构的算法就是结构化程序D、结构化程序必须包含所有的三种基本结构,缺一不可标准答案:B知识点解析:模块化设计思想,就是把复杂的任务分成简单的子任务,用函数或者过程描述子任务,C语言中一个程序可以包括多个源文件,每个源文件可以有若干个函数,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成,不一定全要包括这三种结构,而算法不等于程序。11、以下叙述中正确的是A、每个后缀为.c的C语言源程序都应该包含一个main函数B、在C语言程序中,main函数必须放在其他函数的最前面C、每个后缀为.c的C语言源程序都可以单独进行编译D、在C语言程序中,只有main函数才可单独进行编译标准答案:C知识点解析:每一个C语言的文件或函数都可以单独编译,但只有main函数的才可以执行。12、有以下程序#include<stdio.h>main(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6平台上编译运行,程序运行后的输出结果是A、4,4B、2,4C、4,8D、10,6标准答案:C知识点解析:关键字sizeof用于测试不同类型变量所占的内存空间,返回所占的字节数。在VC编译系统中,整型变量占用4个字节的内存空间,而双精度型变量占用8个字节的内存空间。13、对于一个正常运行的C程序,以下叙述中正确的是A、程序的执行总是从程序的第一个函数开始,在main函数结束B、程序的执行总是从main函数开始,在程序的最后一个函数中结束C、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D、程序的执行总是从main函数开始标准答案:D知识点解析:一个C语言源程序无论包括了多少函数,在正常情况下总是从main函数开始执行,从main函数结束。14、计算机能直接执行的程序是A、目标程序B、可执行程序C、汇编程序D、源程序标准答案:B知识点解析:把由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”(后缀名为.obj),由汇编语言编写的程序称为“汇编程序”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制的机器指令。这种具有翻译功能的软件称为“编译程序”,每种高级语言都有与它对应的编译程序。C源程序经过C编译程序编译之后生成一个后缀为.obj的二制进文件(称为目标文件),这个目标程序要和C语言的库函数相链接生成一个后缀为.exe的文件,这个文件可以在操作系统中直接执行,称为可执行程序。15、以下叙述中正确的是A、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B、C语言程序将从源程序中第一个函数开始执行C、main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等D、C语言规定必须用main作为主函数名,程序将从此开始执行标准答案:D知识点解析:C语言规定必须以main作为主函数名。程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个可执行的C程序都必须有一个且只能有一个主函数。一个C程序中可以包含任意多个不同的函数,但只能有一个主函数。程序要从main()函数开始执行,最后在main()函数中结束。16、以下叙述中错误的是A、C程序在运行过程中所有计算都以二进制方式进行B、所有C程序都需要编译链接无误后才能运行C、C程序在运行过程中所有计算都以十进制方式进行D、C程序中字符变量存放的是字符的ASCII值标准答案:C知识点解析:计算机程序都是编译为二进制的代码,计算机才会执行。17、下列叙述中正确的是A、在C程序中main函数的位置是固定的B、C程序中所有函数之间都可以相互调用C、每个C程序文件中都必须要有一个main函数D、在C程序的函数中不能定义另一个函数标准答案:D知识点解析:暂无解析18、以下叙述正确的是A、C语言程序是由过程和函数组成的B、C语言函数可以嵌套调用,例如:fun(fun(x))C、C语言函数不可以单独编译D、C语言中除了main函数,其他函数不可作为单独文件形式存在标准答案:B知识点解析:在C语言中,允许函数的嵌套调用,即递归调用。在C语言中不存在过程的概念,在C语言中函数允许单独编译,可以作为单独的文件形式存在。19、C语言程序的模块化通过以下哪个选项来实现A、变量B、程序行C、函数D、语句标准答案:C知识点解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,实现程序的模块化设计。20、以下叙述中正确的是A、程序的主函数名除main外,也可以使用Main或_mainB、在C程序中,模块化主要是通过函数来实现的C、程序可以包含多个主函数,但总是从第一个主函数处开始执行D、书写源程序时,必须注意缩进格式,否则程序会有编译错误标准答案:B知识点解析:C语言中任何一个有效的程序都有且只能有一个main()函数,不能写成其他形式,一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。21、以下叙述中正确的是A、C语言程序总是从最前面的函数开始执行B、C语言程序总是从main函数开始执行C、C语言程序中main函数必须放在程序的开始位置D、C语言程序所调用的函数必须放在main函数的前面标准答案:B知识点解析:C语言中一个源程序都有一个且只能有一个main函数,即主函数;C语言规定必须用main作为主函数名。其后的一对圆括号中可以是空的,但不能省略。程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个程序都必须有一个且只能有一个主函数。一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而调用函数的定义位置和调用没有直接关系。22、C语言主要是借助以下哪种手段来实现程序模块化A、定义常量和外部变量B、使用丰富的数据类型C、使用三种基本结构语句D、定义函数标准答案:D知识点解析:C语言用函数实现软件的模块化设计。23、以下四个程序中,完全正确的是A、#include<stdio.h>main(){/*programming*/printf("programming!\n");}B、#include<stdio.h>main();{/*/Programming/*/printf("programming!\n");}C、#include<stdio.h>main(){/*programming*/printf("programming!\n");}D、include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}标准答案:B知识点解析:在选项A中,main()函数后面的分号是错误的,C语言在函数名后面不能有分号。在C语言中注释内容必须放在“/*”和“*/”之间,“/*”和“*/”必须成对出现,按语法规定在注释之间不可以再嵌套“/*”和“*/”。在选项C的程序段中注释语句之间有嵌套;所以选项C不正确。C语言用#include命令行来实现文件包含的功能。#include命令行的形式为:#include“文件名”,所以在选项D中include前面少了一个#符号,因而选项D不正确。24、以下关于结构化程序设计的叙述中正确的是A、结构化程序使用goto语句会很便捷B、一个结构化程序必须同时由顺序、分支、循环三种结构组成C、由三种基本结构构成的程序只能解决小规模的问题D、在C语言中,程序的模块化是利用函数实现的标准答案:B知识点解析:C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。但是程序可以包含一种或者几种结构,不是必须包含全部三种结构。自从提倡结构化设计以来,goto就成了有争议的语句。首先,由于goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。Goto语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。25、以下叙述中正确的是A、C程序中的每一行只能写一条语句B、简单C语句必须以分号结束C、C语言程序中的注释必须与语句写在同一行D、C语句必须在一行内写完标准答案:B知识点解析:C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上。C语言注释是比较自由的,可以写在一行或者多行。C语言规定每条语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。国家二级C语言(C语言基础知识)机试模拟试卷第5套一、选择题(本题共25题,每题1.0分,共25分。)1、以下选项中,合法的一组C语言数值常量是A、12.0Xa234.5e0B、028.5e-3-0xfC、.1774e1.50abcD、0x8A10,0003.e5标准答案:D知识点解析:八进制数其开头必须是数字“0”,其数字包括0~7,而在选项B中,028是错误的。浮点数据的指数形式表示常量中,C语言规定字母e或E之前必须要有数字,且e或E之后的指数必须为整数,而选项C中4e1.5是错误的。在选项D中,整型数据10,000的表示形式是错误的。2、C源程序中不能表示的数制是A、八进制B、十进制C、二进制D、十六进制标准答案:C知识点解析:在C语言的源程序中,数值可以用十进制、八进制和十六进制来表示。不用二进制来表示。3、以下叙述中正确的是A、在C程序中的八进制和十六进制,可以是浮点数B、八进制数的开头要使用英文字母o,否则不能与十进制区分开C、整型变量可以分为int型、short型、long型和unsigned型四种D、英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符标准答案:C知识点解析:整型变量分为以下4种类型:①基本型:以int表示。②短整型:以shortint表示,或以short表示。③长整型:以longint表示,或以long表示。④无符号型:以unsignedint表示,选项C正确,实型常量仅有十进制表示形式,八进制以数字0开头,十六进制开头为0x或者0X,不是二进制。4、以下选项中合法的常量是A、2.7eB、999C、123E0.2D、0Xab标准答案:D知识点解析:0xab是十六进制表示的常量。5、以下选项中能表示合法常量的是A、\007B、1.5E2.0C、’\’D、1,200标准答案:D知识点解析:选项D,1200中间不能有逗号,否则编译时会认为是1或出错。选项B,2.0错误,必须为整数。选项C,要表示字符斜杠常量’\’,应该在反斜杠的前面再加上一个反斜杠。选项A为字符串常量,为正确选项。6、以下选项中可用作C程序合法实数的是A、3.0e0.2B、E9C、.1e0D、9.12E标准答案:C知识点解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数。7、以下不合法的数值常量是A、1e1B、011C、0xabcdD、8.0E0.5标准答案:D知识点解析:实型常量又称为实数或浮点数。在C语言中,可以用两种形式表示一个实型常量。①小数形式是由数字和小数点组成的一种实数表示形式,这种表示形式的常量必须要有小数点。②指数形式用以“e”或“E”后跟一个整数来表示以10为底的幂数。C语言的语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。因为选项D中字母E后面的指数为小数形式,所以选项D这种表示方法不合法。8、以下选项中正确的定义语句是A、doublea=b=7;B、doublea;b;C、double,a,b;D、doublea=7,b=7;标准答案:D知识点解析:在C语言中,可以用一条语句同时定义几个同类型的变量,变量之间用逗号隔开。9、若有以下程序段doublex=5.16894;printf("%f\n",(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是A、5.175000B、5.169000C、5.170000D、5.168000标准答案:B知识点解析:(int)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三位小数,把第四位四舍五入。10、以下选项中合法的实型常量是A、.914B、3.13e-2.1C、0D、2.0*10标准答案:A知识点解析:实型常量又称实数或浮点数,一般用小数形式或指数形式来表示。实型常量分为以下两种形式:①小数形式:小数形式是由数字和小数点组成的一种实数表示形式。例如0.345、.123、0.0等是合法的实数。这种表示形式必须要有小数点。②指数形式:在C语言中,用“e”或“E”后跟一个整数来表示以10为底的幂数。注意:字母“e”或“E”之前必须要有数字,后面的指数必须为整数。选项B中e后必须为整数,选项C没有小数点,而选项D则出现非法字符*。11、C语言中double类型数据占字节数为A、4B、12C、8D、16标准答案:C知识点解析:double类型所占字节为8。12、以下叙述中正确的是A、整型常量和实型常量都是数值型常量B、常量的类型不能从字面形式上区分,需要根据类型名来决定C、预定义的标识符是C语言关键字的一种,不能另作它用D、只能在函数体内定义变量,其他地方不允许定义变量标准答案:A知识点解析:整型常量和实型常量都是数值型常量,选项A正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为0~9等,选项B错误;预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项C错误;变量可以定义在程序中任何的地方,属于不同的变量,选项D错误。13、sizeof(double)是A、一个双精度型表达式B、一个整型表达式C、一个不合法的表达式D、一种函数调用标准答案:B知识点解析:sizeof关键字为C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。14、以下选项中,值为1的表达式是A、1-’0’B、’1’-0C、1-’\0’D、’\0’-’0’标准答案:C知识点解析:在C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为其对应的ASCⅡ码值再参与整数运算。字符’1’对应的ASCⅡ码值是49,字符’0’对应的ASCⅡ码值是48,字符’\0’是字符串结束标识符NULL,其对应的ASCⅡ码值是0。15、以下定义语句中正确的是A、charA=65+1,b=’b’;B、inta=b=0;C、floata=1,*b=&a,*c=&b;D、doublea=0.0;b=1.1;标准答案:C知识点解析:本题考查的是数据类型的定义并赋值,选项B中对变量声明类型且赋值的情况是不允许出现的,必须单独定义且赋值。选项C中对于指针变量c的赋值须为同型指针,而&b为二级指针。选项D中C语言允许在一个类型说明符后说明多个相同类型的变量,各变量之间要用逗号(,)隔开,而不是用分号(;)隔开;在计算机存储字符时将字符相应的ASCII码以其对应的二进制进行存放,选项A中的定义是合法的。16、以下不合法的字符常量是A、’\"’B、’\\’C、’\018’D、’\xcc’标准答案:C知识点解析:在C语言中,一个字符常量代表ASCⅡ字符集中的一个字符,在程序中用单引号把一个字符括起来用为字符常量。转义字符常量也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCⅡ字符。在选项C中,’\018’是用八进制数来代表一个字符常量,所以其中的数字只能小于8,并不包括8。17、有以下程序main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A、D,69B、E,68C、E,DD、输出无定值标准答案:B知识点解析:字符变量c1的ASCII值等于69,而字符变量c2的ASCII值等于68,当分别以字符和整型输出c1和c2的ASCII码值时,其结果为E,68。18、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A、printf("%c\n",’a’-32);B、printf("%d\n",’A’);C、printf("%c\n",65);D、printf("%c\n",’B’-1);标准答案:B知识点解析:在选项B的输出函数中,大写字符’A’以整型数据的形式输出。19、以下选项中不能作为C语言合法常量的是A、’cd’B、0.1e+6C、\aD、’\011’标准答案:A知识点解析:常量指的是在程序的运行过程中,其值不能被改变的量。在C语言中,包括整型常量、实型常量、字符常量和字符串常量等类型。选项B0.1e+6是用指数形式表示的实型常量。在C语言中,用以“e”或“E”后一个整数来表示以10为底的幂数。以用这种形式表示实型常量时要注意C语言的语法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年心理诊断技术考试题库及一套答案
- 2026广东佛山南海区西樵镇樵北中学招聘一名笔试备考试题及答案解析
- 2026年心理品格考试题库及完整答案一套
- 2026四川内江市隆昌市发展和改革局招聘2人笔试备考题库及答案解析
- 2026年新疆轻工职业技术学院单招职业技能测试题库附答案
- 2026年潍坊保密知识网上测试题及完整答案1套
- 2026年成都工贸职业技术学院单招综合素质考试模拟测试卷附答案
- 2026年广东省汕尾市单招职业倾向性测试模拟测试卷附答案
- 2025内蒙古呼和浩特春华水务开发集团有限责任公司招聘递补进入体检考察范围人员笔试备考题库及答案解析
- 2026云南云广文化传媒有限公司财务人员招聘1人笔试模拟试题及答案解析
- 四川省遂宁市射洪县九年级2024-2025学年(上)期末化学试卷(含答案)
- 2025-2030中国器官芯片行业市场发展趋势与前景展望战略研究报告
- 医院医疗保险费用审核制度
- 村卫生室医疗质量相关管理制度
- 非遗传承人激励机制探索-深度研究
- 中小学校园中匹克球推广策略与实践研究
- 2024年世界职业院校技能大赛高职组“体育活动设计与实施组”赛项考试题库(含答案)
- 高中地理选择性必修一(湘教版)期末检测卷02(原卷版)
- 沪教版九年级化学上册(上海版)全套讲义
- 三角函数图像变化课件
- 《内存条知识培训》课件
评论
0/150
提交评论