c语言第10章教案标准

2023-06-05

撰写教案是教师的一项基本工作,也是将教学设计的理性思考转化为可操作的课堂教学方案的关键步骤。以下是小编整理的《c语言第10章教案标准》,供大家参考借鉴,希望可以帮助到有需要的朋友。

第一篇:c语言第10章教案标准

C程序设计教案(第5章 实验6)

实验 6 字符数组和字符串函数

一、

二、 实验学时:2课时 实验目标

1. 熟悉掌握字符数组的使用。 2. 掌握与数组有关的算法。

三、 实验要求:

1. 在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

2. 所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、 实验步骤和内容

【启动Visual C++】  【新建工程】

 选中【C++ Source File】项,【新建源程序文件】  编辑程序  执行程序

【例5.7】gets读取字符串与puts输出字符串。 /* 源文件名:Li5_7.c 功能:gets读取字符串与puts输出字符串。 */ #include void main() { char s[18] ;

/*定义s字符数组的初值*/ printf("输入字符串") ; gets(s) ;

/*读取字符串*/ puts(s) ;

/*输出字符串*/ printf("读取的字符串是"%s" ",s) ;

/*输出s字符数组的值*/ }

1) 观查执行结果,是否与教材相同。

2) 思考gets()和scanf()、puts()和printf()函数在输出字符串的异同点

【例5.8】输入一组字符串,以输入空串结束输入,找出最大的字符串(设串长不超过80字符)。

/* 源文件名:Li5_8.c 功能:输入一组字符串,找出最大的字符串。 */ 可以用gets函数读取字符串,设置一个最大字符串数组smax,第一次设置smax为空串,每读一个字符串s就把它与保存在smax中的字符串比较,如s>smax则用s替换smax,不然smax保持不变,这样当所有的字符串输入完毕后,smax中存储的就是最大字符串。

#include #include void main() { char smax[80],s[80] ;

/*定义s数组和smax数组*/ strcpy(smax, " ") ;

/*设置smax数组为空,也可以设置smax[0]=‘�‘*/ do

{ printf("输入字符串:") ; gets(s) ;

/*读取字符串*/ if(strcmp(s,smax)>0)

strcpy(smax,s) ;

/*s数组比smax数组大的话,把s数组赋值个smax数组*/

}while(s[0]!=‘�‘

puts("最大的字符串是") ; puts(smax) ; }

1)观查执行结果,是否与教材相同。 2)重新输入不同的字符串,再查看结果

五、 思考题

1) 【例5.7】思考gets()和scanf()、puts()和printf()函数在输出字符串的异同点。 2) 【例5.5】若要找出最小字符串,该如何实现?

六、

实验小结:

第二篇:C程序设计教案(第9章 实验 12次)

实验 12 位运算

一、

二、 实验学时:2课时 实验目标

1. 掌握按位运算的概念和方法,学会使用位运算符。 2. 学会通过位运算实现对某些位的操作。

三、 实验要求:

1. 在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。

2. 所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、 实验步骤和内容

【启动Visual C++】  【新建工程】

 选中【C++ Source File】项,【新建源程序文件】  编辑程序  执行程序

1、编写一程序,检查所用的计算机系统的C编译在执行右移时是按照逻辑右移的原则,还是按照算术右移的原则进行操作。如果是逻辑右移,请编一个函数实现算术右移;如果是算术右移,请编一个函数实现逻辑右移。输入如下代码:

#include "stdio.h"

short ljyy(short x)//逻辑右移 {

x=x>>1; x=x&(0x7fff);//最高位补零,其余保持不变

return x; }

void main() { short y; short x=-4; y=x; x=x>>1; if(x<0) {

printf("x=%d ",x);

printf("该编译系统为算术右移! "); } else {

printf("x=%d ",x);

printf("该编译系统为逻辑右移! "); } printf("逻辑右移的结果为:"); y=ljyy(y); printf("y=%d ",y); }

1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

2、编一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:

getbits(value,n1,n2) value为该16位数的值,nl为欲取出的起始位,n2为欲取出的结束位。 如:

getbits(0101675,5,8)

表示对八进制数101675,取出其从左面起的第5位到第8位。要求把这几位数用八进制数打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。

【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项 输入如下代码: #include "stdio.h"

short getbits(short value,int n1,int n2) { short result; short temp; int k; int i; k=16-n2; result=(0x0000); value=value>>k; for(i=0;i<=(n2-n1);i++) {

temp=value&(0x0001);

temp=temp<

result=result|temp;

value=value>>1;

} return result; } void main() { short x; short y; x=0101675; y=getbits(x,5,8); printf("y=0%o ",y); }

1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

3、设计一个函数,使给出一个数的原码,能得到该数的补码。

要求用八进制形式输入和输出。

【启动Visual C++】|【新建工程】|【新建源程序文件】:选中【C++ Source File】项 输入如下代码: #include "stdio.h"

short buma(short x) { if(x>0)

return x; else {

x=-x;

x=~x+(0x0001);

x=x|(0x8000); } return x; }

void main() { short x; printf("请用八进制的形式输入变量x的值:"); scanf("%o",&x); printf("补码为:%o ",buma(x)); } 1)编译、连接、和运行程序。程序运行后,观查屏幕显示结果。

五、 思考题

1) 用程序实现原码,反码和补码的相互转化

六、

实验小结:

第三篇:C程序设计教案(第4章实验3B次)

实验二 选择结构程序设计实验

一、

二、 实验学时:2课时 实验目的:

1) 了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。 2) 熟练掌握if语句和switch语句。 3) 结合程序掌握一些简单的算法。

三、 实验要求:

1. 在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。 2. 所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。

四、 实验步骤和内容

本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1. 有一函数:

(x1)xy2x1(1x10)3x11(x10)

用scanf函数输入x的值,求y值。(习题5.5)

运行程序,输入x的值(分别为x<

1、1≤x<

10、x≥10三种情况),检查输出的y值是否正确。

2. 给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。

1) 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。

2) 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。 3. 给一个不多于5位的正整数, 要求:

1) 求出它是几位数;

2) 分别打印出每一位数字;

3) 按逆序打印出各位数字,例如原数为321,应输出123。 应准备以下测试数据:

 要处理的数为1位正整数;  要处理的数为2位正整数;  要处理的数为3位正整数;  要处理的数为4位正整数;  要处理的数为5位正整数。 除此之外,程序还应当对不合法的输入作必要的处理。例如:  输入负数;

输入的数超过5位(如123456)。

4. 输入4个整数,要求按由小到大顺序输出。得到正确结果后,修改程序使之按由大到小顺序输出。

5. 根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。

6. 现有十二个小球,其中一个球的重量与其它十一个的重量不相同,但不知道是轻还是重。试用天平称三次,把这个非标准球找出来,并指出它比标准球是轻还是重。 要求:

1) 用嵌套的选择结构编写程序; 2) 调试程序时,必须把十二个球或轻或重共24种可能性都找出来。

五、 思考题

1) else …if语句、if语句和switch语句的使用 2) 一或多分支选择结构语句的用法;

六、 实验小结:

第四篇:第8章 语言与高级语言的连接(教案)

13.3汇编语言和高级语言程序的连接

由于使用高级语言编写及调试程序比汇编语言的开发效率高,可移植性好,所以,高级语言比汇编语言使用更广泛。但是在要求实时性高、占用空间少或要求直接控制硬件的场合,仍然要用到汇编语言,实现对硬件直接控制和更快的控制速度。但汇编语言编程复杂、表达能力也差,因此比较好的解决办法是C语言与汇编语言混合编程。

目前主要的C语言程序开发环境有:Turbo C/C++、Borland C/C++,Visual C++等,都支持与汇编语言的混合编程。C语言与汇编语言的混合编程方法一般有两种方法可以实现,即在C语言中嵌入汇编语言,也称嵌入式编程和用 C语言调用汇编语言模块,即多模块混合编程。

1.汇编语言的嵌入式编程

1.内嵌汇编语句格式

在Turbo C中,C程序中嵌入的汇编语句前必须以关键字ASM开头,其格式为:

ASM <操作码> <操作数> <;或回车换行> /*注释*/ 其中ASM为关键字,操作码可以是处理器指令也可以是伪指令,操作数是操作码可以接受的数据,可以是指令允许的立即数,寄存器名,也可以是C程序中的常量、变量和标号。C程序中嵌入汇编代码后可以有分号也可无分号,如果汇编代码后无分号则必须以换行符结束(嵌入的汇编语句是C语言中唯一可以换行结束的语句),如果汇编代码后有分号,则一行中可以有多条嵌入的汇编语句,但一条汇编指令不能跨越两行。

特别要注意的是,嵌入的汇编语句的注释方式须采用C语言的注释方式,即必须用/*……*/来标记注释。而不能像纯汇编那样用(;)作为一条注释的开始。如:

ASM MOV AX,DX;

/*单个语句*/ ASM PUSH AX;ASM POP AX;ASM MOV BX, AX;/*多个语句写在一行 */ 如果在C语言程序中要嵌入多个ASM语句,可以将它们放在花括号内。如: ASM {

MOV AX,DX

PUSH AX

}/*注释*/

在C程序中,函数内部的汇编语句都是一条可执行的语句,它被编进程序的代码段,在函数外部的汇编语句是一个外部说明,在编译时放在程序的数据段中。这些外部数据可以被其他程序引用。 C语言允许嵌入的指令集是有限的,它跟C语言的编译环境有关。在Turbo C2.0中允许嵌入的汇编指令主要包括8086指令集,例如一般传送和运算指令、串操作指令、跳转指令、数据分配和定义指令等。

嵌入汇编比调用汇编子程序更方便、灵活、功能也更强。但嵌入汇编不是一个完整的汇编程序,所以许多错误不能马上检查出来。 2.转移指令的执行

内嵌汇编指令可以使用转移指令和LOOP循环指令,但是它们只能在函数体内有效,不允许进行段间转移。由于ASM语句中不能给出标号,因而转移指令只能使用C语言程序中GOTO语句使用的标号。例如:

int fun1( ) { … label: … asm … } jmp label 3.直接嵌入汇编代码的C语言程序示例

例 编写一个三个整数的求和的C函数,用在C语言中嵌入汇编语言方法实现。

int Sum ( int X, int Y, int Z)

{ ASM PUSH AX; /*保护现场,否则可能影响前面的程序执行*/ ASM MOV AX, X; ASM ADD AX, Y; ASM ADD AX, Z; ASM MOV X , AX; ASM POP

AX;

/*恢复现场*/ return (X);

}

例 .用嵌入汇编的方法编写实现求两个整数中的最小值的C语言函数。

int min(int v1,int v2) { ASM MOV AX,v1 ASM CMP AX,v2 ASM JLE over; ASM MOV AX,v2 over: return(_AX); /*_AX为AX寄存器*/ } 内嵌汇编指令的C程序只能采用TCC命令行的编译连接方法。用TCC命令行实现的编译连接的方法是:

TCC -B-L: LIB 文件名 库文件名

其中-L选择项指定了连接所需的库文件路径,文件名指有内嵌汇编指令的C程序名,库文件指程序重要用到的库函数所在的库文件(Turbo C标准库可省略)。

内嵌汇编指令的C程序进行编译时,必须要有-B选择项,否则编译时,一旦遇到汇编代码,便立即给出警告信息,并以-B选项重新进行编译,若在C程序中加上#program inline预处理语句,则可省略-B选择项。

2.在C程序中直接调用汇编子程序

在C语言中直接嵌入汇编语句的方法限制较多,不能充分发挥汇编语言的功能。一种更好的方法是把需要用汇编实现的工作设计成汇编子程序,然后由C语言调用。

在设计能被C调用的汇编子程序时,可以使用完整的段定义或者简化的段定义结构。 2.1编写汇编子程序注意的问题

(1)变量和函数的使用

(2)参数传递 (3)寄存器使用规则 (4).存储模式规则

(1)变量和函数的使用

C程序中可以调用汇编子程序及定义的变量,汇编子程序也可以调用C语言书写的函数和定义的变量。但是,C语言编译系统在编译C语言源程序时,要在其中的变量名、过程名、函数名等标识符前面加下划线“_”。例如,在C语言程序中变量name,在编译以后变量变为_name。依次在汇编语言中调用C语言的函数和变量时,应在函数名和变量名前面加上下划线“_”。并在汇编语言程序的开始部分,应对调用的函数和变量用EXTERN加以说明。

其格式为:

EXTERN_函数名:函数类型 EXTERN_函数名:变量类型

其中,函数类型指明该函数是一个近程或远程函数(NEAR或FAR),变量类型为变量的数据类型。

其对应关系:

C语言

汇编语言

数据长度(字节) Char

DB(BYTE)

1 int short

DW(WORD)

2 long

DD(DWORD)

4 float double

DQ(QWORD)

8 例如调用C程序中名为myfunc( )的函数和变量mem等,则在C语言程序中说明为:

int myfunc(vido); int mem; char ch; long result 在调用它的汇编子程序中说明为: exteern _ myfunc:char extrn_mem:word,ch:byte,result:dword 若C程序调用汇编语言中的子程序或变量,则在汇编语言中用public进行说明,且函数名和变量名前用下划线。如::

public _myfunc01 public_num 而在C语言中则应将其说明为extern,即: extern myfunc01( ); extern num; 要注意此处不能带有下划线,同时要注意C语言对大小写敏感的问题。 (2)参数传递

C语言调用汇编子程序时,参数是通过堆栈传递给汇编子程序的,要注意C语言程序参数入栈的的顺序是从右到左,在执行汇编子程序前还要将返回地址压入堆栈。由于堆栈是向下生长的,故每入栈一次。栈指针都相应减少;而在出栈时相反。

例如,在C程序中说明一个用汇编书写的函数,若在小内存模式下编译,则表示为:

void abc(char*p1,int p2); 在大内存模式下编译,则要说明为远程的,如下所示:

void far abc(char*p1,int p2); 在大内存模式下,要将相应的段地址和便移地址入栈。 3.寄存器使用规则

在C语言中调用的汇编语言模块中,通常汇编程序可以任意使用计算机内部的通用寄存器,如AX、BX、CX、DX、ES等。这些通用寄存器的值在调用后可以发生改变,标志寄存器的值也可以发生改变。但有些寄存器如:DS、CS、SS、BP、SP等,如果在调用的汇编语言程序中有用到,则必须先进行保护(入栈),退出前加以恢复(出栈)。变址寄存器SI和DI如在调用汇编语言程序中使用到也要加以保护。

4.存储模式规则 在TURBO C中提供了6种不同的存储模式,分别对应6种不同的汇编语言存储模式。即对不同的C语言存储模式(极小、小、紧凑、中、大和巨)要选用相应的汇编语言存储模式,如C程序为小模式,汇编程序也用小模式,C程序为大模式,汇编也用大模式等。

设定汇编语言的存储模式可采用.MODEL伪指令,设定TUBRO C的存储模式可利用TCC命令行的选项-m。

下面是一个C语言程序调用汇编语言子程序的例子,假定C语言主程序存放在文件c_main.c和masm_sub.asm中,其内容分别如下:

c_main.c文件: extern int divs(int,int); /*声明divs为外部函数*/ main ( ) {

printf(“%d”,divs(16,3));/*调用外部函数*/ }

masm_sub.asm文件

.MODEL SMALL

;采用小模式 .CODE

PUBLIC divs

;指明该过程可被外部调用 divs proc PUSH BP

;保护bp MOV BP,SP MOV AX,[BP+4]

;参数 MOV CX,[BP+6]

;另一个参数 SHR AX,CL

POP BP

;恢复bp RET divs ENDP END 其中伪指令model small 对应C的小模式编译;code 标志一个代码段的开始,这是MASM 5.0的简化段格式;puplic divs 说明divs是公用的,可以由外部其它单独编译模块调用。

将C源程序以文件名c_main.c存盘,汇编语言源程序以文件名masm_sub.asm 存盘;再分别用各自的编译系统,编译成目标程序c_main.obj和masm_sub.obj;最后用link连接程序,将两个目标程序连 接成可执行程序c_main.exe。

其实,汇编语言与C语言混合编程时,除了可以在C语言中调用汇编语言子程序,也可以在汇编语言代码中调用C语言函数,但在调用时要注意函数参数的传递方法。详情请参见有关文献资料。

3.使用C和汇编语言混合编程的编译及连接

对于用C语言和汇编语言分别独立编写的符合以上要求的程序,要想使它们最终形成一个系统,需要对他们进行编译和连接,以便生成一个可执行文件。

在混合编程时要注意,C程序和汇编语言子程序所采用的内存模式,当都是小/微/紧凑模式时,在C程序的说明部分是需要说明为EXTERN即可,否则必须说明为FAR型,下面是在Turbo C环境下同为小内存模式的混合编程的例子。

例 : 从6个数中找出其中的最大数并显示。要求查找最大数的功能由汇编语言子程序max-num实现。

(1)编写源程序

汇编子程序使用简化的段格式编写。C程序调用该子程序时,共传递7个参数,第一个为数据的个数,其余为数据部分。

源程序如下:

#include /*program name :c_max.c*/ int extern max_num(int count,int v1,int v2,int v3,int v4,int v5,int v6); main () { int i; i=max_num(6,-35,17,0,63.121,112); printf(“ the maximum of the 6 numbers %d,i); } 对应的汇编程序如下:

.model small

;program name :asm_max.asm

.code

public _max_num _max_num proc near

push bp

mov bp,sp

mov cx,[bp+4]

;取数据个数

jcxz exit

mov ax,[bp+6]

;取第一个数据 comp: add bp,2

;修改地址指针

cmp ax,[bp+6]

;两数比较

jge gtest

mov ax,[bp+6]

;大数放在AX中 gtest: loop comp exit:

pop bp

ret _max_num endp

end

(2)编译和连接

①在DOS环境下,用TASM或MASM将汇编语言子程序(asm_max_asm)编译生成目标文件.obj(asm_max.obj)。例如:tasm asm_max. ②在TC主界面下,单击主菜单中的project项,选中子项project name,输入一个后缀为为.prj的工程文件(例如max.prj)该文件包含需要编译连接的C语言源程序和它调用的汇编语言子程序的目标文件名,对于本例,其内容为:

c_max.c asm_max.obj ③关闭大小写敏感开关,即把Options选项的Linker的Case-sensitive Link置成OFF。

④按F9键对工程文件进行编译连接,生成一个.exe文件,本例为max.exe. ⑤在DOS环境下输入MAX运行该可执行程序。

对于不是小/微/紧凑内存模式下的混合编程,C程序必须把被调用的汇编子程序说明为远程函数,若有函数参数为指针类型时,也要说明成FAR型,即它包含段地址和便移地址两部分。

例:求若干个16位带符号数之和,,其和为32位数。

要求求和程序用汇编语言编写,而定义数据和及显示用C语言编写。

参考程序如下:

extern long asum(int*,int); int buf[5]=10000,-20000,30000,6000,0); main( ) { long x; x=asum(buf,5); printf(“x=%d ”,x) }

子程序—汇编源程序 fram struc regbp dw ? retaddr dw ? pointer dw ? count dw ? farm ends .model small .code public _asm ;声明为公用子程序

_asm proc push bp mov bp,sp push si push di cld mov si,[bp].pointer mov cx,[bp].count xor bx,bx mov di,bx c1:lodsw cwd add bx,ax adc di,dx loop c1 mov dx,di ;返回结果的高16位 mov ax,bx ;返回结果的低16位 pop di pop si pop bp ret _asum endp end 在C函数中声明asum是外部函数,并定义了若干个数组元素,然后调用汇编子程序asum求和,最后把结果显示在屏幕上。

在汇编程序中首先声明asum子程序是公用的,然后使用由堆栈传递的数组开始地址及元素个数,从数组中取出元素求和,返回的32位结果在DX:AX中。 ;求数组和

4. 汇编语言程序调用C函数

如同C语言程序调用汇编语言子程序一样,在汇编语言中调用C函数时也要按有关约定编程。

(1) 在汇编语言中,对所使用的C函数和变量名在其名字前均应加下划线。例如,调用一个C函数func(),则在汇编程序中应写作call_func. (2) 对调用的C函数用EXTERN伪指令加以说明。若函数为NEAR型,EXTERN语句可以放在代码段中,为FAR型,则要放在所有的段之外。

(3) 对汇编语句中使用的C函数变量用“EXTERN变量名:size”说明,其中,SIZE视数据类型而定。例如int 型为2。

(4) 参数传递有两种,一种是在C程序中定义变量,在汇编程序中把它说明成EXTERN型,另一种是采用堆栈传递,这时要注意压入堆栈的顺序。

4 MASM6.0汇编语言程序上机

汇编语言程序上机过程分为编辑、汇编、连接和调试4个步骤。

(1)编辑源程序

编辑源程序是利用文本编辑工具生成一个由汇编语言语句构成的文本文件,文件扩展名为.ASM,扩展名不能省略。

(2)汇编源程序

汇编语言源程序不能直接执行,必须转换为机器语言程序,这个过程叫汇编。最常用的汇编工具为MASM软件,它有很多版本,这里主要介绍MASM6.X。MASM6.X包含了许多文件,最常用的文件有:

ML.EXE

LINK.EXE CV.EXE 汇编程序 连接程序

调试程序Code View 1.汇编程序ML.EXE(Masm and Link)

ML可以自动调用LINK,实现对程序的汇编和连接。设源文件名为MYFILE.ASM,汇编的基本命令格式为:

ML/c MYFILE.ASM 其中,源文件的扩展名为.ASM。若程序无语法错误,则汇编后将生成MYFILE.OBJ文件。此外若不带参数/c,直接使用命令;

ML MYFILE.ASM 则ML将自动调用连接程序LINK进行连接,生成MYFILE.OBJ与MYFILE.EXE,这样就不需要单独使用LINK命令。

ML包含很多命令参数,使用命令/?可以列出ML允许的所有参数及其说明。ML命令格式如下:

ML[/〈选项〉]〈源文件列表〉[/LINK〈连接选项〉] 其中,方括号中的内容为可选项。ML后的参数是大小写敏感的。“/〈选项〉”是可选的一个或多个参数,每个参数均以“/”开头,参数之间以空格分开。〈源文件列表〉中多个文件以空格分开,要求给出完整的文件名。

ML允许的选项很多,常用的选项如下: /AT /c

生成.COM文件 只汇编,不连接

指定生成的可执行文件名 /Fe〈可执行文件名〉

/F1〈列表文件名〉 同名

/Fm〈映像文件名〉 文件同名

/Fo〈目标文件名〉 /I〈包含路径名〉

产生列表文件(.LST),缺省与源文件

产生映像文件(.MAP),缺省与源

指定生成的目标文件名 指定include文件的路径名

ML除了产生目标文件外,还可以根据需要生成一些其它文件,如列表文件(.LST)和映像文件(.MAP)。例如,下列命令

ML/F1/Fm myfile.asm 除了能生成myfile.obj与myfile.exe外,还能生成列表文件myfile.lst与映像文件myfile.map。 2.列表文件

列表文件是一个文本文件,其内容包括两部分。第一部分中从左到右依次列出数据或指令在段内的偏移地址,机器代码和源程序。若程序中有语法错误,则列出错误信息。第二部分列出了程序中定义的所有标识符的信息,比如段的名称、大小与长度,变量与标号的名称、类型与偏移地址等。 3.映像文件

映像文件是一个文本文件,主要列出每个段的内存分配,给出了每个段的起点、终点、长度、段名、类别以及程序执行的起始地址等。

4.8.3目标程序的运行和调试

经过汇编、连接后产生的.EXE可执行文件可在DOS状态下直接输入文件名运行该程序。

如果出现错误,可用动态调试程序DEBUG进行调试,找出错误后,再重复上述过程,直到程序正确为止。调试的方法包括单步执行、设置断点、连续执行、修改内存单元以及寄存器的值。 本章小结

不论是汇编语言还是高级语言,程序设计的过程大致是相同的。一般都要经过问题分析、算法确定、框图表达、源程序编写等步骤。编写汇编语言程序要严格遵循汇编语言程序的基本语法格式。伪指令是辅助汇编的命令,合理使用汇编语言的伪指令可以使程序简化,可读性强、执行速度快;简化的段定义伪指令使用指定的存储模式编程,给程序设计带来极大的方便;使用MASM6.X中的过程调用伪指令调用过程,极大地方便了过程或参数间的传递。宏可以把重复出现的一段程序定义为一条宏指令,这样,在源程序中就可以用一条宏指令代替所定义的程序段,在汇编时遇到宏指令,汇编程序就将其替换成相应的代码块。C语言与汇编语言混合编程较好地解决了微机对硬件直接控制和提供更快的控制速度问题。熟练掌握汇编语言的编程技术,掌握顺序、分支、循环和子程序的编程方法、掌握DOS系统功能调用和汇编语言与C语言的混合编程方法,才可以编写高质量的程序。

习题

求若干个16位带符号数之和,其和为32位数。

(要求求和程序用汇编语言编写,而定义数据及显示用C语言编写)。

主程序—C Extern

long

asum(int*,int);

{

} Int buf[5]={10000,-20000,30000,6000,0}; Main()

long x; x=asum(buf,5); printf(“x=%d ”,x) 子程序—汇编程序 PRAM REGBP STRUC DW ? ? ? ? RETADDR DW POINTER COUNT PRAM

DW DW ENDS .MODEL SMALL .CODE

;申明为公用子程序 PUBLIC _asum _asum PROC PUSH BP

C1:

_asum MOV BP,SP PUSH SI PUSH DI CLD MOV SI, [BP].POINTER MOV CX,[BP].COUNT XOR BX,BX MOV DI,BX LODSW

;求数组和

CWD ADD BX,AX ADC DI,DX LOOP C1 MOV DX,DI ;返回结果的高16位MOV AX,BX ;返回结果的低16位POP DI POP SI POP BP RET ENDP

END 在C函数中申明asum是外部函数,并定义了若干个 数组元素,然后调用汇编子程序求和,最后半结果显示在屏幕上。

通过该例应学会C的数组指针与汇编语言程序中数组首地址的对应关系。

习题

P258

8.1 , 8.4,

8.5

第五篇:中国旅游地理教案第10章

第八章 黄河中下游旅游区

第一节 河南省

一、概况

河南省简称豫,省会郑州。50万年前,河南已经有了人类的足迹,新石器时代出现了著名的仰韶文化。夏、商以此为生息地。唐朝时正式建河南道,到宋朝时候,河南开封(东京)不但是全国政治、经济、文化中心,也是世界上最繁华的都市之一,有国际都会之称。明朝改河南布政使司,清创河南省。

二、主要旅游区点

1、相国寺

清重建的相国寺规模远逊于唐宋,其格局基本保存至今,即在一条中轴线上,由南至北,依次建有碑楼、二殿(天王殿)、正殿(大雄宝殿)、八宝琉璃殿、藏经殿。寺前院东侧还建有钟楼。

2、殷墟

位于中国河南省安阳市境内的殷墟,是公元前14世纪至公元前11世纪世界青铜文明的重要代表。2006年7月13日,安阳殷墟获准作为世界文化遗产列入《世界遗产名录》。安阳殷墟是中国第一个有文字记载并经甲骨文及考古发掘证实的商代晚期都城遗址,以其重要的历史、文化、科学和艺术价值,成为人类文明进程中一个重要的里程碑。殷墟入选世界文化遗产,将更加有利于保护这一人类珍贵的历史文化遗产。

3、龙门石窟

龙门石窟在雕刻艺术史上占有非常主要的位置,巨大的造像是东方雕塑的典型。特别是石窟中的飞天,或在流云中自由翱翔,或手捧圣果凌空飞舞,或奏乐高歌,或布撒花雨,姿态轻盈,神情优雅,令人叹为观止。在龙门石窟的题记碑刻中,著名的龙门二十品和唐代著名书法家诸遂良书写的《伊阙佛龛之碑》等,都是我国书法艺术的珍品。1961年国务院公布为第一批全国重点文物保护单位。

4、嵩阳书院

嵩阳书院是宋代四大书院之一,司马光、范仲淹、程颐、程颢等著名学者都曾来此讲过学,生徒多达数百人。现在书院的建筑多已破残,而院内两析参天古柏却成了珍贵的文物,分别命名的“大将军”、“二将军”。据说,当年汉武领群臣前来祭祀中岳,在这里看到一株柏树极为高大,便封为“大将军”。随后见到更大的一株,但因“大将军”已封过,只好封之为“二将军。”“大将军”树身歪斜,说是因被封为“大将军。”高兴得前仰后合,结果笑歪了身子。“二将军”树干开裂,说是受封后,非常生气,把肚子气破了。嵩岳寺塔建于北魏(520年),是我国现存最古老的一座多角形塔,15层,高40多米,塔形独特,呈十二角形,建筑极为精巧。嵩山的主峰峻极峰,海拔1492米,是游览嵩山的主景之一。峰上有清代乾隆皇帝题写的石碑:“一登绝顶众妙探”。宋代范仲淹有诗说:“不来峻极游,何能小天下。”

5、少林寺——禅宗祖庭

武德二年(619年),王世充在洛称帝,号“郑国”,派其侄王仁则扼守柏谷屯,改为州。武德四年四月廿七日(621年5月23日),少林寺上座善护、寺主志操、都维那惠、寺僧昙宗、普惠、明嵩、灵宪、普胜、智守、道广、智兴、僧满、僧丰等十三位僧人,在城内州司马赵孝宰等配合下,里应外合,夺取了州城,擒拿了王仁则,归顺了秦王李世民。秦王派王君廓占领了这个军事要塞州城。三天后,李世民派李安远持秦王教书,往少林寺宣慰。这就是传说的"少林寺十三棍僧救唐王"故事的来源。后来,秦王下令将柏谷屯田地四十顷、水碾一具,赐给少林寺。

6、仰韶文化遗址

1921年瑞典人安特生在位于渑池县城北9公里处的仰韶村发现这个遗址,总面积近30万平方米,文化层厚约2米,最厚达4米。1951年,中国科学院考古研究所对该遗址进行了小规模发掘,发现这里有四层文化层相叠压,自下而上是仰韶文化中期-仰韶文化晚期-龙山文化早期-龙山文化中期。

7、洛阳牡丹——洛阳牡丹甲天下

“洛阳地脉花最宜,牡丹尤为天下奇”。牡丹是中国传统名花,赏花是洛阳人民的古老习俗。唐代诗人白居易“花开花落二十日,一城之人皆若狂”和刘禹锡“唯有牡丹真国色,花开时节动京城”等脍炙人口的诗句,生动地描述了当时人们倾城观花的盛况。随着人民生活水平的日益提高和旅游事业的蓬勃发展,洛阳人种花、赏花的热情与日俱增。每年“谷雨”牡丹花开时节,中外游人蜂拥而至,为洛阳的对外开放创造了良好的契机。

三、特色旅游项目

1、主要土特产及风味美食 (1)名特产品:唐三彩、钧瓷 (2)风味美食

2、主要旅游节庆活动

洛阳牡丹节、国际黄河旅游节、安阳殷商文化节等。

第二节 山西省

一、概况

山西省位于华北平原以西,黄土高原的东部,与河北、河南、陕西、内蒙古等省区为邻。全省面积15万多平方千米,人口约3335.07万人。简称晋,省会太原市。

二、主要旅游景区

1、云冈石窟

云冈石窟雕刻在我国三大石窟中以造像气魄雄伟、内容丰富多彩见称。最小的佛像2公分。最大的高17米,多为神态各异的宗教人物形象。石窟有形制多样的仿木构建筑物,有主题突出的佛传浮雕,有精雕细刻的装饰纹样,还有栩栩如生的乐舞雕刻,生动活泼,琳琅满目。其雕刻艺术继承并发展了秦汉雕刻艺术传统,吸收和融合了佛教艺术的精华,具有独特的艺术风格。对后来隋唐艺术的发展产生了深远的影响,在我国艺术史上占有重要地位,也是中国与亚洲国家友好往来、文化交流的历史见证。

2、恒山(五岳:东西南北中,泰华衡恒嵩) 恒山的第一奇观——悬空寺。

悬空寺据说是北魏一位叫了然的和尚所建,距今1400多年的历史。全国重点文物保持单位,是国内仅存的佛、道、儒三教合一的独特寺庙。悬空寺始建于1400多年前的北魏王朝后期,历代都对悬空寺作过修缮,目前看到的主要是明清时期的建筑。

3、五台山

四大佛教名山之一,位于山西省五台县东北部,为文殊菩萨道场。

五台山的朝拜分为大朝台和小朝台,拜过五个台顶文殊菩萨的叫大朝台。在台怀镇黛螺顶上有一个五方文殊殿,殿中供奉着与五个台顶相同的五尊文殊菩萨像,只在这里朝拜文殊菩萨的叫小朝台。

4、晋祠

晋祠,初名唐叔虞祠,是为纪念晋国开国诸侯唐叔虞而建。它的历史可追溯到公元前11世纪的西周时期,周武王灭殷7年以后,因病去世。他的长子诵继位,是为成王,因成王年幼,便由其叔父旦代行天子的职权,史称“周公摄政”。 晋祠在太原市区西南25公里处,是全国重点文物保护单位之一。始建于北魏,曾是西周武王次子、晋国开国君主姬虞的祠堂。 晋祠历史非常悠久。相传,西周初年成王姬诵封其胞弟虞为古代国开国诸候,虞施政有方,国富民强。为祭祀他,虞后人在这里建祠堂,称“晋祠”。

5、黄河壶口瀑布

黄河壶口瀑布以排山倒海的壮观气势著称于世。滔滔黄河到此被两岸苍山挟持,束缚在狭窄的石谷中,300米余宽的洪流骤然收束为50米余,这时河水奔腾怒啸,山鸣谷应,形如巨壶沸腾,最后从20米余高的断层石崖飞泻直下,跌入30米余宽的石槽之中,听之如万马奔腾,视之如巨龙鼓浪,形成壶口大瀑布中的“雷首雨穴”、“万丈龙槽”、“彩桥通天”等种种奇观。

6、平遥古城

平遥县有平遥古城墙、双林寺、镇国寺等全国重点文物保护单位3个。目前,这个县城的城墙、街道、民居、店铺等建筑,基本上保持着原有的古城格局。

日升昌票号——在18世纪初,山西平遥、介休、祁县等县的商人,有许多在北京开各种商店,每年终给老家捎钱时,一般都由镖局押运,运费高又不安全。在北京西裕成颜料庄的雷履泰和一些商人商定,将钱交给北京的西裕成,再到平遥的西裕成取现金。起初只为一些亲戚朋友帮忙,也不收汇费和手续费,后来同乡们都觉得这种办法方便,请求拨兑的人越来越多,并同意出一些汇费。雷履泰感到这种生意油水大,就与东家李大全商议,并将西裕成改名日升昌,专营汇兑业务。清朝末年,山西的票号增加到33家,平遥的票号就有22家,在全国各地的票号发展到四百多家,平遥在当时全国的金融市场上起着非常重要的作用。当时平遥较大的票号还有百川通等。

7、尧庙和尧陵

尧为史前传说人物。传说我国原始社会晚期,在平阳(今临汾)西南有一个名叫“陶唐氏”部落,领袖叫尧,又称唐尧。唐尧向以勤劳、节俭、让贤和爱护人民而流芳菲后世。传说,当时天下有10个太阳,树木和庄稼都被晒枯了,群众无以为生,濒于绝境。尧王派神箭手后羿射下9个太阳,又带领群众凿江取水,地上的植物才又茁壮地生长起来,据说尧的儿子叫丹朱,傲慢残忍,荒淫无度,尧王对他非常捻。当尧年纪大的时候,有人要丹朱当继承人,被尧果断的否决了。尧走访“四岳”(传说中四方部落的首领),接受大家的推举,选虞舜为自己的继承人。经过3年的考察,证明虞舜能胜任,尧便把王位让给舜。这就是历史上传为美谈的。

三、特色旅游项目

1、主要土特产及风味美食

(1)名特产品:汾酒、竹叶青酒、清徐老陈醋。 (2)风味美食:太原豆腐脑、刀削面、拉面、平遥牛肉。

2、主要旅游节庆活动

平遥古城文化节、中国山西面食节。

第三节 陕西省

一、概况

陕西是中华民族和中华文化的主要发祥地。自周开始又有秦、西汉、西晋、前赵、前秦、后秦、西魏、北周、隋、唐等13个王朝在陕西建都,时间长达1180年。此外,还有刘玄、赤眉、黄巢、李自成4个农民起义在此建立政权计11年,赫连夏在定边、长安建都24年。是中国历史上建都时间最长的省份。

二、主要旅游景区

1、华山

西岳华山是我国著名的五大山岳之一,位于华阴市城南,海拨2200 米,北瞰黄河,南依秦岭,“远而望之若花状”(《水经注》),故有其名。又因其西临少华山,古称太华山。为国家级风景名胜区。这里有誉为关中八景之一的"华岳仙掌"。

华山以奇险峻秀而驰名天下,自山麓至绝顶,名胜古迹极多,庙宇道观,亭台楼阁,雕塑石刻随处可见,险径奇石,鬼斧神工,更有云海劲松,引人入胜。山顶有朝阳(东峰)、落雁(南峰)、莲花(西峰)三峰,皆岿然笔立,直插云霄。三峰之下,有云台(北峰)、玉女(中峰)诸峰环侍拱卫,各具特色,显得山势雄伟,峰峦叠翠耸削。北峰,亦称云台峰,是总辖四峰的冲要处所,山势峥嵘,三面悬绝,只有一岭南通,故险要异常。

2、秦始皇陵及兵马俑

秦始皇陵位于距西安市30多千米的临潼县城以东的骊山脚下。据史书记载:秦始皇嬴政从13岁即位时就开始营建陵园,由亟相李斯主持规划设计,大将章邯监工,修筑时间长达38年,工程之浩大、气魄之宏伟,创历代封建统治者奢侈厚葬之先例。秦始皇陵土陵冢高43米,底边周长1700余米,筑有内外两重夯土城垣,象征都城的皇城和宫城。内城略呈方形,周长3890米,除北面开两门外,其余三面各开一门。外城为长方形,周长6294米,四面各开一门。陵冢位置在陵园南部。

秦始皇兵马俑坑是秦始皇陵的陪葬坑,位于陵园东侧l 500米处。陪葬坑坐西向东,三坑呈品字形排列。最早发现的是一号俑坑,呈长方形,东西长230米,南北宽62米,深约5米,总面积14260平方米,四面有斜坡门道,左右两侧又各有一个兵马俑坑,现称二号坑和三号坑。在一号坑中已发掘出武士捅500余件,战车6乘,驾车马24匹,还有青铜剑、吴钩、矛、箭、弩机、铜戟等实战用的青铜兵器和铁器。俑坑东端有210个与人等高的陶武士俑,面部神态、服式、发型各不相同,个个栩栩如生,形态逼真,排成三列横队,每列70人,其中除3个领队身着销甲外,其余均穿短褐,腿扎裹腿,线履系带,免盔束发,挽弓挎箭,手执弩机,似待命出发的前锋部队。其后,是6000个铠甲俑组成的主体部队,个个手执3米左右长矛、戈、戟等长兵器,同35乘驷马战车间隔在11条东西向的过洞里,排成38路纵队。南北两侧和两端,各有一列武士俑,似为卫队,以防侧尾受袭。这支队伍阵容齐整,装备完备,威风凛凛,气壮山河,是秦始皇当年浩荡大军的艺术再现,具有强烈的艺术感染力。

3、骊山及华清池

华清池位于西安城东30公里处的临潼区内,南依骊山,北临渭水,内有自然造化的天然温泉。历史文献及考古发掘的资料证明,华清池具有6000年温泉利用史和3000年的皇家园林建筑史。

三千年前的西周,周幽王在此修有“骊宫”,周以后经历了秦始皇的“骊山汤”、汉武帝的“汉离宫”、唐太宗的“汤泉宫”、唐高宗的“温泉宫”,到了唐代第七位皇帝唐玄宗李隆基时期,在以前宫殿的基础上大兴土木,依骊山的山势而筑,制汤井为池,环山列宫殿,官周筑罗城,修有登山的夹道和通往长安的复道,把这里同长安的“大明宫”、“兴庆宫”连为一体。宫内的建筑格局以骊山第三峰和温泉总源为中轴线,以温泉为中心向四面辐射展开,既合理地利用了温泉,又体现了宫内严谨的布局,内置百官衙署及公卿府第。

4、大雁塔

位于西安市南部的慈恩寺内。慈恩寺是唐贞观二十二年(公元648年),太子李治为纪念亡母文德皇后以报答养育之恩而修建,故名“慈恩寺”。唐永徽三年(652年),玄奘在寺内西院建塔,名慈恩寺塔,用以存放从印度带回来的经籍。现在的塔名是据《慈恩寺三藏法师传》中记载:摩揭陀国有一僧寺,一日有一只大雁离群落羽,摔死在地上。僧众认为这只大雁是菩萨的化身,决定为大雁建造一座塔,因而又名雁塔,也称大雁塔。

5、皇帝陵

黄帝陵是陕北观光线路中主要的景点,是中华民族的始祖轩辕黄帝的陵墓,被称为中国第一陵,在黄陵县城北1公里的桥山之巅,为全国重点文物保护单位,是朝圣旅游的胜地。黄帝陵地处桥山,沮水环绕,群山环抱,古柏参天,四季青翠,环境幽雅。山下有大路可通山顶直至陵前。黄帝陵位于山顶正中,陵冢高3.6米,周长48米。陵前数十米处有一高台。相传汉武帝征朔方还,在这里祭黄帝,筑台祈山,故称“汉武仙台”。 黄帝庙呈四方形,庙门朝南,气势雄伟,门额上大书“轩辕庙”三字。

6、延安宝塔

延安宝塔:在陕西延安市的东侧延河岸边土山上,因塔建于山顶,故山名为宝塔山。塔建于明代,清代曾多次修缮,故外檐全为清代风格。塔高44米,八角形,旁有明崇祯年间造铁钟一口,1937年7月1日后,党中央进驻延安,宝塔便成了延安革命圣地的象征。

7、王家坪革命旧址 王家坪革命旧址在延安城西北4公里处。1937年1月至1947年3月,是中共中央革命军事委员会和八路军(后改为中国人民解放军)总司令部所在地。军委和总部在这里领导八路军、新四军及各解放区军民坚持了八年抗战,取得了抗日战争的胜利,领导中国人民解放军粉碎了国民党军队对解放区的"全面进攻",并为战胜其“重点进攻”作了充分准备。1946年1月,中央军委主席毛泽东为了便于指导军委和总部的工作,从枣园搬到王家坪居住。这里有军委大礼堂旧址、军委作战研究室旧址、朱德旧居、彭德怀旧居、叶剑英旧居、王稼祥旧居等。1968年开始在王家坪革命旧址西边建延安革命纪念馆新馆(纪念原址在凤凰山麓)1973年正式对外开放,陈列展出大量革命文物。

三、特色旅游项目

1、主要土特产及风味美食 (1)名特产品 安塞腰鼓

安塞腰鼓是一种独特的民间大型舞蹈艺术形式,具有2000年以上的历史。独具魅力的安塞腰鼓象掀起在黄土地上的狂飚,展示出西北黄土高原农民朴素而豪放的性格,张扬出独特的艺术个性。 安塞剪纸

安塞剪纸是陕北劳动妇女创造美的一个典范形式。最初用来装饰美化生活的"窖洞剪纸",被一代又一代的劳动妇女传承下来,形成古朴生动、强烈自由的风格,反映出陕北劳动妇女淳朴的思想感情和对生活的热爱。安塞剪纸形式多样,内容十分丰富,花鸟鱼虫瓜果蔬菜,家畜走兽,人物树木,大自然中的一切美无不包罗,直接反映出的是劳动生活。 陕西凤翔彩绘泥塑

陕西凤翔彩绘泥塑是有着数千年历史的传统民间手工艺美术品,是民间艺人手工制作,以创作毛稿制模、翻坯、粘合成型,经精抛、彩绘、勾线、装色、上光等数十道工序精制而成。其形态逼真、粗犷夸张、简练概括、色彩大红大绿或素描。其种类主要是座虎、挂虎、五毒、卧牛、十二属相、豆豆鼓、金瓜、吉虎、鹿羔、鹦鹉等玩具类,八仙、三国、西游记等神话民俗类。

(2)风味美食:羊肉泡馍、饺子宴、灌汤包。

2、主要旅游节庆活动 西安古文化节

第四节 山东省

一、概况

山东省的地势,中部为山地,东部和南部为低缓的丘陵区,北部和西北部为平坦的黄河冲积平原,属华北大平原的一部分。山东的地形以平原和丘陵为主,约占全省总面积的2/3。山东河湖众多、黄河贯穿境内,从东营市垦利县注入渤海,并且形成了黄河人海的奇观。著名的京杭大运河从台儿庄进入山东境内、穿过鲁西平原,由德州出境到河北。山东的湖泊主要有南四湖和东平湖,南四湖是华北平原上最大的淡水湖,由微山、昭阳、独山、南阳四个相连的湖泊组成,因位于东平湖之南,故俗称“南四湖”。四湖中以微山湖最大,所以南四湖通常又称为微山湖,面积1375km,是我国十大淡水湖之—。

二、主要旅游区点

1、泰山与岱庙

泰山位于山东省中部、主峰玉皇顶位于泰安市境内,海拔1545m,为山东最高峰。

古代帝王讲究自己“受命于天”,封禅是帝王与天的沟通方式,所谓“封”就是在接近天的泰山最高处,用土筑成圆形祭坛祭天,所谓“禅”就是在泰山前的小山筑成方坛祭地。泰山的封禅最早起于炎黄时代。历史上,秦始皇赢政、秦二世胡亥、汉武帝刘彻、汉光武帝刘秀、隋文帝杨坚、唐高宗李治、唐玄宗李隆基、宋真宗赵恒、清康熙玄烨和清乾隆弘历等等多位皇帝先后来泰山封禅和祭祀,其中乾隆皇帝曾经十次祭祀泰山。

2、趵突泉

趵突泉、大明湖、千佛山被称为是济南三大名胜。清乾隆皇帝曾在此题写“激湍”二字,并封趵突泉为“天下第一泉”。

3、曲阜三孔——孔林、孔庙、孔府

孔林是孔于及其家族的墓地,占地3000余亩。孔林里有古树数万株,茂密参天,固然可以称之为林,但实际上所谓“孔林”应是对孔子坟墓的专用称谓,因为在我国封建时代等级森严,不同身分地位的人其坟墓的称谓是有严格规定的,如帝王坟墓称为“陵”、王候将相坟墓称为“冢”,平民百姓坟墓称力“坟”等,只有圣人坟墓才可以称“林”。孔子的墓在孔林中央,墓东为其子孔鲤墓,墓南为其孙伋墓。据说这种墓穴布局,惜称“携子抱孙”。墓前各有碑石。

4、蓬莱阁

5、崂山

6、刘公岛

三、特色旅游项目 (1)主要土特产及风味美食

1)名特产品:烟台苹果、青岛啤酒、烟台红葡萄酒、金奖白兰地、淄博陶瓷

2)风味美食:糖醋黄河鲤鱼、油爆双脆、绿豆糕等 (2)主要旅游节庆活动

青岛啤酒节、中国曲阜国际孔子文化节、中国泰山国际登山节、山东潍坊国际风筝节、菏泽牡丹花会等。

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【c语言第10章教案标准】相关文章:

c语言教案第10章07-31

c语言第一章概述06-21

c语言第五章实验报告04-24

c电子教案第5章04-15

c程序教案第9章06-20

第10章文件习题06-20

第10章习题答案06-20

基础第10章习题06-20

c语言第十章指针04-22

第10章习题分析与解答04-21

上一篇:读颜氏家训有感300字下一篇:读书笔记500字大全集

本站热搜