计算机三级数据库上机试题100道.docx

上传人:b****6 文档编号:6725918 上传时间:2023-01-09 格式:DOCX 页数:203 大小:60.20KB
下载 相关 举报
计算机三级数据库上机试题100道.docx_第1页
第1页 / 共203页
计算机三级数据库上机试题100道.docx_第2页
第2页 / 共203页
计算机三级数据库上机试题100道.docx_第3页
第3页 / 共203页
计算机三级数据库上机试题100道.docx_第4页
第4页 / 共203页
计算机三级数据库上机试题100道.docx_第5页
第5页 / 共203页
点击查看更多>>
下载资源
资源描述

计算机三级数据库上机试题100道.docx

《计算机三级数据库上机试题100道.docx》由会员分享,可在线阅读,更多相关《计算机三级数据库上机试题100道.docx(203页珍藏版)》请在冰豆网上搜索。

计算机三级数据库上机试题100道.docx

计算机三级数据库上机试题100道

计算机三级数据库上机试题100道

目录

一、20行数据问题2

一、200个四位数9

二、200个整数43

三、200组数据47

四、300个四位数51

五、1000个十进制数56

六、1000-9999排序62

七、产品销售65

八、个数小于20077

九、混乱计算86

十、素数101

十一、选票106

十二、字符112

一、20行数据问题

1.奇数从小到大

函数readDat()的功能是从文件in74.dat中读取20行数据存放到字符串数组xx中(每行字符串的长度均小于80)。

请编制函数jsSort(),该函数的功能是:

以行为单位对字符串变量的下标为奇数位置上的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件out74.dat中。

例如:

位置 0 1 2 3 4 5 6 7

源字符串 h g f e d c b a 

则处理后字符串 h a f c d e b g。

注意:

部分源程序已给出。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#include

#include

charxx[20][80];

voidreadDat();

voidwriteDat();

voidjsSort()

{

inti,j,k;/*定义循环控制变量*/

intstr;/*定义存储字符串长度的变量*/

chartemp;/*定义数据交换时的暂存变量*/

for(i=0;i<20;i++)/*逐行对数据进行处理*/

{

str=strlen(xx[i]);/*求各行字符串的长度*/

for(j=1;j

for(k=j+2;k

if(xx[i][j]>xx[i][k])

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

}

}

voidmain()

{

readDat();

jsSort();

writeDat();

}

voidreadDat()

{

FILE*in;

inti=0;

char*p;

in=fopen("in74.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("out74.dat","w");

system("CLS");

for(i=0;i<20;i++)

{

printf("%s\n",xx[i]);

fprintf(out,"%s\n",xx[i]);

}

fclose(out);

}

2.左降与右换

函数readDat()的功能是从文件IN75.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。

请编制函数jsSort(),该函数的功能是:

以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT75.DAT中。

条件:

从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后,左边部分与右边部分按例子所示进行交换。

如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如,  位置 012345678

源字符串 abcdhgfe

23498765

则处理后字符串hgfedcba

87659432

注意:

部分源程序已给出。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#include

#include

charxx[20][80];

voidreadDat();

voidwriteDat();

voidjsSort()

{

inti,j,k;/*定义计数器变量*/

intstr,half;/*定义存储字符串长度的变量*/

chartemp;/*定义数据交换时的暂存变量*/

for(i=0;i<20;i++)/*逐行对数据进行处理*/

{

str=strlen(xx[i]);/*求字符串的长度*/

half=str/2;/*通过half将字符串分为左右两部分*/

for(j=0;j

for(k=j+1;k

if(xx[i][j]

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

for(j=half-1,k=str-1;j>=0;j--,k--)/*将左边部分和右边部分的对应字符交换*/

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

}

}

voidmain()

{

readDat();

jsSort();

writeDat();

}

voidreadDat()

{

FILE*in;

inti=0;

char*p;

in=fopen("IN75.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;

system("CLS");

out=fopen("OUT75.DAT","w");

for(i=0;i<20;i++)

{

printf("%s\n",xx[i]);

fprintf(out,"%s\n",xx[i]);}

fclose(out);

}

3.左降与右升

函数readDat()是从文件in77.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。

请编制函数jsSort(),其功能是:

以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。

最后调用函数writeDat()把结果xx输出到文件out77.dat中。

条件:

从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。

如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。

例如:

位置012345678

源字符串abcdhgfe

123498765

处理后的字符串dcbaefgh

432195678

注意:

部分源程序已给出。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#include

#include

charxx[20][80];

voidreadDat();

voidwriteDat();

voidjsSort()

{

inti,j,k;/*定义循环控制变量*/

intstr,half;/*定义存储字符串长度的变量*/

chartemp;/*定义数据交换时的暂存变量*/

for(i=0;i<20;i++)/*逐行对数据进行处理*/

{

str=strlen(xx[i]);/*求各行字符串的总长度*/

half=str/2;/*求总长度的一半*/

for(j=0;j

for(k=j+1;k

if(xx[i][j]

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

if(str%2==1)/*如果原字符串长度为奇数,则跳过最中间的字符,使之不参加排序*/

half++;

for(j=half;j

for(k=j+1;k

if(xx[i][j]>xx[i][k])

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

}

}

voidmain()

{

readDat();

jsSort();

writeDat();

}

voidreadDat()

{

FILE*in;

inti=0;

char*p;

in=fopen("in77.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;

system("CLS");

out=fopen("out77.dat","w");

for(i=0;i<20;i++)

{

printf("%s\n",xx[i]);

fprintf(out,"%s\n",xx[i]);

}

fclose(out);

}

4.左升与右换

读函数readDat()的功能是从文件IN76.DAT中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。

请编制函数jsSort(),该函数的功能是:

以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用写函数writeDat()把结果xx输出到文件OUT76.DAT中。

条件:

从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后,左边部分与右边部分按例子所示进行交换。

如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如:

  位置 012345678

源字符串 dcbahgfe

43219876

处理后字符串hgfeabcd

98761234

注意:

部分源程序已给出。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#include

#include

charxx[20][80];

voidreadDat();

voidwriteDat();

voidjsSort()

{

inti,j,k;/*定义计数器变量*/

intstr,half;/*定义存储字符串长度的变量*/

chartemp;/*定义数据交换时的暂存变量*/

for(i=0;i<20;i++)/*逐行对数据进行处理*/

{

str=strlen(xx[i]);/*求字符串的长度*/

half=str/2;/*确定各行中字符串的中间位置*/

for(j=0;j

for(k=j+1;k

if(xx[i][j]>xx[i][k])

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

for(j=half-1,k=str-1;j>=0;j--,k--)/*将左边部分与右边部分对应的字符进行交换*/

{

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

}

}

voidmain()

{

readDat();

jsSort();

writeDat();

}

voidreadDat()

{

FILE*in;

inti=0;

char*p;

in=fopen("IN76.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;

system("CLS");

out=fopen("OUT76.DAT","w");

for(i=0;i<20;i++)

{

printf("%s\n",xx[i]);

fprintf(out,"%s\n",xx[i]);

}

fclose(out);

}

一、200个四位数

5.连续大于后5个数

已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:

依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT2.DAT文件中。

注意:

部分源程序已给出。

程序中已定义数组:

a[200],b[200],已定义变量:

cnt。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#defineMAX200

inta[MAX],b[MAX],cnt=0;

voidwriteDat();

voidjsVal()

{

inti,j;/*定义循环控制变量*/

inttemp;/*定义数据交换是的暂存变量*/

for(i=0;i

if(a[i]%2!

=0)/*如果当前数是奇数*/

for(j=i+1;j<=i+5;j++)/*取该数后面的5个数进行比较*/

{

if(a[i]

break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/

elseif(j==i+5)/*如果当前数比后面的5个数都大*/

{

b[cnt]=a[i];/*将满足条件的数存入数组b中*/

cnt++;/*并统计满足条件的数的个数*/

}

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

voidreadDat()

{

inti;

FILE*fp;

fp=fopen("IN2.DAT","r");

for(i=0;i

fclose(fp);

}

voidmain()

{

inti;

readDat();

jsVal();

printf("满足条件的数=%d\n",cnt);

for(i=0;i

printf("\n");

writeDat();

}

voidwriteDat()

{

FILE*fp;

inti;

fp=fopen("OUT2.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i

fclose(fp);

}

6.连续小于后5个数

已知数据文件IN36.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制函数jsVal(),其功能是:

依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数(该4位数以后不满5个数,则不统计),则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT36.DAT文件中。

注意:

部分源程序已给出。

程序中已定义数组:

a[200],b[200],已定义变量:

cnt。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#defineMAX200

inta[MAX],b[MAX],cnt=0;

voidreadDat();

voidwriteDat();

voidjsVal()

{

inti,j;/*定义循环控制变量*/

inttemp;/*定义数据交换是的暂存变量*/

for(i=0;i

if(a[i]%2==0)/*如果当前数是偶数*/

for(j=i+1;j<=i+5;j++)/*取该数后面的5个数进行比较*/

{

if(a[i]>a[j])

break;/*如果当前数不满足比后面5个数都小的条件,则跳出循环*/

elseif(j==i+5)/*如果当前数比后面的五个数都小*/

{

b[cnt]=a[i];/*将满足条件的数存入数组b中*/

cnt++;/*并统计满足条件的数的个数*/

}

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

voidreadDat()

{

inti;

FILE*fp;

fp=fopen("IN36.DAT","r");

for(i=0;i

fscanf(fp,"%d",&a[i]);

fclose(fp);

}

voidmain()

{

inti;

readDat();

jsVal();

printf("满足条件的数=%d\n",cnt);

for(i=0;i

printf("%d",b[i]);

printf("\n");

writeDat();

}

voidwriteDat()

{

FILE*fp;

inti;

fp=fopen("OUT36.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i

fprintf(fp,"%d\n",b[i]);

fclose(fp);

}

7.偶数

已知数据文件IN37.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:

依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数(该4位数以前不满5个数,则不统计),则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT37.DAT中。

注意:

部分源程序已给出。

程序中已定义数组:

a[200],b[200],已定义变量:

cnt。

请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

试题程序:

#include

#defineMAX200

inta[MAX],b[MAX],cnt=0;

voidwriteDat();

voidjsVal()

{

inti,j;/*定义循环控制变量*/

inttemp;/*定义数据交换是的暂存变量*/

for(i=5;i

if(a[i]%2==0)/*如果当前数是偶数*/

for(j=i-5;j<=i-1;j++)/*取该数前面的5个数进行比较*/

{

if(a[i]

break;/*如果当前数不满足比前面5个数都大的条件,则跳出循环*/

elseif(j==i-1)/*如果当前数比前面的5个数都大*/

{

b[cnt]=a[i];/*将满足条件的数存入数组b中*/

cnt++;/*并统计满足条件的数的个数*/

}

}

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("in37.dat","r");

for(i=0;i

fscanf(fp,"%d",&a[i]);

fclose(fp);

}

voidmain()

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1