zoukankan      html  css  js  c++  java
  • 北航 2012年考研复试题3

    3.【问题描述】

    统计关键字出现位置

    输入:

    一行标准c语言代码(字符个数小于300),统计出该字符串中关键字的if,while,for所在的位置,按照关键字出现的顺序依次输出。注意双引号内的不需要统计。
    输入:一行标准c语言代码,字符个数小于300
    输出:

    关键字if,while,for对应的位置,按照关键字出现的顺序依次输出。输出格式为:关键字,后跟冒号,然后是出现的位置。扫描到关键字就输出,每个输出占一行。
    样例输入:

    #include <stdio.h> int main() {int i = 0; if(i == 0) printf("YES"); return 0;}
    #include <stdio.h> int main() {int ifwhile = 0; int forif = 1;char if_for_while = 'a';char *str = "while"; while(ifwhile == 0) {ifwhile = 1;forif = 0;} if(forif == 0) {if_for_while = 'b';} if(ifwhile == 1) {if_for_while = 'c';} return 0;}

    样例输出:

    if:43
    while:88
    if:133
    if:170


    #include <string.h> #include <stdio.h> char s[302]; main() { int i, j, k, l, m, n, w; // freopen("2012_3_string.txt","r",stdin);// bool valid; i = 0, w = 0; while( gets(s) ){ l = strlen(s); //cout << l << endl; valid = 1; for(i=0;i<l;i++){ if( s[i] == '"' ) valid = 1 - valid; //第一次遇到双引号将valid赋值为0,下面的IF语句始终无法执行, //第二次遇双引号将valid赋值为1,下面语句开始执行 if( !valid ) continue;//屏蔽双引号内的东西 if( s[i] == 'i' ){ if( s[i+1] == 'f' && ( s[i+2] == ' ' || s[i+2] == '(' ) && ( s[i-1] == ' ' || s[i-1] == ';' ) )//无法判断第一个字符 printf("if:%d ",i+1); } else if( s[i] == 'w' ){ if( s[i+1] == 'h' && s[i+2] == 'i' && s[i+3] == 'l' && s[i+4] == 'e' && ( s[i+5] == ' ' || s[i+5] == '(' ) && ( s[i-1] == ' ' || s[i-1] == ';' ) ) printf("while:%d ",i+1); } else if( s[i] == 'f' ){ if( s[i+1] == 'o' && s[i+2] == 'r' && ( s[i+3] == ' ' || s[i+3] == '(' ) && ( s[i-1] == ' ' || s[i-1] == ';' ) ) printf("for:%d ",i+1); } } } }
  • 相关阅读:
    Monogb基本概念及基本操作
    高级查询与索引
    查询、索引和聚合
    更新和删除文档
    数据查询
    数据库和集合的基本操作
    dedecms 文章排列方式
    dedecms flag标签属性
    Iis 日志文件默认路径
    php中的require() 语句的使用方法
  • 原文地址:https://www.cnblogs.com/Xilian/p/3826428.html
Copyright © 2011-2022 走看看