帮忙看几道C语言的期末题目~~谢谢!

Python08

帮忙看几道C语言的期末题目~~谢谢!,第1张

6.a[2*’n’],这里是字符'n',用作乘法运算就是取出‘n'的ASCII码值进行运算,也就是110,a[2*110]自然没错D)

z=(x+1)++-y,x+1运算结果作为

常量

保存在

暂存器

中,无法进行自增运算

14.

二维数组

内存

中其实是

一维数组

,比如int

a[3][3],然后a[0][0]就是第0个元素,a[2][2]就是第2*3+2=8个元素,而p只是一个int*,

编译器

压根就不知道p[i][i]应该是第i*1+i还是i*2+i或者i*n+i个元素,所以只能用p[i]一维数组的形式。

*p=a这里其实是int

*p

=

a相当于int

*p,

p

=

a在vs2010是直接报错的。

p++,p是int*类型,++就是移动一个int。

2.char只有8位,去掉一个符号位就剩下7位了,没法表示出130

7.数组并不以'\0'结束,但是字符串是以'\0'结束,所以要

占个位置

5.数组'\0'算长度,字符串'\0'不算长度。

第一题:float是分配4个单元的内存,double是分配8个单元的内存,需要从取值范围的角度来考虑(我忘了范围,你可以那本C语言的书看看),还有就是%f 对应的是float,%lf 对应的是double

第二题:nr=nr*10+n%10说的是将输入的数据(n)取其个位数 n/=10说的是去掉n的个位

如:第一次执行nr=nr*10+n%10后nr=0*10+4=4 执行n/=10后n=123

第二次执行nr=nr*10+n%10后nr=4*10+3=43 执行n/=10后n=12

第三次执行nr=nr*10+n%10后nr=43*10+2=432 执行n/=10后n=1

第四次执行nr=nr*10+n%10后nr=432*10+1=4321 执行n/=10后n=0(停止循环,输出4321)

这排版乱的 - -

第一题 如果a=0 那么a++ 如果x<y 那么++b否则把b的值改为2倍x 所以a=1 b=2

第二题 a从1到100做循环 每次循环+1 如果b超过20了 那么跳出循环 每逢b=(1,4,7,10,13,16,19,22.....)b加3

所以 b输出来应该是22 做了8次循环 所以a=8 b=22,

第三题没啥好说的 就是5个*

第四题定义了一个求最大值的函数 我先抢个最快回答再说...