C语言,第六题为什么是0

Python029

C语言,第六题为什么是0,第1张

一、先明确一件事,表达式中间的等于号(=)如果只有一个,则这个表达式是错误的,不会有任何“值”。这是因为,C语言中,“=”(等于号)只是一个“赋值号”,它的作用是把右边的值赋给左边的变量,要求左边必须是“变量名”!如:

a=6

b=a+m;

如果左边不是变量名,则会出现:3=4,53=a这样滑稽的语句。

本例中赋值号左边是一个数字,所以,语法错误的表达式不会有值。

二、如果表达式中间的等于号(=)有两个,则这个表达式是9/2*2 ==9*2/2,这个表达式是有意义的。这是因为,C语言中,“==”(双等于号)是一个判断相等的“逻辑运算符”,它的作用是比较前后表达式的值是否相等。如:

5==6前后不等,表达式的值是“逻辑假”,用0表示;

5==5,前后相等,表达式的值是“逻辑真”,用1表示。

三、(修改过的本例中)

9/2*2 ==9*2/2

4*2==18/2

8==9不成立,逻辑假,值为0。

若有不明白之处请留言。

数组索引都是从0开始,所以a[3][4]的范围是a[0][0]到a[2][3],D项a[0][4]明显不对。

A是a[1][2],B是a[1][3],C是a[2][0],这三个都在a[0][0]到a[2][3]之间,所以合法。

你后面有一个除号(/t*t),如果前面是2*t,整个表达式不是做除法,而是取结果的商,而结果的商就是一个整数,虽然你定义成double型,但是输出会是一个整型的数,所以必须是2.0*t,这样就变成小数除以整数的形式,得到的就是一个小数,也就是一个确切的值