计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机等级考试(NCRE)
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
计算机等级考试三级
计算机等级考试一级
网络工程师(计算机等级考试四级)
计算机等级考试二级
数据库工程师(计算机等级考试四级)
计算机等级考试三级
信息安全工程师(计算机等级考试四级)
嵌入式系统开发工程师(计算机等级考试四级)
软件测试工程师(计算机等级考试四级)
数据库技术
网络技术
数据库技术
软件测试技术
信息安全技术
嵌入式系统开发技术
问答题已知数据文件IN.DAT中存有300个4位数,并已调用读函数readDat(),把这些数存入数组a中,请编写一个函数jsValue(),其功能是:求出数组a中千位上的数加百位上的数等于十位上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b中的数按从大到小的顺序排序,最后调用写函数writeDat(),把数组b中的数输出到OUT.DAT文件。 例如,7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,8+1≠2+9,则该数不满足条件,忽略。 程序中已定义数组a[300],b[300],已定义变量cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 [试题程序] #include<stdio.h> int a[300],b[300],cnt=0; void readDat(); void writeDat(); void jsValue() { } void main() { int i; readDat(); jsValue(); writeDat(); printf("cnt=%d/n",cnt); for(i=0;i<cnt;i++) printf("b[%d]=%d/n",i,b[i]); } void readDat() { FILE*fp; int i; fp=fopen("IN.DAT","r"); for(i=0;i<300; 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); }
进入题库练习
问答题下列程序的功能是;把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT(),读取in36.dat中的字符串,并把结果输出到文件out36.dat中。 例如:s字符串中原有的内容为Mn 123Zxy,则调用该函数后,结果为No 123Ayz。 注意:部分源程序已给出。 请勿改动主函数main()和输入输出函数readwriteDAT()的内容。 试题程序: #include<stdio.h> #include<string.h> #include<conio.h> #include<ctype.h> #define N 81 void readwriteDAT ( ); void chg(char *s) main ( ) char a [N]; clrscr(); printf("Enter a string:"); gets(a); printf("The original string is :"); puts(a); chg(a); printf("The string after modified :"); puts(a); readwriteDAT(); void readwriteDAT() int i; char a[N]; FILE *rf,*wf; rf=fopen("in36.dat","r"); wf=fopen("out36.dat","w"); for(i=0;i<10;i++) fgets(a,81,rf); chg(a); fprint f (wf, "%s" , a); fclose (rf); fclose (wf);
进入题库练习
问答题已知数据文件in.dat中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main()函数调用写函数wnteDat()把结果cnt,pjz1,pjz2输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 8129,8+1!=2+9,则该数不满足条件计算平均值pjz2。 程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2 请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()和写函数wnteDat()的内容。 #include <stdio.h> int a[300], cnt=0; double pjzi=0.0, pjz2=0.0; void readDat(); void writeDat(); void jsValue() { } void main() { readDat(); jsValue(); writeDat(); printf("cnt=%d/n满足条件的平均值pzjl=%7.2lf/n不满足条件的平均值pzj2=%7.2lf/n", cnt, pjz1, pjz2); } void readDat() { FILE *fp; int i; fp=fopen("in.dat", "r"); for(i=0; i<300; i++) fscanf(fp, "%d,", fclose(fp); } void writeDat() { FILE *fp; fp=fopen("out.dat", "w"); fprintf(fp, "%d/n%7.2lf/n%7.2lf/n", cnt, pjz1, pjz2); fclose(fp); }
进入题库练习
问答题某学校网络计费系统使用SQL Server 2008作为数据库管理系统,系统中需保存每个用户的每次登录和退出时间,该表的结构如下:CR_EATE TABLE登录日志表(序列号int identity(1,1),帐号varchar(8),登录时间datetime,退出时间datetime,本次上网费用real);在系统运行一段时间后,此表中有近5千万条数据。此时,用户按照登录时间查询自己近期上网情况时速度缓慢。为了提高用户体验,某工程师提出建议对此表进行分区,请分析其建议合理性(若合理请给出最优的分区方案),并说明原因。在解决了①中的问题系统平稳运行3年后,管理员考虑升级硬件。经过监控,系统资源使用情况如下:.CPU使用率一般不超过50%.内存使用率90%.磁盘IO使用率高峰期90%~95%,主要为读操作某工程师给出两种升级后的硬件配置方案:.配置一:2颗处理器,6核心,主频2.4GHz;64GB内存;300GB 10K转SAS硬盘,3块,RAID0.配置二:2颗处理器,6核心,主频1.9GHz;128GB内存;800GB固态硬盘SAS读取密集型MLC,2块,RAIDl请根据以上数据,在不考虑费用因素的前提下,说明哪种配置更合理,并给出原因。
进入题库练习
问答题函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数writeDat()把结果xx输出到文件PS4.DAT中。 替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCⅡ值,f(p)是计算后新字符的ASCⅡ值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。 注意:部分源程序已给出。 原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdib.h> #include<stdio.h> #include<string.h> #include<ctype.h> unsigned char xx[50][80]; int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void eneryptChar() void main() system("CLS"); 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(tp); return 0; void WriteDat(void) FILE *fp; int i; fp=tbpen("PS4.DAT","w"); for(i=0;i<maxline;i++) printf("%s/n",xx[i]); fprinff(fp,"%s/n",xx[i]); fclose(fp);
进入题库练习
问答题下列程序的功能是:计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt以及满足此条件所有的SIX与NINE的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat(),把结果cnt和sum输出到OUT.DAT文件中。 其中,S、I、X、N、E各代表一个十进制数。 注意:部分源程序已经给出。 请勿改动主函数main()和输出数据函数writeDat()的内容。 #include<stdio.h> int cnt,sum; void countValue() void writeDat() FILE *fp; fp=fopen("OUT.DAT","w"); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp); void main() cnt=sum=0; countValue(); printf("满足条件的个数=%d/n",cnt); printf("满足条件所有的SIX与NINE的和=%d/n",sum); writeDat();
进入题库练习
问答题程序test.c的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请考生编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数readwriteDAT()把结果输出到out.dat文件中。 例如,若输入17,5,则应输出:19,23,29,31,37。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据以及主函数main()和输出函数readwriteDAT()的内容。 #include <stdio.h> //include语句说明各程序中包含vc6.0中的标准输入输出库函数stdio.h void readwriteDAT();//函数readwriteDAT()说明语句 int isP(int m) //函数isP(int m)判断m是否为素数,如果是素数则返回1,否则返回0 int i; //定义变量i for (i=2; i<m; i++) //变量i从2依次递增到m-1 if (m % i==0) return 0; //如果m能被i整除,返回0 return 1; //否则返回1 void num(int m, int k, int xx[]) main() int m, n, xx[1000]; //定义变量m,n和数组xx[1000] printf("/nPlease enter two integers:"); scanf("%d, %d", //从键盘读入两个数赋给变量m,n num (m,n,xx); //调用函数num(int m,int k,int xx[])实现将大于整数m且紧靠m的k个素数存入数组xx for (m=0; m<n; m++) //变量m从0依次递增到n-1 printf("%d",xx[m]); //输出数组元素xx[m] printf("/n"); //输出一个回车换行符 readwriteDAT();//调用函数readwriteDAT()把结果输出到out.dat文件中 void readwriteDAT()//函数readwriteDAT()的定义语句 int m,n,xx[1000],i; //定义整型变量m,n,i和数组xx[1000] FILE *rf,*wf; //定义文件指针变量rf,wf rf=fopen("in.dat","r"); //以只读的方式的打开文件in.dat,并用rf指向这个文件 wf=fopen("out.dat","w"); //以只写的方式的打开文件out.dat,并用wf指向这个文件 for (i=0; i<10; i++) //循环变量i从0依次递增到9 fscanf (rf,"%d%d", //从文件in.dat读入两个数值赋给m,n num (m,n,xx);//调用函数函数num(m,k,xx[])实现将大于整数m且紧靠m的k个素数存入数组xx for(m=0;m<n; m++) //循环变量m从0依次递增到n-1 fprintf (wf,"%d",xx[m]); //把数组元素xx[m]写入到文件out.dat中 fprintf (wf,"/n"); //把回车换行符写入到文件out.dat中 fclose (rf); //关闭输入文件in.dat fclose (wf); //关闭输出文件out.dat
进入题库练习
问答题设某全国性的运输企业建立了大型OLTP系统,并在该系统之上建立了数据仓库。OLTP系统和数据仓库中有如下数据表: 运输明细表(运输单ID,发送站ID,终到站ID,货物ID,货物重量,运输价格,发货日期) 汇总表1(发送站ID,终到站ID,货物ID,发货日期,总重,总运价) 汇总表2(发送站ID,终到地区ID,货物ID,发货日期,总重,总运价) 汇总表3(发送站ID,终到站ID,货物ID,发货月份,总重,总运价) 汇总表4(发送地区ID,终到地区ID,货物类别ID,发货日期,总重,总运价) 该企业管理的货运站约有100个,货物约有500种共10类,各汇总表都建有主码,且各表有合理的维护策略,在每次维护后数据能保持一致。设有视图V,该视图的访问频率很高,其查询结果模式为(发送地区ID,终到站ID,发货月份,总重,总运价),该视图现以汇总表1为计算数据源。经监控发现,汇总表1的被访问频率过高,导致系统整体性能下降,而其它汇总表被访问频率较低。在不增加汇总表和索引的情况下,请给出一个改善系统服务性能的优化方案,并简要说明理由。
进入题库练习
问答题已知在IN.DAT文件中存有若干个(<200)四位数字的正整数,函数ReadDat()读取若干个正整数并存入数组xx中。请编写函数CalValue(),其功能是:(1)求出这文件中共有多少个正整数totNum;(2)求这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到OUT.DAT文件中。 注意:部分程序已经给出。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include<stdio.h> #include<conio.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; 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("平均值=%.2f/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,",&xx[i++]); 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,totPjz); 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,",&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();
进入题库练习
问答题某级数的前两项A 1 =1,A 2 =1,以后各项具有如下关系: A n =A n-2 +2A n-1 程序test.c的功能是:要求依次对于整数M,求出级数前n的和S n =A 1 +A 2 +…+A n 小于M的项数n,并依次把n值存入数组单元b[0],b[1]和b[2]中,请考生编制jsValue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。 请勿改动主函数main()和输出数据函数writeDAT()的内容。 #include <stdio.h> int b[3]; //定义全局整型一维数组b[3] void writeDAT(); //输出函数writeDAT()的说明语句 void jsValue() { } main () { jsValue(); //调用函数jsValue () ,实现题目要求的功能 printf("M=100, n=%d/nM=1000, n=%d/nM= 10000, n=%d/n", b[0], b[1], b[2]); writeDAT (); } /*函数writeDat()把数据b[]中的值输出到out.dat文件中*/ 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()的功能是从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中。请编写函数encryChar(),按给定的替代关系对数组xx中所有字符进行替换,替换后的字符仍存入数组xx的对应位置上,最后调用函数WriteDat(),把结果xx输出到文件PS.DAT中。 替代关系:f(p)=P×13 mod 256(p是数组xx中某一个字符的ASCII码值f(P)是计算后新字符的ASCII码值),如果计算后f(p)的值小于等于32或其ASCII码值是偶数,则该字符不变,否则,将f(P)所对应的字符进行替换。 原始数据文件的存放格式是每行的宽度均小于80个字符。请勿改动主函数main()、读函数ReadDat()和写函数WfiteDat()的内容。 [试题程序] #include<stdlib.h> #include<stdio.h> #include<string.h> #include<ctype.h> unsigned char xx[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void encryChar() { } void main() { system("CLS"); if(ReadDat()) { printf("数据文件ENG.IN无法打开! /n/007"); return; } encryChar(); WriteDat(); } int ReadDat(void) { FILE*fp; int i=0; unsigned char*P; if((fp=fopen("ENG.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() { FILE*fp; int i; fp=fopen("ps.dat","w"); for(i=0;i<maxline;i++) { printf("%S/n",xx[i]); fprintf(fp,"%s/n",xx[i]); } fclose(fp); }
进入题库练习
问答题请补充完整程序,使得程序能实现以下功能: 从文件IN.dat中读取200个整数至数组number中,求出最大数max及最大数的个数cnt和数组number中能被3整除或能被7整除的算术平均值ave(保留2位小数)。把结果max、 cnt、ave输出到OUT. dat文件中。 注意:部分程序、读数据函数read_ dat (int number[200])及输出格式已给出。#include <conio. h>#include <stdio. h>#define N 200void read_ dat(int number[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 ", number[i*10+j]); printf ("/n"); fclose (fp);void main () int cnt, number[N], max; float ave; FILE *fw; int i, k; ' long j = 0; fw = fopen("OUT.dat", "w"); read_ dat (number); / ************************************************ / / ************************************************ / printf("/n/nmax=%d, cnt=%d, ave=%6.2f/n", max, cnt, ave); fprintf(fw, "%d/n%d/n%6.2f/n", max, cnt, ave); 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______
进入题库练习
问答题已知在文件IN.DAT中存有若干个(个数<200)4位正整数,函数ReadDat()的功能是读取这些正整数并存入数组xx中。请编写函数CalValue(),其功能是:(1)求出该文件中正整数的个数totNum。(2)求这些数右移1位后,产生的新数中偶数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数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) { } 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("平均值=%.21f/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", totNum, totCnt, totPjz); fclose(fp); }
进入题库练习
问答题已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中。请编写函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat(),把结果输出到out.dat文件。 例如:9123, 9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812,9-8-1-2<0,则该数不满足条件,忽略。 注意:部分源程序已经给出。 程序中已定义数组:a[300],b[300];已定义变量:cnt。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include <stdio.h> int a[300],b[300],cnt=0; void jsValue() { } void ReadDat() { FILE *fp; int i; fp=fopen("in.dat","r"); for(i=0;i<300;i++) fscanf(fp,"%d,", fclose(fp); } void writeDat() { FIIE *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); } main() { int i; ReadDat(); jsValue(); writeDat(); printf("cnt=%d/n",cnt); for(i=0;i<cnt;i++) printf("b[%d]=%d/n",i,b[i]);}
进入题库练习
问答题函数ReadDat()实现从IN.DAT文件中读取1000个十进制整数到数组xx中。请编写函数Compute()分别计算出xx中奇数的个数odd,偶数的个数even,以及所有数的平均值aver和方差totfc的值,最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。计算方差的公式如下:原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleaver=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void){FILE*fp;inti,j;if((fp=fopen("IN.DAT","r"))==NULL)return1;for(i=0;i<100;i++){for(j=0;j<10;j++)fscanf(fp,"%d,",fscanf(fp,"/n");if(feof(fp))break;}fclose(fp);return0;}voidCompute(void){}voidmain(){inti;for(i=0;i<MAX;i++)if(ReadDat(){printf("数据文件IN.DAT不能打开!/007/n");return;Compute();printf("odd=%d/neven=%d/naver=%f/ntotfc=%f/n",odd,even,aver,totfc);WriteDat();}voidWriteDat(void){FILE*fp;fp=fopen("OUT.DAT","w");fprintf(fp,"%d/n%d/n%f/n%f/n",odd,even,aver,totfc);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); sell[i].dj=atoi(ch); memcpy(ch,str+18,5); 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 %d %4d %5d %5d/n", sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je); } fclose(fp); }
进入题库练习
问答题_________可以把两个或多个SELECT语句的查询结果组合成一个结果集,使用时要求所有SELECT语句的列数应相同,对应列的数据类型相容。
进入题库练习
问答题在数据库中存在销售单据明细表,其建表语句为:CREATE TABLE销售单据明细表(销售单据编号varchar(8),商品编号varchar(8),单价real,数量int,总价real);为了保持数据一致性,此表中存在符合业务要求的触发器:CREATE TRIGGER AutoCountSumON销售单据明细表FOR INSERT,UPDATEASDECLARE@UnitPrice real,@Quantity int,@Amount realSELECT@UnitPrice=单价,@Quantity=数量FROM insertedSET@Amount=@UnitPrice*@QuantityUPDATE销售单据明细表SET总价=@AmountWHERE销售单据编号IN(SELECT销售单据编号FROM inserted)AND商品编号IN(SELECT商品编号FROM inserted)在系统运行一段时间后,此表中有近千万条数据,此时发现对此表以“销售单据编号”和“商品编号”为条件,对其他字段进行修改时操作速度很慢。请分析原因,并在不改变硬件和SQL语句的前提下,给出优化方法。在解决了①中的问题系统平稳运行3年后,用户反映系统速度很慢,管理员考虑更换硬件。经过一段时间的监控,系统资源使用情况如下:CPU使用率一般不超过70%内存使用率95%磁盘IO使用率高峰期90%~95%,主要为读操作请根据以上数据,说明在此次更换硬件过程中,应该着重提高哪方面硬件性能,并给出原因。
进入题库练习