已知检查括号匹配及注释、字符串处理的C源程序如下:
#include<stdio.h>
int brace,brack,paren;
void in_quote(int c);
void in_comment(void);
void search(int c);
/*rudimentary syntax checKer for C program*/
int main( )
int c;
extern int brace,brack,paren;
while((c=getchar( ))!=EOF)
if(c==’/’)
if((c=getchar( ))==’*’)
in_comment( ); /*inside comment*/
else
search(C) ;
else if(c==’/"||c=="")
in_quote(c); /*inside quote*/
else
search(c);
if(brace<0) /*output errors*/
printf("Unbalanced braces/n");
brace=0;
else if(brack<0)
printf("Unbalanced brackets/n");
brack=0;
else if(paren<0)
printf("Unbalanced parentheses/n");
paren=0;
if(brace>0) /*output errors*/
已知检查括号匹配及注释、字符串处理的C源程序如下: #include<stdio.h> int brace,brack,paren; void in_quote(int c); void in_comment(void); void search(int c); /*rudimentary syntax checKer for C program*/ int main( ) { int c; extern int brace,brack,paren; while((c=getchar( ))!=EOF){ if(c==’/’){ if((c=getchar( ))==’*’) in_comment( ); /*inside comment*/ else search(C) ; }else if(c==’/"||c=="") in_quote(c); /*inside quote*/ else search(c); if(brace<0){ /*output errors*/ printf("Unbalanced braces/n"); brace=0; }else if(brack<0){ printf("Unbalanced brackets/n"); brack=0; }else if(paren<0){ printf("Unbalanced parentheses/n"); paren=0; } } if(brace>0) /*output errors*/ printf("Unbalanced braces/n"); if(brack>0) printf("Unbalanced brackets/n"); if(paren>0) printf("Unbalanced parentheses/n"); return 0; } /*search:search for rudimentary syntax errors*/ void search(int c) { extern int brace,brack,paren; if(c==&rsqu
函数名 | 函数功能 |
push (int i) | 将整数i压人栈stack中 |
pop( ) | stack的栈顶元素出栈 |
empty( ) | 判断stack栈是否为空。若为空,函数返回1,否则函数返回0 |
nextch( ) | 读取文本文件中的下—个字符,井返回该字符的ASCII值,将字 符所在的行号以及字符在行中的位置分别存储到变量row和col [单项选择]程序语句中的小括号配对错误是一种______。
A. 表达式错误 B. 类型错误 C. 引用错误 D. 接口一致性错误 [单项选择]
可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时,();对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,()。这两种情况都表明所检查的算术表达式括号不匹配。 对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,()表明所检查的算术表达式括号不匹配。 A. 栈为空却要进行出栈操作 B. 栈已满却要进行入栈操作 C. 表达式处理已结束,栈中仍留有字符“(” D. 表达式处理已结束,栈中仍留有字符“)” [填空题]下列程序如果去掉for循环外围的大括号对,则会出现编译错误。错误原因是 【7】 。
# include<iostream, h> int a=5; void main( ) int a=10, b=20; cout<<a<<", "<<b<<end1; int a=0, b=0; for (int i=1;i<8;i++) a+=i; b+=a; cout<<a<<", "<<b<<", "<<:: a<<end1; cout<<a<<", "<<b<<end1; [填空题]下列程序如果去掉for循环外围的大括号对,则会出现编译错误。错误原因是 【7】 。
# include<iostream, h>
int a=5;
void main( )
{
int a=10, b=20;
cout<<a<<", "<<b<<end1;
{
int a=0, b=0;
for (int i=1;i<8;i++)
{
a+=i;
b+=a;
}
cout<<a<<", "<<b<<", "<<:: a<<end1;
}
cout<<a<<", "<<b<<end1;
}
[填空题]在测试阶段没有发现的错误,会在软件投入实际运行后逐渐暴露出来。对这类错误的测试、诊断、纠错以及回归测试过程,称为 【5】 维护。
[填空题]下列程序如果去掉for循环外围的大括号对,则会出现编译错误。错误原因是______。
#include<iostream.h> int a=5; void main( ) int a=10,b=20; cout<<a<<","<<b<<endl; int a=0,b=0; for(int i=1;i<8;i++) a+=i; b+=a; cout<<a<<","<<b<<","<<::a<<endl; cout<<a<<","<<b<<endl; [单项选择]在研究设计阶段通过限制与匹配可以控制()
A. 入院率偏倚 B. 混杂偏倚 C. 回忆偏倚 D. 信息偏倚 E. 失访偏倚 [单项选择]在代码检查的准备阶段和检查会议阶段都具有发现产品错误责任的是
A. 讲解人员 B. 检查人员 C. 协调人员 D. 开发人员 [单项选择]软件开发过程中,往往会出现错误,经验证明最容易产生错误的阶段是______。
A. 详细设计 B. 需求分析 C. 编码 D. 概要设计 [单项选择]信息系统开发中的不同阶段都可能产生错误,其中错误的修改是最困难、代价最高的一类错误是( )。
A. 语法错误 B. 算法错误 C. 数据结构定义错误 D. 需求定义错误 我来回答: 提交
|