社区
C语言
帖子详情
函数填空,求x的y次方!
一脚滑倒
2001-03-17 12:35:00
double fun(double x,int y)
{ int i;double z;
for (i=1;i___:i++)
z=____;
return z;
}
问题是z没有赋初值,如何累乘?
小弟是刚学Turbo c, 请诸位大哥大姐帮帮我,
多谢!分一定会给回答最快,答案最好的那位!!
...全文
1131
21
打赏
收藏
函数填空,求x的y次方!
double fun(double x,int y) { int i;double z; for (i=1;i___:i++) z=____; return z; } 问题是z没有赋初值,如何累乘? 小弟是刚学Turbo c, 请诸位大哥大姐帮帮我, 多谢!分一定会给回答最快,答案最好的那位!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Fever
2001-03-31
打赏
举报
回复
sevecol递归的方法虽然方便,但是最重要的是它不是很优化,所以尽量不要采用,
double fun(double x,int y)
{ int i=1;double z=x;
for(;i<=y;i++)
z*=x;
return z;}
这样的方法缺点是不能算负数和零次幂。
bleempan
2001-03-31
打赏
举报
回复
double fun(double x,int y)
{ int i;double z;
for (i=1;i<2:i++)
z=pow(x,y);/*pow函数在头文件math.h中*/
return z;
}
xycleo
2001-03-30
打赏
举报
回复
函数是
sevecol
2001-03-29
打赏
举报
回复
double pp(double r,int y)
{
if (y>=1)
{if (y==1)
return r;
return pp(r,(y-1))*r;
}
if (y==0)
return 1;
if (y<0)
return pp(1/r,-y);
}
momo
2001-03-28
打赏
举报
回复
虚竹先生,不要浪费资源啊!现在可是在搞环保啊!呵呵,
你能说清楚点么,多谢了!
xycleo
2001-03-28
打赏
举报
回复
这题应该是考试题!!大家都想错反向了!!!!
其实就是调用一个求几次方的函数!!!!!!!!!!!
momo
2001-03-28
打赏
举报
回复
第一个人是这样回答的,到后来,怎么都是差不多的,这个空我没法填,(水平有限!!)
我想的话,如果求任意数的任意次方,还是用递归比较安全一点!!
momo
2001-03-28
打赏
举报
回复
to donaldduck:
我不明白你这是为什么??????
double fun(double x,int y)
{ int i;double z;
for (i=1;i<y:i++)
z=x=x*x;//仔细看这一步!
return z;
}
你的那一句是什么意思(z=x=x*x;//仔细看这一步!)这样一来,如果形参x的值是2,经过z=x=x*x;x的值就是4,第二次循环的时候,就是4*4,而不是原来的值!而第三次呢,就是16*16!!!!晕~~~~~~~~
还有,你的分号也打成了冒号!
xycleo
2001-03-28
打赏
举报
回复
我知道啦
请看看在math.h库中有一个计算几次方的函数!!!!!!!!!
大家都一脚滑到了!!!!
code-is-poetry
2001-03-27
打赏
举报
回复
这道题大家是讨论完了吗?恕我直言,
如果我有下面一个主函数,请回答其输出结果:
main()
{
printf("The answer of 0.0**0 is:%d\n",fun(.0,0));
}
simensummer
2001-03-19
打赏
举报
回复
你又在坑人了
wuyaoxin的循环设计中y+1就可以了.我也是一菜鸟
donaldduck
2001-03-17
打赏
举报
回复
这样一来就行了呀:
double fun(double x,int y)
{ int i;double z;
for (i=1;i<y:i++)
z=x=x*x;
return z;
}
一脚滑倒
2001-03-17
打赏
举报
回复
也可以发邮件给我!lovejrj@163.com
一脚滑倒
2001-03-17
打赏
举报
回复
嗯!看来没有人可以拿这20分了!我收回!不过多谢大家的关心和参与!
一脚滑倒
2001-03-17
打赏
举报
回复
回复wuyaoxin 你的z的赋值表达式是对的,不过循环的次数不对!
一脚滑倒
2001-03-17
打赏
举报
回复
donaldduck 好像不对吧,按你的步骤,第二次z就等于x的4次方了,不对的!不过这题我想出来了,是
double fun(double x,int y)
{int i;double z;
for(i=1;i<=y;i++)
z=i==1?x:x*z;
return z;
}
donaldduck
2001-03-17
打赏
举报
回复
这样一来就行了呀:
double fun(double x,int y)
{ int i;double z;
for (i=1;i<y:i++)
z=x=x*x;//仔细看这一步!
return z;
}
wuyaoxin
2001-03-17
打赏
举报
回复
i<y
z=(i==1)?x:z*x
xycleo
2001-03-17
打赏
举报
回复
不行的,关键是Z没初值!!
xycleo
2001-03-17
打赏
举报
回复
不行吧!!我想想去!!
加载更多回复(1)
C语言期末复习必备资料
用于C语言期末复习 1、
函数
fun的功能是计算x^n。 double fun(double x,int n) {int i; double y=1; for(i=1;i<=n;i++) y=y*x; return y; } 主
函数
中已经正确定义m、a、b变量并赋值,并调用fun
函数
计算:m=a^4+b^4-(a+b)^3。实现这一计算的
函数
调用语句为______。 答案: 1:fun(a,4)+fun(b,4)-fun((a+b),3) 评析:
函数
fun的功能是计算x的n
次方
,所以a的4
次方
的调用
函数
应当为fun(a,4),b的4
次方
的调用
函数
应当为fun(b,4),(a+b)的3
次方
的调用
函数
应当为fun((a+b),3),所以,实现m=a^4+b^4-(a+b)^3这一计算的
函数
458调用语句为:fun(a,4)+fun(b,4)-fun((a+b),3);。 知识点:知识点/
函数
/破
函数
的正确调用,嵌套调用,递归调用 2、以下sstrcpy()
函数
实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请
填空
。 void sstrcpy(char *s,char *t) { while(*s++=______);} main() { char str1[100],str2[]="abcdefgh"; sstrcpy(str1,str2); printf("%s\n",str1); } 答案: 1:*t++ 评析:要使sstrcpy()
函数
实现字符串复制,必须将t字符串中的每个字符逐个拷到s字符串中,所以可以使用*s=*t;s++;t++。或者可以写成*s++=*t++,本题只有一个空,可以填入*t++。 知识点:知识点/指针/用指针作
函数
参数
〖程序设计基础〗练习题2及答案
一、选择题(每题1分,共30分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1.下列语句序列执行后,k 的值是( )。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A) 0 B) 1 C) 2 D) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) ‘A' B) ‘B' C) ‘C' D) B 8.下列语句序列执行后,i 的值是( )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,i 的值是( )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( )。 A) x > y || x > z B) x != y C) z > ( y + x ) D) x < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是( )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是( )。 A) switch (x + y) B) switch ( ch + 1 ) { ...... } { ...... } C) switch ch D) switch ( a + b ); { ...... } { ...... } 16. 下列最终属性 i 的定义中,正确的是( )。 A) static final int i=100; B) final int i=1.2; C) final i='w'; D) final char i; 17. 下列类定义中,不正确的是( )。 A) class x { .... } B) class x extends y { .... } C) static class x implements y1,y2 { .... } D) public class x extends Applet { .... } 18. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )。 A) static x x1; B) public x x1=new x(int 123); C) y x1; D) x x1=x( ); 19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造
函数
中不正确的是( )。 A) x( int m){ ... } B) void x( int m){ ... } C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 20. 下列方法定义中,正确的是( )。 A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; } C) int x( ){ ...return true; } D) int x( int a, b){ return a+b; } 21. 用于定义类成员的访问控制权的一组关键字是( )。 A) class, float, double, public B) float, boolean, int, long C) char, extends, float, double D) public, private, protected 22. 不能构成循环的语句是( )。 A) for 语句 B) while 语句 C) switch 语句 D) do__while 语句 23. 下列程序段执行后 b3 的结果是( )。 boolean b1=true, b2, b3; b3= b1 ? b1 : b2; A) 0 B) 1 C) true D) false 24. 下面数据结构中,属于非线性的是( )。 A) 线性表 B) 树 C) 队列 D) 堆栈 25. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( )。 A) j=i; B) j=(long)i; C) i=(int)j; D) i=j; 26. 现有一整型数组a[4],它的所有数组元素是( )。 A) a0, a1, a2, a3 B) a[0], a[1], a[2], a[3] C) a[1], a[2], a[2], a[4] D) a[0], a[1], a[2], a[3], a[4] 27. 定义 Java Applet程序时,必须有的 import语句是( )。 A) import java.applet.Applet; B) import java.io.*; C) import java.awt.event; D) import java.lang.*; 28.现有两个类A、B,以下描述中表示B继承自A的是( )。 A) class A extends B B) class B implements A C) class A implements B D) class B extends A 29. 下列算法中,不能用来排序的算法是( )。 A) 冒泡法 B) 插入排序 C) 选择排序 D) 对分法 30. 堆栈操作的原则是( )。 A) 先进先出 B) 后进先出 C) 只能进 D) 只能出 二、
填空
题(每空1分,共15分) 请将正确答案填写在答题纸相应位置上,答在试卷上不得分。 1. 构造
函数
______有返回值。 2. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 __________两种具体类型。 3. 创建类对象的运算符是___________。 4. 当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是_____________ 。 5. 在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__________。 6. 定义类就是定义一种抽象的____________,它是所有具有一定共性的对象的抽象描述。 7. 在Java语言中,使用_____、______等技术,实现软件重用。 8. Java的复合数据类型有 : 类、数组和_______等。 9. 表达式3/6 * 5的计算结果是________ 。 10.定义初值为10的10
次方
的长整型变量 lvar 的语句是:__________________________。 11. 顺序结构、分支结构(或称选择结构)、____________是结构化程序设计的三种基本流程控制结构。 12. 以下方法 m 的功能是
求
两参数之积的整数部分。 int m ( float x, float y ) { __________________; } 13. Java 源程序文件编译后产生的文件称为________文件,其扩展名为 ___________ 。 三、判断题( 每小题1分,共15分 ) 下列各题中,你认为正确的就在其题干后的括号内打"√",错误的打"×"。 1.Java 和 c++都是面向对象的程序设计语言。( ) 2.字符串 "\'a\'" 的长度是5。( ) 3. 同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。( ) 4. 一个类的定义包括定义类头和定义类体两个部分。( ) 5.一个程序里可以有多个父类,也可以有多个主类。( ) 6. 一个子类可以重新定义从父类那里继承来的同名方法,而且允许它们有不同的返回值。( ) 7.抽象方法只能存在于抽象类中。( ) 8. 在父类中声明为 final 的方法,也可以在其子类中被重新定义(覆盖)。( ) 9. 接口中所有方法均为抽象方法。( ) 10. False 是合法的 Java 标识符。( ) 11. 子类的类成员变量不能与其父类的类成员变量同名。( ) 12. static 变量不能是 private 变量。( ) 13. 保留字 this 代表当前对象。( ) 14. 类的构造
函数
名必须和类名相同。( ) 15. 子类的对象能直接向其父类对象赋值。( ) 四、程序
填空
( 每空2分,共20分 ) 阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。 1.下面是一个类的定义: public class ____________ { int x, y; Myclass ( int i, _______) // 构造
函数
{ x=i; y=j; } } 2.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 public void paint(Graphics ____ ) { int i=689; a.drawString ( ________+ i ,20,60); } 3.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*; public class MyClass { public static void main(String args[ ]) { if( args.length !=___) for(int i=0; i < args.length; i++) System.out.println(___________); else System.out.println("没有命令行参数"); } } 4.下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名: import java awt.*; import java applet.*; public class myprogram extends Applet//定义小程序的主类 { A a; B b; public ________ init( ) { a=new A( ); b=_____ B( ); } } 5.下面程序的功能是输出数组各元素的和。 import java.awt.Graphics; import java.applet.Applet; public class SumArray extends Applet { float[] a; a= new _______[6]; float sum=0.0f; public void init( ) { for ( int j = 0; j < a.length; j++ ) a[j] = j+1; for ( int i = 0 ; i < a.length; i++ ) sum+= a[i]; } public void paint( Graphics g ) { g.drawString( "Total of array elements: " + ________ , 25, 25 ); } } 五、简答题( 每1问2分,共20分 ) 阅读程序(或程序片段)并回答问题 。 1. import java.awt.*; import java.applet.*; public class Test51` extends Applet { float[ ] x = {1.2, 3.4, 5.6, 7.8}; public void paint(Graphics g) { int s=0; for( int i = 0; i < x.length; i++ ) s += (int)x[i]; g.drawString(" " + s, 30, 60); } } 问题: 1)程序的输出结果是什么? 2)方法paint()中的循环体 s += (int)x[i]; 能写为 s +=x[i]; 吗? 为什么? 2. public class Test52 { String str1="Hello, Java world! \t"; String str2="Hello, students! "; public static void main(String args[]) { System.out.print(str1); System.out.println(str2); } } 问题:1)这是哪种形式的 Java 程序 ? 2)程序的输出是什么?输出的结果在 Applet 窗口中吗? 3. 设ch1, ch2是 char 型变量: if ( ch1 == ‘a' ) { if ( ch2 == ‘b' ) System.out.print(" ch1=\'a\' , ch2=\'b\' "); } else System.out.print(" ch1!=\'a\' "); System.out.println(" end "); 问题: 1)若执行前 ch1 的值为 ‘a', ch2 的值为 'c' 该程序段输出是什么? 2)若执行前 ch1 的值为 'w', ch2 的值为 'b' 该程序段输出是什么? 3)若执行前 ch1 的值为 'a', ch2 的值为 'b' 该程序段输出是什么? 4.有如下源程序: import java.awt.*; import java.applet.*; public class Test54 extends Applet { B b; public void init( ) { b=new B( 'f', 87.6f, 69.1f); } public void paint(Graphics g) { g.drawString("序号 "+"性别 "+"成绩1 " +"成绩2 ",20,50); b.Print(g); } } class A { static int n=100; char ch; A( ) { n++; } A( char c){ this( ); ch=c; } void Print(Graphics g) { g.drawString(" "+n+" "+ch,20,70); } } class B extends A { float s1, s2; B(float r1,float r2){ s1=r1; s2=r2; } B( char c, float r1, float r2) { super(c); s1=r1; s2=r2; } void Print(Graphics g) { super.Print(g); g.drawString(" "+s1+" "+s2,40,70); } } 问题: 该程序的输出是什么? 5.已知菲波那契数列的数学表达式为: fibonacci(n)=n, n=0,1; fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2; 设 m 是 long 型变量,下面是用递归算法
求
菲波那契数列的方法: long fibonacci(long n) { if(n==0||n==1) return n; else return (fibonacci(n-1)+fibonacci(n-2)); } 问题: 当语句 m=fibonacci(3); 执行时,方法 fibonacci( )被调用了几次? 6. 下面是一个排序的程序: import java.io.*; public class Test56_Sort { public static void main(String args[ ]) { int[] a={42,99,5,63,95,36,2,69,200,96}; System.out.println("排序前的数据序列:"); ShowArray(a); Sort(a); System.out.println("排序后的数据序列:"); ShowArray(a); } public static void Sort(int[] x) { int w; for(int i=1; i
x[j+1]) { w=x[j]; x[j]=x[j+1]; x[j+1]=w; } /* if(i==1||i==2) ShowArray(x); if(i==2) break; */ } } public static void ShowArray(int b[]) { for(int i=0; i
PHP核心技术 基础强化课
PHP 是动态网站制作使用率最高的一门编程语言,全球近 20 亿的网站中,有约 80% 的网页使用 PHP 来开发的。本课程将讲解 PHP 运行环境的安装与配置,PHP 的基本语法,包括语言标记,变量声明,变量类型,类型转换,运算符,
函数
声明等等。课程重点:
函数
。
函数
是编程语言中最常见的特性,但是也是新手最难理解的一个知识点,故
函数
一定要认真听课哦!!
C语言
求
x的y
次方
,fun
函数
实现x的y
次方
的计算,main
函数
中调用fun
函数
void main() { //定义fun
函数
double fun(int x, int y); int x, y; double z; printf("请分别输入x,y的值:"); scanf("%d %d",&x,&y); z = fun(x,y); //调用
函数
printf("%d的%d
次方
= %lf\n",x,y,z); } double fu...
(C)定义一个
函数
,
求
x的y
次方
,主
函数
接受键盘输入——
函数
调用
函数
调用
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章