1、一、 素数题:
题目1.请编写一种函数jsValue(int m,int k,int xx[]),该函数功能是:将不不不小于整数m且紧靠mk个素数存入数组xx传回。
例如:若输入17 5 则应输出:19,23,29,31,37。
int isP(int m)
{ int i;
for(i=2;i
2、k--;}}
答案二
void num(int m,int k,int xx[])
{int i,j,n;
for (n=m+1,i=0;i
3、ountValue() { int i,j,bw,sw,gw; for(i=100;i<1000;i++) {bw=i/100; sw=i%100/10;gw=i%10; for(j=2;j
4、有满足此条件四位数依次存入数组b中,然后对数组b四位数按从小到大次序进行排序,最终调用写函数writeDat()把成果输出到out.dat文献。
例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件忽视。
#include 5、
for(i=0;i<300;i++)
if(isP(a[i])) b[cnt++]=a[i];
for(i=0;i 6、g=1;
for(i=2;tag&& i<=number / 2;i++)
if(number % i ==0) tag =0;
return tag;
}
void countValue()
{int i;
for(i=2;i<=90;i++)
if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10))
{cnt++;sum+=i;}
}
题目66、下列程序prog1.c功能是:计算500-800区间内素数个数cnt,并按所求素数值从大到小次序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个 7、素数+第5个素数...值sum。请编写函数countValue()实现程序规定
void countValue()
{int i,j,k=1;
for(i=800;i>500;i--)
{ for(j=2;j 8、2。
例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件计算平均值pjz2。
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。
#include 9、300;i++)
if(isP(a[i])) {pjz1+=a[i];cnt++;}
else pjz2+=a[i];
if(cnt==0) pjz1=0;
else pjz1/=cnt;
if(300-cnt==0) pjz2=0;
else pjz2/=(300-cnt);
}
二、 构造体
题目7已知在文献IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五某些构成。其中:金额=单价*数量计算得出。请编制函数SortDat(), 10、其功能规定:按产品代码从大到小进行排列,若产品代码相似,则按金额从大到小进行排列,最终排列成果仍存入构造数组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].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je 11、由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五某些构成。其中:金额=单价*数量计算得出。编制函数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].dm,sell[j].dm)>0||strcmp(sell[i].dm, 12、sell[j].dm)==0&&sell[i].je 13、ell[i].dm,sell[j].dm)==0&&sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
题目12编制函数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) 14、>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;}
}
题目32 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 15、].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;}
}
题目42 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 16、sell[j].mc)<0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je 17、ell[j].je||sell[i].je==sell[j].je&&strcmp(sell[i].dm,sell[j].dm)<0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
题目47函数SortDat(),其功能规定:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列成果仍存入构造数组sell中,最终调用函数WriteDat()把成果输出到文献OUT3.DAT中。
void SortDat()
{int i,j;
PRO xy;
for(i=0;i<99;i++)
for(j=i 18、1;j<100;j++)
if(sell[i].je 19、<100;j++)
if(sell[i].je>sell[j].je||sell[i].je==sell[j].je&&strcmp(sell[i].dm,sell[j].dm)<0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
题目99函数SortDat(),其功能规定:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列成果仍存入构造数组sell中void SortDat()
{int i,j;
PRO xy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j 20、)
if(sell[i].je>sell[j].je||sell[i].je==sell[j].je&&strcmp(sell[i].dm,sell[j].dm)>0)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
三、字符替代与移位
题目8请编制函数encryptChar(),按给定替代关系对数组xx中所有字符进行替代,仍存入数组xx对应位置上, 替代关系:f(p)=p*11 mod 256(p是数组中某一种字符ASCII值,f(p)是计算后新字符ASCII值),假如计算后f(p)值不不小于等于32或不 21、不不小于130,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 22、字符ASCII值),假如计算后f(p)值不不小于等于32或f(p)对应字符是数字0至9,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 23、Char(),替代关系:f(p)=p*11mod 256 (p是数组中某一种字符ASCII值,f(p)是计算后新字符ASCII值),假如计算后f(p)值不不小于等于32或f(p)对应字符是小写字母,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 24、
else xx[i][j]=xx[i][j]*11%256;
}
题目62(字符替代题)
编制函数encryptChar(),
替代关系:f(p)=p*13 mod 256(p是数组中某一种字符ASCII值,f(p)是计算后新字符ASCII值),假如计算后f(p)值不不小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 25、[i][j]*13%256<=32||(xx[i][j]*13%256)%2==0) continue;
else xx[i][j]=xx[i][j]*13%256;
}
题目95
替代关系:f(p)=p*11 mod 256(p是数组中某一种字符ASCII值,f(p)是计算后新字符ASCII值),假如计算后f(p)值不不小于等于32或f(p)对应字符是大写字母,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 26、xx[i]);j++)
if(xx[i][j]*11%256<=32||xx[i][j]*11%256>='A'&&xx[i][j]*11%256<='Z') continue;
else xx[i][j]=xx[i][j]*11%256;
}
题目98
替代关系:f(p)=p*17 mod 256(p是数组中某一种字符ASCII值,f(p)是计算后新字符ASCII值),假如计算后f(p)值不不小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i= 27、0;i 28、
void encryptChar()
{int i;
char *pf;
for (i=0;i 29、值是偶数或计算后f(p)值不不小于等于32,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 30、假如原字符是大写字母或计算后f(p)值不不小于等于32,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 31、 mod 256(p是数组中某一种字符ASCII值,f(p)是计算后新字符ASCII值),假如原字符是数字字符0至9或计算后f(p)值不不小于等于32,则该字符不变,否则将f(p)所对应字符进行替代。
void encryptChar()
{ int i,j;
for(i=0;i 32、目10编制函数ConvertCharA(),其函数功能是:以行为单位把字符串中所有小写字母改写成该字母下一种字母,假如是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其她字符不变。 例:原文:Adb.Bcdza
abck.LLhj
成果:Aec.Bdeab
bcdl.LLik
原始数据文献存储格式是:每行宽度均不不小于80个字符,含标点符号和空格。
void ConvertCharA(void)
{ int i,j;
for(i=0;i 33、 { for(j=0;j 34、Bbcyz
zabj.LLgi
void ConvertCharD(void)
{ int i,j;
for(i=0;i 35、母a。规定大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做变化。
请编写函数chg(char *s)实现程序规定 例如:s 字符串中原有内容为:Mn.123Zxy,则调用该函数后,成果为:No.123Ayz。
void chg(char *s)
{int i;
for(i=0;i 36、R(),其函数功能是:以行为单位把字符串中所有字符ASCII值右移4位,然后把右移后字符ASCII值再加上原字符ASCII值,得到新字符仍存入原字符串对应位置上。最终把已处理字符串仍按行重新存入字符串数组xx中
void StrCharJR()
{int i,j;
for(i=0;i 37、s)实现程序规定 例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,成果为:n.123xyZM。
void chg(char *s)
{ int i;
char ch=*s;
for(i=0;i 38、符ASCII值,得到最终一种新字符,最终第二个字符ASCII值右移4位,高位补0后加最终第三个字符ASCII值,得到最终第二个新字符,依此类推一直处理到第二个字符,第一种字符ASCII值加原最终一种字符ASCII值,得到第一种新字符,得到新字符分别存储在原字符串对应位置上。最终已处理字符串仍按行重新存入字符串数组xx中,最终调用函数writeDat()把成果xx输出到文献OUT10.DAT中。
void CharConvA()
{ int i,j;
char p,c;
for(i=0;i 39、
c=xx[i][0];
for(j=strlen(xx[i])-1;j>0;j--)
xx[i][j]=(xx[i][j]>>4)+xx[i][j-1];
xx[i][0]=p+c;
}
}
题目74(字符ASCII值移位替代题)
请编制函数StrCharJL(),其函数功能是:以行为单位把字符串中所有字符ASCII值左移4位,假如左移后,其字符ASCII值不不小于等于32或不不不小于100,则原字符保持不变,否则就把左移后字符ASCII值再加上原字符ASCII值,得到新字符仍存入原字符串对应位置上。最终把已处理字 40、符串仍按行重新存入字符串数组xx中, char xx[50][80];
int maxline=0;/*文章总行数*/
int ReadDat(void);
void WriteDat(void);
void StrCharJL(void)
{ int i,j;
char c;
for(i=0;i 41、题)
编制函数CHA(),其函数功能是:以行为单位把字符串中第一种字符ASCII值加第二个字符ASCII值,得到第一种亲朋字符,第二个字符ASCII值加第三个字符ASCII值,得到第二个新字符,依此类推一直处理到最终第二个字符,最终一种字符ASCII值加原第一种字符ASCII值,得到最终一种新字符,得到新字符分别存储在原字符串对应位置上。最终把已处理字符串逆转后按行重新存入字符串数组XX中,
void ChA(void)
{ int i,j;
char ch;
for(i=0;i 42、strlen(xx[i])-1;j++)
xx[i][j]+=xx[i][j+1];
xx[i][strlen(xx[i])-1]+=ch;
strrev(xx[i]);
}
}
四、字符串单词位置倒置
题目3请编制函数StrOR( ),其函数功能是:以行为单位依次把字符串中所有小写字母o左边字符串内容移到该串右边存储,然后把小写字母o删除,余下字符串内容移到已处理字符串左边存储,之后把已处理字符串仍按行重新存入字符串数组xx中。
void StrOR(void)
{int i,righto,j,s,k;
char tem 43、[80];
for(i=0;i 44、 strcpy(xx[i],tem);
}
else continue;
}
}
题目4函数StrOL(),其函数功能是:以行为单位对行中以空格或标点符号为分隔所有单词进行倒排。最终把已处理字符串(应不含标点符号)仍按行重新存入字符串数组xx中,
例如:原文:You He Me
I am a student.
成果:Me He You
student a am I
void StrOL(void)
{ int i,j,k,s,m 45、strl;
char str[80];
for(i=0;i 46、 }
for(m=1;m<=k;m++) str[s++]=xx[i][j+m];
str[s]='\0';
strcpy(xx[i],str); }
}
五、字符串排序
题目9(字符串排序题)编制函数SortCharD(),其函数功能是:以行为单位对字符按从大到小次序进行排序,排序后成果仍按行重新存入字符串数组xx中, 例:原文:dAe,BfC.
CCbbAA
成果:fedCBA.
bbCCAA
void SortCharD(void)
{in 47、t i,j,k,strl;
char ch;
for(i=0;i 48、 例:原文:dAe,BfC.
CCbbAA
成果:,.ABCdef
void SortCharA(void)
{int i,j,k,strl;
char ch;
for(i=0;i 49、 }
}
题目43(字符排序题)
请编制函数jsSort(),其函数功能是:以行为单位对字符串变量下标为奇数字符按其ASCII值从小到大次序进行排序,排序后成果仍按行重新存入字符串数组xx中,
例:位置 0 1 2 3 4 5 6 7 源字符串 a b c d e f g h
则处理后字符串 a h c f e d g b
void jsSort()
{int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{ strl=strlen(xx[i]);
for(j=1;j 50、)
for(k=j+2;k






