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

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

时间:2022-11-18 20:46:45浏览次数:48  
标签:aa 10 专项 int void SIX C语言 fun 程序设计

36、编写函数void  fun (int *a, int *n),其功能是:求出100~999之间所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293),并将其放在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,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

标签:aa,10,专项,int,void,SIX,C语言,fun,程序设计
From: https://www.cnblogs.com/cs-whut/p/16904216.html

相关文章

  • C语言字符串漫谈
    在C语言中写字符串,我们一般这样定义变量constchar*str="hello";乍看这样的赋值方式有点费解,前面是一个char*指针,str指向一个char字符的指针,而后面是一个字符串,怎么都......
  • 2022-2023-1 20221318 《计算机基础和程序设计》第十二周学习总结
    作业信息这个作业属于那个班级https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12作业目标学习......
  • 博奥智源网站、管理系统和微信小程序设计分享
    1.全国管理办公室账号拥有最高权限,具有各种审核权限,可以查看全国学生信息,开启活动报名通道、平台(如中期评估、暑期活动、在线考试、总结评议等),发布活动通知,查看、汇总、统......
  • C语言uint8
    一、C语言基本数据类型回顾在C语言中有6种基本数据类型:short、int、long、float、double、char1、数值类型1)整型:short、int、long2)浮点型:float、double2、字符类型:cha......
  • 【专项测试系列】-缓存击穿、穿透、雪崩专项测试
    作者:刘须华一、背景概述: R2M缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。而缓存最常见的问题是缓存穿透、击穿和雪崩,在高并发下这三种情况都会有大量......
  • C语言函数的取地址符和星号
    最近对函数的星号和取地址符有些困惑于是写了这一点简单的代码来回忆一下;1、#include<stdio.h>voidf(intx,inty){intt;t=x;x=y;y=t;printf("x=%d;......
  • 【c&c++】C语言 结构体 - 字节对齐 使用预处理命令 #pragma 对齐
    在C语言中每个数据类型都有他的对齐方式例如char是一个一节对齐,int是四个字节对齐,float是八个字节对齐,short是两个字节对齐由于对齐方式的特性就会拥有相同成员的结......
  • C语言:找最大交错正方形
    题目图上有一个矩阵,由N*M个格子组成,这些格子由两种颜色构成,黑色和白色。请找到面积最大的且内部是黑白交错(即两个相连的正方形颜色不能相同)的正方形。输入格式:第一行两......
  • C语言:计算器
    题目请你编写一个科学计算器,支持多括号嵌套的四则运算,三角函数及指数对数运算功能可选(功能越多越好,指数的输入格式为a^b,对数的输入格式为logab,(其中a为底数))代码#in......
  • C语言:约瑟夫环
    题目n个人围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。 例如:  ......