没有合适的资源?快使用搜索试试~ 我知道了~
计算机三级数据库南开一百题

温馨提示
报名计算机三级的小伙伴们可以将100题刷完,基本代码部分就可以了,理论部分加油吧
资源推荐
资源详情
资源评论




















格式:x-rar 资源大小:220.7KB





格式:x-rar 资源大小:364.9KB


☆题目 1
请编写一个函数 jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数
组 xx 传回。
最后调用函数 writeDat()读取 10 组数据,分别得出结果且把结果输出到文件 out.dat 中。
部分源程序存在文件 prog1.c 中。
例如:若输入 17 5 则应输出:19,23,29,31,37。
请勿改动主函数 main()和写函数 writeDat()的内容。
int isP(int m)
{
int i;
for(i=2;i<m;i++)
if(m % i==0)return 0;
return 1;
}
void num(int m,int k,int xx[])
{ int s=0;
for(m=m+1;k>0;m++)
if(isP(m)) { xx[s++]=m; k--;}
}
题目 2
已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编
制一函数 jsVal(),其功能是:如果四位数各位上的数字均是 0 或 2 或 4 或 6 或 8,则统计出满足此条件的
个数 cnt,并把这些四位数按从大到小的顺序存入数组 b 中。最后 main( )函数调用写函数 writeDat()把结果
cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。
void jsVal()
{ int i,j,qw,bw,sw,gw;
for(i=0;i<MAX;i++)
{ qw=a[i]/1000; bw=a[i]/100%10;
sw=a[i]%100/10; gw=a[i]%10;
if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]<b[j]) { qw=b[i]; b[i]=b[j]; b[j]=qw;}
}
★题目 3(字符型题)(有点问题)
函数 ReadDat( )实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中;请编制函数 StrOR( ),
其函数的功能是:以行为单位依次把字符串中所有小写字母 o 左边的字符串内容移到该串的右边存放,然
后把小写字母 o 删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重
新存入字符串数组 xx 中。最后 main()函数调用函数 WriteDat()把结果 xx 输出到文件 OUT5.DAT 中
void StrOR(void)
第 1 页 共 44 页

{int i,righto,j,s,k;
char tem[80];
for(i=0;i<maxline;i++)
for(j=strlen(xx[i])-1;j>=0;j--)
{ k=0;
memset(tem,0,80);
if(xx[i][j]=='o')
{righto=j;
for(s=righto+1;s<strlen(xx[i]);s++)
tem[k++]=xx[i][s];
for(s=0;s<righto;s++)
if(xx[i][s]!='o')
tem[k++]=xx[i][s];
strcpy(xx[i],tem);
}
else continue;
}
}
★题目 4(字符处理——发序输出)
函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中,请编制函数 StrOL(),
其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字
符串(应不含标点符号)仍按行重新存入字符串数组 xx 中,最后调用函数 writeDat()把结果 xx 输出到文
件 OUT6.DAT 中。
例如:原文:You He Me
I am a student.
结果:Me He You
student a am I
void StrOL(void)
{ int i,j,k,s,m,strl;
char str[80];
for(i=0;i<maxline;i++)
{ strl=strlen(xx[i]);
memset(str,0,80);
s=k=0;
for(j=strl-1;j>=0;j--)
{ if(isalpha(xx[i][j])) k++;
else { for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];
k=0;
}
if(!isalpha(xx[i][j]))
str[s++]=' ';
}
for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];
str[s]='\0';
strcpy(xx[i],str); }
}
☆题目 5(整数排序题)
在文件 in.dat 中有 200 个正整数,且每个数均在 1000 至 9999 之间。函数 ReadDat()读取这 200 个数存放到
第 2 页 共 44 页

数组 aa 中。请编制函数 jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取
出满足此条件的前 10 个数依次存入数组 bb 中,如果后三位的数值相等,则按原先的数值进行降序排列。
最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。
例:处理前 6012 5099 9012 7025 8088
处理后 9012 6012 7025 8088 5099
void jsSort()
{
int i,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++)
if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]<aa[j])
(逻辑非!)逻辑与&&》逻辑或||)
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
for(i=0;i<10;i++)
bb[i]=aa[i];
}
******************************************************************************
☆题目 6 正整数排序
在文件 in.dat 中有 200 个正整数,且每个数均在 1000 至 9999 之间。函数 ReadDat()读取这 200 个数存放到
数组 aa 中。请编制函数 jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取
出满足此条件的前 10 个数依次存入数组 b 中,如果后三位的数值相等,则按原先的数值进行升序排列。
最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。
例:处理前 9012 5099 6012 7025 8088
处理后 5099 8088 7025 6012 9012
void jsSort()
{
int i,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++)
if(aa[i]%1000<aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]>aa[j])
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
for(i=0;i<10;i++)
bb[i]=aa[i];
}
***************************************************************************
☆题目 7(结构体操作题)
已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名
称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组成。其中:金额=单价*数量
计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构数组 sell 中。请编制函数 SortDat(),其功
能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果
仍存入结构数组 sell 中,最后调用函数 WriteDat()把结果输出到文件 OUT6.DAT 中。
void SortDat()
{int i,j;
PRO xy;
for(i=0;i<99;i++)
第 3 页 共 44 页

for(j=i+1;j<100;j++)
if(strcmp(sell[i].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je<sell[j].je)
{xy=sell[i]; sell [i]=sell[j]; sell[j]=xy;}
}
******************************************************************************
★题目 8(字符替换题)
函数 ReadDat() 实 现 从 文件 ENG.IN 中 读 取 一 篇 英文 文 章 , 存 入到 字 符 串 数 组 xx 中; 请 编 制 函 数
encryptChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,仍存入数组 xx 的对应的位置上,
最后调用函数 WriteDat()把结果 xx 输出到文件 PS1.DAT 中。
替代关系:f(p)=p*11 mod 256(p 是数组中某一个字符的 ASCII 值,f(p)是计算后新字符的 ASCII
值),如果计算后 f(p)值小于等于 32 或大于 130,则该字符不变,否则将 f(p)所对应的字符进行替代。
(注意中间变量用无符号整型),部分源程序存在文件 prog1.c 中。原始数据文件存放的格式是:每行的
宽度均小于 80 个字符。
void encryptChar()
{ int i,j;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130) continue;
else xx[i][j]=xx[i][j]*11%256;
}
******************************************************************************
★☆题目 9(字符串排序题)
函 数 ReadDat() 实 现 从 文 件 IN.DAT 中 读 取 一 篇 英 文 文 章 存 入 到 字 符 串 数 组 xx 中 , 请 编 制 函 数
SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重
新存入字符串数组 xx 中,最后调用函数 writeDat()把结果 xx 输出到文件 OUT2.DAT 中。
例:原文:dAe,BfC.
CCbbAA
结果:fedCBA.
bbCCAA
void SortCharD(void)
{int i,j,k,strl;
char ch;
for(i=0;i<maxline;i++)
{strl=strlen(xx[i]);
for(j=0;j<strl-1;j++)
for(k=j+1;k<strl;k++)
if(xx[i][j]<xx[i][k])(写的是字符,但运算起来是 ASCII 值。)
{ch=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=ch;}
}
}
*****************************************************************************
★☆题目 10(替换字符题)
函 数 ReadDat() 实 现 从 文 件 IN.DAT 中 读 取 一 篇 英 文 文 章 存 入 到 字 符 串 数 组 xx 中 , 请 编 制 函 数
ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,
如果是字母 z,则改写成字母 a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已
处理 的 字 符 串 仍按 行 重 新 存 入字 符 串 数 组 xx 中 , 最 后调 用 函 数 writeDat() 把 结 果 xx 输 出 到 文件
第 4 页 共 44 页

OUT1.DAT 中。
例:原文:Adb.Bcdza
abck.LLhj
结果:Aec.Bdeab
bcdl.LLik
void ConvertCharA(void)
{ int i,j;
for(i=0;i<maxline;i++)
{ for(j=0;j<strlen(xx[i]);j++)
if(xx[i][j]=='z') xx[i][j]='a';
else if(xx[i][j]>='a'&&xx[i][j]<='y') xx[i][j]+=1;(xx[i][j]+=1 就是 xx[i][j]=xx[i][j]+1)
}
}
*******************************************************************************
☆题目 11(字符串字母移位题)
程序 prog1.c 的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母 z 改写成字母 a。要求
大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。
请考生编写函数 chg(char *s)实现程序要求,最后调用函数 readwriteDAT( )把结果输出到文件 bc1.out 中。
例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。
void chg(char *s)
{int I;
for(I=0;I<strlen(s);I++)
if(s[i]=='z'||s[i]=='Z') s[i]-=25;
else if(s[i]>='a'&&s[i]<='y'||s[i] >='A'&&s[i]<='Y') s[i]+=1;
}
*****************************************************************************
★☆题目 12(结构体运算题题)
已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名
称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组成。其中:金额=单价*数量
计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构数组 sell 中。请编制函数 SortDat(),其功
能要求:
按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结
构数组 sell 中,
void SortDat()
{int i,j;
PRO xy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
**************************************************************************
题目 13(结构体运算题)
已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名
第 5 页 共 44 页
剩余43页未读,继续阅读
资源评论

- 柳风V2018-07-29有点难,还是刷软件实用

yy799497065
- 粉丝: 0
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 鼻咽纤维血管瘤-(2).ppt
- 小区11#12#13#楼工程基坑排水方案.doc
- 顶管工作坑分项工质量平定表.doc
- 济南铁森自控设备有限公司机械加工项目环境影响报告表.pdf
- 花园二期商住楼新建工程招标文件.doc
- 中国尊大厦跃层电梯施工技术.ppt
- 园林工程施工进度控制.ppt
- 广州某钢铁有限公司钢材表面深加工和五金制品项目环境影响报告书.doc
- 北京市劳动合同范本(2012年).doc
- 基础工程设计原理-绪论.ppt
- 你们超喜欢的初赛小题库.docx
- 土体动态三轴试验后数据处理技术.doc
- 消防设计专篇c.doc
- 办公楼项目工程承包管理(模板).ppt
- 模板工程成品保护记录表格.doc
- 办理规划业务所需资料服务指南总汇.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
