5. 分析下面的代码: int a=1,b=5; do { b*=a;++a; --b; while(b<0); } 执行上面的程序后,b的值为( ) A.5 B.4 C.8 D.其他
时间: 2023-08-06 15:09:38 浏览: 85
该代码中的do-while循环缺少右括号,应该为:
```
int a=1, b=5;
do {
b *= a;
++a;
--b;
} while (b < 0);
```
由于b初始值为5,每次执行循环时b都会乘以a,a每次加1,b每次减去1,直到b小于0为止。因为a从1开始不断加1,所以b乘以a的结果会越来越大,直到超过5才会小于0。因此最终b的值为4,选项B。
相关问题
若运行以下程序时,从键盘输入 ADesci tor<CR>(<CR> 表示回车),则程序的运行结果是 #include<stdio.h> void main() char C; int v0=0.v1=0.T2=0: do I switch (c-getchar)) { case "a': case 'A': case e": case 'E: case "': case T': case 'O'; case 'O': case ui': case'(: vl+=1: default: vO+=1: v2+=1: } while (c! 'n'): printf("v0=%d,v1=%d,v2-%din",vO,v1,v2); A. vO-7.v1=4,12-7 B. v0-8,v1=4,v2-8 YO-ILv-A,v2-11 D.v0=12,v1=4.v2=12
根据给出的代码,程序运行时会接收字符输入,并根据输入的字符执行同的操作。根据输入的字符不同,v0、v1、v2 的值会发生变化。以下是对程序的解析:
1. 根据代码,变量 C 应该是 char 类型,但是声明语句 `char C;` 缺少分号,应该改为 `char C;`。
2. 变量声明语句 `int v0=0.v1=0.T2=0:` 是错误的,应该使用逗号来分隔不同的变量声明,正确的写法应该是 `int v0=0, v1=0, v2=0;`。
3. `do` 和 `I` 是无效的语句,应该删除。
4. `switch` 语句中的 `c-getchar` 应该改为 `c-getchar()`,表示获取一个字符输入。
5. `case "': case T':` 中的双引号应该是单引号,即改为 `case ': case T':`。
6. `case ui': case'(: vl+=1:` 中的 `ui` 应该是 `u`,即改为 `case 'u': case '(': v1+=1;`。
7. `default: vO+=1:` 中的 `vO` 应该是 `v0`,即改为 `default: v0+=1;`。
综上所述,修正后的代码如下:
```c
#include<stdio.h>
void main()
{
char c;
int v0=0, v1=0, v2=0;
do
{
c = getchar();
switch (c)
{
case 'a': case 'A':
case 'e': case 'E':
case 'i': case '(':
v1 += 1;
break;
case 'o': case 'O':
v2 += 1;
break;
default:
v0 += 1;
break;
}
} while (c != 'n');
printf("v0=%d, v1=%d, v2=%d\n", v0, v1, v2);
}
```
根据修正后的代码,如果从键盘输入 ADesci tor<CR>,则程序的运行结果是 v0=7, v1=4, v2=12。因此,正确答案应该是 D. v0=7, v1=4, v2=12。
int a=1,b=9;do{ b=b-a; a++;}while(b>0);
执行完这段代码后,变量a的值为4,变量b的值为0。
代码的执行过程如下:
1. 变量a被初始化为1,变量b被初始化为9。
2. 进入do-while循环,先执行循环体内的语句。b被赋值为b-a,即b=9-1=8;a被增加1,即a=2。
3. 执行完循环体内的语句后,检查循环条件b>0是否满足,由于b仍然大于0,因此继续执行循环。
4. 再次执行循环体内的语句。b被赋值为b-a,即b=8-2=6;a被增加1,即a=3。
5. 继续检查循环条件b>0是否满足,由于b仍然大于0,因此继续执行循环。
6. 第三次执行循环体内的语句。b被赋值为b-a,即b=6-3=3;a被增加1,即a=4。
7. 继续检查循环条件b>0是否满足,由于b仍然大于0,因此继续执行循环。
8. 第四次执行循环体内的语句。b被赋值为b-a,即b=3-4=-1;a被增加1,即a=5。
9. 再次检查循环条件b>0是否满足,由于b小于等于0,因此跳出循环。
因此,执行完这段代码后,变量a的值为4,变量b的值为0。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)