首页IT科技计算机二级考试C语言程序设计真题(计算机等级考试二级C语言程序设计专项训练题——程序设计题(五))

计算机二级考试C语言程序设计真题(计算机等级考试二级C语言程序设计专项训练题——程序设计题(五))

时间2025-08-05 08:06:52分类IT科技浏览7360
导读:36、编写函数void fun (int *a, int *n ,其功能是:求出100~999之间所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293),并将其放在a所指的数组中,通过n返回这些数的个数。...

36                、编写函数void fun (int *a, int *n)                ,其功能是:求出100~999之间所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)                     ,并将其放在a所指的数组中        ,通过n返回这些数的个数             。

void fun (int *a, int *n) { int i,j,bw,sw,gw,cnt=0; for (i=101;i<1000;i+=2) { bw=i/100; sw=i%100/10; gw=i%10; for (j=3;j<i;j+=2) if(i%j==0) break; if ((i==j) &&(gw+sw)%10==bw) a[cnt++]=i; } *n=cnt; }

参考程序

37                     、编写函数void fun (int *a, int *n)            ,其功能是:找出所有100以内(含100)满足I                     ,I+4           ,I+10(I+10也在100以内)都是素数的整数I(如3        ,3        、3+4=7            、3+10=13均是素数)                      ,并将其放在a所指的数组中              ,通过n返回这些数的个数                        。

#include <stdio.h> void fun (int *a, int *n) { } int main() { int aa[1000], n, k ; fun (aa, &n ) ; for ( k = 0 ; k < n ; k++ ) { printf("%5d", aa[k]) ; if ((k + 1) % 10 == 0) printf("\n") ; } return 0; }
void fun (int *a, int *n) { int i,j,cnt=0; int isPrime[101]={0}; // isPrime[i]=0 表示i不是素数 isPrime[2]=1; for (i=3;i<100;i+=2) { for (j=3;j<i;j+=2) if (i%j==0) break; if (i==j) isPrime[i]=1; // i是素数 } for(i=2;i<=90;i++) if (isPrime[i] && isPrime[i+4] && isPrime[i+10]) a[cnt++]=i; *n=cnt; }

参考程序

38                     、下列程序的功能是:寻找并输出11至999之间的数m    ,它满足m,m2和m3均为回文数        。所谓回文数是指其各位数字左右对称的整数                       ,例如121                 ,676,94249等         。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数                       。请编写函数intfun(int n)                    ,该函数的功能是:如果整数n是回文数                     ,则函数返回1    ,反之则返回0            。

#include <stdio.h> int fun(int n) { } int main() { int m; for(m=11;m<1000;m++) { if (fun(m) && fun(m*m) && fun(m*m*m)) { printf("m=%4d,m*m=%6d,m*m*m=%9d \n",m,m*m,m*m*m); } } return 0; }
int fun(int n) { int s=0,k; k=n; while(k) { s=s*10+k%10; k/=10; } if(s==n) return 1; else return 0; }

参考程序

39           、编写函数void fun (int *a, int *n)                ,其功能是:找出所有的自然数SIX和NINE                     ,它们满足的条件是SIX+SIX+SIX=NINE+NINE        ,其中的S            ,I                     ,X           ,N        ,E各代表一个十进制数字                      ,所代表的数字可以相同      。并将所有找出的自然数SIX放在a所指的数组中              ,通过n返回这些数的个数                      。

#include <stdio.h> void fun (int *a, int *n) { } int main() { int aa[1000], n, k ; fun (aa, &n ) ; for ( k = 0 ; k < n ; k++ ) { printf("%d+%d+%d=%d+%d\n", aa[k],aa[k],aa[k],3*aa[k]/2,3*aa[k]/2) ; } return 0; }
void fun (int *a, int *n) { int s,i,x,m,e,six,nine,cnt=0; for (s=1;s<10;s++) for(i=0;i<10;i++) for(x=0;x<10;x++) for(m=1;m<10;m++) for(e=0;e<10;e++) { six=s*100+i*10+x; nine=m*1000+i*100+m*10+e; if (3*six==2*nine) a[cnt++]=six; } *n=cnt; }

参考程序1

// SIX必须是偶数    ,且SIX最小值为668,因为666*3=1998<2000 // 对SIX进行穷举                       ,NINE=3*SIX/2                 ,若SIX的十位数与NINE的百位数相同, // 且NINE的千位数与十位数相同                    ,则满足条件 void fun (int *a, int *n) { int i,cnt=0; for (i=668;i<=999;i=i+2) if ((i/10%10==(3*i/2)/100%10) && ((3*i/2)/1000==(3*i/2)%100/10) ) a[cnt++]=i; *n=cnt; }

参考程序2

40        、编写函数void fun (int *a, int *n)                     ,其功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组a中;它既是完全平方数    ,又是两位数字相同                ,例如144                      、676等                。并通过n返回这些数的个数   。

#include <stdio.h> void fun (int *a, int *n) { } int main() { int aa[1000], n, k ; fun (aa, &n ) ; for ( k = 0 ; k < n ; k++ ) { printf("%5d", aa[k]) ; if ((k + 1) % 10 == 0) printf("\n") ; } return 0; }
void fun (int *a, int *n) { int i,j,k=0; int bw,sw,gw; for(i=100;i<=999;i++) { j=10; while(j*j<=i) { if (i==j*j) { bw=i/100; sw=i%100/10; gw=i%10; if (bw==sw||bw==gw||sw==gw) a[k++]=i; } j++; } } *n=k; }

参考程序1

void fun (int *a, int *n) { int i,j,k=0; int bw,sw,gw; for(j=10;j<=31;j++) { i=j*j; bw=i/100; sw=i%100/10; gw=i%10; if (bw==sw||bw==gw||sw==gw) a[k++]=i; } *n=k; }

参考程序2

声明:本站所有文章                     ,如无特殊说明或标注        ,均为本站原创发布                     。任何个人或组织            ,在未征得本站同意时                     ,禁止复制              、盗用    、采集                       、发布本站内容到任何网站                 、书籍等各类媒体平台                    。如若本站内容侵犯了原著者的合法权益           ,可联系我们进行处理。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
点击右键新建里面的没有office(右键新建菜单中没有新建word文档)