2017年计算机三级信息安全技术模拟试题2

0
收藏   分享
  • 卷面总分:100分
  • 试卷类型:模拟考试
  • 测试费用:免费
  • 答案解析:是
  • 练习次数:112次
  • 作答时间:120分钟
试卷简介

2017年计算机三级信息安全技术模拟试题2,是针对计算机三级信息安全技术的模拟试题。

  • 选择题
  • 填空题
  • 综合题
试卷预览
1

已知在文件in37.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型 10位),单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件 out37.dat中。

 注意:部分源程序已给出。

 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。

 试题程序:

 #include<stdio.h>

 #include<mem.h>

 #include<string.h>

 #include<conio.h>

 #include<stdlib.h>

 #define MAX 100

 typedef struct

 {

   char dm[5];

   char mc[11];

   int dj;

   int sl;

   long je;

 } PRO;

 PRO sell[MAX];

 void ReadDat();

 void WriteDat();

 void SortDat ()

 {

 }

 void main()

 {

   memset(sell,0,sizeof(sell));

   ReadDat();

   SortDat();

   WriteDat();

 }

 void ReadDat ( )

 {

   FILE *fp;

   char str[80],ch[11];

   int i;

   fp=fopen("IN37.DAT","r");

   for(i=0;i<100;i++)

   {

    fgets(str,80,fp);

    memcpy(sell[i].dm, str,4);

    memcpy(sell[i].mc,str+4,10);

    memcpy(ch, str+14, 4);

    ch[4]=0;

    sell[i].dj=atoi(ch);

    memcpy(ch, str+18,5);

    ch[5]=0;

    sell[i].sl=atoi(ch);

    sell[i].je=(long)sell[i].dj*sell[i].sl;

   }

   fclose(fp);

 }

 void WriteDat()

 {

   FILE *fp;

   int i;

   fp=fopen("OUT37.DAT","w");

   for(i=0;i<100;i++)

  {

      fprintf(fp,"%s %s %4d %5d %101d\n",sell[i].dm, sell[i] .mc,

      sell[i] .dj,sell[i].sl, sell[i].je);

  }

   fctose(fp);

 }

1

函数ReadDat()的功能是实现从文件ENG97.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件ps97.dat中。

 替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是数字字符0至19或计算后f(p)的值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

 注意:部分源程序已给出,原始数据文件的存放格式是每行的宽度均小于80个字符。

 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。

 试题程序:

 #include<conio.h>

 #include<stdio.h>

 #include<string.h>

 #include<ctype.h>

 unsigned char xx[50][80];

 int maxline=0;

 int ReadDat(void);

 void WriteDat(void);

 void encryChar()

 {

 }

 void main()

 {

   clrscr();

   if(ReadDat())

   {

    printf("数据文件ENG97.IN不能打开!\n\007");

    return;

   }

   encryChar();

   WriteDat();

 }

 int ReadDat(void)

 {

   FILE *fp;

   int i=0;

   unsigned char *p;

   if((fp=fopen("ENG97.IN","r"))==NULL) return 1;

   while(fgets(xx[i],80,fp)!=NULL)

   {

    p=strchr(xx[i],'\n');

    if(p) *p=0;

    i++;

   }

   maxline=i;

   fclose(fp);

   return 0;

 }

 void WriteDat()

 {

   FILE *fp;

   int i;

   fp= fopen("ps97.dat","w");

   for(i=0;i<maxline;i++)

   {

    printf("%s\n",xx[i]);

    fprintf(fp,"%s\n",xx[i]);

   }

   fclose(fp);

 }