问答题如果数据库中的一个基本表中的数据量很少,且插入、删除、更新等操作频繁,该基本表最佳采用的文件结构是_________。
问答题已知在文件in70.dat中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数 totNum。(2)求这些数右移一位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz。最后调用函数WriteDat()把所有结果输出到文件out70.dat中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<conio.h> #define MAXNUM 200 int xx[MAXNUM]; int totNum=0; int totCnt=0; double totPjz=0.0; int ReadDat(void); void WriteDat(void); void CalValue(void) void main ( ) int i; clrscr(); for (i=0; i<MAXNUM; i++) xx[i] =0; if (ReadDat ( )) printf ("数据文件IN70.DAT不能打开!/007/n"); return; CalValue(); printf ("文件IN70.DAT中共有正整数=%d个/In", totNum); printf ("符合条件的正整数的个数=%d个/n", totCnt); printf ("平均值=%.2lf/n",totPjz); WriteDat(); int ReadDat(void) FILE *fp; int i=0; if((fp=fopen("IN70.DAT","r")==NULL) return 1; while(!feof(fp)) fscanf (fp, "%d", return 0; void WriteDat(void) FILE *fp; fp=fopen("OUT70.DAT","w"); fprintf(fp,"%d/n%d/n%.2lf/n",totNum, totCnt,totPjz); fclose(fp);
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入字符串数组xx中。请编写函数StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符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 StrCharJR(void) void main() if(ReadDat()) printf("数据文件IN.DAT不能打开!/n/007"); return; StrCharJR(); 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 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);
问答题已知在IN.DAT文件中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()读取这100个销售记录并存入结构数组sell中。请编写函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。 注意:部分程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WmeDat()的内容。 #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);
问答题已知在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);
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<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);
}
问答题fclese(out);
问答题函数ReadDat()实现从文件in.dat中读取一篇英文文章,存入到无符号字符串数组xx中,请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,其替代值仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
替代关系:f(p)=p*17 mod 256,mod为取余运算,P是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)是奇数时,则该字符不变,否则用f(p)替代所对应的字符。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
unsigned char xx[50][80];
int maxline=0;/*文章的总行数*/
int ReadDat(void);
void WriteDat(void);
void encryptChar()
{
unsigned int val;
}
void main()
{
if(ReadDat())
{
printf("数据文件in.dat不能打开!/n/007");
return;
}
encryptChar();
WriteDat();
}
/*从文件in.dat中读取一篇英文文章, 存入到无符号字符串数组xx中*/
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;
}
/*把结果xx输出到文件out.dat中*/
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,xx中所有奇数的平均值ave1,并求出xx中数值为偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WdteDat()把结果输出到out.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;doubleave1=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;for(i=0;i<MAX;i++)fscanf(fp,"%d,",fclose(fp);return0;}voidCompute(void){}voidmsin(){inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat()){printf("数据文件in.dat不能打开!\007\n");return;}Compute();printf("ODD=%d\nAVE1=%lf\nAVE2=%lf\nTOTFC=%lf\n",odd,ave1,ave2,totfc);WriteDat();}/*把结果输出到out.dat文件中*/voidWriteDat(void){FILE*fp;fp=fopen("out.dat","w");fprintf(fp,"%d\n%lf\n%lf\n%lf\n",odd,ave1,ave2,totfc);fclose(fp);}
问答题两阶段加锁协议可以保证事务调度的_________性。
问答题下列程序的功能是选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出满足条件的4位自然数的个数cnt及它们的和sum。请编写函数countValue()实现程序功能,最后调用函数writeDAT(),把结果cnt和sum输出到文件OUT.DAT中。
请勿改动主函数main()和写函数writeDAT()的内容。
[试题程序]
#include<stdio.h>
int cnt, sum;
void writeDat();
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, "%dkn%d/n", cnt, sum);
fclose(fp);
}
问答题下列程序的功能是:寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指各位数字左右对称的整数,如121.
676、94249等。满足上述条件的数如m=[1、m2=121、m3=1331皆为回文数。请编写函数int
jsValue(long m)实现此功能,如果是回文数,则函数返回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)
fprintf(out,"m=%4ld,m*m=%6ld,m*m*m=%8ld /n",m,m*m,m*m*m);
} fclose(out); }
问答题在一个SELECT语句中,GROUP BY子句的逻辑执行顺序在ORDER BY子句之________。
问答题使用约束可以保证数据库中数据的正确性,其中_________约束允许出现空值但不允许出现重复值。
问答题设在SQL Server 2008某数据库中,有图书表(书号,书名,单价)和销售表(书号,销售时间,销售数量),假设单价和销售数量均为int类型,书号和书名均为varchar(50)类型,销售时间为datetime类型。请给出创建满足如下要求的多语句表值函数,该函数统计指定年份中每本书的销售总额。设函数名为:f_BookProfit(@year int),函数的返回结果格式如下: 书名 销售总额 BOO1 60000 … …
问答题在数据仓库的数据组织中,描述数据的综合或细节程度的指标称为_______。
问答题函数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 1 2 3 4 9 8 7 6 5 则处理后字符串d C b a e f g h 4 3 2 1 9 5 6 7 8 注意:部分源程序已经给出。 请勿改动主函数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();
问答题设有学生表(学号,姓名,所在系名)和选课表(学号,课程号,成绩)。现要建立统计每个系选课人数的视图。请补全下列语句:CREATE VIEW V1(系名,人数)ASSELECT所在系名,_________FROM选课表JOIN学生表ON选课表.学号=学生表.学号_________
问答题数据仓库是一个面向_________的、集成的、非易失的、且随时间变化的数据集合。
问答题在数据库系统出现系统故障后进行恢复时,对于事务T,如果在日志文件中有BEGINTRANSACTION记录,也有COMMIT记录,但其对数据的修改没有写到数据库中,则数据库管理系统处理这种事务时应执行的操作是_________。
问答题按照数据库应用系统生命周期模型,系统设计阶段细分为概念设计、_________设计和物理设计三个步骤。
