问答题设有课程表(课程号,课程名,学分,先修课程号),已知某应用程序需要列出“数据库原理”课程的一门先修课程,查询结果要求输出(课程名,学分,先修课名称,先修课学分),可以用_________连接操作在一个查询中实现此功能。
问答题已知数据文件IN1.DAT和IN2.DAT中分别存有100个2位十进制数,并且已调用读函数readDat(),把这两个文件中的数存入数组a和b中,请考生编写函数jsVal(),其功能是:依次将数组a和b中的数按条件重新组成一个新数,并存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用写函数writeDat(),把结果c输出到文件OUT.DAT中。
组成新数的条件:如果数组a和b中相同下标位置的数,一个是偶数,另一个是奇数,则将数组a中的数按二进制数左移八位后再加上数组b对应位置上的数,把这样组成的新数依次存入数组c中。
例如,a:12 33 24 15 21
b:32 35 17 15 18
c:6161 5394
排序后c.5394 6161
程序中已定义数组a[100]、b[100]和C[100]。请勿改动数据文件IN1.DAT和IN2.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
[试题程序]
#include<stdio.h>
#define MAX 100
unsigned int a[MAX], b[MAX], c[MAX];
int 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",
fclose(fp);
fp=fopen("IN2.DAT", "r");
for(i=0; i<MAX; i++)
fscanf(fp, "%d",
fclose(fp);
}
void main()
{
int i;
for(i=0; i<MAX; i++)
c[i]=0;
readDat();
jsVal();
for(i=0; i<MAX; i++)
if(c[i]>0)
printf("%d/n", c[i]);
writeDat();
}
void writeDat()
{
FILE*fp;
int i;
fp=fopen("OUT.DAT", "w");
for(i=0; i<MAX; i++)
if(c[i]>0)
fprintf(fp, "%d/n", c[i]);
fclose(fp);
}
问答题在SQL Server 2008中,设U1是SQL Server身份验证模式的数据库服务器登录账户,现希望U1在该数据库服务器上具有系统管理员权限。请补全下列语句:EXEC sp_addsrvrolemember'U1','_________'
问答题函数ReadDat()实现从文件in.dat中读取一篇英文文章存入到无符号字符串数组xx中,请编制函数StrCharJL(),其函数的功能是:以行为单位把字符串中的所有字符的ASCII值左移4位二进制位,低位补0,如果左移后,其值小于等于32或大于100,则原字符保持不变,留在原字符串对应的位置上,否则就把左移后的值再加上原字符的ASCII值,得到新的值仍存入原字符串对应的位置上,之后把已处理的字符串仍按行重新存入无符号字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件out.dat中。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和输出函数writeDat()的内容。
#include <stdio.h>
#include <string.h>
unsigned char xx[50] [80];
int maxline=0; /*文章的总行数*/
int ReadDat (void);
void WriteDat(void);
void StrCharJL(void)
{
}
void main()
{
if (ReadDat ())
{
printf("数据文件in.dat不能打开! /n/007";
return;
}
StrCharJL ();
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);
}
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数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("/n");
writeDat();
}
问答题SQL Server 2008中声明游标的语句为:DECLARE x cursor _________SELECT…
问答题某汽车维修公司需建立一个汽车维修数据库,该数据库中需要存储和管理下列信息:
车辆信息:车牌号,车型,发动机号,行驶里程,车辆所有人,联系电话
维修项目:项目号,项目名称,维修费
汽车备件:备件号,备件名称,备件单价,库存数量
以上数据之间存在下列约束:
可以对一个车辆进行多个维修项目,每个维修项目可用于多个车辆,维修项目完成后要在数据库中记录维修时间;
一种备件可用于多个维修项目,每个维修项目最多只使用一种备件,但每种备件的数量可以是多个。
问答题已知在文件IN.DAT中存有100条产品销售记录,每条产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)和金额je(长整型)5部分组成。其中,金额=单价×数量。函数ReadDat()的功能是读取这100条销售记录并存入数组sell中。请编写函数SortDat(),其功能是:将这些产品的记录按金额从大到小的顺序排列,若金额相同,则按产品代码从大到小的顺序排列,最终排列结果仍存入结构数组sell中,最后调用写甬数WriteDat(),把结果输出到文件OUT.DAT中。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
[试题程序]
#include<stdio.h>
#include<memory.h>
#include<string.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++)
{
fprintf(fp,"%s %s %4d %5d
%10ld/n",sell[i].dm,sell[i].mc,
sell[i].dj,sell[i].sl,sell[i].je);
}
fclose(fp);
}
问答题文件progl.C中程序的功能是:将大于整数m且紧靠m的k个素数存人数组xx中。请编写函数mum(int m,int k,int xx[])实现程序的要求,最后调用函数readwriteDAT()把结果输出到out.dat文件中。例如,若输入17,5(中间用半角逗号隔开),则应输出; 19 23 29 31 37。wfof=fopen(out dat “.”“w”; for{i=0;i<10;i++){fscanf{rf,“%d”,&m,&n); num(m,n,xx); for(m=0;m
问答题在文件IN.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()的功能是读取这200组数据,存放到结构数组aa中。请编写函数jsSort(),返回满足此条件的数的个数。其函数的功能是:在200组数据中找出满足每组数据中的第二个数大于第一个数加第三个数之和这个条件的数,并把这些数存入结构数组bb中,再对结构数组bb中的数据按照每组数据的第二个数加第三个数之和的大小顺序进行降序排列,排序后的结果仍重新存入结构数组bb中。最后调用函数writeDat(),把结果bb输出到文件OUT.DAT中。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
[试题程序]
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct
{
int x1, x2, x3;
}Data;
Data aa[200], bb[200];
void readDat();
void writeDat();
int jsSort() //返回满足条件的数的个数
{
}
void main()
{
int count;
readDat();
count=jsSort();
writeDat(count);
}
void readDat()
{
FILE*in;
int i;
in=fopen("IN.DAT", "r");
for(i=0; i<200; i++)
fscanf(in, "%d%d%d",
fclose(in);
}
void writeDat(int count)
{
FILE*out;
int i;
out=fopen("OUT.DAT", "w");
system("CLS");
for(i=0; i<count; i++)
{
printf("%d, %d, %d第二个数+第三个数=%d/n", bb[i].x1, bb[i].x2, bb[i].x3, bbi].x2+bb[i].x3);
fprintf(out, "%d, %d, %d/n", bb[i].x1, bb[i].x2, bb[i].x3);
}
fclose(out);
}
问答题已知数据文件IN.DAT中存有300个五位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出满足以下条件的数的个数cnt、所有满足此条件的数的平均值pjz1,以及不满足此条件的数的平均值pjz2,最后调用写函数把结果输出到 out.dat文件。 条件:将五位数的万位、百位、个位数字重组成一个三位数a,将五位数的千位、十位数字重组成一个两位数b,前一个数a能被后一个数b整除。 例如:24360满足条件(230能被46整除);38129不满足条件(319不能被82整除)。 部分源程序已给出。 程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz1。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include <stdio.h> int a[300],cnt=0; double pjzl-0.0,pjz2=0.0; jsValue() main() int i; readDat(); jsValue(); writeDat(); printf ("cnt=%d/n 满足条件的平均值 pzj1=%7.21 f/n不满足条件的平均值 pjz2=%7.21f/n" ,cnt,pjz1,pjz2); readDat ( ) FILE *fp; int i; fp=fopen(" in.dar" ," r"); for(i=0,i<300;i++) fscanf(fp,"%d" , fclose(fp); writeDat() FILE *fp; int i; fp=fopen(" out.dar" ," w" ); fprintf(fp," %d/n%7.21f/n%7.21f/n" ,cnt,pjz1,pjz2); fclose(fp);
问答题已知在文件in.dat中存有N个实数(N<200),函数ReadDat()是读取这N个实数并存入数组xx中。请编制函数CalValue(),其功能要求:1.求出这N个实数的平均值aver;2.分别求出这N个实数的整数部分值之和sumint以及小数部分值之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件out.dat中。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.h>
#define MAXNUM 200
float xx[MAXNUM];
int N=0; //文件in.dat中共有多少个实数
double aver=0.0; //平均值
double sumint=0.0; //整数部分值之和
double sumdec=0.0; //小数部分值这和
int ReadDat (void);
void WriteDat(void);
void CalValue(void)
{
}
void main()
{
if (Readmat ())
{
printf("数据文件in.dat不能打开! /007/n");
return;
}
CalValue ();
printf ("文件in.dat是共有实数%d个/n", N);
printf("平均值=%.21f/n", aver);
printf("整数部分值之和=%.21f/n", sumint);
printf("小数部分值之和=%.21f/n", sumdec);
WriteDat ();
}
/*从文件in.dat中读取N个实数并存入数组xx中*/
int ReadDat (void)
{
FILE *fp;
if((fp=fopen ("in.dat", "r") ) ==NULL)
return 1;
/*当文件指针fp没有到达文件的结尾时,从文件in.dat中读取一个实数存入数组元素xx[N]中*/
while (!feof (fp))
{
fscanf(fp, "%f,",
if(xx[N]>0.001) N++;
}
fclose (fp);
return 0;
}
/*把所求的结果输出到文件out.dat中*/
void WriteDat(void)
{
FILE *fp;
fp=fopen("out.dat", "w");
/*把计算结果N, aver, sumint, sumdec的值写入到文件out.dat中*/
fprintf(fp, "%d/n%.21f/n%.21f/n%.21f/ n", N, aver, sumint, sumdec);
fclose(fp);
}
问答题设在SQL Server 2008某数据库中,已建立了四个文件组:fg1、fg2、fg3和fg4,以及一个分区函数RangePF1。
RangePF1的定义代码如下:
CREATE PARTITION FUNCTION RangePF1(int)
AS RANGE LEFT FOR VALUES(100,200,300)
问答题某级数的前两项A1=1,A2=1,以后各项具有如下关系:
A
n
=A
n-2
+2A
n-1
下列程序的功能是:依次求出整数M=100,1000和10000时对应的n值,使其满足:S
n
<M且S
n+1
≥M,这里S
n
=A
1
+A
2
+…+A
n
,并依次把n值存入数组单元b[0],b[1],b[2]……b[n]中,请编写函数jsValue()来实现此功能,最后调用函数writeDat(),把数组b的值输出到OUT.DAT文件中。
请勿改动主函数main()和输出函数wfiteDat()的内容。
[试题程序]
#include<stdio.h>
int b[3];
void writeDat();
void jsValue()
{
}
void main()
{
jsValue();
printf("M=100,n=%d/nM=1000,n
=%d/nM=10000,n=%d/n",b[0],
b[1],b[2]);
writeDat();
}
void writeDat()
{
FILE*fp;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d/n%d/n%d/n", b[0],
b[1],b[2]);
fclose(fp);
}
问答题如果数据文件中数据记录排列顺序与索引文件中索引项的排列顺序一致,则此种索引被称为_________索引。
问答题函数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
注意:部分源程序已经给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
char xx [20][80];
void jsSort()
{
}
void ReadDat()
{
FIIE *in;
int i=0;
char *p;
in=fopen("in.dat","r");
while(i<20
if(p)
*p=0;
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();
}
问答题请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件OUT11.DAT中。 例如,若n为1000时,函数值应为s=153.909064。 注意:部分源程序已给出。 请勿改动主函数main()和输入输出函数progReadWrite()的内容。 试题程序: #include<conio.h> #include<math.h> #include<stdio.h> double countValue(int n) main ( ) clrscr(); printf ("自然数之和的平方根=%f/n", countValue(lO00)) ; pregReadWrite(); pregReadWrite() FILE *wf; int i, n; float s; wf = fepen("OUT11.DAT", "w"); s = ceuntValue(1000); fprintf(wf, "%f/n", s); fclese(wf);
问答题编写一个函数findStr(),该函数的功能是:统计一个以单词组成的字符串中(各单词之间以空格隔开)所含指定长度单词的个数。例如,输入字符串为"you are very good you",指定要查找的单词的长度为3,则函数返回值是3。 函数readWriteData()的功能是从IN.DAT中读取字符串和子字符串,并把统计结果输出到屏幕和文件OUT.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()和函数WriteData(int n)中的内容。 试题程序: #include<stdio.h> #include<string.h> #include<stdlib.h> void readWriteData(); int findStr(char*str,int find_len) void main() char str[81]; int find_len; int n; system("CLS"); printf("input the strings:"); gets(str); printf("input the length:"); seanf("%d",&find_len); puts(str); printf("length=%d",find_len); n=findStr(str,find_len); printf("n=%d",n); readWriteData(); void readWriteData() char str[81],substr[11]; int n,len,i=0; FILE*rf,*wf; rf=fopen("IN.DAT","r"); wf=fopen("OUT.DAT","W"); while(i<3) fgets(str,80,rf); fgets(substr,10,rf); len=substr[0]-'0'; n=findStr(str,len); fprintf(wf,"%d",n); i++: fclose(rf); felose(wf);
问答题设在SQL Server2008某数据库中有商品表和销售表,两个表的定义如下:CREATE TABLE 商品表(商品号 char(10) PRIMARY KEY,商品名 varchar(40),类别 varchar(20),进货单价 int );CREATETABLE 销售表(商品号 char(10) REFERENCES 商品表(商品号),销售时间 datetime,销售数量 int,销售单价 int,PRIMARYKEY(商品号,销售时间) );现要创建一个存储过程:查询指定类别的每种商品当前年销售总金额(销售总金额=销售单价* 销售数量)。请补全下列代码。CREATEPROC p_TotalProfit@lb varchar(20)ASSELECT 商品名,(SELECT【 1 】FROM 销售表 t1 WHERE【 2 】and【 3 】= year(Getdate( ))) AS 销售总金额FROM 商品表 t2 WHERE【 4 】
问答题文件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++) fseanf(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);