问答题已知数据文件in.dat中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。请编写函数jsValue(),其功能是:求出干位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat(),把结果输出到out.dat文件中。 例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 8129,8+9<>1+2,则该数不满足条件计算平均值pjz2。 注意:部分源程序已经给出。 程序中已定义数组:a[300];已定义变量:cnt、pjz1、pjz2。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 #include<stdio.h> int a[300],cnt=0; double pjz1=0.0,pjz2=0.0; void jsValue() 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; fp=fopen("out.dat","w"); fprintf(fp,"%d/n%7.2f/n%7.2f/n",cnt,pjz1,pjz2); fclose(fp); main() readDat(); jsValue(); writeDat(); printf("cnt=%d/n满足条件的平均值pzj1=%7.2f/n不满足条件的平均值 pzj2=%7.2f/n",cnt,pjz1,pjz2);
问答题在SQL Server 2008中,要授予某数据库中的某个用户具有该数据库中全部用户数据表的插入、删除和修改权限,比较合理的做法是将该用户添加到系统提供的_________数据库角色中。
问答题下列程序的功能是:把s字符串中的所有字母改成该字母的下一个字母,字母z改成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符保持不变。请编写函数chg()实现程序功能,最后调用函数readwriteDAT(),读取IN.DAT中的字符串,并把结果输出到文件OUT.DAT中。
例如,s字符串中原有的内容为Mn 123Zxy,则调用该函数后,结果为No 123Ayz。
注意:请勿改动主函数main()和输入输出函数readwriteDAT()的内容。
【试题程序】
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
#include <ctype.h >
#define N 81
void readwriteDAT();
void chg(char * s)
{
}
void main()
{
char a[N];
system ("CLS") ;
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 ("IN.DAT", "r") ;
wf = fopen ( "OUT. DAT", "w" ) ;
for(i =0;i <10;i ++)
{
fgets (a,81, rf) ;
chg (a) ;
fprintf (wf, "%s", a) ;
}
fclose (rf) ;
fclose (wf) ;
}
问答题函数ReadDat()的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中。请编写函数StrOL(),该函数的功能是:以行为单位对行中以空格或标点符号作为分隔符的所有单词进行倒排。最后把已处理的字符串(不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat(),把结果xx输出到文件OUT.DAT中。
例如,原文:You He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
【试题程序】
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
#include < memory.h >
#include < ctype .h >
char xx[50][80];
int maxline = 0 ; //文章的总行数
int ReadDat (void) ;
void WriteDat (void) ;
void StrOL (void)
{
}
void main ()
{
system ("CLS") ;
if (ReadDat ())
{
printf ("数据文件 IN. DAT 无法打开!
/n/007 ") ;
return;
}
StrOL () ;
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 ;
}
vbid WriteDat (void)
{
FILE* fp;
int i ;
system ("CLS") ;
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中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位);产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这 100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WilteDat()把结果输出到文件OUT6.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【试题程序】 #include <stdio.h> #include <memory.h> #include <string.h> #include <conio.h> #include <stdlib.h> #define MAX 100 typedef struct char dm[5]; /*产品代码*/ char mc[ll]; /*产品名称*/ int dj; /*单价*/ int si; /*数量*/ long je; /*金额*/ PRO; PRO sell[MAX] void ReadDat(); void WriteDat(); void SortDat() void main() memset(sell,O,sizeof(sell)); ReadDat(); SortDat(); WriteDat(); void ReadDat() FILE *fp; char str[80],ch[11]; int i; fp=fbpen("IN6.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(void) FILE *fp; int i; fp=fopen("OUT6.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和IN2.DAT中分别存有100个两位十进制数,并且己调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编制一个函数jsVal(),实现的功能是依次对数组a和b中的数按条件重新组成一个新数并依次存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writeDat()把结果c输出到文件out.dat中。
组成新数的条件:如果数组a和b中相同下标位置的数均是奇数,则数组a中十位数字为新数的千位数字,个位数字仍为新数的个位数字,数组b中的十位数字为新数的百位数字,个位数字为新数的十位数字,这样组成的新数并存入数组c中。
例如:a:12 31 24 15 21 15
b:32 45 17 27 18 15
c:3451 1275 1155
排序后c:1155 1275 3451
程序中已定义:a[100]、b[100]和c[100]。
请勿改动数据文件IN1.DAT和IN2.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
#include <stdio.h>
#define MAX 100
int a[MAX], b[MAX], c[MAX];
int cnt=0; /*存放符合条件数的个数*/
void jsVal()
{
}
/*把数据文件IN1.DAT和IN2.DAT中的100个两位十进制数存入数组a和b中*/
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; void writeDat();
for(i=0; i<MAX; i++)
c[i]=0;
readDat ();
jsVal ();
for(i=0; i<MAX i++)
printf("%d/n", c[i]);
writeDat ();
}
/*把结果数组c输出到文件out.dat中*/
void writeDat()
{
FILE *fp;
int i;
fp=fopen("out.dat", "w");
for(i=0; i<MAX i++)
fprintf(fp, "%d/n", c[i]);
fclose (fp);
}
问答题已知数据文件IN85.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函gtjsVal(),其功能是:如果一个4位数的千位数字上的值加十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到 OUT85.DAT文件中。 注意:部分源程序已给出。 程序中已定义数组:a[200],b[200],已定义变量:cnt。 请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 试题程序: #include #define MAX 200 int a[MAX],b[MAX],cnt=0; void jsVal( ) void readDat( ) int i; FILE *fp; fp=fopen("IN85.DAT","r"); for(i=0;i<MAX;i++) fscanf(fp,"%d", fclose(fp); main() int i; readDat(); jsVal(); print f ( "满足条件的数=%d/n" , cnt); for(i=0;i<cnt;i++) printf("%d",b[i]); printf("/n"); writeDat(); writeD int i; fp=fopen("OUT85.DAT","w"); fprintf(fp,"%d/n",cnt); for(i=0;i<cnt;i++) fprintf(fp, "%d/n",b[i]); fclose(fp);
问答题函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx输出到文件PS49.DAT中。 替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)的值小于等于32,则该字符不变,否则将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 encryChar() void main() clrscr(); if(ReadDat()) printf("数据文件ENG49.IN不能打开!/n/007"); return; encryChar(); WriteDat(); int ReadDat(void) FILE *fp; int i=0; unsigned char*p; if((fp=fopen("ENG49.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("ps49.dat","w"); for(i=0;i<maxline;i++) printf("%s/n",xx[i]); fprintf(fp,"%s/n",xx[i]); fclose(fp);
问答题已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中。请编写函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat(),把结果输出到out.dat文件中。
例如,5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件,忽略。
注意:部分源程序已经给出。
程序中已定义数组:a[300],b[300];已定义变量:cnt。
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
#include <stdio.h>
int a[300],b[300],cnt=0;
int isP(int m)
{
int i;
for (i=2;i<m;i++)
if (m%i==0)
return 0;
return 1;
}
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()
{
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);
}
main()
{
int i;
ReadDat();
jsValue();
writeDat();
printf("cnt=%d/n",cnt);
for(i=0;i<cnt;i++)
}
问答题下列程序的功能是:计算500~800之间素数的个数cnt,并按所求素数的值从大到小的顺序再计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数countValue()实现程序功能,最后调用函数WriteDat(),把结果cnt和sum输出到文件OUT.DAT中。
注意:请勿改动主函数main()和写函数WriteDAT()的内容。
【试题程序】
#include < stdio.h >
int cnt, sum;
void writeDAT () ;
void countValue ()
{
}
void main ()
{
cnt=sum=0;
countValue () ;
printf ("素数的个数 = %d/n", cnt) ;
printf ( "按要求计算所得的值 = %d/n", sum);
writeDAT () ;
}
void writeDAT ()
{
FILE * fp;
fp = fopen ( "OUT. DAT", "w" ) ;
fprintf (fp, "%d/n%d/n", cnt, sum) ;
fclose (fp) ;
}
问答题现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是:每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,以此类推;内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编写函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到OUT.DAT文件中。 注意:部分源程序已经给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include<stdio.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不能打开!/n/007"); return; CountRs(); WriteDat(); int ReadDat(void) FILE *fp; int i; if((fp=fopen("IN.DAT","r"))==NULL) return 1; for(i=0;i<100;i++) if(fgets(xx[i],12,fp)==NULL) return 1; xx[i][10]='/0'; fclose(fp); return 0; 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中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中。请编写函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat(),把结果输出到out.dat文件中。 例如,5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件,忽略。 注意:部分源程序已经给出。 程序中已定义数组:a[300],b[300];已定义变量:cnt。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include<stdio.h> int a[300],b[300],cnt=0; int isP(int m) int i; for(i=2; i<m; i++) if(m%i==0) return 0; return 1; void jsValue() 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); main() int i; ReadDat(); jsValue(); writeDat(); printf("cnt=%d/n",cnt); for(i=0;i<cnt;i++) printf("b[%d]=%dkn",i,b[i]);
问答题请编写函数ReadDat(),实现从文件IN.DAT中读取1000个十进制整数到数组xx中的功能。请编写函数Compute(),分别计算出xx中奇数的个数odd、奇数的平均值ave1、偶数的平均值ave2及所有奇数的方差totfc的值。最后调用函数WriteDat(),把结果输出到OUT.DAT文件中。计算方差的公式如下:设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。请勿改动主函数main()和写函数WriteDat()的内容。[试题程序]#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleave1=0.0,ave2=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void){FILE*fp;if((fp=fopen("IN.DAT","r"))==NULL)return1;fclose(fp);return0;}voidCompute(void){}voidmain(){inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat()){printf("数据文件IN.DAT无法打开!\007\n");return;}Compute();printf("ODD=%d\nAVE1=%f\nAVE2=%f\nTOTFC=%f\n",odd,ave1,ave2,totfc);WriteDat();}voidWriteDat(void){FILE*fp;fp=fopen("OUT.DAT","w");fprintf(fp,"%d\n%lf\n%lf\n%lf\n",odd,ave1,ave2,totfc);fclose(fp);}
问答题下列程序的功能是:把s字符串中的所有字符左移一个位置,字符串中的第一个字符移到最后。请编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT()从in.dat文件中读取50组数据,分别得出结果,且把结果输出到out.out文件中。
例如:s字符串中原有内容为:Mn.123xy2,调用该函数后结果为:n.123xyZM。
注意:部分源程序已经给出。
请勿改动主函数main()和输出数据函数readwriteDAT()的内容。
#include <string.h>
#include <stdio.h>
#define N 81
void readwriteDAT();
void chg(char*s)
{
}
main()
{
char a[N];
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("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<50;i++)
{
fscanf(rf,"%s",a);
chg(a);
fprintf(wf,"%s/n",a);
}
fclose(rf);
fclose(wf);
}
问答题函数Rdata()实现从文件in.dat中读取一篇英文文章存入到字符串数组string中,请编写函数CharLeft(),其功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组string中,最后调用函数Wdata(),把结果string输出到文件out.dat中。
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。
#include <stdio.h>
#include <string.h>
#include <conio.h>
char string[50] [80];
int maxline=0;
int Rdata (void);
void Wdata(void);
void CharLeft()
{
}
void main()
{
if (Rdata ())
{
printf("数据文件in.dat不能打开! /n/007";
return;
}
CharLeft ();
Wdata ();
}
/*从文件in.dat中读取一篇英文文章存入到字符串数组string中*/
int Rdata(void)
{
FILE *fp;
int i=0;
char *p;
if ((fp=fopen("in.dat", "r")) == NULL)
return 1;
while (fgets(string[i], 80, fp)!= NULL)
{
p=strchr(string[i], "/n");
if (p)
*p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
/*把结果string输出到文件out.dat中*/
void Wdata()
{
FILE *fp;
int i;
fp=fopen("out.dat", "w");
for (i=0; i<maxline; i++)
{
printf("%s/n", string[i]);
fprintf(fp, "%s/n", string[i]
}
fclose(fp);
}
问答题粒度是反映数据库系统中综合程度的指标。设有表T1(商品标识,销售时间,销售量)、T2(商品标识,日期,总销售量)和T3(商品类别,月份,总销售量),其中粒度最大的表是_______。
问答题在SQL Server 2008中,用于判断游标数据提取状态的全局变量是_________。
问答题函数ReadDat()实现从IN.DAT文件中读取一篇英文文章,存入字符串数组xx中;请编写函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDal(),把结果xx输出到OUT.DAT文件中。 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将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);
问答题下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些4位自然数的个数cnt及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数 writeDAT()把结果cnt和sum输出到文件OUT67.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()和写函数writeDAT()的内容。 试题程序: #include<stdio.h> int cnt,sum; void countValue() void main() cnt=sum=0; countValue(); printf ("满足条件的自然数的个数=%d/n", cnt); printf ("满足条件的自然数的值的和=%d/n", sum); writeDAT(); writeDAT ( ) FILE *fp; fp=fopen("OUT67.DAT","w"); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp);
问答题数据库管理系统一般通过周期性检查_________图来实现死锁检测。
