编译原理实验 源程序的输入和扫描
更新时间:2023-07-25 06:37:01 阅读量: 实用文档 文档下载
- 编译原理实验一 词法分析推荐度:
- 相关推荐
实验一 源程序的输入和扫描
学时数:2
[实验内容]:
1、 编制一个源程序的输入、扫描程序,从文件中每次读入一行到输入缓冲区(可以用字符数组实现);然后从缓冲区中依次取出字符显示在屏幕上。
2、从文件每次读入一行到输入缓冲区的功能(可以用字符数组实现)用一个子程序实现。
[实验目的]:
1、通过编制一个源程序的输入、扫描程序,熟悉和了解从文件中读入数据到输入缓冲区的过程。
[实验步骤]:
(一)准备:确定开发工具,如TC、VC++等;熟悉开发工具;确定被处理的语言的语法特点(初步确定,也可使用现成语言如Pascal、C等)。写好实验报告,编好程序。
(二)上机:输入程序,修改、调试,运行。
1、编程思想:
采用一个子程序实现的形式。
(1)程序判断源文件是否为NULL,如果是,则输出错误提示!如果不是,则进入循环。
(2)调用子程序readbuffer(),每次读入一个字符给字符变量,如果字符变量的内容不是回车符,则把字符变量的内容存入数组buffer(),然后读入下一字符,再判断再存入数组,直到一行全存入数组,然后返回主程序,用输出语句输出刚才存入数组的一行字符;
(3)如果没有到文件尾,则重复第(2)步,直到文件结束,则退出主程序,完成任务!
[程序要求]:
1)如输入如下一段C语言源程序,要求运行编制的输入、扫描程序后输出与输入相同。 main()
{
int a,b ,c;
a = 10; b=20;
c=a+b;
}
例: 输入、扫描程序源代码(参考):
//程序开始:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//声明头文件
int i;
FILE *fp;
char buffer[256];
//声明变量
int readbuffer() //子程序开始 {
int j=0;
char ch;
//声明变量
while(j<256)
{
ch=fgetc(fp);
if (ch=='\n')
{
i=j;
return 0;
} //if
buffer[j]=ch;
++j;
}
return 1;
} //子程序结束
main() //main()开始
{
if((fp=fopen("d:\\a.c","r"))==NULL) {
printf("THE FILE DOESN’T OPEN!"); exit(0);
}
while(!feof(fp))
{
int j;
j=0;
readbuffer();
while(j<i)
{
printf("%c",buffer[j]);
j++;
}
printf("\n");
getch();
}
fclose(fp);
getch();
} //main()结束
//程序结束
2)当源文件为:
d:\\a.c.。
main()
{
int sum=0,i;
float k;
scanf ("%f plese input (0-100) to total!",&k)
for(i=0;i<k;i++)
sum =sum+i;
}
输出必须与上面输入的原代码相同。
正在阅读:
编译原理实验 源程序的输入和扫描07-25
FLUID MECHANICS11-10
检测机构管理制度及质量控制措施10-22
2016-2022年中国婴儿用品移动应用(APP) 市场深度调查与市场分析预测报告09-02
关于公布广西工程系列柳州市、来宾市2010年度取得高级工程师专业技术资格人员名单的批复09-16
2014年6月电大专科“个人与团队管理”机考单选题题库12-14
万紫千红总是春作文600字07-05
人事管理学复习资料06-04
功 新课练习 初中物理组卷03-11
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 源程序
- 编译
- 扫描
- 原理
- 输入
- 实验
- 第十讲装配设计:(11)
- 刺客信条2详细攻略
- 遗传算法讲义4_slides
- 煤矸石烧结多孔砖项目可研报告省级立项用(专家版)
- 建设银行年报2013市场营销及薪酬研究(金融业资产负债表)中国建设银行股份有限公司_九舍会智库
- J2ME课程设计报告模板
- 论后计划体制以来江苏省电影创作论文
- 《秋天的怀念》导学案
- 中国制造业应对经济全球化策略
- 连接器材料的选择
- 贵州省情题目及答案
- 高中语文选择题专项训练
- 2008年专升本《古代汉语》考试大纲
- 2020-2021学年九年级上学期期末化学试题 答案和解析i
- 让学习发生在学生身上 教学随笔
- 项目管理在汽车行业的应用
- 2015考研英语一真题及答案
- 炉石传说阿扎达斯英雄模式过关卡组推荐
- 汽车零部件查询系统设计说明书
- 2021年物流管理专业学生的自我鉴定