语言程序设计复习题库

语言程序设计复习题库
语言程序设计复习题库

一、填空

1.break语句通常用于 switch 。

2.C语言源程序经过连接后,生成文件的后缀名是 .exe 。

C语言中,关系表达式和逻辑表达式的值是 1函数 B. 标识符 C. 表达式 D. 语句

2、在每个C程序中都必须包含有这样一个函数,该函数的函数名为 A

A. main

B. MAIN

C. name

D. function

3、C语言规定,在一个源程序中,main函数的位置 C

A. 必须在最开始

B. 必须在系统调用的库函数的后面

C. 可以任意

D. 必须在最后

4、在以下关于C语言的注释的叙述中,不正确的是 C

A.注释可用"/*"、"*/"形式表示,也可用"索引文件和文本文件两种 B. 目标文件

和可执行文件

C. 二进制文件一种

D. ASCII码文件和二进制文件两种

9、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符 C

A) 必须为字母 B) 必须为下划线

C) 必须为字母或下划线 D) 可以是字母,数字或下划线中的任意一种

10、C语言中非空的基本数据类型包括 B

A) 整型,实型,逻辑型 B) 整型,实型,字符型

C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型

11、下列哪一个表达式的值是整数类型 A

A. 15/2

B. 15/2+

C. 25/

D. *10

12、设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型 C

A. int

B. float

C. double

D. 不确定

13、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y值的数据类型 D

A) float B) char C) int D) double

14、在C语言中,char型数据在内存中的存储形式是 D

A. 补码

B. 反码

C. 源码

D. ASCII码

15、下列字符列中,可以作为“字符串常量”的是 B

A. ABC B.″xyz″ C.′uvw′ D.′a′

16、以下运算符中,优先级最高的运算符是 D

A. =

B. !=

C. *(乘号)

D. ()

17、设有定义int k=0;则以下四个表达式中与其它三个的值不同的是C D

A、k++

B、k+=1

C、++k

D、k+1

18、设有语句scanf(“%d,%d”,&m,&n);要使m、n的值依次为2,3,正确的输入是 B

A. 2?3↙

B. 2,3↙

C. 2;3

D. 2↙3↙

19、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2 = 'A' + '6' - '3';

后c2中的值为 A

A) D B) 68 C) 不确定的值D) C

20、设a=6,b=4,则表达式b*=a+3的值为 D

A)3 B)18 C)27 D)36

21、若有定义:int a=8,b=5,c;执行语句c=a / b+ ; 后c的值为 B

(A)(B)1 (C)(D)2

22、若已定义x和y是整型变量,x=2;,则表达式y=+x/2的值是 C

A) B) 5 C) 3 D)

23、设有以下语句:int x=10;x+=3+x%(3),则x的值是 A

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

24、在C语言中逻辑值“真”是用 B 表示的。

A. 预定义为真值的宏

B. 非零值

C. 正数

D. 非零整数

25. C语言对于嵌套if语句规定else总是与 C 匹配。

A)与最外层的if B.)与之前最近的if

C)与之前最近的不带else的if D)与最近的{ }之前的if

26、为了避免嵌套的if-else语句的二义性,C语言规定else总是与 C 组成配对关系.

A) 缩排位置相同的if B) 在其之前未配对的if

C) 在其之前尚未配对的最近的if D) 同一行上的if

27、设x和y均为逻辑型变量,则x && y为真的条件是 A

A. 它们均为真

B. 其中一个为真

C. 它们均为假

D. 其中一个为假

28、能正确表示逻辑关系:"a≥ 10或a≤ 0" 的C 语言表达式是 D

A. a>=10 or a<=0 >=0|a<=10

C. a>=10&&a<=0

D. a>=10||a<=0

29、判断char型变量c 1是否为小写字母的正确表达式为 D

A. ’a’<=c1<=’z’

B. (c1>=a)&&(c1<=z)

C. (‘a’>=c1) (‘z’<=c1)

D. (c1>=’a’)&&(c1<=’z’)

30、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')ch+32:ch的值是 B

A) Z B) a C) z D) A

31、表示关系X < =Y < =Z的C语言表达式为 A

A. (X < =Y)&&(Y < =Z)

B. (X < =Y)AND(Y < =Z)

C. (X < =Y < =Z)

D. (X < =Y)&(Y < =Z)

32、如果a=4,b=3,c=2,d=1, 则条件表达式a<ba:c<dc:d的值是 A

A) 1 B) 2 C) 3 D) 4

33、语句printf("%d \n",12&&12);的输出结果是 B

A. 12

B. 1

C. 24

D. 0

34、若有条件表达式 (exp)a++:b--,则以下表达式中能完全等价于表达式(exp)的是 B

A. (exp==0)

B. (exp!=0)

C. (exp==1)

D. (exp!=1)

35、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式 D

A) a<>0 B) !a C) a=0 D) a

36、设x 、y 、z 、t均为int型变量,则执行以下语句后,t的值为 C

x=y=z=1;

t=++x || ++y && ++z;

A) 不定值 B) 4 C) 1 D) 0

37、对表达式for( 表达式1; ;表达式3) 可理解为 B

A.)for(表达式1;0; 表达式3) B)for(表达式1;1; 表达式3)

C)for(表达式1; 表达式1; 表达式3) D)for(表达式1; 表达式3; 表达式3)

38、语句while(!e);中的条件 !e 等价于 A

A) e==0 B) e!=1 C) e!=0 D) ~e

39、下面程序段的运行结果是 D

for(i=1;i<=5;)

printf("%d",i);

i++;

A) 12345 B) 1234 C) 15 D) 无限循环

40、设执行变量y值为3,执行下列循环语句后,变量y的值是 C

do y++; while(y++<4);

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

41、执行语句:for(i=1;i<9; i++)后; 变量i的值是 B

(A)10 (B)9 (C)不定(D)11

42、执行语句:for(i=1;i<=9; i++);后变量i的值是 A

A. 10

B. 9

C. 不定

D. 11

43、在定义一个一维数组时,不能用来表示数组长度的是 D

A) 常量 B)符号常量C)常量表达式D)已被赋值的变量

44、判断字符串是否相等,应当使用 D

(A)if(a==b) (B)if(a=b) (C)if(strcpy(a,b)) (D)if(!strcmp(a,b))

45、执行程序段char str[20]={'a','b','c','\0'}; int len=strlen(str); 变量len的值 C

A. 20

B. 4

C. 3

D. 3或4或20

46、若有说明:char c[10]={'E','a','s','t','\0'};,则下述说法中正确的是 D

A) c[7]不可引用 B) c[6]可引用,但值不确定

C) c[4]不可引用 D) c[4]可引用,其值为空字符

47、运行下面程序段的输出结果是 A

char s1[10]={'S','e','t','\0','u','p','\0'};

printf("%s",s1);

A) Set B) Setup C) Set up D) 'S''e''t'

48、以下程序段的输出结果是 B

char s[ ]="an apple";

printf("%d\n",strlen(s));

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

49、下列一维数组初始化语句中,正确且与语句float a[ ]={0,3,8,0,9};等价的是 D

A) float a[6]={0,3,8,0,9}; B) float a[4]={0,3,8,0,9};

C) float a[7]={0,3,8,0,9}; D) float a[5]={0,3,8,0,9};

50、如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,则数组a的大小是 A

A) 10 B) 11 C) 8 D) 不定

51、若二维数组a有m列,则在a[i][j]前面的元素个数为 B

A. j*m+i

B. i*m+j

C. i*m+j-1

D. i*m+j+1

52、在定义int a[5][6];后,数组a中的第10个元素是 C

A) a[2][5] B) a[2][4] C) a[1][3] D) a[1][5]

53、以下二维数组 a 的正确说明是 C

A) int a[1,1]; B) float a(3,4); C) double a[1][4]; D) float a(3)(4);

54、在定义int a[5][4]; 之后,对a的引用正确的是 C

A) a[2][4] B) a[1,3] C) a[4][3] D) a[5][0]

55、若有说明:int a[3][4]; 则对a数组元素的正确引用是 C

(A)a[2][4] (B)a[1, 3] (C)a[1+1][0] (D)a(2)(1)

56、以下对二维数组a 的正确说明是 C

A. int a[3][]

B. float a(3,4)

C. double a[1][4]

D. float a(3)(4)

57、若有定义:int b[3];则数组元素的不合法引用是 D

(A) b[1] (B) b[0] (C)b[2] (D) b[3]

58、对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是 B

A)将5个初值依次赋给a[1] 至a[5] B)将5个初值依次赋给a[0] 至a[4]

C)将5个初值依次赋给a[6] 至a[10] D)因为数组长度与初值的个数不相同, 所以此语句

不正确

59、设已定义:int x[2][4]={1,2,3,4,5,6,7,8};则元素x[1][1]的正确初值是 A

A. 6

B. 5

C. 7

D. 1

60、在int a[ ][3]={{1},{3,2},{4,5,6},{0}}中a[1][1]的值是 D

A、0

B、6

C、5

D、 2

61、设已定义:int x[2][4]={1,2,3,4,5,6,7,8};则元素6对应的是 A

A. x[1][1]

B. x[1][2]

C. x[2][1]

D. x[2][2]

62、以下正确的函数定义形式是 A

A. double fun(int x, int y)

B. double fun(int x ;int y)

C. double fun(int x, int y);

D. d ouble fun(int x,y);

63、有如下函数调用语句 func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,含有的实参个数是 B

A) 3 B) 4 C) 5 D) 有语法错误

64、在C语言中,全局变量的存储类别是 A

A) static B) extern C) void D) register

65、在C语言中,以下说法中正确的是 A

A. 实参与其对应的形参各占用独立的存储单元

B. 实参与其对应的形参占用同一个存储单元

C. 只有当实参与形参同名时才占用同一个存储单元

D. 实参占用存储单元,但形参是虚拟的,不占用存储单元

66、C语言中,简单变量做实参时,它和对应的形参之间的数据传递方式是 B

(A)地址传递(B)单向值传递

(C)由实参传给形参,再由形参传递给实参

(D)同用户指定传递方式

67、在一个源文件中定义的全局变量的作用域为 B

A. 本文件的全部范围

B. 从定义该变量开始至本文件结束

C. 本函数的全部范围

D. 本程序的全部范围

68、如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变

量,则该变量 C

A) 为全局变量,在本程序文件范围内有效

B) 为局部变量,只在该函数内有效

C) 为局部变量,只在该复合语句中有效

D) 定义无效,为非法变量

69、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是 D

A) 实参将其地址传递给形参,并释放原先占用的存储单元

B) 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参

C) 实参将其值传递给形参,调用结束时形参再将其值回传给实参

D) 实参将其值传递给形参,调用结束时形参并不将其值回传给实参

70、以下叙述中,不正确的是 B

A) 在同一C程序文件中,不同函数中可以使用同名变量

B) 在main函数体内定义的变量是全局变量

C) 形参是局部变量,函数调用完成即失去意义

D) 若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用

71、对于C语言的函数,下列叙述中正确的是 A

A) 函数的定义不能嵌套,但函数调用可以嵌套

B) 函数的定义可以嵌套,但函数调用不能嵌套

C) 函数的定义和调用都不能嵌套

D) 函数的定义和调用都可以嵌套

72、数组定义为:int a[4][5]; 引用“a[1]+3”表示的是 A

(A)a数组第2行第4列元素的地址

(B)a数组第2行第4列元素的值

(C)a数组第4行的首地址

(D)a数组第1行第3个元素的地址

73、若定义:int a=511,*b=&a; 则printf("%d\n",*b);的输出结果为 D

A. 确定值 B) a的地址 C) 512 D) 511

74、若有int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;则值为9的表达式是 B

A. *p+9

B. *(p+8)

C. *p+=9

D. p+8

75、若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c 的语句是 A。

A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);

C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);

76、设有语句”int a[]={1,3,5,7,9},*p=&a[0];”则值为7的表达式是 C

A. *p+3

B. *p+4

C. *(p+3)

D. *(p+4)

77、已知赋值语句=2004;则wang的变量类型是 C

A. 字符或文件

B. 整型或实型

C. 共用或结构

D. 实型或指针

78、设有以下说明语句:

struct stu

{ int a; float b; } stutype;

则下面的叙述不正确的是 C

A.struct是结构体类型的关键字

B.struct stu是用户定义的结构体类型名

C.stutype是用户定义的结构体类型名

D. a 和 b都是结构体成员名

79、下列关于结构的语法错误的是 D

A.结构是由用户自定义的一种数据类型

B.结构中可设定若干个不同数据类型的成员

C.结构中成员的数据类型可以是另一个已定义的结构

D.在定义结构时,可以为成员设置默认值

80、说明一个结构体变量时,系统分配给它的内存是 A

A.各成员所需内存量的总和

B.结构中第一个成员所需内存量

C.成员中占内存量最大者所需的容量

D.结构中最后一个成员所需内存量三、程序理解

1.以下程序运行结果是

#include <>

int main()

{int a,b,c,d;

a=b=5;

c=(a++)+(a--)-(a++);

d=(b++)-(++b)+(--a);

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

printf("c=%d,d=%d\n",c,d);

return 0;

}

2.以下程序运行结果是

#include <>

int main()

{int x=1,a=0,b=0;

switch(x)

{

case 0: b++;

case 1: b=++a;

case 2: a++;b++;break;

case 3: ++a;++b;

}

printf("a=%d,b=%d\n",a,b); return 0;

}

3.以下程序运行结果是

#include <>

int main()

{int a,b,c=246;

a=c/100%9;

b=(1)&&(-1)||0;

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

}

4.以下程序运行结果是

#include <>

int main()

{int a=-1, b=4, k;

k=(++a<=0)&&(b--<=0); printf("%d,%d,%d\n",k,a,b);

}

5.以下程序运行结果是

#include <>

int main()

{int a=5,b=60,c;

if (a

{c=a*b;printf("%d*%d=%d\n",b,a,c);} else

{c=b/a;printf("%d/%d=%d\n",b,a,c);} return 0;

}

6.以下程序运行结果是

#include <>

int main()

{int a=60,b=5,c;

if (a

{c=a*b;printf("%d*%d=%d\n",b,a,c);} else

{c=b/a;printf("%d/%d=%d\n",b,a,c);} return 0;

}

7.以下程序运行结果是

#include <>

{int a=1,b=10;

do

{ b-=a;a++;

} while(b--<0);

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

}

8.以下程序运行结果是#include <>

int main()

{int x;

for(x=10;x>3;x--)

{ if(x%3) x--;

--x; --x;

printf("%d ",x); }

return 0;

}

9.以下程序运行结果是#include <>

int main()

{int i;

for(i=1;i<6;i++)

{ if (i%2!=0) {printf("A");continue;} printf("B"); }

printf("\n");

return 0;

}

10.以下程序运行结果是

#include <>

int main()

{int i;

for(i=1;i<6;i++)

{ if (i%2==0) {printf("A");break;} printf("B"); }

printf("\n");

return 0;

}

11.以下程序运行结果是

#include <>

int main()

{int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

printf("%d ",x[i][i]);

printf("\n");

return 0;

}

12.以下程序运行结果是

#include <>

int main()

{int i,n[]={0,0,0,0,0};

for(i=1;i<=4;i++)

{

n[i]=n[i-1]*2+1;

printf("%d ",n[i]);

}

return 0;

}

13.以下程序运行结果是

#include <>

int main()

{int a[ ]={5,4,3,2,1},i,j;

long s=0;

for(i=0;i<5;i++) s=s*10+a[i]; printf("s=%ld\n",s);

return 0;

}

14.以下程序运行结果是

#include <>

int main()

{char s[]="abcdef";

s[3]='\0';

printf("%s\n",s);

return 0;

}

15.以下程序运行结果是

#include <>

#include <>

int main()

{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j

s+=a[i][j];

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

return 0;

}

16.以下程序运行结果是

#include <>

#include <>

int main()

{char p1[10]="abc", p2[10]="ABC", str[50]="xyz"; strcpy(str+2,strcat(p1,p2));

printf("%s\n",str);

return 0;

}

17.以下程序运行结果是__

#include <>

int fun(int x,int y,int z) { z=x*x+y*y;}

int main()

{ int a=31;

fun(5,2,a);

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

return 0; }

18.以下程序运行结果是______ #include <>

int fun(int x,int y,int z) { z=x*x+y*y;return z;}

int main()

{ int a=31;

a=fun(5,2,a);

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

return 0; }

19.以下程序运行结果是______

#include <>

f(int b[ ], int n)

{ int i, r=0;

for(i=0; i<=n; i++) r=r+b[i];

return r;

}

int main()

{

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

x=f(a, 3);

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

return;

}

20.以下程序运行结果是__

#include <>

f(int b[ ], int n)

{ int i, r=1;

for(i=0; i<=n; i++) r=r*b[i];

return r;

}

int main()

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

x=f(a, 3);

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

return;

}

21.以下程序运行结果是____

int func(int a,int b)

{ return(a+b); }

int main()

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

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

return 0;

}

22.以下程序运行结果是___

#include<>

int f(char s[ ])

{ int i,j;

i=0;j=0;

while( s[j]!= '\0') j++;

return (j-i); }

int main()

{printf("%d\n",f("ABCDEF")); return 0;

}

23.以下程序运行结果是____

#include <>

int f(int a)

{ int b=0,c;

c=3;

b++ ; c++;

return (a+b+c); }

int main()

{ int i;

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

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

return 0;

}

24.以下程序运行结果是___

#include <>

int f(int a)

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

全国高等教育自学考试高级语言程序设计

全国高等教育自学考试高级语言程序设计 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

2001年10月全国高等教育自学考试高级语言程序设计(一) 试卷 第一部分选择题 一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1. C语言程序编译时,程序中的注释部分【】 A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 2. 下列表达式的值为0的是【】 A. 3﹪5 B. 3/ C. 3/5 D. 3<5 3. 正确的C语言用户自定义标识符是【】 A. print B. float C. when?

D. random﹪2 4. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是【】 A. 0和2 B. 0和3 C. 1和2 D. 1和3 5. 下列叙述中,正确的是【】 A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致 B. 宏名必须用大写字母表示 C. 宏替换不占用运行时间,只占编译时间 D. 在程序的一行上可以出现多个有效的宏定义 6. 下列保留字中用于构成循环结构的是【】 A. if B. while C. switch D. default 7. 与语句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;

汇编语言程序设计练习题及答案

一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。) 1.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是(D) A.DB 41,42,43,44,45,46 B.DW 4142H,4344H,4546H C.DW ‘AB’,‘CD’,‘EF’D.DW ‘BA’,‘DC’,‘FE’ 2.DA2 DB‘AB’,‘CD’ ┇ MOV AX,WORD PTR DA2+1 上述语句执行后AX中的值是(D) A.‘AD’B.‘BC’ C.‘DA’D.‘CB’ 3.下列数据定义语句中可实现留空20H个字节存储单元的是(D) A.DB 20 DUP(?) B.DW 20H DUP(?) C.DB 10H DUP(4 DUP(?)) D.DD 08H DUP(?) 4.如某存储器分段时,表示偏移地址是17位二进制代码,那么一个段最多的存储单元数是(D) A.32K字节B.32K字 C.64K字节D.64K字 5.下列寄存器中用来指示堆栈中任意数据区的偏移地址的是(B)A.BX B.BP C.SI D.DI 6.下列指令中有语法错误的是(C) A.PUSH AX B.PUSH [20H+SI+BX] C.POP CS D.PUSH CS 7.执行PUSH BP指令时,目的操作数的物理地址表达式是(D) A.16*SS+BP B.16*DS+BP C.16*CS+IP D.16*SS+SP 8.把BL中的数据输出到端口8CH中正确指令是(C) A.OUT 8CH,BL B.IN 8CH,BL C.MOV AL,BL D.MOV AL,BL OUT 8CH,AL IN 8CH,AL 9.结果为零的条件转移指令,其测试条件是(A) A.ZF=1 B.ZF=0 C.SF=l D.SF=0 10.下面程序段完成测试DA-BYTE字节单元中数是否为负数,若是则将全l送DH中,否则全0送DH中,那么程序段中方框里应填的语句是 MOV CH,0 MOV CH,0FFH ZERO:MOV DH,CH(C) A.JNZ ZERO B.JS ZERO

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

自考高级语言程序设计复习题

2013年海南省衔接课程考试 高级语言程序设计复习题 一、单项选择题(在每小题列出的四个选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。错选或未选均无分。) 1、在以下给出的表达式中,与while E中的E不等价的表达式是()。 A)(!E=0) B)(E>0||E<0) C)(E==0) D)(E!=0) 2、若x和y是代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是()。 A)abs(x-y)<10 B)x-y>-10&&x-y<10 C) @(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100 3、以下能够正确判断char型变量c是否为大写字母的表达式是()。 A) (‘A’<=c)AND (‘Z’>=c) B)(‘A’<=c)& (‘Z’>=c) C)(‘A’<=c) && (‘Z’>=c) D)以上答案都不对 4、下列叙述正确的是()。 A) break语句只能用于switch语句 B)在switch语句中必须使用default C) break语句必须与switch语句中的case配对 D)在switch语句中,不一定使用break语句 5、以下选项中,不能看作一条语句的是()。 A){ ;} B)a=0,b=0,c=0; C) if(a>0); D)if(b==0) m=1;n=2; 6、以下程序段中与语句k=a>b?(b>c?1:0):0)功能等价的是()。 A) if(a>b&&(b>c)) k=1; B) if(((a>b)||(b>c)) k=1; else k=0; else k=0; C)if(a<=b) k=0; D)if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 7、若有以下程序: main() { int y=10; while(y--); printf(“y=%d\n”,y); }

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

汇编语言程序设计期末考试题

汇编语言程序设计期末考试题 学院(系):学号: 姓名: 计分: 一、项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号 内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是( ) A.物理地址 B.偏移地址C.逻辑地址D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是( ) A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR[BX]指令中的操作数的数据类型是( ) A.字 B.双字C.字节D.四字 4.在下列语句中,BUFFER称为( ) BUFFER DB 01H,0AH A.符号 B.变量 C.助记符D.标号 5.串操作指令中,源串操作数的段地址一定在( )寄存器中。 A. CS B. SS C. DS D. ES 6.使计算机执行某种操作的命令是( ) A.伪指令B.指令 C.标号D.助记符 7.将数据5618H存放在存储单元中的伪指令是( ) A. DATA1 DW 1856H B. DATA1 DB 18H,56H C. DATA1EQU 5618H D. DATA1 DB 18H,00H,56H,00H 8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( ) A.1400H B. 77F8H C. 0000H D. 0FFFFH 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍 采用的是( )码。 A. BCD码 B.二进制码 C.ASCII码D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语 言称为( ) A.汇编语言 B.高级语言 C.机器语言 D.低级语言 二、填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是______。 2.通常所说的计算机系统包括________和________两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是________、_____ ___、________、________。 4.现有AX=2000H,BX=1200H, DS=3000H, DI=0002H, (31200H)=50H,(31201H)=02H, (31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标 志位ZF、CF的值。 A.ADDAX,1200H;问AX=________H,ZF=________

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

2020年10月全国高级语言程序设计(一)自考试题及答案解析.docx

??????????????????????精品自学考料推荐?????????????????? 全国 2018 年 10 月高等教育自学考试 高级语言程序设计(一)试题 课程代码: 00342 一、单项选择题(本大题共20 小题,每小题 1 分,共 20 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括 号内。错选、多选或未选均无分。 1.下列不正确的转义字符是() . A. ′ ′ B. ′ ″ C. ′ \086′ D. ′ \0′ 2.下列运算符中,优先级最高的是() A. [] B.++ C.% D.&& 是 C 语言保留字的是 () 3.下列标识符中,不. A. char B. while C. min D. default 4.下列数据中,不.是 C 语言常量的是 () A. ′ \n′ B. ″ a″ C. e-2 D. 012 5.若定义了 int a; char b; float c ;,则表达式a*b-c 的类型是 () A. float B. int C. char D. double 6.若定义了 int a, x,y;,则下列语句中不.正确的是 () A. x=3 ,y=5 ; B. ++x ; C. x=y+=x*30 ; D. a=y+x=30 ; 7.调用函数时,若实参是一个数组名,则向函数对应的形参传送的是() A. 数组的长度 B.数组的首地址 C. 数组第一个元素的值 D. 整个数组元素的值 8.在 C 语言中,函数返回值的类型是由() A. 定义的函数类型决定 B.return 语句中表达式的类型决定 C.调用该函数的主调函数类型决定 D. 调用该函数时系统状态决定 9.若定义了 int b [][ 3]={ 1,2, 3,4, 5, 6, 7};,则 b 数组第一维的长度是 () A. 2 B. 3 C. 4 D.无确定值 1

汇编语言程序设计试题

汇编语言程序设计试题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A ) A.20640H B.2063EH C.2063FH D.21900H 2.使用DOS功能调用时,子程序编号应放在( B ) A.AL B.AH C.AX D.任意指定 3.没有 ..语法错误的输出指令是( B ) P76 A.OUT AX,30H B.OUT DX,AL C.OUT AL,DX D.OUT 30H,AH 4.用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( B ) A.MOV AX,89 B.MOV AX,0809H C.MOV AX,89H D.MOV AX,0809 5.设AX=8765H,DX=4321H,执行CWD指令后,DX中的内容是( B ) P117 A.4321H B.0FFFFH C.8000H D.0001H 6.设CL=05H,要获得CL=0AH,可选用的指令是( A) A.XOR CL,0FH B.NOT CL C.OR CL,0AH D.AND CL,0FH 7.假设执行ADD指令后AL=8CH,再执行DAA指令,AL中的值是( A ) A.92H B.0104H C.74H D.8CH 8.MOV AL,79H ADD AL,B1H 上面指令执行后,设置的标志位CF和ZF的值是( D ) A.CF=0,ZF=1 B.CF=l,ZF=1 C.CF=0,ZF=0 D.CF=1,ZF=0 9.TEST DL,55H P123 JZ NEXT NEXT:…… … 上述程序段,执行JZ指令时能产生转移的情况是( D ) A.DL>55H B.DL<55H C.DL=55H D.DL中第0、2、4、6位均为0 10.假设AL=28H, 执行ROL AL,1 指令之后的情况是( D ) P125 A.AL=14H, CF=1 B.AL=50H, CF=1 C.AL=14H, CF=0 D.AL=50H, CF=0 11. 98的BCD码是(B) A)10011001 B) 10011000 C) 10011010 D) 10001010 12. –0110110 的补码是(A) A) 11001010 B) 11001001 C) 10110110 D) 00110110

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

高级语言程序设计自考模拟10

[模拟] 高级语言程序设计自考模拟10 单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。 第1题: 下列不属于面向机器语言的是( ) A.符号语言 B.二进制语言 C.汇编语言 D.C语言 参考答案:D 答案解析: 第2题: 设int b=2;表达式(b<<2)/(b>>1)的值是( ) A.2 B.4 C.6 D.8 参考答案:D 答案解析: 左移位运算移一位相当于乘2,右移位运算右移一位相当于除2。 第3题: 设置变量定义为:int a=0x53;int b=6;,求表达式~a|b的值(假定现有计算机字长为16)( ) A.82 B.-82 C.72 D.-72 参考答案:B 答案解析: 因计算机字长为16.故a的二制表示是0000000001010011,b的二进制表示是0000000000000110。运算符"~"自右向左结合,运算符"|"是自左向右结合;且运算符"~"的优先级高于运算符"|"的优先级,则进行计算的顺序是"(~a)|b"。最终计算结果是1111111101010010(十进制值为-82)。 第4题:

为了判定两个字符串是否相等应当使用( ) A.if(s1==s2) B.if(s1=s2) C.if(strcmp(s1,s2)==0) D.if(strcmp(s1,s2)=0) 参考答案:C 答案解析: 第5题: 设char c[5]={'a','b','\0','C','\0');则printf("%s",c);的输出是( ) A.'a''b' B.ab C.abc D."ab\0c" 参考答案:B 答案解析: 第6题: 以下程序的运行结果是( ) #include<stdio.h>main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12};int *p=&a[5],*q=NULL;printf("%d%d\n",*p,*q);} A.运行后报错 B.6 0 C.6 12 D.5 5 参考答案:A 答案解析: #include<stdio.h> main() { int a[]={1,2.3.4,5,6,7,8,9,10,11,12}; int*p=&a[5],*q=NULL; printf("%d%d\n",*P,*q);/*被置空的指针不能参与"*"运算*/ } 第7题: 当执行以下程序段时( ) do{y--;}while(--y) printf("%d\n",y--); A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无限次 D.系统将提示有语法错误

汇编语言程序设计试题

汇编语言程序设计试题 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共50分) 1.CPU发出的访问存储器的地址是( A ) A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 2.使计算机执行某种操作的命令是( B ) A.伪指令 B.指令 C.标号 D.助记符 3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=(A) A. 1400H B. 77F8H C. 0000H D. 0FFFFH 4.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是( C)码。 A. BCD码 B.二进制码 C.ASCII码 D.十六进制码 5.下列关于8086CPU的工作原理的描述错误的是__C___。 A.汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。B.CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。 C.任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。 D.传送指令能够更改所有通用寄存器的内容。 6.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是(C) A.12CFBH B.12B6BH C.12C5BH D.12BFEH 7. 16位结构的CPU 不一定具备的特性是(D)。 A. 运算器一次最多可以处理16位的数据 B. 寄存器的最大宽度为16位 C. 寄存器和运算器之间的通路为16位 D. 地址总线为16根 8. 下列指令的书写正确的是(C)。 A. push al B. mov cs:[0],ds:[10] C. pop si D. mov ds:[0],2 9.在DEBUG工具中,显示寄存器内容的命令是( D )。 A. G B. D C. T D. R 10. 能够将ax中的内容送到内存0000:0200H处的指令序列是(D)。

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

00342高级语言程序设计自考机考答案

高级语言程序设计(一)(00342) 一、选择题(共75小题,每题2分,共150分) 1-5 BBCDB 6-10 CBAAC 11-15 DACBC 16-20 BACAA 21-25 CCCBB 26-30 DACDD 31-35 CDCDC 36-40 DBADD 41-45 CACCD 46-50 BBCBB 51-55ABCDC 56-60BCBAA 61-65DCDCD 66-70CDBAA 71-75DBADD 二、判断题(共25小题,每题2分,共50分) 1-5 ????6-10 ????11-15 ????16-20 ????21-25 ???? 三、名词解释题(共25小题,每题4分,共100分) 1、答:所谓函数的调用,是指一个函数(调用函数)暂时中断本函数的运行,转而执行另一个函数(被调用函数)的过程。 2、答:计算机能直接识别和接受的二进制代码。 3、答:由.OBJ文件转化而成的.EXE文件,即计算机可以识别、执行的程序。 4、答:即一组计算机能识别和执行的指令。 5、答:在程序中要指定用到哪些数据以及这些数据的类型和数据的组织性形式,就是数据结构。 6、答:用一个符号代表一个常量,称为符号常量。 7、答:在计算机高级语言中,用来对变量、符号变量名、函数、数组、类型等命名的有效字符序列统称为标识符。 8、答:用关系运算符将两个数值或数值表达式连接起来的式子,称关系表达式。 9、答:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 10、答:函数的首行(即函数首部)称为函数原型。 11、答:即要求计算机进行操作的步骤,可以用言语描述,也可以用流程图描述。 12、答:将已设计好的算法用计算机语言来表示,即根据已经细化的算法正确写出计算机程序。 13、答:如果一个变量在某个文件或函数范围内是有效的,就称该范围为该变量的作用域。 14、答:如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址),称为这个函数的指针。 15、答:一个数组,若其元素均为指针类型数据,称为指针数组。 16、答:所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(所占多少字节)

相关文档
最新文档