首页 > 精品范文库 > 4号文库
实验0C语言基础知识
编辑:落花无言 识别码:13-1098723 4号文库 发布时间: 2024-08-10 17:27:02 来源:网络

第一篇:实验0C语言基础知识

实验0C语言基础知识(复习)

1实验目的(1)熟练掌握C语言的基础知识。

2实验内容及要求(二选一)

(一)检验并打印魔方矩阵

在下面的5×5魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后,检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。24 1 8 155 7 14 166 13 20 2212 19 21 318 25 2 9

(二)学生成绩统计

从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:

(1)统计不及格人数并打印不及格学生名单;

(2)统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单;

(3)统计各分数段的学生人数及所占的百分比。

3实验要求

按要求编写实验程序,将实验程序上机调试运行。

注意:程序调试正确后要进行演示检查并以附件形式(文件打包后压缩成文件名是“学号+实验0.rar”)提交到yuan_sjjg@126.com

第二篇:语言基础知识

语言文字运用练习题

1.下面语段中加点的词语,使用恰当的一项是()

近日网上流传着香港的一份要求填上“草菅人命”形容警方才能得分的中文科测验卷。该试卷一旦流传,就引发了各方的议论,各种言论甚嚣尘上。在一般人眼中,这份试题的引导性是不言而喻的,资深中文科教师张月卿就直言,该试卷有很强的既定立场,而且立场失之偏激。但也有教师反问:“假如试卷是要求学生赞扬警方、贬低示威者,大家又会否同意呢?”“占中”引发的问题仍在持续发酵。A.一旦 B.甚嚣尘上 C.不言而喻 D.偏激 2.下列句子中,没有语病的一句是()

A.国际法庭因认定日本在南极海的“调查捕鲸”实质为“商业捕鲸”,判定其违反了国际公约,于3月31日颁布判决书,下令禁止日本船只在南极海停止以任何名义捕鲸。

B.近日,朱彦夫被中宣部评为全国首位“时代楷模”,但朱彦夫的先进事迹对于许多人了解得还远远不够。

C.湖南卫视明星亲子互动节目“爸爸去哪儿”自开播以来,众多粉丝除了关注五对父子的一举一动,也为节目组设置任务出谋划策。

D.毒品流向分散是我市毒品犯罪的一大特点。既有大量毒品从境外及外省市流入广州,又有相当数量的毒品从广州流向内地甚至境外。在市内,毒品犯罪呈现出从中心区域流向周边区域的特征。

阅读下面的文段,完成4~6题。

①,烟台大学7位保洁员吃学生剩饭的照片蹿红网络。这些老人 ② 食用学生的剩菜剩饭,只是为了向莘莘学子传递“节俭是一种习惯”的理念。

其实,我们 ③ 是一个崇俭抑奢的民族。《左传》有言:“俭,德之共也;侈,恶之大也。”李商隐《咏史》诗曰:“历览前贤国与家,成由节俭败由奢。”然而,不知从何时起,奢靡之风逐渐抬头,浪费现象悄然流行。一些人以为宁剩毋缺才够档次,以为一饭千金才算有面子,于是个人消费竞相攀比、④ 奢华。太史公高呼:“一饱之需,何必八珍九鼎?七尺之躯,安用千门万户?”司马光也谆谆告诫:“取之有度,用之有节,则常足。”

中国是一个人口大国,如果人人厉行节约,13亿人积腋成裘、聚沙成塔,那将是多么巨大的财富?相反,浪费起来,又将是多么巨大的损失? 4.文中加点字的注音和画线词语的字形全都正确的一项是 A.蹿(cuàn)红 奢靡(mí)宁(nínɡ)剩毋缺 一饱之需 B.蹿(cuàn)红 奢靡(mǐ)宁(nínɡ)剩毋缺 八珍九鼎 C.蹿(cuān)红 奢靡(mí)宁(nìnɡ)剩毋缺 厉行节约 D.蹿(cuān)红 奢靡(mǐ)宁(nìnɡ)剩毋缺 积腋成裘 5.文中①②③④处依次填入词语,恰当的一项是 A.①日前 ②自愿 ③一直 ④追逐

10.下列各句中,没有语病的一项是

A.我们是有过《诗经》的民族,我们是有过诗意表达的民族。我们需要诗歌,需要意义,我们需要生活;我们不光需要面包,还需要玫瑰。

B.南浔区从人民大会堂捧回了联合国教科文组织非物质文化遗产名录项目证书,标志着南浔古老的蚕桑习俗文化正式跻身世界级文化殿堂。

C.教育在综合国力的形成中处于基础地位,国力的强弱越来越多地取决于劳动者素质的提高,取决于各类人才培养的质量与数量。

D.为了避免广大教师在我省高中第一轮课程改革实验过程中不会无头绪、无目标,市教育局组织人员搜集、整理了大量的可供借鉴的案例。

11.下列各句中,加点的词语运用正确的一项是

A.当它们形成了向日葵群体之时,便互相手拉着手,一齐勇敢地抬起头来了。这时你会发现那偌大一片向日葵林子,竟然没有一株瘦弱或是低矮的向日葵。B.《平凡的世界》的热播,令部分观众直呼“触动泪点”,不仅是因为剧中那不可磨灭的各种美好情感和奋斗精神,更是因为剧作中有一段与自己早年经历相似的历史。

C.小说忌讳主题鲜明,作家在作品中往往用自己独特的生活经验和个性的艺术手法隐讳地表达自己的思想情感,但又不是让我们读者欣赏时雾里看花,水中望月。D.屋外的天空一扫连日的阴雨绵绵,久 违的阳光,让连日来裹在雨衣中的杭城市民蠢蠢欲动,纷纷晒出了自己心仪的赏花骑游图。

12.下列各句中,没有语病的一项是

A.被誉为工业设计界的“诺贝尔奖”的金圆规奖于202_年首次迈向国际,对于一位工业设计师而言,拿到“金圆规奖”是其设计生涯的最高奖项。

B.对那场战争、对那段历史能否始终保持正确的认识,是改善和发展中日关系的关键所在,也是中日经贸关系良好发展的重要条件。

C.法律专家认为,“海淘”虽然属于买卖双方私事,但跨境消费的特殊性决定了消费者仅凭个人之力难以有效维权,需要政府和监管部门出面予以法律支持和保护。

D.“抢红包”已成为今年春节的新现象,亲朋好友以这种最新的方式互赠红包,其真正价值在于它所承载的美好希望,年味则在这种愿景的催化下愈发浓郁。

13.下列各句中,没有语病的一句是()(3分)A.美国东部时间202_年4月12日下午近三时左右,前美国国务卿希拉里竞选总干事向支持者发布邮件,公布希拉里将角逐民主党总统候选人的消息。

B.湖南隆平种业有限公司生产销售“两优0293”水稻品种,去年在安徽致使至少万亩农田减产绝收,农民损失巨大。专家鉴定为天气原因引发的稻瘟病所致。

C.去年5月,广东省国家安全机关破获的一起境外间谍网络策反中国人的案件显示,计算机网络泄密事件已占泄密总数的70%以上,计算机网络泄密已经严重危及国家安全。

D.细数当下的热门投资移民国家,英国投资移民在美国、加拿大、德国等国家中,成为了最受中国富人家庭的中小学生欢迎的海外留学目的地。

阅读下面文字,回答:

散文是文学殿堂中一种影响广泛、()受读者()睐的文体。古今中外的文学大师们,以其洞幽入微的观察力、超脱尘世的秉性、细腻激扬的情愫,凭借生花的妙笔,写下了无数 ①、()炙人口的散文名篇。散文 ②,不仅()歌自然,更穿透人生,解剖社会。但优秀的散文如漫天繁星,总会令人 ③,又唯恐落得沧海遗珠之憾。

14.下列汉字依次填入语段中括号内,字音字形全部正确的一组是 A.倍 青qīn 脍huì 呕 B.备 亲qīng 烩huì 呕 C.备 青qīng 脍kuài 讴 D.倍 亲qīn 烩kuài 讴 15.在上面语段横线处依次填入词语,最恰当的一组是

A.①斐然成章 ②字字珠玑 ③目不暇接 B.① 文采斐然 ②包罗万象 ③应接不暇 C.①文采斐然 ②五花八门 ③应接不暇 D.① 斐然成章 ②琳琅满目 ③目不暇接 16.下列各句中,没有语病的一项是

A.今年的春运大幕已经开启,而与往年不同的是,随着全国高铁网络基本形成,“高铁春运”悄然升温,不少旅客都选择乘坐高铁出门旅游或回家过年。

B.新丝绸之路经济带和海上丝绸之路等多边和双边项目的启动显示出,中国希望利用自身的经济和金融力量,扩大政治影响力和战略挑战。

C.湖南籍夫妇周作堂、蒙桂凤遭遇车祸,近亲属将其器官捐献,使6人重获新生,4人重见光明,这一善举延续的不仅是一个个家庭的希望和未来,更是一个个鲜活的生命。D.12月12日,湖南省靖州苗族侗族自治县举办首届“省际牛王争霸赛”,来自云南、广西、湖南、贵州等四省区的84头“牛魔王”轮番登场,上演了一场精彩的斗牛民俗大餐,吸引了湘黔桂周边近万名群众前来观战。

17.下列选项中的诗句填入《野望》一诗划横线处,顺序恰当的一项是 西山白雪三城戍,南浦清江万里桥。。。。

①不堪人事日萧条 ②唯将迟暮供多病 ③天涯涕泪一身遥 ④跨马出郊时极目 ⑤海内风尘诸弟隔 ⑥未有涓埃答圣朝 A.②⑥⑤③④① B.④①⑤⑥②③ C.⑤⑥②③④① D.⑤③②⑥④①

第三篇:C语言基础知识归纳

C语言基础知识

1.每个C程序有且只有一个主函数main(),且程序必须从main()函数开始执行,并在main()函数中结束。

2.在C语言中,用e来表示科学计数法时,规定在e的前面必须有数字,后面必须为整数。

3.用单引号括起来的一个字符常量只能存放一个字符;C语言中没有字符串变量,只能用字符数组来存储字符串。

4.外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。

5.在一个函数内的复合语句中定义的变量,只能在这个复合语句范围内有效。

6.用sizeof(int)计算int类型数据的字节数。

7.C语言运行时,首先系统检查语法的正误,再运行程序的语法;C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。

8.预处理命令行的位置没有规定,只是习惯放在前面;在源文件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。

9.feof函数的作用是检查文件是否结束,当结束时返回的值为非零,否则为零。

10.当定义了数组后,在给其赋值时,不能直接把字符串赋给数组名。

11.在赋值表达式中,赋值运算符“=”右侧不能为表达式;在求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。

12.静态局部变量,只有当程序结束后,其值才释放。

13.当调用函数时,实参是一个数组名,则向函数传送的是数组每一个元素的地址。

14.算法的特点为有零个或多个输入,有一个或多个输出,当相同的输入时,其结果相同;算法正确的程序最终一定会结束。15.在C语言中,预处理命令行都以“#”开头;当需要时才用#include;预处理的作用就是实现宏定义和条件编译。16.当数组元素的下标超出了定义的下标范围时,系统不给出“下标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。

17.共用体变量不能作为函数的参数,也不能使函数带回共用体变量。

18.指向函数的指针变量的定义形式为:数据类型(*指针变量)();,因此其为指向函数的指针变量。

19.用C语言编写的代码程序是源程序,只有通过编译、连接才能进行。

20.在说明为static时,其生存期得到延长,而其作用域并没有改

变,在定义后系统会自动帮它赋值为0,static为关键字不能被用作它用。

21.频繁地使用空语句会降低程序的可读性和运算速度。22.运算符%两边都应是整数,赋值语句左边应该是变量,而非表达式,强制转换语句强制类型应加括号。

23.在逻辑运算符中,其两侧的运算符对象为任意合法的表达式即可。

24.函数fread(&Iarray,2,16,fp)的功能是,从fp所指的数据文件中读取16次2字节的数据存储到数组Iarray中。25.整个流式文件也可以随机存取数据,C语言文件中有好多函数可以达到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。

26.使用putchar、getchat、puts、gets、printf、scanf函数时,必须在程序的开头出现包含头文件#include”stdio.h”的命令行,而使用字符串处理函数时,必须在程序的开头出现包含头文件#include”string.h”命令行,而使用数学函数时,必须在程序的开头出现包含头文件#include”math.h”的命令行。

27.一个斜杠与小于等于127任意数字按一个字符计算,一个斜杠与任意一个字符按一个字符计算。

28.一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法。

29.根据C语言规定,注释语句可以换行写,并且一个“/*”和

其后紧跟的第一个“*/”中间的部分是注释内容,且注释内容不参与程序的运行。例如:b=0;/*b=20;给b赋值*/ 则b=0。30.sizeof是求字节数的运算符,包括‘’,而strlen是求字符串的实际长度的函数,不包括‘’,以‘’作为结束。31.在函数声明时,其中的形参变量、个数、函数的类型必须一致。

32.C语言源程序经编译后生成后缀为.obj的目标程序;C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件;用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中。并不是源程序中的所有行都参加编译。在条件编译形式下,相关内容只在满足一定条件时才进行编译。

33.switch括号后的表达式可以使任何表达式;case后的表达式必须是常量表达式,常量表达式中不能出现变量,且类型必须是整数、字符型或枚举型。

34.C程序必须由一个或一个以上的函数组成;函数调用可以作为一个独立的语句存在;若函数有返回值,必须通过return语句返回。

35.在C语言中,数据只能从实参单向传递给形参,称为“按值”传递。【在实参传递到形参时,是数值传递,而不是地址传递,形参中值的改变不会影响实参中的值。】

36.可以用typedef声明新的类型名来代替已有的类型名,而不能

增加新的类型。

37.在没有限制输出宽度时,一般浮点数的小数位数是6位,不管输出格式是%f或lf%均如此。

38.C语言中,函数的隐含存储类别是无存储类别。

39.当实参传递到形参时,地址传递时形参的改变影响实参。40.串的长度指的是串中的字符的个数,且其字符个数可以为零。41.C语言中数据类型有整型、实型、字符型等,实行数据分为单精度型和双精度型两种。

42.整型数组只能一个一个地输入或输出,而在字符型数组中可以对字符串整体地输入与输出。

43.C语言中,文件型指针变量的定义形式为:FILE *文件型指针名。C语言中对二进制文件的访问速度比文本文件快;C语言中,随机文件以二进制代码形式存储数据;C语言中的文本文件以ASCII码形式存储数据。

44.因为#define是宏定义的标志,而不是C语句,而printf是输出函数,因此其是C语句。

45.在实参传递给形参时,地址传递时能够改变,而数值传递时则不变。

46.在scanf函数中,必须含有输入项,并且需含有与之一一对应的转换说明符,在scanf函数的格式字符前可以加入一个正整数指定输入数据的宽度,但不可以实数指定小数位的宽度,输入项是地址表达式。

47.switch语句使用注意事项:(1)switch语句与if语句不同,仅能判断一种关系:是否恒等;(2)switch语句中case子句的常量可以使整型常量、字符型常量、枚举型数据,或是整型常量表达式,不允许变量;(3)在同一个switch中,case子句的常量不能相同,在嵌套的switch语句中,不同层次的switch之间,可有相同的常量;(4)default子句可以省略。例如:default:printf(“En”);(5)case和default子句只能在switch语句中使用,且case和default只起标号作用,可出现在switch中的任何位置;(6)case和default子句后面的语句序列允许由多个可执行语句组成,且不必用“{}”括起来,也可以为空语句;(7)switch语句中可省略break语句,但省略后会改变流程。

48.break语句是限定转向语句,它使流程跳出所在的结构,把流程转向所在结构之后。continue语句被称为继续语句。该语句的功能是使本次循环提前结束,即跳过循环体中continue语句后面尚未执行的循环体语句,继续进行下一次循环的条件判别。

49.在C语言中,一个程序必须有一个main()函数,但是其文件就不一定,因为其可以通过链接来实现多个子函数放到这个主函数中,主函数的位置是不固定的,可以根据自己的爱好和习惯来使用,在C语言中任何函数都不能调用主函数,且与函数的位置有关。在C程序的函数中不能定义另一个函

数。

50.在用fprintf输入时,要将其转换为二进制数形式放到文件中。51.由C语言构成的指令序列称为C源程序,源程序文件的后缀为“.c”。而目标程序为“.obj”,可执行程序为“.exe”。52.在C语言中,合法的标识符可以由字母、数字和下划线组成,且第一个字符必须为字母或下划线。

53.C语言规定必须以main作为主函数名。程序要从main()函数开始执行,最后在main()函数中结束。54.赋值运算符左侧的操作数必须是一个变量。

55.在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。

56.在一个C语言源程序文件中所定义的全局变量,其作用域为:由具体定义位置和extern说明来决定范围。【全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止。当全局变量定义在后,引用它的函数在前时,应该在引用它的函数中用extern对此全局变量进行说明,以便通知编译程序该变量是一个已在外部定义了的全局变量,这时全局变量的作用域从extern说明处起,延伸到该函数末尾。】

57.C语言中,凡是以“#”号开头的行,都成为“编译预处理”。对C原程序进行编译前,由编译预处理程序对这些变异预处理命令进行处理。

58.typedef语句的作用仅仅是用“标识符”来表示已存在的“类型名”,并未产生新的数据类型。

59.共用体变量中的所有成员共享一段公共存储区,所有成员的首地址相同。在每一个时刻所有的成员中只有一个有效,即只有最后一个被赋值的成员有效,其余的成员无效。60.C语言中注释可以出现在任意位置;C语言一行内可以写多个语句,一个语句可以写在多行上;C语言编写的程序可以放在多个程序文件中。

61.标识符只能由数字、字母和下划线组成,并且只能以字母和下划线开头。

62.在用基本输出语句printf时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出,如果格式说明个数多余输出项个数,则对于多余的格式项输出不定制或0。

63.二维数组定义和初始化允许省略行下标,不允许省略列下标。64.预处理命令行是在系统对原程序进行编译之前进行处理的,不是在程序执行的过程中。

65.gets和getchar函数用于从标准输入设备终端读入字符串和字符,并非从磁盘文件读入。

66.动态变量和静态变量都是内存变量,而寄存器变量不保存在内存上,而是直接存储在CPU的寄存器中。变量的存储类别有自动、静态、寄存器、外部。

67.C语言的源程序是由函数构成的,其基本单位是函数,每一个函数完成相对独立的功能,其中至少包括一个主函数;C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上;C语言规定每个语句以分号结束。可随时添加注释,对程序没影响。

68.由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”。由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它只能接收和处理由0到1的代码构成的二进制指令和数据。所以计算机能识别的程序是“目标程序”。而计算机可以直接执行的是可执行程序,即后缀为.exe的程序。

69.C语言源程序不能表示二进制,她

在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、八进制、十六进制3种形式表示。

70.宏名没有大小写限制。宏定义可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。宏代换可以代替任何数据类型,不受数据类型的限制。函数影响运行时间,宏调用影响编译时间。

71.字符数组可以只存放普通字符,不存放字符串。此时该字符数组没有存放结束标志‘’。

72.文件由数据序列组成,可以构成二进制文件或文本文件。

第四篇:实验一 语言实验

微机原理与接口技术实验(1)

实验一 汇编语言程序上机过程 1 实验二 屏幕字符显示程序 3 实验三 音乐程序 5 实验四 键盘和窗口程序 7 实验五 活动图形显示程序 9 实验六 磁盘文件操作程序 12

实验

一、实验二必做,其余可以选做

实验一 汇编语言程序上机过程

实验目的:

1、掌握常用工具软件 PE,MASM和LINK的使用。

2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。

3、利用的 1号功能实现键盘输入的方法。

4、了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。程序: data segment message db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data ends stack segment para stack 'stack' db 50 dup(?)stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax mov dx,offset message mov ah,9 int 21h again: mov ah,1 int 21h cmp al,1bh je exit cmp al,61h jc nd cmp al,7ah ja nd and al,11011111b nd: mov dl,al mov ah,2 int 21h jmp again exit: mov ah,4ch int 21h code ends end start 实验步骤:

1、用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。

2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3、用TYPE命令显示1产生的.LST文件。

4、用LINK将.OBJ文件连接成可执行的.EXE文件。

5、在DOS状态下运行LINK产生的。EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。若未出现预期结果,用DEBUG检查程序。实验报告:

1、汇编,连接及调试时产生的错误,其原因及解决办法。

2、思考:

1)若在源程序中把INT 21H的'H'省去,会产生什么现象? 2)把 INT 21H 4CH号功能改为 INT 20H,行不行?

实验二 屏幕字符显示程序

实验目的:

通过实验掌握下列知识: 1、8086指令: JMP,ROR,XOR,HLT。

2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。

3、直接向视频RAM(VRAM)送ASCII码进行屏幕显示的方法。

4、IBM-PC机的ASCII码表及控制字符。

5、命令(。COM)文件及使用方法。

6、利用^Break退出程序的方法及局限性。实验内容及步骤:

一、利用INT 21 0AH号功能调用显示字符串。

1、用A命令在100H处键入下列程序: MOV AH, 9 MOV DX,110 INT 21 INT 20

2、用A命令在110H处键入下列字符串的ASCII码: DB 'This is a sample!$'

3、用N命令和W命令将此程序(包括数据区)存入文件名为AA。COM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。

4、用Q命令退出DEBUG。

5、在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。

二、利用INT 21H 2号功能显示字符:

1、用A命令在100H处键入下列程序: XOR DL,DL MOVCX,100 LOP:MOV AH,2 INT 21 INC DL PUSH CX MOV CX,8 DELY: PUSH CX MOV CX,0 J: LOOP J POP CX LOOP DELY POP CX LOOP LOP INT 20

2、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?

3、按CTRL+BREAK退出此程序,若一次不行可多做几次。

三、直接向VRAM送ASCII码显示字符

1、用A命令在100H处键入下列程序: MOV AX,B000 MOV DS,AX XOR AL,AL XOR BX,BX MOV CX,100 LOP: MOV [BX],AL INC BX INC AL PUSH CX MOV CX,8 DELY: PUSH CX MOV CX,0 J: LOOP J POP CX LOOP DELY POP CX LOOP LOP INT 20

2、用N命令和W命令将此程序存入BB.COM文件中。(一定要先存入!)

3、用G命令运行此程序,仔细观察每一个ASCII码显示结果,并和字符表及上一道程序运行情况进行对照,其控制字符区(07-0DH)显示结果和INT 21H2号功能调用有何不同? 四。自编一个程序,要求显示AX的内容,即能显示AX=xxxx。

调试时AX的内容可用R命令赋值,也可用MOV指令赋值。实验报告要求:

1、各项实验记录及观察体会。

2、利用INT 21H显示和直接向VRAM送ASCII码显示方法在显示结果上有什么不同?

3、自编程序草稿及调试结果。

实验三 音乐程序

实验目的:

1、掌握PC机发音原理及音乐程序编制方法。2、8086指令: IN,OUT,DIV,OR 实验内容:

一、发音程序。

1、用DEBUG输入下列程序: MOV DX,4000H IN AL,61H AND AL,FCH LOP: XOR AL,02H OUT 61H,AL MOV CX,0140H DEY: LOOP LOP DEC DX JNE LOP INT 21H INT 20H

2、在DEBUG下运行此程序,改变延时时间常数,注意声音高低变化。

二、音乐程序。

1、输入,汇编,连接并运行下列程序: stacksg segment para stack dw 32 dup(?)stacksg ends datasg segment tiger db 0ah,0dh,'two tiger。$' tig_freq dw 2 dup(262,294,330,262)dw 2 dup(330,349,392)dw 2 dup(392,440,392,349,330,262)dw 2 dup(294,196,262),0ffffh tig_time dw 10 dup(25),50,25,25,50 dw 2 dup(12,12,12,12,25,25)dw 2 dup(25,25,50)datasg ends codesg segment assume cs:codesg,ds:datasg,ss:stacksg start: mov ax,datasg mov ds,ax lea dx,tiger mov ah,9 int 21h lea si,tig_freq lea bp,ds:tig_time call play mov ah,4ch int 21h play proc freq: mov di,[si] cmp di,0ffffh je end_ply mov bx,ds:[bp] call sound add si,2 add bp,2 jmp freq end_ply: ret play endp sound proc mov al,0b6h out 43h,al mov dx,14h mov ax,4f38h p di out 42h,al mov al,ah out 42h,al in al,61h mov ah,al or al,3 out 61h,al wait: mov cx,5000 spkr_on: loop spkr_on dec bx jnz wait mov al,ah out 61h,al ret sound endp codesg ends end start

2、修改程序,使它能演奏一首你所喜爱的歌曲。

3、若歌曲中有休止符,怎么办? 实验报告:

1、实验记录和体会。

2、自编程序。

实验四 键盘和窗口程序

实验目的:

1、掌握利用INT 16H 2号功能调用实行键盘输入的方法。

2、熟悉键盘的扫描码和ASCII码的关系。

3、掌握利用INT 10H功能调用实现窗口功能的方法。实验内容:

一、键盘输入程序

1、程序: PRO_NAM AGAIN: BINIHEX ROTATE: PRINT: SEGMENT ASSUME CS:PRO_NAM ORG 100H MOV AH,0 INT 16H MOV BX,AX CALL BINIHEX MOV AH,2 MOV dl,20h INT 21H MOV DL,BL MOV AH,2 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H JMP AGAIN INT 20H PROC NEAR MOV CH,4 MOV CL,4 ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINT ADD AL,7 MOV DL,AL MOV AH,2 INT 21H DEC CH JNZ ROTATE RET BINIHEX ENDP PRO_NAM ENDS END AGAIN

2、输入,汇编,连接此程序,并将它转变成。COM文件。

3、运行此程序,观察并记录各个键的扫描码,ASCII码及对应字符。

二、窗口程序:

1、程序: code segment assume cs:code,ss:code org 100h start: mov ax,600h mov cx,0 mov dx,184fh mov bh,7 int 10h pos: mov ah,2 mov dx,101eh mov bh,0 int 10h mov cx,20 get: mov ah,1 int 21h cmp al,1bh jz exit loop get mov ax,601h mov cx,81eh mov dx,1031h mov bh,7 int 10h jmp pos exit: int 20h code ends end start

2、将此程序输入并转变成。COM文件。

3、运行此程序,观察按不同键所产生的效果。

4、此程序所产生的窗口效果有何缺陷?试修改之。实验报告:

1、实验记录。

2、自编程序。

实验五 活动图形显示程序

实验目的:

1、掌握利用INT 10H实现活动图形的方法。

2、INT 10H 的 2号,6号,0AH号功能。实验内容:

参考下列程序自编一活动的复合图形显示程序。程序一 活动字符图形显示程序: stack segment stack db 256 dup(0)stack ends code segment assumecs: code,ss:stack move: mov cx,0 mov dx,184fh mov bh,7 mov ax,0618h int 10h mov dx,0 mov cx,1 mov bh,0 rept: mov ah,2 int 10h mov ah,10 mov al,0fh int 10h call dely mov al,20h mov ah,10 int 10h inc dh inc dl inc dl cmp dh,25 jne rept mov ah,4ch int 21h dely proc push cx push dx mov cx,5 lop: mov dx,0 lop1: dec dx jne lop1 loop lop pop dx pop cx ret dely endp code ends end move 程序二静止复合图形显示程序: stack segment stack db 256 dup(0)stack ends data segment chrtab dw 7 db 0dbh,0,0,0dbh,0,1 db 0dbh,0,1,52h,0,1 db 1,-1,-1,9,2,0 db 9,0,-2 data ends code segment assume cs:code,ss:stack,ds:data start: mov ax,data mov ds,ax mov cx,0 mov dx,184fh mov bh,7 mov ax,0618h int 10h lea di,chrtab mov cx,[di] mov dx,400h add di,2 next: add dh,[di+1] add dl,[di+2] mov ah,2 mov bh,0 int 10h push cx mov cx,1 mov ah,10 mov al,[di] int 10h pop cx add di,3 loop next mov ah,4ch int 21h code ends end start 实验报告:

1、自编程序。

2、调试中产生的问题。

实验六 磁盘文件操作程序

实验目的:

1、掌握利用FCB进行磁盘文件读写的方法。

2、掌握利用HANDLE进行磁盘文件读写的方法。

3、INT 21H 0FH,10H,14H,15H,16H,1AH号功能调用。

4、INT 21H 3CH,3DH,3FH,40H号功能调用。实验内容:

一、文本文件内容显示程序: stack segment stack db 100h dup(?)stack ends data segment fcb db 36 dup(0)count db 0 char db 0 dta db 0 errmsg db 'file access error' data ends code segment main proc far assume cs:code,ss:stack start: push ds sub ax,ax push ax mov ax,data mov es,ax assume es:data mov si,5ch mov di,offset fcb mov cx,12 cld rep movsb mov ds,ax assume ds:data mov dx,offset dta mov ah,1ah int 21h mov dx,offset fcb mov ah,0fh int 21h cmp al,0 jnz error mov word ptr fcb+0ch,0 mov word ptr fcb+0eh,1 again: tab: eof: error: display disp1: mov fcb+20h,0 lea dx,fcb mov ah,14h int 21h cmp al,0 jnz error mov al,dta cmp al,1ah jz eof cmp al,9 jz tab call dispchar inc char cmp dta,0ah jnz again mov char,0 inc count cmp count,24 jnz again mov ah,0 int 16h mov count,0 jmp again mov al,' ' call dispchar inc char test char,7 jz again jmp tab lea dx,fcb mov ah,10h int 21h ret lea bx,errmsg call display ret proc mov cx,30 mov al,[bx] call dispchar inc bx loop disp1 mov al,0dh call dispchar mov al,0ah call dispchar ret display endp dispchar proc push bx mov bx,0 mov ah,14 int 10h pop bx ret dispchar endp main endp code ends end start

1、输入,汇编,连接此程序,用DEBUG将目的程序带参数调入,用D命令观看并记录 PSP中的FCB内容。

2、运行此程序。

二、磁盘文件拷贝程序(参考): stack segment stack db 100h dup(9)stack ends;data segment sfile db 64 db ? db 64 dup(' ')dfile db 64 db ? db 64 dup(' ')ask1 db 0ah,0dh,'please input source' db 'file name:','$' ask2 db 0ah,0dh,'please input destnation' db 'file name:','$' note db 0ah,0dh,'please insert diskettes' db 'and strike any when ready ','$' er1 db 0ah,0dh,'create error $' er2 db 0ah,0dh,'open error$' er3 db 0ah,0dh,'read error$' er4 db 0ah,0dh,'write error$' er5 db 0ah,0dh,'close source file error' er6 db 0ah,0dh,'close dest file error' bufr dw ? data ends code segment assume cs:code,ds:data,ss:stack start proc push sub push mov mov mov lea call lea far ds ax,ax ax ax,data ds,ax es,ax dx,ask1 disp dx,sfile call mov xor mov mov lea call lea call mov xor mov mov lea call mov int call ret start endp disp proc mov int ret disp endp inpt proc mov int ret inpt endp copy proc mov lea mov int inpt cl,sfile+1 ch,ch si,cx [si+sfile+2],0 dx,ask2 disp dx,dfile inpt cl,dfile+1 ch,ch si,cx [si+dfile+2],0 dx,note disp ah,7 21h copy ah,9 21h ah,0ah 21h ah,3ch dx,dfile+2 cx,20h 21h lea mov jc mov mov mov lea int lea mov jc r_w: mov mov lea int lea jc or je mov lea xchg int lea jc xchg jmp exit: mov int lea jc xchg mov int lea jc ret err: mov int xchg mov int call ret copy endp dx,er1 bx,ax err bufr,ax ah,3dh al,0 dx,sfile+2 21h dx,er2 bx,ax err cx,10h ah,3fh dx,sfile+2 21h dx,er3 err ax,ax exit ah,40h dx,sfile+2 bufr,bx 21h dx,er4 err bufr,bx r_w ah,3eh 21h dx,er5 err bufr,bx ah,3eh 21h dx,er6 err ah,3eh 21h bufr,bx ah,3eh 21h disp ends end start 按COPY AAA BBB 格式要求改写此程序,取消人机对话,源文件和目的文件名由 命令行输入。实验报告:

1、自编程序原稿和调试后的正确清单。

2、实验中产生的问题及体会。

3、实验记录。code

第五篇:C语言实验

C语言实验

实验一:C语言程序调试基础

一、实验目的

1.掌握C语言源程序的编写方法和调试方法

2.学会使用VC6开发工具及调试过程的查错纠错能力。

二、任务

调试课本例子:例2.19、例3.5、例5.9

三、实验过程及结果

1.鼠标左键双击VC,打开程序;单击打开的New的页面中,单击

键,选择键,选择,在新,最后单击键,就可以建立一个新的页面。

2.在界面中输入例2.19的内容,单击

键进行调试,底下的对话框出现

一句话时,说明我们编写的程序无错,就可以单击键,来运行程序。运行结果及编写程序内容如图:

4.关闭这两个窗口,再单击

实验二:顺序程序设计

一、实验目的:

1.掌握顺序程序的设计方法;

键,选择

2.掌握输入输出控制语句。

二、实验任务与要求

1.第3章课后习题T2 2.第3章课后习题T7

三、实验过程及结果

实验三:分支程序设计

一、目的

1.掌握分支程序控制语句的语法格式及纷争程序设计方法。2.了解分支程序的条件表达式及运算规则; 3.掌握分支程序控制语句的嵌套使用方法。

二、任务

1.第4章课后习题T6 2.第4章课后习题T8 3.第4章课后习题T12

三、实验过程及结果

实验四:循环程序设计

一、目的

1.掌握循环程序的控制语句的语法规则;

2.掌握循环程序的编写方法;

3.掌握循环程序的嵌套与退出控制方法。

二、任务

1.求100~200间的全部素数。2.第5章课后习题T8 3.第5章课后习题T10

三、实验过程及结果

实验五:数组

一、目的

1.掌握数组的定义及使用方法 2.掌握字符数组的相关操作函数。

二、任务

1.用数组求Fibonacci数列的钱40项,每5个一行。2.将一个3行8列的数组A转置为数组B。3.已知字符串str1=”abcde”,str2=”hijklm”,比阿尼写程序分别实现str1与str2的连接、求长度、比较等操作。

三、实验过程及结果

实验六:函数

一、目的

1.掌握函数的定义与调用方法。2.掌握函数参数的专递方式。

3.掌握函数的嵌套调用和递归调用方法。

二、任务

1.编写一函数,用冒泡排序法实现对数组A的排序。2.编写一函数,用选择排序法实现对数组A的排序。3.编写一函数,实现对给定年year是不是闰年。4.编写一函数,实现对给定整数m是不是素数。

5.利用递归算法,编写一函数,求Fibonacci数列的第n项。

三、实验过程及结果

实验七:变量作用域

一、目的

1.了解变量的存储类型及生命周期、作用域的性质。2.准确使用局部变量和全局变量。

二、任务

1.根据变量作用域知识,分析下列程序的运行效果。2.调试程序,分析个变量的作用范围和生命期。

#include int i=5;void fun1(){ int i=5;static int j=20;i+=5;j=j-3;printf(“i=%d.j=%dn”,i,j);} void main(){

Printf(“i=%dn”,i);

int i=40;

printf(“i=%dn”,i);

fun1();

fun1();}

三、实验过程及结果

实验八:结构体

一、目的

1.掌握结构体的定义方法和使用。

二、任务

定义一日期(年、月、日)结构体,编程实现日期的输入、日期的输出、日期加上一个整型天数、两个日期数据相减等功能。

三、实验过程及结果

实验0C语言基础知识
TOP