问答题现有关系模式:
教师授课(教师号,姓名,职称,课程号,课程名,学分,教科书名)
其函数依赖集为:
{教师号→姓名,教师号→职称,课程号→课程名,课程号→学分,课程号→教科书名}
问答题已知数据文件IN44.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT44.DAT文件中。 例如:9123,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 9812,9-8-1-2<0,则该数不满足条件,忽略。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include<stdio.h> int a[300],b[300],cnt=0; jsValue() main ( ) int i; readDat ( )3 j sValue ( ); writeDat ( ); for (i=0; i<cnt; i++) printf ("b[%d] =%d/n", i,b[i] readDat ( ) FILE *fp; int i; fp= fopen ( "IN44. DAT" , "r" ); printf ("cnt=%d/n", cnt); for (i=0; i<300; i++) fscanf (fp, "%d, ", writeDat ( ) FILE *fp; int i; fp=fopen ( "OUT44. DAT", "w" ); fprintf (fp, "%d/n", cnt); for (i=0; i<cnt; i++) fprintf(fp, "%d/n",b[i]); fclose (fp);
问答题已知数据文件IN57.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函幼sValue(),其功能是:求出个位数上的数减千位数上数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从大到小的顺序进行排序,最后调用函数writeDat()把数组b中的数输出到OUT57.DAT文件中。 例如:1239,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件,忽略。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include int a[300],b[300],cnt=0; jsValue() main() int i; readDat(); jsValue(); writeDat(); printf("cnt=%d/n",cnt); for(i=0;i<cnt;i++) printf("b[%d];%d/n",i,b[i]); readDat() FILE *fp; int i; fp=fopen("IN57.DAT","r"); for(i=0;i<300;i++) fscanf(fp,"%d,",&a[i]); fclose(fp); writeDat() FILE *fp; int i; fp=fopen("OUT57.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中。请编写函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。 例如,原文:Adb.Bcdza abck.LLhj 结果:Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。 注意:部分源程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WfiteDat()的内容。 #include<Stdio.h> #include<string.h> #include<conio.h> char xx[50][80]; int maxline=0; /*文章的总行数*/ int ReadDat(void); void WriteDat(void); void ConvertCharA(void) void main() if(ReadDat()) printf("数据文件IN.DAT不能打开!/n/007"); return; ConvertCharA(); 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);
问答题SQL Server中根据索引的实现方式,索引技术可以分成有序索引和_________两大类。
问答题下列程序的功能是:将一正整数序列K1,K2,…,K9重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左边),比K1大的数都在K1的后面(右边)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到out.dat文件中。 说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。 例如:序列6,8,9,1,2,5,4,7,3 经重排后成为3,4,5,2,1,6,8,9,7 注意:部分源程序已经给出。 请勿改动主函数main()和写函数writeDat()的内容。 #include<stdio.h> jsValue(int a[10][9]) void writeDat(int a[10][9]) FILE *fp; int i,j; fp=fopen("out.dat","w"); for(i=0; i<10; i++) for(j=0;j<9;j++) fprintf(fp,"%d",a[i][j]); if(j<=7) fprintf(fp,","); fprintf(fp,"/n"); fclose(fp); main() int a[10][9]= 6,8,9,1,2,5,4,7,3, 3,5,8,9,1,2,6,4,7, 8,2,1,9,3,5,4,6,7, 3,5,1,2,9,8,6,7,4, 4,7,8,9,1,2,5,3,6, 4,7,3,5,1,2,6,8,9, 9,1,3,5,8,6,2,4,7, 2,6,1,9,8,3,5,7,4, 5,3,7,9,1,8,2,6,4, 7,1,3,2,5,8,9,4,6, ; int i,j; jsValue(a); for(i=0;i<10;i++) for(j=0;j<9;j++) printf("%d",a[i][j]); if(j<=7) printf(","); printf("/n"); writeDat(a);
问答题设在SQL Server 2008某数据库中有商品表和销售表,两个表的定义如下:
CREATE TABLE商品表(
商品号char(10)PRIMARY KEY,
商品名varchar(40),
类别varchar(20),
进货单价int);
CREATE TABLE销售表(
商品号char(10)REFERENCES商品表(商品号),
销售时间datetime,
销售数量int,
销售单价int,
PRIMARY KEY(商品号,销售时间));
现要创建一个存储过程:查询指定类别的每种商品当前年累计销售总数量。请补全下列代码。
CREAlTE PROC p_TotalSales
@lb varchar(20)
AS
SELECT商品名,
(
SELECT______
FROM销售表t1
WHERE______and
year(销售时间)=year______
)AS当年销售总数量
FROM商品表t2 WHERE______
问答题在SQL Server 2008中,有两种身份验证模式,一种是混合身份验证模式,另一种是______身份验证模式。
问答题设某超市经营管理系统使用SQL Server 2008数据库管理系统。为了保证数据库可靠运行,数据库管理员设置了每天夜间对数据库一次全备份,备份数据保留2个月的备份策略。上线运行1年后,SQL Server数据库中数据已经达到近200GB。每天夜间要运行3个小时才能将数据库进行一次全备份,影响了夜间统计等业务正常运行。同时,备份空间也非常紧张。请解释出现此现象的原因,并提出优化的方法。
问答题函数readDat()的功能是从文件IN.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编写函数jsSort(),该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat(),把结果xx输出到文件OUT.DAT中。
条件:从字符串中间一分为二,左半部分按字符的ASCII码值降序排序,排序后,左半部分与右半部分按例子所示的方法进行交换。如果原字符串长度为奇数,则最中间的字符不予处理,字符仍放在原位置上。
例如,位置 0 1 2 3 4 5 6 7 8
原字符串 a b c d h g f e
2 3 4 9 8 7 6 5
处理后 h g f e d c b a
8 7 6 5 9 4 3 2
请勿改动主函数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&&fgets(xx[i],80,in)!
=NULL)
{
P=strchr(xx[i],"/n");
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);
}
问答题下列程序的功能是选出100~1000间的所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出满足上述条件的素数的个数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", sum);
writeDAT();
}
void writeDAT()
{
FILE*fp;
fp=fopen("OUT.DAT", "w");
fprintf(fp, "%d/n%d/n", cnt, sum);
fclose(fp);
}
问答题函数ReadDat()的功能是从文件IN.DAT中读取一篇英文文章,存入到字符串数组xx中。请编写函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母替换成该字母的下一个字母,如果是字母z,则替换成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果XX输出到文件OUT.DAT中。
例如,原文:Adb.Bcdza
abck.LLhj
结果:Aec.Bdeab
bcdl.LLik
原始数据文件存放的格式是:每行的宽度均小于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 ConvertCharA(void)
{
}
void main()
{
system("CLS");
if(ReadDat())
{
printf("数据文件IN.DAT无法打开!/n/007");
return;
}
ConvertCharA();
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;
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个4位数,并已调用读函数readDat(),把这些数存入数组a中,请编写函数jsVal(),其功能是:把数组a中1个4位数的千位数字和十位数字重新组成一个新的2位数ab(新2位数的十位数字是原4位数的千位数字,新2位数的个位数字是原4位数的十位数字);把个位数字和百位数字组成新的2位数cd(新2位数的十位数字是原4位数的个位数字,新2位数的个位数字是原4位数的百位数字);新组成的两个2位数满足:ab-cd>=0且ab-cd<=10目这两个数均是奇数,同时这两个数的十位数字均不为零。将满足此条件的4位数按从大到小的顺序存入数组b中,并计算满足上述条件的4位数的个数cnt,最后调用写函数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);
}
问答题编写函数jsValue,它的功能是:求Hofstadter数列中的第m项H(m)(m<1000),结果由函数返回。其中数列H(n)的定义为: H(1)=H(2)=1 H(n)=H(n-H(n-1))+H(n-H(n-2))(n>2) 最后调用函数writeDat()读取50个数据m,分别得出结果且把结果输出到文件out.dat中。 例如:当t=997时,函数值为605。 部分源程序已给出。 请勿改动主函数main()和写函数writeDat()的内容。 #include<stdio. h> int jsValue(int m) main ( ) int m; m=300; printf ("m=%d, k-%d/n", m, jsValue (m)); writeDat ( ); writeDat ( ) FILE *in, *out; int i,m,s; in= fopen ( "in. dar" , "r" ); out=f open ( "out. dar" , "w" ); for (i=0; i<50; i++) fscanf (in, "%d", s=jsValue (m); printf( "%d/n", s ); fprintf (out, "%d/n" , s ); fclose (in);fclose (out);
问答题函数ReadDat()的功能是实现从IN.DAT文件中读取一篇英文文章并存入字符串数组xx中。请编写函数ChA(),其功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个新字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推,一直处理到倒数第二个字符,最后一个字符的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 ChA(void)
{
}
void main()
{
if (ReadDat())
{
printf("数据文件IN.DAT不能打开!/n/007");
return;
}
ChA();
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);
}
问答题具体来说,UML的语义是定义在一个四层建模概念框架中的,这四层分别是:____________、元模型层、模型层和____________。
问答题在SQL Server 2000中,有教师表Teachers(TeacherID,Name,LeaderID),其中TeacherID是主码,类型是长度为4的普通编码定长字符串,且每位是0~9的数字字符;Name的类型是长度为10的普通编码可变长字符串;LeaderID是每个教师的领导的TeacherID。
问答题函数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
if(p)
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();
}
问答题函数ReadDat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a,大写字母和其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件out.dat中。
例:原文:Adb.Bcdza
abck.LLhj
结果:Aec.Bdeab
bcdl.LLik
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
char xx[50] [80];
int maxline=0; /*文章的总行数*/
int ReadDat (void);
void WriteDat(void);
void ConvertCharA(void)
{
}
void main()
{
if (ReadDat ())
{
printf("数据文件in.dat不能打开! /n/007");
return;
}
ConvertCharA ();
WriteDat ();
}
/*从文件in.dat中读取一篇英文文章存入到字符串数组xx中*/
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;
}
/*把结果xx输出到文件out.dat中*/
void WriteDat(void)
{
FILE *fp;
int i;
fp=fopen("out.dat", "w");
for(i=0; i<maxline; i++)
{
printf("%skn", xx[i]);
fprintf(fp, "%s/n", xx[i]);
}
fclose(fp);
}
问答题在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近且需要相关联数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为_________的设计方法。
