分类信息
各地考试

当前位置:首页 » 软件水平考试 » 模拟试题 » 正文

2013年软件设计师考试:字符串程序模拟题1


时间:2013-10-21 来源:软件水平考试网 浏览次数:92  【华夏培训网:中国教育培训第一门户

函数ReadDat()实现从文件IN.DAT中读取一篇英语文章存入到字符串数组xx中;请编制函数StrCharJL(),其函数功能是:以行为单位把字

  
       函数ReadDat()实现从文件IN.DAT中读取一篇英语文章存入到字符串数组xx中;请编制函数StrCharJL(),其函数功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。原始数据文件存放的格式是:每行宽度均小于80个字符,含标点符号和空格。 

  
程序: 
#include <stdio.h> 
#include <string.h> 
#include <conio.h> 
  
char xx[50][80]; 
int maxline=0; /*文章总行数*/ 
  
int ReadDat(void); 
void WriteDat(void); 
  
void StrCharJL(void) 
{ 
 int i,j; 
 char c; 
 for (i=0;i<maxline;i++) 
   for (j=0;j<strlen(xx[i]);j++) 
   { 
    c=xx[i][j]<<4; 
    if (!(c<=32||c>100)) xx[i][j]+=c; 
   } 
} 
  
void main() 
{ 
 clrscr(); 
 if (ReadDat()) 
 { 
  printf("数据文件IN.DAT不能打!\n\007"); 
  return; 
 } 
 StrCharJL(); 
 WriteDat(); 
 system("pause"); 
} 
  
int ReadDat(void) 
{ 
 FILE *fp; 
 int i=0; 
 char *p; 
  
 if ((fp=fopen("IN.DAT","r"))==NULL) return 1; 
 while (fgets(xx[i],80,fp)!=NULL) 
 { 
  p=strchr(xx[i],’\n’); 
  if (p)  *p=0; 
  i++; 
 } 
 maxline=i; 
 fclose(p); 
 return 0; 
} 
  
void WriteDat(void) 
{ 
 FILE *fp; 
 int i; 
  
 fp=fopen("OUT7.DAT","w"); 
 for (i=0;i<=maxline;i++) 
 { 
  printf("%s\n",xx[i]); 
  fprintf(fp,"%s\n",xx[i]); 
 } 
 fclose(fp); 
}





        软件水平考试

推荐图文

热门点击排行

©2015 hxpx.com All Rights Reserved 滇ICP备13002816号-1
华夏培训网唯一网址www.hxpx.com