数据库考试上机试
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
(C源码)
***************************************
***************************************
#include
#include #include
char xx[50][80];
int maxline=0;
int ReadDat();
void WriteDate();
void StrCharJR(void) {
int i,j,str1;
for(i=0;i<=maxline;i++)
{str1=strlen(xx[i]);
for(j=0;j>4; //位操作是关键部分
}
}
void main()
{
int WriteDat();
if(ReadDat())
{printf("can't open the data file 'IN.DAT'!\n\007");
return;
}
StrCharJR();
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;
}
int WriteDat()
{
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);
return 0;
}
***************************************
***************************************
#include
#include
#define N 200
void ReadData(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",&xx[10*i+j]);
printf("%d",xx[10*i+j]);
}
printf("\n");
}
fclose(fp);
}
void main()
{
int cnt,xx[N],max,i,k;
float ave;
FILE *fw;
long j=0; //这个语句貌似没什么作用
fw=fopen("Out.dat","w");
ReadData(xx);
max=xx[0];
for(i=0,k=0;imax) max=xx[i];
if(xx[i]%3==0||xx[i]%7==0)
{
j+=xx[i];k++;
}
}
for(i=0,cnt=0;i
#include
#include
int xx[200], yy[10];
void Sort1()
{
int i,j,data;
for(i=0;i<=199;i++)
for(j=i+1;j<200;j++)
{if(xx[i]%1000>xx[j]%1000)
{data=xx[i];
xx[i]=xx[j];
xx[j]=data;
}
else if(xx[i]%1000==xx[j]%1000)
if(xx[i]
#include #include
#include
main()
{
int xx[100]={0},i,j,m;
FILE *fp;
fp=fopen("In.dat","w");
xx[0]=1;
for(i=0;i<100;i++)
{
for(j=0,m=0;j<100;j++)
{
xx[j]=xx[j]*9+m; //算法核心部分
if(xx[j]>=10)
{m=xx[j]/10;
xx[j]=xx[j]%10;}
else
{m=0;}
}
}
for(m=99;m>=0;m--)
{
if(xx[m])
{printf("%d",xx[m]);
fprintf(fp,"%d",xx[m]);}
}
fclose(fp);
}
***************************************
***************************************
/*在文件in.dat中有300个正整数,且每个正整数均在1000~9999之间,函数ReadDat()读
取
这300个数存放到数组aa中,请编制函数xwSort(),其函数功能是:要求按每个数的后三
位
的大小进行降序排列,然后取出满足此条件的前10个数依次存入到数组bb中,如果后三位
的
数值相等则对这些数按原先的第四位数值进行升序排列。最后调用函数WriteDat()把结果bb
输出到文件out.dat中。*/
#include
int aa[300],bb[10];
void xwSort() //程序已被完善
{
int i,j,k; //
for(i=0;i<299;i++) //
{ //
for(j=i+1;j<300;j++) //
{ //
if(aa[i]%1000aa[j])
{
k=aa[i];aa[i]=aa[j];aa[j]=k;
}
}
}
}
for(i=0;i<10;i++)
{
bb[i]=aa[i];
}
}
void main()
{
DataMaker();
ReadDat();
xwSort();
WriteDat();
}
ReadDat()
{
FILE *in;
int i;
in=fopen("in.dat","r");
for(i=0;i<300;i++)
{
fscanf(in,"%d\n",&aa[i]);
}
fclose(in);
}
WriteDat()
{
FILE *out;
int i;
out=fopen("out.dat","w");
for(i=0;i<10;i++)
{
printf("%d\n",bb[i]);
fprintf(out,"%d\n",bb[i]);
}
fclose(out);
}
DataMaker() //自定义的数据生成函数用于生成1000~9999之间靠近1000的300个素数
{
FILE *fp;
int i,j=0,m,flag;
fp=fopen("in.dat","w");
for(i=1000;i<9999;i++)
{
flag=1;
for(m=2;m
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示第一个人的选中状况,第二位表示第二个人的选中状况,依此类推;内容
均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数
ReadDat()的功能是把选票数据读入到字符串数组bb中,请编制函数CountRs()来统计每个人的
选票数,并把得票数依次存入aa[0]到aa[9]中。把结果aa输出到文件out.dat中。*/ #include
#include
#include
char bb[100][10];
int aa[10];
int ReadDat(void); void WriteDat(void); void CountRs(void) //需要完善的程序部分 {
int i,j,flag1,flag2=0;
for(j=0;j<10;j++)
{
flag1=0;
for(i=0;i<100;i++)
{
if(bb[i][j]=='1') flag1++; //for条件只作用到这一条语句
}
if(flag1>0 && flag1<100)
{
for(i=0;i<100;i++)
if(bb[i][j]=='1') aa[j] ++; //统计每个人选票在不是全部为
0或1的情况下的选票数
}
else flag2 ++; //flag2统计无效候选人个数
}
printf("flag2(不合格[全部是赞成票或者全部是反对票]的候选人的个
数):%d\n",flag2);
}
main()
{
int i;
DataMaker();
for(i=0;i<10;i++)
{
aa[i]=0;
}
if(ReadDat())
{
printf("can not open the file!\n\007");
return 0;
}
CountRs();
WriteDat();
return 0;
}
int ReadDat(void)
{
FILE *in;
int i=0;
char *p;
if((in=fopen("in.dat","r"))==NULL) return 1;
while(fgets(bb[i],80,in)!=NULL)
{
p=strchr(bb[i],'\n'); //char *strchr( const char *string, int c );
if(p) *p=0; //找出string中第一个含有字符c的位置
i++;
}
fclose(in);
return 0;
}
void WriteDat(void)
{
FILE *out;
int i;
out=fopen("out.dat","w");
for(i=0;i<10;i++)
{
fprintf(out,"%d\n",aa[i]);
printf("第%d个人的选票数=%d\n",i+1,aa[i]);
}
fclose(out);
}
DataMaker() //数据生成部分 { //寻找前100个素数
FILE *fp; //取其最后一位,最后一位是多少生成的数
据中就有几个1,其他为0
int i,j,k,flag,m; //缺点:生成的数据中第一列全部为1
fp=fopen("in.dat","w");
for(i=3,k=0;;i++)
{
flag=1;
for(j=2;j<=(int)sqrt(i);j++)
{
if(i%j==0)
{
flag=0;
}
}
if(flag==1)
{
if(i<10)
{
for(m=0;m10) && (i<100))
{
for(m=0;(m100) && (i<1000))
{
for(m=0;m<(i%10);m++)
{
fprintf(fp,"1");
}
for(m=0;m<(10-i%10);m++)
{
fprintf(fp,"0");
}
fprintf(fp,"\n");
}
k++;
}
if(k>99)
{
break;
}
}
printf("所需要的素数个数是%d\n",k);
printf("NOTHING IS IMPOSSIBLE!!!\n");
printf("华丽的分割线\n");
printf("**************************************\n");
fclose(fp);
return 0;
}
*************************************** *************************************** /*文件in.dat中存放有若干个(个数<=300)四位数的正整数,函数ReadDat()读取这若干个正整数并存入
数组aa中。请编制函数CalValue(),其功能如下:
(1).求出该文件中共有多少个正整数sum1;
(2).求这些数右移一位后,产生的新数是偶数的个数sum2,以及满足这些数的算术平均值avg,最后
调用函数WriteDat()把所求的结果输出到文件out.dat中。*/
#include
#include
#define max 300
int aa[max];
int sum1=0,sum2=0;
double avg=0.0;
int ReadDat(void);
void WriteDat(void);
void DataMaker(void);
void CalValue(void)
{
int i,k;
for(i=0;i0)
{
sum1++; //统计正整数的个数
}
k=aa[i]>>1; //将该数化成二进制形式后,所有位向右移动一位,空出的由0代替,不够的溢出
if(k%2 == 0) //如果右移一位后,产生的新数是偶数
{
sum2 ++;
avg+=aa[i]; //
} //统计这些数的个数,并将满足条件的原数求和
}
avg/=sum2; //求满足条件的这些数(右移前的值)的算术平均值
}
void main()
{
int i;
for(i=0;i=100)
{
fprintf(fp,"%d\n",i); //数据生成部分出现重复
}
}
}
fclose(fp);
}
***************************************
***************************************
/*编写函数CalValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函
数返回。
其中Fibonacci数列F(n)的定义为:
F(0)=0,F(1)=1,……,F(n)=F(n-1)+F(n-2)
最后调用函数WriteDat()从文件in.dat中读取10个数据t,分别得出结果且把结果输出到
文件out.dat中。*/
#include
#include
int CalValue(int t)
{
int f0=0,f1=1,fn;
fn=f0+f1;
while (fn<=t)
{
f0=f1;
f1=fn;
fn=f1+f0;
}
return fn;
}
main()
{
int n=100;
DataMaker(); //函数声明必须严格按照这个格式,否则就会出错~
printf("n = %d,f = %d\n",n,CalValue(n));
WriteDat(); //函数声明必须严格按照这个格式,否则就会出错~
}
WriteDat(void)
{
FILE *fp1,*fp2;
int i,n,s;
fp1=fopen("in.dat","r");
fp2=fopen("out.dat","w");
for(i=0;i<10;i++)
{
fscanf(fp1,"%d\n",&n);
s=CalValue(n);
printf("%d\n",s);
fprintf(fp2,"%d\n",s);
}
fclose(fp1);
fclose(fp2);
return 0;
}
DataMaker(void) //函数生成部分,生成10个大于0的素数 {
FILE *fp;
int i,j,k=0,flag=1;
fp=fopen("in.dat","w");
for(i=2,k=0;k<10;i++)
{
flag=1;
for(j=2;j<=sqrt((double)i);j++)
{
if(i==2)
fprintf(fp,"%d\n",i);
if(i%j==0)
{
flag=0;
}
}
if(flag==1)
{
fprintf(fp,"%d\n",i);
k++;
}
}
fclose(fp);
return 0;
}