问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat(),把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分程序已经给出。 程序中已定义数组:a[200],b[200];已定义变量:cnt。 请勿改动数据文件IN.DAT中的任何数据及主函数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("IN.DAT","r"); for(i=0; i<MAX; i++) fscanf(fp,"%d,",&a[i]); fclose(fp); 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); void main() int i; readDat(); jsVal(); printf("满足条件的数=%d/n",cnt); for(i=0; i<cnt; i++) printf("%d",b[i]); printf("/n"); writeDat();
问答题已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这 100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则:按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【试题程序】 #include <stdio.h> #include <memory.h> #include <string.h> #include <conio.h> #include <stdlib.h> #define MAX 100 typedef struet 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("IN3.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; selt [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("OUT3.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);
问答题已知数据文件IN1.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT1.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("IN1.DAT","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d",&a[i]); fclose(fp); void main() int i; readDat(); jsVal(); prinff("满足条件的数=%d/n",cnt); for(i=0;i<cnt;i++) printf("%d/n",b[i]); prinff("/n"); writeDat(); void writeDat() FILE *fp; int i; fp=fopen("out1.dat","w"); fprinff(fp,"%d/n",cnt); for(i=0;i<cnt;i++) fprinff(fp,"%d/n",b[i]); fclose(fp);
问答题有如下记录教师讲授课程信息的表格:
教师编号
教师姓名
课程编号
课程名称
开课编号
开课时间
开课地点
t1
张明
c1
数据库
k1
2010年春季
理教201
t2
李戈
c1
数据库
k1
2010年春季
理教201
t1
张明
c1
数据库
k2
2011年春季
理教205
t3
王杰
c1
数据库
k2
2011年春季
理教205
t3
王杰
c3
操作系统
k3
2010年秋季
理教408
t3
王杰
c3
操作系统
k4
2012年秋季
理教209
t2
李戈
c3
操作系统
k5
2012年秋季
理教210
试根据表格中内容,画出合适的ER图。
将ER图转换为关系模型,并指明转换后的每个关系模式的主码和外码。
问答题函数readDat()的功能是从文件IN22.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT22.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()的内容。
# inc lude<st dio. h>
# inc lude<s t ring. h>
# inc lude<conio, h>
char xx[20] [80];
void jsSort()
{
}
main ()
{
readDat ();
jsSort ();
writeDat ();
}
readDat ()
{
FILE *in;
int i=0;
char *p;
in= fopen("IN22.DAT", "r");
while(i< 20
if(p) *p = 0;
i++;
}
fclose(in);
}
writeDat ()
{
FILE *out;
int i;
clrscr ();
out = fopen("OUT22.DAT", "w");
for(i = 0; i< 20; i++)
{
printf("%skn", xx[i]);
fprintf(out, "%sin", xx[i]);
}
fclose(out);
}
问答题对10个候选人进行选举,现有一个存有100条记录的选票文件IN.DAT,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推。每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数大于5个人时被视为无效。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编写函数CoutRs(),来统计每个人的选票数并把得票数依次存入yy[0]~yy[9]中,最后调用函数WriteDat(),把结果yy输出到文件OUT.DAT中。
注意:请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < memory.h >
#include < stdio.h >
char xx[100] [11] ;
int yy[10] ;
int ReadDat (void) ;
void WriteDat (void) ;
void CoutRs (void)
{
}
void main ()
{
int i ;
for (i =0;i <10;i ++ )
yy[i] =0;
if (ReadDat ())
{
printf ("数据文件 IN. DAT 无法打开!
/n/007") ;
return;
}
CoutRs () ;
WriteDat () ;
}
int ReadDat (void)
{
FILE * fp;
int i;
char tt[13] ;
if ( (fp = fopen ("IN .DAT", "r") ) ==NULL)
return 1;
for (i =0;i <100;i ++ )
{
if (fgets (tt, 13, fp) == NULL)
return 1 ;
memcpy (xx[ i], tt,10 ) ;
xx[i][10] =0;
}
fclose (fp) ;
return 0 ;
}
void WriteDat ()
{
FILE * fp;
int i ;
fp = fopen ( "OUT. DAT", "w" ) ;
for (i =0;i <10;i ++) {
fprintf (fp, "%d/n", yy[i] ) ;
printf ("第%d,个人的选票数HT =%d/n",i
+1,yy[i]);
}
fclose(fp);
}
问答题对10个候选人进行选举,现有一个100条记录的选票数据文件in.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个候选人的选中情况,第二位表示第二个候选人的选中情况,依次类推;每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选(空选票)均为无效的选票则不作统计。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个候选人的选票数并把得票数依次存入yy[0]到yy[9]中,即第一个候选人的得票数存入yy[0]中,以此类推。最后调用函数WriteDat()把结果yy输出到文件out.dat中。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#include <string.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不能打开!/007/n");
return;
}
CountRs ();
WriteDat ();
}
/*把选票数据读入到字符串数组xx中*/
int ReadDat (void)
{
FILE *fp;
int i;
char tt[13];
if ((fp=fopen ("in.dat", "r") ) ==NULL)
return 1; //如果文件in.dat为空,则返回1
/*把100条记录的选票数据存入字符串数组xx中*/
for(i=0; i<100; i++)
{
/*从文件in.dat中读取长度为12的字符串存入字符数组tt中,如果其值为空,则返回1*/
if (fgets (tt, 13, fp) ==NULL)
return 1;
memcpy(xx[i], tt, i0); //把字符数组tt中的10个字符拷贝到数组xx[i]中
xx[i] [10]=0; //把0赋给数组元素xx[i] [10]
}
fclose(fp);
return 0;
}
/*把结果yy输出到文件out.dat中*/
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);
}
问答题有课程表(课程号,课程名,学分,先修课程号),已知某应用程序需要列出“数据库原理”课程的一门先修课程,查询结果要求输出(课程名,学分,先修课名称,先修课学分),可以用________连接操作在一个查询中实现此功能。
问答题已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totAve。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。 注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include <stdio.h>#include <conio. h>#define MAXNUM 200int number [MAXNUM];int totNum = 0; /* 文件IN.dst 中共有的正整数个数*/int totCnt = 0; /* 符合条件的正整数的个数*/double totAve = 0.0; /* 平均值 */int ReadDat (void);void writeDat(void);void CalValue(void)void main () int i; for (i=0; i<MAXNUM; i++) number [i] = 0; if (ReadDat()) printf (" 数据文件 IN.dst 不能打开! /007/n"); return; CalValue (); printf(" 文件 IN.dst 中共有的正整数个数=%d个/n", totNum); printf (" 符合条件的正整数的个数 =%d个/n", totCnt); printf("平均值=%.2f/n", totAve); 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%6.2f/n", totNum, totCnt, totAve); fclose (fp);
问答题设有高校选课系统,需要对学校的系信息、教师信息、课程信息、学生信息、学生选课信息进行管理。已知系(DEPT)信息包括系编号(DeptNO)、系名称(DeptName);教师(Teacher)信息包括教师号(TNO)、教师名(Tname);课程(Course)信息包括课程号(CNO)、课程名(CName)、课程学分(Credit);学生(Student)信息包括学号(SNO)、学生姓名(Sname)、学生性别(Sex)。
选课系统的管理规则如下: Ⅰ.一个系可聘用多名教师,一个教师只受聘于一个系;
Ⅱ.一个系可有多名学生,一个学生只属于一个系; Ⅲ.一名教师可讲授多门课程,一门课程可由多名教师讲授;
Ⅳ.一名学生可选修多门课程,一门课程可被多名学生选修;
Ⅴ.学生选修完课程后,可获得相应课程的成绩。 针对以上描述,完成下列设计内容:
问答题在SQL Server 2008中,设U1是SQL Server身份验证模式的数据库服务器登录账户,现希望U1在该数据库服务器上具有系统管理员权限。请补全下列语句:EXEC sp_addsrvrolememberˊU1ˊ,ˊ________ˊ
问答题读函数readDat()的功能是从文件IN25.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用写函数writeDat()把结果xx输出到文件 OUT25.DAT中。 条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后,左边部分与右边部分按例子所示进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。 例如:位置 0 1 2 3 4 5 6 7 8 源字符串 d c b a h g f e 4 3 2 1 9 8 7 6 处理后字符串 h g f e a b c d 9 8 7 6 1 2 3 4 注意:部分源程序已给出。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include〈stdio.h> #include〈string.h> #include〈conio.h> char xx[20] [80]; void jsSort() main() readDat(); jsSort(); writeDat(); readDat() FILE *in; int i=0; char *p; in = fopen("IN25.DAT", "r"); while(i〈20 if(p) *p = 0; i++; fclose(in); writeDat () FILE *out; int i; clrscr(); out = fopen("OUT25.DAT", "w"); for(i=0; i〈20; i++) printf("%s/n", xx[i]); fprintf(out, "%s/n", xx[i] ); fclose(out);
问答题设某并行数据库采用一台具有14个刀片的刀片服务器,每个刀片具有独立的内存和磁盘,各刀片之间通过刀片服务器上的以太网交换机实现通信,则该并行数据库采用的体系结构是_________结构。
问答题设在采用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 TF311.2 二级C语言 王珊 T001026 人民 32.00
问答题设某连锁商店数据库中有关系模式R:R(商店编号,商品编号,库存数量,部门编号,负责人)如果规定:每个商店的每种商品只在一个部门销售,每个商店的每个部门只有一个负责人,每个商店的每种商品只有一个库存数量。
问答题设某数据库服务器中有3块146G的SAS硬盘,为了保证数据的安全性,数据库管理员利用硬件RAID卡将三块硬盘做成RAID5,则服务器可使用磁盘空间为____________GB。
问答题已知数据文件IN60.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab<cd,ab必须是奇数且不能被5整除,cd必须是偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT60.DAT文件中。 注意:部分源程序已给出。 程序中已定义数组:a[200],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 ( "IN60. DAT", "r" ); for (i=0 ; i<MAX; i++) fscanf(fp,"%d", fclose(fp); main() int i; readDat(); jsVal(); printf ( "满足条件的数=%d/n", cnt); for(i=0;i<cnt;i++) printf("%d/n",b[i]); printf("/n"); writeDat ( ); writeDat ( ) FILE *fp; int i; fp=fopen("OUT60.DAT","w"); fprintf(fp,"%d/n",cnt); for(i=0;i<cnt;i++) fprintf(fp,"%d/n",b[i]); fclose(fp);
问答题已知在文件IN.DAT中存有若干个(个数<200)4位正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编写函数calValue(),其功能是:(1)求出这个文件中正整数的个数totNum。(2)求出各位数字之和是奇数的数的个数totCnt,以及满足此条件的数的算术平均值totPjz。调用函数WriteDat(),把所有结果输出到文件OUT.DAT中。
注意:请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < stdio.h >
#include < stdlib.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 ;
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 ("平均值 =% .2lf/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) ;
}
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd≥0且ab-cd≤10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat(),把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分程序已经给出。
程序中已定义数组:a[200],b[200];已定义变量:cnt。
请勿改动数据文件IN.DAT中的任何数据及主函数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("IN.DAT","r");
for(i=0;i<MAX;i++)
fscanf(fp,"%d,",
fclose(fp);
}
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);
}
void main ()
{
int i;
readDat();
jsVal();
printf("满足条件的数=%d/n",cnt);
for(i=0;i<cnt;i++)
printf("%d",b[i]);
printf("/n");
writeDat();
}
问答题函数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)所对应的字符进行替代。 原始数据文件存放的格式是:每行的宽度均小于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=1; 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);