问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入字符串数组xx中。请编写函数StrOR(),其函数的功能是:以行为单位,依次把字符串中所有小写字母o左边的字符串内容移到该串的右边,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边,之后,把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。 例如, 原文: n any field. Yu can create an index you have the correct record. 结果: n any field. Yu can create anindex rd. yuhavethe crrect rec 原始数据文件存放的格式是:每行的宽度均小于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 StrOR(void) void main() if(ReadDat()) printf("数据文件IN.DAT不能打开!/n/007"); return; StrOR(); 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);
问答题函数ReadDat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z,其他字符保持不变。把己处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件out.dat中。
例:原文:Adb.Bcdza
abck.LLhj
结果:Aca.Bbcyz
zabj.LLgi
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
char xx[50] [80];
int maxline=0; /*文章的总行数*/
int ReadDat (void);
void WriteDat(void);
/*以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z,其他字符保持不变*/
void ConvertCharD(void)
{
}
void main()
{
if (ReadDat ())
{
printf("数据文件in.dat不能打开! /n/007");
return;
}
ConvertCharD ();
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("%s/n", xx[i]);
fprintf(fp, "%s/n", xx[i]);
}
fclose(fp);
}
问答题考虑定义在事务集(T1,T2,T3)上的调度S1和S2,S1与S2是否是冲突等价的?为什么?
S1
S2
T1
T2
T3
T1
T2
T3
read(Q)
write(Q)
write(P)
read(P)
write(Q)
write(P)
write(Q)
read(P)
read(Q)
write(Q)
write(P)
read(P)
write(Q)
write(P)
write(Q)
read(P)
问答题在分布式数据库中,采用_________连接操作可以减少场地之间的数据传输量。
问答题已知有如下关系模式:R1(
a
,b,c),R2(
c
,d,a),R3(
e
,f),R4(
a,e
,g),其中标下划线的属性是主码。请将上述关系模式用适当的ER图表示出来,并用下划线标注出作为实体主码的属性。
问答题现有某图书销售数据库,其关系表结构如下:
图书表(图书编号,图书名称,出版社编号,出版社名称,出版时间,出版数量,版次)
图书销售表(图书编号,销售日期,销售数量,书店编号,读者编号,读者姓名,读者电话)
书店表(书店编号,联系电话,所在城市编号,城市名称)
Ⅰ.系统所涉及的数据存在如下约束
出版礼可以出版多本图书,一本图书只能在一个出版社出版,在该系统记录的图书出版信息包括出版时间、版次及出版数量信息。
Ⅱ.一个书店可以出售多本图书给多个读者,每位读者可以从多个书店购买多木图书,一本图书可以通过多个书店出售给读者,书店把图书出售给读者后会在系统中记录售书日期和售书数量信息;
Ⅲ.每个书店只能位于一个城市,一个城市可以有多个书店。
问答题编写函数,isValue,它的功能是:求以下数列中满足t(K)=1的最小的k,结果由函数返回。其中数列t(n)的定义为: t(0)=m(m为给定正整数,m<=300) t(n+1)=t(n)/2 (当t(n)为偶数时) 或t(n+1)=3*t(n)+1(当t(n)为奇数时) 最后调用函数writeDat()读取50个数据m,分别得出结果且把结果输出到文件out.dar中。 例如:当t=299时,函数值为117。 已知对于m<=300,结果k不超过300 部分源程序已给出。 请勿改动主函数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);
问答题已知在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()
{
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);
}
问答题函数ReadDat()实现从文件in.dat中读取一篇英文文章存入到字符串数组xx中;请编制函数SortCharD(),其函数的功能是:以行为单位对字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件out.dat中。
例:原文:dAe,BfC.
CCbbAA
结果:fedCBA.,
bbCCAA
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
char xx[50] [80];
unsigned int maxline=0; /*文章的总行数*/
int ReadDat(void);
void WriteDat(void);
void SortCharD(void)
{
}
void main(
{
if (ReadDat ())
{
printf ("数据文件in.dat不能打开! /n/007");
return;
}
SortCharD ();
WriteDat ();
}
/*从文件in.dat中读取一篇英文文章存入到字符串数组xx中*/
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp= fopen ( "in.dat", "r"))==NULL)
return 1; //如果文件in.dat内容为空,则返回1
/*当从文件in.dat中读取79个字符存入xx[i]没有错误发生时,执行循环体中的语句*/
while(fgets(xx[i],80,fp) != NULL)
{
p=strchr(xx[i], "/n"); //在字符串xx[i]中查找回车换行符第一个匹配的位置
if(p) *p=0; //如果p的值不为零,则把其值设置为0
i++; //行变量加1
}
maxline=i; //把文章的总行数赋给变量maxline
fclose(fp);
return 0;
}
/*把结果xx输出到文件out.dat中*/
void WriteDat(void)
{
FILE *fp;
unsigned 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);
}
问答题某级数的前两项A1=1,A2=1,以后各项具有如下关系: An=An-2+2An-1 下列程序的功能是:依次对于整数M=100、1000和10000求出对应的n值,使其满足:Sn<M且Sn+1≥M,这里Sn=A1+A2+…+An,并依次把n值存入数组单元b[0]、b[1]和b[2]中。请编写jsvalue()函数来实现此功能,最后调用函数、writeDat()把数组b[]中的值输出到out.dat文件中。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDat()的内容。 #include<stdio.h> int b[3]; void jsValue() main() jsValue(); printf("M=100,n=%d/nM=1000,n=%d/nM=10000,n=%d/n",b[0],b[1],b[2]); writeDat(); writeDat() FTLE *fp; fp=fopen("out.dat","w"); printf("%d/n%d/n%d/n",b[0],b[1],b[2]); fprintf(fp, "%d/n%d/n%d/n",b[0],b[1],b[2]); fclose(fp);
问答题设在采用SQL Server 2008数据库的图书馆应用系统中有三个基本表,表结构如下所示,请用SQL语句完成下列两个查询:
BORROWER:
借书证号 姓名 系名 班级
12011106 蒋辉文 计算机系 12-1
12011107 王丽 计算机系 12-1
12012113 范园园 信息系 12-2
…… …… …… ……
LOANS:
借书证号 图书馆登记号 借书日期
12011106 T001001 2012.01.02
12012113 T001026 2013.02.06
…… …… ……
BOOKS:
索书号 书名 作者 图书登记号 出版社 价格
TP311.1 数据库系统 李明 T001001 科学 19.00
TP311.2 二级C语言 王珊 T001026 人民 32.00
…… …… …… …… …… ……
问答题函数readDat()是从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的位置上的字符按其ASCII值从小到大的顺序进行排序,下标为偶数的位置上的字符仍按原来位置存放,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到out.dat文件中。
例如:位置 0 1 2 3 4 5 6 7
源字符串 h g f e d c b a
则处理后字符串 h a f c d e b g
请勿改动数据文件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("%s/n", xx[i]);
fprintf(out, "%s/n", xx[i]);
}
fclose (out);
}
问答题下列程序的功能是:计算出启然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt,以及满足此条件的所有SIX与NINE的和sum。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT51.DAT中。其中的S,I,X,N,I,N,E各代表一个十进制数。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDAT()的内容。 试题程序: #include int cnt,sum; void CountValue() Void main() Cnt=Sum=0; COUNtValUe(); printf("满足条件的个数=%/n",cnt): printf("满足条件的所有的SIX与NINE的和=%d/n",sum); WriteDAT(); FILE *fp; fp=fopen("OUT51.DAT", "w"); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp);
问答题在某数据库中,相关表的建表语句如下:create tableT1( a1 int primary key, a2 int, a3 int foreign key references T2(a3));create tableT2( a3 int primary key, a4 int, a5 int foreign key references T2(a3));create tableT3( a1 int, a3 int, a6 int,primary key (a1, a3),a1 foreign key references T1(a1),a3 foreign key references T2(a3));请画出相应的E-R图,使得可以从该E-R图推导出上述表定义,其中实体和联系的名称可以自定,实体的主码属性请使用下划线标明。
问答题数据库管理系统中的加锁协议规定了事务的加锁时间、持锁时间和释放锁时间,其中_________协议可以完全保证并发事务数据的一致性。
问答题函数ReadDat()的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组“中。请编写函数SortCharA(),该函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数WriteDat(),把结果xx输出到文件OUT.DAT中。
例如,原文:dAe,BfC
CCbbAA
结果:ABCdef
AACCbb
原始数据文件存放的格式是:每行的宽度均小于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 SortCharA()
{
}
voidmain()
{
system("CLS");
if(ReadDat())
{
printf("数据文件IN.DAT无法打开!
/n/007");
return;
}
SortCharA();
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()
{
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);
}
问答题函数ReadDat()实现从IN.DAT文件中读取1000个十进制整数到数组xx中。请编写函数Compute()分别计算出xx中奇数的个数odd,偶数的个数even,以及所有数的平均值aver和方差totfc的值,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。计算方差的公式如下:原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleaver=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,",&xx[i*10+j]);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/naver=%f/ntotfc=%f/n",odd,even,aver,totfc);WriteDat();voidWriteDat(void)FILE*fp;fp=fopen("OUT.DAT","w");fprintf(fp,"%d/n%d/n%f/n%f/n",odd,even,aver,totfc);fclese(fp);
问答题函数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) *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);
问答题事务T1、T2和T3按如下调度方式并发地对数据项A、B、C进行访问,假设A、B、C的初值分别为A=20,B=30,C=40。
问答题读函数ReadDat()的功能是从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中。请编写函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替换,仍存入数组xx的对应位置上,最后调用写函数WritrDat(),把结果xx输出到文件PS.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII码值,f(p)是计算后新字符的ASCII码值),如果计算后f(p)的值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则,将f(p)所对应的字符进行替换。
注意:原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
#include < ctype.h >
unsigned char xx[50] [80] ;
int maxline =0 ; // 文章的总行数
int ReadDat (void) ;
void WriteDat (void) ;
void encryptChar ()
{
}
void main ()
{
system ("CLS") ;
if (Readmat ())
{
printf ("数据文件 ENG. IN 无法打开!
/n/007 ") ;
return;
}
encryptChar () ;
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 (void)
{
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) ;
}