1. 求助,c语言填空题
1.顺序 分支 循环
2 .c文件 main函数
3编译
4整形 浮点型 字符
5 3
6 int m【10】
7if else switch goto
8continue break
9 int m [10]
10 void
11全局变量 局部变轮友启量
12h
13 x与y交换
14x>=y&&y>=z
15不确定 ab未赋腊如告察值
2. C语言程序的编译是以什么为单位的谢谢解答。。。
这个问题太抽象了吧
往大了说是以头文件和源文件为单位
说笑了以单词为单位
你想知道这个干什么呢?
编译一般流程是
1.预处理
2.词法分析
3.语法分析
4.语义分析
5.中间代码生成
6.代码优化
7.目标代码生成
3. C语言程序的基本单位是什么
函数是C语言程序的基本单位。一个函数由两部分组成:函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形式参数)名、形式参数类型。
C语言源程序是由数据类型、常量与变量、数组、指针、字符串、文件输入/输出、运算构成。C的数据类型包括整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
相关信息
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
4. c程序的最小单位,基本单位,编译单位是什么
最小单位:表达式
基本单位:函数
编译单位:文件
5. c语言程序的基本单位是什么
C语言程序是由函数构成的,函数是C程序的基本组成单位,一个C语言程序中仅有一个main()函数,除main函数之外可以有若干个其它的函数,每个函数实现某一特定的操作。
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
6. c++程序的编译总算以什么为单位进行的
是以文件为单位进行的
先分别编译每一个文件
再用连接器把这些文件生成的二进制中间文件连接在一起形成可执行程序
7. as=bbb,a=bc,s=cc,asb=( )c.
习题一、单项选择题1、将编译程序分成若干个“遍”是为了。a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2、构造编译程序应掌握。a.源程序b.目标语言c.编译方法d.以上三项都是3、变量应当。a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4、编译程序绝大多数时间花在上。a.出错处理b.词法分析c.目标代码生成d.管理表格5、不可能是目标代码。a.汇编指令代码b.可重定位指令代码c.绝对指令代码d.中间代码6、使用可以定义一个程序的意义。a.语义规则b.词法规则c.产生规则d.词法规则7、词法分析器的输入是。a.单词符号串b.源程序c.语法单位d.目标程序8、中间代码生成时所遵循的是-。a.语法规则b.词法规则c.语义规则d.等价变换规则9、编译程序是对。a.汇编程序的翻译b.高级语言程序的解释执行c.机器语言的执行d.高级语言的翻译10、语法分析应遵循。a.语义规则b.语法规则c.构词规则d.等价变换规则解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。3、对编译而言,变量既持有左值又持有右值,故选c。4、编译程序打交道最多的就是各种表格,因此选d。5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。7、b8、c9、d10、c二、多项选择题1、编译程序各阶段的工作都涉及到。a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成解答1.b、c2.a、b、c、e三、填空题1、解释程序和编译程序的区别在于。2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。4、编译程序是指将程序翻译成程序的程序。解答是否生成目标程序2、词法分析中间代码生成3、源程序目标代码生成4、源程序目标语言一、单项选择题1、文法G:S→xSx|y所识别的语言是。a.xyxb.(xyx)*c.xnyxn(n≥0)d.x*yx*2、文法G描述的语言L(G)是指。a.L(G)={α|S+⇒α,α∈VT*}b.L(G)={α|S*⇒α,α∈VT*}c.L(G)={α|S*⇒α,α∈(VT∪VN*)}d.L(G)={α|S+⇒α,α∈(VT∪VN*)}3、有限状态自动机能识别。a.上下文无关文法b.上下文有关文法c.正规文法d.短语文法4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立。a.若f(a)>g(b),则a>bb.若f(a)g)(b)或f(a)0}c.{anbmcmdn|n,m≥0}d.{anbncmdm|n,m≥0}e.{anbncndn|n≥0}5、自下而上的语法分析中,应从开始分析。a.句型b.句子c.以单词为单位的程序d.文法的开始符e.句柄6、对正规文法描述的语言,以下有能力描述它。a.0型文法b.1型文法c.上下文无关文法d.右线性文法e.左线性文法解答1、e、a、c2、a、c、e3、b、c、d4、a、c5、b、c6、a、b、c、d、e三、填空题1、文法中的终结符和非终结符的交集是。词法分析器交给语法分析器的文法符号一定是,它一定只出现在产生式的部。2、最左推导是指每次都对句型中的非终结符进行扩展。3、在语法分析中,最常见的两种方法一定是分析法,另一是分析法。4、采用语法分析时,必须消除文法的左递归。5、树代表推导过程,树代表归约过程。6、自下而上分析法采用、归约、错误处理、等四种操作。7、Chomsky把文法分为种类型,编译器构造中采用和文法,它们分别产生和语言,并分别用和自动机识别所产生的语言。解答1、空集终结符右2、最左3、自上而上自下而上4、自上而上5、语法分析6、移进接受7、42型3型上下文无关语言正规语言下推自动机有限四、判断题1、文法S→aS|bR|ε描述的语言是(a|bc)*()R→cS2、在自下而上的语法分析中,语法树与分析树一定相同。()3、二义文法不是上下文无关文法。()4、语法分析时必须先消除文法中的左递归。()5、规范归约和规范推导是互逆的两个过程。()6、一个文法所有句型的集合形成该文法所能接受的语言。()解答1、对2、错3、错4、错5、错6、错五、简答题1、句柄2、素短语3、语法树4、归约5、推导[解答]1、句柄:一个句型的最左直接短语称为该句型的句柄。2、素短语:至少含有一个终结符的素短语,并且除它自身之外不再含任何更小的素短语。3、语法树:满足下面4个条件的树称之为文法G[S]的一棵语法树。①每一终结均有一标记,此标记为VN∪VT中的一个符号;②树的根结点以文法G[S]的开始符S标记;③若一结点至少有一个直接后继,则此结点上的标记为VN中的一个符号;④若一个以A为标记的结点有K个直接后继,且按从左至右的顺序,这些结点的标记分别为X1,X2,…,XK,则A→X1,X2,…,XK,必然是G的一个产生式。4、归约:我们称αγβ直接归约出αAβ,仅当A→γ是一个产生式,且α、β∈(VN∪VT)*。归约过程就是从输入串开始,反复用产生式右部的符号替换成产生式左部符号,直至文法开始符。5、推导:我们称αAβ直接推出αγβ,即αAβÞαγβ,仅当A→γ是一个产生式,且α、β∈(VN∪VT)*。如果α1Þα2Þ…Þαn,则我们称这个序列是从α1至α2的一个推导。若存在一个从α1αn的推导,则称α1可推导出αn。推导是归约的逆过程。六、问答题1、给出上下文无关文法的定义。[解答]一个上下文无关文法G是一个四元式(VT,VN,S,P),其中:●VT是一个非空有限集,它的每个元素称为终结符号;●VN是一个非空有限集,它的每个元素称为非终结符号,VT∩VN=Φ;●S是一个非终结符号,称为开始符号;●P是一个产生式集合(有限),每个产生式的形式是P→α,其中,P∈VN,α∈(VT∪VN)*。开始符号S至少必须在某个产生式的左部出现一次。2、文法G[S]:S→aSPQ|abQQP→PQbP→bbbQ→bccQ→cc(1)它是Chomsky哪一型文法?(2)它生成的语言是什么?[解答](1)由于产生式左部存在终结符号,且所有产生式左部符号的长度均小于等于产生式右部的符号长度,所以文法G[S]是Chomsky1型文法,即上下文有关文法。(2)按产生式出现的顺序规定优先级由高到低(否则无法推出句子),我们可以得到:SÞabQÞabcSÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbccSÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPPQQQÞaaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc……于是得到文法G[S]生成的语言L={anbncn|n≥1}3、按指定类型,给出语言的文法。L={aibj|j>i≥1}的上下文无关文法。【解答】(1)由L={aibj|j>i≥1}知,所求该语言对应的上下文无关文法首先应有S→aSb型产生式,以保证b的个数不少于a的个数;其次,还需有S→Sb或S→bS型的产生式,用以保证b的个数多于a的个数;也即所求上下文无关文法G[S]为:G[S]:S→aSb|Sb|b4、有文法G:S→aAcB|BdA→AaB|cB→bScA|b(1)试求句型aAaBcbbdcc和aAcbBdcc的句柄;(2)写出句子acabcbbdcc的最左推导过程。【解答】(1)分别画出对应两句型的语法树,如图2-8-2所示句柄:AaBBd图2-8-2语法树(2)句子acabcbbdcc的最左推导如下:SÞaAcBÞaAaBcBÞacaBcBÞacabcBÞacabcbScAÞacabcbBdcAÞacabcbbdcAÞacabcbbdcc5、对于文法G[S]:S→(L)|aS|aL→L,S|S(1)画出句型(S,(a))的语法树。(2)写出上述句型的所有短语、直接短语、句柄和素短语。【解答】(1)句型(S,(a))的语法树如图2-8-3所示(2)由图2-8-3可知:①短语:S、a、(a)、S,(a)、(S,(a));②直接短语:a、S;③句柄:S;④素短语:素短语可由图2-8-3中相邻终结符之间的优先关系求得,即;因此素短语为a。6、考虑文法G[T]:T→T*F|FF→F↑P|PP→(T)|i证明T*P↑(T*F)是该文法的一个句型,并指出直接短语和句柄。【解答】首先构造T*P↑(T*F)的语法树如图2-8-4所示。由图2-8-4可知,T*P↑(T*F)是文法G[T]的一个句型。直接短语有两个,即P和T*F;句柄为P。一、单项选择题1、词法分析所依据的是。a.语义规则b.构词规则c.语法规则d.等价变换规则2、词法分析器的输出结果是。a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值3、正规式M1和M2等价是指。a.M1和M2的状态数相等b.M1和M2的有向弧条数相等c.M1和M2所识别的语言集相等d.M1和M2状态数和有向弧条数相等4、状态转换图(见图3-6-1)接受的字集为。a.以0开头的二进制数组成的集合b.以0结尾的二进制数组成的集合c.含奇数个0的二进制数组成的集合d.含偶数个0的二进制数组成的集合5、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,。a.词法分析器应作为独立的一遍b.词法分析器作为子程序较好c.词法分析器分解为多个过程,由语法分析器选择使用d.词法分析器并不作为一个独立的阶段解答1、b2、c3、c4、d5、b二、多项选择题1、在词法分析中,能识别出。a.基本字b.四元式c.运算符d.逆波兰式e.常数2、令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为。a.b(ab)*b.b(ab)+c.(ba)*bd.(ba)+be.b(a|b)解答1、a、c、e2、a、b、d三、填空题1、确定有限自动机DFA是的一个特例。2、若二个正规式所表示的相同,则认为二者是等价的。3、一个字集是正规的,当且仅当它可由所。解答1、NFA2、正规集3、DFA(NFA)所识别四、判断题1、一个有限状态自动机中,有且仅有一个唯一终态。()2、设r和s分别是正规式,则有L(r|s)=L(r)|L(s)。()3、自动机M和M′的状态数不同,则二者必不等价。()4、确定的自动机以及不确定的自动机都能正确地识别正规集。()5、对任意一个右线性文法G,都存在一个NFAM,满足L(G)=L(M)。()6、对任意一个右线性文法G,都存在一个DFAM,满足L(G)=L(M)。()7、对任何正规表达式e,都存在一个NFAM,满足L(G)=L(e)。()8、对任何正规表达式e,都存在一个DFAM,满足L(G)=L(e)。()解答1、2、3、错4、5、6、7、8、正确五、基本题1、设M=({x,y},{a,b},f,x,{y})为一非确定的有限自动机,其中f定义如下:f(x,a)={x,y}f(x,b)={y}f(y,a)=φf(y,b)={x,y}试构造相应的确定有限自动机M′。解答:对照自动机的定义M=(S,Σ,f,S0,Z),由f的定义可知f(x,a)、f(y,b)均为多值函数,所以是一非确定有限自动机,先画出NFAM相应的状态图,如图3-6-2所示。用子集法构造状态转换矩阵表3-6-3所示。IIaIb{x}{x,y}{y}{y}—{x,y}{x,y}{x,y}{x,y}将转换矩阵中的所有子集重新命名而形成表3-6-4所示的状态转换矩阵。表3-6-4状态转换矩阵ab0211—2222即得到M′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图3-6-5所示。将图3-6-5的DFAM′最小化。首先,将M′的状态分成终态组{1,2}与非终态组{0};其次,考察{1,2}。由于{1,2}a={1,2}b={2}⊂{1,2},所以不再将其划分了,也即整个划分只有两组{0},{1,2}:令状态1代表{1,2},即把原来到达2的弧都导向1,并删除状态2。最后,得到如图3-6-6所示化简DFAM′。2、对给定正规式b*(d|ad)(b|ab)+,构造其NFAM;解答:首先用A+=AA*改造正规式得:b*(d|ad)(b|ab)(b|ab)*;其次,构造该正规式的NFAM,如图3-6-7所示。求采纳为满意回答。希望能解决您的问题。
8. C语言程序的编译是以什么为单位的谢谢
当然是一程序文件为单位的
9. C语言程序的基本编译单位是文件
是的,一个C语言的工程可能有很多个文件,这些文件都可以单独编译,当然了你也可以把所有的文件一起编译