您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 第1章C语言基础知识
第一章C语言基础知识一、选择题1.算法具有五个特性,以下选项中不属于算法特性的是______。A)有穷性B)简洁性C)可行性D)确定性【答案】B【解析】本题考查的是算法的特性。一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入:由一个或多个输出。简洁性不属于这5个特性,所以本题应该选择B。2.以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识【答案】A【解析】本题考查C语言中标识符的概念。用用户标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,并且不能与C语言关键字相同。所以本题应该选择A。3.以下4组用户定义标识符中,全部合法的一组是()A)_mainB)IfC)txtD)intenclude-maxREALk_2sinturbo3COM_001【答案】A【解析】本题考核的知识点是C语言中的标识符命名规则。标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM不是由字母或下划线开头,故选项c不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。4.以下选项中,合法的一组c语言数值常量是()A)028B)12.C).177D)0x8a.5e-30Xa234e1.510,000-0xf4.5e00abc3.e5【答案】B【解析】本题考查的知识点是:数值常量。数值常量分为整型和实型两类。其中,整型有十进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。十进制和书面使用的数据表示一样;八进制是以数字O开头,后面跟由0~7组成的八进制数组成;十六进制是以0x(或OX)开头,后面跟由0~9与A~F(或a~f)组成的十六进制数组成;小数形式由数字和小数点组成,其整数部分或小数部分如果为0可省略,但不能同时省略。指数形式由小数形式或十进制形式开头,后面跟e(或E),再跟一个十进制整数组成。选项A中,028是八进制形式,但后面跟的8不在0~7之内,所以非法;选项c中,4e1.5是指数形式,但e后面所跟的不是整数,所以非法;选项D中,10,000中不能有“,”,所以非法。故本题应该选择B。5.以下叙述中正确的是()A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译【答案】B【解析】本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块链接后才能运行:链接,将各模块的二进制目标代码与系统标准模块经链接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件:执行,执行一个经过编译和链接的可执行的目标文件。由以上定义可知,选项A)C)D均不正确。所以,4个选项中选项B符合题意。6.下列叙述中正确的是A)每个C程序文件中都必须要一个main()函数B)在C程序中main()函数的位置是固定C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数【答案】D【解析】本题考查的知识点是函数。每一个c程序中都必须有且只有一个main()函数但一个C程序可以由多个程序文件组成,所以并非每个c程序文件中都必须要有一个main()函数,故选项A不正确。c语言并未对main()函数的位置作要求,因此选项B也是错误的。C语言中,在一个函数被调用之前一定要先声明该函数,所以定义靠后的函数若在前面没有声明该函数的原型,是不能被定义靠前的函数所调用的,即除数函数数之间的调用并非与函数所在位置无关,所以选项C不正确。故本题的正确答案应该为选项D。7.下列叙述中错误的是()A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行【答案】D【解析】本题考查的知识点是:c语言的基本概念。c语言源程序经过c语言编译程序编译后,会生成一个二进制文件,后缀为.obj,称为目标文件。然后还要经过“连接程序”,把此.obj文件与c语言提供的各种库函数连接起来,生成后缀为.exe的可执行文件,才能够运行。故本题中只有选项D是错误的。8.以下叙述中错误的是()A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法【答案】c【解析】本题考查的知识点是:结构化程序设计。结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。故本题中选项c是错误的。9.用C语言编写的代码程序A)可立即执行B)是一个源程序经过编译即可执行D)经过编译解释才能执行【答案】B【解析】本题考核的知识点是c程序的基本概念。c语言一种高级语言,c语言源程序经过c语言编译程序编译之后,生成一个后缀为.OBJ的二进制文件(称为目标文件),晟后还要由称为“链接程序”(Link)的软件,把此.OBJ文件与c语言提供的各种库函数连接在一起,生成一个后缀.EXE的可执行文件。显然c语言不能立即执行,故选项A错误;根据以上定义。选项C和选项D错误,所以,4个选项中选项B符合题意。10.结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务【答案】A【解析】本题考核的知识点是c程序的三种基本结构。C程序由三种基本的结构组成,分别为顺序结构、选择结构和循环结构,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务,故选项B)选项c和选项D都不正确。所以,4个选项中选项A符合题意。11.C语言源程序名的后缀是()A).exeB).CC).objD).cp【答案】B【解析】本题考查的知识点是:c语言的基本概念。c语言源程序的后缀为.c;经过编译得到的目标程序文件的后缀为.obj;再将目标程序文件链接后得到可执行文件的后缀为验证.exe。故本题应该选择B。12.以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D【答案】C【解析】本题考查了C语言中语句的一些概念。C语句必须以分号结束,选项A是正确的。复合语句在语法上被看作一条语句,选项B也是正确的。空语句也算是一条语句,因此如果空语句出现在条件或者循环语句中,一样会被当作条件子句或者循环体来看待,所以选项C是错误的。赋值表达式末尾加分号就构成赋值语句,选项D正确。故本题应该选择c。13.以下能正确定义且赋初值的语句是A)intn1=n2=10;B)charc=32;C)floatf=f+1.1;D)doublex=12.3E2.5;【答案】B【解析】本题考查的知识点是变量赋初值。选项A中的语句只能起定义nl的作用,而n2=10是n1的初始值表达式,但因前面没有定义过n2,所以编译会报错“n2未定义”,故不正确。选项B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项c定义的初始值表达式中出现了它自身,某些编译器能通过编译,但f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。14.有以下程序main(){chara1='M',a2='m';printf(%c\n,(a1,a2));}以下叙述中正确的是A)程序输出大写字母MB)程序输出小写字母mC)格式说明符不足,编译出错D)程序运行时产生出错信息【答案】B【解析】本题考查的是逗号表达式。因为整个逗号表达式的值为逗号表达式最后一个子表达式的值,所以本题输出的是a2的值‘m’。故应该选择B。15.以下符合C语言语法的实型常量是()A)1.2E0.5B)3.14.159EC).5E-3D)E15【答案】C【解析】本题考核的知识点是实型常量和指数形式表示数的书写格式。实型常量只能用十进制形式表示,不能用八进制或十六进制形式表示,实型常量可以用小数形式或指数形式表示,在C语言中,可以用指数形式将实型常量表示为数值和指数两部分,数值部分不能为空,指数部分只能为整数表示。选项A中1.2和0.5都不是整数,故选项A不正确;选项B中3.14159也不是整数,故选项B不正确;选项D中数值分不能为空,故选项D也不正确;所以,4个选项中选项C符合题意。16.若以下选项中的变量已正确定义,则正确的赋值语句是()A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3;【答案】C【解析】本题考核的知识点是C语言中对变量赋值的应用。赋值操作由赋值运算符“=”来完成,一般形式为变量=表达式,赋值的方向为由右向左,即将“=”右侧表达式的值赋给“=”左侧的变量,执行步骤是先计算再赋值。选项A中运算符“%”的运算对象必须为整数,而选项A中26.8不是整数,故选项A不正确;选项B将一个变量赋值给一个表达式,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个表达式,故选项D不正确;所以,4个选项中选项C符合题意。17.设有以下定义inta=0;doubleb=1.25;charc=’A’;#defined2则下面语句中错误的是()A)a++;B)b++;C)c++;D)d++;【答案】D【解析】本题考核的知识点是自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算。故选项D是个不正确的语句,所以,4个选项中选项D符合题意。18.设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式1/2(a+b)h计算结果不相符的是()A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)【答案】B【解析】本题考核的知识点是将简单的数学表达式表示成合法的C程序的语句。选项B中由于l和2都是整型,其l/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4个选项中选项B符合题意。19.有以下定义语句c;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b++B)w%(int)a+b)【答案】C【解析】本题考核的知识点是c语言中一些运算符的简单应用。选项A中不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=b+(b=b++)才正确,故选项A不正确;选项B中运算符“%”的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确;选项a,b都为double“==”应该改为“=”,故选项D不正确。所以,4个选项中选项c符合题意。20.有以下程序main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf(%d\n,x);}程序运行后的输出结果是A)
本文标题:第1章C语言基础知识
链接地址:https://www.777doc.com/doc-2244609 .html