三级数据库题目.docx
《三级数据库题目.docx》由会员分享,可在线阅读,更多相关《三级数据库题目.docx(21页珍藏版)》请在冰豆网上搜索。
三级数据库题目
1.
2.
#include
#include
charxx[20][80];
voidreadDat();
voidwriteDat();
voidjsSort()
{
inti,j,k;
inttemp;
for(i=0;i<20;i++)
{
for(j=0;j{
for(k=j+1;k{
}
}
}
}
voidmain()
{
readDat();
jsSort();
writeDat();
}
voidreadDat()
{
FILE*in;
inti=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);
}
voidwriteDat()
{
FILE*out;
inti;
out=fopen("out.dat","w");
for(i=0;i<20;i++){
printf("%s\n",xx[i]);
fprintf(out,"%s\n",xx[i]);
}
fclose(out);
}
3.
以下程序也是对的:
voidcountValue(int*a,int*n)
{
inti;
intnum=0;
*n=0;
for(i=1;i<=1000;i++)
{
if((i%7==0||i%11==0)&&(!
(i%7==0&&i%11==0)))
{
a[num++]=i;
(*n)++;//一定要加括号,否则就错。
}
}
}
#include
#include
voidwriteDAT();
voidcountValue(int*a,int*n)
{
inti,j,temp;
intnum=0;
*n=0;
for(i=1;i<=1000;i++)
{
if((i%7==0||i%11==0)&&(!
(i%7==0&&i%11==0)))
{
a[num++]=i;
*n++;
}
}
for(i=0;i{
for(j=i+1;j{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
main()
{
intaa[1000],n,k;
countValue(aa,&n);
for(k=0;kif((k+1)%10==0)printf("%5d\n",aa[k]);
elseprintf("%5d",aa[k]);
writeDAT();
}
voidwriteDAT()
{
intaa[1000],n,k;
FILE*fp;
fp=fopen("out.dat","w");
countValue(aa,&n);
for(k=0;kif((k+1)%10==0)fprintf(fp,"%5d\n",aa[k]);
elsefprintf(fp,"%5d",aa[k]);
fclose(fp);
}
4.
#include
#defineMAX200
inta[MAX],b[MAX],cnt=0;
voidwriteDat();
intisprime(intm)
{
inti;
for(i=2;i<=m/2;i++)
if(m%i==0)return0;
return1;
}
voidjsVal()
{
inti,j;
inta1,a2,a3,a4;
for(i=0;i{//取位错了,看答案
a1=a[i]/10;
a2=a[i]/100%10;
a3=a[i]/1000%100;
a4=a[i]/10000;
if(isprime(a4*10+a2)&&isprime(a3+a1*10)&&a4!
=0&&a1!
=0)
{
b[cnt++]=i;//是把a[i]给b[cnt]
}
}
}
voidreadDat()
{
inti;
FILE*fp;
fp=fopen("in.dat","r");
for(i=0;ifclose(fp);
}
voidmain()
{
inti;
readDat();
jsVal();
printf("满足条件的数=%d\n",cnt);
for(i=0;iprintf("\n");
writeDat();
}
voidwriteDat()
{
FILE*fp;
inti;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;ifclose(fp);
}
5.
#include
inta[300],cnt=0;
doublepjz1=0.0,pjz2=0.0;
voidreadDat();
voidwriteDat();
jsValue()
{
inti;
inta1,a2,a3,a4;//不要定义为a,b,c,d;因为a是数组首地址。
doublesum=0.0,sum2=0.0;
for(i=0;i<300;i++)
{
a1=a[i]%10;
a2=a[i]%100/10;
a3=a[i]%1000/100;
a4=a[i]%10000/1000;
if(a1-a4-a3-a2>0)
{
cnt++;
sum+=a[i];
}
else
sum2+=a[i];
}
pjz1=sum/cnt;
pjz2=sum2/(300-cnt);
}
main()
{
readDat();
jsValue();
writeDat();
printf("cnt=%d\n满足条件的平均值pzj1=%7.2lf\n不满足条件的平均值pzj2=%7.2lf\n",cnt,pjz1,pjz2);
}
voidreadDat()
{
FILE*fp;
inti;
fp=fopen("in.dat","r");
for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);
fclose(fp);
}
voidwriteDat()
{
FILE*fp;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n%7.2lf\n%7.2lf\n",cnt,pjz1,pjz2);
fclose(fp);
}
6.
#include
#defineMAX200
inta[MAX],b[MAX],cnt=0;
voidwriteDat();
voidjsVal()
{
inti,j,temp;
for(i=5;i{仔细核对符号,不要粗心
if(a[i]>a[i-1]&&a[i]>a[i-2]&&a[i]>a[i-3]&&a[i]>a[i-4]&&a[i]>a[i-5]&&a[i]%2==0)
{
b[cnt++]=a[i];
}
}
for(i=0;i{
for(j=i+1;j{
if(b[i]
!
!
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
}
}
voidreadDat()
{
inti;
FILE*fp;
fp=fopen("in.dat","r");
for(i=0;ifclose(fp);
}
voidmain()
{
inti;
readDat();
jsVal();
printf("满足条件的数=%d\n",cnt);
for(i=0;iprintf("\n");
writeDat();
}
voidwriteDat()
{
FILE*fp;
inti;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;ifclose(fp);
}
7.
以下答案是错的,没看清题目,是要计算后是否小于等于32,不是计算前,最好借助中间变量
voidencryptChar()
{
inti,j;
inttemp;
for(i=0;i<50;i++)
{
for(j=0;j<80;j++)
{
if((xx[i][j]%2)==0||(xx[i][j]<=32))
{
}
else
xx[i][j]=(xx[i][j]*11)%256;
//xx[i][j]=1xx[i][j]*1%256;
}
}
}
以下答案也是对的,没借助中间变量
voidencryptChar()
{
inti,j;
//inttemp;
for(i=0;i<50;i++)
{
for(j=0;j<80;j++)
{
//temp=(xx[i][j]*11)%256;
if((xx[i][j]%2)==0||(xx[i][j]*11)%256<=32)
{
}
else
xx[i][j]=(xx[i][j]*11)%256;
//xx[i][j]=1xx[i][j]*1%256;
}
}
}
总结:
考上机,要切记几点:
1.排序的算法,用选择排序
2.数位的分解,要牢记
3.什么奇偶啊,素数啊,求和啊,平均啊等等
4.尽量少定义变量,用题目给的变量
5.考前注意以前的小细节,不要错,什么指针的,数组的,如上述的(*n)++,要加括号
6.自然数从1开始
7.if(b[i]
!
!
8.if(b[i]>b[j])从小到大,注意!
!
!
9.认真仔细核对结果,确保无误