问答题在in.dat文件中有200个正整数,且每个数均在1000~9999之间。函数ReadDat()读取这200个数并存放到数组aa中。请编写函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat(),把结果bb输出到out.dat文件中。 例如: 处理前9012 5099 6012 7025 8088 处理后5099 8088 7025 6012 9012 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.h> #include<string.h> #include<conio.h> int aa[200],bb[10]; void jsSort() void ReadDat() FILE *in; int i; in=fopen("in.dat","r"); for(i=0;i<200;i++) fscanf(in,"%d,",&aa[i]); fclose(in); void WriteDat() FILE *out; int i; out=fopen("out.dat","w"); for(i=0; i<10;i++) printf("i=%d,%d/n",i+1,bb[i]); fprintf(out,"%dkn",bb[i]); fclose(out); void msin() ReadDat(); jsSort(); WriteDat();
问答题设有商品表(商品号,商品名,单价)和销售表(销售单据号,商品号,销售时间,销售数量,销售单价)。其中,商品号代表一类商品,商品号、单价、销售数量和销售单价均为整型。请编写查询某年某商品的销售总毛利的存储过程,毛利=销售数量×(销售单价-单价)。要求商品号和年份为输入参数,总毛利用输出参数返回。
问答题函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include
#include
#include
#include
unsigned char xx[50][80];
int maxline = 0;/* 文章的总行数 */
int ReadDat(void);
void WriteDat(void);
void encryptChar()
{
}
main()
{
clrscr();
if(ReadDat())
{
printf("数据文件ENG4.IN不能打开!/n/007");
return;
}
encryptChar();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i = 0;
unsigned char *p;
if((fp = fopen("ENG4.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("PS4.DAT", "w");
for(i = 0; i < maxline; i++)
{
printf("%s/n", xx[i]);
fprintf(fp, "%s/n", xx[i]);
}
fclose(fp);
}
问答题函数ReadDat()实现从in.dat文件中读取20行数据并存放到字符串数组xx中(每行字符串长度均小于80)。请编写函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到out.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 5 则处理后字符串h g f e a b C d 8 7 6 5 9 1 2 3 4 注意:部分源程序已经给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 #include<stdio.h> #include<string.h> #include<conio.h> char xx[20][80]; void jsSort() void ReadDat() FILE *in; int i=0; char *p; in=fopen("in.dat","r"); while(i<20&&fgets(xx[i],80,in)!=NULL) p=strchr(xx[i],'/n'); 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();
问答题设某信息管理系统在需求分析阶段已经收集到下列信息: 学生信息:学号、姓名、性别、出生日期、所在系号、系名、系办公室电话学生学籍异动信息:学籍异动类型(如因病休学,任村官保留学籍,农村任教保留学籍等)、异动类型说明、异动时间教材信息:教材号、教材名、使用该教材的课程号、课程名、课程学分该业务系统存在如下规则: Ⅰ.一个系管理多名学生,每个学生只由一个系管理 Ⅱ.一本教材仅用于一门课程,一门课程可使用多本教材 Ⅲ.一名学生可选修多门课程,一门课程可由多名学生选修 Ⅳ.学生选修的课程要在数据库中记录课程成绩 Ⅴ.一名学生可能会有多条学籍异动信息
问答题下列程序的功能是:利用以下所示的简单迭代方法求方程: cos(x)-x=0的一个实根。 xn+1=cos(xn) 迭代步骤如下: (1)取x1初值为0.0。 (2)x0=x1,把x1的值赋给x0。 (3)x1=cos(x0),求出一个新的x1。 (4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。 (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out41.dar中。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDAT()的内容。 试题程序: #include<conio.h> #include<math.h> #include<stdio.h> float countvalue( ) main ( ) clrscr( ); printf("实根=%f/n",countValue( )); printf("%f/n",cos(countValue( ))countValue( )); writeDAT( ); writeDAT( ) FILE *wf; wf=fopen("out41.dat","w"); fprintf(wf,"%fln",countValue( fclose(wf);
问答题已知数据文件in80.dat中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数平均值pjz2,最后调用函数writeDat()把结果cnt,pjz1,pjz2输出到out80.dat文件。 例如:1239,9-1,2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: # include<stdio.h> int a[300], cnt=0; double pjz1=0.0,pjz2=0.0; void jsValue() main ( ) int i; readDat(); jsValue(); writeDat(); printf ("cnt=%d/n 满足条件的平均值 pjz1=%7.21f/n 不满足条件的平均值 pjz2=%7.21f/n",cnt,pjz1,pjz2); readDat ( ) FILE *fp; int i; fp=fopen("in80.dat","r"); for(i=0;i<300;i++) fscanf(fp,"%d,", fclose(fp); writeDat() FILE *fp; int i; fp=fopen("out80.dat","w"); fprintf(fp,"%d/n%7.21f/n%7.21f/n",cnt ,pjz1,pjz2); fclose(fp);
问答题已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数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();
问答题在文件in.dat中有200个数据。函数ReadDat()读取这200个数据存放到整型数组aa中,请编制函数jsSod(),其函数的功能是:要求在200个数据中找出满足以下条件的三元组(a,b,c),其中a、b、c是所给200个数据中的三个不同的数,且以a、b、c为边长的三边能构成三角形。满足条件三元组的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中(要求bb[i].x1<bb[i].x2<bb[i].x3),再对bb中的数据按照每组数据构成三角形的周长进行升序排列,排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。 部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.h> #include<string.h> #include<conio.h> typedef struct int x1,x2,x3; data; int aa[200]; data bb[200]; int jsSort() void main () int count; readDat(); count=jsSort (); /*返回满足条件的个数*/ writeDat(count); readDat(int count) FILE *in; int i; in=fopen("in.dat","r"); for(i=0; i<200; i++) fscanf(in,"%d", fclose(in); WriteDat(int count) FILE *out; int i; clrscr(); out=fopen("out.dat","w"); for(i=0; i<count; i++) fprintf(out,"%d,%d,%d/n",bb[i].x1,bb[i].x2,bb[i].x3); fclose(out);
问答题函数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)对应的字符为数字0~9,则该字符不变,否则将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);
问答题下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(1+10也是在100以内)的个数cnt,以及这些I之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件out64.dat中(数值1不是素数)。 注意:部分源程序已给出。 请勿改动主函数main()和输出数据函数writeDAT()的内容。 试题程序: #include<stdio.h> int cnt, sum; int isPrime(int number) int i,tag=1; if (number==1) return 0; for(i=2;tag i++) if(number%i==0) tag=0; return tag; void countValue ( ) void main( ) cnt=sum=0; countValue ( ); printf ( "满足条件的整数的个数=%d/n", cnt); printf ( "满足条件的整数的和值=%d/n", sum); writeDAT ( ); writeDAT ( ) FILE *fp; fp=fopen("out64.dat","w"); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp);
问答题编写函数jsValue(),它的功能是:求Fibonacci数列中大于t的最小的一个数,并返回此数的值。其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat(),把结果输出到文件OUT.DAT中。
例如,当t=1000时,函数值为1597。
请勿改动主函数main()和写函数WriteDat()的内容。
[试题程序]
#include<stdio.h>
void writeDat();
int jsValue(int t)
{
}
void main()
{
int n;
n=1000;
printf("n=%d,f=%d/n",n,jsValue(n));
writeDat();
}
void writeDat()
{
FILE*out;
int s;
out=fopen("OUT.DAT","w");
s=jsValue(1000);printf("%d",s);
fprintf(out,"%d/n",s);
fclose(out);
}
问答题在T-SQL语言中,______运算符用于实现两个查询结果的差运算。
问答题某商场商品经营管理系统使用SQL Server 2008数据库管理系统,此系统上线运行1年后,业务人员使用某统计功能(此功能每月使用一次)时发现速度很慢。该统计功能主要执行的SQL语句如下:
SELECT 商品号, SUM(销售数量*销售价格) 销售额
FROM 销售明细
GROUP BY 商品号;
该销售明细表的建表语句如下:
CREATE TABLE 销售明细(
序列号 intIDENTITY(1,1) NOT NULL,
商品号 intNOT NULL,
销售日期 datetime NULL,
销售数量 intNOT NULL,
销售价格 intNOT NULL
);
并在销售明细表上建有如下索引:
CREATE index ix_销售明细_商品号 on 销售明细(商品号);
某技术人员提出通过执行下述语句以提高此查询的运行效率:
CREATE VIEW 商品销售额视图
WITH SCHEMABINDING
AS
SELECT 商品号,SUM(销售数量*销售价格) 销售额,
COUNT_BIG(*) cnt
FROM dbo.销售明细
GROUP BY 商品号;
CREATE UNIQUE CLUSTERED INDEX ix_商品销售额
ON 商品销售额视图(商品号);
问答题_______视图是包含查询结果的数据库对象,其数据不是在视图使用时才读取而是预先计算的。
问答题已知数据文件IN82.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一函数JsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值 pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt,pjz1,pjz2,输出到out82.dat文件中。 例如:5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。 程序中已定义数组:a[300],b[300],已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include<stdio.h> int a[300], cnt=0; double pjz1=0.0,pjz2=0.0; int isP(int m) int i; for(i=2;i<m;i++) if(m%i==0) return 0; return 1; void jsValue ( ) main ( ) int i; readDat(); jsValue (); writeDat (); print f ("cnt=%d/n 满足条件的平均值pjz1=%7.21f/n不满足条件的平均值 pjz2=%7.21f/n",cnt,pjz1,pjz2); readDat ( ) FILE *fp; int i; fp=fopen( "in82.dat","r"); for (i=0; i<300; i++) fscanf(fp,"%d,", fclose (fp); writeDat ( ) FILE *fp; int i; fp=fopen ( "out82 .dat", "w" ); fprintf(fp,"%d/n%7.21f/n%7.21f/n.,cnt ,pjz1,pjz2); fclose(fp);
问答题_________只记录自上次完整数据库备份后发生更改的数据。
问答题下列程序的功能是:将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左边),比K1大的数都在K1的后面(右边)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到out.dat文件中。
说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。
例如:序列{6,8,9,1,2,5,4,7,3}
经重排后成为{3,4,5,2,1,6,8,9,7}
注意:部分源程序已经给出。
请勿改动主函数main()和写函数writeDat()的内容。
#include <stdio.h>
jsValue(inta[10][9])
{
}
void writeDat(int a[10][9])
{
FIIE *fp;
int i,j;
fp=fopen("out.dat","w");
for (i=0;i<10;i++)
{
for (j=0;j<9;j++)
{
fprintf(fp,"%d",a[i][j]);
if(j<=7)
fprintf(fp,",");
}
fprintf(fp,"/n");
}
fclose(fp);
}
main()
{
int a[10][9]=
{
{3,5,8,9,1,2,6,4,7},
{4,7,8,9,1,2,5,3,6},
{4,7,3,5,1,2,6,8,9},
{9,1,3,5,8,6,2,4,7},
{7,1,3,2,5,8,9,4,6},
int i,j;
jsValue(a);
for(i=0;i<10;i++)
{
for (j=0;j<9;j++)
{
printf("%d",a[i][j]);
printf("/n");
}
writeDat(a);
}
问答题设某教学管理系统,其查询模块需要提供如下功能:
Ⅰ.查询系信息,列出各系编号、系名和系办公电话;
Ⅱ.查询某系教师的信息,列出教师号、教师名、工资和聘用日期;
Ⅲ.查询某教师讲授的课程信息,列出课程号、课程名和学分;
Ⅳ.查询讲授某门课程的教师信息,列出教师名和职称;
Ⅴ.查询某门课程的先修课程信息,列出先修课程号和先修课程名。
系统有如下业务规则:
Ⅰ.一个系可聘用多名教师,一名教师只能受聘于一个系;
Ⅱ.一名教师可讲授多门课程,一门课程可由多名教师讲授;
Ⅲ.一门课程可以有多门先修课程,也可以没有先修课程。
问答题在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1.求出该文件中共有多少个正整数totNum;2.求出这些正整数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些正整数的算术平均值totPjz。最后main()函数调用函数WriteDat()把所求的结果输出到out.dat文件中。
请勿改动数据文件in.dat中的任何数据,主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
#include <stdio.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)
{
}
void main()
{
int i;
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();
}
/*读取这若干个正整数并存入数组xx中*/
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;
}
/*把计算结果存入文件out.dat中*/
void WriteDat(void)
{
FILE *fp;
fp=fopen("out.dat", "w");
fprintf(fp, "%d/n%d/n%.2lf/n", totNum, totCnt, totPjz);
fclose(fp);
}
