填空题:h00016. 单词识别程序
这是程序填空题。本题目要求根据下面单词的状态转换图识别程序,对不完整的地方补充完整。
![单词识别.png](~/05bd25c5-0be3-4457-b3bd-147f70159260.png)
RecognizeId (char ch )
{
//初始状态
while(state != '2') {
switch(state){
case '0': if ( isletter(ch) ) state = '1'; //是字母,转向状态1
else error(); //否则调用出错处理,识别其它的单词
case '1': ch = GetNextChar (); //读取下一个输入字符
if ( isletter(ch) || isdigit(ch) ) state = '1'; // 是字母或数字,状态不变
//其它字符,转向状态2
break;
}
}
//回退一个符号,当前列号减1
return ( GetToken() ); //返回识别的单词的token值
}
答案:
第1空:char state = '0'; ||
第2空:break; ||
第3空:else state = '2'; ||
第4空:Colomn--; ||
![单词识别.png](~/05bd25c5-0be3-4457-b3bd-147f70159260.png)
RecognizeId (char ch )
{
//初始状态
while(state != '2') {
switch(state){
case '0': if ( isletter(ch) ) state = '1'; //是字母,转向状态1
else error(); //否则调用出错处理,识别其它的单词
case '1': ch = GetNextChar (); //读取下一个输入字符
if ( isletter(ch) || isdigit(ch) ) state = '1'; // 是字母或数字,状态不变
//其它字符,转向状态2
break;
}
}
//回退一个符号,当前列号减1
return ( GetToken() ); //返回识别的单词的token值
}
答案:
第1空:char state = '0'; ||
第2空:break; ||
第3空:else state = '2'; ||
第4空:Colomn--; ||