题目 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].je
0)
{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;Ifor(I=0;I