填空题 该程序检查由#define所定义的文本文件中花括号是否配对。函数check完成检测功能,所遵循的原则如下。
   ①检测过程中,不能出现右花括号“}”个数多于左花括号“{”个数,如果该情况发生,则返回-1。
   ②整个文件检测完成后,若右花括号“}”个数等于左花括号“{”个数,则返回0,否则返回1。
   ③检测的行数记录在n所指向的变量中。
   #include<stdio.h>
   #define file "c:\\bc31\\bin\\match.c"
   int check(FILE*,  int*)
     void main()
   {  int line;
      FILE*fp=fopen( 1);
       switch(check( 2))
       {case 0:printf("file/%s match correctly\n",file);  break;
         case 1:printf("file/%s missing)on/%d line\n",file,line);break;
         case-1:printf("file/%s missing{on/%d line\n",file,line };  break;
         }
       fclose(fp);
       }
       int check(FILE*fp,  int*n)
       {  int left=0,  right=0,line=0;
           char c;
           while((c=fgetc(fp))!=EOF)
       {  if(c=='{')
           left++;
         else if(c=='}')
               right++;
             else if(c=='\n')
                   *n=++line;
         if( 3)
           return  -1;
        }
      return 4;
   }
  • 1、
【正确答案】 1、file,"r" fp,&line right>left right==left?0:1    
【答案解析】