c语言字符变量表达式6,6.14若变量已正确定义,在执行以下while语句时,输入字符A后,ch的值是:while(ch=getchar()=='A');6.4C语言中,下列不合法的字符常量是A'\x...

7d14a2b81882cfe4494b096a84150b2a.png 优质解答

第一题:while中的条件表达是ch=getchar()=='A',按照运算符优先级先做getchar()=='A',输入字符'A'时表达式的值为真,也就是1,再做ch=1,ch得到时值为1,同时表达式1,继续循环,继续计算条件ch=getchar()=='A',接下来应是回车键,getchar()=='A',结果为假,也就是0,ch=0,同时表达式为0,循环结束,所以最终ch的值为0,注意这题无论如何输入,循环结束后ch都为0.

第二题:考的是转义字符,注意转义字符有三种,一种\号后跟一个字母,转义为一个其它字符,一种是\后跟0再跟1到3位的八进制数,转义为此八进制数ASCII码所代表的字符,一种是\后跟x再跟1到2位的十六进制数,转义为此十六进制数ASCII码所代表的字符,D选项应属于第二种情况,但0后跟的应是八进制数,但28是非法的八进制数(所用的数码应是0——7).

第三题:此题的while条件表达式为(c=getchar())!='\n',括号优先级高,先执行c=getchar()(将输入的字符赋给c),再判断c的值是不是!='\n',不等于'\n'继续,否则结束循环,(注意用getchar()输入的是字符)第一个输入'2',执行循环体内语句,switch('2'-'2'),从case 0入口,putchar('2'+4)(输出字符6),putchar('2'+4)(输出字符6),break结束switch语句,继续执行下一次循环.以后具体执行情况不再分析了,请自己分析.

### 回答1: 这是因为while语句后面的分号导致循环体为空,所以i的无法更新,始终满足i<=10的条件,导致陷入死循环。应该将分号去掉,改为如下形式: i = 1; while (i <= 10) { i++; } ### 回答2: 这段while语句将会造成死循环,因为条件判断变量i是一直小于等于10的,不会出现i大于10的情况,因此条件判断始终为真。而循环内部没有对变量i做任何修改,导致循环一直无法跳出,一直重复执行,直到程序强制终止。 为了避免这种情况发生,应该在循环内部对计数器变量i做出修改,使其增大或者减小,从而在一定条件下跳出循环。比如可以在循环体使用i++或者i--等操作,控制循环次数达到预期的目的。 除此之外,可以结合条件判断语句使用,当满足一定条件跳出循环。而条件判断语句的条件应该是会发生变化,否则也会出现死循环的情况。 总之,避免死循环的方法是在循环体对计数器变量进行修改,并且结合条件判断语句来控制循环次数。如果程序仍然陷入死循环,可以考虑增加输出语句或者调试工具,帮助定位问题。 ### 回答3: 首先,我们来看一下这段代码的语法结构: i = 1; // 定义变量i的初始为1 while (i <= 10) ; // 当i小于等于10执行下面的语句 i ; // 循环体,每次循环i都不变,不会出现i自增等操作 在这段代码,我们可以发现while语句后面的分号“;”使得while语句成为空语句,即没有任何实际的执行内容。由于while语句的判断条件永远为真(即i<=10总是成立),因此程序会一直执行while语句,导致程序陷入死循环,并且i变量不会发生变化,随着每次循环的进行,计算机的硬件资源也会被消耗殆尽,导致程序无法正常执行下去。 这种情况称为“死循环”,是程序设计常见的一种错误。为了避免死循环的发生,我们需要在while语句添加合适的循环体,这样才能让程序按预期运行。 例如,我们可以将while语句的循环体修改为i++,这样每次循环i都会自增1,直到i的大于10才会跳出循环,代码如下: i = 1; while (i <= 10) { i++; // 每次循环i自增1 } // 此i的为11,循环结束 这样就可以避免陷入死循环的问题,让程序按照预期执行。在编写程序,我们需要仔细检查每一行代码的语法结构和逻辑,避免出现死循环等错误,确保程序的正确性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值