设为首页 加入收藏

TOP

计算机等级考试二级C语言程序设计专项训练题——整数的各位数字(一)
2023-07-23 13:31:31 】 浏览:180
Tags:计算机 程序设 计专项

         在计算机等级考试二级C语言程序设计试题中,有关一个正整数各位数字的处理是一个重要的考点,这类试题在历年考试试卷的程序填空题和程序设计题中经常出现。

一.实例解析

        例1  编写函数fun,它的功能是:找出100~x(x<=999)之间所有整数中各位上数字之和为15的整数,然后输出;符合条件的整数个数作为函数值返回。

        例如,若x=500时,100~500之间各位上数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。

#include <stdio.h>

int fun(int  x)

{

}

int main()

{

    int  x=-1;

    while(x>999||x<0)

    { 

       printf("Please input(0<x<=999): "); 

       scanf("%d",&x); 

    }

    printf("\nThe result is: %d\n",fun(x));

    return 0;

}

       解析:由于程序中给定的整数t是一个3位数,因此可以用s3、s2和s1三个变量分别保存给定整数t的百位数字、十位数字和个位数字,显然

s3=t/100;   s2=t/10%10;  s1=t%10;

        用一重循环对100~x之间的所有整数t进行穷举,若各位数字之和s1+s2+s3等于15,则输出t并计数。

编写的fun函数如下:

int fun(int  x)

{

    int  n, s1, s2, s3, t;

    n=0;

    t=100;

    while (t<= x)

    {

        s1=t%10;  s2=(t/10)%10;  s3=t/100;

        if(s1+s2+s3==15)

        { 

            printf("%d ",t);

            n++;

        }

        t++;

    }

    return n;

}

       例2  编写函数fun,它的功能是:计算无符号整数num的各位上的数字之和。

        例如,若输入250,则输出应为7;若输入123456,则输出应为21。

#include <stdio.h>

unsigned fun(unsigned num)

{

}

int main()

{

   unsigned n;

   printf("Please enter a number:");

   scanf("%ud",&n);

   printf("\n%u\n",fun(n));

   return 0;

}

         解析:由于题目未给定整数num的位数,因此像例1那样采用多个变量分别保存num的各位数字,并通过对num进行算术运算得到各位上的数字的方法不适用。

         实际上,对于任意一个非负整数num,num%10可以得到num的个位数,num=num/10会将num的个位数丢掉,这样,通过循环不断求得num的个位数并丢掉个位数,可以将num各位上的数字依次分离出来,其操作步骤为:

1)分离出num的个位数,即num%10。

2)将num除以10,作为新的num,即新的num丢掉了个位数。

3)如果num等于0,分离完毕,结束。否则,转第1)步,继续分离各位数字。

例如,num=1234,num%10=4,num=1234/10=123,得到数字4;

                num%10=3,num=123/10=12,得到数字3;

num%10=2,num=12/10=1,得到数字2;

num%10=1,num=1/10=0,得到数字1;结束。

将每次分离出的个位数累加起来,就得到num的各位数字之和。

编写的fun函数如下:

unsigned fun(unsigned num)

{

   unsigned s=0;

   do

   {

       s+=num%10;

       num/=10;

   } while(num);

   return s;

}

        例3  编写函数fun,它的功能是:求整数number的逆序数。

例如,若输入12345,则输出应为54321

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机等级考试二级C语言模拟试卷.. 下一篇Windows OpenGL 图像色阶

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目