问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入到字符串数组xx中。请编写函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代后,仍存入数组xx的对应位置上,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。 原始数据文件存放的格式是:每行的宽度均小于80个字符。 注意:部分源程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.h> #include<string.h> #include<conio.h> #include<ctype.h> unsigned char xx[50][80]; int maxline=0; /*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() void main() if(ReadDat()) printf("数据文件IN.DAT不能打开!/n/007"); return; encryptChar(); WriteDat(); int ReadDat(void) FILE *fp; int i=0; unsigned 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(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);
问答题下列程序的功能是:计算500~800区间内素数的个数cnt,并按所求素数的值从大到小的顺序排列,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat(),把结果cnt和sum输出到OUT.DAT文件中。 注意:部分源程序已给出。 请勿改动主函数main()和输出数据函数writeDat()的内容。 #include<stdio.h> int cnt,sum; void countValue() void writeDat() FILE *fp; fp=fopen("OUT.DAT","w"); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp); void main() cnt=sum=0; countValue(); printf("素数的个数=%d/n",cnt); printf("按要求计算的值=%d/n",sum); writeDat();
问答题对10个候选人进行选举,现有一个180条记录的选票数据文件in.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个候选人的选中情况,第二位表示第二个候选人的选中情况,依次类推;每一位内容均为字符"0"或"1","1"表示此人被选中,"0"表示此人未被选中,若一张选票选中人数小于等于5个人时被认为无效的选票则不作统计。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个候选人的选票数并把得票数依次存入yy[0]到yy[9]中,即第一个候选人的得票数存入yy[0]中,以此类推。最后调用函数writeDat()把结果yy输出到文件out.dat中。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
char xx[100] [11];
int yy[10];
int ReadDat (void);
void WriteDat(void);
void CountRs(void)
{
}
void main()
{
int i;
for(i=0; i<10; i++)
yy[i]=0;
if (ReadDat ())
{
printf ("选票数据文件in.dat不能打开! /007/n");
return;
}
CountRs ();
WriteDat ();
}
/*把选票数据读入到字符串数组xx中*/
int ReadDat (void)
{
FILE *fp;
int i;
char tt[13];
if((fp=fopen ("in.dat", "r") ) ==NULL)
return 1;
for(i=0; i<100; i++)
{
if(fgets(tt, 13, fp) == NULL)
return 1;
memcpy(xx[i], tt, i0);
xx[i] [10] =0;
}
fclose (fp);
return 0;
}
/*把结果yy输出到文件out.dat中*/
void WriteDat(void)
{
FILE *fp;
int i;
fp=fopen("out.dat", "w");
for(i=0; i<10; i++)
{
fprintf(fp, "%d/n", yy[i]);
printf("第%d个人的选票数=%d/n", i+1, yy[i]);
}
fclose (fp);
}
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入到字符串数组xx中。请编写函数StrCharjL(),其功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:部分源程序已经给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#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)
{
}
void main()
{
if (ReadDat())
{
printf("数据文件IN.DAT不能打开! /n/007");
return;
}
StrCharjL();
WriteDat();
}
int ReadDat(void)
{
FIIE *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)
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);
}
问答题已知数据文件IN68.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT68.DAT文件。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include<stdio.h> #define MAX 200 int a[MAX],b[MAX],cnt=0; void jsVal() void readDat ( ) int i; FILE *fp; fp= fopen ("IN68. DAT", "r"); for (i=0; i<MAX; i++) fscanf (fp, "%d", void main ( ) int i; readDat ( ); jsVal ( ); printf ("满足条件的数=%d/n", cnt); for (i=0; i<cnt; i++) printf ("%d",b[i]); printf ("/n"); writeDat ( ); writeDat ( ) FILE *fp; int i; fp= fopen ("out68.dat", "w"); fprintf (fp, "%d/n", cnt); for (i=0; i<cnt; i++) fprintf (fp, "%din", b [i]); fclose (fp);
问答题关系数据库中要求关系的主码不能为空,这属于数据模型三要素中的_________。
问答题已知文件IN.DAT中存有100条产品销售记录,每条产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)和金额je(长整型)5部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100条销售记录并存入结构数组sell中。请编写函数SortDat(),其功能是:将这些产品记录按产品代码从小到大的顺序排列,若产品代码相同,则按金额从小到大的顺序排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat(),把结果输出到文件OUT.DAT中。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
[试题程序]
#include<stdio.h>
#include<memory.h>
#include<string.h>
#include<stdlib.h>
#define MAx 100
typedef struct
{
char dm[5]; //产品代码
char mc[11]; //产品名称
int dj; //单价
int sl; //数量
long je; //金额
}PRO;
PRO sell [NAX];
void ReadDat();
void WriteDat();
void SortDat()
{
}
void main()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
void ReadDat()
{
FILE*fp;
Char sir[80];ch[11];
int i;
fp=fopen("TN.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(oh);
sell[i].je=(long)sell[i].dj*sell
[i].sl;
}
fclose(fp);
}
void WriteDat()
{
FILE*fp;
int i;
fp=fopen("OUT.DAT","w");
for(i=0;i<100; i++)
{
fprintf(fp,"%s%s%4d%5d%10ld/n",
sell[i].dm,sell[i].mc,sell[i].dj,
sell[i].sl,sell[i].je);
}
fclose(fp);
}
问答题已知数据文件IN.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编写一个函数jsValue(),其功能是:求出数组a中个位上的数减去千位上的数减去百位上的数减去十位上的数大于0的数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat(),把结果cnt、pjz1和pjz2输出到OUT.DAT文件。
例如,1239,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
8129,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。”
程序中已定义数组a[300]、b[300],已定义变量cnt、pjz1和pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
[试题程序]
#include<stdio.h>
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;
void readDat();
void writeDat();
void jsValue()
{
}
voidmain()
{
readDat();
jsValue();
writeDat();
printf("cnt=%d/n满足条件的数的平均值pjz1
=%7.2lf/n不满足条件的数的平均值pjz2
=%7.2lf/n",cnt,pjz1,pjz2);
}
void readDat()
{
FILE*fp;
int i;
fp=fopen("IN.DAT","r");
for(i=0;i<300;i++)
fscanf(fp,"%d,",&a[i]);
fclose(fp);
}
void writeDat()
{
FILE*fp;
fp=fopen("OUT.DAT","w");
fprintf(fp."%d/n%7.2lf/n%7.2lf/n",
cnt,pjz1,pjz2);
fclose(fp);
}
问答题已知有如下关系模式:R1(a, b, c), R2(c, d, a), R3(e, f), R4(a, e, g),其中标下划线的属性是主码。请将上述关系模式用适当的ER图表示出来,并用下划线标注出作为实体主码的属性。
问答题已知文件IN.DAT中存有200个4位数,并已调用读函数readDat(),把这些数存入数组a中。请编写函数jsVal(),其功能是:依次从数组a中取出4位数,如果该4位数连续小于它以后的5个数,且该数是偶数(该4位数以后不足5个数,则不统计),则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat(),把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。
程序中已定义数组a[200],b[200],已定义变量cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
[试题程序]
#include<stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt=0;
void writeDat();
void jsVal()
{
}
void readDat()
{
int i;
FILE*fp;
fp=fopen("IN.DAT", "r");
for(i=0; i<MAX; i++)
fscanf(fp, "%d",
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf("满足条件的数的个数=%d/n", cnt);
for(i=0; i<cnt; i++)
printf("%d", b[i]);
printf("/n");
writeDat();
}
void writeDat()
{
FILE*fp;
int i;
fp=fopen("OUT.DAT", "w");
fprintf(fp, "%d/n", cnt);
for(i=0; i<cnt; i++)
fprintf(fp, "%d/n", b[i]);
fclose(fp);
}
问答题函数ReadDat()实现从文件in.dat中读取1000个十进制整数到数组xx中,请编制函数Compute()分别计算出xx中数值为偶数的个数even,所有数值为奇数的平均值ave1,偶数的平均值ave2以及所有偶数的方差totfc的值,最后调用函数WriteDat()把结果输出到out.dat文件中。计算方差的公式如下:设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)请勿改动主函数main()和输出函数WriteDat()的内容。#include<stdio.h>#include<stdlib.h>//在这个程序中包括VC6.0中标准库函数#include<string.h>//在这个程序中包括VC6.0中字符串处理函数#defineMAX1000intxx[MAX],even=0;doubleavei=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);/*从文件in.dat中读取1000个十进制整数到数组xx中*/intReadDat(void){FILE*fp;inti;if((fp=fopen("in.dat","r"))==NULL)return1;//如果文件in.dat为空,则返回1for(i=0;i<MAX;i++)fscanf(fp,"%d,",//从文件in.dat中读取MAX个数,存入数组xxfclose(fp);return0;//成功从in.dat中读取MAX个数并存入数组xx中,函数返回0}voidCompute(void){}voidmain(){inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat()){printf("数据文件in.dat不能打开!\007\n");return;}Compute();printf("EVEN=%d\nAVEl=%lf\nAVE2=%lf\nTOTFC=%lf\n",even,ave1,ave2,tetfc);WriteDat();}/*把结果输出到out.dat文件中*/voidWriteDat(void){FILE*fp;fp=fopen("out.dat","w");fprintf(fp,"%d\n%lf\n%lf\n%lf\n",even,ave1,ave2,totfc);fclose(fp);}
问答题函数ReadDat()实现从in.dat文件中读取20行数据并存放到字符串数组xx中(每行字符串长度均小于80)。请编写函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到out.dat文件中。
条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如: 位置0 1 2 3 4 5 6 7 8
源字符串d c b a h g f e
4 3 2 1 9 8 7 6 5
则处理后字符串h g f e a b c d
8 7 6 5 9 1 2 3 4
注意:部分源程序已经给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
char xx[20][80];
void jsSort()
{
}
void ReadDat()
{
FILE *in;
int i=0;
char *p;
in=fopen("in.dat","r");
while(i<20
if (p)
*p=0;
i++;
}
fclose(in);
}
void WriteDat()
{
FILE *out;
int i;
out=fopen("out.dat","w");
for(i=0;i<20;i++)
{
printf("%s/n",xx[i]);
fprintf(out,"%s/n",xx[i]);
}
fclose(out);
}
void main ()
{
ReadDat();
jsSort();
WriteDat();
}
问答题下列程序的功能是:找出所有100以内(含100)满足I、I+4和I+10都是素数的整数I(I+10也是在100以内)的个数cnt,以及这些I之和sum。请编写函数countValue()实现程序功能,最后调用函数writeDAT(),把结果cnt和sum输出到文件OUT.DAT中(数值1不是素数)。
注意:请勿改动主函数main()和输出数据函数writeDAT()的内容。
【试题程序】
#include < stdio.h >
int cnt, sum;
void writeDAT () ;
int isPrime (int number)
{
int i,tag=1;
if (number == 1 )
return 0 ;
for (i =2 ;tag i ++ )
if (number%i == 0 )
tag =0;
return tag;
}
void countValue ()
{
}
void main ()
{
cnt = sum =0;
countValue () ;
printf ("满足条件的整数的个数 =%d/n",
cnt) ;
printf ( "满足条件的整数的和值 =% d / n",
sum) ;
writeDAT () ;
}
void writeDAT ()
{
FILE * fp;
fp = fopen ( "OUT. DAT", "w") ;
fprintf (fp, "%d/n%d/n", cnt, sum) ;
fclose (fp) ;
}
问答题下列程序的功能是:计算500~800之间素数的个数cnt,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件OUT66.DAT中。 注意:部分源程序己给出。 请勿改动主函数main()和写函数writeDAT()的内容。 试题程序: include<stdio.h> int cnt, sum; void countValue () void main ( ) cnt=sum=0; countValue (); printf("素数的个数=%d/n",cnt); printf("按要求计算机得值=%d/n", sum); writeDAT ( ); writeDAT ( ) FILE *fp; fp=fopen ("OUT66.DAT", "w"); fprintf (fp, "%d/n%d/n", cnt, sum); fclose(fp);
问答题设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。其中,商品号代表一类商品,商品号、单价、销售数量和销售单价均为整型。
请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量×(销售单价-单价)。要求商品号和年份为输入参数,总毛利用输出参数返回。
如上所示,存储过程包括过程首部和过程体。过程名是数据库服务器合法的对象标识;参数列表:用名字来标识调用时给出的参数值,必须指定值的数据类型。参数可以是输入参数或输出参数,默认为输入参数。
问答题在动态转储中,利用转储文件只能将数据库恢复到转储过程中的某个状态,且转储文件中的数据可能不一致,只有和_________文件综合起来使用,才能将数据库恢复到一致状态。
问答题函数ReadDat()实现从in.dat文件中读取20行数据并存放到字符串数组xx中(每行字符串长度均小于80)。请编写函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到out.dat文件中。 例如: 位置0 1 2 3 4 5 6 7 源字符串h g f e d c b a 则处理后字符串h a f c d e b g 注意:部分源程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.h> #include<string.h> #include<conio.h> char xx[20][80]; void jsSort() void ReadDat() FILE *in; int i=0; char *p; in=fopen("in.dat","r"); while(i<20&&fgets(xx[i],80,in)!=NULL) p=strchr(xx[i],'/n'); if(p) *p=0; i++; fclose(in); void WriteDat() FILE *out; int i; out=fopen("out.dat","w"); for(i=0;i<20; i++) printf("%s/n",xx[i]); fprintf(out,"%s/n",xx[i]); fclose(out); void main() ReadDat(); jsSort(); WriteDat();
问答题设在SQL Server 2008某数据库中,已建立了四个文件组:fg1、fg2、fg3和fg4,以及一个分区函数RangePF1。RangePF1的定义代码如下:
CREATE PARTITION FUNCTION RangePF1(int)
AS RANGE LEFT FOR VALUES(100,200,300)
问答题函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数Compute()分别计算出数组xx中奇数的个数odd、偶数的个数even,以及所有数的平均值aver和方差totfc的值。最后调用函数WriteDat(),把结果输出到OUT.dat文件中。计算方差的公式如下:原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleaver=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void)FILE*fp;inti,j;if((fp=fopen("IN.dat","r"))==NULL)return1;for(i=0;i<100;i++)for(j=0;j<10;j++)fscanf(fp,"%d,",fscanf(fp,"/n");if(feof(fp))break;fclose(fp);return0;voidCompute(void)voidmain()inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat())printf("数据文件IN.dar不能打开!/007/n");return;Compute();printf("odd=%d/neven=%d/naver=%f/ntotfc=%f/n",odd,even,aver,totfc);WriteDat();voidWriteDat(void)FILE*fp;fp=fopen("OUT.dat","w");fprintf(fp,"%d/n%d/n%f/n%f/n",odd,even,aver,totfc);fclose(fp);
问答题已知IN7.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数 jsVal(),其功能是:依次从数组 a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat() 把结果cnt及数组 b中符合条件的4位数输出到 OUT7.DAT文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200],b[200],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include
#define MAX 200
int a[MAX], b[MAX], cnt = 0;
void writeDat();
void jsVal()
{
}
void readDat()
{
int i;
FILE *fp;
fp = fopen("IN7.DAT", "r");
for(i = 0; i < MAX; i++) fscanf(fp, "%d",
close(fp);
}
main()
{
int i;
readDat();
jsVal();
printf("满足条件的数=%d/n", cnt);
for(i = 0; i < cnt; i++) printf("%d ", b[i]);
printf("/n");
writeDat();
}
void writeDat()
{
FILE *fp;
int i;
fp = fopen("OUT7.DAT", "w");
fprintf(fp, "%d/n", cnt);
for(i = 0; i < cnt; i++) fprintf(fp, "%d/n", b[i]);
fclose(fp);
}
