问答题某网上商城因为业务发展,原有的系统不能很好的满足需要,因此采用了一套新的经营管理系统,此系统使用SQL Server 2008数据库管理系统。此系统上线运行前,需将商场原有的数据导入到新系统中。原有系统使用SQL Server 2000,数据结构与新系统不完全一致。因此需要把数据从SQL Server 2000导入到SQL Server 2008中,为了保证数据一致性,数据导入过程中要求暂停业务且必须在3小时内完成。
问答题在SQL Server 2008中,设有顾客表(顾客号,顾客名,所在地区,年龄),应用系统中需统计指定地区的顾客人数和平均年龄。请补全下列存储过程代码以完成该功能。CREATE PROC P_Count@area varchar(20)ASSELECT COUNT(*)AS人数,_________AS平均年龄FROM顾客表WHERE所在地区=@area
问答题已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat(),把这些数存入数组a中,请编写一个函数jsVal(),其功能是:用数组a中数的千位数字和十位数字重新组合成一个新的2位数(新2位数的十位数字是原4位数的千位数字,新2位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的2位数(新2位数的十位数字是原4位数的个位数字,新2位数的个位数字是原4位数的百位数字)。如果新组成的两个十位数均为素数,且其值均不为零,则将满足此条件的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();
int isprime(int m)
{
int i;
for(i=2;i<=m/2;i++)
if(m%i==0)return 0;
return 1;
}
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 main()
{
int i;
readDat();
jsVal();
printf("满足条件的数的个数=%d/n",cnt);
for(i=0;i<cnt;i++)
printf("%(i/n",b[i]);
printf("/n");
void 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);
}
问答题已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数diffVal(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数count,再求出所有满足此条件的四位数的平均值Ave1,以及不满足此条件的四位数平均值Ave2。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。 例如,1239,9-1-2-3>0,则该数满足条件,计算平均值Ave1,且个数count=count+1。 8129,9-8-1-2<0,则该数不满足条件,计算平均值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 diffVal()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(); diffVal(); Wdata(); printf ("count=%d/n 满足条件的平均值 pzj 1=%7.2f/n 不满足条件的平均值pzj2=%7.2f/n", count, Ave1, Ave2);
问答题通常数据库的转储机制有三种,分别是完全转储、差量转储和_________转储。
问答题请编写函数findRoot(),其功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。 迭代步骤如下: (1)取x1初值为0.0。 (2)把x1的值赋给x0,即x0=x1。 (3)求出一个新的x1,即x1=cos(x0)。 (4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。 (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 函数writeData()负责把结果输出到OUT.DAT文件中。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeData()的内容。 试题程序: #include<stdlib.h> #include<math.h> #include<stdio.h> void writeData(); float findRoot() float x1=0.00,x0; int i=0; do x0=x1;//将x1的值赋给x0 x1=cos(x0);//得到一个新的x1的值 while(fabs(x1-x0)>0.000001);//如果 误差比所要求的值大,则继续循环 return x1; void main() system("CLS"); printf("root=%f",findRoot()); writeData(); void writeData() FILE*wf; wf=fopen("OUT.DAT","w"); fprintf(wf,"%f",findRoot()): fclose(wf);
问答题请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDAT()的内容。 试题程序: #include<conio.h> #include<stdio.h> void countValue(int *a, int *n) main ( ) int aa[1000],n, k; clrscr(); countValue (aa, for(k=0;k<n; k++) if((k+1) %10 ==0) printf("%5d",aa[k]); printf("/n"); else printf("%5d",aa[k]); writeDAT(); writeDAT ( ) int aa[1000],n, k; FILE *fp; fp=fopen("out79.dat","w"); countValue(aa, for(k=0; k<n; k++) if((k+1)%10==0) fprintf(fp,"%5d",aa[k]); fprintf(fp,"/n"); else fprintf (fp,"%5d",aa[k]); fclose(fp);
问答题已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat(),把这些数存入数组a中,请编写函数jsVal(),其功能是:如果数组a中的4位数各位上的数字均是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数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",&a[i]);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf("满足奈件的数的个数=%d/n",cnt);
for(i=0;i<cnt;i++)
printf("%d/n",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);
}
问答题函数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) *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);
问答题IDEF0需求建模方法由箭头和_______两种元素构成。
问答题在一个数据库中,相关表的建表语句如下create table T1(al int primary key,a2 int.a3 int toreign key references T2(a3));create table T2(a3 int primary key.a4 int.a5 int foreign key references T2(a3));create table T3(a6 int primary key.a7 int);create table T4(;a1 int foreign key references T1(a1),a3 int foreign key references T2(a3),a6 int foreign key references T3(a6),a8 int,primary key(a1,a3,a6));请画出相应的ER图,使得可以从该ER图推导出上述表定义,其中实体和联系的名称可以自定。
问答题已知在IN.DAT文件中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编写函数SonDat(),其功能是:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WdteDat(),把结果输出到OUT.DAT文件中。 注意:部分程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WnteDat()的内容。 #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);
问答题在SQL Server 2008中,用户数据库中主要数据文件的扩展名为_________。
问答题函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中。编写函数Compute(),其功能是:分别计算出xx数组中奇数的个数odd、奇数的平均值ave1、偶数的个数even、偶数的平均值ave2,以及所有奇数的方差totfc的值。调用函数WritcDat(),把结果输出到OUT.dat文件中。计算方差的公式如下:式中,N为奇数的个数;xx[i]为奇数;ave1为奇数的平均值。原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数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)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,",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,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);
问答题现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或全不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入字符串数组xx中。请编写函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,把结果yy输出到OUT.DAT文件中。
注意:部分程序已经给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
char xx[100][11];
int yy[10];
int ReadDat(void);
void WriteDat(void);
void CountRs(void)
{
}
void main()
{
int i;
for(i=0;i<10;i++)
yy[i]=0;
if(ReadDat())
{
printf("选票数据文件IN.DAT不能打开!/n/007");
return;
CountRs();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i;
if((fp=fopen("IN.DAT","r"))==NULL)
return 1;
for(i=0;i<100;i++)
{
if(fgets(xx[i],12,fp)==NULL)
return 1;
}
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE *fp;
int i;
fp=fopen("OUT.DAT","w");
for(i=0;i<10;i++)
{
fprintf(fp,"%d/n",yy[i]);
printf("第%d个人的选票数=%d/n",i+1,yy[i]);
fclose(fp);
问答题为在某种程度上保证某数据库系统可靠地运行,在SQL Server 2000环境中,对其制定有下列三种备份策略。假设对此数据库进行一次完全备份需要4小时,差异备份需要2小时,日志备份需要1小时。设所有备份都是从凌晨1:00开始。
策略1:每周周日进行一次完全备份,每周周一至周六每天进行一次日志备份;
策略2:每周周日进行一次完全备份,每周周一至周六每天进行一次差异备份;
策略3:每天进行一次完全备份。
问答题函数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
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>
#include <string.h>
void readDat();
void writeDat();
char xx[20] [80];
void jsSort()
{
}
void main()
{
readDat ();
jsSort ();
writeDat ();
}
/*从文件in.dat中读取20行数据存放到字符串数组xx中*/
void readDat()
{
FILE *in;
int i=0;
char *p;
in=fopen("in.dat", "r");
while(i<20
if(p) *p=0;
i++;
}
fclose(in);
}
/*把结果xx输出到文件out.dat中*/
void writeDat()
{
FILE *out;
int i;
out=fopen("out.dat", "w");
for(i=0; i<20; i++)
{
printf("%skn", xx[i]);
fprintf(out, "%s/n", xx[i]);
}
fclose (out);
}
问答题在一个SELECT语句中,GROUP BY子句的逻辑执行顺序在WHERE子句之______。
问答题在SQL Server 2008中,现要将T1表的C1列(int类型)定义为标识列,初值和增量值均为1。请补全下列语句:CREATE FABLE T1(C1 int _________ (1,1),…)
问答题下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int jsValue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out43.dat中。 注意:部分源程序已给出。 请勿改动主函数main()。 试题程序: #include<stdio.h> int jsValue(long n) main() long m; FILE *out; out=fopen(",out43.dat","w"); for(m=11;m<1000;m++) if(jsValue(m) fprintf(out, "m=%41d,m*m=%61d,m*m*m=%81d/n",m,m*m,m*m*m); fclose (out);
