文档库 最新最全的文档下载
当前位置:文档库 › 编译预处理习题与答案

编译预处理习题与答案

编译预处理习题与答案
编译预处理习题与答案

第九章编译预处理

9.1 选择题

【题9.1】以下叙述中不正确的是。

A)预处理命令行都必须以#号开始

B)在程序中凡是以#号开始的语句行都是预处理命令行

C)C程序在执行过程中对预处理命令行进行处理

D)以下是正确的宏定义

#define IBM_PC

【题9.2】以下叙述中正确的是。

A)在程序的一行上可以出现多个有效的预处理命令行

B)使用带参的宏时,参数的类型应与宏定义时的一致

C)宏替换不占用运行时间,只占编译时间

D)在以下定义中C R是称为“宏名”的标识符

#define C R 045

【题9.3】请读程序:

#define ADD(x) x+x

main()

{

int m=1,n=2,k=3;

int sum=ADD(m+n)*k;

printf(“sum=%d”,sum);

}

上面程序的运行结果是。

A)sum=9 B)sum=10 C)sum=12 D)sum=18

【题9.4】以下程序的运行结果是。

#define MIN(x,y) (x)<(y)?(x):(y)

main()

{

int i=10,j=15,k;

k=10*MIN(i,j);

printf(“%d\n”,k);

}

A)10 B)15 C)100 D)150

【题9.5】在宏定义#define PI 3.14159中,用宏名PI代替一个。

A)常量B)单精度数C)双精度数D)字符串

【题9.6】以下程序的运行结果是。

#include

#define FUDGE(y) 2.84+y

#define PR(a) printf(“%d”,(int)(a))

#define PRINT1(a) PR(a); putchar(‘\n’)

main()

{

int x=2;

PRINT1(FUDGE(5)*x);

}

A)11 B)12 C)13 D)15

【题9.7】以下有关宏替换的叙述不正确的是。

A)宏替换不占用运行时间B)宏名无类型

C)宏替换只是字符替换D)宏名必须用大写字母表示

【题9.8】C语言的编译系统对宏命令的处理是。

A)在程序运行时进行的

B)在程序连接时进行的

C)和C程序中的其它语句同时进行编译的

D)在对源程序中其它成份正式编译之前进行的

【题9.9】若有宏定义如下:

#define X 5

#define Y X+1

#define Z Y*X/2

则执行以下printf语句后,输出结果是。

int a; a=Y;

printf(“%d\n”,Z);

printf(“%d\n”,--a);

A)7 B)12 C)12 D)7

6 6 5 5

【题9.10】若有以下宏定义如下:

#define N 2

#define Y(n) ((N+1)*n)

则执行语句z=2*(N+Y(5));后的结果是。

A)语句有错误B)z=34 C)z=70 D)z无定值

【题9.11】若有宏定义:#define MOD(x,y) x%y

则执行以下语句后的输出为。

int z,a=15,b=100;

z=MOD(b,a);

printf(“%d\n”,z++);

A)11 B)10 C)6 D)宏定义不合法

【题9.12】以下程序的运行结果是。

#define MAX(A,B) (A)>(B)?(A):(B)

#define PRINT(Y) printf(“Y=%d\t”,Y)

main()

{

int a=1,b=2,c=3,d=4,t;

t=MAX(a+b,c+d);

PRINT(t);

}

A)Y=3 B)存在语法错误C)Y=7 D)Y=0

【题9.13】以下程序段中存在错误的是。

A)#define array_size 100

int array1[array_size];

B)#define PI 3.14159

#define S(r) PI*(r)*(r)

area=S(3.2);

C)#define PI 3.14159

#define S(r) PI*(r)*(r)

area=S(a+b);

D)#define PI 3.14159

#define S(r) PI*(r)*(r)

area=S(a);

【题9.14】请读程序:

#include

#define MUL(x,y) (x)*y

main()

{

int a=3,b=4,c;

c=MUL(a++,b++);

printf(“%d\n”,c);

}

上面程序的输出结果是。

A)12 B)15 C)20 D)16

【题9.15】#define能作简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是。

A)#define f(x) 4*x*x+3*x+2

B)#define f 4*x*x+3*x+2

C)#define f(a) (4*a*a+3*a+2)

D)#define (4*a*a+3*a+2) f(a)

【题9.16】对下面程序段:

#define A 3

#define B(a) ((A+1)*a)

x=3*(A+B(7));

正确的判断是。

A)程序错误,不许嵌套宏定义

B)x=93

C)x=21

D)程序错误,宏定义不许有参数

【题9.17】以下程序中,第一个输出值是(1),第二个输出值是(2)。

#include

#define M 3

#define N (M+1)

#define NN N*N/2

main()

{

printf(“%d\n”,NN);

printf(“%d”,5*NN);

}

【1】A)3 B)4 C)6 D)8

【2】A)17 B)18 C)30 D)40

【题9.18】以下程序的输出结果为。

#include

#define F(y) 3.84+y

#define PR(a) printf(“%d”,(int)(a))

#define PRINT(a) PR(a); putchar(‘\n’)

main()

{

int x=2;

PRINT(F(3)*x);

}

A)8 B)9 C)10 D)11

【题9.19】以下程序的输出结果为。

#define PT 5.5

#define S(x) PT*x*x

main()

{

int a=1,b=2;

printf(“%4.1f\n”,S(a+b));

}

A)12.0 B)9.5 C)12.5 D)33.5

【题9.20】以下在任何情况下计算平方数时都不会引起二义性的宏定义是。

A)#define POWER(x) x*x

B)#define POWER(x) (x)*(x)

C)#define POWER(x) (x*x)

D)#define POWER(x) ((x)*(x))

【题9.21】在“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”(双引号)括起时,寻找被包含文件的方式是。

A)直接按系统设定的标准方式搜索目录

B)先在源程序所在目录搜索,再按系统设定的标准方式搜索

C)仅仅搜索源程序所在目录

D)仅仅搜索当前目录

【题9.22】在“文件包含”预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,寻找被包含文件的方式是。

A)仅仅搜索当前目录

B)仅仅搜索源程序所在目录

C)直接按系统设定的标准方式搜索目录

D)先在源程序所在目录搜索,再按系统设定的标准方式搜索

【题9.23】请读程序:

#define LETTER 0

main()

{

char str[20]=“C Language”,c;

int i;

i=0;

while((c=str[i])!=‘\0’)

{

i++;

#if LETTER

if(c>=‘a’&&c<=‘z’)

c=c-32;

#else

if(c>=‘A’&&c<=‘Z’)

c=c+32;

#endif

printf(“%c”,c);

}

}

上面程序的运行结果是。

A)C Language B)c language C)C LANGUAGE D)c lANGUAGE

【题9.24】以下正确的描述是。

A)C语言的预处理功能是指完成宏替换和包含文件的调用

B)预处理指令只能位于C源程序文件的首部

C)凡是C源程序中行首以“#”标识的控制行都是预处理指令

D)C语言的编译预处理就是对源程序进行初步的语法检查

【题9.25】C语言提供的预处理功能包括条件编译,其基本形式为:

#XXX 标记符

程序段1

#else

程序段2

#endif

这里XXX可以是。

A)define或include B)ifdef或include

C)ifdef或ifndef或define D)ifdef或ifndef或if

9.2 填空题

【题9.26】设有以下宏定义:#define WIDTH 80

#define LENGTH WIDTH+40

则执行赋值语句:v=LENGTH*20; (v为int型变量)后,v的值是。

【题9.27】设有以下宏定义:#define WIDTH 80

#define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20; (k为int型变量)后,k的值是。

【题9.28】下面程序的运行结果是。

#define DOUBLE(r) r*r

main()

{

int x=1,y=2,t;

t=DOUBLE(x+y);

pri ntf(“%d\n”,t);

}

【题9.29】下面程序的运行结果是。

#define MUL(z) (z)*(z)

main()

printf(“%d\n”,MUL(1+2)+3);

}

【题9.30】下面程序的运行结果是。

#define POWER(x) ((x)*(x))

main()

{

int i=1;

while(i<=4) printf(“%d\t”,POWER(i++));

printf(“\n”);

}

【题9.31】下面程序的运行结果是。

#define EXCH(a,b) { int t; t=a; a=b; b=t; }

main()

{

int x=5,y=9;

EXCH(x,y);

printf(“x=%d,y=%d\n”,x,y);

}

【题9.32】下面程序的运行结果是。

#define MAX(a,b,c) ((a)>(b)?((a)>(c)?(a):(c)):((b)>(c)?(b):(c)))

main()

{

int x,y,z;

x=1; y=2; z=3;

printf(“%d,”,MAX(x,y,z));

printf(“%d,”,MAX(x+y,y,y+x));

printf(“%d\n”,MAX(x,y+z,z));

}

【题9.33】下面程序的运行结果是。

#define SELECT(a,b) a

main()

{

int m=2,n=4;

printf(“%d\n”,SELECT(m,n));

}

【题9.34】下面程序的运行结果是。

#define MAX(a,b) (a>b?a:b)+1

main()

int i=6,j=8,k;

printf(“%d\n”,MAX(i,j));

}

【题9.35】设有宏定义如下:

#define MIN(x,y) (x)<(y)?(x):(y)

#define T(x,y,r) x*r*y/4

则执行以下语句后,s1的值为【1】,s2的值为【2】。

int a=1,b=3,c=5,s1,s2;

s1=MIN(a=b,b-a);

s2=T(a++,a*++b,a+b+c);

【题9.36】请读程序:

#include

#define BOT (-2)

#define TOP (BOT+5)

#define PRI(arg) printf(“%d\n”,arg)

#define FOR(arg) for(;(arg);(arg)--)

main()

{

int i=BOT,j=TOP;

FOR(j)

switch(j)

{

case 1: PRI(i++);

case 2: PRI(j); break;

default: PRI(i);

}

}

执行FOR循环时,j的初值是【1】,终值是【2】。

【题9.37】下面程序的运行结果是。

#define PR(ar) printf(“%d”,ar)

main()

{

int j,a[]={1,3,5,7,9,11,13,15},i=5;

for(j=3;j;j--)

{

switch(j)

{

case 1:

case 2: PR(a[i++]); break;

case 3: PR(a[--i]);

}

}

}

【题9.38】下面程序的运行结果是。

#define PRI printf

#define NL “\n”

#define D “%d”

#define D1 D NL

#define D2 D D NL

#define D3 D D D NL

#define D4 D D D D NL

#define S “%s”

main()

{

int a,b,c,d;

char string[]=“TABLE”;

a=1; b=2; c=3; d=4;

PRI(D1,a);

PRI(D2,a,b);

PRI(D3,a,b,c);

PRI(D4,a,b,c,d);

PRI(S,string);

}

【题9.39】以下程序的运行结果是。

#define A 4

#define B(x) A*x/2

main()

{

float c,a=4.5;

c=B(a);

printf(“%5.1f\n”,c);

}

【题9.40】以下程序的运行结果是。

#include

#define sw(x,y) { x^=y; y^=x; x^=y; }

main()

{

int a=10,b=01;

sw(a,b);

printf(“%d,%d\n”,a,b);

}

【题9.41】以下程序的输出结果是。

#define PR(a) printf(“%d\t”,(int)(a))

#define PRINT(a) PR(a); printf(“ok!”)

main()

{

int i,a=1;

for(i=0;i<3;i++)

PRINT(a+i);

printf(“\n”);

}

【题9.42】以下程序的输出结果是。

main()

{

int b=5;

#define b2

#define f(x) b*(x)

int y=3;

printf(“%d\n”,f(y+1));

#undef b

printf(“%d\n”,f(y+1));

#define b3

printf(“%d\n”,f(y+1));

}

【题9.43】设有以下程序,为使之正确运行,请在【】中填入应包含的命令行。(注:try_me()函数在a:\myfile.txt中有定义。)

【】

main()

{

printf(“\n”);

try_me();

printf(“\n”);

}

【题9.44】设有以下程序,为使之正确运行,请在【】中填入应包含的命令行。

/* a.c */

【1】

【2】

main()

{

printf(“\n”);

try_me(); /* 函数调用 */

printf(“\n”);

}

注:try_me()函数在myfile.txt中有定义,其内容如下:

/* myfile.txt */

try_me()

{

char c;

if((c=getchar())!=‘\n’)

try_me();

putchar(c);

}

【题9.45】设有以下程序,为使之正确运行,请在【】中填入应包含的命令行。

【】

main()

{

int x=2,y=3;

printf(“%d\n”,pow(x,y));

}

【题9.46】以下程序的运行结果是。

main()

{

int a=10,b=20,c;

c=a/b;

#ifdef DEBUG

printf(“a=%d,b=%d,”,a,b);

#endif

printf(“c=%d\n”,c);

}

【题9.47】以下程序的运行结果是。

#define DEBUG

main()

{

int a=14,b=15,c;

c=a/b;

#ifdef DEBUG

printf(“a=%o,b=%o,”,a,b);

#endif

printf(“c=%d\n”,c);

}

【题9.48】以下程序的运行结果是。

#define DEBUG

main()

{

int a=20,b=10,c;

c=a/b;

#ifndef DEBUG

printf(“a=%o,b=%o,”,a,b);

#endif

printf(“c=%d\n”,c);

}

9.3 编程题

【题9.49】输入两个整数,求它们相除的余数。用带参的宏来编程实现。

【题9.50】试定义一个带参的宏swap(x,y),以实现两个整数之间的交换,并利用它将一维数组a和b的值进行交换。

《编译原理》模拟期末试题汇总 6套,含答案

《编译原理》模拟试题一 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.计算机高级语言翻译成低级语言只有解释一种方式。(×) 2.在编译中进行语法检查的目的是为了发现程序中所有错误。(×) 3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 (√ ) 4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 (×) 5.每个文法都能改写为 LL(1) 文法。 (√) 6.递归下降法允许任一非终极符是直接左递归的。 (√) 7.算符优先关系表不一定存在对应的优先函数。 (×) 8.自底而上语法分析方法的主要问题是候选式的选择。 (×) 9.LR 法是自顶向下语法分析方法。 (×) 10.简单优先文法允许任意两个产生式具有相同右部。 (×) 二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.一个编译程序中,不仅包含词法分析,_____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析B.( )文法分析C.( )语言分析D.( )解释分析 2.词法分析器用于识别_____。 A.( ) 字符串B.( )语句 C.( )单词 D.( )标识符 3.语法分析器则可以发现源程序中的_____。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正D.( ) 语法错误 4.下面关于解释程序的描述正确的是_____。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1)C.( ) (1)(2)(3) D.( ) (2)(3) 5.解释程序处理语言时 , 大多数采用的是_____方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 6.编译过程中 , 语法分析器的任务就是_____。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4) C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 7.编译程序是一种_____。 A. ( ) 汇编程序B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 8.文法 G 所描述的语言是_____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 9.文法分为四种类型,即0型、1型、2型、3型。其中3型文法是_____。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法 10.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 _____。 A.( ) 句子B.( ) 句型 C.( ) 单词 D.( ) 产生式 三、填空题(每空1分,共10分)

编译原理概念_名词解释

编译过程的六个阶段:词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成 解释程序:把某种语言的源程序转换成等价的另一种语言程序——目标语言程序,然后再执行目标程序。 解释方式是接受某高级语言的一个语句输入,进行解释并控制计算机执行,马上得到这句的执 行结果,然后再接受下一句。 编译程序:就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序(机器语言程序或汇编语言程序)。 解释程序和编译程序的根本区别:是否生成目标代码 句子的二义性(这里的二义性是指语法结构上的。):文法G[S]的一个句子如果能找到两种不同的最左推导(或最右推导),或者存在两棵不同的语法树,则称这个句子是二义性的。 文法的二义性:一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法。 LL(1)的含义:(LL(1)文法是无二义的; LL(1)文法不含左递归) 第1个L:从左到右扫描输入串第2个L:生成的是最左推导 1:向右看1个输入符号便可决定选择哪个产生式 某些非LL(1)文法到LL(1)文法的等价变换: 1. 提取公因子 2. 消除左递归 文法符号的属性:单词的含义,即与文法符号相关的一些信息。如,类型、值、存储地址等。 一个属性文法(attribute grammar)是一个三元组A=(G, V, F) G:上下文无关文法。 V:属性的有穷集。每个属性与文法的一个终结符或非终结符相连。属性与变量一样,可以进行计算和传递。 F:关于属性的断言或谓词(一组属性的计算规则)的有穷集。断言或语义规则与一个产生式相联,只引用该产生式左端或右端的终结符或非终结符相联的属性。 综合属性:若产生式左部的单非终结符A的属性值由右部各非终结符的属性值决定,则A的属性称为综合属继承属性:若产生式右部符号B的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的,则B的属性为继承属性。 (1)非终结符既可有综合属性也可有继承属性,但文法开始符号没有继承属性。 (2) 终结符只有综合属性,没有继承属性,它们由词法程序提供。 在计算时:综合属性沿属性语法树向上传递;继承属性沿属性语法树向下传递。 语法制导翻译:是指在语法分析过程中,完成附加在所使用的产生式上的语义规则描述的动作。 语法制导翻译实现:对单词符号串进行语法分析,构造语法分析树,然后根据需要构造属性依赖图,遍历语法树并在语法树的各结点处按语义规则进行计算。 中间代码(中间语言) 1、是复杂性介于源程序语言和机器语言的一种表示形式。 2、一般,快速编译程序直接生成目标代码。 3、为了使编译程序结构在逻辑上更为简单明确,常采用中间代码,这样可以将与机器相关的某些实现细节置于代码生成阶段仔细处理,并且可以在中间代码一级进行优化工作,使得代码优化比较容易实现。 何谓中间代码:源程序的一种内部表示,不依赖目标机的结构,易于代码的机械生成。 为何要转换成中间代码:(1)逻辑结构清楚;利于不同目标机上实现同一种语言。 (2)便于移植,便于修改,便于进行与机器无关的优化。 中间代码的几种形式:逆波兰记号,三元式和树形表示,四元式 符号表的一般形式:一张符号表的的组成包括两项,即名字栏和信息栏。 信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,名字栏也称主栏。主栏的内容称为关键字(key word)。 符号表的功能:(1)收集符号属性(2) 上下文语义的合法性检查的依据:检查标识符属性在上下文中的一致性和合法性。(3)作为目标代码生成阶段地址分配的依据

编译原理与技术01

编译原理与技术模拟试题一 一、填空题(20分) 1.1编译程序的工作过程可划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等 阶段,一般在语义分析阶段对表达式中运算对象的类型进行检查。 1.2 递归下降法和预测分析法是自上而下的语法分析方法。 1.3常用日的存储分配策略有静态存储分配和动态存储分配,其中,动态存储分配策略包括栈分配和堆分配。 1.4移进、归约是自下而上或LR 分析中的典型操作。 1.5对于数组M[1..6, 1..8],如果每个元素占k个存储单元,且起始地址为a,则以行为主序存放时元素M[4,4]的地址是__ a+27*k __,以列为主序存放时元素M[4,4]的地址是__ a+21k __。 二、单选题(20分) 2.1词法分析器不能 D 。 A. 识别出数值常量 B. 过滤源程序中的注释 C. 扫描源程序并识别记号 D. 发现括号不匹配 2.2给定文法A→bA|ca, C 是该文法的句子。 A. bba B. cab C. bca D. cba 2.3一个句型中的最左 B 称为该句型的句柄。 A. 短语 B. 直接短语 C. 非终结符号 D. 终结符号 2.4已知文法G[S]:S→A1A→A1|S0|0。与G等价的正规式是 C 。 A. 0(0|1)* B. 1*|0*1 C. 0(1|10)*1 D. 1(10|01)*0 2.5源程序是句子的集合, B 可以较好地反映句子的结构。 A. 线性表 B. 树 C. 完全图 D. 堆栈 2.6与逆波兰式ab+c*d+对应的中缀表达式是 B 。 A. a+b+c*d B. (a+b)* c+d C. (a+b)* (c+d) D. a+b*c+d 2.7识别上下文无关语言的自动机是 A 。 A. 下推自动机 B. NFA C. DFA D. 图灵机 2.8 B 是与规范归约(最左归约)互逆的一个过程。 A. 最左推导 B. 最右推导 C. 词法分析 D. 语义分析 2.9文法G产生的 A 的全体是该文法描述的语言, A. 句子 B. 短语 C. 终结符 D. 非终结符 2.10在表达式x:=y+1中, A 作为左值出现(其中,“:=”表示赋值)。 A. x B. y C. 1 D. y+1 三、简答题(30分) 3.1 (5分)请分别写出传值调用、引用调用方式下,下面代码的输出结果。 program main(input,output) procedure f(a,b) begin a := b - a; b := a * b + 1; end; begin x := 5; y := 10; f(y,x); print(x,y); end.

编译原理模拟试卷和答案

北京语言大学网络教育学院 《编译原理》模拟试卷一 注意: 1.试卷保密,考生不得将试卷带出考场或撕页,否则成绩作废。请监考老师负责监督。 2.请各位考生注意考试纪律,考试作弊全部成绩以零分计算。 3.本试卷满分100分,答题时间为90分钟。 4.本试卷分为试题卷和答题卷,所有答案必须答在答题卷上,答在试题卷上不给分。 一、【单项选择题】(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷相应题号处。 1、一个编译程序中,包含词法分析、()、中间代码生成、代码优化、目标代码生成等五个部分。 [A] 语法分析[B] 文法分析[C] 语言分析[D] 解释分析 2、词法分析器用于识别()。 [A] 字符串[B] 语句[C] 单词[D] 标识符 3、语法分析器则可以发现源程序中的()。 [A] 语义错误[B] 语法和语义错误 [C] 错误并校正[D] 语法错误 4、下面关于解释程序的描述正确的是()。 (1) 解释程序的特点是处理程序时不产生目标代码。 (2) 解释程序适用于COBOL 和FORTRAN 语言。 (3) 解释程序是为打开编译程序技术的僵局而开发的。 [A] (1)(2)[B] (1)[C] (1)(2)(3)[D] (2)(3) 5、解释程序处理语言时, 大多数采用的是()方法。 [A] 源程序命令被逐个直接解释执行 [B] 先将源程序转化为中间代码, 再解释执行 [C] 先将源程序解释转化为目标程序, 再执行 [D] 以上方法都可以 6、编译过程中, 语法分析器的任务就是()。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 [A] (2)(3)[B] (2)(3)(4)[C] (1)(2)(3)[D] (1)(2)(3)(4) 7、编译程序是一种()。

编译原理课程设计---C语言编译器的实现

扬州大学编译原理课程设计 学号:091202122 姓名: 专业:计算机科学与技术 课程:编译原理 指导教师:陈宏建

目录 一.程序简介与分析---------------------------------------------------------3 二.程序适用范围-----------------------------------------------------------3 三.词法分析---------------------------------------------------------------3 四.语法分析---------------------------------------------------------------4 五.语义分析和中间代码生成------------------------------------------------10 六.代码生成--------------------------------------------------------------12 七.流程图----------------------------------------------------------------13 八.实现------------------------------------------------------------------14 九.程序运行结果----------------------------------------------------------14 十.总结------------------------------------------------------------------18 十一.附录(源程序)--------------------------------------------------------18

医学影像学题库及答案

医学影像学题库及答案 第一章总论 一、填空题 1、医学影像学包括、、、和等项内容。 2、X线具有穿透性、、和、和电离效应等特性,它们分别 是、、和基础。 X线穿透性 受、和的影响。 3、在阅片时, 应分析病变的要点是、、 、、、和等。 4、人体组织器官有不同的和差,使透过人体后的剩余X线量不均匀。 5、人为引入一种物质到人体器官或间隙使其产生密度差异而形成的对比称对比。引入的这种物质称引入这种物质的方法称。 6、X线图像特点包括、、和等。 7、数字X线成像包括、和。 8、水的CT值为 HU,骨皮质的CT值约为 HU,空气的CT值约为 HU 9、在T1加权像上水和大部病变(如肿瘤.炎症.变性.坏死.液化.水肿)为即长T1信号。T1加权像上的即短T1信号通常为脂肪和亚急性血肿。在T2加权像上,水和大部分病变呈高信号即信号。

二、名词解释 人工对比自然对比 CT MRI PACS 介入放射学 CR DDR CT值 T1 T2 MRA T1WI T2WI

三、选择题(可单选或多选) 1、摄胸部平片显示心肺等结构属于()。 A、人工对比 B、天然对比 C、造影检查 D、特殊检查 2、最适合心血管造影的造影剂()。 A、硫酸钡 B、泛影葡胺 C、欧乃派克 D、碘化油 3、X线图像显示的不同灰度与X线透过的物质密度的关系是()。 A、物质密度高,吸收X线量多,显白影 B、物质密度低,吸收X线量少,显黑影 C、物质密度高,吸收X线量少,显黑影 D、物质密度低,吸收X线量多,显白影 4、CT值为负值可能为() A、脂肪 B、气体 C、肌肉组织 D、血液 5、数字X线成像特点是() A、数字化图像,清晰度、分辨率高,对比好。 B、曝光宽容度大: C、X线剂量低: D、多种后处理功能:调整窗位窗宽、图像放大等。 6、骨皮质在MRI图像上的表现正确的是() A、长T2信号 B、长T1信号 C、短T2信号 D、短T1信号 7、MRI在哪些方面优于CT() A、脑垂体病变 B、脊髓病变 C、肺内病变 D、关节积液 8、有关磁共振成像特点正确的是() A、磁共振信号高低与密度无关。 B、无骨伪影干扰 C、体内顺磁性金属异物不影响图像失真 D、自旋回波序列血管内流动的血液无信号

最新编译原理试题汇总+编译原理期末试题(8套含答案+大题集)

编译原理考试题及答案汇总一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式

编译原理及实现课后习题答案(1)

2.1 设字母表A={a},符号串x=aaa,写出下列符号串及其长度:x0,xx,x5以及A+和A*. x0=(aaa)0=ε| x0|=0 xx=aaaaaa |xx|=6 x5=aaaaaaaaaaaaaaa | x5|=15 A+ =A1∪A2∪…. ∪A n∪…={a,aa,aaa,aaaa,aaaaa…} A* = A0 ∪A1 ∪A2∪…. ∪ A n ∪…={ε,a,aa,aaa,aaaa,aaaaa…} 2.2 令∑={a,b,c},又令x=abc,y=b,z=aab,写出如下符号串及它们的长度:xy,xyz,(xy)3 xy=abcb |xy|=4 xyz=abcbaab |xyz|=7 (xy)3=(abcb)3 =abcbabcbabcb | (xy)3 |=12 2.3设有文法G[S]:S∷=SS*|SS+|a,写出符号串aa+a*规范推导,并构造语 法树。 S => SS* => Sa* => SS+a* => Sa+a* => aa+a*

2.4 已知文法G[Z]:Z∷=U0∣V1 、U∷=Z1∣1 、V∷=Z0∣0 ,请写出全部由此文法描述的只含有四个符号的句子。 Z=>U0=>Z10=>U010=>1010 Z=>U0=>Z10=>V110=>0110 Z=>V1=>Z01=>U001=>1001 Z=>V1=>Z01=>V101=>0101 2.5 已知文法G[S]:S∷=AB A∷=aA︱εB∷=bBc︱bc , 写出该文法描述的语言。 A∷=aA︱ε描述的语言: {a n|n>=0} B∷=bBc︱bc描述的语言:{b n c n|n>=1} L(G[S])={a n b m c m|n>=0,m>=1} 2.6 已知文法E∷=T∣E+T∣E-T 、T∷=F∣T*F∣T/F 、F∷=(E)∣i,写出该文法的开始符号、终结符号集合V T、非终结符号集合V N。 开始符号:E V t={+, - , * , / ,(, ), i} V n={E , F , T} 2.7 对2.6题的文法,写出句型T+T*F+i的短语、简单短语以及句柄。 短语:T+T*F+i T+T*F Array i i T T*F 简单短语:i T*F T 句柄:T

编译原理模拟试卷及答案

模拟试题二 发表日期:2009年6月5日编辑:admin 阅读数:240 一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。每题1分,共5分) 1、算符优先关系表不一定存在对应的优先函数。 2、数组元素的地址计算与数组的存储方式有关。 3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。 4、每个文法都能改写为LL(1)文法。 5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。 二、填空题(每题2分,共20分) 1、从功能上说,程序语言的语句大体可分为_______语句和______语句两大类。 2、扫描器的任务是从________中识别出一个个_______。 3、所谓最右推导是指:_______。 4、语法分析最常用的两类方法是________和_________分析法。 5、一个上下文无关文法所含四个组成部分是_______________。 6、所谓语法制导翻译方法是_____________________。 7、符号表中的信息栏中登记了每个名字的有关的性质,如_________等等。 8、一个过程相应的DISPLAY表的内容为________。 9、常用的两种动态存贮分配办法是_____动态分配和_____动态分配。 10、产生式是用于定义_____的一种书写规则。 三、名词解释(每题2分,共10分) 1、遍 2、无环路有向图(DAG) 3、语法分析

4、短语 5、后缀式 四、简述题(每题4分,共24分) 1、考虑下面程序 ………… Var a:integer; Procedure S(X); Var X:integer; Begin a:=a+1; X:=a+X End; Begin a:=5; S(a); Print(a) End. 试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么? 2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。 3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。 4、已知文法G(S) S→a|∧|(T)

(完整版)编译原理及实现课后习题答案

编译原理及实现课后习题解答 2.1设字母表A={a},符号串x=aaa,写出下列符号串及其长度:x0,xx,x5 以及A+和A*. x0=(aaa)0=ε| x0|=0 xx=aaaaaa |xx|=6 x5=aaaaaaaaaaaaaaa | x5|=15 A+ =A1∪A2∪ …. ∪A n∪…={a,aa,aaa,aaaa,aaaaa…} A* = A0 ∪A1 ∪A2 ∪…. ∪A n ∪…={ε,a,aa,aaa,aaaa,aaaaa…} 2.2令∑={a,b,c},又令x=abc,y=b,z=aab,写出如下符号串及它们的长度:xy,xyz,(xy)3 xy=abcb |xy|=4 xyz=abcbaab |xyz|=7 (xy)3=(abcb)3 =abcbabcbabcb | (xy)3 |=12 2.3设有文法G[S]:S∷=SS*|SS+|a,写出符号串aa+a*规范推导,并构造语 法树。 S => SS* => Sa* => SS+a* => Sa+a* => aa+a*

S S S * S S + a a a 2.4 已知文法G[Z]:Z∷=U0∣V1 、U∷=Z1∣1 、V∷=Z0∣0 ,请写出全部由此文法描述的只含有四个符号的句子。 Z=>U0=>Z10=>U010=>1010 Z=>U0=>Z10=>V110=>0110 Z=>V1=>Z01=>U001=>1001 Z=>V1=>Z01=>V101=>0101 2.5已知文法G[S]:S∷=AB A∷=aA︱εB∷=bBc︱bc , 写出该文法描述的语言。 A∷=aA︱ε描述的语言: {a n|n>=0} B∷=bBc︱bc 描述的语言:{b n c n|n>=1} L(G[S])={a n b m c m|n>=0,m>=1} 2.6已知文法E∷=T∣E+T∣E-T 、T∷=F∣T*F∣T/F 、F∷=(E)∣i,写出该文法的开始符号、终结符号集合V T、非终结符号集合V N。 开始符号:E V t={+, - , * , / ,(, ), i} V n={E , F , T}

医学影像学试题及答案

医学影像学试卷 单选题,(共25小题,每小题4分) 1. 下列哪种方法为颅脑疾病诊断的基本方法:( ) A. 脑室造影 B. 计算机体层 C. 头颅平片 D. 磁共振成像 E. 脑血管造影 2. 形成正位肺门阴影最重要的的解剖结构是:( ) A. 淋巴组织 B. 支气管动脉 C. 支气管 D. 肺动脉 E. 肺静脉 3. 下列那项不是成骨肉瘤的X线表现:( ) A. 死骨形成 B. 骨膜反应 C. 软组织肿块 D. 溶骨性骨破坏 E. 瘤骨形成 4. 下述心脏大血管的X线测量其正常值及意义哪项是错误的:( ) A. 肺动脉段基线大于6cm为异常

B. 心脏面积增大百分比小于等于10%无意义 C. 右肺下肺动脉的宽径大小1cm为扩张 D. 心脏横径与胸廓横径之比,正常不超过0.52 E. 心脏横径正常平均11.75±0.93cm 5. 肾结核平片征象:( ) A. 肾影倒"八字"形 B. 肾影不清 C. 病侧"肾下垂" D. 肾区可见不规则钙化灶 E. 肾外形不光整 6. 摄胸片,投照条件适当,显影液温度25℃,显影时间5分钟,会造成:( ) A. 影像对比度欠佳 B. 以上都不是 C. 影像灰雾过高 D. 影像层次不清 E. 影像模糊 7. 摄小儿胸部X线片时,有如下情况,请您找出错误者:( ) A. 不能坐立的婴幼儿,不一定用立位摄影 B. 正常胸腺有时会与心脏增大混淆 C. 用大毫安、短时间 D. 正常也可见气管移位,如头颈的扭转 E. 呼气和吸气相摄片无明显差别

8. X线表现为肺血少,左、右肺门不对称,左侧〉右侧,肺动脉段呈直立样突起,最可靠的诊断是:( ) A. 动脉导管未闭 B. 肺动脉狭窄 C. 肺心病 D. 高血压性心脏病 E. 主动脉缩窄 9. 急性化脓性骨髓炎的病理变化特点是:( ) A. 以骨质破坏为主,周围伴骨质硬化 B. 局部骨质疏松 C. 以骨质增生硬化为主 D. 以骨质破坏为主,一般没有明显骨质增生硬化 E. 早期即有骨质破坏出现 10. 乳腺钼靶摄影最佳时间:( ) A. 月经期 B. 月经中期 C. 与经期无关 D. 月经干净后一周内 E. 月经前期 11. 三岁小儿,钡灌肠发现直肠局限性狭窄,近端肠管明显扩张,诊断应考虑为:( ) A. 先天性巨结肠

编译原理知识点汇总

编译原理的复习提纲 1.编译原理=形式语言+编译技术 2.汇编程序: 把汇编语言程序翻译成等价的机器语言程序 3.编译程序: 把高级语言程序翻译成等价的低级语言程序 4.解释执行方式: 解释程序,逐个语句地模拟执行 翻译执行方式: 翻译程序,把程序设计语言程序翻译成等价的目标程序 5.计算机程序的编译过程类似,一般分为五个阶段: 词法分析、语法分析、语义分析及中间代码生成、代码优化、目标代码生成 词法分析的任务: 扫描源程序的字符串,识别出的最小的语法单位(标识符或无正负号数等) 语法分析是: 在词法分析的基础上的,语法分析不考虑语义。语法分析读入词法分析程序识别出的符号,根据给定的语法规则,识别出各个语法结构。 语义分析的任务是检查程序语义的正确性,解释程序结构的含义,语义分析包括检查变量是否有定义,变量在使用前是否具有值,数值是否溢出等。

语法分析完成之后,编译程序通常就依据语言的语义规则,利用语法制导技术把源程序翻译成某种中间代码。所谓中间代码是一种定义明确、便于处理、独立于计算机硬件的记号系统,可以认为是一种抽象机的程序 代码优化的主要任务是对前一阶段产生的中间代码进行等价变换,以便产生速度快、空间小的目标代码 编译的最后一个阶段是目标代码生成,其主要任务是把中间代码翻译成特定的机器指令或汇编程序 编译程序结构包括五个基本功能模块和两个辅助模块 6.编译划分成前端和后端。 编译前端的工作包括词法分析、语法分析、语义分析。编译前端只依赖于源程序,独立于目标计算机。前端进行分析 编译后端的工作主要是目标代码的生成和优化后端进行综合。独立于源程序,完全依赖于目标机器和中间代码。 把编译程序分为前端和后端的优点是: 可以优化配置不同的编译程序组合,实现编译重用,保持语言与机器的独立性。 7.汇编器把汇编语言代码翻译成一个特定的机器指令序列 第二章 1.符号,字母表,符号串,符号串的长度计算P18,子符号串的含义,符号串的简单运算XY,Xn, 2.符号串集合的概念,符号串集合的乘积运算,方幂运算,闭包与正闭包的概念P19,P20A0 ={ε} 3.重写规则,简称规则。非xx(V

计算机专升本考试模拟试题(含答案)(20210220065226)

专升本公共计算机基础模拟试题二及答案模拟试卷(二) 模拟试卷(二) 一、填空题(每空 1 分,共30分) 1.一个完整的计算机系统由_ 硬件系统_和_软件系统____ 两部分组成。 2.个人计算机的主要性能指标有字长、__________ 运算速度、 、 _______ 、外部设备和软件配置。 3.两位二进制可表示___两_ 种不同的状态。 4.无论是西文字符还是中文字符,在机内一律用二进制___编码 来表示。 5.系统软件包括操作系统、应用软件__ 、数据库管理系统、一 些实用程序。 6.-和-- 集成在一块芯片上,称为微处理器(CPU )。 7.启动Windows98 后,在桌面的空白区域单击鼠标右键,执行“属性” 命令后,将出现窗口。 8.Windows98系统提供了丰富的应用程序,这些程序按其功能放在相应的程序组中。要编辑一个图形文件需要用附件组中的程序。 9. 在Windows98 系统控制面板中,删除某一中文输入法后,该输入法从输入法属性的列表框中被删除,而并非从中删除了该输入 法。

10. 在Windows98 系统中,可以使用 ___ 对文件夹和文件进行管理。 11.利用剪贴板复制文本,首先要文本,然后单击 “ ______ ”按钮,再确定____ ,最后单击“ _____ ”按钮。 12.在Word 窗口的“窗口”菜单的下面有一些文件名,它们是 Word 文档名。 13.在Word 中,_____ 的作用是控制文档内容在页面中的位置。 14. Excel 是一个通用的___ 软件。 15. 向Excel 工作表中输入数据时,键入前导符表示要输入公 式。 16. 在PowerPoint 中,演示文稿的后缀名为 _ ,演示文稿模板的后缀名为_____ 。 17. 为了解决IP 地址难于记忆,Internet 又设计了。 18.计算机网络从逻辑功能上可以分为资源子网和__ 。 19.计算机网络是_____ 与________ 紧密结合的产物。 20.现在常用的浏览器有微软公司的和网景公司的 _______ 。 二、选择题(每空 1 分,共30 分) 1.所谓“裸机”是指【 d 】。

编译原理发展史

编译原理历史与发展 姓名:费张烨学号:09923206 指导老师:朱文华 基于形式语言理论中的有关概念来讨论编译实现问题。即 编译原理=形式语言理论+编译技术 编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序(source language)编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。通常地,源程序为高级语言(high-level language ),如C或C + + ,而目标语言则是目标机器的目标代码(object code,有时也称作机器代码(machine code )),也就是写在计算机机器指令中的用于运行的代码。这一过程可以表示为: 源程序→编译器→目标程序 编译技术的历史 在20世纪40年代,由于冯·诺伊曼在存储-程序计算机方面的先锋作用,编写一串代码或程序已成必要,这样计算机就可以执行所需的计算。开始时,这些程序都是用机器语言(machine language )编写的。机器语言就是表示机器实

际操作的数字代码,例如:C7 06 0000 0002 表示在IBM PC 上使用的Intel 8x86处理器将数字2移至地址0 0 0 0 (16进制)的指令。

医学影像学试题附答案

医学影像学试卷 适用X围:__________ 出题教师:__________ 试卷满分100 分,考试时间60 分钟;书写要工整、清楚、标点符号使用正确。 一、填空题,根据题意,将正确答案补充完整(本大题满分10分,每小题2分) 1. 在CT纵隔窗图象上主肺动脉窗平面,显示的主要大血管有:(上腔静脉),(升主动脉),(降主动脉) 2. 骨膜增生又称骨膜反应,是因骨膜受到刺激,其内层的(成骨细胞)活动增加而产生的(骨膜新生骨)。X线上常表现为与骨皮质平行的线状、层状或(花边)状,已形成的骨膜新生骨可重新被破坏,破坏区两端残留骨膜反应呈三角形或袖口状,称为(骨膜三角或Codman三角)。 3. 输尿管结石的好发部位(肾盂输尿管移行部),(骨盆入口处)和(膀胱入口处)。 4. 胃溃疡之龛影在切线位X线片上的特征是(突出于轮廓线外),边缘光整,形状较规则,(多呈乳头状),可有(粘膜线)、狭颈征、项圈征出现。 5. MRI对(钙化),(细小骨化)的显示不如X线和CT。 二、单选题,以下各题有多个选项,其中只有一个选项是正确的,请选择正确答案(本大题满分30分,每小题1.5分) 1. 下列哪种方法为颅脑疾病诊断的基本方法:( ) A. 脑室造影 B. 计算机体层

C. 头颅平片 D. 磁共振成像 E. 脑血管造影 2. 形成正位肺门阴影最重要的的解剖结构是:( ) A. 淋巴组织 B. 支气管动脉 C. 支气管 D. 肺动脉 E. 肺静脉 3. 下列哪项不是逆行肾盂造影的优点:( ) A. 不通过血液循环,全身反应少 B. 禁忌症少 C. 造影剂量少,显影清楚 D. 能同时了解肾功能情况 E. 碘过敏者同样可以运用 4. 下列那项不是成骨肉瘤的X线表现:( ) A. 死骨形成 B. 骨膜反应 C. 软组织肿块 D. 溶骨性骨破坏 E. 瘤骨形成 5. 对冠心病室壁瘤诊断最可靠的方法是:( )

医学影像技术技士试题库完整

基础知识 以下每一道题下面有A、B、C、D、E五个备选答案。请从中选择一个最佳答案,并在答题卡上将相应题号的相应字母所属的方框涂黑。 [试题1]组成肌腱的主要组织是 A、疏松结缔组织 B、致密结缔组织 C、网状组织 D、脂肪组织 E、肌组织 [答案](B) 答对率66.67% [试题2]下列关于骨构造的叙述,错误的是 A、由骨质、骨膜、骨髓构成 B、骨质分骨密质、骨松质两种 C、骨膜对骨有营养、再生和感觉作用 D、红骨髓具有造血功能 E、成人骨干骨髓腔的骨髓终生具有造血功能 [答案](E) 答对率80.63% [试题3]下列位于颅后窝的结构是 A、筛孔 B、圆孔 C、卵圆孔 D、棘孔 E、舌下神经孔 [答案](E) 答对率49.55% [试题4]动眼神经出颅的部位是 A、圆孔 B、卵圆孔 C、棘孔 D、眶上裂 E、视神经管 [答案](D) 答对率64.86% [试题5]变移上皮分布于 A、血管的表面 B、胆囊的表面 C、气管表面 D、膀胱的表面 E、胃的表面 [答案](D) 答对率64.71% [试题6]颈椎最主要的特征是 A、椎体较小 B、棘突分叉 C、有横突孔 D、关节突不明显 E、椎孔较小 [答案](C) 答对率49.17% [试题7]胸骨角平对于第几肋前端 A、第一肋 B、第二肋 C、第三肋 D、第四肋 E、第五肋 [答案](B) 答对率70.42% [试题8]与肱骨小头相关节的是 A、尺骨头 B、滑车切迹 C、鹰嘴 D、冠突 E、桡骨头 [答案](E) 答对率35.89% [试题9]关于胫骨的叙述,正确的是 A、位于小腿外侧 B、胫骨体呈圆柱形 C、上端膨大形成、外侧髁 D、两髁之间形成髁间凹 E、下端膨大外侧面形成外踝 [答案](C) 答对率53.75% [试题10]一块椎骨的椎体和椎弓围成 A、骶管裂孔 B、椎管 C、骶管 D、椎孔 E、椎间孔 [答案](D) 答对率49.62% [试题11]食管的第二狭窄位于 A、起始处 B、穿膈处 C、与左主支气管交叉处 D、与右主支气管交叉处 E、与胃相接处 [答案](C) 答对率87.84% [试题12]十二指肠乳头位于十二指肠的 A、上部 B、降部 C、水平部 D、升部 E、十二指肠球部 [答案](B) 答对率58.33%

编译原理和技术期末考试复习题

2.1 考虑文法G[S],其产生式如下: S→(L)|a L→L,S|S (1)试指出此文法的终结符号、非终结符号。 终结符号为:{(,),a,,,} 非终结符号为:{S,L} 开始符号为:S (2)给出下列各句子的分析树: ① ②(a,(a,a))③ (a,((a,a),(a,a))) (a,a) (3)构造下列各句子的一个最左推导: ① (a,a) S (L) (L,S) (S,S) (a,S) (a,a) ② (a,(a,a)) S (L) (L,S) (S,S) (a,S) (a,(L) (a,(L,S)) (a,(S,S)) (a,(a,S)) (a,(a,a)) ③ (a,((a,a),(a,a))) S (L) (L,S) (S,S) (a,S) (a,(L)) (a,(L,S)) (a,(S,S)) (a,((L),S)) (a,((L,S),S)) (a,((S,S),S)) (a,((a,S),S)) (a,((a,a),S)) (a,((a,a),(L))) (a,((a,a),(L,S))) (a,((a,a),(S,S))) (a,((a,a),(a,S))) (a,((a,a),(a,a))) (4)构造下列各句子的一个最右推导: ①(a,a) S (L) (L,S) (L,a) (S,a) (a,a) ②(a,(a,a)) S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,a)) (L,(S,a)) (L,(a,a)) (S,(a,a)) (a,(a,a) ③(a,((a,a),(a,a)) S (L) (L,S) (L,(L)) (L,(L,S)) (L,(L,(L))) (L,(L,(L,S))) (L,(L,(L,a))) (L,(L,(S,a))) (L,(L,(a,a))) (L,(S,(a,a))) (L,((L),(a,a))) (L,((L,S),(a,a))) (L,((L,a),(a,a))) (L,((S,a),(a,a))) (L,((a,a),(a,a))) (S,((a,a),(a,a))) (a,((a,a),(a,a))) (5)这个文法生成的语言是什么? L(G[S]) = (α1,α2,...,αn)或a 其中αi(1≤i≤n),即L(G[S])是一个以a为原子的纯表,但不包括空表。 2.2 考虑文法G[S] S→aSbS|bSaS|ε (1)试说明此文法是二义性的。可以从对于句子abab有两个不同的最左推导来说明。 S aSbS abS abaSbS ababS abab S aSbS abSaSbS abaSbS ababS abab 所以此文法是二义性的。 (2)对于句子abab构造两个不同的最右推导。 S aSbS aSbaSbS aSbaSb aSbab abab S aSbS aSb abSaSb abSab abab (3)对于句子abab构造两棵不同的分析树。

编译原理试题及答案(1)

<编译原理>历年试题及答案 一.(每项选择2分,共20分)选择题 1.将编译程序分成若干个“遍”是为了_b__。 a.提高程序的执行效率 b.使程序的结构更加清晰 c.利用有限的机器内存并提高机器的执行效率 d.利用有限的机器内存但降低了机器的执行效率 2.构造编译程序应掌握__d__。 a.源程序 b.目标语言 c.编译方法 d.以上三项都是 3.变量应当c_。 a.持有左值 b.持有右值 c.既持有左值又持有右值 d.既不持有左值也不持有右值 4.编译程序绝大多数时间花在_d___上。 a.出错处理 b.词法分析 c.目标代码生成 d.管理表格 5.词法分析器的输出结果是_c___。 a.单词的种别编码 b.单词在符号表中的位置 c.单词的种别编码和自身值 d.单词自身值 6.正规式MI和M2等价是指__c__。 a. MI和M2的状态数相等 b.Ml和M2的有向弧条数相等。 C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—c。 a.语法规则 b.词法规则 c.语义规则 d.等价变换规则 8.后缀式ab+cd+/可用表达式__b_来表示。 a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d 9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。 a.动态存储 b.栈式存储 c.静态存储 d.堆式存储 10.堆式动态分配申请和释放存储空间遵守___d_____原则。 a.先请先放 b.先请后放 c.后请先放 d.任意 二(每小题10分,共80分)简答题 1.画出编译程序的总体结构图,简述各部分的主要功能。 2. 已知文法G[E]: E→ET+|T T→TF* | F F→F^ | a 试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄. 3.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。 4.设文法G(S): S→(L)|a S|a L→L,S|S (1) 消除左递归和回溯;

相关文档
相关文档 最新文档