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: "); 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 ",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(" "); } 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.字符串常量就是用一对双引号括起来的字符序列,即一串字符,它有一个结束标志' '
2.起一个隔绝的作用,字符串遇' '结束,也就是说,第一个' '之后的其他数组元素与该字符串无关
5) 如何实现字符串的存储和操作,包括字符串的输入和输出?
答:将字符串存入一维字符数组
6) 怎样理解C语言将字符串作为一个特殊的一维字符数组?
答:字符串的有效长度就是有效字符的个数,所以也可算是特殊的字符数组