C语言习题问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 00:41:46
A 下列程序执行时()
x=-1;
do
{
x=x*x;}
while(!x);
A循环体将执行一次 B将执行两次。
答案是a。但是。(!x)代表什么意思。如果(!x)为假,那么x此时的值是不是x=-1?为什么?
B 执行语句,for (i=1;i++<4;);
后,变量i的值是()
A 4 B 5 。
为什么不选A。这个结构(i=1;i++<4;);结构该怎样解读,如果用(i=1;i<4;i++)来解读的话,i的值不应该是4?》为什么会是5?解释。。
C 下面执行后,变量b与k得值为()
int i,b,k=0;
for (i=1;i<=5;i++)
{ b=i%2;
while (b-->=0)
k++;
}
printf("%d,%d",k,b);
}
这样的表达式该怎样解读。?为什么我算出k=5,b=1?为什么答案会出现-1?在此while是属于哪个区间的?
D 下列输出判断中,正确的是()
char x='\xeo';
printf("%d",x);
A 输出值为-32
字符x='\xeo'表示的是什么?是8.或16进制?
E 理解问题。
输入三个数,要求按从小到达的顺序输出
怎样理解以下的要求编程?引入t来进行怎样的调节,是怎么调节的 ?
if (a>b) { t=a;a=b;b=t}/当a大于b时,交换a与b值。
if(a>c) { t=a;a=c;c=t;}/*当a>c时,交换a和c得值
if(b>c) {t=b;b=c;c=t}/*当b>c时,交换b和c得值。
F
如何理解数组定义时的
“数组定义不能用如a[i]形式,但是引用某个数组的元素时,可以使用。”
G 关于C语言编程的错

1.x=-1 接着直接进循环,进来就做x=x*x 那么x=1 而!x是对x取非 对于C语言来说 0为假 非0为真 于是!1=0 所以退出循环
2.for的执行顺序是这样的 先执行i=1 再判断i++<4
这里是i++ 先用i 再++ 于是呢 当i=4时 判断i<4 结果错误 退出循环 退出后再加一
3.结果是k=8 b=-2 while是属于k++;
整个运行过程如下
当i=1执行完当此循环后,k=2,b=-2
当i=2执行完当此循环后,k=3,b=-2
当i=3执行完当此循环后,k=5,b=-2
当i=4执行完当此循环后,k=6,b=-2
当i=5执行完当此循环后,k=8,b=-2
可见当i是奇数时 k会加2 偶数k加一
while的条件是b--<=0 所以会出现b=-2
因为当b=1时 进去判断 先用1去比较 比较完无论什么结果 b都会减一变为0
接着0去比较还是符合条件 然后0减一变为-1
接着-1进去比较 不符合条件 退出 然后还是减一 所以就是-2(b--<=0先用b去比较 比较完就减一 而--b<=0 那就是先b减一 再去比较 Understand)
4.
if (a>b) { t=a;a=b;b=t}/当a大于b时,交换a与b值。
做完这一句a一定大于等于b
if(a>c) { t=a;a=c;c=t;}/*当a>c时,交换a和c得值
做完这一句 a一定大于等于b 大于等于c 即最大
if(b>c) {t=b;b=c;c=t}/*当b>c时,交换b和c得值。
做完这一句 b一定大于等于c
t是个中间变量 t=a;a=b;b=t t=a是为了后面的 a=b做准备 先备份a的值 做a=b时便不会丢失a的原值
5.你大概是说定义时 int array[5];这样写 但是待会调用不能调 a[5]是吧
因为定义时a[i] i是表示数组元素的个数的 而引用的a[5]是指 下标为5的元素 没有 因为下标从0-4

最后 主要是你缺少最后一