#include \
f(int x)/*判断x是否素数*/ {
int i,sign=0;;
for(i=2;i<=(int)sqrt(x);i++) {
if(x%i==0) { ++sign; break; } } if(sign!=0)
printf(\该数不是素数\\n\else
printf(\该数是素数\\n\}
void main() { int a;
printf(\请输入一个整数:\\n\scanf(\
5
f(a); }
运行结果:
请输入一个整数: 7
该数是素数
4. C语言中在函数之间进行数据传递的方法除了通过返回值和全局变量外,还可以采用哪种方式?请以求两个数中的较大者为例,分别编程实现。
分析:
函数之间传递数据的方法一般有三种方式: a) 通过返回值 b) 通过全局变量 c) 通过函数调用的实参 代码请自行实现。
5.用递归算法求下列函数的值。
1
p(n,x)=
x
( ( 2x-1 )*p( n-1,x )*x-( n-1 )*p( n-2,x ) )/n
(n=0) (n=1) (n>1)
注意选择好合适的参数类型和返回值类型。在main()函数中,输入下列三组数据:
(a)n=0,x=7; (b)n=1,x=2; (c)n=3,x=4求出相应的函数值。
6
分析:
该函数为分段函数,当n>1时为勒让德多项式,可以利用函数的递归调用求其值。
参考程序代码: #include \double pn(double x, int n) {
if(n==0) return 1; if(n==1) return x;
return 1.0*((2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2))/n; } main() {
double pn(double x,int n); double x; int n;
printf(\请输入参数x与n\\n\printf(\printf(\printf(\函数值为: %lf\\n\}
运行结果:
7
请输入参数x与n: x=7 n=0
函数值为:1.000000 请输入参数x与n: x=2 n=1
函数值为:2.000000 请输入参数x与n: x=4 n=3
函数值为:2.833333
6.写一个函数,输入一个十六进制数,输出相应的十进制数。 参考程序代码: #include \ #include \ int translat(char c) {
if(c<='9'&&c>='0') return c-'0'; if(c>='a' && c<='f') return c-87; if(c>='A' && c<='F') return c-55; return -1;//其他字符返回-1 }
int Htoi(char *str) {
int i,stat,n=0; int length=strlen(str); if(length==0) return 0; for(i=0;i 8
相关推荐: