1、全国计算机考试三级上机C语言题库南开一百道一、 素数题:1*.请编写一个函数jsValue(int m,int k,int xx),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。 例如:若输入17 5 则应输出:19,23,29,31,37。 int isP(int m) int i; for(i=2;i0;m+) if(isP(m) xxs+=m; k-;2.程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数cnt以及这些素数值的和sum。 请考生编写函数countVa
2、lue( )实现程序要求void countValue() int i,j,bw,sw,gw; for(i=100;i1000;i+) bw=i/100; sw=i%100/10; gw=i%10; for(j=2;ji;j+) if(i%j=0) break; if(i=j) &(gw+sw)%10=bw) cnt+; sum+=i; 3.*已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大
3、的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件忽略。#include int a300,b300,cnt=0;int isP(int m) int i; for(i=2;im;i+) if(m%i=0)return 0; return 1;jsValue()int i,j,value; for(i=0;i300;i+) if(isP(ai) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) value=bi;
4、bi=bj; bj=value;4下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。请编写函数countValue()实现程序要求的功能 int isPrime(int number)int i,tag=1; for(i=2;tag& i=number / 2; i+) if(number % i =0) tag =0; return tag;void countValue()int i; for(i=2;i500;i-) for(j=2;ji;j+) if(i%j=0) break; if(j=
5、i)cnt+; sum=sum+k*i; k=k*(-1); 6.*已知数据文件in.dat中存有300个四位数,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2。 例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件计算平均值pjz2。 程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2。#include int a300,cnt=0;double pjz1=0.0,pjz2=0.0;int isP
6、(int m)int i; for(i=2;im;i+) if(m%i=0)return 0; return 1;jsValue()int i; for(i=0;i300;i+) if(isP(ai) pjz1+=ai;cnt+; else pjz2+=ai; 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(整型),金额
7、je(长整型)五部分组成。其中:金额=单价*数量计算得出。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+)if(strcmp(selli.dm,sellj.dm)0|strcmp(selli.dm,sellj.dm)=0&selli.jesellj.je) xy=selli;sell i=sellj; sellj=xy;每个产品销售记录由产品代码dm(字符型4位),产
8、品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中: void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j0|strcmp(selli.dm,sellj.dm)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;题目38编制函数SortDat(),其功能要求:按产
9、品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j0|strcmp(selli.dm,sellj.dm)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;题目12编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i
10、=0;i99;i+) for(j=i+1;j0|strcmp(selli.mc,sellj.mc)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;题目32 SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+) if(strcmp(selli.mc,sellj.mc)sellj.je) xy=selli;selli=sellj;s
11、ellj=xy;题目42 SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+) if(strcmp(selli.mc,sellj.mc)0|strcmp(selli.mc,sellj.mc)=0&selli.jesellj.je) xy=selli;selli=sellj;sellj=xy;题目31函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码
12、从大到小进行排列, 最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+) if(selli.jesellj.je|selli.je=sellj.je&strcmp(selli.dm,sellj.dm)0) xy=selli;selli=sellj;sellj=xy;题目47函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。 v
13、oid SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;j100;j+) if(selli.je0) xy=selli;selli=sellj;sellj=xy;题目61函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;jsellj.je|selli.je=sellj.je&strcmp(selli.dm,sellj.dm)0) xy=se
14、lli; selli=sellj; sellj=xy;题目99函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中void SortDat()int i,j; PRO xy; for(i=0;i99;i+) for(j=i+1;jsellj.je|selli.je=sellj.je&strcmp(selli.dm,sellj.dm)0) xy=selli;selli=sellj;sellj=xy;三、字符替换与移位1.请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入
15、数组xx的对应的位置上,替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256130) continue; else xxij=xxij*11%256;2.函数encryptChar(),替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的AS
16、CII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=0&xxij*11%256=9) continue; else xxij=xxij*11%256;3.encryptChar(),替代关系:f(p)=p*11mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果
17、计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=a&xxij*11%256=z) continue; else xxij=xxij*11%256;题目62(字符替换题)编制函数encryptChar(), 替代关系:f(p)=p*13 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32
18、或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*13%256=32|(xxij*13%256)%2=0) continue; else xxij=xxij*13%256;题目95替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是大写字母,则该字符不变,否则将f(p)所对应的字符进行替
19、代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=A&xxij*11%256=Z) continue; else xxij=xxij*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=0;imaxli
20、ne;i+) for(j=0;jstrlen(xxi);j+) if(xxij*17%256=32|(xxij*17%256)%2!=0) continue; else xxij=xxij*17%256;题目96(字符替换题)请编制函数encryptChar()替代关系: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;imaxline;i+) fo
21、r(j=0;jstrlen(xxi);j+) if(xxij*11%256=a&xxij*11%256=z) continue; else xxij=xxij*11%256;题目18编制函数encryptChar(), 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。 void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+
22、) if(xxij*11%256=32|xxij%2=0) continue; else xxij=xxij*11%256;题目37替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=A&xxij=Z) continue; else xxij=xxi
23、j*11%256;题目97编制函数encryptChar(), 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=0&xxij=9) continue; else xxij=xxij*11%256;4.编制函数ConvertCharA(),其
24、函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。 例:原文:Adb.Bcdza abck.LLhj 结果:Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。void ConvertCharA() int i,j; for(i=0;imaxline;i+) for(j=0;j=a&xxij=y) xxij+=1; 题目73编制函数ConverCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上
25、一个字母,如果是字母a,则改写成字母z。大写字母仍为大写字母,小写字母仍为小写字母,其它字符不变。 例:原文:Adb.Bcdza abck.LLhj 结果:Aca.Bbcyz zabj.LLgi void ConvertCharD(void) int i,j; for(i=0;imaxline;i+) for(j=0;j=b&xxij=z) xxij-=1; 题目11(字符串字母移位题)程序prog1.c的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。 请编写函数chg(char *s)实现程序要求 例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。 void chg(char *s)int I;for(I=0;I=a&si=A&si=Y) si+=1; 题目16编制函数StrCharJR(),其
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1