问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的5个数且该数是奇数,则统计出满足此条件的个数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();
问答题在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近且需要相关联数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为____________的设计方法。
问答题已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数diffCal(),其功能是:把一个四位数的个位数字上的值减去千位数字上的值,再减去百位数字上的值,最后减去十位数字上的值,如果得出的值大于等于0且原四位数是偶数,则统计出满足此条件的数的个数count,并把这些四位数按从小到大的顺序存入数组b中。最后调用写函数Wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。 注意:部分源程序已经给出。程序中已定义数组a[200]、b[200],已定义变量count。请勿改动数据文件IN.dat中的任何数据、主函数main()、读函数Rdata()和写函数Wdata()的内容。#include <stdio.h>#define MAX 200int a[MAX], b[MAX], count = 0;void diffCal() void Rdata () int i; FILE *fp; fp = fopen("IN. dat", "r"); for (i=0; i<MAX; i++) fscanf(fp, "%d,", fclose (fp);void Wdata () FILE *fp; int i; fp = fopen("OUT. dat", "w"); fprintf(fp, "%d/n", count); for (i=0; i<count; i++) fprintf(fp, "%d/n", b[i]); fclose (fp);void main () int i; Rdata (); diffCal(); printf("满足条件的数=%d/n", count); for (i=0; i<count; i++) printf("%d ", b[i]); printf ("/n"); Wdata ();
问答题已知数据文件IN.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编写函数jsValue(),其功能是:求出这些4位数中素数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用函数writeDat(),把数组b中的数输出到OUT.DAT文件中。
例如,5591是素数,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
注意:程序中已定义数组a[300]、b[300],已定义变量cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【试题程序】
#include < stdio .h >
int a[300],b[300],cnt=0;
void readDat () ;
void writeDat () ;
int isP (int m)
{
int i ;
for (i =2;i <m;i ++ )
if (m%i == 0 )
return 0 ;
return 1 ;
}
void jsValue ()
{
}
void main ()
int i ;
readDat () ;
j sValue () ;
writeDat () ;
printf ("cnt =%d/n", cnt) ;
for (i =0;i <cnt;i ++ )
printf ("b[%d] =%d/n",i,b[i]) ;
}
void readDat ()
{
FILE * fp;
int i ;
fp = fopen ( "IN. DAT", "r" ) ;
for (i =0;i <300;i ++ )
fscanf (fp, "%d, ",
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) ;
}
问答题已知数据文件IN27.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT27.DAT文件。 例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,8+1≠2+9,则该数不满足条件,忽略。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include〈 s tdio. h> int a[300], b[300], cnt=0; void jsValue() main ( ) int i; readDat ( ); jsValue(); writeDat ( ); printf("cnt=%dkn", cnt); for(i = 0; i 〈 cnt; i++) printf("b[%d]=%d/n", i, b[i]); readDat ( ) FILE *fp; int i; fp = fopen("IN27.DAT", "r"); for(i = 0; i 〈 300; i++) fscanf(fp, "%d,", fclose(fp); writeDat() FILE *fp; int i; fp = fopen("OUT27.DAT", "w"); fprintf (fp, "%d/n",cnt); for(i = 0; i 〈cnt; i++) fprintf(fp, "%d,/n", b[i]); fclose(fp);
问答题应用程序编写不当可能导致数据库中出现死锁,由于死锁导致的事务回滚属于数据库故障中的_________故障。
问答题在in.dat文件中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据并存放到结构数组aa中。请编写函数jsSort(),其功能是:要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat(),把结果bb输出到out.dat文件中。
注意:部分源程序已经给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef struct
{
int x1,x2,x3;
} data;
data aa[200],bb[200];
int jsSort()
{
void ReadDat()
{
FILE *in;
int i;
in=fopen("in.dat","r");
for(i=0;i<200,i++)
fscanf(in,"%d %d %d",
fclose(in);
void WriteDat(int count)
{
FILE *out;
int i;
out=fopen("out.dat","w");
for(i=0;i<count;i++)
{
printf("%d,%d,%d第一个数+第三个数=%d/n",
bb[i].x1,bb[i].x2,bb[i].x3,bb[i].x1+bb[i].x3);
fprintf(out,"%d %d %d/n",bb[i].x1,bb[i].x2,bb[i].x3);
}
fclose(out);
}
void main()
{
int count;
ReadDat();
count=jsSort(); /*返回满足条件的个数*/
WriteDat(count);
}
问答题编写一个函数findStr(),该函数统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为“as”,函数返回值是6。 函数ReadWrite()的功能是实现从文件in40.dat中读取两个字符串,并调用函数findstr(),最后把结果输出到文件out40.dat中。 注意:部分源程序已给出。 请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr()的花括号中填入你所编写的若干语句。 #include<stdio.h> #include<string.h> #include<conio.h> int findStr(char *str,char *substr) main ( ) char str[81],substr[3]; int n; clrscr(); printf("输入原字符串: "); gets(str); printf ("输入子字符串: "); gets(substr); puts(str); puts(substr); n=findStr(str,substr); printf("n=%dkn",n); ReadWrite(); ReadWrite() char ch, str[81],substr[3]; int n,len, i=0; FILE *rf,*wf; rf=fopen("in40.dat","r"); wf=fopen("out40.dat","w"); while(i<5) fgets(str,80,rf); fgets(substr,10,rf); len=strlen(substr)-1; ch=substr[len]; if(ch=='/n'||ch==Oxla) substr[len]=0; n=findStr(str,substr); fprintf(wf,"%dln",n); i++; fclose(rf); fclose(wf);
问答题已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中。请编写函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat(),把结果cnt、pjz1、pjz2输出到out.dat文件中。 例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件计算平均值pjz2。 注意:部分源程序已经给出。 程序中已定义数组:a[300];已定义变量:cnt、pjz1、pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include<stdio.h> int a[300],cnt=0; double pjz1=0.0,pjz2=0.0; int isP(int m) int i; for(i=2;i<m;i++) if(m%i==0) return 0; return 1; 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);
问答题设用UML设计某数据库应用系统,设计人员规划了一组应用程序集,该集合由动态链接库和可执行程序构成。为了展现这些应用程序集间的组织和依赖关系,以对源代码、可执行程序的发布等进行系统建模,应采用的UML图是____________图。
问答题请编制函数ReadDat()实现从文件IN83.DAT中读取1000个十进制整数到数组xx中。请编制函数Compute()分别计算出xx中奇数的个数odd、奇数的平均值ave1、偶数的平均值ave2及所有奇数的方差toffc的值。最后调用函数WriteDat()把结果输出到OUT83.DAT文件中。计算方差的公式如下:设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。注意:部分源程序已给出。请勿改动主函数main()和输写函数WriteDat()的内容。试题程序:#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleavel=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void)FILE*fp;if((fp=fopen("IN83.DAT","r"))==NULL)return1;fclose(fp);return0;voidCompute(void)voidmain()inti;for(i=0;i<MAX;i++xx[i]=0;if(ReadDat())printf("数据文件IN83.DAT不能打开!/007/n");return;Compute();printf("ODD=%d/nAVEl=%f/nAVE2=%f/nTOTFC=%f/n",odd,avel,ave2,totfc);WriteDat();voidWriteDat(void)FILE*fp;inti;fp=fopen("OUT83.DAT","w");fprintf(fp,"%d/n%lf/n%lf/n%lf/n",odd,ave1,ave2,totfc);fclose(fp);
问答题已知数据文件IN76.DAT中存有200个4位数,并己调用读函数readDat()把这些数存入数组a中,请编制一函数jsval(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千位数字),以及把百位数和十位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个十位数必须是一个奇数,另一个为偶数且两个十位数中至少有一个数能被17整除,同时两个新十位数字均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到 OUT76.DAT文件中。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数wiltedat()的内容。 试题程序: #include<stdio.h> #define MAX 200 int a[MAX],b[MAX],cnt=0; void jsVal( ) void readDat( ) int i; FILE *fp; fp=fopen("IN76.DAT","r"); for(i=0;i<MAX ;i++) fscanf(fp, "%d" , fclose(fp); 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("OUT76.DAT","w"); fprintf( fp, "%d/n" ,cnt); for(i=0;i<cnt;i++) fprintf(fp, "%d/n" ,b[i]); fclose(fp);
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入到字符串数组xx中。请编写函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代后,仍存入数组xx的对应位置上,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。
替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是大写字母,则该字符不变,否则将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)
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);
}
问答题请补充完整ReadDat()函数,实现从IN.DAT文件中读取1000个十进制整数到数组xx中。请编写函数Compute()分别计算出xx中数奇的个数odd,偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及所有偶数的方差totfc的值,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。计算方差的公式如下:其中:N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分程序已经给出。请勿改动主函数main()和输出数据函数WriteDat()的内容。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleave1=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void){FIIE*fp;if((fp=fopen("IN.DAT","r"))==NULL)return1;/**************************************//**************************************/fclose(fp);return0;}voidCompute(void){}voidmain(){inti;for(i=0;i<MAX;i++)if(ReadDat()){printf("数据文件IN.DAT不能打开!/007/n");return;}Compute();printf("ODD=%d/nEVEN=%d/nAVE1=%f/nAVE2=%f/nTOTFC=%f/n",odd,even,ave1,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);}
问答题如果数据库中的一个基本表中的数据量很少,且插入、删除、更新等操作频繁,该基本表最佳采用的文件结构是____________。
问答题下列程序的功能是:寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指各位数字左右对称的整数,如121、676、94249等。满足上述条件的数如m=11、m2=121、m3=1331皆为回文数。请编写函数intjsValue(longm)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后,把结果输出到out.dat文件中。 注意:部分源程序已给出。 请勿改动主函数main()的内容。 #include<stdio.h> #include<stdlib.h> #include<string.h> int jsValue(long n) main() long m; FILE *out; out=fopen("out.dat","w"); for (m=11;m<1000;m++) if (jsValue(m) &&jsValue(m*m) &&jsValue(m*m*m)) printf("m=%4ld,m*m=%6ld,m*m*m=%8ld/n",m,m*m,m*m*m); fprintf(out,"m=%4ld,m*m=%6ld,m*m*m=%8ld/n",m,m*m,m*m*m); fclose(out);
问答题已知在IN.DAT文件中存有N个(N<200)实数,函数ReadDat()读取这N个实数并存入数组xx中。请编写函数CalValue(),其功能是:(1)求出这N个实数的平均值aver;(2)分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到OUT.DAT文件中。 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WnteDat()的内容。 #include<stdio.h> #include<conio.h> #define MAXNUM 200 float xx[MAXNUM]; double aver=0.0; long sumint=0; double sumdec=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("平均值=%.21f/n",aver); printf("整数部分之和=%ld/n",sumint); printf("小数部分之和=%.2lf/n",sumdec); WriteDat(); int ReadDat(void) FILE *fp; int i=0; if((fp=fopen("IN.DAT","r"))==NULL) return 1; while(!feof(fp)) fseanf(fp,"%f,",&xx[i++]); fclose(fp); return 0; void WriteDat(void) FILE *fp; fp=fopen("OUT.DAT","w"); fprintf(fp,"%.21f/n%ld/n%.21f/n",aver,sumint,sumdec); fclose(fp);
问答题设有某商业单位需要建立商务数据库用以处理销售记账,它记录的数据包括:顾客姓名,所在单位及电话号码;商品名称,型号,产地及单价;某顾客购买某商品的数量及日期。假定无同名顾客,无同型号商品,电话公用,顾客可在不同日期买同一商品。
问答题已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值Ave1,以及不满足此条件的四位数的平均值Ave2。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。 例如:6712,6+2=7+1,则该数满足条件,计算平均值Ave1,且个数count=count+1。8129, 8+9!=1+2,则该数不满足条件,计算平均值Ave2。 注意:部分源程序已经给出。程序中已定义数组a[300],已定义变量count、Ave1、Ave2。请勿改动主函数main()、读函数Rdata()和写函数Wdata()的内容。#include <stdio. h>int a[300], count = 0;double Ave1 = 0.0, Ave2 = 0.0;void NumCal () void Rdata() FILE *fp; int i; fp = fopen("IN. dat", "r"); for (i=0; i<300; i++) fscanf( fp, "%d,", fclose (fp);void Wdata () FILE *fp; fp = fopen("OUT. dat", "w"); fprintf(fp, "%d/n%7.2f/n%7.2f/n", count, Ave1, Ave2); fclose (fp);main () Rdata (); NumCal ( ); Wdata (); printf ("count=%d/n 满足条件的平均值 Ave1=%7.2f/n 不满足条件的平均值Ave2=%7.2f/n", count, Ave1, Ave2);
问答题设在采用SQLServer2008数据库的图书馆应用系统中有三个基本表,表结构如下所示,请用SQL语句完成下列两个查询:
