您当前所在位置:首页 > 计算机等级考试

计算机等考三级数据库技术上机考试内容

编辑:sx_wangha

2016-11-08

当试题抽取成功后,上机考试系统已将需编制程序的部分源程序存放到文件PROG1.C中,考生在指定的三级信息管理技术C语言环境中...详情请看数据库技术上机考试内容信息:

1 程序编制调试运行

当试题抽取成功后,上机考试系统已将需编制程序的部分源程序存放到文件PROG1.C中,考生在指定的三级信息管理技术C语言环境中,按照试题给定的要求在PROG1.C文件中进行程序的编写,经过调试和运行,最后得到其运行结果并存放到指定的输出结果文件中。一般来说输出结果文件格式在程序中已给出,考生不必自行编写,只要调用即可。

程序编制题只有一种题型:编写部分程序或函数。那么怎样编制程序呢?首先在编制程序之前,考生必须要理解试题,并分析出试题要求做什么,得出的结果怎样输出,再编写部分程序并调试运行,直至程序运行得到正确结果为止。

1.评分规则

程序编制、调试运行这一类试题的评分规则是判定最终的运行结果,按正确结果的多少,按比例进行给分。考生编写的程序方法和内容可以有所不同,但必须得出正确的结果,才能得分。

2.举例

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

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


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

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。部分源程序如下:

#include

#include

#include

#include

unsigned char xx[50][80];

int maxline=0 ; /* 文章的总行数 */

int ReadDat(void) ;

void WriteDat(void) ;

void encryptChar()

{

}

void main()

{

clrscr() ;

if(ReadDat()) {

printf(“数据文件ENG.IN不能打开!\n\007”) ;

return ; }

encryptChar() ;

WriteDat() ;

}

int ReadDat(void)

{

FILE *fp ;

int i=0 ;

unsigned char *p ;

if((fp=fopen(“n.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(fp) ;

return 0 ;

}

void WriteDat(void)

{

FILE *fp ;

int i ;

fp=fopen(“out.dat“, w) ;

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

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

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

}

fclose(fp) ;

}

分析:根据题意分析得出:本题主要考查考生的字符串指针或字符串数组以及根据公式进字符的ASCII值运算,再根据运算结果和条件进行相应的替代操作,要求考生仅编写函数encryptChar()实现转换功能。其中输入及输出函数给出且已调用,考生不必自己编写。


编写函数encryptChar()的程序内容如下:

void encryptChar()

{ int i, j, val ;

for(i=0 ; i

for(j=0 ; j

val=(xx[i][j]*11) % 256 ;?

if(! (val<=32 || val>130)) xx[i][j]=val ;

}

}

数据文件IN.DAT内容如下:

You may WANT A FIELD in field in each record to uniquely identify that1234

record from all other records IN THE FILE. For example, the Employee123456

Number field is unique if you DO NOT ASSIGN the same number to two12345678

different employees, and you never reassign THESE NUMBERS to other12345678

employees. If you wish to FIND OR MODIFY the record belonging to a11111111

specific employee, this unique FIELD SAVES the thouble of determining22222

whether you have the correct record.12345678901234567

If you do not have a unique field, YOU MUST FIND THE first record123456787

the matches your key and determine whether THEN RECORD is the one you33333

want. If it is not the CORRECT ONE, you must search again to find others.4

结果文件OUT.DAT内容如下:

You?m+3?WAZT?A?F#EDD?in?biWlL?in?W+Ax?rWAorL?to?uniquWl3?iLWntib3?tx+t1&1<rWAorL?brom?+ll?otxWr?rWAorLs?#Z?THE?F#DE.?For?W(+mplW,?txW?Emplo3WW1&1

例2: 文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数readDat()是读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,将排序后的前10个数存入数组b中,如果数组b中出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列。最后调用函数writeDat()把结果bb输出到文件out.dat中。

例:处理前 6012 5099 9012 7025 8088

处理后 9012 6012 7025 8088 5099

注意:部分源程序存在文件PROG1.C文件中。

免责声明

精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。