计算机等考三级数据库上机题及答案6.docx
《计算机等考三级数据库上机题及答案6.docx》由会员分享,可在线阅读,更多相关《计算机等考三级数据库上机题及答案6.docx(13页珍藏版)》请在冰豆网上搜索。
计算机等考三级数据库上机题及答案6
76.函数RData()实现从文件IN.dat中读取20行数据存放到字符串数组str中(每行字符串长度均小于80)。
请编写函数stringSort(),其功能是:
以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组str中。
最后调用函数WData(),把结果str输出到OUT.dat文件中。
条件:
从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。
如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如,位置012345678
原字符串abcdhgfe
123498765
处理后字符串hgfedcba
位置876594321
【答案】
voidstringSort()
{inti,j,k,strl,half;
charch;
for(i=0;i<20;i++)
{strl=strlen(str[i]);
half=strl/2;
for(j=0;j
for(k=j+1;k<>
if(str[i][j] {ch=str[i][j]; str[i][j]=str[i][k]; str[i][k]=ch; } for(j=half-1,k=strl-1;j>=0;j--,k--) {ch=str[i][j]; str[i][j]=str[i][k]; str[i][k]=ch; } } } 77.函数RData()的功能是实现从文件IN.dat中读取一篇英文文章存入到字符串数组original中。请编写函数CharAdd(),其功能是:以行为单位把字符串中的第1个字符的ASCII值加第2个字符的ASCII值,得到第1个新字符,第2个字符的ASCII值加第3个字符的ASCII值,得到第2个新字符,以此类推,一直处理到倒数第2个字符,最后1个字符的ASCII值加原第1个字符的ASCII值,得到最后1个新的字符。得到的新字符分别存放在原字符串对应的位置上,最后把已处理的字符串逆转后按行重新存入字符串数组original中。最后调用函数WData(),把结果original输出到OUT.dat文件中。 原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。 【答案】 voidCharAdd(void) {inti,j,k,str; charch; for(i=0;i<> {str=strlen(original[i]); ch=original[i][0]; for(j=0;j original[i][j]+=original[i][j+1]; original[i][str-1]+=ch; for(j=0,k=str-1;j {ch=original[i][j]; original[i][j]=original[i][k]; original[i][k]=ch; } } } 78.编写函数FibValue(),其功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最后调用函数WData()从IN.dat中读取50个数据t,分别得出结果,且把结果输出到OUT.dat文件中。 例如,当t=1000时,函数值为1597。 【答案】 intFibValue(intt) {intf1=0,f2=1,fn; fn=f1+f2; while(fn<=t) {f1=f2; f2=fn; fn=f1+f2; } returnfn; }79.下列程序的功能是:利用"Xn+1=cos(Xn)"迭代方法求方程:cos(X)-X=0的一个实根。 迭代步骤为:①取X1初值为0.0;②X0=X1,把X1的值赋给X0;③X1=cos(X0),求出一个新的X1;④若X0-X1的绝对值小于0.000001,执行步骤⑤,否则执行步骤②;⑤所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。 请编写函数countValue()实现程序的要求,最后调用函数WData(),把结果输出到文件OUT.dat中。 【答案】 floatcountValue() {floatX0,X1=0.0; while(1) {X0=X1; X1=(float)cos(X0); if(fabs(X0-X1)<1e-6) break; } returnX1; } 80.函数Rdata()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组string中;请编写encryptChar()函数,其功能是:按给定的替代关系对数组string中的所有字符进行替代后,仍存入数组string的对应位置上。最后调用函数Wdata(),把结果string输出到文件OUT.dat中。 替代关系:f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。 原始数据文件存放的格式是:每行的宽度均小于80个字符。 【答案】 voidencryptChar() {inti; char*pf; for(i=0;i {pf=string[i]; while(*pf!=0) {if(((*pf*11%256)%2!=0)||*pf*11%256<=32) {pf++; continue; } *pf=*pf*11%256; pf++; } } } 81.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选均为无效的选票。给定函数RData()的功能是把选票数据读入字符串数组original中。请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]中,把结果result输出到OUT.dat文件中。 【答案】 voidCountRs(void) {inti,j=0,k; char*str; for(i=0;i<10;i++) result[i]=0; for(i=0;i<100;i++) {str=original[i]; j=0; while(*str) {if(*str=='1') j++; str++; } if(j!=0&&j!=10) for(k=0;k<10;k++) result[k]+=original[i][k]-'0'; } }82.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为是无效的选票。给定函数Rdata()的功能是把选票数据读入到字符串数组str中。请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]中,把结果result输出到OUT.dat文件中。 【答案】 voidCountRs(void) {inti,count,j; char*pf; for(i=0;i<10;i++) result[i]=0; for(i=0;i<100;i++) {pf=str[i]; count=0; while(*pf) {if(*pf=='1') count++; pf++; } if(count>5) for(j=0;j<10;j++) result[j]+=str[i][j]-'0'; } } 83.函数ReadDat()实现从文件IN.dat中读取20行数据存放到字符串数组str中(每行字符串长度均小于80)。请编写函数charSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组str中。最后调用函数WriteDat(),把结果str输出到文件OUT.dat中。 条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。 例如,位置012345678 原字符串abcdhgfe 123498765 则处理后字符串dcbaefgh 432195678 【答案】 voidcharSort() {inti,j,k,strl,half; charch; for(i=0;i<20;i++) {strl=strlen(str[i]); half=strl/2; for(j=0;j for(k=j+1;k<> if(str[i][j] {ch=str[i][j]; str[i][j]=str[i][k]; str[i][k]=ch; } if(strl%2) half++; for(j=half;j for(k=j+1;k<> if(str[i][j]>str[i][k]) {ch=str[i][j]; str[i][j]=str[i][k]; str[i][k]=ch; } } } 84.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。函数RData()读取这200个数存放到数组original中。请编写函数DescSort(),其函数的功能是:按每个数的后3位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行升序排列。最后调用函数WData(),把结果result
{ch=str[i][j];
str[i][j]=str[i][k];
str[i][k]=ch;
}
for(j=half-1,k=strl-1;j>=0;j--,k--)
77.函数RData()的功能是实现从文件IN.dat中读取一篇英文文章存入到字符串数组original中。
请编写函数CharAdd(),其功能是:
以行为单位把字符串中的第1个字符的ASCII值加第2个字符的ASCII值,得到第1个新字符,第2个字符的ASCII值加第3个字符的ASCII值,得到第2个新字符,以此类推,一直处理到倒数第2个字符,最后1个字符的ASCII值加原第1个字符的ASCII值,得到最后1个新的字符。
得到的新字符分别存放在原字符串对应的位置上,最后把已处理的字符串逆转后按行重新存入字符串数组original中。
最后调用函数WData(),把结果original输出到OUT.dat文件中。
原始数据文件存放的格式是:
每行的宽度均小于80个字符(含标点符号和空格)。
voidCharAdd(void)
{inti,j,k,str;
for(i=0;i<>
{str=strlen(original[i]);
ch=original[i][0];
original[i][j]+=original[i][j+1];
original[i][str-1]+=ch;
for(j=0,k=str-1;j
{ch=original[i][j];
original[i][j]=original[i][k];
original[i][k]=ch;
78.编写函数FibValue(),其功能是:
求Fibonacci数列中大于t的最小的一个数,结果由函数返回。
其中Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数WData()从IN.dat中读取50个数据t,分别得出结果,且把结果输出到OUT.dat文件中。
例如,当t=1000时,函数值为1597。
intFibValue(intt)
{intf1=0,f2=1,fn;
fn=f1+f2;
while(fn<=t)
{f1=f2;
f2=fn;
returnfn;
79.下列程序的功能是:
利用"Xn+1=cos(Xn)"迭代方法求方程:
cos(X)-X=0的一个实根。
迭代步骤为:
①取X1初值为0.0;②X0=X1,把X1的值赋给X0;③X1=cos(X0),求出一个新的X1;④若X0-X1的绝对值小于0.000001,执行步骤⑤,否则执行步骤②;⑤所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。
请编写函数countValue()实现程序的要求,最后调用函数WData(),把结果输出到文件OUT.dat中。
floatcountValue()
{floatX0,X1=0.0;
while
(1)
{X0=X1;
X1=(float)cos(X0);
if(fabs(X0-X1)<1e-6)
break;
returnX1;
80.函数Rdata()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组string中;请编写encryptChar()函数,其功能是:
按给定的替代关系对数组string中的所有字符进行替代后,仍存入数组string的对应位置上。
最后调用函数Wdata(),把结果string输出到文件OUT.dat中。
替代关系:
f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。
每行的宽度均小于80个字符。
voidencryptChar()
{inti;
char*pf;
for(i=0;i
{pf=string[i];
while(*pf!
=0)
{if(((*pf*11%256)%2!
=0)||*pf*11%256<=32)
{pf++;
continue;
*pf=*pf*11%256;
pf++;
81.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,全选或全不选均为无效的选票。
给定函数RData()的功能是把选票数据读入字符串数组original中。
请编写函数CountRs()来统计每个人的选票数并把得票数依次存入result[0]到result[9]中,把结果result输出到OUT.dat文件中。
voidCountRs(void)
{inti,j=0,k;
char*str;
for(i=0;i<10;i++)
result[i]=0;
for(i=0;i<100;i++)
{str=original[i];
j=0;
while(*str)
{if(*str=='1')
j++;
str++;
if(j!
=0&&j!
=10)
for(k=0;k<10;k++)
result[k]+=original[i][k]-'0';
82.现有一个10个人的100行选票数据文件IN.dat,其数据存放的格式是每条记录的长度均为10位,第一位表示第1个人的选中情况,第二位表示第2个人的选中情况,以此类推;内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为是无效的选票。
给定函数Rdata()的功能是把选票数据读入到字符串数组str中。
{inti,count,j;
{pf=str[i];
count=0;
while(*pf)
{if(*pf=='1')
count++;
if(count>5)
for(j=0;j<10;j++)
result[j]+=str[i][j]-'0';
83.函数ReadDat()实现从文件IN.dat中读取20行数据存放到字符串数组str中(每行字符串长度均小于80)。
请编写函数charSort(),其函数的功能是:
最后调用函数WriteDat(),把结果str输出到文件OUT.dat中。
从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。
如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
则处理后字符串dcbaefgh
432195678
voidcharSort()
if(str[i][j] {ch=str[i][j]; str[i][j]=str[i][k]; str[i][k]=ch; } if(strl%2) half++; for(j=half;j for(k=j+1;k<> if(str[i][j]>str[i][k]) {ch=str[i][j]; str[i][j]=str[i][k]; str[i][k]=ch; } } } 84.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。函数RData()读取这200个数存放到数组original中。请编写函数DescSort(),其函数的功能是:按每个数的后3位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行升序排列。最后调用函数WData(),把结果result
if(strl%2)
half++;
for(j=half;j
if(str[i][j]>str[i][k])
84.在文件IN.dat中有200个正整数,且每个数均在1000~9999之间。
函数RData()读取这200个数存放到数组original中。
请编写函数DescSort(),其函数的功能是:
按每个数的后3位的大小进行降序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行升序排列。
最后调用函数WData(),把结果result
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1