知博网 zhiblog.com 计算机等级考试专题
第 1 页 共 43 页
☆题目 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()的内容。
intintintint isP(intisP(intisP(intisP(int m)m)m)m)
{{{{
intintintint i;i;i;i;
for(i=2;i
0;m++)for(m=m+1;k>0;m++)for(m=m+1;k>0;m++)for(m=m+1;k>0;m++)
if(isP(m))if(isP(m))if(isP(m))if(isP(m)) {{{{ xx[s++]=m;xx[s++]=m;xx[s++]=m;xx[s++]=m;k--;}k--;}k--;}k--;}
}}}}
题目 2
已知数据文件 IN.DAT中存有 200个四位数,并已调用读函数 readDat()把这些数存入数组 a中,请考生编制一函
数 jsVal()jsVal()jsVal()jsVal(),其功能是:如果四位数各位上的数字均是 0或 2或 4或 6或 8,则统计出满足此条件的个数 cnt,并
把这些四位数按从大到小的顺序存入数组 b中。最后 main( )函数调用写函数 writeDat()把结果 cnt以及数组 b中
符合条件的四位数输出到OUT.DAT文件中。
voidvoidvoidvoid jsVal()jsVal()jsVal()jsVal()
{{{{ intintintint i,j,qw,bw,sw,gw;i,j,qw,bw,sw,gw;i,j,qw,bw,sw,gw;i,j,qw,bw,sw,gw;
for(i=0;i=0;j--)for(j=strlen(xx[i])-1;j>=0;j--)for(j=strlen(xx[i])-1;j>=0;j--)for(j=strlen(xx[i])-1;j>=0;j--)
{{{{ k=0;k=0;k=0;k=0;
memset(tem,0,80);memset(tem,0,80);memset(tem,0,80);memset(tem,0,80);
if(xx[i][j]=='o')if(xx[i][j]=='o')if(xx[i][j]=='o')if(xx[i][j]=='o')
{righto=j;{righto=j;{righto=j;{righto=j;
for(s=righto+1;s=0;j--)for(j=strl-1;j>=0;j--)for(j=strl-1;j>=0;j--)for(j=strl-1;j>=0;j--)
{{{{ if(isalpha(xx[i][j]))if(isalpha(xx[i][j]))if(isalpha(xx[i][j]))if(isalpha(xx[i][j])) k++;k++;k++;k++;
elseelseelseelse {{{{ for(m=1;m<=k;m++)for(m=1;m<=k;m++)for(m=1;m<=k;m++)for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];str[s++]=xx[i][j+m];str[s++]=xx[i][j+m];str[s++]=xx[i][j+m];
k=0;k=0;k=0;k=0;
}}}}
if(!isalpha(xx[i][j]))if(!isalpha(xx[i][j]))if(!isalpha(xx[i][j]))if(!isalpha(xx[i][j]))
str[s++]='str[s++]='str[s++]='str[s++]=' ';';';';
}}}}
for(m=1;m<=k;m++)for(m=1;m<=k;m++)for(m=1;m<=k;m++)for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];str[s++]=xx[i][j+m];str[s++]=xx[i][j+m];str[s++]=xx[i][j+m];
str[s]='\0';str[s]='\0';str[s]='\0';str[s]='\0';
strcpy(xx[i],str);strcpy(xx[i],str);strcpy(xx[i],str);strcpy(xx[i],str); }}}}
}}}}
☆题目 5(整数排序题)
在文件 in.dat中有 200个正整数,且每个数均在 1000至 9999之间。函数 ReadDat()读取这 200个数存放到数组
aa中。请编制函数 jsSort()jsSort()jsSort()jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条
件的前 10个数依次存入数组 bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数
WriteDat()把结果 bb输出到文件 out.dat中。
例:处理前 6012 5099 9012 7025 8088
知博网 zhiblog.com 计算机等级考试专题
第 3 页 共 43 页
处理后 9012 6012 7025 8088 5099
voidvoidvoidvoid jsSort()jsSort()jsSort()jsSort()
{{{{
intintintint i,j,data;i,j,data;i,j,data;i,j,data;
for(i=0;i<199;i++)for(i=0;i<199;i++)for(i=0;i<199;i++)for(i=0;i<199;i++)
for(j=i+1;j<200;j++)for(j=i+1;j<200;j++)for(j=i+1;j<200;j++)for(j=i+1;j<200;j++) if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]aa[j])if(aa[i]%1000aa[j])if(aa[i]%1000aa[j])if(aa[i]%1000aa[j])
{data=aa[i];aa[i]=aa[j];aa[j]=data;}{data=aa[i];aa[i]=aa[j];aa[j]=data;}{data=aa[i];aa[i]=aa[j];aa[j]=data;}{data=aa[i];aa[i]=aa[j];aa[j]=data;}
for(i=0;i<10;i++)for(i=0;i<10;i++)for(i=0;i<10;i++)for(i=0;i<10;i++)
bb[i]=aa[i];bb[i]=aa[i];bb[i]=aa[i];bb[i]=aa[i];
}}}}
***************************************************************************
☆题目 7(结构体操作题)
已知在文件 IN.DAT中存有 100个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4位),产品名称mc(字
符型 10位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数
ReadDat()是读取这 100个销售记录并存入结构数组 sell中。请编制函数 SortDat()SortDat()SortDat()SortDat(),其功能要求:按产品代码从
大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组 sell中,最后调
用函数WriteDat()把结果输出到文件 OUT6.DAT中。
voidvoidvoidvoid SortDat()SortDat()SortDat()SortDat()
{int{int{int{int iiii,j;,j;,j;,j;
PROPROPROPRO xy;xy;xy;xy;
for(for(for(for(iiii=0;=0;=0;=0;iiii<99;<99;<99;<99;iiii++)++)++)++)
for(j=for(j=for(j=for(j=iiii+1;j<100;j++)+1;j<100;j++)+1;j<100;j++)+1;j<100;j++)
if(strcmp(sell[if(strcmp(sell[if(strcmp(sell[if(strcmp(sell[iiii].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[iiii].je130)if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130)if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130)if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130) continue;continue;continue;continue;
elseelseelseelse xx[i][j]=xx[i][j]*11%256;xx[i][j]=xx[i][j]*11%256;xx[i][j]=xx[i][j]*11%256;xx[i][j]=xx[i][j]*11%256;
}}}}
******************************************************************************
★☆题目 9(字符串排序题)
函数 ReadDat()实现从文件 IN.DAT中读取一篇英文文章存入到字符串数组 xx中,请编制函数 SortCharD()SortCharD()SortCharD()SortCharD(),其
函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组 xx中,
最后调用函数writeDat()把结果 xx输出到文件OUT2.DAT中。
例:原文:dAe,BfC.
CCbbAA
结果:fedCBA.
bbCCAA
voidvoidvoidvoid SortCharD(void)SortCharD(void)SortCharD(void)SortCharD(void)
{int{int{int{int iiii,j,k,strl;,j,k,strl;,j,k,strl;,j,k,strl;
charcharcharchar ch;ch;ch;ch;
for(for(for(for(iiii=0;=0;=0;=0;iiii='a'&&xx[i][j]<='y')if(xx[i][j]>='a'&&xx[i][j]<='y')if(xx[i][j]>='a'&&xx[i][j]<='y')if(xx[i][j]>='a'&&xx[i][j]<='y') xx[i][j]+=1;xx[i][j]+=1;xx[i][j]+=1;xx[i][j]+=1;
}}}}
}}}}
*******************************************************************************
☆题目 11(字符串字母移位题)
程序 prog1.c的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母 z改写成字母 a。要求大写
字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。
请考生编写函数 chg(charchg(charchg(charchg(char *s)*s)*s)*s)实现程序要求,最后调用函数 readwriteDAT( )把结果输出到文件 bc1.out中。
例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。
voidvoidvoidvoid chg(charchg(charchg(charchg(char *s)*s)*s)*s)
{{{{intintintint IIII;;;;
for(for(for(for(IIII=0;=0;=0;=0;IIII='a'&&s>='a'&&s>='a'&&s>='a'&&s[i][i][i][i]<='y'<='y'<='y'<='y'||s[i]||s[i]||s[i]||s[i] >='A'&&s>='A'&&s>='A'&&s>='A'&&s[i][i][i][i]<='Y')<='Y')<='Y')<='Y') ssss[i][i][i][i]+=1;+=1;+=1;+=1;
}}}}
*****************************************************************************
★☆题目 12(结构体运算题题)
已知在文件 IN.DAT中存有 100个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4位),产品名称mc(字
符型 10位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数
ReadDat()是读取这 100个销售记录并存入结构数组 sell中。请编制函数 SortDat()SortDat()SortDat()SortDat(),其功能要求:
按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组
sell中,
voidvoidvoidvoid SortDat()SortDat()SortDat()SortDat()
{int{int{int{int iiii,j;,j;,j;,j;
PROPROPROPRO xy;xy;xy;xy;
for(for(for(for(iiii=0;=0;=0;=0;iiii<99;<99;<99;<99;iiii++)++)++)++)
for(j=for(j=for(j=for(j=iiii+1;j<100;j++)+1;j<100;j++)+1;j<100;j++)+1;j<100;j++)
if(strcmp(sell[if(strcmp(sell[if(strcmp(sell[if(strcmp(sell[iiii].mc,sell[j].mc)>0||strcmp(sell[].mc,sell[j].mc)>0||strcmp(sell[].mc,sell[j].mc)>0||strcmp(sell[].mc,sell[j].mc)>0||strcmp(sell[iiii].mc,sell[j].mc)==0&&sell[].mc,sell[j].mc)==0&&sell[].mc,sell[j].mc)==0&&sell[].mc,sell[j].mc)==0&&sell[iiii].je>sell[j].je)].je>sell[j].je)].je>sell[j].je)].je>sell[j].je)
{xy=sell[{xy=sell[{xy=sell[{xy=sell[iiii];sell[];sell[];sell[];sell[iiii]=sell[j];sell[j]=xy;}]=sell[j];sell[j]=xy;}]=sell[j];sell[j]=xy;}]=sell[j];sell[j]=xy;}
}}}}
**************************************************************************
题目 13(结构体运算题)
已知在文件 IN.DAT中存有 100个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4位),产品名称mc(字
符型 10位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数
ReadDat()是读取这 100个销售记录并存入结构数组 sell中。请编制函数 SortDat()SortDat()SortDat()SortDat(),其功能
要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构
数组 sell中,最后调用函数 WriteDat()把结果输出到文件 OUT9.DAT中。
voidvoidvoidvoid SortDat()SortDat()SortDat()SortDat()
{int{int{int{int iiii,j;,j;,j;,j;
PROPROPROPRO xy;xy;xy;xy;
for(for(for(for(iiii=0;=0;=0;=0;iiii<99;<99;<99;<99;iiii++)++)++)++)
for(j=for(j=for(j=for(j=iiii+1;j<100;j++)+1;j<100;j++)+1;j<100;j++)+1;j<100;j++)
知博网 zhiblog.com 计算机等级考试专题
第 6 页 共 43 页
if(strcmp(sell[if(strcmp(sell[if(strcmp(sell[if(strcmp(sell[iiii].dm,sell[j].dm)>0||strcmp(sell[].dm,sell[j].dm)>0||strcmp(sell[].dm,sell[j].dm)>0||strcmp(sell[].dm,sell[j].dm)>0||strcmp(sell[iiii].dm,sell[j].dm)==0&&sell[].dm,sell[j].dm)==0&&sell[].dm,sell[j].dm)==0&&sell[].dm,sell[j].dm)==0&&sell[iiii].jea[j]&&a[]>a[j]&&a[]>a[j]&&a[]>a[j]&&a[iiii]%2)]%2)]%2)]%2) flag=1;flag=1;flag=1;flag=1;
elseelseelseelse {flag=0;break;}{flag=0;break;}{flag=0;break;}{flag=0;break;}
if(flag==1)if(flag==1)if(flag==1)if(flag==1) b[cntb[cntb[cntb[cnt++++++++]=a[]=a[]=a[]=a[iiii];];];];
}}}}
for(for(for(for(iiii=0;=0;=0;=0;iiiib[j])]>b[j])]>b[j])]>b[j]) {flag=b[{flag=b[{flag=b[{flag=b[iiii];b[];b[];b[];b[iiii]=b[j];b[j]=flag;}]=b[j];b[j]=flag;}]=b[j];b[j]=flag;}]=b[j];b[j]=flag;}
}}}}
*********************************************************************
★题目 15(整数各位数字运算排序题)
已知数据文件 IN.DAT中存有 200个四位数,并已调用读函数 readDat()把这些数存入数组 a中,请考生编制一函
数 jsVal()jsVal()jsVal()jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位
数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数
cnt并把这些四位数按从小到大的顺序存入数组 b中,最后调用写函数 writeDat()把结果 cnt以及数组 b中符合条
件的四位数输出到OUT.DAT文件中。
voidvoidvoidvoid jsVal()jsVal()jsVal()jsVal()
{int{int{int{int iiii,j;,j;,j;,j;
intintintint qw,bw,sw,gw;qw,bw,sw,gw;qw,bw,sw,gw;qw,bw,sw,gw;
forforforfor ((((iiii=0;=0;=0;=0;iiiib[j])]>b[j])]>b[j])]>b[j]) {qw=b[{qw=b[{qw=b[{qw=b[iiii];b[];b[];b[];b[iiii]=b[j];b[j]=qw;}]=b[j];b[j]=qw;}]=b[j];b[j]=qw;}]=b[j];b[j]=qw;}
}}}}
***************************************************************************
★☆题目 16(字符替换题)
函数 ReadDat()实现从文件 IN.DAT中读取一篇英文文章存入到字符串数组 xx中,请编制函数 StrCharJR()StrCharJR()StrCharJR()StrCharJR(),其
函数的功能是:以行为单位把字符串中所有字符的 ASCII值右移 4位,然后把右移后的字符 ASCII 值再加上原
字符的 ASCII 值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串
数组 xx中,最后调用函数writeDat()把结果 xx输出到文件OUT8.DAT中。
知博网 zhiblog.com 计算机等级考试专题
第 7 页 共 43 页
voidvoidvoidvoid StrCharJR()StrCharJR()StrCharJR()StrCharJR()
{int{int{int{int i,j;i,j;i,j;i,j;
for(i=0;i>4);xx[i][j]+=(xx[i][j]>>4);xx[i][j]+=(xx[i][j]>>4);xx[i][j]+=(xx[i][j]>>4);(右移四位的表达方式)
}}}}
**********************************************************************
☆题目 17 (亲朋字符替换题)
函数 READDAT()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组XX中;请编制函数 CHA()CHA()CHA()CHA(),其函
数功能是:以行为单位把字符串中的第一个字符的 ASCII值加第二个字符的 ASCII值,得到第一个亲朋字符,第
二个字符的 ASCII值加第三个字符的 ASCII 值,得到第二个新字符,依此类推一直处理到最后第二个字符,最
后一个字符的 ASCII值加原第一个字符的 ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符
串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组 XX中,最后调用函数WRITEDAT()把
结果XX输出到文件 OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格.
voidvoidvoidvoid ChA(void)ChA(void)ChA(void)ChA(void)
{{{{ intintintint i,j;i,j;i,j;i,j;
charcharcharchar ch;ch;ch;ch;
for(i=0;i
本文档为【2010年九月三级网络技术,数据库技术上机南开100题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。