版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级C语言机试(C语言基础知识)模拟试卷1(共6套)(共246题)国家二级C语言机试(C语言基础知识)模拟试卷第1套一、选择题(本题共41题,每题1.0分,共41分。)1、以下叙述中错误的是A、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法标准答案:C知识点解析:结构化程序由顺序结构、选择结构和循环结构3种基本结构组成。已经证明,由3种基本结构组成的算法可以解决任何复杂的问题。由3种基本结构所构成的算法称为结构化算法;由3种基本结构所构成的程序称为结构化程序。2、C语言源程序名的后缀是A、.exeB、.objC、.cD、.cp标准答案:C知识点解析:由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。源程序经过c编译程序编译生成后缀为“.obi”的二进制文件(称为目标文件),然后由称为”连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连接起来,生成后缀为“.exe”的可执行文件。3、以下叙述中正确的是A、程序的算法只能使用流程图来描述B、N—S流程图只能描述简单的顺序结构的程序C、计算机可以直接处理C语言程序,不必进行任何转换D、结构化程序的三种基本结构是循环结构、选择结构、顺序结构标准答案:D知识点解析:结构化程序有_三种基本结构循环结构、选择结构、顺序结构,描述算法常见的有文字描述,流程图,盒图,伪代码等。N-S图为盒图,可以描述比较复杂的程序结构,而计算机不能直接处理C程序,只能处理二进制代码。4、计算机能直接执行的程序是A、目标程序B、可执行程序C、汇编程序D、源程序标准答案:B知识点解析:把由高级语言编写的程序称为”源程序”,由二进制代码表示的程序称为”目标程序”(后缀名为.obi),由汇编语言编写的程序称为”汇编程序”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制的机器指令。这种具有翻译功能的软件称为”编译程序”,每种高级语言都有与它对应的编译程序。c源程序经过C编译程序编译之后生成一个后缀为.obi的二制进文件(称为目标文件),这个F1标程序要和C语言的库函数相链接生成一个后缀为.exe的文件,这个文件可以在操作系统中直接执行,称为可执行程序。5、下列叙述中正确的是A、在C程序中:main函数的位置是固定的B、C程序中所有函数之间都可以相互调用C、每个C程序文件中都必须要有一个main函数D、在C程序的函数中不能定义另一个函数标准答案:D知识点解析:当一个程序作为另一个程序的子程序,并且它自己不独立执行时,这该程序可以没有主函数。主函数的位置不固定,并且可以调用程序中的其他函数,而其他函数不可以调用main(1函数。C语言‘规定,不能在函数的内部定义函数。6、以下叙述中正确的是A、程序的主函数名除main外,也可以使用Main或mainB、在C程序中,模块化主要是通过函数来实现的C、程序可以包含多个主函数,但总是从第一个主函数处开始执行D、书写源程序时,必须注意缩进格式,否则程序会有编译错误标准答案:B知识点解析:C语言中任何一个有效的程序都有且只能有一个main()函数,不能写成其他形式,一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而为了代码清晰容易看懂,最好加上注释,这是程序书写风格,与编译无关。7、以下叙述中正确的是A、C程序中的每一行只能写一条语句B、简单C语句必须以分号结束C、C语言程序中的注释必须与语句写在同一行D、C语句必须在一行内写完标准答案:B知识点解析:C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上。C语言注释是比较自由的,可以写在一行或者多行。C语言规定每条语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。8、有以下程序#include<stdio.h>main0{inta=0,b=0;/*给a赋值a=10-b=20;给b赋值*/printf(’’a+b=%din’’,a+b);/**输出计算结果*/}程序运行后的输出结果是A、a+b=30B、a+b=10C、出错D、a+b=0标准答案:D知识点解析:C语言规定,在字符”/*”和其后紧跟的第一个字符”*/”中间的部分是注释内容一且注释部分的内容不参与程序的编译和运行,因此,本题中稗序语句”a=10;b=20;”没有执行。9、若变量已正确定义并赋值,以下不能构成C语句的选项是A、A=a+b;B、B++;C、a=a+bD、A?a:b;标准答案:C知识点解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。10、以下选项中不合法的标识符是A、.FORB、&aC、printD、0标准答案:B知识点解析:合法的标识符要满足组成字符为a~z以及A~z,数字字符0到9和下划线,其中数字不开头,不能是关键字。选项B中,&不属于组成字符,是错误的。11、以下选项中,能用作用户标识符的是A、_0_B、8_8C、yoidD、unsigned标准答案:A知识点解析:在C语言中,用户的标识符只能由字*或下划线开始。一般强调文见其义的命名方法。但是C语言中的保留字不能用作用户的标识符。而选项C和D全部为保留字,选项B中以数字开头,这些都不正确。12、以下选项中,不合法的C语言用户标识符是A、AabcB、a-bC、a_bD、_1标准答案:B知识点解析:在C语言中的用户标识符只能由字*,数字和下划*组成,并且第一个字符必须是字*或卜划线,在选项A中出现非法的字符。13、阅读以下程序#include<stdio.h>main(){intcase;floatprintF;printf(’’请输入2个数:’’);scanf(’’%d%f’,&case,&printF);printf(’’%d%f\n’’,case,printF);}该程序在编译时产生错误,其出错原因是A、定义语句出错,printF不能用作用户白定义标识符B、定义语句出错,case是关键字,不能用作用户自定义标识符C、定义语句无错,scanf不能作为输入函数使用D、定义语句无错,printf不能输出case的值标准答案:B知识点解析:case是C语言中的一个关键字,不能用作用户标识符来使用,所以这段程序代码存编译时就会出错。14、关于C语言的变量,以下叙述中错误的是A、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后才能使用D、由三条下划线构成的符号名是合法的变量名标准答案:B知识点解析:变最是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。15、以下叙述中正确的是A、标识符的长度不能任意长,最多只能包含16个字符B、语言中的关键字不能作变量名,但可以作为函数名C、用户自定义的标识符必须’’见名知义’’,如果随意定义,则会出编译错误D、标识符总是由字*、数字和下划线组成,且第一个字符不得为数字标准答案:D知识点解析:标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。C语言合法标识符的命名规则是:①标识符由字*、数字和下划线组成;②第一个字符必须为字*或下划线:③大写字*与小写字*被认为是两个不同的字符;④C语言规定了一个标识符允许的字符个数,为32,超过的字符将不被识别。C语言的标识符可分为以下3类:①关键字,不能用于为自定义标识符命名。②预定义标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名,一般做到见名知义,但是没有特殊规定。16、以下叙述中正确的是A、在C程序中的八进制和十六进制,可以是浮点数B、八进制数的开头要使用英文字*O,否则不能与十进制区分开C、整型变量可以分为int型、short型、long型和unsigned型四种D、英文大写字*x和英文小写字*x都可以作为二进制数字的开头字符标准答案:C知识点解析:整型变量分为以下4种类型:①基本型:以int表示。②短整犁:以shortint表示,或以shott表示。③长整型:以longint表示,或以long表示。④无符号型:以unsignedint表示,选项Clr确,实型常最仪有十进制表示形式,八进制以数字0开头,十六进制开头为0x或者0x,不是二进制。17、以下选项中能表示合法常量的是A、’\007’’B、1.5E2.0C、’\’D、1.2标准答案:A知识点解析:选项D,1200中间不能有逗号,否则编译时会认为是1或出错。选项B,2.0错误,必须为整数。选项C,要表示字符斜杠常量’\’,应该在反斜杠的前而再加上一个反斜杠。选项A为字符*常量,为正确选项。18、以下选项中正确的定义语句是A、doublea=b=7;B、doublea;b;C、double,a,b;D、doublea=7,b=7;标准答案:D知识点解析:在C语言中,可以用一条语句同时定义几个同类型的变量,变量之间用逗号隔开。19、C语言中double类型数据占字节数为A、4B、12C、8D、16标准答案:C知识点解析:double类型所占字节为8。20、以下选项中,值为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。21、以下不合法的字符常量是A、\’’B、’\\’C、’\018’D、’\xcc’标准答案:C知识点解析:在C语言中,一个字符常量代表AscⅡ字符集中的一个字符,在程序中用单引号把一个字符括起来用为字符常量。转义字符常量也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCⅡ字符。在选项C中,’\018’是用八进制数来代表一个字符常鼙,所以其中的数字只能小于8,并不包括8。22、以下选项中不能作为C语言合法常量的是A、’cd’B、0.1e+6C、’\a’’D、’\011’标准答案:A知识点解析:常量指的是在程序的运行过程中,其值不能被改变的量。在C语言中,包括整型常量、实型常量、字符常量和字符串常量等类型。选项B0.1e+6是用指数形式表示的实型常量。在C语言中,用以”e”或”E”后一个整数来表示以10为底的幂数。以用这种形式表示实型常量时要注意C语言的语法规定,字*e或E之前必须要有数字,且e或E后面的指数必须为整数,并且在字*e或E的前后以及数字之间不得插入空格。选项C中用双引号括起来表示的字符串\a。选项D中’\011’表示用单引号括起来的转义字符八制进数011。选项A表示的字符常量是非法的,在用单引号表示的字符常量中只能包含一个字符,而选项A中包含两个字符。23、已知大写字*A的ASCⅡ码是65,小写字*a的ASCⅡ码是97。以下不能将变量C中的大写字*转换为对应小写字*的语句是A、c=(’A’+c)%26-’a’B、c=C+32C、c=C-’A’+’a’D、c=(C-’A’1%26+’a标准答案:A知识点解析:由题意可知,小写字符a和大写字符A的AsCⅡ代码相差为32,所以选项C能将大写字符C的ASCⅡ代码转换为小写字符c的ASCⅡ代码:选项D和C左侧的表达式都是大写字符C与人写字符A的差与’a’的AScⅡ代码的和就是小写字符c的ASCⅡ代码。而选项A中应该是加上’a’,而不是减去’a’。24、若有定义语句charc=’\101’;则变量C在内存中占A、2个字节B、3个字节C、1个字节D、4个字节标准答案:C知识点解析:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCⅡ码的形式存放在变量的内存单元之中的。25、以下叙述中正确的是A、字符常量在内存中占2个字节B、转义字符要用双引号括起来,以便与普通的字符常量区分开C、字符常量需要用单引号括起来D、字符常量是不能进行关系运算的标准答案:C知识点解析:在程序中用单引号把一个字符括起来作为字符常量。转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCⅡ字符,这些字符常量也必须括在一对单引号内,和整型常量一样,字符常量也可以进行关系运算的。26、有以下程序main(){charc1=’A’,c2=’Y’;printf(’’%d,%d\n’’,C1,c2);}程序的输出结果是A、输出格式不合法,输出出错信息B、65.90C、65,89D、A.Y标准答案:C知识点解析:C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。27、以下正确的字符串常量是A、abc’B、OlympicGamesC、’’’D、’\\\’’标准答案:C知识点解析:字符串常量是由双引号括起来的一串字符。在C语言中,以一个反斜线开头后跟一个特定的字符,用来代表一个特定的ASCⅡ字符。利用两个’\\’表示一个反斜杠,因此选项D的表示无法确认表示几个反斜杠。28、表达式:(int)((double)9/2).9%2的值是A、0B、4C、3D、5标准答案:C知识点解析:这个表达式的计算过程为,首先求出9除以2的商等于4,再把其强制转化为实型数据为4.0,然后再强制转4,减去9对2求余数1,得到其结果等于3。29、有以下定义:inta;longb;doublex,y;则以下选项中正确的表达式是A、a%(int)(x-y)B、a*x<>yC、(a*y)%bD、y=x+y=x标准答案:A知识点解析:选项B中<>运算符不存在,选项C中double类型不能进行取余(%)操作,要求两个运算数必须是整数,选项D中x+y=x错误。30、C语言程序中,运算对象必须是整型数的运算符是A、/B、%C、&&D、*标准答案:B知识点解析:%要求参与运算的运算量为整型,其他三个运算符对于参与运算的运算量没有直接要求。31、设变量已正确定义并赋值,以下正确的表达式是A、x=y+z+5,++yB、int(15.8%5)C、x=y*5=x+zD、x=25%5.0标准答案:A知识点解析:在赋值表达式中,赋值符号”:”的左边只能为赋值的变量,不能为表达式,右边可以为常量或者是表达式,故选项C错误;在取余运算中,运算符”%”两边都必须是整型数据,所以选项B、D错误,选项A是C语言中的逗号表达式。32、若变量均已正确定义并赋值,以下合法的C语言赋值语句是A、x=n%2.5;B、x+n=i;C、x=5=4+1;D、x=y=5;标准答案:D知识点解析:选项D的含义是把关系表达式y=5的值赋给变量x。所以这是一条正确的赋值语句。因为赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量。因为求余运算符”%”两侧的运算对象都应当是整型数据。33、若有以下程序#include<stdio.h>main(){inta=-11.b=10;a/=b/=4:printf(’’%d%d\n’’,a,b);}则程序的输出结果是A、-1-2B、5-2C、4-3D、41762标准答案:B知识点解析:对于语句a/=b/=-4;相当子a=a/(b=b/-4);a初值为-11,b的初值为10,则运算以后10/-4值为-2,-11/-2值为5。34、若有定义和语句:inta,b;scanf(’’%d,%d,’’,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A、3.5B、3,5,C、3,5D、75,4标准答案:C知识点解析:在格式控制字符串中插入其他字符,则在输入的时候应该据实加入到输入流中,不能随意加入空格等,否则无法得到正确的输入结果。35、有以下程序#includemain(){intx,y,z;x=y=1;z=x++,y++,++y;printf(’’%d,%d,%d\n’’,x,y,z);)程序运行后的输出结果是A、2,3,1B、2,3,2C、2,3,3D、2,2,1标准答案:A知识点解析:用逗号将表达式连接起来的式子称为逗号表达式。其表达式的一般形式为:表达式1,表达式2,……,表达式n。最后一个表达式的值就是此逗号表达式的值。所以选项A为C语言中的逗号表达式。赋值表达式的左侧只能是变量,不能是常量或表达式。强制类型转换表达式的形式为:(类型名)(表达式),其中(类型名)称为强制类型转换运算符,数据类型两边的圆括号不能省略。36、若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf(’’%d,%d,%d\n’’,a,b,c);)则程序的输出结果是A、0,4,4B、1,4,1C、0,4,0D、174,4标准答案:C知识点解析:对于语句c=(a+=++b,b+=4);首先计算a=a+(++b),a’b初值为0,则计算以后a为1,b为1,然后计算b+=4,得到b的值为5,此时表达式b+=4的值为整个逗号表达式的值,因此c的值为5。37、以下选项中,当x为大于1的奇数时,值为0的表达式是A、x/2B、x%21=0C、x%2=0D、x%2=1标准答案:C知识点解析:由于x为大于1的奇数,因此x%2取余的值为1,和0不相等。38、以下关于逻辑运算符两侧运算对象的叙述中正确的是A、只能是整数0或非0整数B、可以是结构体类型的数据C、可以是任意合法的表达式D、只能是整数0或1标准答案:C知识点解析:逻辑运算符两侧的运算对象叮以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。39、表示关系式x≤y≤z的C语言表达式的是A、(x<=y)‖(y<=x)B、(x<=y<=z)C、(x<=y)&&(y<=x)D、(x<=y)!(y<=x)标准答案:C知识点解析:表示三个变量的关系,要利用逻辑表达式,用逻辑与连接。40、与数学表达式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,需要用逻辑与表达式连接。41、下列关系表达式中,结果为’’假’’的是A、(3<4)=1B、(3+4)>6C、(31=4)>2D、3<=4标准答案:C知识点解析:关系表达式和逻辑表达式的结果为非零或者0,其中0表示假,而非零表示真,由于3!=4的结果为1,而1>2的结果为假。国家二级C语言机试(C语言基础知识)模拟试卷第2套一、选择题(本题共41题,每题1.0分,共41分。)1、以下叙述中错误的是A、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法标准答案:C知识点解析:结构化程序由顺序结构、选择结构和循环结构3种基本结构组成。已经证明,由3种基本结构组成的算法可以解决任何复杂的问题。由3种基本结构所构成的算法称为结构化算法:由3种基本结构所构成的程序称为结构化程序。2、C语言源程序名的后缀是A、.exeB、.objC、.cD、.cp标准答案:C知识点解析:由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。源程序经过C编译程序编译生成后缀为“.obj”的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件把目标文件与C语言提供的各种库函数连接起来,生成后缀为“.exe”的可执行文件。3、以下叙述中正确的是A、程序的算法只能使用流程图来描述B、N—S流程图只能描述简单的顺序结构的程序C、计算机可以直接处理C语言程序,不必进行任何转换D、结构化程序的三种基本结构是循环结构、选择结构、顺序结构标准答案:D知识点解析:结构化程序有三种基本结构循环结构、选择结构、顺序结构,描述算法常见的有文字描述,流程图,盒图,伪代码等。N.S图为盒图,可以描述比较复杂的程序结构,而计算机不能直接处理C程序,只能处理二进制代码。4、有以下程序#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个字节的内存空间。5、以下叙述中正确的是A、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B、C语言程序将从源程序中第一个函数开始执行C、main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等D、C语言规定必须用main作为主函数名,程序将从此开始执行标准答案:D知识点解析:C语言规定必须以main作为主函数名。程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个可执行的C程序都必须有一个且只能有一个主函数。一个C程序中可以包含任意多个不同的函数,但只能有一个主函数。程序要从main()函数开始执行,最后在main()函数中结束。6、以下叙述正确的是A、C语言程序是由过程和函数组成的B、C语言函数可以嵌套调用,例如:fun(fun(x))C、C语言函数不可以单独编译D、C语言中除了main函数,其他函数不可作为单独文件形式存在标准答案:B知识点解析:在C语言中,允许函数的嵌套调用,即递归调用。在C语言中不存在过程的概念,在C语言中函数允许单独编译,可以作为单独的文件形式存在。7、C语言主要是借助以下哪种手段来实现程序模块化A、定义常量和外部变量B、使用丰富的数据类型C、使用三种基本结构语句D、定义函数标准答案:D知识点解析:C语言用函数实现软件的模块化设计。8、以下叙述中正确的是A、C程序中的每一行只能写一条语句B、简单C语句必须以分号结束C、C语言程序中的注释必须与语句写在同一行D、C语句必须在一行内写完标准答案:B知识点解析:C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上。C语言注释是比较自由的,可以写在一行或者多行。c语言规定每条语句和数据定义的最后必须有一个分号,分号是C语句的必要组成部分。9、有以下程序≠}include,main(){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;”没有执行。10、若变量已正确定义并赋值,以下不能构成C语句的选项是A、A=a+b;B、B++;C、a=a+bD、A?a:b;标准答案:C知识点解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。11、以下选项中,能用作数据常量的是A、115LB、0118C、1.5e1.5D、o115标准答案:A知识点解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0.7,第一个字符为0,而不是0。指数法表示时,指数部分须为整型,选项A)中数字后加入L是说明此变量为长整型,是正确的常量表示形式。12、下列定义变量的语句中错误的是A、floatUS$;B、doubleint_;C、charFor;D、im_int;标准答案:A知识点解析:C语言规定,变量的标识符只能由字母、数字或下划线3种字符组成,且首字符必须为字母或下划线。在C语言中大写字母和小写字母被认为是两个不同的字符。选项B)定义的变量标识符int和选项D)定义的变量标识符int与C语言的关键字int是不同的,是正确的变量标识。选项C)定义的变量标识符For与C语言中的关键字for是两个不同的标识符,而在选项A)包含有特殊字符$,因而其不符合C语言的变量命名规定。13、以下选项中不能用作C程序合法常量的是A、’\123’B、1,234C、123D、\X7D标准答案:B知识点解析:选项B)中的1,234在两侧加双引号才是C程序的合法字符串常量。14、关于C语言的符号常量,以下叙述中正确的是A、符号常量的符号名是标识符,但必须大写B、符号常量在整个程序中其值都不能再被重新定义C、符号常量是指在程序中通过宏定义朋一个符号名来代表一个常量D、符号常量的符号名必须是常量标准答案:C知识点解析:在C语言程序中,用一个符号名来代表一个常量,称为符号常量。注意:这个符号名必须在程序中进行特别的“指定”,并符合标识符的命名规则。一般在程序中都是利用宏定义来定义符号常量的,在代码中可以利用undef来结束符号常量的定义,然后进行重新定义,符号常量的大小写并没有特别的规定,一般时候为了和变量区分利用大写。15、以下选项中合法的变量是A、5aB、A%C、_10_D、sizeof标准答案:C知识点解析:对于变量的命名要利用标识符命名,所谓标识符就是C语言中的变量名、函数名、数组名、文件名、类型名等。其中标识符构成如下:①标识符由字母、数字和下划线组成;②第一个字符必须为字母或下划线;因此选项A)中数字开头,选项B)出现了非法字符%,而选项D)中sizeof为关键字,不能为变量命名。16、以下叙述中错误的是A、常量可以用一个符号名来代表B、数值型常量有正值和负值的区分C、常量是在程序运行过程中值不能被改变的量D、定义符号常量必须用类型名来设定常量的类型标准答案:D知识点解析:C语言中,常常用一个标识符来代表一个常量,称为符号常量。符号常量在使用之前要先定义,定义格式如下:#define<符号常量名>(常量)其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符。17、以下叙述中正确的是A、在C程序中的八进制和十六进制,可以是浮点数B、八进制数的开头要使用英文字母o,否则不能与十进制区分开C、整型变量可以分为int犁、short型、long型和unsigned型四种D、英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符标准答案:C知识点解析:整型变量分为以下4种类型:①基本型:以int表示。②短整型:以shortint表示,或以short表示。③长整型:以longinl表示,或以long表示。④无符号型:以unsignedint表示,选项C)正确,实型常量仅有十进制表示形式,八进制以数字0开头,十六进制开头为0x或者0X,不是二进制。18、以下选项中可用作C程序合法实数的是A、3.0e0.2B、E9C、.1e0D、9.12E标准答案:C知识点解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数字,且字母e或E后面的指数必须为褴数。19、以下选项中合法的实型常量是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)则出现非法字符*。20、sizeof(double)是A、一个双精度型表达式B、一个整型表达式C、一个不合法的表达式D、一种函数调用标准答案:B知识点解析:sizeof关键字为C语言的运算符,用于测试()内类型其变量所占内存,表达式结果返回十进制整数,因此为整型表达式,表明变量所占的内存字节数。21、以下不合法的字符常量是A、’\’’’B、’\\’C、’\018’D、’\xcc’标准答案:C知识点解析:在C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来用为字符常量。转义字符常量也是必须括在一对单引号内,以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符。在选项C)中,’\018’是用八进制数来代表一个字符常量,所以其中的数字只能小于8,并不包括8。22、以下选项中不能作为C语言合法常量的是A、’cd’B、0.1e+6C、\aD、’\011’标准答案:A知识点解析:常量指的是在程序的运行过程中,其值不能被改变的量。在C语言中,包括整型常量、实型常量、字符常量和字符串常量等类型。选项B)0.1e+6是用指数形式表示的实型常量。在C语言中,用以“e”或“E”后一个整数来表示以10为底的幂数。以用这种形式表示实型常量时要注意C语言的语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数,并且在字母e或E的前后以及数字之间不得插入空格。选项C)中用双引号括起来表示的字符串\a。选项D)中’\011’表示用单引号括起来的转义字符八制进数011。选项A)表示的字符常量是非法的,在用单引号表示的字符常量中,只能包含一个字符,而选项A)中包含两个字符。23、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是A、c=(’A’+c)%26-’a’B、c=C+32C、c=C-’A’+’a’D、c=(C-’A’)%26+’a’标准答案:A知识点解析:由题意可知,小写字符a和大写字符A的ASCⅡ代码相差为32,所以选项C)能将大写字符C的ASCⅡ代码转换为小写字符c的ASCⅡ代码;选项D)和C)左侧的表达式都是大写字符C与大写字符A的差与’a’的ASCⅡ代码的和就是小写字符c的ASCⅡ代码。而选项A)中应该是加上’a’,而不是减去’a’。24、若有定义语句charc=’\101’;则变量c在内存中占A、2个字节B、3个字节C、1个字节D、4个字节标准答案:C知识点解析:每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以ASCⅡ码的形式存放在变量的内存单元之中的。25、以下叙述中正确的是A、字符变量在定义时不能赋初值B、同一英文字母的大写和小写形式代表的是同一个字符常量C、字符常量可以参与任何整数运算D、转义字符用符号开头标准答案:C知识点解析:一个字符常量代表ASCⅡ字符集中的一个字符,在C程序中,字符常量可参与任何整数运算,转义字符以一个反斜线开头后跟一个特定的字符。26、C语言中char类型数据占字节数为A、2B、3C、1D、4标准答案:C知识点解析:C语言中char类型数据占字节数为1。27、若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是A、sqrt(fabs(pow(n,x)+pow(x,e)))B、sqrt(abs(n^x+e^x))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))标准答案:C知识点解析:n和e的x幂次方,要分别调用C语言的数学库函数doublepow(n,x)和doubleexp(x),因为这两个函数的返回值都为double型,对其两者的和计算绝对值,调用库函数doublefabs(pow(n,x)+exp(x)),求出和的绝对值,再调用开平方函数doublesqrt(fabs(pOW(n,x)+exp(x))),这样计算出的结果就是题干中算术表达式的值。28、表达式3.6.5/2+1.2+5%2的值是A、4.8B、3.3C、3.8D、4.3标准答案:C知识点解析:表达式的计算过程为:3.6.5/2+1.2+5%2=3.6.2+1.2+1=3.8。此题要注意5/2的结果是2,而不2.5,因为除法运算符两边的数值类型均为整型,故运算结果的数值类型也被认定为整型。29、不能正确表示数学式的表达式是A、a*b/cB、a/c*bC、a/b*cD、a*(b/c)标准答案:C知识点解析:表达式的含义为a乘以b除以c,选项C)正好曲解了这一个含义。30、设变量已正确定义并赋值,以下正确的表达式是A、x=y+z+5,++yB、int(15.8%5)C、x=y*5=X+ZD、x=25%5.0标准答案:A知识点解析:在赋值表达式中,赋值符号“=”的左边只能为赋值的变量,不能为表达式,右边可以为常量或者是表达式,故选项C)错误;在取余运算中,运算符“%”两边都必须是整型数据,所以选项B)、D)错误,选项A)是C语言中的逗号表达式。31、若变量均已正确定义并赋值,以下合法的C语言赋值语句是A、x=n%2.5;B、x+n:i;C、x=5=4+1;D、x=y==5;标准答案:D知识点解析:选项D)的含义是把关系表达式v==5的值赋给变量x。所以这是一条正确的赋值语句。因为赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量。因为求余运算符“%”两侧的运算对象都应当是整型数据。32、若有以下程序#includemain(){inta=-11,b=10;a/=b/=-4:printf("%d%d\n",a,b);}则程序的输出结果是A、-1.2B、5-2C、4-3D、5-3标准答案:B知识点解析:对于语句a/=b/=-4;相当于a=a/(b=b/-4):a初值为-11,b的初值为10,则运算以后10/-4值为-2,-11/-2值为5。33、若有定义和语句:inta,b;scanf("%d,%d,",&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是A、3,5B、3,5,C、3,5D、3,5,4标准答案:C知识点解析:在格式控制字符串中插入其他字符,则在输入的时候应该据实加入到输入流中,不能随意加入空格等,否则无法得到正确的输入结果。34、若变量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语言中的逗号表达式。赋值表达式的左侧只能是变量,不能是常量或表达式。强制类型转换表达式的形式为:(类型名)(表达式),其中(类型名)称为强制类型转换运算符,数据类型两边的圆括号不能省略。35、若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0c:(a+=++b,b+=4);printf("%d,%d,%d\n",a,b,c);}则程序的输出结果是A、1,5,1B、-1,4,4C、1,5,5D、-1,4,-1标准答案:C知识点解析:对于语句c=(a+=++b,b+=4);首先计算a=a+(++b),a,b初值为0,则计算以后a为1,b为1,然后计算b+=4,得到b的值为5,此时表达式b+=4的值为整个逗号表达式的值,因此c的值为5。36、以下选项中,当x为大于1的奇数时,值为0的表达式是A、x/2B、x%2==0C、x%2!=0D、x%2==1标准答案:B知识点解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项B)等于关系表达式的结果为假,即等于0。37、以下叙述中正确的是A、a表示一个字符常量B、’\0’表示字符0C、表达式:’a>’b’的结果是“假”D、’\’’’是非法的标准答案:C知识点解析:字符常量可以参加关系运算,按照其存储的ASCII码值进行比较,’a’>’b’不成立,值为假。而’\0’表示NULL,ASCII码值为0。38、当变量C的值不为2、4、6时,值也为“真"的表达式是A、(c==2)‖(c==4)‖(c==6)B、(c>=2&&c<=6)&&!(c%2)C、(c>=2&&c<=6)&&(c%2!=1)D、(c>=2&&c<=6)‖(c!=3)‖(c!=5)标准答案:D知识点解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D)中c的值不为2、4、6时,那么表达式(c>=2&&c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。39、有以下程序main(){intx=35,B;charz=’B’:B=((x)&&(z<’b’));printf("%d\n",B);)程序运行后的输出结果是A、0B、35C、1D、66标准答案:C知识点解析:表达式((x)&&(z<’b’)),x为35非零,考虑表达式z<’b’,成立,则B的值为1。40、以下叙述中正确的是A、由&&构成的逻辑表达式与由‖构成的逻辑表达式都有“短路”现象B、C语言的关系表达式:0<xC、逻辑“非”(即运算符!)的运算级别是最低的D、逻辑“或”(即运算符‖)的运算级别比算术运算要高标准答案:A知识点解析:逻辑表达式的运算比较复杂,有短路现象,也就是首先计算“逻辑与”或者“逻辑或”运算的第一个运算量的值,根据表达式的值决定是否进行第二个量的值的计算。“逻辑与”和“逻辑或”运算低于关系运算和算术运算。但是“逻辑非”运算却高于算术运算。41、下列关系表达式中,结果为“假”的是A、(3<4)=1B、(3+4)>6C、(3!=4)>2D、3<=4标准答案:C知识点解析:关系表达式和逻辑表达式的结果为非零或者0,其中0表示假,而非零表示真,由于3!=4的结果为1,而1>2的结果为假。国家二级C语言机试(C语言基础知识)模拟试卷第3套一、选择题(本题共41题,每题1.0分,共41分。)1、以下叙述中错误的是A、C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中C、C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D、C语言源程序经编译后生成后缀为.obj的目标程序标准答案:C知识点解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为”源程序”,把由二进制代码表示的程序称为”目标程序”。C语言编写的源程序就是一ASCⅡ的形式存放在文本文件中的。c源程序经过c编译程序编译之后生成一个后缀为.obi的二进制文件(称为目标文件),然后由称为”连接程序”(Link)的软件,把此,obi文件与C语言提供的各种库函数连接起来生成一个后缀为.ExE的可执行文件。2、以下叙述中错误的是A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果标准答案:C知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应该具有以下5个特征:①有穷性。一.爪算法包含的操作步骤应该是有限的。也就是说,在执行若T个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。②确定性。算法中的每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。③可行性。算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现。④有零个或多个输入。在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些对象需要通过输入来得到。⑤有一个或多个输出。算法的目的是为了求”解”,这些”解”只有通过输出才能得到。3、关于算法,以下叙述中错误的是A、同一个算法对于相同的输入必能得出相同的结果B、一个算法对于某个输入的循环次数是可以事先估计出来的C、某个算法可能会没有输入D、任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕标准答案:D知识点解析:算法和程序不同,算法满足以下特性:算法有5个特性,即有穷性、确定性、可行性、有零个或多个输入以及有一个或多个输出。算法的确定性是指算法中的每一个步骤都必须有明确定义,不允许有模棱两可的解释,也不允许有多义性,因此对于相同的输入必有相同的输出,同时可以事先估计算法的时间复杂度,对于有循环的算法,以循环体内的循环次数来估测时间复杂度。4、以下叙述中正确的是A、在C语言程序设计中,所有函数必须保存在一个源文件中B、在算法设计时,可以把复杂任务分解成一些简单的子任务C、只要包含了三种基本结构的算法就是结构化程序D、结构化程序必须包含所有的三种基本结构,缺一不可标准答案:B知识点解析:模块化设计思想,就是把复杂的任务分成简单的子任务,用函数或者过程描述子任务,C语言中一个程序可以包括多个源文件,每个源文件可以有若干个函数,结构化的程序由顺序结构、循环结构和选择结构三种基奉结构组成,不一定全要包括这三种结构,而算法不等于程序。5、有以下程序#include<stdio.h>ma:in(){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个字节的内存空间。6、以下叙述中正确的是A、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B、C语言程序将从源程序中第一个函数开始执行C、main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等D、C语言规定必须用main作为主函数名,程序将从此开始执行标准答案:D知识点解析:C语言规定必须以main作为主函数名。程序中的main()是主函数的起始行,也是C程序执行的起始行。每一个可执行的C程序都必须有一个且只能有一个主函数。一个C程序中可以包含任意多个不同的函数,但只能有一个主函数。程序要从main()函数开始执行,最后在main()函数中结束。7、以下叙述正确的是A、C语言程序是由过程和函数组成的B、C语言函数可以嵌套调用,例如:fun(fun(x))C、C语言函数不可以单独编译D、C语言中除了main函数,其他函数不可作为单独文件形式存在标准答案:B知识点解析:在C语言中,允许函数的嵌套调用,即递归调用。在C语言中不存在过程的概念,在C语言中函数允许单独编译,可以作为单独的文件形式存在。8、以下叙述中正确的是A、C语言程序总是从最前面的函数开始执行B、C语言程序总是从main函数开始执行C、C语言程序中main函数必须放在程序的开始位置D、C语言程序所调用的函数必须放在main函数的前面标准答案:B知识点解析:C语言中,一个源程序都有一个且只能有一个main函数,即主函数:C语言规定必须用main作为主函数名。其后的一对圆括号中可以是空的,但不能省略。程序中的mainfl是主函数的起始行,也是C程序执行的起始行。每一个程序都必须有一个且只能有一个土函数。一个C程序总是从主函数开始执行,到main函数体执行完后结束,而不论main函数在整个程序中的位置如何。而调用函数的定义位置和调用没有直接关系。9、以下四个程序中,完全正确的是A、#inc1ude<stdio.h>B、#inc1ude<stdio.h>main();main(){/*/Programming{/*programming*}/*/printf(’’programming!\n’’);}printf(’’programming!\n’’);)C、#inc1ude<stdio.H>D、inc1ude<stdio.h>main()main(){/*/*programming*/*/{/*programming*}printf(’’programming!\n’’);}printf(’’programming!\n’’);}标准答案:B知识点解析:在选项A中,main()函数后面的分号是错误的,C语言在函数名后而不能有分号。在C语言中注释内容必须放在”/’和”+/”之间,”/”和”*/”必须成对出现,按语法规定在注释之间不可以再嵌套”/∥’和”+/”。在选项C的程序段中注释语句之间有嵌套;所以选项C不正确。C语言用#inc1ude命令行来实现文件包含的功能。#inc1ude命令行的形式为:#inc1ude”文件名”,所以存选项D中inc1ude前面少了一个#符号,因而选项D不正确。10、以下叙述中正确的是A、C程序书写格式严格,要求一行内只能写一个语句B、C程序书写格式自由,一个语句可以写在多行上C、C程序中的注释只能出现在程序的开始位置和语句的后面D、用C语言编写的程序只能放在一个程序文件中标准答案:B知识点解析:本题主要考查的是C语言结构中的源程序书写格式这个知识点,在C语言中注释部分对程序的运行结果不产生任何影响,它可以出现在任意位置;C语言书写自由,一行内可以写多个语句,一个语句可以写在多行上;由于C语言编写的程序有很好的移植性,可以放在多个程序文件中。11、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是A、一条C语句可能会被转换成多条机器指令B、一条C语句对应转换成一条机器指令C、一条C语句可能会被转换成零条机器指令D、某种类型和格式的C语句被转换成机器指令的条数是固定的标准答案:B知识点解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。12、以下叙述中正确的是A、程序必须包含所有三种基本结构才能成为一种算法B、如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达C、只有简单算法才能在有限的操作步骤之后结束D、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令标准答案:D知识点解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基小结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。13、以下选项中,能用作数据常量的是A、115LB、0118C、1.5e1.5D、115标准答案:A知识点解析:本题考查常量定义。数据常量可有10进制、8进制、16进制、指数法等,8进制数字为0.7,第一个字符为O,而不是o。指数法表示时,指数部分须为整型,选项A中数字后加入L是说明此变量为长整型,是正确的常量表示形式。14、下列定义变量的语句中错误的是A、floatUS$;B、doubleint_;C、charFor;D、int_int;标准答案:A知识点解析:C语言规定,变量的标识符只能由字*、数字或下划线3种字符组成,且首字符必须为字*或下划线。在C语言中大写字*和小写字*被认为是两个不同的字符。选项B定义的变量标识符int和选项D定义的变量标识符int与C语言的关键字int是不同的,是正确的变量标识。选项C定义的变量标识符For与C语言中的关键字for是两个不同的标识符,而在选项A包含有特殊字符$,因而其不符合C语言的变量命名规定。15、以下关于C语言数据类型使用的叙述中错误的是A、若要保存带有多位小数的数据,可使用双精度类型B、若要处理如’’人员信息’’等含有不同类型的相关数据,应自定义结构体类型C、若只处理’’真’’和’’假’’两种逻辑值,应使用逻辑类型D、整数类型表示的自然数是准确无误差的标准答案:C知识点解析:在C语言中没有定义逻辑类型,而是用0代表假,用非零代表真。16、以下选项中合法的标识符是A、1-1B、1_1C、_11D、1_标准答案:C知识点解析:本题考查标识符定义。合法标识符的要求是由下划线、英文大小写字*和数字组成的字符串,且第一个字符必须是字*或下划线。17、以下选项中不属于C语言标识符的是A、用户标识符B、关键字C、常量D、预定义标识符标准答案:C知识点解析:C语言的标识符可分为以下3类:①关键字。C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他川。这些字符称为关键字。例如,int、double、if、else、while、for等。②预定义标识符。即预先定义并具有特定含义的标识符。③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。18、C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A、关键字可用作用户标识符,但失去原有含义B、在标识符中大写字*和小写字*被认为是相同的字符C、用户标识符可以由字*和数字任意顺序组成D、预定义标识符可用作用户标识符,但失去原有含义标准答案:D知识点解析:预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin等和编译预处理命令名(如define和inc1ude)。预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。19、以下选项中,合法的一组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的表示形式是错误的。20、以下选项中合法的常量是A、2.7eB、999C、123E0.2D、Oxab标准答案:D知识点解析:Oxab是十六进制表示的常龄。21、以下选项中可用作C程序合法实数的是A、3.0e0.2B、E9C、.1e0D、9.12E标准答案:C知识点解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要沣意的是字*e或E之前必须要有数字,且字*e或E后面的指数必须为整数。22、若有以下程序段doublex=5.16894;printf(’’%f\n’’,(int)(x*1000+0.5)/(double)1000);则程序段的输出结果是A、5.175000B、5.169000C、5.170000D、5.168标准答案:B知识点解析:(int)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三位小数,把第四位四舍五入。23、以下叙述中正确的是A、整型常量和实型常量都是数值型常量B、常量的类型不能从字面形式上区分,需要根据类型名来决定C、预定义的标识符是C语言关键字的一种,不能另作它用D、只能在函数体内定义变量,其他地方不允许定义变量标准答案:A知识点解析:整型常量和实型常量都是数值型常量,选项A正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为0~9等,选项B错误:预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项C错误;变量可以定义住程序中任何的地方,属于不同的变量,选项D错误。24、有以下程序main(){charc1.c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf(’’%c,%d\n’’,c1,c2);}已知字*A的ASCⅡ码为65,程序运行后的输出结果是A、D,69B、E,68C、E,DD、输出无定值标准答案:B知识点解析:字符变量c1的AscⅡ值等于69,而字符变量c2的AsCⅡ值等于68,当分别以字符和整型输出c1和c2的AscⅡ码值时,其结果为E,68。25、有以下定义语句,编译时会出现编译错误的是A、chara=’\11’;B、chara=’’aa’’;C、chara=’a’;D、chara=’\x2d’;标准答案:B知识点解析:在选项B中由两个字符aa组成一个字符串赋给一个字符变量a时会出错。26、以下选项中非法的C语言字符常量是A、’\b’B、’\007’C、’aa’D、’\xaat’标准答案:C知识点解析:一个字符常量代表AScⅡ字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。27、若有以下程序#include<stdio.h>main(){charcl,c2;c1=’C’+’8’-’3’:c2=’9’-’0’;printf(’’%c%d\n’’,c1,c2);}则程序的输出结果是A、H9B、H’9’C、F’9’D、表达式不合法输出无定值标准答案:A知识点解析:字符常量允许进行简单的算*运算,则’C’+5表示H,而’9’-’0’则表示数值9。28、以下叙述中正确的是A、字符变量在定义时不能赋初值B、同一英文字*的大写和小写形式代表的是同一个字符常量C、字符常量可以参与任何整数运算D、转义字符用符号开头标准答案:C知识点解析:一个字符常量代表ASCⅡ字符集中的一个字符,在C程序中,字符常量可参与任何整数运算,转义字符以一个反斜线开头后跟一个特定的字符。29、C语言中char类型数据占字节数为A、2B、3C、1D、4标准答案:C知识点解析:C语言中char类型数据占字节数为1。30、若有定义语句:intx=12,y=8,z;在其后执行语句z=0.9+x/y;则Z的值为A、1.9B、1C、2D、2.4标准答案:B知识点解析:由于x,y,z都是整型数据,所以x除以y的值为整型数值l,1和0.9相加得到1.9,再转换为整型数Ⅰ赋给整型变量z。31、若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a);/*第4行*/d=c;;/*第5行*/;/*第6行*/printf(’’%d,%d,%d\n’’,a,b,c);/*第7行*/}编译时出现错误,你认为出错的是A、第4行B、第5行C、第6行D、第7行标准答案:A知识点解析:第4行出错,在第4行括号中两个逗号不可以为空。单独的分号为C语言的空语句,是编译程序可以识别并且编译的,因此第5、6行都是正确的。32、若有定义语句:intx=10;则表达式x-=x+x的值为A、-20B、0C、-10D、10标准答案:C知识点解析:表达式x-=x+x等价于x=x.(x+x),整型变量x的初始值等于10,计算题同所求表达式的值时,首先计算x与x的和等于20,然后再用10减去20等于-10,得到该表达式的值。33、若有定义语句: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语言合法的表达式。34、以下叙述中正确的是A、在赋值表达式中,赋值号的右边可以是变量,也可以是任意表达式B、a是实型变量,a=10在C语言中是允许的,因此可以说:实型变量中可以存放整型数C、若有inta=4,b=9;执行了a=b后,a的值已由原值改变为b的值,b的值变为0D、若有inta=4,b=9;执行了a=b;b=a;之后,a的值为9,b的值为4标准答案:A知识点解析:选项B中a=10,在赋值时会把10自动转换为double类型然后赋值,实型变量中不可能存放整型。而选项C中执行a=b后,b的值不变还是9,选项D中执行a=b;b=a;后,a的值为9,b的值也为9。35、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A、++x.y=x-B、x+1=yC、x=x+10=x+yD、double(x)/10标准答案:A知识点解析:因为题中有语句intk=0;,所以选项B、C、D都是对k的值加l,选项A的语句k++表示先利用k的值进行运算,然后k值才加1。36、若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0c=(a+=++b,b+=4);printf(’’%d,%d,%d\0n’’,a,b,c);)则程序的输出结果是A、1,5,1B、-1,4,4C、1,5,5D、-1,4,-1标准答案:C知识点解析:有逗号表达式构成的语句:pAd=++sum,pAd++,++pad;主要从左到由连续运算,因此pad的值为6。注意pad和pAd的是不同的变量。37、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是A、(x-y<0)B、(x-y>0)C、(x-y<011x-y>0)D、(x-y=0)标准答案:D知识点解析:条件表达式的形式如下:表达式!?表达式2;表达式3。其含义为当”表达式1”的值为非零时,求出”表达式2”的值,此时”表达式2”的值就是整个条件表达式的值:当”表达式1”的值为零时,则求”表达式3”的值,这时”表达式3”的值就是整个表达式的值。本题条件表达式的执行顺序是先求解表达式”x.v”的值,若其值为非0(可以是正数,也”丁以是负数),则再求表达式”x++”的值,其值就是条件表达式的值;若表达式”x.y”的值为0,则再求表达式”y++”的值,其值就是条件表达式的值。38、以下叙述中正确的是A、关系运算符两边的运算对象可以是Ci吾言中任意合法的表达式B、在C语言中,逻辑真值和假值分别对应1和0C、对于浮点变量x和y,表达式:x=y是非法的,会出编译错误D、分支结构是根据算*表达式的结果来判断流程走向的标准答案:A知识点解析:C语言中没有逻辑类型,用非零表示逻辑真。0表示逻辑假,选项B错误,无法判断两个浮点变量是否相等,但是x=v不会出现编译错误,选项C错误,分支结构根据表达式的值,不一定为算*表达式,选项D错误。39、若a是数值类型,则逻辑表达式(a=1)‖(a!=1)的值是A、0B、2C、1D、不知道a的值,不能确定标准答案:C知识点解析:在逻辑表达式中,a‖b,只有在a跟b都为0时,表达式的结果才为0。在题中所给的表达式中a要么等于1,要么不等于1,肯定会有一方的值不为真,表达式值为1。40、若变量已正确定义,以下选项中非法的表达式是A、a!=4‖b’B、’a’%4C、a’=1/2*(x=y=20,x*3)D、’A’+32标准答案:C知识点解析:赋值表达式左边应为变量,选项C中左边为字符常最,因此非法,其余表达式均为合法的表达式。41、以下叙述中正确的是A、对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后,b的值会发生改变B、对于逻辑表达式:a++‖b++,设a的值为1,则求解表达式的值后,b的值会发生改变C、关系运算符的结果有三利1:0,1,-1D、else不是一条独立的语句,它只是if语句的一部分标准答案:D知识点解析:else不能单独使用,和if匹配使用,要注意逻辑与运算和逻辑或运算出现的短路现象,关系运算结果仅有0和1。国家二级C语言机试(C语言基础知识)模拟试卷第4套一、选择题(本题共43题,每题1.0分,共43分。)1、下列叙述中错误的是A、C程序可以由多个程序文件组成B、一个C语言程序只能实现一种算法C、C程序可以由一个或多个函数组成D、一个C函数可以单独作为一个C程序文件存在标准答案:B知识点解析:算法是指为解决某个特定问题而采取的确定且有限的步骤。在C语言中一个算法是用函数来实现的。一个C语言源程序由许多函数组成,这些函数都是根据实际任务,确定具体的算法,由用户自己编写。C语言源程序可以放在不同的文件中,同一个源程序中的函数也可放在不同的文件中,所以一个C语言程序可以实现多种算法。2、以下选项中关于程序模块化的叙述错误的是A、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序标准答案:B知识点解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。3、以下不能用于描述算法的是A、程序语句B、E-R图C、伪代码和流程图D、文字叙述标准答案:B知识点解析:E.R图为实体.联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。描述算法的有流程图,盒图,伪代码,文字描述以及程序代码描述。4、以下叙述中正确的是A、每个后缀为.c的C语言源程序都应该包含一个main函数B、在C语言程序中,ma.in函数必须放在其他函数的最前面C、每个后缀为.c的C语言源程序都可以单独进行编译D、在C语言程序中,只有main函数才可单独进行编译标准答案:C知识点解析:每一个C语言的文件或函数都可以单独编译,但只有main函数的才可以执行。5、对于一个正常运行的C程序,以下叙述中正确的是A、程序的执行总是从程序的第一个函数开始,在main函数结束B、程序的执行总是从main函数开始,在程序的最后一个函数中结束C、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D、程序的执行总是从main函数开始标准答案:D知识点解析:一个C语言源程序无论包括了多少函数,在正常情况下总是从main函数开始执行,从main函数结束。6、以下叙述中错误的是A、C程序在运行过程中所有计算都以二进制方式进行B、所有C程序都需要编译链接无误后才能运行C、C程序在运行过程中所有计算都以十进制方式进行D、C程序中字符变量存放的是字符的ASCⅡ值标准答案:C知识点解析:计算机程序都是编译为二进制的代码,计算机才会执行。7、C语言程序的模块化通过以下哪个选项来实现A、变量B、程序行C、函数D、语句标准答案:C知识点解析:用函数作为程序模块以实现C程序的模块化,程序有多个函数构成,每个函数可以实现一个具体的功能,实现程序的模块化设计。8、C语言主要是借助以下哪种手段来实现程序模块化A、定义常量和外部变量B、使用丰富的数据类型C、使用三种基本结构语句D、定义函数标准答案:D知识点解析:C语言用函数实现软件的模块化设计。9、以下关于结构化程序设计的叙述中正确的是A、结构化程序使用goto语句会很便捷B、一个结构化程序必须同时由顺序、分支、循环三种结构组成C、由三种基本结构构成的程序只能解决小规模的问题D、在C语言中,程序的模块化是利用函数实现的标准答案:D知识点解析:C语言是结构化程序设计语言,顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,研究证明任何程序都可以由这三种基本结构组成。但是程序叮以包含一种或者几种结构,不是必须包含全部三种结构。自从提倡结构化设计以来,goto就成了有争议的语句。首先,由于goto语句可以灵活跳转,如果不加限制,它的确会破坏结构化设计风格。其次,goto语句经常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。Goto语句的使用会使程序容易发生错误并且也不易阅读,所以应避免使用。由三种基本结构构成的程序几乎能解决大部分问题。10、以下关于C语言的叙述中正确的是A、C语言中的变量可以在使用之前的任何位置进行定义B、在C语言算*表达式的书写中,运算符两侧的运算数类型必须一致C、C语言的数值常量中夹带空格不影响常量值的正确表示D、C语言中的注释不可以夹在变量名或关键字的中间标准答案:D知识点解析:C语言中的注释可以出现在程序中的任何位置,但是不能夹在变量或者关键字之间;C语言的变量在函数开始位置进行定义,也可以在变量使用前位置定义;一个浮点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于云计算的企业应用集成实施方案
- 办公管理与资源分配策略
- 团结协作共创辉煌:小学主题班会课件
- 小学主题班会课件-探索科技改变生活的力量
- 关于项目适配的协调函(8篇)范文
- 机械制造工厂生产车间班组长安全操作绩效衡量表
- 人事招聘KPI绩效考评表
- 大数据在社交媒体和内容系统中的应用报告
- 小学主题班会课件:自信与勇气同在
- 物流配送员工作质量绩效考评表
- 2026年行政执法证考试必考题库及完整参考答案(官方大纲版)
- 中国血脂管理指南(基层版2026临床适用版)完整解读
- HF生产装置的腐蚀机理及安全防护技术探讨
- (2026年)二十大应知应会试题库及答案
- 2026年大唐集团热能与动力工程岗招聘笔试考点
- 室内薄壁不锈钢给排水管道施工工艺
- 医院物价管理规范及流程
- 新疆大学普通本、专科生转专业实施细则(试行)
- GB/T 46962-2026印刷技术安全印刷过程管理
- 深度解析(2026)《YST 521.1-2024 粗铜、黑铜、阳极铜化学分析方法 第 1 部分:铜含量的测定》
- GB/T 10810.1-2025眼镜镜片第1部分:单焦和多焦
评论
0/150
提交评论