问答题设某连锁商店数据库中有关系模式R:
R(商店编号,商品编号,库存数量,部门编号,负责人)
如果规定:每个商店的每种商品只在一个部门销售,每个商店的每个部门只有一个负责人,每个商店的每种商品只有一个库存数量。
问答题已知在IN.DAT文件中存有若干个(<200)四位数字的正整数,函数ReadDat()读取若干个正整数并存入数组xx中。请编写函数CalValue(),其功能是:(1)求出这文件中共有多少个正整数totNum;(2)求这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到OUT.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;
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)
{
FIIE *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);
}
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入道字符串数组xx中。请编写函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。 例如: 原文: You He Me I am a student. 结果: Me He You student a am I 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 注意:部分程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.h> #include<string.h> #include<conio.h> #include<ctype.h> char xx[50][80]; int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void StrOL(void) void main() if(ReadDat()) printf("数据文件IN.DAT不能打开!/n/007"); return; StrOL(); 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);
问答题已知数据文件IN77.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果一个4位数的千位数字上的值加十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到 OUT77.DAT文件中。 注意:部分源程序己给出。 程序中已定义数组:a[1200],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("IN77.DAT","r"); for(i=0;i<MAX ;i++) fscanf(fp, "%d" , fclose(fp); main ( ) int i; readDat(); jsVal(); print f ("满足条件的数=%d/n", cnt); for(i=0;i<cnt;i++) printf("%d", b[i]); printf("/n"); writeDat(); writeDat() FILE *fp; int i; fp=fopen("OUT77.DAT","w"); fprintf(fp, "%d/n" ,cnt); for(i=0;i<cnt ;i++) fprintf(fp, "%d/n" ,b[i]); fclose(fp);
问答题函数ReadDat()的功能是实现从文件IN88.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharA(),该函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数WriteDat()把结果xx输出到文件OUT88.DAT中。 例如,原文:dAe,BfC CCbbAA 结果:ABCdef AACCbb 原始数据文件存放的格式是:每行的宽度均小于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 SortCharA ( ) void main() clrscr(); if (ReadDat()) printf ("数据文件IN88.DAT不能打开! /n/007"); return; SortCharA(); WriteDat(); int ReadDat(void) FILE *fp; int i=0; char *p; if((fp=fopen("IN88.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() FILE *fp; int i; clrscr(); fp=fopen("OUT88.DAT","w"); for(i=0;i printf("%s/n",xx[i]); fprintf(fp,"%s/n",xx[i]); fclose(fp);
问答题请编写函数countValue(),其功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 主函数最后调用函数progReadWrite()从in.dat文件中读取10组数据,分别得出结果,且把结果输出到out.dat文件中。 例如:若n为1000时,函数值应为:s=153.909064。 注意:部分程序已经给出。 请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。 #include<conio.h> #include<math.h> #include<stdio.h> double countValue(int n) void progReadwrite() FILE*fp,*wf; int i,n; float s; fp=fopen("in.dat","r"); if(fp==NULL) printf("数据文件in.dat不存在!"); return; wf=fopen("out.dat","w"); for(i=0; i<10; i++) fscanf(fp,"%d,",&n); s=(float)countValue(n); fprintf(wf,"%f/n",s); fclose(fp); fclose(wf); main() printf("1000以内符合条件的自然数之和的平方根=%f/n",countValue(1000)); progReadWrite();
问答题在关联规则挖掘中,关联规则的成立与否一般用________度和置信度两个指标进行描述。三、设计与应用题
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入到字符串数组xx中。请编写函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代后,仍存入数组xx的对应位置上,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。
替代关系:f(p)=p*11mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后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)
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中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main()函数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到out.dat文件中。 例如:5591是素数,该数满足条件,参加计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,该数不满足条件,参加计算平均值pjz2。 注意:部分源程序存在test.c文件中。 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2 请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include <stdio.h> //include语句说明各程序中包含vc6.0中的标准输入输出库函数stdio.h int a[300],cnt=0; //定义整型数组a[300]和变量cnt,变量cnt赋初值为0 double pjz1=0.O,pjz2=0.0; //定义变量pjz1,pjz2并赋初值为0.0 void writeDat(); //输出函数说明语句 void readDat(); //输入函数说明语句 int isP (int m) //函数isP (int m)判断m是否为素数,如果是素数则返回1,否则返回0 int i; for(i=2;i<m; i++) if (m%i==0) return 0; return 1; void jsValue() //函数jsValue()的定义语句 main() readDat(); //调用readDat()函数,从in.dat文件中读入300个四位数存入数组a中 jsValue(); //调用jsValue()函数,实现题目所要实现的功能 writeDat(); //调用writeDat()函数,把计算结果cnt,pjz1,pjz2输出到out.dat文件中 printf("cnt=%d/n 满足条件的平均值pzj1=%7.2lf/n不满足条件的平均值pzj2=%7.2lf/n”, cnt,pjz1,pjz2); //在屏幕上显示计算的结果 void readDat() //从in.dat文件中读入300个四位数存入数组a中 FILE *fp; //定义文件指针变量fp int i; //定义变量i fp=fopen("in.dat","r"); //以只读方式打开文件in.dat,并且文件指针fp指向文件in.dat for (i=0; i<300; 1++) //循环变量i从0依次递增到299 fscanf( fp,"%d,", //从文件in.dat中读入300个四位数存入数组a中 fclose(fp); //关闭文件in.dat void writeDat() //把计算结果写入到out.dat文件 FILE *fp; //定义文件指针变量fp fp=fopen("out.dat","w"); //以只写方式打开文件out.dat,并且文件指针fp指向文件out.dat fprintf(fp,"%d/n%7.2lf/n%7.2lf/n",cnt,pjz1,pjz2); //在屏幕上显示计算结果 fclose(fp); //关闭文件out.dat
问答题关系数据库中要求关系的主码不能为空,这属于数据模型三要素中的_______。
问答题已知在文件IN34.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量s1(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat( )把结果输出到文件OUT34.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<mem.h> #include<string.h> #include<conio.h> #include<stdlib.h> #define MAX 100 typedef struct char dm[5]; char mc[11]; int dj; int s1; 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 ( "IN34. 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] . s1=atoi (ch); sell [i] .je=(long)sell[i].dj*sell[i] .s1; fclose (fp); void WriteDat () FILE *fp; int i ; fp=fopen ( "OUT34. DAT", "w" ); for (i=0; i<100; i++) fprintf(fp,"%s %s %4d %5d %101d/n", sell Ii] .dm, sell [i] .mc, sell [i] .dj, sell[i] .s1,sell [i] .je); fclose (fp);
问答题已知数据文件IN.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编写函数jsValue(),其功能是:求出千位上的数加百位上的数等于十位上的数加个位上的数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1和pjz2输出到OUT.DAT文件。
例如,7153,7+1=5+3,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
8129,8+1≠2+9,则该数不满足条件,计算平均值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()
{
}
void main()
{
readDat();
jsValue();
writeDat();
printf("cnt=%d/n满足条件的数的平均值pjz1
=%7.21f/n不满足条件的数的平均值pjz2
=%7.21f/n", cnt, pjz1, pjz2);
}
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;
fp=fopen("OUT.DAT", "w");
fprintf(fp, "%d/n%7.21f/n%7.21f/n", cnt, pjz1, pjz2);
fclose(fp);
}
问答题为了保证正确地调度事务的并发操作,事务对数据库对象加锁、解锁需遵守加锁协议。加锁协议中两阶段加锁协议可以保证事务调度_______性。
问答题函数ReadDat()的功能是从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中。请编写函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替换,替换后的字符仍存入数组xx的对应的位置上,最后调用函数WriteDat(),把结果xx输出到文件PS.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII码值,f(p)是计算后新字符的ASCII码值),如果原字符是大写字母或计算后f(p)的值小于等于32,则该字符不变,否则,将f(p)所对应的字符进行替换。
注意:原始数据文件的存放格式是:每行的宽度均小于80个字符。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < stdlib.h >
#include < stdio.h >
#include < string.h >
#include < ctype.h >
unsigned char xx[50] [80] ;
int maxline = 0 ;
int ReadDat (void) ;
void WriteDat (void) ;
void encryChar ()
{
}
void main ()
system ("CLS") ;
if (ReadDat ())
{
printf ("数据文件 ENG.IN 无法打开!
/n/007") ;
return;
}
encryChar () ;
WriteDat () ;
}
int ReadDat (void)
{
FILE * fp;
int i =0;
unsigned char * p;
if ((fp = fopen ("ENG. IN","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 ()
{
FILE * fp;
int i ;
fp = fopen ("ps .dat", "w") ;
for (i =0;i <maxline;i++)
{ printf ("%s/n",xx[i]) ;
fprintf (fp, "%s/n", xx[i] ) ;
}
fclose (fp) ;
}
问答题设在SQL Server 2008某数据库中,已建立了四个文件组:fg1、fg2、fg3和fg4,以及一个分区函数RangePF1。RangePF1的定义代码如下:CREATE PARTITION FUNCTION RangePFl(int)AS RANGE LEFT FOR VALUES(100,200,300)
问答题设有高校选课系统,需要对学校的系信息、教师信息、课程信息、学生信息、学生选课信息进行管理。已知系(DEPT)信息包括系编号(DeptNO)、系名称(DeptName);教师(Teacher)信息包括教师号(TNO)、教师名(Tname);课程(Course)信息包括课程号(CNO)、课程名(CName)、课程学分(Credit);学生(Student)信息包括学号(SNO)、学生姓名(Sname)、学生性别(Sex)。
选课系统的管理规则如下:
Ⅰ. 一个系可聘用多名教师,一个教师只受聘于一个系;
Ⅱ. 一个系可有多名学生,一个学生只属于一个系;
Ⅲ. 一名教师可讲授多门课程,一门课程可由多名教师讲授;
Ⅳ. 一名学生可选修多门课程,一门课程可被多名学生选修;
Ⅴ. 学生选修完课程后,可获得相应课程的成绩。
针对以上描述,完成下列设计内容:
问答题下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。
请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT()从in.dat文件中读取50组数据,分别得出结果,且把结果输出到out.dat文件中。
例如,s字符串中原有的内容为Mn.1232xy,调用该函数后,结果为No.123Ayz。
注意:部分程序已经给出。
请勿改动主函数main()和输出数据函数readwriteDAT()的内容。
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>
#define N 81
void readwriteDAT();
void chg(char *s)
{
}
main()
{
char a[N];
printf("Enter a string: ");
gets(a);
printf("The original string is: ");
puts(a);
chg(a);
printf("The string after modified: ");
puts(a);
readwriteDAT();
}
void readwriteDAT()
{
int i;
char a[N];
FILE *rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<50;i++)
{
fscanf(rf,"%s",a);
chg(a);
fprintf(wf,"%s/n",a);
}
fclose(rf);
fclose(wf);
}
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入字符串数组xx中。请编写函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代后,仍存入数组xx的对应的位置上,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。
替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后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)
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);
}
问答题下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(X)-X=0的一个实根。
Xn+1=cos(Xn) 迭代步骤如下:
(1)取X1初值为0.0; (2)
X0=X1,把X1的值赋给X0;
(3)X1=cos(X0),求出一个新的X1;
(4)若X0-X1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);
(5)所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。
请编写函数countValue()突现程序的要求,最后调用函数writeDat(),把结果输出到OUT.DAT文件中。
注意:部分源程序已给出。 请勿改动主函数main()和输出数据函数writeDat()的内容。
#include <conio.h> #include <math.h>
#include <stdio.h> float countValue()
{ } void writeDat()
{ FIIE *wf; wf=fopen("OUT.DAT","w");
fprintf(wf,"%f/n",countValue()); fclose(wf);
} main() {
printf("实根=%f/n",countValue());
printf("%f/n",cos(countValue())-countValue());
writeDat(); }
问答题函数ReadDat()实现从文件IN47.DAT中读取1000个十进制整数到数组xx中。请编制函数Compute()分别计算出xx中偶数的个数even、奇数的平均值avel、偶数的平均值ave2及所有偶数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT47.DAT文件中。计算方差的公式如下:设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。试题程序:#include#include#include#defineMAX1000intXX[MAX],odd=0,even=0;doubleavel=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void)FILE*fp;inti,j;if((fp=fopen("IN47.DAT","r"))==NULL)return1;for(i=0;i<100;i++)for(j=0;j<10;j++)fscanf(fp,"%d,",for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat())printf("数据文件IN47.DAT不能打开!/007/n");return;Compute();printf("EVEN=%d/nAVE1=%f/nAVE2=%f/nTOTFC=%f/n",even,ave1,ave2,totfc);WriteDat();voidWriteDat(void)FILE*fp;inti;fp=fopen("OUT47.DAT","w");fprintf(fp,"%d/n%lf/n%lf/n%lf/n",even,ave1,ave2,totfc);fclose(fp);
