蚂蚁圈 >地图 >试题 >

语言试题参考答案

语言试题参考答案

时间:2024-02-05 作者:蚂蚁圈

相关推荐

我们每天都要进行不同文档的处理,范文是我们快速入手写作的重要工具。范文构思可以让自己更加娴熟地运用写作技巧,要怎么样做才能短时间内写出范文的水平?“语言试题参考答案”或许能够帮助您找到对这个问题更好的回答,如果本文能够为您带来一些灵感我会感到非常高兴!

语言试题参考答案 篇1

(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分)

1、 在C语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const

2、 不属于C语言基本数据类型的是( )

A). int B). union C). char D). unsigned

3、 下面是对宏定义的描述。不正确的是( )

A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间

C). 宏替换只是字符串的简单替代

D). 宏替换时先检查类型,类型一致时才可以替换

4、 C语言中,″\xfds″在内存中占用的字节数是( )

A).3 B).4 C).5 D).6

5、 设int x;则执行printf(″%x\n″,~x^x);的结果是( )

A). ffffffff B). ff C). 0 D). 1

6、 对于while( )

A).用条件控制循环体的执行次数 B).循环体至少要执行一次

C).循环体有可能一次也不执行 D).循环体中可以包含若干条语句

7、 执行下列语句后输出的结果是( )

int a=8,b=7,c=6;

if(ac){a=c;c=b;}

printf("%d,%d,%d\n",a,b,c);

A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8

8、 设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )

A).9,19 B).9,20 C).10,19 D).10,20

9、 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′id="article-content1">

我们每天都要进行不同文档的处理,范文是我们快速入手写作的重要工具。范文构思可以让自己更加娴熟地运用写作技巧,要怎么样做才能短时间内写出范文的水平?“语言试题参考答案”或许能够帮助您找到对这个问题更好的回答,如果本文能够为您带来一些灵感我会感到非常高兴!

语言试题参考答案 篇1

(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分)

1、 在C语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const

2、 不属于C语言基本数据类型的是( )

A). int B). union C). char D). unsigned

3、 下面是对宏定义的描述。不正确的是( )

A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间

C). 宏替换只是字符串的简单替代

D). 宏替换时先检查类型,类型一致时才可以替换

4、 C语言中,″\\xfds″在内存中占用的字节数是( )

A).3 B).4 C).5 D).6

5、 设int x;则执行printf(″%x\n″,~x^x);的结果是( )

A). ffffffff B). ff C). 0 D). 1

6、 对于while( )

A).用条件控制循环体的执行次数 B).循环体至少要执行一次

C).循环体有可能一次也不执行 D).循环体中可以包含若干条语句

7、 执行下列语句后输出的结果是( )

int a=8,b=7,c=6;

if(ac){a=c;c=b;}

printf("%d,%d,%d\n",a,b,c);

A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8

8、 设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )

A).9,19 B).9,20 C).10,19 D).10,20

9、 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )

A).x数组的长度等于y数组的长度 B).x数组的长度大于y数组的长度

C).x数组的长度少于y数组的长度 D).x数组与y数组的存储区域相同

10、 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )

for(i=0;i

printf(″%d″,x[i][2-i]);

A).147 B).159 C).357 D).369

11、 执行完下列语句后,n的值是( )

int n;

for (n=0 ; n

A).125 B).126 C).127 D).128

12、 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )

A).–132 B).–60 C). -24 D). 0

13、 为了连接两个字符串s1与s2,应当使用( )

A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )

14、 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )

A).位与运算 B).逻辑与运算 C).取指针内容 D).取变量地址

15、 下面输出的结果为( )

int a=13, b=64;

printf(“%d\n”, !a || (b>>3) ); A).13 B).64 C).1 D).0

16、 下列定义正确的是( )

A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;

17、 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;

则printf(″%d\n″,sizeof(aa));的输出是( ) A).32 B).36 C).12 D).8

18、 数据-54.78在文本文件中占用的字节个数是( )

A).4 B).5 C).6 D).8

19、 在宏定义#define p(r) 3.14*r中,请问宏名是( )

A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的.用于修改的非空二进制文件“hello.txt”,正确语句是( )

A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" ) 密 封 线 内 答 题 无 效

语言试题参考答案 篇2

(每小题6分,共36分)

1.现有如下程序段:

DATA SEGMENT DA3 EQU 1234H

ORG 0020H DA4 EQU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS

请回答:(1)该程序段已占有的存储字节数是多少?

2.执行下列程序段后,回答问题。

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

… MOV CH,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=__0012H____,(BX)=_1221H_____,(CX)=__0200H____。

3.阅读如下程序:

ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0

NUM EQU $ -ADRR LOOPZ DON

RETT DB? JNZ NEXT

… MOV BL,OFFH

MOV CX,NUM NEXT:MOV RETT,BL

MOV BX,-1 HLT

DON:INC BX

请问:(1)该程序完成的功能是什么?

(2)程序执行后指出RETT字节单元中的内容是什么?

4.现有一子程序:

SUB1 PROC

PLUS:TEST BL,80H

TEST AL,80H

JE EXITO

JE PLUS

XCHANGE:XCHG AL,BL

TEST BL,80H

EXITO:RET

JNE EXITO

SUB1 ENDP

JMP XCHANGE

试回答:(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=___

BL=______。

5.阅读程序段:

BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1]

RESULT DB? JNG NEXT

… MOV AL,[SI+1]

START:LEA SI,BLOCK NEXT:INC SI

MOV CX,[SI] LOOP LOP1

INC SI MOV RESULT,AL

MOV AL,[SI] HLT

请问:(1)该程序完成的功能是什么?

(2)该程序循环的次数是多少?

6.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H

BLOK DW X1,X2,…,XN

COUNT EQU($-BLOLOK)/2

RESULT DW COUNT,?

LEA BX,BLOK-2

MOV CX,RESULT

XOR AX,AX

GOON:ADD BX,2

CMP AX,[BX]

JAE NEXT

MOV AX,[BX]

NEXT:LOOP GOON

MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______

BX=______

程序循环次数=______

语言试题参考答案 篇3

1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

A.switch(x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

B.switch((int)x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

C.switch(a+b)

{

case 1: printf("* ");

case 2+1: printf("** ");

}

D.switch(a+b)

{

case 1: printf("* ")

case c: printf("** ");

}

标准答案:C

2. 若有宏定义如下:

#define X 5

#define Y X+1

#define Z Y*X/2

则执行以下printf语句后,输出的结果是( )

int a; a=Y;

printf("%d ",Z);

printf("%d",--a); (2分)

A.7,6 B.12,6 C.12,5 D.7,5

标准答案:D

3. 下面的.符号常量定义中,正确的是 ( ) (2分)

A.#define PI 3.14; B.#include PI 3.14;

C.#define PI=3.14 D.#define PI 3.14

标准答案:D

4. 以下程序的输出结果是( )

int a, b;

void fun()

{ a=100; b=200; }

main()

{ int a=5, b=7;

fun();

printf("%d%d ", a,b);

} (2分)

A.100200 B.57 C.200100 D.75

标准答案:D

5. 若有以下调用语句,则不正确的fun函数的首部是( )

main()

{ …

int a[50],n;

fun(n, &a[9]);

} (2分)

A.void fun(int m, int x[])

B.void fun(int s, int h[41])

C.void fun(int p, int *s)

D.void fun(int n, int a)

标准答案:D

6. 以下程序的输出结果是( )

fun(int x, int y, int z)

{ z=x*x+y*y; }

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

} (2分)

A.0 B.29 C.31 D.无定值

标准答案:C

7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

A.auto和static B.auto和register

C.register和static D.extern和register

标准答案:B

8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

标准答案:B

9. 以下函数值的类型是( )

fun ( float x )

{ float y;

y= 3*x-4;

return y;

} (2分)

A.int B.不确定 C.void D.float

标准答案:A

10. C语言规定函数的返回值的类型是由( ) (2分)

A.return语句中表达式类型决定

B.调用该函数时的主调函数类型决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

标准答案:D

11. 若有说明:int i,j=7, *p=&i; 则与i=j;等价的语句是( ) (2分)

A.i= *P; B.*p=*&j; C.i=&j; D.i=* *p;

标准答案:B

12. 以下程序执行后a的值是( )

main()

{ int a,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

printf("%d ",a);

} (2分)

A.4 B.1 C.0 D.a无定值

标准答案:D

13. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)

A.*p=&a;scanf("%ld",p);

B.p=(long *)malloc(8);scanf("%ld",p);

C.scanf("%ld",p=&a);

D.scanf("%ld",&a);

标准答案:A

14. 以下程序的输出结果是( )

#include

int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;

main()

{p=(int *)malloc(sizeof(int));

f(p,a);

printf("%d ",*p);

}

f(int *s,int p[][3])

{*s=p[1][1];} (2分)

A.1 B.4 C.7 D.5

标准答案:D

15. 设已有定义: char *st="how are you"; 下列程序段中不正确的是( ) (2分)

A.char a[12], *p; strcpy(p=a+1,&st[4]);

B.char a[12]; strcpy(++a, st);

C.char a[12]; strcpy(a, st);

D.char a[12], *p; strcpy(p=&a[1],st+2);

标准答案:B

18. 以下程序的输出结果是_____ B___。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf(""%s" ",ch[1]);

} (2分)

A."AAAA" B. "BBB" C."BBBCC" D."CC"

标准答案:B

19. 以下程序的输出结果是_______。

main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=0;i for(j=i;j printf("%d ",t);

} (2分)

A.3 B.4 C.1 D.9

标准答案:B

20. 在下列变量中,()不是局部变量 (2分)

A.register类 B.外部static类

C.auto类 D.函数形参

标准答案:B


语言试题参考答案 篇4

(每小题1分,共20分)

1.指令JMP FAR PTR DONE属于( D )

A.段内转移直接寻址 B.段内转移间接寻址

C.段间转移直接寻址 D.段间转移间接寻址

2.下列叙述正确的是( C )

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP

S指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM

P指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J

NL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J

NB指令

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这

个数据区最末一个字单元的物理地址是( )

A.12CSBH B.12B6BH C.12C59H D.12BFEH

4.在下列指令的表示中,不正确的是( C )

A.MOV AL,[BX+SI] B.JMP SHORT DONI

C.DEC [BX] D.MUL CL

5.在进行二重循环程序设计时,下列描述正确的是( A )

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

6.条件转移指令JNE的测试条件为( A )

A.ZF=0 B.CF=0 C.ZF=1 D.CF=1

7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( D )

A.BX或CX B.CX或SI C.DX或SI

D.SI或DI

8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在

( A )中。

A.数据段中偏移量为3236H的字节

B.附加段中偏移量为3234H的字节

C.数据段中偏移量为3234H的字节

D.附加段中偏移量为3236H的字节

9.执行如下程序:( )

MOV AX,0

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后(BX)=( C )

A.99 B.100 C.101 D.102

10.上题的程序执行后(AX)=( B )

A.5000 B.5050 C.5100 D.5150

11.对于下列程序段:( )

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN 也可用______指令完成同样的功能。

A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB

12.下面指令序列执行后完成的运算,正确的算术表达式应是( )

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL

A.y=x2+1 B.x=y2+1 C.x=y2-1 D.y=x2-1

13.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。

( B )

A.占内存空间小,但速度慢 B.占内存空间大,但速度快

C.占内存空间相同,速度快 D.占内存空间相同,速度慢

14.在程序执行过程中,IP寄存器中始终保存的是( )

A.上一条指令的首地址 B.下一条指令的首地址

C.正在执行指令的首地址 D.需计算有效地址后才能确定地址

15.PSW寄存器中共有______位条件状态位,有______位控制状态位。( )

A.6、3 B.3、6 C.8、4 D.4、8

16.下列指令执行时出错的是( A )

A.ADD BUF1,BUF2

B.JMP DWORD PTR DAT [BX]

C.MOV AX,[BX+DI] NUM

D.TEST AL,08H

17.已知(AX)=1234H,执行下述三条指令后,(AX)=( D ) MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.0000H

18.在下列指令中,______指令的执行会影响条件码中的CF位。( )

A.JMP NEXT B.JC NEXT C.INC BX

D.SHL AX,1

19.串指令中的目的操作数地址是由______提供。( C )

A.SS:[BP] B.DS:[SI] C.ES:[DI]

D.CS:[IP]

20.将DX的内容除以2,正确的指令是( )

A.DIV 2 B.DIV DX,2 C.SAR DX,1

D.SHL DX,1

语言试题参考答案 篇5

(每小题4分,共12分)

1.假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后, DX中的值。

(1)SHR DX,1

(2)RCR DL,1

(3)RCL DX,CL ?????

2.写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

3.写一程序段,求双字长数DX∶bX的相反数。

NEG DX

NEG AX

SBB DX, 0

语言试题参考答案 篇6

一、单项选择题(20分,每题2分)

1.以下叙述中错误的是。C

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

2.以下叙述中,正确的是:C

A)continue和break语句只能用于循环体内

B)continue和break语句只能用于分支语句中

C)continue语句只能用于循环体内

D)continue语句只能用于分支语句中

3.执行下列程序段后,正确的结果是 C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

4.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

5.变量的指针,其含义是指该变量的 B

A)值 B)地址 C)名 D)一个标志

6.执行下列程序段后,正确的结果是A

int i=5;

while(i=1)

i--;

printf(“%d”,i)

A) 5 B) 0 C) 1 D) 无限循环

7.for(i=0;i

if(i〈=5) break;

则循环结束后i的值为

A)0 B)1 C)5 D)10

8.执行下列程序段后,正确的结果是C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

10.设有数组定义:char str[]=”China”;则下面的输出为B

printf(“%d”,strlen(str));

A)4 B)5 C)6 D)7

二、填空题(30分,每空2分)

1.C语言提供的三种逻辑运算符是__&&___、__||___和__!__。

2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 1 B 。

#include

main()

{

char a,b;

a=getchar();

scanf("%d",&b);

a=a-'A'+'0';

b=b*2;

printf("%c %c\n",a,b);

}

3.以下程序运行后的输出结果是 4 3 5 。

main()

{

int a=3,b=4,c=5,t=99;

if(b

if(a

printf("%d %d %d\n",a,b,c);

}

4.下面程序将字符数组a复制到字符数组b中。

main()

{

char a[]="I am a boy.",b[20];

int i;

for(i=___0____;a[i]!='\0';i++)

{

____ b[i]=a[i]____;

}

_____ b[i]= '\0'____;

}

5.若有定义:double x[3][5];

则x数组行下标的上限是__0___,列下标的下限是__4___。

6.以下程序运行后的输出结果是 101 。

#define S(x) 4*(x)*(x)+1

main()

{

int i=2,j=3;

printf("%d\n",S(i+j));

}

7.若有定义:double x[3][5];

则x数组行下标的上限是_0____,列下标的下限是_4___。

8.已知宏定义#define s 2+3

printf(”%d”,s*4);的输出结果是__14_____。

9.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。

三、写出程序的运行结果(30分,每题10分)

1.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

2.写出程序运行结果

#include

main()

{

int i=10,j=0;

do

{

j=j+i;

i--;

}while(i>2);

printf("%d\n",j);

}

52

3.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

四、编程(完形填空)(20分,每题10分)

1.打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。

include

main()

{

int i,j,k,m;

for(i=100; i

{

j=i/100;

k= i/10 ;

m=i;

if( j*100+k*10+m==m*m*m+j*j*j+k*k*k )

printf("%d\n", i);

}

}

2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。

main()

{

int yy,mm,day;

scanf(“%d%d”,&yy,&mm);

switch(_mm__)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12: day=__31_;

break;

case4:

case6:

case9:

case11: day=__30___;

break;

case2: if(((yy%4==0)__&&___(yy0!=0))__||__(yy@0==0))

day=29;

else

day=28;

break;

}

}

′};那么( )

A).x数组的长度等于y数组的长度 B).x数组的长度大于y数组的长度

C).x数组的长度少于y数组的长度 D).x数组与y数组的存储区域相同

10、 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )

for(i=0;i

printf(″%d″,x[i][2-i]);

A).147 B).159 C).357 D).369

11、 执行完下列语句后,n的值是( )

int n;

for (n=0 ; n

A).125 B).126 C).127 D).128

12、 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )

A).–132 B).–60 C). -24 D). 0

13、 为了连接两个字符串s1与s2,应当使用( )

A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )

14、 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )

A).位与运算 B).逻辑与运算 C).取指针内容 D).取变量地址

15、 下面输出的结果为( )

int a=13, b=64;

printf(“%d\n”, !a || (b>>3) ); A).13 B).64 C).1 D).0

16、 下列定义正确的是( )

A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;

17、 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;

则printf(″%d\n″,sizeof(aa));的输出是( ) A).32 B).36 C).12 D).8

18、 数据-54.78在文本文件中占用的字节个数是( )

A).4 B).5 C).6 D).8

19、 在宏定义#define p(r) 3.14*r中,请问宏名是( )

A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的.用于修改的非空二进制文件“hello.txt”,正确语句是( )

A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" ) 密 封 线 内 答 题 无 效

语言试题参考答案 篇2

(每小题6分,共36分)

1.现有如下程序段:

DATA SEGMENT DA3 EQU 1234H

ORG 0020H DA4 EQU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS

请回答:(1)该程序段已占有的存储字节数是多少?

2.执行下列程序段后,回答问题。

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

… MOV CH,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=__0012H____,(BX)=_1221H_____,(CX)=__0200H____。

3.阅读如下程序:

ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0

NUM EQU $ -ADRR LOOPZ DON

RETT DB? JNZ NEXT

… MOV BL,OFFH

MOV CX,NUM NEXT:MOV RETT,BL

MOV BX,-1 HLT

DON:INC BX

请问:(1)该程序完成的功能是什么?

(2)程序执行后指出RETT字节单元中的内容是什么?

4.现有一子程序:

SUB1 PROC

PLUS:TEST BL,80H

TEST AL,80H

JE EXITO

JE PLUS

XCHANGE:XCHG AL,BL

TEST BL,80H

EXITO:RET

JNE EXITO

SUB1 ENDP

JMP XCHANGE

试回答:(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=___

BL=______。

5.阅读程序段:

BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1]

RESULT DB? JNG NEXT

… MOV AL,[SI+1]

START:LEA SI,BLOCK NEXT:INC SI

MOV CX,[SI] LOOP LOP1

INC SI MOV RESULT,AL

MOV AL,[SI] HLT

请问:(1)该程序完成的功能是什么?

(2)该程序循环的次数是多少?

6.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H

BLOK DW X1,X2,…,XN

COUNT EQU($-BLOLOK)/2

RESULT DW COUNT,?

LEA BX,BLOK-2

MOV CX,RESULT

XOR AX,AX

GOON:ADD BX,2

CMP AX,[BX]

JAE NEXT

MOV AX,[BX]

NEXT:LOOP GOON

MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______

BX=______

程序循环次数=______

语言试题参考答案 篇3

1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

A.switch(x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

B.switch((int)x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

C.switch(a+b)

{

case 1: printf("* ");

case 2+1: printf("** ");

}

D.switch(a+b)

{

case 1: printf("* ")

case c: printf("** ");

}

标准答案:C

2. 若有宏定义如下:

#define X 5

#define Y X+1

#define Z Y*X/2

则执行以下printf语句后,输出的结果是( )

int a; a=Y;

printf("%d ",Z);

printf("%d",--a); (2分)

A.7,6 B.12,6 C.12,5 D.7,5

标准答案:D

3. 下面的.符号常量定义中,正确的是 ( ) (2分)

A.#define PI 3.14; B.#include PI 3.14;

C.#define PI=3.14 D.#define PI 3.14

标准答案:D

4. 以下程序的输出结果是( )

int a, b;

void fun()

{ a=100; b=200; }

main()

{ int a=5, b=7;

fun();

printf("%d%d ", a,b);

} (2分)

A.100200 B.57 C.200100 D.75

标准答案:D

5. 若有以下调用语句,则不正确的fun函数的首部是( )

main()

{ …

int a[50],n;

fun(n, &a[9]);

} (2分)

A.void fun(int m, int x[])

B.void fun(int s, int h[41])

C.void fun(int p, int *s)

D.void fun(int n, int a)

标准答案:D

6. 以下程序的输出结果是( )

fun(int x, int y, int z)

{ z=x*x+y*y; }

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

} (2分)

A.0 B.29 C.31 D.无定值

标准答案:C

7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

A.auto和static B.auto和register

C.register和static D.extern和register

标准答案:B

8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

标准答案:B

9. 以下函数值的类型是( )

fun ( float x )

{ float y;

y= 3*x-4;

return y;

} (2分)

A.int B.不确定 C.void D.float

标准答案:A

10. C语言规定函数的返回值的类型是由( ) (2分)

A.return语句中表达式类型决定

B.调用该函数时的主调函数类型决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

标准答案:D

11. 若有说明:int i,j=7, *p=&i; 则与i=j;等价的语句是( ) (2分)

A.i= *P; B.*p=*&j; C.i=&j; D.i=* *p;

标准答案:B

12. 以下程序执行后a的值是( )

main()

{ int a,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

printf("%d ",a);

} (2分)

A.4 B.1 C.0 D.a无定值

标准答案:D

13. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)

A.*p=&a;scanf("%ld",p);

B.p=(long *)malloc(8);scanf("%ld",p);

C.scanf("%ld",p=&a);

D.scanf("%ld",&a);

标准答案:A

14. 以下程序的输出结果是( )

#include

int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;

main()

{p=(int *)malloc(sizeof(int));

f(p,a);

printf("%d ",*p);

}

f(int *s,int p[][3])

{*s=p[1][1];} (2分)

A.1 B.4 C.7 D.5

标准答案:D

15. 设已有定义: char *st="how are you"; 下列程序段中不正确的是( ) (2分)

A.char a[12], *p; strcpy(p=a+1,&st[4]);

B.char a[12]; strcpy(++a, st);

C.char a[12]; strcpy(a, st);

D.char a[12], *p; strcpy(p=&a[1],st+2);

标准答案:B

18. 以下程序的输出结果是_____ B___。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf(""%s" ",ch[1]);

} (2分)

A."AAAA" B. "BBB" C."BBBCC" D."CC"

标准答案:B

19. 以下程序的输出结果是_______。

main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=0;i for(j=i;j printf("%d ",t);

} (2分)

A.3 B.4 C.1 D.9

标准答案:B

20. 在下列变量中,()不是局部变量 (2分)

A.register类 B.外部static类

C.auto类 D.函数形参

标准答案:B


语言试题参考答案 篇4

(每小题1分,共20分)

1.指令JMP FAR PTR DONE属于( D )

A.段内转移直接寻址 B.段内转移间接寻址

C.段间转移直接寻址 D.段间转移间接寻址

2.下列叙述正确的是( C )

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP

S指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM

P指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J

NL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J

NB指令

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这

个数据区最末一个字单元的物理地址是( )

A.12CSBH B.12B6BH C.12C59H D.12BFEH

4.在下列指令的表示中,不正确的是( C )

A.MOV AL,[BX+SI] B.JMP SHORT DONI

C.DEC [BX] D.MUL CL

5.在进行二重循环程序设计时,下列描述正确的是( A )

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

6.条件转移指令JNE的测试条件为( A )

A.ZF=0 B.CF=0 C.ZF=1 D.CF=1

7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( D )

A.BX或CX B.CX或SI C.DX或SI

D.SI或DI

8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在

( A )中。

A.数据段中偏移量为3236H的字节

B.附加段中偏移量为3234H的字节

C.数据段中偏移量为3234H的字节

D.附加段中偏移量为3236H的字节

9.执行如下程序:( )

MOV AX,0

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后(BX)=( C )

A.99 B.100 C.101 D.102

10.上题的程序执行后(AX)=( B )

A.5000 B.5050 C.5100 D.5150

11.对于下列程序段:( )

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN 也可用______指令完成同样的功能。

A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB

12.下面指令序列执行后完成的运算,正确的算术表达式应是( )

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL

A.y=x2+1 B.x=y2+1 C.x=y2-1 D.y=x2-1

13.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。

( B )

A.占内存空间小,但速度慢 B.占内存空间大,但速度快

C.占内存空间相同,速度快 D.占内存空间相同,速度慢

14.在程序执行过程中,IP寄存器中始终保存的是( )

A.上一条指令的首地址 B.下一条指令的首地址

C.正在执行指令的首地址 D.需计算有效地址后才能确定地址

15.PSW寄存器中共有______位条件状态位,有______位控制状态位。( )

A.6、3 B.3、6 C.8、4 D.4、8

16.下列指令执行时出错的是( A )

A.ADD BUF1,BUF2

B.JMP DWORD PTR DAT [BX]

C.MOV AX,[BX+DI] NUM

D.TEST AL,08H

17.已知(AX)=1234H,执行下述三条指令后,(AX)=( D ) MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.0000H

18.在下列指令中,______指令的执行会影响条件码中的CF位。( )

A.JMP NEXT B.JC NEXT C.INC BX

D.SHL AX,1

19.串指令中的目的操作数地址是由______提供。( C )

A.SS:[BP] B.DS:[SI] C.ES:[DI]

D.CS:[IP]

20.将DX的内容除以2,正确的指令是( )

A.DIV 2 B.DIV DX,2 C.SAR DX,1

D.SHL DX,1

语言试题参考答案 篇5

(每小题4分,共12分)

1.假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后, DX中的值。

(1)SHR DX,1

(2)RCR DL,1

(3)RCL DX,CL ?????

2.写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

3.写一程序段,求双字长数DX∶bX的相反数。

NEG DX

NEG AX

SBB DX, 0

语言试题参考答案 篇6

一、单项选择题(20分,每题2分)

1.以下叙述中错误的是。C

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

2.以下叙述中,正确的是:C

A)continue和break语句只能用于循环体内

B)continue和break语句只能用于分支语句中

C)continue语句只能用于循环体内

D)continue语句只能用于分支语句中

3.执行下列程序段后,正确的结果是 C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

4.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

5.变量的指针,其含义是指该变量的 B

A)值 B)地址 C)名 D)一个标志

6.执行下列程序段后,正确的结果是A

int i=5;

while(i=1)

i--;

printf(“%d”,i)

A) 5 B) 0 C) 1 D) 无限循环

7.for(i=0;i

if(i〈=5) break;

则循环结束后i的值为

A)0 B)1 C)5 D)10

8.执行下列程序段后,正确的结果是C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

10.设有数组定义:char str[]=”China”;则下面的输出为B

printf(“%d”,strlen(str));

A)4 B)5 C)6 D)7

二、填空题(30分,每空2分)

1.C语言提供的三种逻辑运算符是__&&___、__||___和__!__。

2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 1 B 。

#include

main()

{

char a,b;

a=getchar();

scanf("%d",&b);

a=a-'A'+'0';

b=b*2;

printf("%c %c\n",a,b);

}

3.以下程序运行后的输出结果是 4 3 5 。

main()

{

int a=3,b=4,c=5,t=99;

if(b

if(a

printf("%d %d %d\n",a,b,c);

}

4.下面程序将字符数组a复制到字符数组b中。

main()

{

char a[]="I am a boy.",b[20];

int i;

for(i=___0____;a[i]!='id="article-content1">

我们每天都要进行不同文档的处理,范文是我们快速入手写作的重要工具。范文构思可以让自己更加娴熟地运用写作技巧,要怎么样做才能短时间内写出范文的水平?“语言试题参考答案”或许能够帮助您找到对这个问题更好的回答,如果本文能够为您带来一些灵感我会感到非常高兴!

语言试题参考答案 篇1

(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分)

1、 在C语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const

2、 不属于C语言基本数据类型的是( )

A). int B). union C). char D). unsigned

3、 下面是对宏定义的描述。不正确的是( )

A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间

C). 宏替换只是字符串的简单替代

D). 宏替换时先检查类型,类型一致时才可以替换

4、 C语言中,″\\xfds″在内存中占用的字节数是( )

A).3 B).4 C).5 D).6

5、 设int x;则执行printf(″%x\n″,~x^x);的结果是( )

A). ffffffff B). ff C). 0 D). 1

6、 对于while( )

A).用条件控制循环体的执行次数 B).循环体至少要执行一次

C).循环体有可能一次也不执行 D).循环体中可以包含若干条语句

7、 执行下列语句后输出的结果是( )

int a=8,b=7,c=6;

if(ac){a=c;c=b;}

printf("%d,%d,%d\n",a,b,c);

A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8

8、 设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )

A).9,19 B).9,20 C).10,19 D).10,20

9、 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )

A).x数组的长度等于y数组的长度 B).x数组的长度大于y数组的长度

C).x数组的长度少于y数组的长度 D).x数组与y数组的存储区域相同

10、 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )

for(i=0;i

printf(″%d″,x[i][2-i]);

A).147 B).159 C).357 D).369

11、 执行完下列语句后,n的值是( )

int n;

for (n=0 ; n

A).125 B).126 C).127 D).128

12、 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )

A).–132 B).–60 C). -24 D). 0

13、 为了连接两个字符串s1与s2,应当使用( )

A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )

14、 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )

A).位与运算 B).逻辑与运算 C).取指针内容 D).取变量地址

15、 下面输出的结果为( )

int a=13, b=64;

printf(“%d\n”, !a || (b>>3) ); A).13 B).64 C).1 D).0

16、 下列定义正确的是( )

A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;

17、 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;

则printf(″%d\n″,sizeof(aa));的输出是( ) A).32 B).36 C).12 D).8

18、 数据-54.78在文本文件中占用的字节个数是( )

A).4 B).5 C).6 D).8

19、 在宏定义#define p(r) 3.14*r中,请问宏名是( )

A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的.用于修改的非空二进制文件“hello.txt”,正确语句是( )

A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" ) 密 封 线 内 答 题 无 效

语言试题参考答案 篇2

(每小题6分,共36分)

1.现有如下程序段:

DATA SEGMENT DA3 EQU 1234H

ORG 0020H DA4 EQU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS

请回答:(1)该程序段已占有的存储字节数是多少?

2.执行下列程序段后,回答问题。

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

… MOV CH,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=__0012H____,(BX)=_1221H_____,(CX)=__0200H____。

3.阅读如下程序:

ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0

NUM EQU $ -ADRR LOOPZ DON

RETT DB? JNZ NEXT

… MOV BL,OFFH

MOV CX,NUM NEXT:MOV RETT,BL

MOV BX,-1 HLT

DON:INC BX

请问:(1)该程序完成的功能是什么?

(2)程序执行后指出RETT字节单元中的内容是什么?

4.现有一子程序:

SUB1 PROC

PLUS:TEST BL,80H

TEST AL,80H

JE EXITO

JE PLUS

XCHANGE:XCHG AL,BL

TEST BL,80H

EXITO:RET

JNE EXITO

SUB1 ENDP

JMP XCHANGE

试回答:(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=___

BL=______。

5.阅读程序段:

BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1]

RESULT DB? JNG NEXT

… MOV AL,[SI+1]

START:LEA SI,BLOCK NEXT:INC SI

MOV CX,[SI] LOOP LOP1

INC SI MOV RESULT,AL

MOV AL,[SI] HLT

请问:(1)该程序完成的功能是什么?

(2)该程序循环的次数是多少?

6.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H

BLOK DW X1,X2,…,XN

COUNT EQU($-BLOLOK)/2

RESULT DW COUNT,?

LEA BX,BLOK-2

MOV CX,RESULT

XOR AX,AX

GOON:ADD BX,2

CMP AX,[BX]

JAE NEXT

MOV AX,[BX]

NEXT:LOOP GOON

MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______

BX=______

程序循环次数=______

语言试题参考答案 篇3

1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

A.switch(x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

B.switch((int)x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

C.switch(a+b)

{

case 1: printf("* ");

case 2+1: printf("** ");

}

D.switch(a+b)

{

case 1: printf("* ")

case c: printf("** ");

}

标准答案:C

2. 若有宏定义如下:

#define X 5

#define Y X+1

#define Z Y*X/2

则执行以下printf语句后,输出的结果是( )

int a; a=Y;

printf("%d ",Z);

printf("%d",--a); (2分)

A.7,6 B.12,6 C.12,5 D.7,5

标准答案:D

3. 下面的.符号常量定义中,正确的是 ( ) (2分)

A.#define PI 3.14; B.#include PI 3.14;

C.#define PI=3.14 D.#define PI 3.14

标准答案:D

4. 以下程序的输出结果是( )

int a, b;

void fun()

{ a=100; b=200; }

main()

{ int a=5, b=7;

fun();

printf("%d%d ", a,b);

} (2分)

A.100200 B.57 C.200100 D.75

标准答案:D

5. 若有以下调用语句,则不正确的fun函数的首部是( )

main()

{ …

int a[50],n;

fun(n, &a[9]);

} (2分)

A.void fun(int m, int x[])

B.void fun(int s, int h[41])

C.void fun(int p, int *s)

D.void fun(int n, int a)

标准答案:D

6. 以下程序的输出结果是( )

fun(int x, int y, int z)

{ z=x*x+y*y; }

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

} (2分)

A.0 B.29 C.31 D.无定值

标准答案:C

7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

A.auto和static B.auto和register

C.register和static D.extern和register

标准答案:B

8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

标准答案:B

9. 以下函数值的类型是( )

fun ( float x )

{ float y;

y= 3*x-4;

return y;

} (2分)

A.int B.不确定 C.void D.float

标准答案:A

10. C语言规定函数的返回值的类型是由( ) (2分)

A.return语句中表达式类型决定

B.调用该函数时的主调函数类型决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

标准答案:D

11. 若有说明:int i,j=7, *p=&i; 则与i=j;等价的语句是( ) (2分)

A.i= *P; B.*p=*&j; C.i=&j; D.i=* *p;

标准答案:B

12. 以下程序执行后a的值是( )

main()

{ int a,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

printf("%d ",a);

} (2分)

A.4 B.1 C.0 D.a无定值

标准答案:D

13. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)

A.*p=&a;scanf("%ld",p);

B.p=(long *)malloc(8);scanf("%ld",p);

C.scanf("%ld",p=&a);

D.scanf("%ld",&a);

标准答案:A

14. 以下程序的输出结果是( )

#include

int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;

main()

{p=(int *)malloc(sizeof(int));

f(p,a);

printf("%d ",*p);

}

f(int *s,int p[][3])

{*s=p[1][1];} (2分)

A.1 B.4 C.7 D.5

标准答案:D

15. 设已有定义: char *st="how are you"; 下列程序段中不正确的是( ) (2分)

A.char a[12], *p; strcpy(p=a+1,&st[4]);

B.char a[12]; strcpy(++a, st);

C.char a[12]; strcpy(a, st);

D.char a[12], *p; strcpy(p=&a[1],st+2);

标准答案:B

18. 以下程序的输出结果是_____ B___。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf(""%s" ",ch[1]);

} (2分)

A."AAAA" B. "BBB" C."BBBCC" D."CC"

标准答案:B

19. 以下程序的输出结果是_______。

main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=0;i for(j=i;j printf("%d ",t);

} (2分)

A.3 B.4 C.1 D.9

标准答案:B

20. 在下列变量中,()不是局部变量 (2分)

A.register类 B.外部static类

C.auto类 D.函数形参

标准答案:B


语言试题参考答案 篇4

(每小题1分,共20分)

1.指令JMP FAR PTR DONE属于( D )

A.段内转移直接寻址 B.段内转移间接寻址

C.段间转移直接寻址 D.段间转移间接寻址

2.下列叙述正确的是( C )

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP

S指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM

P指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J

NL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J

NB指令

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这

个数据区最末一个字单元的物理地址是( )

A.12CSBH B.12B6BH C.12C59H D.12BFEH

4.在下列指令的表示中,不正确的是( C )

A.MOV AL,[BX+SI] B.JMP SHORT DONI

C.DEC [BX] D.MUL CL

5.在进行二重循环程序设计时,下列描述正确的是( A )

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

6.条件转移指令JNE的测试条件为( A )

A.ZF=0 B.CF=0 C.ZF=1 D.CF=1

7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( D )

A.BX或CX B.CX或SI C.DX或SI

D.SI或DI

8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在

( A )中。

A.数据段中偏移量为3236H的字节

B.附加段中偏移量为3234H的字节

C.数据段中偏移量为3234H的字节

D.附加段中偏移量为3236H的字节

9.执行如下程序:( )

MOV AX,0

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后(BX)=( C )

A.99 B.100 C.101 D.102

10.上题的程序执行后(AX)=( B )

A.5000 B.5050 C.5100 D.5150

11.对于下列程序段:( )

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN 也可用______指令完成同样的功能。

A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB

12.下面指令序列执行后完成的运算,正确的算术表达式应是( )

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL

A.y=x2+1 B.x=y2+1 C.x=y2-1 D.y=x2-1

13.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。

( B )

A.占内存空间小,但速度慢 B.占内存空间大,但速度快

C.占内存空间相同,速度快 D.占内存空间相同,速度慢

14.在程序执行过程中,IP寄存器中始终保存的是( )

A.上一条指令的首地址 B.下一条指令的首地址

C.正在执行指令的首地址 D.需计算有效地址后才能确定地址

15.PSW寄存器中共有______位条件状态位,有______位控制状态位。( )

A.6、3 B.3、6 C.8、4 D.4、8

16.下列指令执行时出错的是( A )

A.ADD BUF1,BUF2

B.JMP DWORD PTR DAT [BX]

C.MOV AX,[BX+DI] NUM

D.TEST AL,08H

17.已知(AX)=1234H,执行下述三条指令后,(AX)=( D ) MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.0000H

18.在下列指令中,______指令的执行会影响条件码中的CF位。( )

A.JMP NEXT B.JC NEXT C.INC BX

D.SHL AX,1

19.串指令中的目的操作数地址是由______提供。( C )

A.SS:[BP] B.DS:[SI] C.ES:[DI]

D.CS:[IP]

20.将DX的内容除以2,正确的指令是( )

A.DIV 2 B.DIV DX,2 C.SAR DX,1

D.SHL DX,1

语言试题参考答案 篇5

(每小题4分,共12分)

1.假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后, DX中的值。

(1)SHR DX,1

(2)RCR DL,1

(3)RCL DX,CL ?????

2.写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

3.写一程序段,求双字长数DX∶bX的相反数。

NEG DX

NEG AX

SBB DX, 0

语言试题参考答案 篇6

一、单项选择题(20分,每题2分)

1.以下叙述中错误的是。C

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

2.以下叙述中,正确的是:C

A)continue和break语句只能用于循环体内

B)continue和break语句只能用于分支语句中

C)continue语句只能用于循环体内

D)continue语句只能用于分支语句中

3.执行下列程序段后,正确的结果是 C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

4.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

5.变量的指针,其含义是指该变量的 B

A)值 B)地址 C)名 D)一个标志

6.执行下列程序段后,正确的结果是A

int i=5;

while(i=1)

i--;

printf(“%d”,i)

A) 5 B) 0 C) 1 D) 无限循环

7.for(i=0;i

if(i〈=5) break;

则循环结束后i的值为

A)0 B)1 C)5 D)10

8.执行下列程序段后,正确的结果是C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

10.设有数组定义:char str[]=”China”;则下面的输出为B

printf(“%d”,strlen(str));

A)4 B)5 C)6 D)7

二、填空题(30分,每空2分)

1.C语言提供的三种逻辑运算符是__&&___、__||___和__!__。

2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 1 B 。

#include

main()

{

char a,b;

a=getchar();

scanf("%d",&b);

a=a-'A'+'0';

b=b*2;

printf("%c %c\n",a,b);

}

3.以下程序运行后的输出结果是 4 3 5 。

main()

{

int a=3,b=4,c=5,t=99;

if(b

if(a

printf("%d %d %d\n",a,b,c);

}

4.下面程序将字符数组a复制到字符数组b中。

main()

{

char a[]="I am a boy.",b[20];

int i;

for(i=___0____;a[i]!='\0';i++)

{

____ b[i]=a[i]____;

}

_____ b[i]= '\0'____;

}

5.若有定义:double x[3][5];

则x数组行下标的上限是__0___,列下标的下限是__4___。

6.以下程序运行后的输出结果是 101 。

#define S(x) 4*(x)*(x)+1

main()

{

int i=2,j=3;

printf("%d\n",S(i+j));

}

7.若有定义:double x[3][5];

则x数组行下标的上限是_0____,列下标的下限是_4___。

8.已知宏定义#define s 2+3

printf(”%d”,s*4);的输出结果是__14_____。

9.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。

三、写出程序的运行结果(30分,每题10分)

1.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

2.写出程序运行结果

#include

main()

{

int i=10,j=0;

do

{

j=j+i;

i--;

}while(i>2);

printf("%d\n",j);

}

52

3.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

四、编程(完形填空)(20分,每题10分)

1.打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。

include

main()

{

int i,j,k,m;

for(i=100; i

{

j=i/100;

k= i/10 ;

m=i;

if( j*100+k*10+m==m*m*m+j*j*j+k*k*k )

printf("%d\n", i);

}

}

2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。

main()

{

int yy,mm,day;

scanf(“%d%d”,&yy,&mm);

switch(_mm__)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12: day=__31_;

break;

case4:

case6:

case9:

case11: day=__30___;

break;

case2: if(((yy%4==0)__&&___(yy0!=0))__||__(yy@0==0))

day=29;

else

day=28;

break;

}

}

';i++)

{

____ b[i]=a[i]____;

}

_____ b[i]= 'id="article-content1">

我们每天都要进行不同文档的处理,范文是我们快速入手写作的重要工具。范文构思可以让自己更加娴熟地运用写作技巧,要怎么样做才能短时间内写出范文的水平?“语言试题参考答案”或许能够帮助您找到对这个问题更好的回答,如果本文能够为您带来一些灵感我会感到非常高兴!

语言试题参考答案 篇1

(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共20分)

1、 在C语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const

2、 不属于C语言基本数据类型的是( )

A). int B). union C). char D). unsigned

3、 下面是对宏定义的描述。不正确的是( )

A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间

C). 宏替换只是字符串的简单替代

D). 宏替换时先检查类型,类型一致时才可以替换

4、 C语言中,″\\xfds″在内存中占用的字节数是( )

A).3 B).4 C).5 D).6

5、 设int x;则执行printf(″%x\n″,~x^x);的结果是( )

A). ffffffff B). ff C). 0 D). 1

6、 对于while( )

A).用条件控制循环体的执行次数 B).循环体至少要执行一次

C).循环体有可能一次也不执行 D).循环体中可以包含若干条语句

7、 执行下列语句后输出的结果是( )

int a=8,b=7,c=6;

if(ac){a=c;c=b;}

printf("%d,%d,%d\n",a,b,c);

A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,8

8、 设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )

A).9,19 B).9,20 C).10,19 D).10,20

9、 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )

A).x数组的长度等于y数组的长度 B).x数组的长度大于y数组的长度

C).x数组的长度少于y数组的长度 D).x数组与y数组的存储区域相同

10、 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )

for(i=0;i

printf(″%d″,x[i][2-i]);

A).147 B).159 C).357 D).369

11、 执行完下列语句后,n的值是( )

int n;

for (n=0 ; n

A).125 B).126 C).127 D).128

12、 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )

A).–132 B).–60 C). -24 D). 0

13、 为了连接两个字符串s1与s2,应当使用( )

A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )

14、 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )

A).位与运算 B).逻辑与运算 C).取指针内容 D).取变量地址

15、 下面输出的结果为( )

int a=13, b=64;

printf(“%d\n”, !a || (b>>3) ); A).13 B).64 C).1 D).0

16、 下列定义正确的是( )

A).enum t={a,b}x; B). enum t{1,2}x; C). enum {′+′,′-′}x; D). enum t{a,b}x;

17、 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;

则printf(″%d\n″,sizeof(aa));的输出是( ) A).32 B).36 C).12 D).8

18、 数据-54.78在文本文件中占用的字节个数是( )

A).4 B).5 C).6 D).8

19、 在宏定义#define p(r) 3.14*r中,请问宏名是( )

A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的.用于修改的非空二进制文件“hello.txt”,正确语句是( )

A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" ) 密 封 线 内 答 题 无 效

语言试题参考答案 篇2

(每小题6分,共36分)

1.现有如下程序段:

DATA SEGMENT DA3 EQU 1234H

ORG 0020H DA4 EQU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS

请回答:(1)该程序段已占有的存储字节数是多少?

2.执行下列程序段后,回答问题。

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

… MOV CH,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=__0012H____,(BX)=_1221H_____,(CX)=__0200H____。

3.阅读如下程序:

ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0

NUM EQU $ -ADRR LOOPZ DON

RETT DB? JNZ NEXT

… MOV BL,OFFH

MOV CX,NUM NEXT:MOV RETT,BL

MOV BX,-1 HLT

DON:INC BX

请问:(1)该程序完成的功能是什么?

(2)程序执行后指出RETT字节单元中的内容是什么?

4.现有一子程序:

SUB1 PROC

PLUS:TEST BL,80H

TEST AL,80H

JE EXITO

JE PLUS

XCHANGE:XCHG AL,BL

TEST BL,80H

EXITO:RET

JNE EXITO

SUB1 ENDP

JMP XCHANGE

试回答:(1)子程序的功能是什么?

(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=___

BL=______。

5.阅读程序段:

BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1]

RESULT DB? JNG NEXT

… MOV AL,[SI+1]

START:LEA SI,BLOCK NEXT:INC SI

MOV CX,[SI] LOOP LOP1

INC SI MOV RESULT,AL

MOV AL,[SI] HLT

请问:(1)该程序完成的功能是什么?

(2)该程序循环的次数是多少?

6.阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H

BLOK DW X1,X2,…,XN

COUNT EQU($-BLOLOK)/2

RESULT DW COUNT,?

LEA BX,BLOK-2

MOV CX,RESULT

XOR AX,AX

GOON:ADD BX,2

CMP AX,[BX]

JAE NEXT

MOV AX,[BX]

NEXT:LOOP GOON

MOV RESULT+2,AX

程序段执行完,回答下述问题

RESULT+2字存储单元的内容=______

BX=______

程序循环次数=______

语言试题参考答案 篇3

1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

A.switch(x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

B.switch((int)x)

{

case 1.0: printf("* ");

case 2.0 printf("** ");

}

C.switch(a+b)

{

case 1: printf("* ");

case 2+1: printf("** ");

}

D.switch(a+b)

{

case 1: printf("* ")

case c: printf("** ");

}

标准答案:C

2. 若有宏定义如下:

#define X 5

#define Y X+1

#define Z Y*X/2

则执行以下printf语句后,输出的结果是( )

int a; a=Y;

printf("%d ",Z);

printf("%d",--a); (2分)

A.7,6 B.12,6 C.12,5 D.7,5

标准答案:D

3. 下面的.符号常量定义中,正确的是 ( ) (2分)

A.#define PI 3.14; B.#include PI 3.14;

C.#define PI=3.14 D.#define PI 3.14

标准答案:D

4. 以下程序的输出结果是( )

int a, b;

void fun()

{ a=100; b=200; }

main()

{ int a=5, b=7;

fun();

printf("%d%d ", a,b);

} (2分)

A.100200 B.57 C.200100 D.75

标准答案:D

5. 若有以下调用语句,则不正确的fun函数的首部是( )

main()

{ …

int a[50],n;

fun(n, &a[9]);

} (2分)

A.void fun(int m, int x[])

B.void fun(int s, int h[41])

C.void fun(int p, int *s)

D.void fun(int n, int a)

标准答案:D

6. 以下程序的输出结果是( )

fun(int x, int y, int z)

{ z=x*x+y*y; }

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

} (2分)

A.0 B.29 C.31 D.无定值

标准答案:C

7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

A.auto和static B.auto和register

C.register和static D.extern和register

标准答案:B

8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

A.地址传递

B.单向值传递

C.由实参传给形参,再由形参传回实参

D.传递方式由用户指定

标准答案:B

9. 以下函数值的类型是( )

fun ( float x )

{ float y;

y= 3*x-4;

return y;

} (2分)

A.int B.不确定 C.void D.float

标准答案:A

10. C语言规定函数的返回值的类型是由( ) (2分)

A.return语句中表达式类型决定

B.调用该函数时的主调函数类型决定

C.调用该函数时系统临时决定

D.在定义该函数时所指定的函数类型决定

标准答案:D

11. 若有说明:int i,j=7, *p=&i; 则与i=j;等价的语句是( ) (2分)

A.i= *P; B.*p=*&j; C.i=&j; D.i=* *p;

标准答案:B

12. 以下程序执行后a的值是( )

main()

{ int a,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

printf("%d ",a);

} (2分)

A.4 B.1 C.0 D.a无定值

标准答案:D

13. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)

A.*p=&a;scanf("%ld",p);

B.p=(long *)malloc(8);scanf("%ld",p);

C.scanf("%ld",p=&a);

D.scanf("%ld",&a);

标准答案:A

14. 以下程序的输出结果是( )

#include

int a[3][3]={1,2,3,4,5,6,7,8,9,},*p;

main()

{p=(int *)malloc(sizeof(int));

f(p,a);

printf("%d ",*p);

}

f(int *s,int p[][3])

{*s=p[1][1];} (2分)

A.1 B.4 C.7 D.5

标准答案:D

15. 设已有定义: char *st="how are you"; 下列程序段中不正确的是( ) (2分)

A.char a[12], *p; strcpy(p=a+1,&st[4]);

B.char a[12]; strcpy(++a, st);

C.char a[12]; strcpy(a, st);

D.char a[12], *p; strcpy(p=&a[1],st+2);

标准答案:B

18. 以下程序的输出结果是_____ B___。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf(""%s" ",ch[1]);

} (2分)

A."AAAA" B. "BBB" C."BBBCC" D."CC"

标准答案:B

19. 以下程序的输出结果是_______。

main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=0;i for(j=i;j printf("%d ",t);

} (2分)

A.3 B.4 C.1 D.9

标准答案:B

20. 在下列变量中,()不是局部变量 (2分)

A.register类 B.外部static类

C.auto类 D.函数形参

标准答案:B


语言试题参考答案 篇4

(每小题1分,共20分)

1.指令JMP FAR PTR DONE属于( D )

A.段内转移直接寻址 B.段内转移间接寻址

C.段间转移直接寻址 D.段间转移间接寻址

2.下列叙述正确的是( C )

A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP

S指令

B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM

P指令

C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J

NL指令

D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J

NB指令

3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这

个数据区最末一个字单元的物理地址是( )

A.12CSBH B.12B6BH C.12C59H D.12BFEH

4.在下列指令的表示中,不正确的是( C )

A.MOV AL,[BX+SI] B.JMP SHORT DONI

C.DEC [BX] D.MUL CL

5.在进行二重循环程序设计时,下列描述正确的是( A )

A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内

B.外循环初值应置外循环之内;内循环初值应置内循环之内

C.内、外循环初值都应置外循环之外

D.内、外循环初值都应置内循环之外,外循环之内

6.条件转移指令JNE的测试条件为( A )

A.ZF=0 B.CF=0 C.ZF=1 D.CF=1

7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为( D )

A.BX或CX B.CX或SI C.DX或SI

D.SI或DI

8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在

( A )中。

A.数据段中偏移量为3236H的字节

B.附加段中偏移量为3234H的字节

C.数据段中偏移量为3234H的字节

D.附加段中偏移量为3236H的字节

9.执行如下程序:( )

MOV AX,0

MOV AX,0

MOV BX,1

MOV CX,100

A:ADD AX,BX

INC BX

LOOP A

HLT

执行后(BX)=( C )

A.99 B.100 C.101 D.102

10.上题的程序执行后(AX)=( B )

A.5000 B.5050 C.5100 D.5150

11.对于下列程序段:( )

AGAIN:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGAIN 也可用______指令完成同样的功能。

A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB

12.下面指令序列执行后完成的运算,正确的算术表达式应是( )

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL

A.y=x2+1 B.x=y2+1 C.x=y2-1 D.y=x2-1

13.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。

( B )

A.占内存空间小,但速度慢 B.占内存空间大,但速度快

C.占内存空间相同,速度快 D.占内存空间相同,速度慢

14.在程序执行过程中,IP寄存器中始终保存的是( )

A.上一条指令的首地址 B.下一条指令的首地址

C.正在执行指令的首地址 D.需计算有效地址后才能确定地址

15.PSW寄存器中共有______位条件状态位,有______位控制状态位。( )

A.6、3 B.3、6 C.8、4 D.4、8

16.下列指令执行时出错的是( A )

A.ADD BUF1,BUF2

B.JMP DWORD PTR DAT [BX]

C.MOV AX,[BX+DI] NUM

D.TEST AL,08H

17.已知(AX)=1234H,执行下述三条指令后,(AX)=( D ) MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.0000H

18.在下列指令中,______指令的执行会影响条件码中的CF位。( )

A.JMP NEXT B.JC NEXT C.INC BX

D.SHL AX,1

19.串指令中的目的操作数地址是由______提供。( C )

A.SS:[BP] B.DS:[SI] C.ES:[DI]

D.CS:[IP]

20.将DX的内容除以2,正确的指令是( )

A.DIV 2 B.DIV DX,2 C.SAR DX,1

D.SHL DX,1

语言试题参考答案 篇5

(每小题4分,共12分)

1.假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后, DX中的值。

(1)SHR DX,1

(2)RCR DL,1

(3)RCL DX,CL ?????

2.写出完成下述功能的程序段:

(1)传送25H到AL寄存器

(2)将AL的内容乘以2

(3)传送15H到BL寄存器

(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

3.写一程序段,求双字长数DX∶bX的相反数。

NEG DX

NEG AX

SBB DX, 0

语言试题参考答案 篇6

一、单项选择题(20分,每题2分)

1.以下叙述中错误的是。C

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

2.以下叙述中,正确的是:C

A)continue和break语句只能用于循环体内

B)continue和break语句只能用于分支语句中

C)continue语句只能用于循环体内

D)continue语句只能用于分支语句中

3.执行下列程序段后,正确的结果是 C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

4.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

5.变量的指针,其含义是指该变量的 B

A)值 B)地址 C)名 D)一个标志

6.执行下列程序段后,正确的结果是A

int i=5;

while(i=1)

i--;

printf(“%d”,i)

A) 5 B) 0 C) 1 D) 无限循环

7.for(i=0;i

if(i〈=5) break;

则循环结束后i的值为

A)0 B)1 C)5 D)10

8.执行下列程序段后,正确的结果是C

char x[8] = {8,7,6,5,0,0}, *s;

s = x+1;

printf(“%d\n”, s[2]);

A) n B) 0 C) 5 D) 6

9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A

A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式

10.设有数组定义:char str[]=”China”;则下面的输出为B

printf(“%d”,strlen(str));

A)4 B)5 C)6 D)7

二、填空题(30分,每空2分)

1.C语言提供的三种逻辑运算符是__&&___、__||___和__!__。

2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 1 B 。

#include

main()

{

char a,b;

a=getchar();

scanf("%d",&b);

a=a-'A'+'0';

b=b*2;

printf("%c %c\n",a,b);

}

3.以下程序运行后的输出结果是 4 3 5 。

main()

{

int a=3,b=4,c=5,t=99;

if(b

if(a

printf("%d %d %d\n",a,b,c);

}

4.下面程序将字符数组a复制到字符数组b中。

main()

{

char a[]="I am a boy.",b[20];

int i;

for(i=___0____;a[i]!='\0';i++)

{

____ b[i]=a[i]____;

}

_____ b[i]= '\0'____;

}

5.若有定义:double x[3][5];

则x数组行下标的上限是__0___,列下标的下限是__4___。

6.以下程序运行后的输出结果是 101 。

#define S(x) 4*(x)*(x)+1

main()

{

int i=2,j=3;

printf("%d\n",S(i+j));

}

7.若有定义:double x[3][5];

则x数组行下标的上限是_0____,列下标的下限是_4___。

8.已知宏定义#define s 2+3

printf(”%d”,s*4);的输出结果是__14_____。

9.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。

三、写出程序的运行结果(30分,每题10分)

1.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

2.写出程序运行结果

#include

main()

{

int i=10,j=0;

do

{

j=j+i;

i--;

}while(i>2);

printf("%d\n",j);

}

52

3.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

四、编程(完形填空)(20分,每题10分)

1.打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。

include

main()

{

int i,j,k,m;

for(i=100; i

{

j=i/100;

k= i/10 ;

m=i;

if( j*100+k*10+m==m*m*m+j*j*j+k*k*k )

printf("%d\n", i);

}

}

2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。

main()

{

int yy,mm,day;

scanf(“%d%d”,&yy,&mm);

switch(_mm__)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12: day=__31_;

break;

case4:

case6:

case9:

case11: day=__30___;

break;

case2: if(((yy%4==0)__&&___(yy0!=0))__||__(yy@0==0))

day=29;

else

day=28;

break;

}

}

'____;

}

5.若有定义:double x[3][5];

则x数组行下标的上限是__0___,列下标的下限是__4___。

6.以下程序运行后的输出结果是 101 。

#define S(x) 4*(x)*(x)+1

main()

{

int i=2,j=3;

printf("%d\n",S(i+j));

}

7.若有定义:double x[3][5];

则x数组行下标的上限是_0____,列下标的下限是_4___。

8.已知宏定义#define s 2+3

printf(”%d”,s*4);的输出结果是__14_____。

9.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。

三、写出程序的运行结果(30分,每题10分)

1.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

2.写出程序运行结果

#include

main()

{

int i=10,j=0;

do

{

j=j+i;

i--;

}while(i>2);

printf("%d\n",j);

}

52

3.写出程序运行后的输出结果。

int f(int b[][4])

{

int i,j,s=0;

for(j=0;j

{

i=j;

if(i>2)

i=3-j;

s+=b[i][j];

}

return s;

}

main( )

{

int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

printf("%d\n",f(a));

}

16

四、编程(完形填空)(20分,每题10分)

1.打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。

include

main()

{

int i,j,k,m;

for(i=100; i

{

j=i/100;

k= i/10 ;

m=i;

if( j*100+k*10+m==m*m*m+j*j*j+k*k*k )

printf("%d\n", i);

}

}

2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。

main()

{

int yy,mm,day;

scanf(“%d%d”,&yy,&mm);

switch(_mm__)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12: day=__31_;

break;

case4:

case6:

case9:

case11: day=__30___;

break;

case2: if(((yy%4==0)__&&___(yy0!=0))__||__(yy@0==0))

day=29;

else

day=28;

break;

}

}

精选阅读

本文来源://www.myq3.com/m/484.html

上一篇:学校中层干部上岗竞聘演讲稿6篇
下一篇:出纳简历个人精选(4篇)
相关推荐

最新内容 更多

热门排行 更多