c语言问题?

分别用地址法(通过数组名计算元素地址)、指针法改写程序,来实现对二维数组的访问和操作:
编写一个主程序,生成一个菜单界面,当输入1时,调用矩阵赋值函数,为5*5的矩阵赋初值;当输入2时,调用矩阵转置函数,对该矩阵进行转置操作;当输入3时,将该矩阵上三角所有元素值变成0;当输入4时,求该矩阵对角线所有元素的平均值;当输入5时,将该矩阵下对角线元素变成1,当输入0时,退出程序。

答案是b。。多维数组的元素是线性存储的。所以在内存中a数组是存放在一片连续的内存空间里。元素的顺序为:a[0][0]
a[0][1]
a[1][0]
a[1][1]
a[2][0]
a[2][1]
。c语言对数组下标越界不作检查,所以a[0][2]是合法的。它相当于a[0][1]的下一个元素。而a[0][1]在内存中的下一个元素其实是a[1][0]。所以a[0][2]=a[1][0]=1
3/2/1,结果是1啦。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-23
语言问题?
分别用地址法(通过数组名计算元素地址)、指针法改写程序,来实现对二维数组的访问和操作:编写一个主程序,生成一个菜单界面,当输入1时,调用矩阵赋值函数,为5*5的矩阵赋初值;当输入2时,调用矩阵转置函数,对该矩阵进行转置操作;当输入3时,将该矩阵上三角所有元素值变成0;当输入4时,求该矩阵对角线所有元素的平均值;当输入5时,将该矩阵下对角线元素变成1,当输入0时,退出程序。
展开
C(编程语言) 计算机 C/C++ 编程 编程语言
第2个回答  2020-05-27
编码格式确定的,负数是使用补码形式表示的。把正数转负数是按位取反再加1。
如1取反后是二进制的:1111
1111
1111
1110,
再加1就是:
1111
1111
1111
1111,即16进制的FFFF。
这种编码的好处就是:
1
+
(-1)
=
0;符合一般的计算结果。
第3个回答  2020-05-27
先算括号...
然后赋值运算是从右至左运算的...所以先算a+=(a+b),a的值变为15(且a+=(a+b)表达式的值也是15),然后算b+=a+=(a+b),由于a+=(a+b)表达式的值是15,所以就相当于b+=15,b的值就变为20,同理表达式b+=a+=(a+b)的值是20,最后算a%=b+=a+=(a+b),相当于a%=20,最后a的值变为15...
第4个回答  2020-05-23
答案是C
因为八进制数首先得是0~7之间的数字
并且由0开头
所以A,B不对
八进制的小数不可以用01.1表示,可以写为(1.1)Q或者(1.1)右下角标注8
而C
-077是八进制的负数表示
是对的O(∩_∩)O~
相似回答