2012年9月计算机等级考试三级网络技术上机题库南开100题【最权威版本】新思路_9月考试必中无遗漏
- 格式:doc
- 大小:244.50 KB
- 文档页数:47
2012年9月计算机三级网络技术机试100套上机题(最新) 第1套(含有答案)已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】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) /*按产品名称从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}}第2套.已知在文件IN4.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
2012年9月国家三级(网络技术)笔试真题试卷(题后含答案及解析) 题型有:1. 选择题 2. 填空题选择题(每小题1分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.多核处理器芯片已经达到ITFLOPS的浮点运算速度。
它的速度是( )。
A.每秒十亿次B.每秒百亿次C.每秒千亿次D.每秒万亿次正确答案:D解析:此题考查的是CPU的速度问题.是一个记忆性知识,每秒万亿次。
2.ASCII码中每个字符都能用二进制数表示,例如L表示为01001100,M 表示为01001101,那么字符P可表示为( )。
A.01001110B.01001111C.01010000D.01010011正确答案:C解析:根据L和M的二进制值可推算出P的值是01010000。
3.关于主板的描述中.错误的是( )。
A.按主板的规格分类有AT主板、ATX主板B.按芯片集分类有奔腾主板、AMD主板C.按CPU插座分类有Slot主板、Socket主板D.按数据端口分类有SCSI主板、EDO主板正确答案:B解析:奔腾和AMD指的都是CPU。
4.关于奔腾处理器体系结构的描述中,正确的是( )。
A.为进一步提高性能转向多核技术B.超标量技术的特点是提高主频、细化流水C.哈佛结构是把指令和数据进行混合存储D.超流水线技术的特点是设置多条流水线正确答案:A解析:奔腾处理器为进一步提高性能转向多核技术,其他三个选项对提高性能帮助不大。
5.关于局部总线的描述中,错误的是( )。
A.VESA比PCI有明显的优势B.VESA的含义是视频电子标准协会C.PCI的含义是外围部件接口D.PCI是Intel公司制定的标准正确答案:A解析:PCI比VESA有明显的优势。
6.关于应用软件的描述中,正确的是( )。
A.Access是演示软件B.PowerPoint是电子表格软件C.Internet Explotrer是浏览器软件D.Excel是数据库软件正确答案:C解析:Access是数据库软件,PowerPoint是演示软件,Excel是电子表格软件。
1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。
请编写函数num(int m,int k,int xx[])实现函数的要求,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
---------类型:素数。
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++;} }或者:void num(int m,int k,int xx[]){int i,j,s=0;for(i=m+1;k>0;i++){for(j=2;j<i;j++)if(i%j==0) break; /*注:素数为只能被自己和1整除的数.如果i%j等于0,说明i不是素数,跳出本层循环*/if(i==j){xx[s++]=i;k--;}} }或者:void num(int m, int k, int xx[]){ int i=0;for(m=m+1;k>0;m++)if(isP(m)){ xx[i++]=m;k--; } }原程序如下:#include <conio.h>#include <stdio.h>void readwriteDAT() ;int isP(int m){ int i ;for(i = 2 ; i < m ; i++)if(m % i == 0) return 0 ;return 1 ;}void num(int m,int k,int xx[]){}main(){ int m, n, xx[1000] ;clrscr() ;printf("\nPlease enter two integers:") ;scanf("%d,%d", &m, &n ) ;num(m, n, xx) ;for(m = 0 ; m < n ; m++)printf("%d ", xx[m]) ;printf("\n") ;readwriteDAT() ;system("pause");}void readwriteDAT(){ int m, n, xx[1000], i ;FILE *rf, *wf ;rf = fopen("in.dat", "r") ;wf = fopen("out.dat", "w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%d %d", &m, &n) ;num(m, n, xx) ;for(m = 0 ; m < n ; m++) fprintf(wf, "%d ", xx[m]) ;fprintf(wf, "\n") ;}fclose(rf) ;fclose(wf) ;}2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。
题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}题目2已知数据文件IN.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a 中,请编制一个函数jsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DAT文件中。
例如:5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,计算平均值pjz2。
注意:部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】void jsValue(){int i;for(i=0;i<300;i++)if(isP(a[i])){ pjz1+=a[i]; cnt++; }else pjz2+=a[i];pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);}************************************************************************题目3下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。
全国计算机等级考试三级网络技术南开100题目录整数排序题 (5)☆题目1(整数排序题) (5)☆题目2 正整数排序 (5)★☆题目3(整数统计排序题) (6)☆题目4(整数统计排序题) (6)题目5(整数运算排序题) (7)★题目6(整数各位统计排序题) (7)题目7(整数统计排序题) (8)★题目8(整数排序题) (8)★题目9(整数各位数字运算排序题) (9)题目10(整数各位数运算排序题) (9)★☆题目11 (整数各位数运算及排序题) (10)整数统计运算题 (10)★☆题目12整数统计运算题) (10)☆题目13(整数统计运算题) (11)☆题目14(整数统计运算题) (11)题目15(整数统计运算题) (12)题目16(整数统计运算题) (12)题目17(整数统计运算题) (13)☆题目18(整数统计运算题) (13)题目19(整数统计运算题) (13)题目20(整数各位数字运算题) (14)☆题目21(整数各位数字运算题) (14)题目22(整数各位数字运算题) (15)☆题目23(整数各位数字运算题) (15)题目24(整数各位数字运算题) (16)☆题目25(整数各位数字统计运算题) (16)★☆题目26(整数各位运算题) (16)题目27(整数各位数运算题) (17)☆题目28(整数各位数运算题) (17)☆题目29(整数各位运算统计题) (18)☆题目30 (19)题目31 (19)整数各位打散组合运算题 (20)★☆题目32(整数各位打散组合运算题) (20)☆题目33(整数各位打散组合运算题) (20)★☆题目34(整数各位打散组合运算题) (21)题目35(整数各位打散组合运算题) (21)★题目36(整数各位打散组合运算题题) (22)题目37(整数各位打散组合运算题) (23)★题目38(整数各位打散组合运算题) (23)题目39(整数各位打散组合运算题) (24)素数题 (24)★☆题目42(素数题) (25)★题目43(素数题) (26)★题目44(素数题) (27)★题目45(数字运算题) (27)★题目46(数字统计排序题) (28)☆题目47(数字统计排序题) (28)字符型题 (29)题目48字符型题 (29)★题目49(字符处理——倒序输出) (30)★题目50(字符排序题) (30)★☆题目51(替换字符题) (31)☆题目52(亲朋字符替换题) (31)字符串处理题 (32)★☆题目53(字符串排序题) (32)☆题目54(字符串字母移位题) (33)★☆题目55(字符串左右排序交换题) (33)题目56(字符串左右排序交换题) (34)★题目57(字符串移位题) (34)题目58(字符串排序题) (35)★题目59(字符串左右排序题) (35)★题目60(字符ASCII值移位替换题) (36)方差运算题 (37)★☆题目61(方差运算题) (37)☆题目62(方差运算题) (37)☆题目63(方差运算题) (38)☆题目64(整数各位数运算题) (39)★题目65(字符替换题) (39)★☆题目66(字符替换题) (40)★题目67(字符替换题) (40)题目68(字符替换题) (40)题目69(字符替换题) (41)☆题目70(字符替换题) (41)★题目71(字符替换题) (42)☆题目72(字符替换题) (42)☆题目73(字符替换题) (43)★题目74(字符替换题) (43)★题目75(字符替题) (43)★☆题目76(字符替换题) (44)☆题目77(结构体操作题) (44)★☆题目78(结构体运算题题) (45)题目79(结构体运算题) (45)★☆题目80(结构体运算题) (45)☆题目81(结构体运算题) (46)题目82(结构体运算题) (46)★题目85(结构体运算题) (47)题目86(结构体排列题) (48)选票问题 (48)题目87(选票问题) (48)★☆题目88(选票问题) (49)☆题目89(选票问题) (49)★☆题目90(级数运算题) (50)其他问题 (50)☆题目91(单词个数统计题) (50)★题目92(Fibonacci数列题) (51)☆题目93(迭代方法求方程题) (51)★题目94(平方根问题) (52)题目95 (实数运算题) (53)题目96(完全平方数问题) (54)★题目97 (回文数问题) (54)★题目98(出圈题) (55)☆题目99(SIX/NINE问题) (55)三级网络上机题型整数排序题☆题目1(整数排序题)在文件in.dat中有200个正整数,且每个数均在1000至9999之间。
题目1请编写一个函数jsV alue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}题目2已知数据文件IN.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a 中,请编制一个函数jsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DAT文件中。
例如:5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,计算平均值pjz2。
注意:部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】void jsValue(){int i;for(i=0;i<300;i++)if(isP(a[i])){ pjz1+=a[i]; cnt++; }else pjz2+=a[i];pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);}************************************************************************题目3下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。
三级C语言上机100题几点说明:**********************************☆题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件中。
部分源程序存在文件中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
#include <>#include <>void readwriteDat();int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}main(){int m,n,xx[1000];clrscr();printf("\nPlease enter two integers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n");readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;rf=fopen("","r");wf=fopen("","w");for(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");}fclose(rf);fclose(wf);}*********************************☆题目2已知数据文件中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
10个人100行的选票★☆题目39。
对10个候选人进行选举,全选或不选均为无效的选票.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;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;}}★☆题目58。
对10个候选人进行选举,若一张选票人数小于等于5个人时被认为无效的选票。
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<=5) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;}}★题目84。
对10个候选人进行选举,若一张选票人数大于5个人时认为无效的选票. 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>5) continue;for(j=0;j<10;j++)if(xx[i][j]=='1') yy[j]++;} 200个正整数★☆题目5。
在文件in.dat中有200个正整数, 1000至9999之间。
按原先的数值进行降序排列。
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||aa[i]%1000==aa[j]%1000&&aa[i]<aa[j]) {data=aa[i];aa[i]=aa[j];aa[j]=data;}for(i=0;i<10;i++)bb[i]=aa[i];}题目6 。
全国计算机等级考试三级C语言上机100 题几点说明:********************************** ☆题目 1请编写一个函数jsValue(int m,int k,int xx[]) ,该函数的功能是:将大于整数m 且紧靠m 的k 个素数存入数组xx 传回。
最后调用函数writeDat() 读取10 组数据,分别得出结果且把结果输出到文件out.dat 中。
部分源程序存在文件prog1.c 中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main() 和写函数writeDat() 的内容。
#include <conio.h> #include <stdio.h> void readwriteDat();int isP(int m) {int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;} }main(){i nt m,n,xx[1000];clrscr();p rintf("\nPlease enter two integers:");scanf("%d%d",&m,&n);n um(m,n,xx); for(m=0;m<n;m++)printf("%d ",xx[m]);printf("\n"); readwriteDat();}void readwriteDat(){int m,n,xx[1000], i;FILE *rf,*wf;r f=fopen("in.dat","r");wf=fopen("out.dat","w");f or(i=0;i<10;i++){fscanf(rf,"%d %d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d ",xx[m]);fprintf(wf,"\n");} fclose(rf);fclose(wf);}********************************* ☆题目2已知数据文件IN.DA T 中存有200 个四位数,并已调用读函数readDat() 把这些数存入数组 a 中,请考生编制一函数jsVal() ,其功能是:如果四位数各位上的数字均是0 或2 或4 或6 或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到全国计算机等级考试三级C语言上机100 题几点说明:********************************** ☆题目 1请编写一个函数jsValue(int m,int k,int xx[]) ,该函数的功能是:将大于整数m 且紧靠m 的k 个素数存入数组xx 传回。
2012年9月年计算机三级网络技术上机题库题目1请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k 个素数存入数组xx传回。
最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若输入17 5 则应输出:19,23,29,31,37。
请勿改动主函数main()和写函数writeDat()的内容。
int isP(int m){int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void num(int m,int k,int xx[]){ int s=0;for(m=m+1;k>0;m++)if(isP(m)) { xx[s++]=m; k--;}}题目2已知数据文件IN.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a 中,请编制一个函数jsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DAT文件中。
例如:5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,计算平均值pjz2。
注意:部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】void jsValue(){int i;for(i=0;i<300;i++)if(isP(a[i])){ pjz1+=a[i]; cnt++; }else pjz2+=a[i];pjz1=pjz1/cnt;pjz2=pjz2/(300-cnt);}************************************************************************题目3下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。
请编写函数countValue()实现程序要求的功能,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。
int isPrime(int m){int i;for(i=2; i<m; i++)if(m % i ==0) return 0 ;return 1;}void countValue(){int i;for(i=2;i<=90;i++)if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10)){cnt++;sum+=i;}}运行结果为:满足条件的整数的个数=7满足条件的整数的和值=201题目4已知数据文件IN14.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。
请编制一个函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到OUT14.DAT文件。
例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
注意:部分源程序已给出。
程序中已定义数组:a[300]、b[300];已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】void jsValue(){int j,i,value;for(i=0;i<300;i++)if(isP(a[i])) { b[cnt]=a[i]; cnt++; }for(i=0;i<cnt-1;i++) /*将数组b中的四位数按从小到大的顺序进行排序*/for(j=i+1;j<cnt;j++)if(b[i]>b[j]) { value=b[i]; b[i]=b[j]; b[j]=value; }}题目5程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。
计算并输出上述这些素数的个数cnt以及这些素数值的和sum。
请考生编写函数countValue( )实现程序要求,最后调用函数writeDA T()把结果cnt 和sum输出到文件bc10.out中。
int isPrime(int m){int i;for(i=2;i<m;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=i%100/10; gw=i%10;if(isPrime(i)&&(gw+sw)%10==bw) { cnt++; sum+=i;}}}题目6下列程序prog1.c的功能是:计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数...的值sum。
请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT11.DA T中。
int isP(int m){ int i;for(i=2;i<m;i++)if(m % i==0)return 0;return 1;}void countValue(){int i,j,k=1;for(i=800;i>500;i--)if(isP(i)){cnt++;sum=sum+k*i;k=k*(-1); }}}题目7已知数据文件IN.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsV al(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定义数组:a[200],b[200],已定义变量:cnt请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
-------------------------void jsVal(){int I,thou,hun,ten,data,j;int ab,cd;for(I=0;I<200;I++){thou=a[I]/1000; hun=a[I]%1000/100;ten=a[I]%100/10; data=a[I]%10;ab=10*thou+ten; cd=10*data+hun;if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0){b[cnt]=a[I];cnt++;}}for(I=0;I<cnt-1;I++)for(j=I+1;j<cnt;j++)if(b[I]<b[j]){data=b[I]; b[I]=b[j];b[j]=data;}}题目825>千位+十位组合与个位+百位组合,素数,从大到小排序。
【参考答案】int qw, bw, sw, gw, i, newV1, newV2, j;for(i = 0; i < MAX; i++){qw = a[i] / 1000;gw = a[i] % 10;bw = (a[i] - qw * 1000) / 100;sw = (a[i] - qw * 1000 - bw * 100) / 10;newV1 = qw * 10 + sw;newV2 = gw * 10 + bw;if(qw && gw && isprime(newV1) && isprime(newV2))b[cnt++] = a[i];}for(i = 0; i < cnt - 1; i++)for(j = i + 1; j < cnt; j++)if(b[i] < b[j]){newV1 = b[j];b[j] = b[i];b[i] = newV1;}题目9已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DA T文件中。
void jsVal(){int i,j,thou,hun,ten,data,ab,cd;for(i=0;i<MAX;i++){thou=a[i]/1000; hun=a[i]%1000/100;ten=a[i]%100/10; data=a[i]%10;ab=10*thou+ten; cd=10*data+hun;if((ab-cd)>0&&(ab%2!=1&&ab%5==0)&&cd%2==1&&ab>=10&&cd>=10){b[cnt]=a[i];cnt++;}}for(i=0;i<cnt-1;i++)for(j=i+1;j<cnt;j++)if(b[i]<b[j]) {data=b[i];b[i]=b[j];b[j]=data;}}************************************************************************题目10已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a 中,请考生编制一函数jsVal(),其功能是:把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。