问答题已知数据文件INl4.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成两个十位数ab-cd>=0且ab-cd〈=10且两个数均是奇数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数 cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT14.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("IN14.DAT", "r" for(i = 0; i〈 MAX; i++) fscanf(fp, "%d", main() int i; readDat(); jsVal(); printf ("满足条件的数=%d/n", cnt); for(i = 0; i〈 cnt; i++) printf("%d ", b[i]) printf("/n"); writeDat(); writeDat() FILE *fp; int i; fp = fopen("OUT14.DAT", "w") fprintf(fp, "%d/n", cnt); for(i = 0; i〈 cnt; i++) fprintf(fp, "%d/n", b[i]) fclose(fp);
问答题已知在文件in37.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WrileDat()把结果输出到文件out37.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("IN37.DAT","r"); for(i=0;i<100;i++) fgets(str,80,fp); memcpy(sell[i].dm,str,4); memcDy(sell[i].mc,str+4,10; memcDy(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 (fiD); void WriteDat() FILE *fp; int i; fp=fopen ("OUT37 .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);
问答题请编写函数countValue(),它的功能是:求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,将结果按从小到大的顺序存放在数组a中,并通过n计算出这些数的个数。
注意:请勿改动主函数main()和写函数writeDAT()的内容。
【试题程序】
#include < stdlib.h >
#include < stdio.h >
void writeDAT () ;
void countValue (int * a,int * n)
{
}
void main ()
{
int aa[1000],n, k;
system ("CLS") ;
countValue (aa,
for (k=0;k <n;k ++ )
if ( (k+1) %10==0)
{
printf ("%5d",aa[k]) ;
printf ("/n") ;
}
else
printf ("%5d", aa[k] );
writeDAT ();
void writeDAT ()
{
int aa[1000],n, k;
FILE * fp;
fp = fopen ("OUT. DAT", "w");
countValue (aa,
for (k=0;k<n;k--)
if ( (k+1) %10==0)
{
fprintf (fp, "%5d", aa[k] );
fprintf (fp, "/n");
}
else
fprint f (fp, "%d", aa[k] );
fclose (fp);
}
问答题请编制一个函数arrange(int inBuf[10][9]),其功能是:将一正整数序列K[1],K[2],…,K[9]重新排成一个新的序列。新序列中,比K[1]小的数都在K[1]的左面(后续的再向左存放),比K[1]大的数都在K[1]的右面(后续的再向右存放),从K[1]向右扫描。函数WriteData()负责将outBuf[]中的数据输出到文件OUT.DAT中。 说明:在程序中已给出了10个序列,每个序列中有9个正整数,并存入数组inBufE10][9]中,分别求出这10个新序列。 例如:序列排序前3,5,8,9,1,2,6,4,7 序列排序后2,1,3,5,8,9,6,4,7 注意:部分源程序已给出。 请勿改动主函数main()和写函数WriteData()的内容。 试题程序: #include<stdio.h> void writeData(); int inBuf[10][9]=6,8,9,1,2,5,4,7,3, 3,5,8,9,1,2,6,4,7), 8,2,1,9,3,5,4,6,7), 3,5,1,2,9,8,6,7,4), 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), 2,6,1,9,8,3,5,7,4, 5,3,7,9,1,8,2,6,4, 7,1,3,2,5,8,9,4,6, ; void arrangeValue() void main() int i,j; arrangeValue(); for(i=0;i<10;i++) for(i=0;i<9;i++) printf(”%d”,inBuf[i][j]); if(j<=7)printf(","); printf("n"); writeData(); void writeData() FILE*fp; int i,j; fp=fopen("OUT.DAT","w"); for(i=0;i<10;i++) for(j=0, j<9;j++) fprintf(fp,"%d",inBuf[i][j]); if(j<=7)fprintf(fp,","); fprintf(fp,"/n"); fclose(fp);
问答题数据仓库是一个面向主题、集成的、时变的、非易失的数据集合,支持管理部门的决策过程,数据仓库通过数据转移从多个数据源提取数据,为了解决不同数据源格式上的不统一,需要进行的数据操作是_______。
问答题fclese(wf);
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章并存入到字符串数组xx中。请编写函数StrCharJL(),其功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat(),把结果xx输出到OUT.DAT文件中。 原始数据文件存放的格式是:每行的宽度均小于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 StrCharJL(void) void main() if(ReadDat()) printf("数据文件IN.DAT不能打开!/n/007"); return; StrCharJL(); 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);
问答题在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。 例如:处理前9012 5099 6012 7025 8088 处理后5099 8088 7025 6012 9012 注意:部分源程序已给出。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include<stdio.h> #include<string.h> #include<stdlib.h> int aa[200],bb[10]; void readDat(); void writeDat(); void jsSort() void main() readDat(); jsSort(); writeDat(); void readDat() FILE *in; int i; in=fopen("IN6.DAT","r"); for(i=0;i<200;i++)fscanf(in,"%d,", fclose(in); void writeDat() FILE *out; int i; out=fopen("OUT6.DAT","w"); system("CLS"); for(i=0;i<10;i++) printf("i=%d,%d/n",i+1,bb[i]); fprintf(out,"%d/n",bb[i]); fclose(out);
问答题已知在文件in.dat中存有若干个(个数<200)四位非零整数,函数readdat()读取这若干个整数并存入数组xx中。请编制函数calvflue(),其功能要求:①求出该文件中共有多少个正整数totnum;②求这些数右移1~6位,产生的一系列新数中含至少一个完全平方数(某个整数的平方)的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out.dat中。 部分源程序已给出。 请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 #include<stdio.h> #include<conio.h> #define MAXNUM 200 int xx[MAXNUM]; iht totnum=0; iht totcnt=0; double totpjz=0.0; int readdat(void); void writedat(void); void calvalue(void) void main () int i; clrscr (); for (i=0; i if (readdat ()) printf("Can't open the data file in.dat!/007/n"); return; calvalue (); printf ( "totnum=%d/n", totnum); printf ( "totcnt=%d/n" , totcnt ); printf ( "totpj z=%. 21f/n", totpj z); writedat (); int readdat (void) FILE *fp; int i=0; if( (fp=fopen ("in.dar", "r") )==NULL) return 1; while ( ! feof (fp)) fscanf (fp, "%d, ", fclose (fp); return 0; void writedat (void) FILE *fp; fp=fopen ( "out. dar", "w" ) fprint f ( fp, "%d/n%d/n%. 21 f/n", totnum, totcnt, totpjz); fclose (fp);
问答题设有图书管理数据库,包含三张表:
图书明细表(图书编号,图书类别,图书名称,作者,出版社,出版日期,定价);
读者表(借书证号,姓名,系别,办证日期);
借出信息表(借出编号,借书证号,图书编号,借书日期);
完成下列操作:
定义一个多语句表值函数,用于查询学生借书情况,只需提供参数:借书证号,就可以通过调用函数返回此学生的借书情况,若有借书籍,则返回所借书籍的编号、书籍名称、定价和借书日期;若没有在借书籍,则返回记录为空。设函数名为:f_BorrowBook(@jszh char(20))。
问答题设有某商业单位需要建立商务数据库用以处理销售记账,它记录的数据包括:顾客姓名,所在单位及电话号码;商品名称,型号,产地及单价;某顾客购买某商品的数量及日期。假定无同名顾客,无同型号商品,电话公用,顾客可在不同日期买同一商品。
问答题下面程序段的功能是:在数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向author_id、author_name和address字段插入数据。阅读并回答以下问题:USE bookdb GOIF EXISTS(SELECT _________FROM SysobjectsWHERE name='my_proc'and type='P')DROPPROC my_proc GOCREATE PROC my_proc@a int,@b char(8),@c char(50) _________INSERT INTO author(author_id,author_name,address)VALUES(@a,@b,@c)GO
问答题函数RData()实现从文件IN.dat中读取一篇英文文章,存入字符串数组str中,请编写函数encryptChar(),其功能是:按给定的替代关系对数组str中的所有字符进行替代后,仍存入数组str的对应位置上。最后调用函数WData(),把结果str输出到OUT.dat文件中。 替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将 f(p)所对应的字符进行替代。 原始数据文件存放的格式是:每行的宽度均小于80个字符。 注意:部分程序已经给出。请勿改动主函数main()、读数据函数RData()和输出数据函数 WData()的内容。#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>unsigned char str[50] [80];int maxline = 0; /* 文章的总行数 */int RData (void);void WData (void);void encryptChar()void main () if (RData()) printf("数据文件 IN. dst 不能打开! /n/007"); return; encryptChar (); WData ();int RData (void) FILE *fp; int i = 0; unsigned char *p; if ((fp = fopen("IN. dat", "r")) == NULL) return 1; while (fgets(str[i], 80, fp) != NULL) p = strchr(str[i], '/n'); if (p) *p =0; i++; maxline = i; fclose (fp); return 0;void WData(void) FILE *fp; int i; fp = fopen("OUT. dat", "w"); for (i=0; i<maxline; i++) printf ("%s/n", str[i]); fprintf(fp, "%s/n", str[i]); fclose (fp);
问答题请编写程序,要求:将文件IN.DAT中的200个整数写入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,以及数组xx下标为奇数的元素值的算术平均值pj(保留两位小数),将结果cnt1、cnt2和pj输出到OUT.DAT中。
[试题程序]
#include<stdlib.h>
#include<stdio.h>
#define N 200
void read_dat(int xx[N])
{
int i,j;
FILE*fp;
fp=fopen("IN.DAT","r");
for(i=0;i<20;i++)
{
for(J=0;j<10;j++)
{
fscanf(fp,"%d,",
printf("%d",xx[i*10+j]);
}
printf("/n");
}
fclose(fp);
}
voidmain()
{
int cnt1,cnt2,xx[N];
float pj;
FILE*fw;
system("CLS");
fw=fopen("OUT.DAT","w");
read_dat(xx);
printf("/n/ncnt1=%d,cnt2=%d,pj=
%6.2f/n",cnt1,cnt2,pj);
fprintf(fw,"%d/n%d/n%6.2f/n",cnt1,
cnt2,pj);
fclose(fw);
}
问答题设在SQL Servet2008某数据库中有商品表和销售表,两个表的定义如下:
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)
AS
SELECT商品名,(SELECT______FROM销售表t1 WHERE______and______=year(Getdate()))AS销售总金额FROM商品表t2 WHERE______
问答题增加_______的调优方法是指在多个表中增加具有相同语义的列,它常用来在查询时避免连接操作。
问答题在SQL Server 2008中,请补全下列声明游标MyYB的语句:DECLARE MyYB_______FOR SELECT*FROM T1
问答题在SQL Server 2008的某用户数据库中,设有T表,现要在T表的c1列和c2列上建立一个复合唯一聚集索引,其中c1列值重复率为20%,c2列为10%。请补全下列语句建立一个性能最优的索引:CREATE UNIQUE CLUSTERED INDEX Idx1 ON T(_________)
问答题已知数据文件IN56.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数 (新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数均为素数且新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT56.DAT文件中。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include #define MAX 200 int a[MAX],b[MAX],cnt=0; int isprime(int m) int i; for(i=2;i<=m/2;i++) if(m%i==0) return 0; return 1; void isval() void readDat( ) int i; FILE *fp; fp=fopen("IN56.DAT","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d", int i; fp=fopen("OUT56.DAT","w"); fprintf(fp,"%d/n",cnt); for(i=0;i<cnt;i++) fprintf(fp, "%d/n",b[i]); fclose(fp);
问答题已知数据文件in38.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件韵4位数输出到out38.dat文件中。 注意:部分源程序已给出。 程序中已定义数组;a[200],b[200],已定义变量:ent。 请勿改动主函数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("in38.dat","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d", fclose(fp); void main ( ) int i; readDat ( ); j sVal ( ); printf ( "满足条件的数=%d/n", cnt ); for (i=0; i<cnt; i++) printf("%d/n",b[i] ); writeDat ( ); writeDat ( ) FILE *fp; int i; fp= fopen ( "out 3 8. dar" , "w" ); fprintf (fp, "%d/n", cnt); for (i=0; i<cnt; i++) fprint f (fp, "%d/n" ,b[i] ); fclose (fp);
