作业4

1、输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数is(number)判断number的各位数字之和是否等于其自身。

 

/* 输出m~n之间的所有水仙花数 */
#include<stdio.h>
int is(int number);   //自定义 is number函数判断各位数字之和是否等于其自身
 int main(void)
{
    int i;
    for(i=1;i<=10000;i++)
        if(is(i))
            printf("%d  ",i);
}
int is(int number){        //调用函数
int sum,n,p; 
sum=0;
        n=number;  
        while (number!=0){               
            p= number%10;   //取出个位数值            
            sum=sum+p*p*p;   
            number=number/10;    
        }     
        return  (sum==n); 
    }

 

 

 

 

 

 

 

4、输入x、n后输出下列算式的值,fact(n)实现n!,mypow(x,n)实现xn。

 

/* 输入x、n后输出下列算式的值,fact(n)实现n!,mypow(x,n)实现xn */
#include <stdio.h>
#include<math.h>                 //程序中需要调用fact函数和pow函数
double fact(int n);              //定义fact函数求阶乘
int main(void)
{
 int i,x,flag;                   //分子为flag
 double n,sum;                   //sum表示总和
  printf("输入x和n:\n");
  scanf("%d %f",&x,&n);
  sum=0;
  flag=1;
  n=x;
 

  for(i=1;i<=n;i++){  
      sum=sum+flag*powl(x,i)/fact(i);
   flag=-flag;                   //每次循环后分子变号  
  }
  printf("%.2f\n",sum);
 return 0;
}
double fact(int n)             //调用fact函数
{
 int i;
 double fact=1;
 for(i=1;i<=n;i++)
 {
  fact=fact*i;                 //求阶乘
 }
 return fact;
}

 

 

6、输出80到120之间的满足给定条件的所有整数,条件为构成该整数的每位数字都相同。要求定义和调用函数is(n)判断整数n的每位数字是否都相同,若相同则返回1,否则返回0。

/* 输出80-120间的整数,要求构成该整数的每位数字都相同 */
#include <stdio.h>
int is(int n);
int main(void)
{ 
    int  i;     
for(i = 80; i <= 120; i++)    //判断80-120之间的数字
if(is(i) != 0)
printf("%d ", i);
printf("\n");
}
int is(int n)
{ 
    int old, digit;          //定义整型变量,位数
    old = n % 10;              
    //首先提取出个位数字
    do{
digit = n % 10;        //提取出十位数字
if( digit != old  )   //若不相等,返回0   
 return 0 ;
    digit = old;   
n = n / 10;
}
while( n != 0 );
   return 1;   
}

 

7、阅读教材 第五章 函数,回答以下问题:

1) 怎样定义函数?如何调用函数?如何声明函数?

答:函数定义的一般形式为:函数类型 函数名(形式参数表)/* 函数首部 */

函数实现过程 /* 函数体 */

2) 什么是函数的参数?什么是形参、实参?在函数调用时,参数是如何传递的?

答:1.数学中函数的自变量在c语言中被称为参数

      2.函数定义时,位于其首部的参数被称为形参,主调函数的参数被称为实参

      3.程序运行遇到函数调用时,实参的值依次传给形参,这就是参数的传递

3) 在使用函数的过程中,要注意哪些问题?怎样确定函数的参数?

答:1.函数首部后面不能加分号,它和函数体一起构成完整的函数定义,实参和形参应一一对应,数量应相同;

     2.按需分配,需要什么参数就设定什么参数

4) 如何使用局部变量和全局变量?

答:局部变量一般定义在函数或复合语句的开始处,全局变量一般定义在程序的最前面,即第一个函数的前面。

5) 什么是静态变量?

存放在静态存储区,不会因函数调用结束而被系统收回,而是持续到程序结束的变量。

8、预习第七章 数组,并回答一下问题:

1) 什么是数组? 为什么要使用数组? 如何定义数组?

答:1.数组是最基本的构造类型,它是一组相同类型数据的有序集合。

      2.定义数组要确定哪些数据组成数组,数组中有多少个元素,属于哪个数据类型。

       定义一维数组的一般形式为:类型符 数组名[常量表达式];

2) 如何引用数组元素?

答: 引用数组元素的表示形式为:数组名[下标]

3) 二维数组的元素在内存中按什么方式存放?

答:二维数组中元素排列的顺序是按行存放的,即在内存中先顺序存放第1行的元素,

     接着再存放第二行的元素

4) 什么是字符串? 字符串结束符的作用是什么?

答:1.字符串常量就是用一对双引号括起来的字符序列,即一串字符,它有一个结束标志'\0'

      2.起一个隔绝的作用,字符串遇'\0'结束,也就是说,第一个'\0'之后的其他数组元素与该字符串无关

5) 如何实现字符串的存储和操作,包括字符串的输入和输出?

答:将字符串存入一维字符数组

6) 怎样理解C语言将字符串作为一个特殊的一维字符数组?

答:字符串的有效长度就是有效字符的个数,所以也可算是特殊的字符数组

 

 

 

 

posted @ 2013-11-11 03:50  灵魂变成字soul  阅读(260)  评论(0编辑  收藏  举报