首页 > 编程知识 正文

求解数学表达式c语言,c语言编程数学表达式

时间:2023-05-04 15:21:25 阅读:285543 作者:3609

满意答案

lengwei241

2013.03.25

采纳率:43%    等级:13

已帮助:11778人

18

与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是

3*x^n/(2*x-1)

3*x**n/(2*x-1)

3*pow(x,n)*(1/(2*x-1))

3*pow(n,x)/(2*x-1)

答案是3*pow(x,n)*(1/(2*x-1))

为什么

解答:其中pow(x,n)为C语言的库函数,其头文件为“stdio.h”,其作用为:求x的n次方。

第一种和第二种答案不符合C语言的语法规则。

第四种pow(n,x)求的是n的x次方。

19

设有定义:long x=-123456L;, 则以下能够正确输出变量x的语句是

printf("x=%dn")

printf("x=%ldn")

printf("x=%8dLn")

printf("x=%LDn")

答案是printf("x=%ldn")

为什么

解答:因为x为长整型变量,所以长整型变量的输出格式字符是%ld。

第一种输出的是整型变量。

第三种输出一个占8列的整型变量,然后输出字母L

第四种错误在于C语言是大小写敏感的语言,输出格式应该用小写字母,而不应该用大写字母。

20

main() {int k=2,i=2,m; m=(k+=i*=k); printf("%d,%d,n",m,i);}

输出结果是:6,4

为什么

解答:赋值运算符的结合性是自右向左的,所以赋值表达式

m=(k+=i*=k); 的计算顺序是,赋值表达式的值等于赋值号左边变量的值。因此该表达式的计算顺序为:先计算右边的表达式i*=k,等价于i=i*k,运算以后i的值变为4,同时表达式i*=k的值为4;然后计算表达式k+=i*=k的值,其中i*=k的值为4,所以该式等价于k+=4,运算以后k的值变为6,整个表达式的值也为6 ,最后计算表达式m=(k+=i*=k); 因为表达式(k+=i*=k)的值为6,所以m的值为6,因此输出结果为6,4。

21

int x=3,y=4,z=5

!(x+y)+z-l&&y+z/2

结果是1

为什么

解答:该表达式的运算顺序为(!(x+y)+z-l)&&(y+z/2)即:先计算(x+y)的值,结果为7,然后对其取非结果为假(即为0)然后计算0+z-1结果为4(非0,所以为真),然后计算(y+z/2)结果为6(非0,所以为真)两个真值进行“与运算”,结果为真(即1)。在C语言中没有布尔型的变量,真用1表示,假用0表示。

23

与k=n++完全等价的表达式是

k=n, n=n+1

n=n+1,k=n

k=++n

k+=n+1

答案是k=n, n=n+1

解答:n++为后缀表达式,后缀表达式的值为变量加1之前的值,并且自增运算符有副作用,即经过运算后变量的值发生变化,经行加1运算。

因此整个表达式的等价于:k=n(变量加1之前的值),n=n+1(变量自身进行加1运算)

这就是我对以上题目的理解,希望对你有帮助。

40分享举报

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。