问答题下列程序的功能是:将大于整数m且紧靠m的k个被3除余1的素数存入数组xx。请编写函数num(int m,imt k,int xx[])实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。 例如:若输入17,5,则应输出:19,31,37,43,61。 部分源程序已给出。 请勿改动主函数main()和输出数据函数readwriteDat()的内容。 #include <conio.h> #include <stdio.h> void readwriteDat(); void num(int m, int k, int xx[]) main ( ) int m,n,xx[1000]; clrscr(); printf("/nPlease enter two integers:"); scanf(" %d%d" , num(m,n,xx); for(m=0;m<n;m++) printf(" %d" ,xx[m]); printf("/n" ); readwriteDat(); viod readwriteDat() int m,n, xx[1000], i; FILE *rf,*wf; rf=fopen("in.dat" ," r" ); wf=fopen(" out.dat" ," w" ); for(i=0;i<10;i++) fscanf(rf," %d%d" , num(m,n,xx); for(m=0;m<n;m++)fprintf(wf," %d" ,xx[m] fprintf(wf,"/n" ); fclose(rf); fclose(wf);
问答题函数readDat()的功能是从文件IN.DAT中读取20行数据,存放到字符串数组xx中(每行字符串长度均小于80)。请编写函数jsSort(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数writeDat(),把结果xx输出到文件OUT.DAT中。
条件:字符串从中间一分为二,左边部分按字符的ASCII码值降序排序,右边部分按字符的ASCII码值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,仍放在原位置上。
例如,
位置 0 1 2 3 4 5 6 7 8
原字符串 a b c d h g f e
处理后 d c b a e f g h
注意:请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【试题程序】
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
char xx[20][80];
void readDat();
void writeDat();
void jsSort()
{
}
void main()
{
readDat();
jsSort();
writeDat();
}
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 ;
system ("CLS") ;
out = fopen ( "OUT. DAT", "w" ) ;
for (i =0;i <20;i ++ )
{
printf ("%s/n",xx[i]) ;
fprintf (out, "%s/n", xx[i] ) ;
}
fclose (out) ;
}
问答题在UML模型中,用于表达一系列的对象、对象之间的联系以及对象间发送和接收消息的图是_________。
问答题已知在IN.DAT文件中存有若干个(<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编写函数CalValue(),其功能是:(1)求出文件中的正整数个数totNum;(2)求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到OUT.DAT文件中。
注意:部分源程序已经给出。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include <stdio.h>
#include <conio.h>
#define MAXNUM 200
int xx[MAXNUM];
int totNum=0; /*IN.DAT文件中的正整数个数*/
int totCnt=0; /*符合条件的正整数个数*/
double totPjz=0.0; /*平均值*/
int ReadDat(void);
void writeDat(void);
void CalValue(void)
{
}
void main()
{
int i;
for (i=0;i<MAXNUM;i++)
xx[i]=0;
if(ReadDat())
{
printf("数据文件IN.DAT不能打开! /007/n");
return;
}
CalValue();
printf("IN.DAT文件中的正整数个数=%d个/n",totNum);
printf("符合条件的正整数个数=%d个/n",totCnt);
printf("平均值=%.2f/n",totPjz);
writeDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
if ((fp=fopen("IN.DAT","r"))==NULL)
return 1;
while (!feof(fp)
fscanf(fp,"%d,",
fclose(fp);
return 0;
}
void writeDat(void)
{
FILE *fp;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d/n%d/n%6.2f/n",totNum,totCnt,totPjz);
fclose(fp);
问答题已知在IN.DAT文件中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编写函数SortDat(),其功能是:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。
注意:部分程序已经给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.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("IN.DAT","r");
for(i=0;i<MAX;i++)
{
fgets(str,80,fp);
memcpy(sell[i].dm,str,4);
memcpy(sell[i].mc,str+4,10);
memcpy(ch,str+14,4);
sell[i].dj=atoi(ch);
memcpy(ch,str+18,5);
sell[i].sl=atoi(ch);
sell[i].je=(long)sell[i].dj*sell[i].sl;
}
fclose(fp);
}
void WriteDat(void)
{
FILE *fp;
int i;
fp=fopen("OUT.DAT","w");
for(i=0;i<MAX;i++)
{
printf("%s %s %4d %5d %5d/n",
sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fprintf(fp,"%s %s %4d %5d %5d/n",
sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fclose(fp);
}
问答题已知在文件IN.DAT中存有若干个(个数<200)4位正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编写函数CalValue(),其功能是:(1)求出这个文件中共有多少个正整数totNum。(2)求这些数右移一位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat(),把所有结果输出到文件OUT.DAT中。
请勿改动主函数main()、读函数ReadDat()和写函数WfiteDat()的内容。
[试题程序]
#include<stdio.h>
#include<stdlib.h>
#define NAXNUN 200
int xx[MAXNUM];
int totNum=0;
int totCnt=0;
double totPjz=0.0;
int ReadDat(void);
void WriteDat(void);
void CalValue(void)
{
}
voidmain()
{
int i;
system("CLS");
for(i=0;i<MAXNUM;i++)
xx[i]=0;
if(ReadDat())
{
printf("数据文件IN.DAT无法打开!
/007/n");
return;
}
CalValue();
printf("文件IN.DAT中共有正整数=%d
个/n",totNum);
printf("符合条件的正整数的个数=%d个
/n",totCnt);
printf("平均值=%.2lf/n",totPjz);
WrteDat();
}
int ReadDat(void)
{
FILE*fp;
int i=0;
if((fp=fopen("IN.DAT","r"))==NULL)
return 1;
while(! feof(fp))
{
fscanf(fp,"%(i",
}
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE*fp;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d/n%d/n%.2lf/n",tot-
Num,totCnt,totPjz);
fclose(fP);
}
问答题分布式数据库的_________透明性是最高级别的透明性,它使得在编写程序时用户只需要对全局关系进行操作,这样简化了应用程序的维护。
问答题已知数据文件IN87.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数isValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt,pjz1,pjz2,输出到out87.dat文件中。 例如:6712,6+2=7+1,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 8129,8+9≠1+2,则该数不满足条件,计算平均值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 jsValue() main ( ) int i; readDat ( ); jsValue(); writeDat ( ); printf ( "cnt=%d/n满足条件的平均值pjz1=%7.21fkn不满足条件的平均值pjz2=% 7.21f/n",cnt,pjz1,pjz2); readDat ( ) FILE *fp; int i; fp=fopen( "in87.dat","r"); for (i=0; i<300; i++) fscanf(fp,"%d,", fclose(fp); writeDat ( ) FILE *fp; int i; fP=fopen("out87.dat","w"); fprintf(fP,"%dkn%7.21f/n%7.21f/n",cnt ,pjz1,pjz2); fclose(fp);
问答题已知在IN.DAT文件中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编写函数SortDat(),其功能是:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。 注意:部分源程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.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("IN.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("OUT.DAT","w"); for(i=0; i<100;i++) printf("%s%s%4d%5d%5d/n", sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); fprintf(fp,"%s%s%4d%5d%5d/n", sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); fclose(fp);
问答题设某超市经营管理系统使用SQL Server 2008数据库管理系统,上线运行一年后,用户反映速度缓慢。经技术人员分析,发现速度缓慢的原因为销售单据表和销售单据明细表数据量巨大,当进行这两个表相关查询时就会造成SQL语句执行缓慢。已知这两个表结构如下:
销售单据表(销售单据编号,付款总金额,销售时间,销售人员编号,收银台编号),销售单据明细表(销售单据编号,销售时间,商品编号,单价,数量,总价)
从业务上看,程序经常会查询1个月内和最近6个月内销售相关数据。为了保证系统稳定运行,两位工程师分别给出了两种优化方案:
甲工程师:按照销售时间将两张表分别拆分为每月一张表,在系统进行查询时按照给定条件到相关的表中直接查询,降低查询涉及到的数据。
乙工程师:使用SQL Server 2008的分区功能,将两张表变为分区表,按照销售时间每年一个分区,降低查询涉及到的数据。
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数一个是奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat(),把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序已经给出。 程序中已定义数组:a[200],b[200];已定义变量:cnt。 请勿改动数据文件IN.DAT中的任何数据及主函数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("IN.DAT","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d,",&a[i]); fclose(fp); 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); void main() int i; readDat(); J sVal(); printf("满足条件的数=%d/n",cnt); for(i=0;i<cntj i++) printf("%d",b[i]); printf("/n"); writeDat();
问答题设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。其中,商品号代表一类商品,商品号、单价、销售数量和销售单价均为整型。请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量×(销售单价一单价)。要求商品号和年份为输入参数,总毛利用输出参数返回。
问答题已知在in.dat中存有若干个(个数<200)四位十进制数字组成的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1.求出该文件中共有多少个正整数totNum;2.求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz。最后main()函数调用函数WriteDat()把所求的结果输出到out.dat文件中。
请勿改动数据文件in.dat中的任何数据,主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#define MAXNUM 200
int xx[MAXNUM];
int totNum=0; //文件in.dat中共有多少个正整数
int totCnt=0; //符合条件的正整数的个数
double totPjz=0.0; //平均值
int ReadDat(void);
void WriteDat(void);
void CalValue(void)
{
}
void main()
{
int i;
for(i=0; i<MAXNUM; i++)
xx[i]=0;
if(ReadDat())
{
printf("数据文件in.dat不能打开!/007/n");
return;
}
CalValue();
printf("文件in.dat中共有正整数=%d个/n", totNum);
printf("符合条件的正整数的个数=%d个/n", totCnt);
printf("平均值=%.2lf/n", totPjz);
WriteDat();
}
/*读取这若干个正整数并存入数组xx中*/
int ReadDat(void)
{
FILE *fp;
int i=0;
if((fp=fopen("in.dat", "r"))==NULL)
return 1; //如果in.dat文件为空, 则返回1
/*while一直执行, 直到文件in.dat的结尾退出*/
while(!feof(fp))
{
fscanf(fp, "%d, ", //从文件in.dat读取一个整数存入xx[i]中, 同时i加1
}
fclose(fp);
return 0; //把文件in.dat若干个正整数读取并正确存入数组xx中返回0
}
/*把计算结果存入文件out.dat中*/
void WriteDat(void)
{
FILE *fp;
fp=fopen("out.dat", "w");
fprintf(fp, "%d/n%d/n%.2lf/n", totNum, totCnt, totPjz);
fclose(fp);
}
问答题有两张关系表:
Students(SID,SName,Sex,Dept)
Prizing(SID,PName,Type,PDate)
Students表描述的是学生基本信息,Prizing表描述的是学生获奖信息。
问答题函数ReadDat()实现从IN.DAT文件中读取1000个十进制整数到数组xx中。请编写函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的个数even,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。计算方差的公式如下:其中:N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容。#include<string.h>intxx[MAX],odd=0,even=0;doubleave1=0.0,ave2=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,",&xx[i*10+j]);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.DAT不能打开!/007/n");return;Compute();printf("ODD=%d/nEVEN=%d/nAVE1=%f/nAVE2=%f/nTOTFC=%f/n",odd,even,avel,ave2,totfc);WriteDat();voidWriteDat(void)FILE*fp;fp=fopen("OUT.DAT","w");fprintf(fp,"%d/n%d/n%f/n%f/n%f/n",odd,even,ave1,ave2,totfc);fclose(fp);
问答题已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中。请编写函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat(),把结果输出到out.dat文件中。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。 注意:部分源程序已经给出。 程序中已定义数组:a[300];已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include<stdio.h> int a[300],cnt=0; double pjz1=0.0,pjz2=0.0; void jsValue() 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.2f/n%7.2f/n",cnt,pjz1,pjz2); fclose(fp); main() ReadDat(); jsValue(); writeDat(); printf("cnt=%d/n满足条件的平均值pzj1=%7.2f/n不满足条件的平均值pzj2=%7.2f/n",cnt,pjz1,pjz2);
问答题在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近且需要相关联数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为_________的设计方法。
问答题函数ReadDat()的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中。请编写函数StrOR(),该函数的功能是:以行为单位把字符串中所有小写字母“o”左边的字符串内容移至该串的右边存放,然后把小写字母“o”删除,余下的字符串内容移到已处理字符串的左边存放,最后把已处理的字符串仍按行重新存入字符串数组xx中。最后调用函数writeDat(),把结果输出到文件OUT.DAT中。
例如,原文:You can create an index on any field
you have the correct record
结果:n any field Yu can create an index
rd yu have the crrect rec
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
char xx[50][80];
int maxline =0 ;
int ReadDat (void) ;
void WriteDat (void) ;
void StrOR (void)
void main ()
{
system ("CLS") ;
if (Readmat ())
{
printf ("数据文件 IN.DAT无法打开!
/n/007") ;
return;
}
StrOR () ;
WriteDat () ;
}
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 (fp) ;
return 0 ;
}
void Writemat (void)
{
FILE * fp;
int i ;
system ("CLS") ;
fp = fopen ( "OUT. DAT", "w" ) ;
for (i =0;i <maxline;i ++)
{
printf ("%s/n", xx[i] ) ;
fprintf (fp, "%s /n", xx[i] ) ;
}
fclose (fp) ;
}
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:把一个四位数的千位数字上的值,减去百位数字上的值,再减去十位数字上的值,最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat(),把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序已经给出。 程序中已定义数组:a[200],b[200];已定义变量:cnt。 请勿改动数据文件IN.DAT中的任何数据及主函数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("IN.DAT","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d,",&a[i]); fclose(fp); 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); void main() int i; readDat(); jsVal(); printf("满足条件的数=%d/n",cnt); for(i=0;i<cnt;i++) printf("%d",b[i]); printf("/n"); writeDat();
问答题分布式数据库系统的恢复控制采用的最典型策略是基于________阶段的提交协议。
