高级语言与编译程序概述自测题

合集下载

(完整版)高级语言与编译程序概述自测题

(完整版)高级语言与编译程序概述自测题

第一章高级语言与编译程序概述一、单项选择题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. 连接程序或运行程序11.编译过程中,词法分析阶段的任务是____。

A.识别表达式B. 识别语言单词C. 识别语句D. 识别程序二、多项选择题:1.编译程序各阶段的工作都涉及到____。

A. 语法分析B. 表格管理C. 出错处理D. 语义分析E. 词法分析2.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:____和____。

A. 编译阶段B. 汇编阶段C. 运行阶段D. 置初值阶段3.编译程序工作时, 通常有____阶段。

高级语言编程考试试题

高级语言编程考试试题

高级语言编程考试试题一、选择题(每题 3 分,共 30 分)1、以下哪种编程语言通常被用于开发 Web 应用程序?()A C++B JavaC PythonD Assembly language2、在 C 语言中,以下哪个运算符用于取地址?()A &BC %D ++3、以下关于 Python 语言的描述,错误的是()A 它是一种解释型语言B 它具有丰富的库支持C 它的语法比较复杂D 它适用于多种领域,如数据分析、机器学习等4、以下哪种数据结构可以实现先进先出的操作?()A 栈B 队列C 链表D 树5、在 Java 中,以下哪个关键字用于实现继承?()A interfaceB extendsC implementsD abstract6、以下哪种排序算法的平均时间复杂度为 O(nlogn)?()A 冒泡排序B 插入排序C 快速排序D 选择排序7、以下关于函数的描述,正确的是()A 函数可以没有返回值B 函数的参数可以是任意类型C 函数内部不能再定义函数D 函数的名称可以任意命名8、在 C++中,以下哪个关键字用于定义常量?()A constB staticC volatileD extern9、以下哪种编程范式强调将数据和对数据的操作封装在一起?()A 面向过程编程B 面向对象编程C 函数式编程D 逻辑编程10、以下关于指针的描述,错误的是()A 指针可以指向变量B 指针可以进行算术运算C 指针可以指向函数D 指针的值不能为 NULL二、填空题(每题 3 分,共 30 分)1、在 C 语言中,数组名实际上是一个_____。

2、 Python 中,用于表示逻辑假的值是_____。

3、 Java 中的异常处理机制通过_____和_____关键字来实现。

4、 C++中,类的默认访问修饰符是_____。

5、快速排序的基本思想是通过_____操作将待排序序列分成两部分。

6、在数据结构中,存储二叉树常用的方法有_____和_____。

2-3-习题(含解答)

2-3-习题(含解答)

2-3 习题(含解答)目录第1章编译原理概述 (1)第2章PL/O编译程序的实现 (4)第3章文法和语言 (4)第4章词法分析 (13)第5章自顶向下语法分析方法 (28)第6章自底向上优先分析 (39)第7章LR分析 (42)第8章语法制导翻译和中间代码生成 (60)第9章符号表 (67)第10章目标程序运行时的存储组织 (70)第11章代码优化 (73)第12章代码生成 (76)综合练习一 (79)综合练习二 (84)综合练习三 (90)综合练习四 (95)综合练习五 (101)综合练习六 (107)第1章编译原理概述一、选择题1.一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括 (1) 。

其中, (2) 和代码优化部分不是每个编译程序都必需的。

词法分析器用于识别 (3) ,语法分析器则可以发现源程序中的 (4) 。

(1) A.模拟执行器 B.解释器 C.表格处理和出错处理 D.符号执行器(2) A.语法分析 B.中间代码生成 C.词法分析 D.目标代码生成(3) A.字符串 B.语句 C.单词 D.标识符(4) A.语义错误 B.语法和语义错误 C.错误并校正 D.语法错误2.程序语言的语言处理程序是一种 (1) 。

(2) 是两类程序语言处理程序,他们的主要区别在于 (3) 。

(1) A.系统软件 B.应用软件 C.实时系统 D.分布式系统(2) A.高级语言程序和低级语言程序 B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序(3) A.单用户与多用户的差别 B.对用户程序的查错能力C.机器执行效率D.是否生成目标代码3.汇编程序是将翻译成,编译程序是将翻译成。

A.汇编语言程序B.机器语言程序C.高级语言程序D. A 或者BE. A 或者CF. B或者C4.下面关于解释程序的描述正确的是。

(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. (1)(2)B. (1)C. (1)(2)(3)D.(2)(3)5.高级语言的语言处理程序分为解释程序和编译程序两种。

电子科技大学《程序设计语言与编译》自测题答案

电子科技大学《程序设计语言与编译》自测题答案

程序设计语言与编译一一、单项选择题(每题1分,共10分)1.一个程序单元可有( D )实例。

A.0个,B.1个,C.2个,D.多个2.编译程序是将( C )程序改造成目标语言程序的翻译程序。

A.机器语言,B.汇编语言,C.高级语言,D.低级语言3.规范规约每次都是对(A )进行规约。

A.句柄,B.短语,C.最左素短语,D.句型4.LR分析法的核心部分是(B )。

A.总控程序,B.分析表,C.分析栈,D.可规约串5.现今多数语言的描述工具是上下文无关文法,它对应于(D )。

A.图灵机,B.线性有界自动机,C.有限自动机,D.非确定的下推自动机6.将一台实际的机器装上Pascal编译程序,它就成为Pascal( D )。

A.抽象机,B.识别机,C.翻译机,D.虚拟机7.词法分析器的输入是(A )。

A.字符串,B.二元式,C.三元式,D.四元式8.在一棵语法树中,子树叶结点的自左至右排列称为( A )。

A.短语,B.句型,C.句柄,D.素短语9.运行时进行的检查称为(B )。

A.错误检查,B.动态检查,C.静态检查,D.随机检查10.一个对象与其某种属性建立某种联系的过程,称为( D )。

A.赋值,B.存储,C.定义,D.绑定二、多项选择题(每小题2分,共10分)1.类型转换的方法(B E )A.动态转换,B.拓展,C.静态转换,D.收缩,E.显式转换2.语句级控制结构有(BCE )A.递归,B.顺序,C.选择,D.过程调用,E.重复3.Chomsky 将文法分成(ACDE )A.短语文法,B.LL(1)文法,C.上下文无关文法,D.上下文有关文法,E.正规文法4.数据聚合的方式有(ABDE )A.笛卡儿积,B.有限映像,C.指针,D.递归,E.判定或5.强制性语言中,变量具有属性(ABDE )A.作用域,B.生存期,C.强制性,D.值,E.类型三、简答题(每小题5分,共20分)1、分程序与复合语句的区别是什么?分程序中可说明局部于该程序的变量,复合语句是可执行语句的序列,其中没有说明语句2、循环优化有哪几种方法?代码外提,强度削弱,删除归纳变量3、怎样判断一个文法具有二义性?文法G如果产生的某个句子对应两棵不同的语法数,则有二义性4、什么叫语法制导翻译?每个产生式配一个子程序,在语法分析的过程中,每当用一个产生式进行匹配或归约时,就调用相应的语义子程序四、推导题(共15分)1、已知文法G(S):S→a∣b∣(A)A→SdA∣S1.证明(bdS)是G(S)的句型;(5分)S=>(A)=> (SdA)=>(bdA)=>(bdS)所以是句型2.画出(bdS)的推导树;(5分)S( A )S d Ab S3.求句型(bdS)的短语,直接短语,素短语,句柄。

编译原理自测题附答案(有错)

编译原理自测题附答案(有错)

第一章一.填空题1.编译程序的工作过程一般可以划分为词法分析、语法分析、语义分析与中间代码产生、优化和生成目标程序等几个基本阶段,同时还伴有符号表管理和出错处理。

2.若源程序是用高级语言编写的,目标程序是汇编或机器语言,则其翻译程序称为编译程序。

3.编译方式与解释方式的根本区别在于运行目标程序时的控制权在解释器而不是目标程序。

4.翻译程序是这样一种程序,它能将用甲种语言书写的程序转换成与其等价的乙种语言书写的程序。

5.对编译程序而言,输入数据是高级语言(源)程序,输出结果是低级语言(目标)程序。

6.运行编译程序的计算机称宿主机,运行编译程序所产生目标代码的计算机称目标机。

7.当把编译程序划分成编译前端和编译后端时,前端主要由与源语言有关但与目标机无关的部分组成,编译后端包括编译程序中与目标机有关的部分,编译后端不依赖于源语言而仅仅依赖于中间语言。

8.描述词法规则的有效工具是词法分析器,通常使用语法分析器来描述语法规则,使用语义分析(与中间代码产生)器描述语义规则。

二.综合题(该答案仅供参考)1、给出C语言编译程序对下面语句进行编译时从词法分析到目标代码生成5个分析阶段的分析过程。

c=a+b*30;(1)给出每个阶段的输入和输出代码或其它数据形式。

(2)给出符号表,说明在哪些阶段会对符号表进行填写或查找。

(3)编译过程是否进行了代码优化?若有,请指出优化之处,并给出属于哪种优化?答:词法分析:出入源程序;输出识别出的记号流。

c=a+b*30 id1=id2+id3*30语法分析器:输入记号流,构造句子结构;输出语法树。

=id1 +id2 *id3 30语义分析与中间代码生成:出入语法树,输出中间代码变量地址数值注:赋值阶段会对符号表进行填写或查找1. id1 0 c (itr,30,,t1)2. id2 4 x (*,id3,t1,t2)3. id3 8 y (+,id2,t2,t3)4. t1 12 30 (=,t3,,id1)优化:1.(*,id3,30.0,t1)2.(+,id2,t1,id1)精简掉多余的复写传播mulf #30.0,r2 mov id2,r1 sub r1,r2 mov r2,id1第二章一.填空题1.上下文无关文法包括以下四个组成部分:一组终结符号,一组非终结符号,一个开始符号,以及一组产生式。

编译概念复习题(参考答案)

编译概念复习题(参考答案)

编译概念复习题(参考答案)一、填空题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.产生规则10.测试一个编译程序时使用的测试数据是。

A.源程序B.中间代码C.目标程序D.任意数据11.可以作为目标代码的语言是。

A.高级语言B.中间语言C.低级语言D.程序设计语言12.编译程序检查、处理源程序中的错误具体指的是。

A.词法错误B.语法错误C.语义错误D.以上三项都是13.同正则表达式(a | b)+等价的正则表达式是。

A.(a | b) * B.(a | b) (a | b) *C.(a b)* (a b) D.(a | b)| (a | b)*14.词法分析器的输出结果是。

A.单词自身B.单词的机内符C.单词的词义信息D.单词的词法信息15.如果一个正则表达式所代表的集合是无穷的,则它必含有运算。

A.连接运算:“·”B.或运算:“|”C.闭包运算:“*”D.括弧:“(”和“)”16.称有限自动机A1和A2等价是指。

A.A1和A2都是定义在一个字母表Σ上的有限自动机B.A1和A2状态数和有向边数相等C.A1和A2状态数或有向边数相等D.A1和A2所能识别的字符串集合相同17.DFA同NFA的不同之处是。

高级语言程序设计自考模拟试题及答案解析(6)

高级语言程序设计自考模拟试题及答案解析(6)

高级语言程序设计自考模拟试题及答案解析(6)(1/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第1题汇编程序的功能是( )A.将汇编语言程序转换成目标程序B.将汇编语言程序转换成高级语言程序C.将高级语言程序转换为目标程序D.将汇高级语言程序转换为编语言程序下一题(2/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第2题设int x=1;a=9,b=6,c=9,d=8;执行语句:if(a>b)if(c>b)if(b>d)x=2;else x=6;后x的值是( )A.1B.2C.6D.不确定上一题下一题(3/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第3题设int a[10],*p=a;则对数组的正确引用是( )A.a[p]B.p[a]C.*(p+2)D.p+2上一题下一题(4/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第4题若内部变量在离开了定义所在的函数或复合语句后,仍在生存期内。

则该变量是( )A.auto变量B.register变量C.局部变量D.static变量上一题下一题(5/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第5题下列运算符,优先级最低的是( )A.&&B.!D.+=上一题下一题(6/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第6题对于文件打开方式"rb+"描述正确的是( )A.可读写文本文件B.只读文本文件C.可读写二进制文件D.只读二进制文件上一题下一题(7/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第7题设int a=1,b=2,c=4;经过表达式(c=a!=b)&&(a==b)&&(c=b)运算后,a、b和c的值分别是( )A.1,2,0B.1,2,1C.1,2,2 C.1,2,3上一题下一题(8/15)单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

自学考试高级语言程序设计历年真题和答案

自学考试高级语言程序设计历年真题和答案

2001年10月自考高级语言程序设计(一)试题第一部分选择题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.C语言程序编译时,程序中的注释部分A.参加编译,并会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.不参加编译,也不会出现在目标程序中2.下列表达式的值为0的是()A.3%5B.3/5.0C.3/5D.3<53.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%24.设int a=3;则表达式a<1&&--a>1的运算结果和a的值分别是()A.0和2B.0和3C.1和2D.1和35.下列叙述中,正确的是()A.引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致B.宏名必须用大写字母表示C.宏替换不占用运行时间,只占编译时间D.在程序的一行上可以出现多个有效的宏定义6.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default7.与语句if(a>b)if(c>d)x=1;else x=2;等价的是()A.if(a>b){if(c>d)x=1;else x=2;}B.if(a>b){if(c>d)x=1;}else x=2;C.if((a>b)&&(c>d))x=1;else x=2;D.if(a<=b)x=2;else if(c>d) x=1;8.设char x='a';则printf("x=%c,y=%c\n",x,97);的输出是A.x=a,y=97B.x=97,y=aC.x=97,y=97D.x=a,y=a9.设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是()A.2B.3C.4D.无确定值10.执行下列程序int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};main(){printf("%d\n”,a[1][0]+b[0][0]);}后输出的结果是A.0B.1C.2D.311.设char str[100];int i=5;则引用数组元素的错误形式是()A.str[i+10]B.*(str+i)C.*(str+i-1)D.*((str++)+i)12.设int x[]={1,2,3,4,5,6},*p=x;则值为3的表达式是()A.p+=2,*++pB.p+=2,*p++C.p+=3,*pD.p+=2,++*pA.autoB.staticC.externD.register14.执行下列程序()int a=3,b=4;void fun(int x1,int x2){printf("%d,%d\n",x1+x2,b);}main(){int a=5,b=6;fun(a,b);}后输出的结果是A.3,4B.11,1C.11,4D.11,615.设有定义语句struct{int a;float b;} d[3]={{1,4},{2,5},{6,7}};则printf("%3.1f\n",d[2].a*d[2].b/d[1].b);的输出是()A.2.5B.2.0C.8.0D.8.416.设有定义语句:enum t1 {a1,a2=7,a3,a4=15}time; ( )则枚举常量a2和a3的值分别为A.1和2B.2和3C.7和2D.7和817.将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是()A.2和2B.2和5C.5和2D.5和518.在文件使用方式中,字符串"rb"表示()A.打开一个已存在的二进制文件,只能读取数据B.打开一个文本文件,只能写入数据C.打开一个已存在的文本文件,只能读取数据D.打开一个二进制文件,只能写入数据19.执行下列程序()# define F(y) 15>>y#define PRINT(a) printf("%d",a)main(){PRINT(F(2));}后输出的结果是A.3B.3.5C.14D.7.520.main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为()A.int argvB.char * argv[];C.char argv[];D.char **argv[];第二部分非选择题二、填空题(本大题共10小题,每小题2分,共20分)21.初始化值是0.618的双精度变量a的定义形式为____________。

(完整word版)编译原理练习题

(完整word版)编译原理练习题

一章: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、过程1、扫描器的任务是从源程序中识别出一个个单词符号。

2、高级语言源程序有两种执行方式,即解释和编译。

判断:高级语言编写的源程序都必须通过编译,产生目标代码后才能运行。

多遍扫描的编译程序的多遍是指多次重复读源程序。

高级语言程序到低级语言程序的转换是基于语义的等价变换。

编译程序中错误处理的任务是对检查出的错误进行修改。

目标程序一定是机器语言程序。

连接装配程序可把经编译程序产生的目标程序变成可执行的机器语言程序。

简答题:1、请指出下列错误信息可能是编译的哪个阶段报告的?①else没有匹配的if;②数组下标越界;③使用的函数没有定义;④在数中出现了非数字信息。

答:①语法分析阶段②语义分析与中间代码生成阶段③语义分析与中间代码生成阶段④词法分析阶段2、何谓源程序、中间代码和目标代码?它们三者之间有何种关系?答:所谓源程序是指用某种高级语言编写的程序,它是编译程序的加工对象。

目标程序是指低级语言(机器语言或汇编语言)编写的程序,它是编译程序的加工结果。

中间代码是其结构介于源程序和目标程序之间的一种机内表示形式,它是编译程序产生的中间临时结果。

它们三者之间的关系是等价关系,即结构不同,但语义相同。

二章:1、文法G:S-xSx|y所识别的语言是。

A、xyx B 、(xyx)* C、x n yx n(n≥0) D、x*yx*2、设有文法G[S]=({S,B},{b},{S-b|bB,B-bS},S),该文法所描述的语言是。

《高级语言程序设计》测试题

《高级语言程序设计》测试题

《高级语言程序设计》一、判断题(错误的在后面写“F”,正确的写“T”,每题1分)1. 程序是描述算法的编程工具.2. 化将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化.3。

C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数.4. 逐条翻译并执行的翻译程序称为编译程序5。

把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树.类群是由一些彼此密切相关的类和类族组成的。

6。

如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承。

7。

不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性。

8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参。

9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字.这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载。

9.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字.这是由作用域分辨操作符实现的,这一过程叫做作用域分辨。

11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。

12.所有的表达式都有值。

13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量.14.类的静态数据成员需要在定义每个类的对象时进行初始化。

15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。

16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。

17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址。

高级语言程序设计习题(最新版带答案)

高级语言程序设计习题(最新版带答案)

高级语言程序设计习题(最新版带答案)第1章 C语言概述习题1、单项选择题(1) C 语言就是在 B 语言的基础上产生的。

A、 AB、 BC、 DD、 E(2) 在 C 语言中,每个语句必须以 D 结束。

A、回车符B、冒号C、逗号D、分号(3) 标识符与关键字间,要用 C 隔开。

A、回车符B、冒号C、空格D、分号(4) 用C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。

A、生成可执行目标文件B、生成目标文件C、输出运行结果D、自动保存源文件(5) 下列说法中正确的就是( B )。

A、由于 C 源程序就是高级语言程序,因此一定要在 TC 软件中输入B、由C 源程序就是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C、由于C 程序就是高级语言程序,因此输入后即可执行D、由于 C 程序就是高级语言程序,因此它由命令组成(6) 下列说法中正确的就是( A )。

A、 C 语言程序由主函数与 0 个或多个函数组成B、 C 语言程序由主程序与子程序组成C、 C 语言程序由子程序组成D、 C 语言程序由过程组成(7) 下列说法中错误的就是( D )。

A、主函数可以分为两个部分:主函数说明部分与主函数体B、主函数可以调用任何非主函数的其她函数C、任何非主函数可以调用其她任何非主函数D、程序可以从任何非主函数开始执行2、填空题(1) C 语言只有 32 个关键字与 9 种控制语句。

(2) C 语言就是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3) 每个源程序有且只有一个主函数,系统总就是从该函数开始执行C语言程序。

(4) 在 C 语言程序中允许出现的字符集就是 ASCII码字符集。

(5) C 语言的程序中有特殊含义的英语单词称为保留字。

(6) C 语言标识符的长度就是前 8 位有效。

(7) C 语言中,标识符的定义规则就是以字母或下划线为开头。

高级语言程序设计自考题-1_真题-无答案

高级语言程序设计自考题-1_真题-无答案

高级语言程序设计自考题-1(总分98,考试时间90分钟)一、单项选择题1. 设有以下定义int a[4][3]=1,2,3,4,5,6,7,8,9),10,11,12;int *ptr[3]=a[0],*p=a[0];则以下能正确表达数组元素a[1][2]的表达式是( )A.*((*ptr+1)[2]) B.*(*(p+5))C.*((*ptr+1)+4) D.*(*(p+1)+2)2. 下面程序输出的结果是( )main()struct cmplxint x;int y;cnum[2]=1,3,2,7;printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);A.0 B.1C.3 D.63. 变量定义并初始化正确的是( )A.int a=1,*p=a; B.int a=2,p=*a;C.int a=3,p=&a; D.int a=4,*p=&a;4. 设static int a[3]=1,2,3;int*p[]=&a[0],&a[1],&a[2]);则与数组元素a[1]等价的是( )A.*p[1] B.p[1]C.*p+1 D.p+15. 常用的数学处理类系统函数所在的头文件是( )A.math.h B.ctype.hC.dos.h D.stdlib.h6. 合法的用户标识符是( )A.default B.#defineC.a+b D.book7. C语言程序的三种基本结构是顺序结构、循环结构和( )A.选择结构 B.递归结构C.嵌套结构 D.转移结构8. 现有下列程序语句,执行后的结果是( )#include<stdio.h>void main()char s1[100]="123",s2[100]="qwer";puts(s1);puts(s2);printf("%s%s",s1,s2);A.123 qwer123 qwerB.123qwer123qwerC.123qwerl23qwerD.123qwer123qwer9. 以下程序的输出结果是(已知字母a的ASCⅡ值比字母A的ASCⅡ值大32)( )main()int i;for(i='A';i<'I';i++,i++)printf("%c",i+36);A.DEGIK B.egikC.EGIK D.degik10. 设char c='A';int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( )A.0和1 B.1和0C.1和65 D.2和6611. 设int x=1;a=9,b=6,c=9,d=8;执行语句:if(a>b )if(c>b )if(b>d )x=2;else x=6;后x的值是( )A.1 B.2C.6 D.不确定12. 在循环结构中,continue语句的作用是( )A.继续执行本次循环 B.提前退出多重循环C.提前结束本次循环 D.提前退出本重循环13. 为了判定两个字符串是否相等应当使用( )A.if(s1==s2) B.if(s1=s2)C.if(strcmp(s1,s2)==0) D.if(strcmp(s1,s2)=0)14. 阅读程序main()int a[10]=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf("%x\n",p);printf("%x\n",p+9);该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是( )A.203 B.204C.1a4 D.1a615. 当定义一个结构型变量时系统分配给它的内存是( )A.各成员所需内存量的总和 B.成员中占内存量最大者所需的容量C.结构中第一个成员所需内存量 D.结构中最后一个成员所需内存量二、填空题16. 一个字符型变量所占内存的字节数是______。

电子科技大学《程序设计语言与编译》自测题答案

电子科技大学《程序设计语言与编译》自测题答案

B→.a
B→.b
2. 构造 SLR 分析表;(8 分)
action
goto
a
b
c
d
$
S
A
B
0
S2
1
1
acc
2
S5
S6
3
4
3
S7
R1
4
R3
R3
5
R4
R4
6
R5
R5
7
S5
S6
8
8
R2
R2
3. 该文法是 SLR(1)文法吗?理由是什么?(4 分)
是,不存在多重入口
七、 语义分析题(10 分)
将下面语句翻译成四元式序列:
对使用这个新类型的程序单元来说,新类型的表示是隐蔽的
2. 一个典型的编译程序有哪几部分?
词法分析器、语法分析器、语义分析器、中间代码生成器、优化器、代码生成器
3. 循环优化有哪些措施?
代码外提 强度削弱 删除归纳变量
4. 参数传递有哪几种方式?
5 种:传值 传地址 得结果 传值得结果
四、 推导题(共 10 分)
10.一个对象与其某种属性建立某种联系的过程,称为( D )。
A. 赋值,B.存储,C.定义,D.绑定
二、 多项选择题(每小题 2 分,共 10 分)
1.类型转换的方法( B E )
A. 动态转换,B.拓展,C.静态转换,D.收缩,E.显式转换
2.语句级控制结构有( BCE )
A.递归,B.顺序,C.选择,D.过程调用,E.重复
(109)
(104)(:=,’0’,-,y)
(105)(j,-,-,100)
程序设计语言与编译二

高级语言c程序设计试题及答案

高级语言c程序设计试题及答案

高级语言c程序设计试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是()。

A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持模块化程序设计答案:B2. 在C语言中,用于定义变量的关键字是()。

A. varB. defineC. intD. let答案:C3. 下列关于C语言函数的描述中,正确的是()。

A. 函数必须有返回值B. 函数可以没有参数C. 函数的返回值类型必须与定义时一致D. 函数可以嵌套定义答案:B4. 在C语言中,用于表示逻辑“与”操作的运算符是()。

A. &&B. ||C. !D. =答案:A5. 下列关于C语言数组的描述中,正确的是()。

A. 数组的下标从0开始B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后可以改变答案:A6. 在C语言中,用于定义指针的关键字是()。

A. ptrB. pointC. *D. &答案:C7. 下列关于C语言中结构体的描述中,错误的是()。

A. 结构体可以包含不同类型的数据B. 结构体可以包含其他结构体C. 结构体变量不能存储数据D. 结构体可以包含函数答案:C8. 在C语言中,用于实现文件操作的函数库是()。

A. stdio.hB. stdlib.hC. string.hD. fcntl.h答案:A9. 下列关于C语言中预处理指令的描述中,错误的是()。

A. #define可以定义宏B. #include用于包含头文件C. #if用于条件编译D. #else用于循环控制答案:D10. 在C语言中,用于实现动态内存分配的函数是()。

A. mallocB. freeC. callocD. realloc答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个变量的声明通常包括变量的____和____。

答案:类型名称2. C语言中,用于输入的函数是____。

第一章 高级语言与编译程序概述

第一章 高级语言与编译程序概述

第一章高级语言与编译程序概述典型例题 :单项选择题1.1.1 .将编译程序分成若干个“遍”是为了 ___ 。

a. 提高程序的执行效率b. 使程序的结构更加清晰c. 利用有限的机器内存并提高机器的执行效率d. 利用有限的机器内存但降低了机器的执行效率1.1.2 .构造编译程序应掌握 ____ 。

(陕西省 2000 年自考题)a. 源程序b. 目标语言c. 编译方法d. 以上三项都是1.1.3 .变量应当_。

a. 持有左值b. 持有右值c. 既持有左值又持有右值d. 既不持有左值也不持有右值1.1.4 .编译程序绝大多数时间花在 ____ 上。

(陕西省 1998 年自考题)a. 出错处理b. 词法分析c. 目标代码生成d. 管理表格1.1.5 . ____ 不可能是目标代码。

( 陕西省 1997 年自考题 )a. 汇编指令代码b. 可重定位指令代码c. 绝对指令代码d. 中间代码1.1.6 .数组A[1 … 20,1 … 10] 的首地址偏移量为 0 ,按列存储,每个元素占一个字节,存储器按字节编址,则 A[i, j]的偏移地址为 ____ 。

a.(i-1)X10+ ( j-1 )b.(i-1)X20+(j-1)c. (i-1) + (j-1)X10d.(i-1)+(j-1)X201.1.7. 使用 ____ 可以定义一个程序的意义。

a. 语义规则b. 词法规则c. 产生规则d. 左结合规则1.1.8 .表达式 X:=5 中,变量 x____ 。

a. 只有左值b. 只有右值c. 既有左值又有右值d. 没有左值也没有右值1.1.9 .词法分析器的输入是 __ 。

a. 单词符号b. 源程序c. 语法单位d. 目标程序1.1.10 .中间代码生成时所遵循的是_。

a. 语法规则b. 词法规则c. 语义规则d. 等价变换规则1.1.11 .编译程序是对 __ 。

a. 汇编程序的翻译b. 高级语言程序的解释执行c. 机器语言的执行d. 高级语言的翻译1.1.12 .词法分析应遵循_。

全国高级语言程序设计模拟试卷三套(含答案)

全国高级语言程序设计模拟试卷三套(含答案)

07 年10 月自考“高级语言程序设计(一)”最新模拟试题一、单选题1.设有以下说明语句typedef struct{ int n;char ch[8];}PER; 则下面叙述中正确的是( B )P218A.PER 是结构体变量名B. PER是结构体类型名C. typedef struct 是结构体类型D. struct 是结构体类型名2.下面运算符优先级最高的是( C )A.<= B.= C.% D.&&3.变量的指针含意是指变量的( B )P139A.值B.地址C.存储D.名字4.某文件中定义的静态全局变量(或称静态外部变量)其作用域是( A )P173 A.只限某个函数B.本文件C.跨文件D.不限制作用域5.在C语言中,错误的常数是( A )A.1E+0.0B.5C.0xafD.0L6.以下叙述中正确的是( B )A.全局变量的作用域一定比局部变量的作用域范围大P173(静态型变量)B.静态(static)类别变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值7.表达式strlen(”hello”)的值是( B )。

A.4B. 5C. 6D. 78.若数组名作实参而指针变量作形参,函数调用实参传给形参的是( C )P168 A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址9.要调用字符串函数时,在# include命令行中应包含( B )。

A.”stdio.h”B.”string.h”C.”math.h”D.”ctype.h”10.错误的转义字符是( B )A.'\091' B.'\\' C.'\0' D.'\''11.有以下程序( B )main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A.9,2B. 10,2C. 9,1D. 10,112.已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是( C )。

第三章自测题(含答案)

第三章自测题(含答案)

一、判断题:1、所有存储在软盘或光盘上的数字作品都是软件。

2、命令序列就是程序。

3、计算机只有安装了操作系统之后,CPU才能执行数据的存取或计算操作。

4、在采用图形用户界面的操作系统中,一个窗口可以属于多个任务。

5、高级语言源程序必须翻译成为机器语言程序才能被CPU运行。

6、高级程序设计语言出现之后,就不再需要用机器语言和汇编语言编写程序了。

7、编译程序是一种把高级语言源程序翻译成为机器语言程序的程序,由它所产生的可执行程序可以多次被执行。

8、C语言源程序具有顺移植性。

因此,用C语言编写的源程序经过翻译程序和连接程序的处理后所产生的可执行程序可以在所有的计算机上运行。

9、在通用计算机系统中操作系统几乎是必不可少的。

10、IE是一种系统软件。

11、可执行程序既可以由翻译程序对汇编语言源程序或高级语言源程序进行翻译并由连接程序连接而产生的,也可以是用机器指令直接编写而产生的。

12、汇编程序就是用汇编语言编写的程序。

13、程序是算法的一种表示形式。

14、在设计算法时通常不需要考虑数据的表示,因此算法与数据无关。

15、程序设计的核心是算法设计。

16、在求解问题的主要步骤中,设计算法先于定义数据的存储结构。

17、虚拟存储器的存储容量是无限的。

二、单选题:1、操作系统和应用软件在计算机中运行时的正确关系是。

A、操作系统可调用应用软件提供的功能B、应用软件可调用操作系统提供的功能C、操作系统运行完毕后再运行应用软件D、两者互不相关,独立运行2、计算机硬件的工作过程是由控制的。

A、存储在主存中正在运行的程序B、存储在磁盘中的程序C、存储在主存中的数据D、存储在磁盘中的文档3、在PC机加电时,首先从中读出引导程序,再由引导程序负责将Windows操作系统装入内存。

A、BIOSB、CMOSC、RAMD、磁盘或光盘的引导扇区4、操作系统具有存储管理功能,它可以自动“扩充”内存,为用户提供一个容量比实际内存大得多的存储空间,所采用的技术是。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章高级语言与编译程序概述一、单项选择题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. 连接程序或运行程序11.编译过程中,词法分析阶段的任务是____。

A.识别表达式B. 识别语言单词C. 识别语句D. 识别程序二、多项选择题:1.编译程序各阶段的工作都涉及到____。

A. 语法分析B. 表格管理C. 出错处理D. 语义分析E. 词法分析2.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:____和____。

A. 编译阶段B. 汇编阶段C. 运行阶段D. 置初值阶段3.编译程序工作时 , 通常有____阶段。

A.词法分析B. 语法分析C. 中间代码生成D. 语义检查E. 目标代码生成F.出错处理G.表格管理4.编译过程中所遵循的规则有____。

A.等价变换规则B. 短语规则C. 构词规则D. 语义规则E. 语法规则三、填空题:1.解释程序和编译程序的区别在于________。

2.编译过程通常可分为 5 个阶段,分别是____、语法分析、____、代码优化和目标代码生成。

3. 编译程序是指能将____程序翻译成____程序的程序。

4.把语法范畴翻译成中间代码所依据的是语言的____。

5.目标代码可以是____指令代码或____指令代码或绝对机器指令代码。

6.词法分析所遵循的是语言的____,而中间代码生成所遵循的是语言的____。

四、判断题:1.编译程序是一种常用的应用软件。

()2.C语言的编译程序可以用C语言来编写。

()3.编译方式与解释方式的根本区别在于是否生成目标代码。

()4.编译程序与具体的语言无关。

()5.一般而言,中间代码是一种独立于具体硬件的记号系统。

()6.编译程序与具体的机器有关。

()7.对编译程序而言,代码优化是不可缺少的一部分。

()8.对编译程序而言,中间代码生成是不可缺少的一部分。

()9.编译程序生成的目标程序一定是可执行的程序。

()10.含有优化部分的编译程序的执行效率高。

()五、综合题1.计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?2.画出编译程序的总体结构图,简述各部分的主要功能。

3.什么叫自展?什么叫交叉编译?4.试分析编译程序是否分遍应考虑的因素及多遍扫描编译程序的优缺点。

5.请画出编译程序的总框。

如果你是一个编译程序的总设计师,应当考虑哪些问题?(国防6.何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间可能有何种关系?7.选择一种你所熟悉的程序设计语言,试列出此语言中的全部关键字,并通过上机使用该语言以判明这些关键字是否为保留字。

第一章答案:一、答:1.B 2.D 3.D 4.D 5.A 6.B 7.C 8.D 9.C 10.C11.B二、答:1.BC 2AC 3.ABCDE 4.ACDE三、答:1.是否生成目标程序2.词法分析、中间代码生成3.高级语言所写的源语言等价的机器语言或汇编语言的目标4.语义规则。

5.汇编可重定位6.词法规则语义规则四、答:1.X 2.√ 3.√ 4.X 5.√ 6.X 7.X 8.X 9.X10. X五、1.计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?答:计算机执行用高级语言编写的程序主要有两种途径:解释和编译。

在解释方式下,编译程序事先并不采用将高级语言程序全部翻译成机器代码程序,然后执行这个机器代码程序的方法,而是每读入一条源程序的语句,就将其解释(翻译)成对应其功能的机器代码语句串执行之,而所翻译的机器代码语句串在该语句执行后并不保留,然后再读入下一条源程序语句,再解释执行。

这种方法是按照源程序语句中动态的执行顺序逐句解释(翻译)执行的,如果一语句处于一循环体中,则每次循环执行到该语句时,都要将其翻译成机器代码后执行。

编译方式下,高级语言程序的执行是分两步进行的:第一步首先将高级语言程序全部翻译成机器代码程序,第二步才是执行这个机器代码程序;也即对源程序的处理是先翻译后执行。

从执行速度上看,编译型的高级语言比解释型高级语言要快,但解释方式下的人机界面比编译型好,便于程序调试。

两种途径的主要区别在于:解释方式下不生成目标代码程序,而编译方式生成目标代码程序。

2.画出编译程序的总体结构图,简述各部分的主要功能。

编译程序的总体结构图如下图所示。

词法分析程序:输入源程序,进行词法分析,输出单词符号。

语法分析程序:在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。

语义分析和中间代码生成程序:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码,比如说四元式。

代码优化程序:对中间代码进行优化处理。

目标代码生成器:把中间代码翻译成目标语言程序。

表格管理程序:保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况。

编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需要从表格中获取,整个翻译过程都在不断地和表格打交道。

出错处理程序对出现在源程序中的错误进行处理。

此外编译的各阶段都可能出现错误,出错处理程序对发现的错误都及时进行处理。

3.什么叫自展?什么叫交叉编译?答:自展是先对程序核心部分构造一个小的编译程序,再以它为工具构造一个能够编译多语言成分的较大的编译程序。

如此扩展下去,直至最后形成人们所期望的整个编译程序。

交叉编译是在计算机系统A上编译能够在于系统A不同的计算机系统B上运行的程序。

4.试分析编译程序是否分遍应考虑的因素及多遍扫描编译程序的优缺点。

答:编译程序是否分遍应根据具体情况决定,如语言的大小与结构,是否有先使用后说明的使用方式;内存容量的大小、设计目标、是否考虑编译的速度或目标程序的运行速度,设计人员的规模与素质等。

采用多遍扫描方式可以节省内存空间并提高目标程序质量,同时也缩短编译程序的研制周期。

但多遍扫描必然会产生各遍扫描之间要传递一些表格、信息以及一些重复性的工作,这就增加编译花费的时间,降低了编译的效率。

5.请画出编译程序的总框。

如果你是一个编译程序的总设计师,应当考虑哪些问题?(国防科大 2000 年研究生试题)答:编译程序总框如下图所示。

作为一个编译程序的总设计师,首先要深刻理解被编译的源语言的语法及语义;其次,要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构以及操作系统的功能;第三,对编译的方法及使用的软件工具也必须准确化;总之必须估量系统功能要求、硬件设备及软件工具等因素对编译程序构造的影响。

6.何谓源程序、目标程序、翻译程序、编译程序和解释程序?它们之间可能有何种关系? 答:源程序是指以某种程序设计语言所编写的程序。

目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。

翻译程序是将某种语言翻译成另一种语言的程序的统称。

编译程序与解释程序均为翻译程序,但二者工作方法不同。

解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。

即边解释边执行,翻译所得的指令序列并不保存。

编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。

即先翻译、后执行。

7.选择一种你所熟悉的程序设计语言,试列出此语言中的全部关键字,并通过上机使用该语言以判明这些关键字是否为保留字。

答: C语言的关键字有:auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while。

上述关键字在C语言中均为保留字。

8.选取一种你所熟悉的语言,试对它进行分析,以找出此语言中的括号、关键字END以及逗号有多少种不同的用途。

答:C语言中括号有三种:{},[],()。

其中,{}用于语句括号;[]用于数组;()用于函数(定义与调用)及表达式运算(改变运算顺序)。

C语言中无END关键字。

逗号在C语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)的值为d)。

欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。

相关文档
最新文档