当前所在位置:珠峰网资料 >> 计算机 >> 软件水平 >> 正文
2015年计算机软件水平程序员笔试考前练习精选(38)
发布时间:2012/11/4 15:34:08 来源:城市网学院 编辑:admin
    【说明】
    该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。
    例如:原文:You He Me
    I am a student.
    结果:Me He You
    student a am I
    原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
    【函数】
    #include
    #include
    #include
    #include
    char xx[50][80];
    int maxline=0;/*文章的总行数*/
    int ReaaDat(void);
    void WriteDat(void);
    void StrOL(void)
    {
    char*pl,*p2,t[80];
    int i;
    for(i=0;i  {p1=xx[i];t[0]=0;
    while(*p1)p1++;
    while(p1>=xx[i])
    {while(!isalpha(*p1)&&p1!=xx[i])p1--;
    p2=p1;
    while( (1) )p1--;
    if(p1==xx[i])
    if(isalpha(*p1))p1--;
    else if(!isalpha(*(p1+1)))break;
    p2++;
    (2) ;
    strcat(t,p1+1);
    strcat(t,“ ”);
    }
    strcpy(xx[i],t);
    }
    }
    void main()
    {
    if( (3) ){
    printf(“数据文件in.dat不能打开!\n\007”);
    return;
    }
    StrOL();
    writeDat();
    getch();
    }
    int ReadDat(void)
    {
    FILE*fp;
    int i=0;
    char*p;
    if((fp=fopen(“e:\\a\\in.dat”,“r”))==NULL)return 1;
    while(fgets(xx[i],80,fp)!=NULL){
    p=strchr(xx[i],′\n′);
    if(p)*p=0;
    i++;
    }
    maxline= (4)
    fclose(fp);
    return 0;
    }
    void WriteDat(void)
    {
    FILE*fp;
    int i;
    fp=fopen(“e:\\a\\out6.dat”,“w”);
    for(i=0;i< (5) ;i++){
    printf(“%s\n”,xx[i]);
    fprintf(fp,“%s\n”,xx[i]);
    }
    fclose(fp);
    }
    【答案】
    (1)isalpha(*p1)&&p1!=xx[i]
    (2)*p2=0
    (3)ReadDat()
    (4)i
    (5)maxline
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved