logo资料库

全国计算机等级考试三级上机题库(南开100题).doc

第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
资料共45页,剩余部分请下载后查看
题目 1:下列程序的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数组 xx。请编写函数 num(int m,int k,int xx[])实现函数的要求 ,最后调用函数 readwriteDAT()把结果输出到文件 out.dat 中。 例如:若输入 17,5,则应输出:19,23,29,31,37。 void num(int m,int k,int xx[]){int data=m+1; int half,n=0,I; while(1) {half=data/2;for(I=2;I<=half;I++) if(data%I==0)break; if(I>half) {xx[n]=data;n++;} if(n>=k)break; data++; } } 题目 2:已知数据文件 IN.DAT 中存有 200 个四位数, 并已调用读函数 readDat()把这些数存入数组 a 中, 请考生编制一函数 jsVal(),其功能是: 如果四位数各位上的数字均是 0 或 2 或 4 或 6 或 8, 则统计出满足 此条件的个数 cnt, 并把这些四位数按从大到小的顺序存入数组 b 中。最后 main()函数调用写函数 writeDat( )把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。 void jsVal() {int bb[4]; int I,j,k,flag; for (I=0;I<200;I++) {bb[0]=a[I]/1000; bb[1]=a[I]%1000/100; bb[3]=a[I]%10; bb[2]=a[I]%100/10; for (j=0;j<4;j++) {if (bb[j]%2==0) flag=1; else {flag=0;break;} } if (flag==1) { b[cnt]=a[I]; cnt++;} } for(I=0;I
{for(k=j;k=index;j--) {ch=xx[I][strl-1]; for(k=strl-1;k>0;k--) xx[I][k]=xx[I][k-1]; xx[I][0]=ch;} } } 题目 4:函数 ReadDat( )实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中; 请编制函数 StrOL( ), 其函数的功能是: 以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,同时去 除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组 xx 中。最后 main()函 数调用函数 WriteDat()把结果 xx 输出到文件 OUT6.DAT 中。 void StrOL(void) {int I,j,k,strl,l;char c; for(I=0;I='A'&&c<='Z')||(c>='a'&&c<='z')||c==' ') ; else xx[I][j]=' '; } for(l=0;l='a'&&xx[l][I]<='z')||(xx[l][I]>='A'&&xx[l][I]<='z'))&&I>=0) {for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=xx[l][I]; k++;I--; } strcat(ch,pp);strcpy(pp, """");k=1; if(I==-1)break; while((xx[l][I]<'A'||xx[l][I]>'z')&&I>=0) {for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=xx[l][I]; k++; I--;} strcat(ch,pp); strcpy(pp,""""); k=0; if(I==-1)break;} strcpy(xx[l],ch); }} 题目 5:在文件 in.dat 中有 200 个正整数,且每个数均在 1000 至 9999 之间。函数 ReadDat()读取这 200 个数存放到数组 aa 中。请编制函数 jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序 排列,然后取出满足此条件的前 10 个数依次存入数组 b 中,如果后三位的数值相等,则按原先的数值进 行降序排列。最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。 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) {data=aa[I];aa[I]=aa[j];aa[j]=data;} else if(aa[I]%1000==aa[j]%1000) if(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()把结果输出到文件 OUT10.DAT 中。 void SortDat() {int I,j; PRO xy; for(I=0;I<99;I++) for(j=I+1;j<100;j++) if(strcmp(sell[I].dm,sell[j].dm)<0) {xy=sell[I];sell[I]=sell[j];sell[j]=xy;} else if(strcmp(sell[I].dm,sell[j].dm)==0) if(sell[I].je
替代关系:f(p)=p*11 mod 256 (p 是数组中某一个字符的 ASCII 值,f(p)是计算后新字符的 ASCII 值), 如果计算后 f(p)值小于等于 32 或大于 130,则该字符不变,否则将 f(p)所对应的字符进行替代。 ------------------------------ void encryptChar() {int I; char *pf; for(I=0;I130||*pf*11%256<=32); else *pf=*pf*11%256; pf++; } } } 题目 9:函数 ReadDat( )实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中; 请编制函数 SortCharD( ), 其函数的功能是: 以行为单位对字符按从大到小的顺序进行排序, 排序后的结果仍按行重 新存入字符串数组 xx 中。最后 main()函数调用函数 WriteDat()把结果 xx 输出到文件 OUT2.DAT 中。 void SortCharD(void) {int I,j,k,strl; char ch; for(I=0;I='a'&&xx[I][j]<='y') xx[I][j]+=1; } } 题目 11:下列程序的功能是:把 s 字符串中的所有字母改写成该字母的下一个字符,字母 z 改写成字母 a。 要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数 chg(char *s)实现 程序的要求,最后调用函数 readwriteDat()把结果输出到文件 out.dat 中。
void chg(char*s) {while(*s) if(*s=='z'||*s=='Z') {*s-=25;s++;} else if(*s>='a'&&*s<='y') {*s+=1;s++;} else if(*s>='A'&&*s<='Y') {*s+=1;s++;} else s++; } 题目 12:已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位), 产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)四部分组成。其中:金额= 单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构数组 sell 中。请编制函数 SortDat(),其功能要求:按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小到大进行排列. 最终排列结果仍存入结构数组 sell 中,最后调用函数 WriteDat()把结果输出到文件 OUT5.DAT 中。 void SortDat() {int I,j; PRO xy; for(I=0;I<99;I++) for(j=I+1;j<100;j++) if(strcmp(sell[I].dm,sell[j].dm)<0) {xy=sell[I];sell[I]=sell[j];sell[j]=xy;} else if(strcmp(sell[I].dm,sell[j].dm)==0) if(sell[I].je0) {xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;} else if(strcmp(sell[I].mc,sell[j].mc)==0) if(sell[I].je
的 5 个数且该数是奇数, 则统计出满足此条件的个数 cnt, 并把这些四位数按从小到大的顺序存入数组 b 中。 并要计算满足上述条件的四位数的个数 cnt。最后 main()函数调用写函数 writeDat( )把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。 void jsVal() {int I,j,flag=0; int k; for(I=0;Ia[j]) flag=1; else {flag=0;break;} if (a[I]%2==0) flag=0;} if (flag==1) {b[cnt]=a[I]; cnt++;} } for(I=0;Ib[j]) {k=b[I];b[I]=b[j];b[j]=k;} } 题目 15:已知数据文件 IN.DAT 中存有 200 个四位数, 并已调用读函数 readDat()把这些数存入数组 a 中, 请考生编制一函数 jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数 字上的值小于等于十位数字上的值,十位数字上的值小于等于个位数字上的值,并且此四位数是偶数,则 统计出满足此条件的个数 cnt, 并把这些四位数按从大到小的顺序存入数组 b 中。最后 main()函数调用写 函数 writeDat( )把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。 void jsVal() {int I,j; int a1,a2,a3,a4,k; for (I=0;Ib[j]) {k=b[I];b[I]=b[j];b[j]=k;} } 题目 16:函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中,请编制函数 StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的 ASCII 值右移 4 位,然后把右移后的 字符 ASCII 值再加上原字符的 ASCII 值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字 符串仍按行重新存入字符串数组 xx 中,最后调用函数 writeDat()把结果 xx 输出到文件 OUT8.DAT 中。原 始数据文件存放的格式是:每行的宽度均小于 80 个字符,含标点符号和空格。
void StrCharJR(void) / {int I,j,strl; for(I=0;I>4; } } 注:这个编程题比二级考得还简单。 void StrCharJR(void) {int i,j; for(i=0;i>4; } 题目 17:函数 READDAT()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 XX 中;请编制函数 CHA(),其函数功能是:以行为单位把字符串中的第一个字符的 ASCII 值加第二个字符的 ASCII 值,得到第 一个亲朋字符,第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到第二个新字符,依此类推一直处理 到最后第二个字符,最后一个字符的 ASCII 值加原第一个字符的 ASCII 值,得到最后一个新的字符,得到 的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组 XX 中,最后调用函数 WRITEDAT()把结果 XX 输出到文件 OUT9.DAT 中.原始数据文件存放的格式是:每行的宽度 均小于 80 个字符,含标点符号和空格. void ChA(void) {int I,j,k,str; char ch; for(I=0;I
for(I=0;I
分享到:
收藏