问答题

【问题2】 在状态迁移图中,a,b,c分别表示什么事件请用转换图中给出的事件名解答。

【参考答案】

a—“取消”操作 b—核查正确 c—出票结束。[解析] 结合试题考查状态迁移图,状态“正在接收投钱”之后什么事件能够导致......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
[程序5说明] 下列文法可用来描述化学分子式的书写规则(例如,A12(CO3)3”Cu(OH)2): λ→β βλ β→δ δn δ→ξ ξθ (λ) 其中:λ是—个分子式;δ或是一个元素,或是一个带括号的(子)分子式,元素或是一个大写字母(记为ξ),或是一个大写字母和一个小写字母(记为ξθ)β或是一个δ,或是在δ之后接上一个整数n,δn表示β有n个δ的元素或(子)分子式。—个完整的分子式由若干个β组成。 当然一个正确的分子式除符合上述文法规则外,还应满足分子式本身的语义要求。 下面的程序输入分子式,按上述文法分析分子式,并计算出该分子式的分子量。例如:元素H的原子量是1,元素O的原子量是16。输入分子式H2O,程序计算出它的分子量为18 (1×2+16)。程序中各元素的名及它的原子量从文件atom.dat中读入。 [程序5] #include < stdio. h > #include < string. h > #define MAXN 300 #define GMLEN 30 struct elem { char name[ ]; * 元素名* double v; *原子量* } nTbl [MAXN]; char cmStr [GMLEN], * pos; int c;FILE * fp; double factor( ); double atom( ) * 处理文法符号δ* {char w [3];int i; double num; while((c = * pos++) ==’||c ==’ t’); *略过空白字符* if(c == ’ n’) return 0.0; if(c>=’A’ && C <=’Z’) { *将元素名存入W * w[i =0]=c;c= * pos ++ if(c >=’a’&& c <=’z’)w[ ++i] =c;else pos--; w[ ++i] =’ 0’, for(i =0;nTbl [i]. v >0.0;i ++) if(strcmp (w,nTbl[i]. name) ==0) return nTbl [i]. v; printf ( n元素表中没有所输入的无素: t%s n’,w); retur n - 1.0; } elseif (c = =’(’) { if((num= (1) ) <0.0)return -l.0; *包括可能为空的情况* if( * pos ++ ! = ’)’) { printf ( 分子式中括号不匹配! n ) ;return - 1.0; } return num; } printf ( 分子式中存在非法字符: t%c n ,c); return - 1.0; } double mAtom( ) * 处理文法符号β* { double num ;int n = ]; if((num= (2) ) <0.0)return-l.0; c= *pos++; if(c >=’O’&&c <=’9’) { n = 0; while(c > = 0&&c < =’9’) {n= (3) ; c= *poss ++; } } pos --; return num * n;}double factor( ) *处理文法符号λ* { double num =0.0,d; if(( hum = mAtom ( )) < 0.0) return - 1.0; while( * pos >= ’A’&& * pos <= ’Z’||* pos == ’(’) { if((d= (4) ) <0.0)return-1.0; (5) ; } return num;void main( ){ char fname[ ] = atom. dst ; *元素名及其原子量文件* int i;double num;if((fp=fopon(fname, r )) == NULL) { *以读方式打开正文文件* prinff( Can net open%s file. n’ ,fname) ;return *程序非正常结束 * i=0;while(i < MAXN&&fscanf (fp, %s%lf,bTbl[i]. name,&nTbl[i]. v) ==2) i++;fclose(fp) ;nTbl[i]. v =-1.0;while(1) [ *输入分子式和计算分子量循环,直至输入空行结束* printf( n 输入分子式! (空行结束) n ) ;gets(cmStr); pos = cmStr; if(cmStr[0] == ’ 0’) break; if( (num = later( ) ) > 0.0) if( * pos! = ’ 0’)printf( 分子式不完整! n ); else printf( 分子式的分子量为%f n ,num); }