201506110248 ---实验报告
实验报告一一、 实验目的编制一个词法分析程序。二、 实验内容和要求输入:源程序字符串。输出:二元组(种别,单词符号本身)。三、 实验方法、步骤及结果测试2.主要程序段及其解释:for(i=0;ch[i]!='\0';i++){if((ch[i]=='+')||(ch[i]=='=')||(ch[i]=='/')||(ch[i]=='*')||(ch[i]=='>=')||(ch[i]=='<=')||(ch[i]=='<')||(ch[i]=='>'))//判断字符是否为运算符;switch(ch[i]){case '+':printf("(2,%c)",ch[i]);printf("\n");break;case '-':printf("(3,%c)",ch[i]);printf("\n");break;case '*':printf("(4,%c)",ch[i]);printf("\n");break;case'/':printf("(5,%c)",ch[i]);printf("\n");break; case '<':printf("(6,%c)",ch[i]);printf("\n");break;case '<=':printf("(7,%c)",ch[i]);printf("\n");break;case'>':printf("(8,%c)",ch[i]);printf("\n");break; case '>=':printf("(9,%c)",ch[i]);printf("\n");break;case '=':printf("(11,%c)",ch[i]);printf("\n");break;default:break;}else if((ch[i]>=32)&&(ch[i]<=41)||(ch[i]=='.')||(ch[i]>=91&&ch[i]<=96)||(ch[i]==';')||(ch[i]=='?'))//判断字符是否为界符;switch(ch[i]){case '#':printf("(0,%c)",ch[i]);printf("\n");break;case ';':printf("(12,%c)",ch[i]);printf("\n");break;case '(':printf("(13,%c)",ch[i]);printf("\n");break;case ')':printf("(14,%c)",ch[i]);printf("\n");break;case '?':printf("(15,%c)",ch[i]);printf("\n");break;case '.':printf("(16,%c)",ch[i]);printf("\n");break;case ' ':printf("(17,%c)",ch[i]);printf("\n");break;case '"':printf("(18,%c)",ch[i]);printf("\n");break;case ',':printf("(19,%c)",ch[i]);printf("\n");break;default:printf("(35,%c)",ch[i]);printf("\n");break;}else if(ch[i]>=48&&ch[i]<=57)//判断字符是否为常数; {printf("(20,");//常数的种别码为28;for(;(ch[i]>=48&&ch[i]<=57);i++){printf("%c",ch[i]);//printf("%c",a[k]); }i--;printf(")\n");}//memset(a,0,100);k=0;}else{if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z'))for(;((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z'));i++,j++){str[j]=ch[i];//把一整串字符赋值给str数组}i--;if(strcmp(str,"auto")==0|strcmp(str,"int")==0||strcmp(str,"do")==0||strcmp(str,"while")==0|| strcmp(str,"long")==0||strcmp(str,"short")==0||strcmp(str,"case")==0||(str,"switch")==0|| strcmp(str,"typedef")==0||(str,"const")==0||(str,"static")==0||strcmp(str,"double")==0||strcmp(str,"char")==0||(str,"return")==0)//判断字符是否为关键字 {printf("(1,%s)\n",str);memset(str,0,100); j=0;}else{//printf("(29,%s)\n",str); printf("(10,%s)\n",str);memset(str,0,100); j=0;}}}}3.运行结果及分析四、 实验总结问题:不知道如何把关键字作为一个整体输出;解决方法:先把单个字符存在一个字符数组里,然后判断是否为关键字,如果是的话,用%s把字符数组里的字符输出;否则的为标识符。体会:通过在编程中不断的发现问题,然后不断的解决,使自己更加熟练的掌握编程的思想。
转载于:https://www.cnblogs.com/YY0302/p/6144269.html
201506110248 ---实验报告相关推荐
- 2019春第二次课程设计实验报告
2019春第二次课程设计实验报告 一.实验项目名称: 贪吃蛇游戏编写: 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现的目标是对小蛇移动的控制, 同时对小蛇数据的保存,如何实现转弯的效 ...
- JAVA第二次验证设计性实验报告
[实验任务一]:素数输出 (3)实验报告中要求包括程序设计思想.程序流程图.源代码.运行结果截图.编译错误分析等内容. 1. 实验内容 (1)计算并输出3~100之间的素数. (2)编程满足下列要 ...
- 计算机网络实验报告建立校园网,计算机网络实验报告
设计性实验报告 一.实验目的 通过对网络设备的连通和对拓扑的分析,加深对常见典型局域网拓扑的理解:通过路由建立起网络之间的连接,熟悉交换机.路由器的基本操作命令,了解网络路由的设计与配置. 二.背景描 ...
- c语言链表最高响应比优先,操作系统--最高响应比优先调度算法实验报告..doc
操作系统--最高响应比优先调度算法实验报告. 进程调度一.实验题目与要求 编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法.实现具体包括:首先确定作业控制块的内容和组成方式:然 ...
- 计算机网络实验可变长子网掩码,计算机网络实验3-子网掩码与划分子网实验报告.docx...
PAGE PAGE # / 5 上机实验报告三 -.实验目的 (1 )掌握子网掩码的算法. 了解网关的作用. 熟悉模拟软件 packet tracer5.3的使用. 二.实验内容 1.( 1) 172 ...
- 实验报告Linux操作系统基本命令,linux操作系统实验报告全部.doc
linux操作系统实验报告全部 计算机操作系统 实验报告 学 号:姓 名:提交日期:2014.12.15成 绩: 东北大学秦皇岛分校 [实验题目]熟悉Linux/UNIX操作系统[实验目的]1.熟悉L ...
- 递归下降文法C语言实验报告,递归下降语法分析器实验报告.doc
递归下降语法分析器实验报告 编译原理实验报告 题目: 递归下降语法分析器 学 院 计算机科学与技术 专 业 xxxxxxxxxxxxxxxx 学 号 xxxxxxxxxxxx 姓 名 宁剑 指导教师 ...
- labview简易计算机实验报告,labview实验报告..doc
学院:电气工程学院 班级:自112班 姓名:何富裕 学号:1112011060 实验一 一.实验目的 熟悉LabVIEW软件的基本编程环境. 二.实验内容 创建并保存一个VI程序.此VI要实现的功能是 ...
- c语言实验报告管理系统,C语言实验报告-学生信息资管理系统.doc
C语言实验报告-学生信息资管理系统 C语言实验报告 院系: 数学与计算科学学院 班级: 信息与计算科学2班 姓名: 学号: 2011年12月21日 一.问题描述 编写一个信息管理系统,包括姓名.性别. ...
最新文章
- 不少Java程序员都觉得Lambda表达式很鸡肋,它到底有何用呢?
- 构建Chua 混沌电路 - 基本测试
- Spark机器学习MLlib系列1(for python)--数据类型,向量,分布式矩阵,API
- 【项目管理】PMO-为强大的收益实现演变
- QT集成QML和JavaScript
- HBase的布隆过滤器详解
- 开源数字媒体资产管理系统:Razuna安装方法
- Proguard 混淆之乱谈 3 混淆模板
- 简单线性回归的应用及画图(一)
- “运行时错误‘339‘部件‘flash8.ocx‘或其附件之一不能正确注册:一个文件丢失或无效“的一种解决办法!
- android 自定义太阳,第一个AOSP安卓10自定义ROM已经可用,并且非常稳定
- 一个电源工程师要学哪些软件?
- chua系统matlab代码
- 聊聊手机之--小米6
- html5移动开发是什么意思,移动端什么意思?
- jump label
- 珠海横琴凯悦酒店开业
- Web网页分享到新浪微博与QQ空间链接
- CNN-台大李宏毅学习笔记
- 计算机语言学国外排名,美国语言学专业排名
热门文章
- 前端市场现在是不是饱和了?
- 如何用excle制作黑人拉馆_小编教你如何用装机吧制作u盘启动盘
- 三星内存编码_内存条上面的编码的含义
- 计算机三级标题,计算机三级考试题目
- 两台电脑怎么共享_怎么在电脑上创建共享文件(必须是在同一个网段)
- linux 移动一行到指定行,linux – 移动行以跟随文件中的另一行
- call需要多大带宽 video_KCP TCP是为流量设计的(每秒内可以传输多少KB的数据),讲究的是充分利用带宽。而KCP是为流速设计的(单个数据包从一端发送到一端需要多少时间)...
- android viewholder里面不执行控件_ViewHolder的MVVM实现
- android o 编译及运行,【转】实践最有效的提高Android Studio运行、编译速度方案
- STM32F103基本定时器使用