admin 管理员组

文章数量: 1086019


2024年4月22日发(作者:jdk16安装教程)

C语言程序设计教程第一章练习题题目(精选5篇)

第一篇:C语言程序设计教程第一章练习题题目

单选题

1、下列语言中不属于计算机语言的三大类的是(C)。A.机器语

言 B.汇编语言 C.脚本语言 D.高级语言

2、下列说法中不正确的是(C)

A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级

语言

B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可

移植等优点 C.C语言属于汇编语言

D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记

忆和使用

3、以下开发工具中不属于主流的开发工具的是(B)

Studio ::Block e

4、下列选项是对主流开发工具的介绍,其中错误的是(B)

Studio支持C/C++、C#、F#、VB等多种程序语言的开

发和测试 ::Block是一个免费的跨平台IDE,支持C、C++和

Fortan程序的开发 e是一种被广泛使用的免费跨平台IDE,最

初由IBM公司开发 是一款功能非常强大的IDE(和其他IDE不同

的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功

能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。)

5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤

的是(A)A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序

6、下列选项中,关于main()函数叙述不正确的是(C)

A.一个完整的C语言程序中,有且只能有一个main()函数

()函数是程序的主入口,程序总是从main()函数开始执行

C.如果没有声明main()函数,程序将从第1行开始执行 ()函数

可以有返回值,也可以没有返回值

7、下面程序中,合法的选项是(D)

A.#includeint main(){ printf(“hello worldn”);return 0;}

B.#includeint

C.#includeint

man(){

main(){

printf(“hello

printf(“hello

worldn”);return

worldn”)return

0;}

0;}

D.#includeint main(){ print(“hello worldn”);return 0;}

8、下面程序中,运行结果为“1,2”的是(A)

A.#includeint

1;int b =

main(){ int a = 1;int b =

0;}

=

2;printf(“%d %dn”,a,b);return 0;} B.#includeint main(){ int a =

2;printf(“%d,”a);printf(“%dn”,b);return

main(){ int a = 1, b C.#includeint

2;printf(“%d,%dn”,a,b);return 0;} D.#includeint main(){ int a =

1,a= b = 2;printf(“%d,%dn”,a,b);return 0;}

9、下列关于注释的描述中,错误的是(B)

A.C语言中的注释有两种类型:单行注释和多行注释 B.所有的注

释都可以嵌套使用

C.单行注释用“//”符号表示,“//”后面为被注释的内容 D.多

行注释以符号“/*”开头,以符号“*/”结尾

解析:在C语言中,有的注释可以嵌套使用,有的则不可以,例

如:

多行注释“/*„*/”中可以嵌套单行注释“//”; 多行注释“/*„*/”

中不能嵌套多行注释“/*„*/”。

10、下列关于注释的描述中,正确的是(C)

A.注释只在C语言源文件中有效,在编译时会被编译器忽略 B.注

释只能对程序中的某一行代码进行解释 C.注释不可以嵌套使用

D.单行注释以符号“/*”开头,以符号“*/”结尾

11、C语言可执行程序的开始执行点是

(D)A.程序中第一条可执行语句 B.程序中第一个函数 C.程序中的

main函数 D.包含文件的第一个函数

12、一个完整的C语言程序是

(B)A.要由一个主函数或一个以上的非主函数构成

B.由一个且仅由一个主函数和零个以上(含零)的非主函数构成 C.

要由一个主函数和一个以上的非主函数构成 D.由一个且只有一个主函

数或多个非主函数构成

13、以下说法正确的是(A)

A.c语言程序总是从第一个函数开始执行

B.在c语言程序中,要调用的函数必须在main()函数中定义 C.c语

言程序总是从main()函数开始执行

D.c语言程序中的main()函数必须放在程序的开始部分

14、在c语言程序中,注释部分从哪开始,到哪结束?(D)A.从

“(”开始到“)”结束 B.从REM开始无结束标志 C.无起始标志

D.从“/*”开始,“*/”结束

15、关于#include这句代码,下列描述中错误的是(A)A.“#”

是预处理标志,用来对文本进行预处理操作 e是预处理指令 C.

一对尖括号可以去掉

.h是标准输入输出头文件

16、关于printf(“hello worldn”);,下列描述中错误的是(C)

()是格式化输出函数,用于输出信息 ()括号中的内容为

函数的参数

()括号中的内容会全部输出到控制台 D.n表示换行

17、关于注释,下列描述中错误的是(C)

A.注释只是对代码的解释说明,只在源文件中有效 B.注释可分为

单选注释与多行注释 C.单选注释的符号为// D.多行注释间可以嵌套使

18、下列是多行注释的符号是(D)A.// B./ C./* D./**/ 判断题

1、计算机不需要翻译就能直接识别的语言被称为汇编语言。()

2、C语言只适用于系统软件的开发。()

3、根据功能和实现方式的不同,C语言属于高级语言。()

4、Visual Studio仅支持C/C++语言的开发和测试。()

5、Visual Studio系列的IDE是跨平台的。()

6、在C语言程序中,以分号“;”作为结束标记的代码都可称为

语句。()

7、注释在编译时也会被编译到程序中。()

8、/printf(“hello worldn”);*/ 是合法的注释。()

9、机器语言是由二进制数0和1组成的一串指令。()

10、汇编语言的可移植性较好。()

11、计算机语言可分为四大类:机器语言、汇编语言、脚本语言

和高级语言。()

12、C语言属于机器语言。()

13、C语言的主流开发工具包括:Visual Studio、Code::Block、

Eclipse、Vim。()

14、编写C语言程序的流程是:新建项目、添加源文件、编写代

码、运行程序。()

15、C语言中的注释有两种类型:单行注释和多行注释。()

16、Visual Studio只支持C/C++程序语言的开发和测试。()

17、在C语言程序中,一个语句的结束用”;“来标记。()

18、注释会影响程序的运行。()

19、多行注释之间不能嵌套调用。()

填空题

1、根据功能和实现方式编程语言可分为三大类,分别是:(),

(),()。

2、计算机语言主要由一些指令组成,这些指令包括()、符号和

语法等内容。

3、计算机语言可分为三大类,即机器语言、汇编语言和()。

4、C语言中的注释有两种类型,分别单行注释和()。

5、单行注释用()符号表示。

6、注释在编绎时会被编绎器忽略,它只在C语言()文件中有效。

简答题

1、简单介绍C语言的特点。

2、为了使下面的程序能够正常运行,请在空格处填写相应的代码。

3、请编写一个helloworld程序,要求如下:

4、请编写一个程序,实现两个变量a和b的求和操作,要求如下:

5、请阅读下面的程序,在空白处填写正确的代码,实现换行。

6、请阅读下面的程序,分析代码是否能够编译通过,如果能编译

通过,请列出运行的结果,否则请说明编译失败的原因。

7、请编写一个程序,在控制台输出一句话:中国欢迎你!

8、请编写一个程序,实现从键盘输入两个数据,然后将两个数据

相加,结果输出到控制台上。

9、请简述C语言的特点。

10、请简述机器语言、汇编语言和高级语言。

第二篇:C语言程序设计教程第五章练习题题目

单选题

1、关于数组的定义与初始化,下列哪一项是错误的()

arr[5] = {1,2,3,4,5}; arr[] = {1,2,3,4,5}; arr[5] = {1,2,3};

arr[5] = {1,2,3,4,5,6};

2、在定义数组intarr[10]后,下列选项中对arr的引用正确的是()

[10] [6.3] (6)[0]

3、在C语言中,引用数组元素时,其数组下标的数据类型允许是

()A.整型常量 B.整型表达式

C.整型常量或整型表达式 D.任何类型的表达式

4、若intarr[5] = {1,2,3};则arr[2]的值为()A.1 B.2 C.3

5、在执行intarr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为()

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

6、关于二维数组,下列选项能正确定义并赋初值的是() n

= 5,b[n][n]; a[1][2] = {{1},{3}}; c[2][] = {{1,2},{3,4}};

a[3][2] = {{1,2},{3,4}};

7、阅读下列程序段: char s[18] = “a

book!”;printf(“%.4sn”, s);其输出结果为()A.a book!B.a book

D.a

8、阅读下列程序:

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

printf(“%d%d%d%dn”, a[0][0], a[1][1], a[2][2], a[3][3]);正确

的输出结果为()A.0650 B.1470 C.5430 D.输出值不定

9、阅读下面程序: int i;

int x[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,

16 };for(i = 0;i<4;i++)

printf(“%3d”, x[i][3-i]);下列选项中哪一项是正确的输出结果()

A.1 5 9 13 B.1 6 11 16 C.4 7 10 13 D.4 8 12 16

10、下列描述中不正确的是()。A.字符型数组中可以存放字符

B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行

整体输入、输出

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体

赋值

11、以下定义语句中,错误的是()。 a[]={1,2};

*a[3];[10]=“test”; n=5,a[n];

12、下列选项中,合法的数组定义是()。

a[]=“string”;

s=“string”;[]={0,1,2,3,4,5};

13、int类型变量在内存中占用四个字节,其有定义:int

x[10]={0,2,4};那么数组x在内存中所占字节数是()。A.3 B.10 C.12

D.40

14、C语言中数组下标的下限是()。A.1 B.0 C.视具体情况 D.无

固定下限

15、以下程序的输出结果是()。void main(){

} int i, a[10];for(i=9;i>=0;i--)a[i]=10-

i;printf(“%d%d%d”,a[2],a[5],a[8]);A.258 B.741 C.852 D.369

16、若有以下说明:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;那么数值为

4的表达式是()。A.a[g-c] B.a[4] C.a['d'-'c'] D.a['d'-c]

17、C语言中数组名作为参数传递给函数,作为实在参数的数组

名被处理为()。A.该数组的长度 B.该数组的元素个数 C.该数组中各

a[5]={0,1,2,3,4,5};

元素的值 D.该数组的首地址

18、当调用函数时,实参是一个数组名,则向函数传送的是()。

A.数组的长度 B.数组的首地址

C.数组每一个元素的地址 D.数组每个元素中的值

19、以下程序的输出结果是()。void main(){ int

a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(“%d%d%d%dn”,a[0][3],a[1

][2],a[2][1],a[3][0];} A.0650 B.1470 C.5430 D.输出值不定

多选题

1、关于数组类型的定义,下列描述中正确的是()A.数组的大小

一旦定义就是固定的 B.一个数组中的各元素类型可以不一样 C.数组的

下标类型为整型 D.数组元素的下标从1开始

2、下面对数组描述正确的是()A.数组的长度是不可变的

B.数组不能先声明长度再不赋值 C.数组只能存储相同数据类型的

元素 D.数组没有初始值

判断题

1、在C语言中,只有一维数组和二维数组()。

2、数组的索引是从1开始的()。

3、数组属于构造类型的数据()。

4、数组名的命名较为特别,它不符合标识符的命名规范()。

5、数组在初始化时不可以只赋值一部分,必须全部赋值初始化

()。

6、对于一维数组,例如intarr[3];则arr[2]表示数组的第2个元素

()。

7、数组的下标范围是0-[数组长度-1]()。

8、二维数组进行定义与初始化时,行下标与列下标均不能省略

()。

9、在程序设计中,一组具有相同数据类型的变量集合称为数组

()。

10、数组元素的下标用于表示元素在数组中的位置序号,该下标

是从1开始的()。

11、数组元素下标的个数也称为维数,根据维数的不同,可将数

组分为一维数组、二维数组、三维数组、四维数组等()。

12、一维数组指的是只有一个下标的数组,用来表示一组具有相

同类型的数据()。

13、数组初始化的常见方式有三种:直接对数组中的所有元素赋

值、只对数组中的一部分元素赋值、对数组全部元素赋值但不指定长

度()。

14、数组中的元素可以通过数组名和下标来引用()。

15、数组的下标都有一个范围,即“0 ~ 数组长度”()。

16、初始化二维数组时,如果对全部数组元素置初值,则二维数

组的第一个下标可省略,但第二个下标不能省略()。

填空题

1、C语言中数组名代表数组的()地址。

2、数组是一组具有()类型的数据的集合。

3、对于二维数组intarr[3][4],其中3为()下标,4为()下

标。

4、若定义二维数组intarr[5][6];则数组的列下标的取值范围为

()。

5、二维数组是通过数组名和()来引用其元素的。

6、C语言中数组必须先()再使用。

7、二维数组的定义格式为()。

8、一维数组指的是只有一个()的数组,用来表示一组具有相同

类型的数据。

9、数组的下标是用()括起来的,而不是圆括号。

10、假设定义一个3行4列的二维数组,那么共包含()个元素。

11、二维数组同一维数组一样,也是通过()和下标的方式来引

用数组元素。

12、假设定义数组int a[3][4],数组a可用的行下标范围是(),

列下标范围是()。简答题

1、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如

果不能,说明原因;如果能,请写出运行结果。void main(){ int

i;chararr[5] = { 'h', 'e', 'l', 'l', 'o' };for(i = 0;i < 5;i++)

printf(“%c”, arr[i]);}

2、请阅读下面的程序,在空白处填写正确的代码,只打印出数组

偶数位上的元素。int main(){ int i;intarr[8] = { 1, 0, 1, 0, 1, 0, 1,

0 };for(i = 0;i < 8;i++){

;

printf(“%dn”, arr[i]);} return 0;}

3、请阅读下面的程序,分析程序是否能编绎通过并正确运行,如

果不能,说明原因;如果能,请写出运行结果。void

main(){ floatarr[6] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 };inti,t;t = arr[0];for(i

= 0;i < 5;i++)

arr[i] = arr[i + 1];

arr[5] = t;for(i = 0;i < 6;i++)

printf(“%-6.2f”, arr[i]);}

4、请阅读下面的程序,在空白处填写正确的代码,输出数组中最

大元素的下标。int main(){ int i, p;intarr[] = { 1,-3, 0,-9, 8, 5, 20,

3 };for(i = 0, p = 0;i < 8;i++){

if()

;} printf(“p = %dn”, p);return 0;}

5、请阅读下面的程序,在空白处填写正确的代码,该程序的功能

是:删除字符串s中的所有数字字符。void dele(char *s){ int

n=0,i;for(i=0;s[i];i++)

if(_______)

s[n++]=s[i];s[n]=_______ }

6、请阅读下面的程序,在空白处填写正确的代码,该程序的功能

是:在一个初始化数组中查找与x相同的元素,如果找到就将该元素

置为

if(a[i]==x)

-x。void main(){ int

a[]={8,4,2,7,3,9},i,x;scanf(“%d”,&x);for(i=0;_______;i++)

_______ for(i=0;i<6;i++)

printf(“%d ”,a[i]);}

7、请阅读下面的程序,在空白处填写正确的代码,该程序的功能

是:计算str所指字符串的长度,并作为函数值返回。

intmystrlen(char *str){ int i;for(i=0;_______!='';i++);

return _______;}

8、请阅读下面的程序,在空白处填写正确的代码,该程序的功能

是:在5个数中,找出最大的元素及位置。#define size 5 void

main(){ int a[size]={4,6,3,9,23};intmax,p,i;_______

} p=0;for(i=1;imax){

max=a[i];

_______ }

9、请阅读下面的程序,在空白处填写正确的代码,该程序的功能

是:对N个数用直接插入排序法进行由小到大排序。

#define N 10 //待排序元素的个数

void insertsort(int R[N+1])//直接插入排序

{ inti,j;for(i=2;i<=N;i++){

R[0]=R[i];//设置监视哨

j=i-1;

while(_______)

{

R[j+1]=R[j];

_______

}

R[j+1]=R[0];} }

10、定义一个大小为10的char类型数组,从键盘输入其元素,

然后将其倒序输出。

11、定义一个大小为10的int类型数组,从键盘输入其元素,然

后将其从小到大排序后输出。

12、定义一个大小为10的int类型数组,从键盘输入其元素,然

后输出其中最大值。

13、定义一个二维数组intarr[3][4] =

{12,2,45,36,2,10,86,0,54,666,58,400};将数组中的元素按每一行每一

列输出;

14、有一个二维整型数组,每一行都有一个最大值,编程求出每

一行的最大值;

15、请简要说明如何定义一个一维数组并为之赋值。16请简要说

明一维数组与二维数组的区别。17简要描述数组有哪些特点。18请简

述什么是数组。

19请简述什么是多维数组的维数。

第三篇:语言程序设计练习题 2

汇编语言程序设计练习题

一、单项选择题:在每小题列出的四个备选项中只有一个是符合题

目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无

分。

1.CPU要访问的某一存储单元的实际地址称()C

A.段地址

B.偏移地址

C.物理地址

D.逻辑地址

2.某存储单元的物理地址是12345H,可以作为它的段地址有()

D

A.2345H

B.12345H

C.12340H

D.1234H 3.执行后使BX=0的同时也使CF=0,OF=0的指令

是()A

A.XOR BX,BX

B.OR BX,BX

C.AND BX,BX

D.CMP BX,BX 4.循环控制指令LoopNZ/LoopNE控制循环

继续执行的条件是()B

A.CX≠0且ZF=1

B.CX≠0且ZF=0

C.CX≠0或ZF=1

D.CX≠0或ZF=0 5.在执行DAA指令,当高四位BCD码校正

时产生进位,如要把此进位值送入AH中,对这进位值的操作应是()

C

A.DAA校正指令的功能已自动加在AH中

B.进位值在AF中,校正后根据AF内容再加在AH中

C.进位值在CF中,校正后根据CF内容再加在AH中

D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH

6.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正

确的是()C

A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位

B.指令OR DX,1000H执行后,将DX最高位置1,其余各位

置0

C.指令AND AL,OFH执行后,分离出AL低四位

D.NOT AX,执行后,将AX清0 7.在执行下列指令时,需要

使用段寄存器DS的指令是()D

A.STOSW

B.ADD AL,CL

C.NEG BX

D.INC DA[BX] 8.无论BH中原有的数是奇数或偶数,若要使

BH中的数一定为奇数,应执行的指令是()B

A.ADD BH,01H

B.OR BH,01H

C.XOR BH,01H

D.TEST BH,01H 9.完成对CL寄存器的内容乘以4的正确操

作是()C

A.ROL CL,1

B.MUL 4

ROL CL,1

C.SHL CL,1

D.MOV CL,2

SHL CL,1

SHL CL,CL 10.下面各传送指令中,正确的是()C

A.MOV [DI],[SI]

B.MOV[DX+DI],AL

C.MOV WORD PTR [BX],0100H

D.MOV AL,BX 11.汇编语言语句格式中对名字项的规定如下,

请找出其中错误的说法()BD

A.名字的第一个字符可以是大写英文字母及小写英文字母

B.名字的第一个字符可以是字母、数字及、@、_

C.名字的有效长度≤31个字符

D.在名字中不允许出现$ 12.要实现使BETA的值为56,应采

用语句为()C

A.BETA DB 56

B.BETA DB 56H

C.BETA EQU 56

D.BETA EQU 56H 13.REPZ CMPSW指令,重复执行的终止

条件是()A

A.CX=0或ZF=0

B.CX=0且ZF=0

C.CX=0或ZF=1

D.CX=0且ZF=1 14.下面程序段执行后,AL中的内容是()

B

MOV AX,8833H

ADD AL,AH

DAA

A.21

B.21H

C.0C1H

D.0DDH 15.比较两个带符号的数A、B,当A=B时程序转移,

测试的条件为()A

A.ZF=1

B.ZF=0

C.SF=1

D.SF=0 16.检查二个无符号数的关系,若要实现AL≥BL时分

支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()

A

A.JNC LOP1

B.JA LOP1

C.JC LOP1

D.JGE LOP1 17.在下列串操作指令中,同时使用源串和目的串

地址指针的指令是()D

A.STOSW

B.LODSW

C.SCASW

D.CMPSW 18.设AL=0AH,下列指令执行后能使AL=05H的

是()C

A.NOT AL

B.AND AL,0FH

C.XOR AL,0FH

D.OR AL,0FH 19.DA1 DW‘AB’,‘CD’,‘EF’,

‘GH’()D ┇

MOV AX,DA1+3 指令执行后AX中的内容是

A.‘EF’

B.‘CD’

C.‘BC’

D.‘FC’

20.使用DOS系统功能调用时,使用的软中断指令是()

A.INT 21

B.INT 10H

C.INT 16H

D.INT 21H

二、填空题请在每小题的空格中填上正确答案。错填、不填均无

分。

1.十六进制数0FFF8H表示的十进制正数为________,表示的十

进制负数为________。

2.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,

[SI+COUNT]中,源操作数的有效地址EA为________,其物理地址为

________。

3.CPU的标志寄存器中标志位,可以分为两大类,其中一类称为

________标志位,另一类称为________标志位。

4.当标志位________=1时表示无符号数运算产生溢出,而当标志

位________=1是表示带符号数运算产生溢出。

5.如JMP指令采用段间间接寻址,那么由4个相邻字节单元中

存放有转移地址,其中前两个字节存放的是________,而后两个字节存

放的是________。

6.在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,

选用的串操作指令是________或________才有实际意义。

三、简答题

1.已知:BX=1357H,DI=2000H,DS=2000H,CS=4000H,

分别指出下面各指令中存储器操作数的物理地址。(1)MOV AL,

[BX](2)MOV CS:[BX+DI],AH

2.0P1 DB 1,2 0P2 DW 3412H,5678H ┇

MOV AX,OP1+1;字单元(OP1+1)AX MOV BL,OP2+1;

字节单元(OP2+1)BL 上述二条传送语句有语法错误,请根据注释字

段的说明,将其改正。

3.下列语句在存储器中分别为变量分配多少字节?

(1)AD2 DW 10 DUP(?),10(2)AD3 DD 100 DUP(?)

4.简述下面两条指令分别是什么语法错误? MOV [BX],[SI]

MOV AX,DL

四、程序分析题 1. MOV DL,AL NOT DL TEST DL,04H JE

NEXT ┇ NEXT:„

若上述程序段执行时产生分支,说明AL中的数第几位一定为1?

程序段执行后CF是多少?

2.DA1 DB‘ABCDEFGHI’ DA2 DB 9 DUP(0)

LEA SI,DA1 LEA DI,DA2 MOV CX,9 CLD LOP: LODSB

SUB AL,10H STOSB 试问:①写出程序执行后DA2各

字节中的数据。

②保持程序功能情况下,程序中 可否改写为

3.已知:BX=4567H NEG BX INC BX NEG BX DEC BX 程序段

执行后,BX=________,CF=________。

4. MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD

AL,BL ADC AH,0 DEC CL JNZ AGAIN 问:(1)该程序段完成的

功能是:

(2)AX=________。

5.已知数据段中定义

DAT1 DB 12H,34H,56H,78H MOV CX,0 MOV AX,

WORD PTR DAT1 MOV CL,DAT1+3 当程序段执行完后

AX=________,CX=________。

6.DA1 DB 83H,72H,61H,94H,5AH ┇

MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3

SHL AL,CL 上述指令序列执行后,AL=_______,CL=_______。

五、程序填空题(本大题共2小题,每小题6分,共12分)

1.在NUMW单元存放有一个0-65535范围内的整数,将该数

除以500,商和余数分别存入QU1和REM单元,请在空行处各填上

一条指令完善该程序。

MOV AX,NUMW _____________ XOR DX,DX DIV BX MOV

QUI,AX _____________ 2.某程序欲用单个字符显示的2号功能调用去

显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试

在空白处填上适当的一条指令。STRING DB‘COMPUTER’,‘$’

MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,

02H INT 21H ____________________ ____________________ JNE LOP

六、编程序题

1.试编制一程序段,用串操作指令实现以DA_BY为首址的20H

个字节单元中存放相同字符‘Y’(设DA_BY存储区已有ES指向)。

2.试编制一源程序,统计DA1字单元中含0的个数,如统计的

个数为奇数,则将进位位置1,否则进位位清0。DATA SEGMENT

DA1 DW XXXX DATA ENDS

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

一、1、C;

2、D;

3、A;

4、B;

5、C;

6、C;

7、D;

8、B;

9、C;

10、C;

11、B;

12、C;

13、A;

14、B;

15、A

16、C;

17、D;

18、C;

19、D;20、B

二、1、+65528;-32760 2、20A8H;11488H

3、状态;控制

4、CF;OF

5、IP;CS

6、STOS;CMP

三、1、(1)21357H;(2)43357H

2、MOV AX,WORD PTR(OP1+1)MOV BL,BYTE PTR

(OP2+1)

3、(1)22;(2)400

4、MOV指令不能在两个存储器操作数之间进行;

操作数类型不匹配

四、1、第2位;CF=0 2、123456789;不能更改

3、BX=4565H;CF=1

4、AX=012CH,将AX内容乘3送BX中

5、AX=3412H,CX=0078H

6、AL=0A0H,CL=03H

五、1、MOV BX,500 MOV REM,DX

2、INC BX CMP byte ptr [BX],24H

六、1、LEA DI,DA_BY MOV CX,32 MOV AL,‘Y’ CLD

REP STOSB

2、CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV

AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN:

MOV AL,[SI] HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN

TEST BL,01H JNE L1 CLC JMP DONE L1: STC DONE: MOV AH,4CH

INT 21H CODE ENDS END START

第四篇:C语言程序设计教程课程设计

《C语言程序设计教程课程设计》计划 类别:课程设计

适用于三年制专科计算机应用专业 学分:1 周数:1

一、设计目的与要求

《高级语言程序设计课程设计》是《高级语言程序设计》课程的

实践环节,其教学目的是通过一些中小规模程序的编程,使学生对c语

言程序设计的基本规则与方法有比较全面的理解和认识,熟练掌握高

级语言程序设计技术,为以后学习更高层次的程序设计和软件开发奠

定坚实基础。

通过本课程设计,应达到下列基本要求: 能够结合c语言来理解

程序设计的基本概念;

掌握用c语言解决问题的基本方法和步骤,能够熟练地使用c语言

编写中小型应用程序; 熟练掌握c语言编程规则,掌握函数的应用方

法和编写; 熟练掌握面向过程程序设计方法; 掌握结构化程序设计思

想和方法; 培养和提高学生的程序调试能力;

培养学生查阅手册、图表和文献资料的能力; 培养学生撰写报告

文档的能力。

二、课程设计题目

每个题目的限选人数根据班级总人数平均后确定,但要求同一题

目的学生独立完成设计题目,以下10个题目任选其一。1。职工信息

管理系统设计 1.1问题描述

试设计一职工信息管理系统,职工信息包括职工号、姓名、性别、

年龄、学历、工资、住址、电话等(职工号不重复)1.2基本要求

1.系统以菜单方式工作(2.职工信息录入功能(3.职工信息浏览

功能(4.查询和排序功能:(至少一种查询方式)--算法(((1)按工

资查询((2)按学历查询等

5.职工信息删除、修改功能(任选项)(2.图书信息管理系统设计

1.1问题描述

试设计一图书信息管理系统,图书信息包括:登录号、书名、作

者名、分类号、出版单位、出版时间、价格等。1.2基本要求

1.系统以菜单方式工作(2..图书信息录入功能(3..图书信息浏

览功能(4..查询和排序功能:(至少一种查询方式)--算法(((1)按

书名查询((2)按作者名查询

5..图书信息的删除与修改(3。学生信息管理系统设计 3.1问题描

试设计一学生信息管理系统,学生信息包括:学号、姓名、年龄、

性别、出生年月、地址、电话、E-mail等。3.2基本要求

1..系统以菜单方式工作 2..学生信息录入功能 3..学生信息浏

览功能 4..查询、排序功能(1)按学号查询(2)按姓名查询

5..学生信息的删除与修改 4。学生选修课程系统设计 4.1问题描

试设计一选修课程系统,假定有n门课程,每门课程有课程编号,

课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,

开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。

4.2基本要求

1.系统以菜单方式工作(2.课程信息录入功能(3.课程信息浏览

功能(4.查询功能:(至少一种查询方式)--算法((1)按学分查询

((2)按课程性质查询(5.学生选修课程(可选项)(5。销售管理系统

5.1问题描述

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:

1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每

张便条包含内容:(1)销售员的代号,(2)产品的代号。(3)这种

产品的当天的销售额。每位销售员每天可能上缴0-5张便条。假设,

收集到了上个月的所有便条,5.2基本要求

编写一个处理系统,读取上个月的销售情况(自己设定),进行

如下处理。1.计算上个月每个人每种产品的销售额。

2.按销售额对销售员进行排序,输出排序结果(销售员代号)

3.统计每种产品的总销售额,对这些产品按从高到底的顺序,输

出排序结果(需输出产品的代号和销售额)4.输出统计报表


本文标签: 数组 程序 指令