问答题文件IN.DAT中存有200个4位整型数,函数readData()负责将IN.DAT中的数据读到数组inBuf[]中。请编制一函数findData(),该函数的功能是:依次从数组inBuf[]中取出一个4位数,如果4位数连续大于该4位数前的5个数且该数是奇数(该4位数以前不满5个数,则不统计),该数必须能被7整除,则按照从小到大的顺序存入outBuf[]中,并用count记录下符合条件的数据的个数。函数writeData()负责将outBuf[]中的数据输出到文件OUT.DAT中,并且在屏幕上输出。 注意:部分源程序已给出。 程序中已定义数组:inBuf[200],outBuf[200];已定义变量:count。 请勿改动主函数main()、读函数readData()和写函数writeData()的内容。 试题程序: #include<stdio.h> #define MAX 200 int inBuf[MAX],outBuf[MAX],count=0; void findData() void readData() int i; FILE*fp; fp=fopen("IN.DAT","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d",&inBuf[i]); felose(fp); void writeData() FILE*fp: int i; fp=fopen("OUT.DAT","w"); fprintf(fp,"%d/n",count); for(i=0;i<count;i++) fprintf(fp,"%d/n",outBuf[i]); fclose(fp); void main() int i; readData(); findData(); printf("the count of desired datas=%d/n",count); for(i=0;i<count;i++) printf("%d/n”,outBuf[i]); printf("n"); writeData();
问答题已知在文件IN.DAT中存有若干个(个数<200)4位正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编写函数calValue(),其功能是:(1)求出这文件中正整数的个数totNum;(2)求出各位数字之和是偶数的数的个数totCnt,以及满足此条件的数的算术平均值totPjz;(3)调用函数WriteDat(),把结果输出到文件OUT.DAT中。
注意:请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < stdio.h >
#include < stdlib.h >
#define MAXNUM 200
int xx[MAXNUM] ;
int totNum=0; // 文件 IN.DAT 中共有多少个正整数
int totCnt =0; //符合条件的正整数的个数
double totPjz =0.0; // 平均值
int ReadDat (void) ;
void Writedat (void) ;
void CalValue ()
{
}
void main ()
{
int i;
system ("CLS") ;
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 ( "平均值 =%.2 lf/n", totPjz ) ;
Writedat () ;
}
int Readdat (void)
{
FILE * 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%.21f/n",tot-
Num, totCnt, totPjz);
fclose (fp) ;
}
问答题下列程序的功能是:在3位整数(100~999)中寻找符合下面条件的整数,并依次从小到大存入数组b中。它既是完全平方数,又有两位数字相同(例如,144,676等)。请编写函数int jsValue(int bb[])实现此功能,并返回满足该条件的整数的个数。最后调用函数writeDat(),把结果输出到文件OUT.DAT中。
请勿改动主函数main()和写函数writeDat()的内容。
[试题程序]
#include<stdio.h>
void writeDat();
int jsValue(int bb[])
{
}
void main()
{
int b[20], num;
mum=jsValue(b);
writeDat(mum, b);
}
void writeDat(int num, int b[])
{
FILE*out;
int i;
out=fopen("OUT.DAT", "w");
fprintf(out, "%d/n", num);
for(i=0; i<num; i++)
fprintf(out, "%d/n", b[i]);
fclose(out);
}
问答题文件IN.DAT中存有200个4位整型数,函数ReadData()负责将IN.DAT中的数读到数组inBuf[]中。请编写函数findValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数,按照从小到大的顺序存入数组outBuf[]中,并用count记录下符合条件的数的个数。函数WriteData()负责将outBuf[]中的数输出到文件OUT.DAT中并且在屏幕上显示出来。 注意:部分源程序已给出。 程序中已定义数组:inBuf[200],outBuf[200],已定义变量:count。 请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。 试题程序: #include <stdio.h> #define NUM 200 int inBuf[NUM],outBuf[NUM],count=0; void readData(); void writeData(); void findValue() void main() int i: readData(); findValue(); writeData(); printf("count=%d/n",count); for(i=0;i<count;i++) printf("outBuf[%d]=%d/n",i,outBuf[i]); void readData() FILE*fp; int i; fp=fopen("IN.DAT","r"); for(i=0;i<NUM;i++) fscanf(fp,"%d,",&inBuf[i]); fclose(fp); void writeData() FILE*fp; int i: fp=fopen("OUT.DAT","w"); fprintf(fp,"count=%d/n",count); for(i=0;i<count;i++) fprintf(fp,"%d,/n",outBuf[i]); fclose(fp);
问答题函数ReadDat()实现从文件in.dat中读取一篇英文文章,存入到无符号字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,其替代值仍存入数组xx所对应的位置上,最后调用函数writeDat()把结果xx输出到文件out.dat中。
替代关系:f(p)=p*11 mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后无符号的整型值(注意:中间变量定义成整型变量),如果原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变,否则用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()
{
}
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);
}
问答题在数据库系统出现系统故障后进行恢复时,对于事务T,如果在日志文件中有BEGIN TRANSACTION记录,也有COMMIT记录,但其对数据的修改没有写到数据库中,则数据库管理系统处理这种事务时应执行的操作是_______。
问答题一个事务执行过程中,其正在访问的数据被其他事务修改,导致处理结果不正确。这是由于不满足并发事务间的_________性而引起的。
问答题已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中,“金额一单价*数量”计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求: 按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.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 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);oh[5]=0; sell[i].sl=atoi(ch); sell[i].je=(;ong)sell[i].dj*sell[i].sl; fclose(fp); void WriteDat(void) FILE*fp; int i; fp=fopen("OUT6.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].am, sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); fclose(fp);
问答题文件IN.DAT中存有200个4位整型数,函数ReadData()负责将IN.DAT中的数读到数组inBuf[]中。请编写函数findValue(),其功能是:把千位数字和十位数重新组成一个新的十位数ab(新十位数的十位数是原4位数的千位数,新十位数的个位数是原4位数的十位数),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数是原4位数的个位数,新十位数的个位数是原4位数的百位数),新组成两个十位数ab-cd>=0,且ab-cd<=10,且两个数均是奇数。求出满足条件的数,用count记录下符合条件的数的个数并按照从小到大的顺序存入数组outBuf[]中。函数WriteData()负责将outBuf[]中的数输出到文件OUT.DAT中并在屏幕上显示出来。 注意:部分源程序已给出。 程序中已定义数组:inBuf[200],outBuf[200],已定义变量:count。 请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。 试题程序: #include<stdio.h> #define NUM 200 int inBuf[NUM],outBuf[NUM],count=0; void readData(); void writeData(); void findValue() void main() int i; readData(); findValue(); writeData(); printf("count=%d/n",count); for(i=0;i<count;i++) printf("outBuf[%d]=%d/n",i,outBuf[i]); void readData() FILE*fp; int i; fp=fopen("IN.DAT","r"); for(i=0;i<NUM;i++) fscanf(fp,"%d,",&inBuf[i]); fclose(fp); void writeData() FILE*fp; int i; fp=fopen("OUT.DAT","w"); fprintf(fp,"count=%d/n",count); for(i=0;i<count;i++) fprintf(fp,"%d,/n",outBuf[i]); fclose(fp);
问答题设某数据库中有旅客表A(旅客编号,城市)和旅客表B(旅客编号,城市),现将所有旅客的数据存储这两张表中。请补全如下查询语句,使得该查询语句能查询所有旅客所在的全部的不重复的城市。SELECT城市FROM旅客表A_______SELECT城市FROM旅客表B
问答题设在SQL Server 2008某数据库中有商品表和销售表,两个表的定义如下:
CREATE TABLE 商品表(
商品号 char(10) PRIMARY KEY,
商品名 varchar(40),
类别 varchar(20),
进货单价 int );
CREATE TABLE 销售表(
商品号 char(10) REFERENCES 商品表(商品号),
销售时间 datetime,
销售数量 int,
销售单价 int,
PRIMARY KEY(商品号,销售时间) );
现要创建一个存储过程:查询指定类别的每种商品当前年累计销售总数量。请补全下列代码。
CREATE PROC p_TotalSales
@lb varchar(20)
AS
SELECT 商品名,
(
SELECT______
FROM 销售表 t1
WHERE______and
year(销售时间) = year(______)
)AS 当年销售总数量
FROM 商品表 t2 WHERE______
问答题某商场商品经营管理系统使用SQL Server 2008数据库管理系统,此系统上线运行1年后,业务人员使用某统计功能(此功能每月使用一次)时发现速度很慢。该统计功能主要执行的SQL语句如下:
SELECT商品号,SUM(销售数量*销售价格)销售额
FROM销售明细
GROUP BY商品号;
该销售明细表的建表语句如下:
CREATE TABLE销售明细(
序列号int IDENTITY(1,1)NOT NULL,
商品号int NOT NULL,
销售日期datetime NULL,
销售数量int NOT NULL,
销售价格int NOT NULL
);
并在销售明细表上建有如下索引:
CREATE index ix_销售明细_商品号 on 销售明细(商品号);
某技术人员提出通过执行下述语句以提高此查询的运行效率:
CREATE VIEW商品销售额视图
WTTH SCHEMABINDING
AS
SELECT商品号,SUM(销售数量*销售价格)销售额,
COUNT_BIG(*)cnt
FROM dbo.销售明细
GROUP BY商品号;
CREATE UNIQUE CLUSTERED INDEX ix_商品销售额
ON商品销售额视图(商品号);
问答题函数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) *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()和输出数据函数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); 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中有200组数据,每组有3个数,每个数均是三位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数isSort(),其函数的功能是:要求在200组数据中找出第一个数大于第二个数与第三个数之和的数,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数与第三个数之和的大小进行升序排列(第一个数与第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到out.dat文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>
#include <string.h>
void readDat();
void writeDat(int count);
typedef struct
{
int x1, x2, x3;
} Data;
Data aa[200], bb[200];
int jsSort ()
{
}
void main()
{
int count;
readDat ();
count=jsSort();
writeDat (count);
}
/ *读取这200组数据存放到结构数组aa中"/
void readDat()
{
FILE *in;
int i;
in=fopen("in.dat", "r");
for(i=0; i<200; i++)
fscanf(in, "%d,%d,%d",
fclose (in);
}
/*把结果bb输出到out.dat文件中*/
void writeDat(int count)
{
FILE *out;
int i;
out=fopen("out.dat", "w");
for(i=0; i<count; i++)
{
printf("%d,%d,%d第一个数+第三个数=%d/n", bb[i].x1, bb[i].x2, bb[i].x3, bb[i].x1+bb[i].x3);
fprintf(out, "%d,%d,%d/n", bb[i].x1, bb[i] .x2, bb[i].x3);
}
fclose(out);
}
问答题已知在文件IN4.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【试题程序】 #include <stdio.h> #include <memory.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,O,sizeof(sell)); ReadDat(); SortDat(); WriteDat(); void ReadDat() FILE *fp; char str[80],ch[11]; int i; fp=fopen("IN4.DAT","r"); for(i=O;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(void) FILE *fp; int i; fp=fopen("OUT4.DAT","w"); for(i=0;i<100;i++) fprintf(fp,"%s %s %4d %5d %101d/n"sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl, sell[i].je); fclose(fp);
问答题函数ReadDat()的功能是实现从文件IN39.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ChA㈠,该函数的功能是:以行为单位把字符串的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个新的字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新的字符,以此类推一直处理到倒数第二个字符,最后一个字符的ASCII值加第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后仍按行重新存入字符串数组肛中,并调用函数WriteDat()把结果xx输出到文件OUT39.DAT中。 注意:部分源程序已给出。 原始文件存放的格式是:每行的宽度小于80个字符,含标点符号和空格。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<string.h> #incIude<conio.h> char xx[50] [80]; int maxline=0; int ReadDat(); void writeDat(); void ChA(void) void main () clrscr ( ); if (ReadDat ( ) ) printf ("数据文件IN39 .DAT 不能打开!/n/007"); return; ChA ); WriteDat ( ); int ReadDat (void) FILE *fp; int i=0; char *p; if ( (fp= fopen ( "IN39. DAT", "r" ) ) ==NULL ) return 1; while (fgets (xx [i] , 80, fp)! =NULL) p=strchr(xx[i], 'In'); if(p) *p=0; i++; maxline=i; fclose (fp); return 0; void WriteDat ( ) FILE *fp; int i; clrscr ( ); fp=fopen ("OUT39.DAT", "w"); for (i=0; i<maxline; i++) printf ( "%s/n" ,xx[i] ); fprintf(fp,"%s/n",xx[i]); fclose (fp);
问答题在IDEF1X数据建模方法中,直角矩形框用于表示独立实体集,圆角矩形框用于表示______实体集。