"C语言练习题,涉及选择结构和循环结构"
C语言中的选择结构主要由`if`语句和`switch`语句构成,用于根据条件执行不同的代码块。以下是给定的部分练习题及其解析:
1. 在第一个程序中,由于`a`的值为200,`a>100`的条件成立,因此会执行`printf("%d\n",a>100);`,输出1。
2. 对于第二个程序,当`x=2`, `y=8`, `z=5`时,`if(x>z)`不成立,所以不会执行`y=x;x=z;z=y;`这段代码,输出值保持不变,即`x=2`, `y=8`, `z=5`。
3. 第三个程序中,`if(b)`的条件成立,因为`b`的值非零。接着判断`if(a)`,由于`a=3`,条件也成立,所以会输出`b`, `c`, `t`的值,即`4 5 99`。
4. 在第四个程序中,`c==a`的条件不成立,因此执行`else`后面的语句,输出`b`的值,即`2`。
5. 对于第五个程序,`a%b<1`的条件为假(因为`10 % 20 = 10`不小于1),但`a/b>1`的条件为真(因为`10 / 20 > 1`是整除,结果为0,0大于1为假),因此`c`的值为`1`。最后输出`10 20 1`。
6. 第六个程序包含嵌套的`switch`语句。外层`switch(x)`的`case 1:`被匹配,然后内层`switch(y)`的`case 0:`被执行,`a`加1。由于没有`break`跳出内层`switch`,会继续匹配外层的`case 2:`,导致`a`和`b`都加1。最终输出`2 1`。
7. 在第七个程序中,`if(!n)`检查`n`是否为零,`!0`是假,所以不执行`x-=1;`。`if(m)`的条件为真,执行`x-=2;`,之后`if(x)`的条件仍为真,执行`x-=3;`。最后`x`的值为`-5`。
8. 最后一个程序中,`(p/3>0?p/10`的表达式是一个三元运算符,意思是如果`p/3`大于0,则输出`p/10`的结果,否则输出`'\n'`。`p/3`为10,所以执行`p/10`,输出`3`。
这些题目涵盖了条件判断的基本用法,包括逻辑运算符、比较运算符以及三元运算符的运用。通过这些练习,可以帮助C语言初学者理解并熟练掌握选择结构的使用。