当前位置:首页 > 2012年下半年全国计算机等级考试三级网络技术上机南开100题
数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal()
{int i,j,thou,hun,ten,data,ab,cd; for(i=0;i<200;i++)
{thou=a[i]/1000; hun=a[i]00/100; ten=a[i]0/10; data=a[i];
ab=10*thou+ten; cd=10*data+hun;
if((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab>=10&&cd>=10)
b[cnt++]=a[i]; }
for(i=0;i if(b[i] ☆题目29(整数各位打散组合运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。 void jsVal() { int i,j,qw,bw,sw,gw,ab,cd; for(i=0;i { qw=a[i]/1000; bw=a[i]/100; sw=a[i]0/10; gw=a[i]; ab=qw*10+sw; cd=gw*10+bw; if(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&qw!=0&&gw!=0) b[cnt++]=a[i]; } for(i=0;i if(b[i] ☆题目30(整数统计排序题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal() {int i,j,flag; for(i=0;i if(a[i] for(i=0;i if(b[i]>b[j]) {flag=b[i];b[i]=b[j];b[j]=flag;} } ★☆题目31(结构体运算题) 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列, 最终排列结果仍存入结构数组sell中,最后调用函数WriteDat() 把结果输出到文件OUT4.DAT中。 void SortDat() {int i,j; PRO xy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) if(sell[i].je {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } ☆题目32(结构体运算题) 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中 ,最后调用函数WriteDat()把结果输出到文件OUT7.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].mc,sell[j].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;} } ★☆题目33(方差运算题) 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: N 2 totfc=1/N∑(xx[i]-ave2) i=1 设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000) /*********编制函数ReadDat()的部分************/ for(i=0;i { fscanf(fp,\ if((i+1)==0) fscanf(fp,\ } void Compute(void) { int i,yy[MAX]; for(i=0;i for(i=0;i if(xx[i]%2==0) { yy[even++]=xx[i]; ave2+=xx[i];} else { odd++; ave1+=xx[i];} if(odd==0) ave1=0; else ave1/=odd; if(even==0) ave2=0; else ave2/=even; for(i=0;i totfc+=(yy[i]-ave2)*(yy[i]-ave2)/even; } 题目34(素数题) 无忧id 102 题提供了求素数isPrime()函数 程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数cnt以及这些素数值的和sum。 请考生编写函数countValue( )实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件bc10.out中。 int isPrime(int m) { int i; for(i=2;i if(m % i==0)return 0; return 1; } void countValue() { int i,j,bw,sw,gw; for(i=100;i<1000;i++) { bw=i/100; sw=i0/10; gw=i; if(isPrime(i)&&(gw+sw)==bw){cnt++; sum+=i;} } } ★☆题目35(级数运算题) 某级数的前两项A1=1,A2=1,以后各项具有如下关系: An=An-2+2An-1(注:n-2与n-1为下标) 下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn 请勿改动主函数main()和写函数writeDat()的内容。 #include {int a1=1,a2=1,a12,sn,k=2; sn=a1+a2; while(1) {a12=a1+2*a2; if(sn<100&&sn+a12>=100) b[0]=k; if(sn<1000&&sn+a12>=1000) b[1]=k; if(sn<10000&&sn+a12>=10000) {b[2]=k;break;} sn=sn+a12; a1=a2;a2=a12; k++; } } 运行结果为: M=100,n=6 M=1000,n=9 M=10000,n=11 ★题目36(字符替换题) 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件pS6.DAT中。 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII 值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。 void encryptChar() { int i,j; for(i=0;i for(j=0;j if(xx[i][j]*11%6<=32||xx[i][j]*11%6>='0'&&xx[i][j]*11%6<='9') continue; else xx[i][j]=xx[i][j]*11%6; } 题目37(字符替换题) 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS7.DAT中。 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。 void encryptChar() { int i,j; for(i=0;i for(j=0;j if(xx[i][j]*11%6<=32||xx[i][j]>='A'&&xx[i][j]<='Z') continue; else xx[i][j]=xx[i][j]*11%6; } 题目38(结构体运算题) 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录 由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.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||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je>sell[j].je) {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } ★☆题目39(选票问题) 现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中 void CountRs(void) { int i,j,count; for(i=0;i<100;i++) { count=0; for(j=0;j<10;j++) if(xx[i][j]=='1') count++; if(count==0||count==10) continue;
共分享92篇相关文档