网站开发的特点,企业网站开发成本,wordpress菜单绑定模板,免费ppt模版网站C语言 | 问题20230225 文章目录C语言 | 问题202302251.问题1无限循环2.问题2C 中的运算符优先级实例1#xff1a;1.问题1 Which slice of the following code is NOT endless loop? 以下代码的哪一部分不是无限循环#xff1f; A for (;(cgetchar())!\n; ) printf(*c202302251.问题1无限循环2.问题2C 中的运算符优先级实例11.问题1 Which slice of the following code is NOT endless loop? 以下代码的哪一部分不是无限循环 A for (;(cgetchar())!\n; ) printf(*c,c); B for(;;x1 ); C while(x1){ x;} D for(i10;;i--) sum i; A选项运行时不输入换行就会一直在循环 B是死循环 C是死循环 D是死循环 getchar用来从标准输入设备中读取一个字符。然后将该字符从unsigned char 转换成 int 后返回。 getchar会返回读取到的字符若返回 EOF 则表示有错误发生。 C for 循环https://www.runoob.com/cprogramming/c-for-loop.html C 语言中 for 循环的语法 for ( init; condition; increment )
{
statement(s);
}下面是 for 循环的控制流 init 会首先被执行且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句只要有一个分号出现即可。接下来会判断 condition。如果为真则执行循环主体。如果为假则不执行循环主体且控制流会跳转到紧接着 for 循环的下一条语句。在执行完 for 循环主体后控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空只要在条件后有一个分号出现即可。条件再次被判断。如果为真则执行循环这个过程会不断重复循环主体然后增加步值再然后重新判断条件。在条件变为假时for 循环终止。 无限循环 如果条件永远不为假则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的您可以将某些条件表达式留空来构成一个无限循环。 #include stdio.hint main ()
{for( ; ; ){printf(该循环会永远执行下去\n);}return 0;
}当条件表达式不存在时它被假设为真。您也可以设置一个初始值和增量表达式但是一般情况下C 程序员偏向于使用 for(;;) 结构来表示一个无限循环。 **注意**您可以按 Ctrl C 键终止一个无限循环。 2.问题2
#include stdio.hint main(void)
{int C;int a,b;a 5;b 7;C a b;printf(a: %d, b: %d, C: %d\n, a,b,C);
}运行结果 PS D:\05_study\mark-down-doc\02-cStudy\source make 01-test
gcc -o 01-test 01-test.c -g -Wall
PS D:\05_study\mark-down-doc\02-cStudy\source .\01-test.exe
a: 6, b: 7, C: 12C 运算符:https://www.runoob.com/cprogramming/c-operators.html C 中的运算符优先级 运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级例如乘除运算符具有比加减运算符更高的优先级。 例如 x 7 3 * 2在这里x 被赋值为 13而不是 20因为运算符 * 具有比 更高的优先级所以首先计算乘法 3*2然后再加上 7。 下表将按运算符优先级从高到低列出各个运算符具有较高优先级的运算符出现在表格的上面具有较低优先级的运算符出现在表格的下面。在表达式中较高优先级的运算符会优先被计算。 类别运算符结合性后缀() [] - . - -从左到右一元 - ! ~ - - (type)* sizeof从右到左乘除* / %从左到右加减 -从左到右移位 从左到右关系 从左到右相等 !从左到右位与 AND从左到右位异或 XOR^从左到右位或 OR|从左到右逻辑与 AND从左到右逻辑或 OR||从左到右条件?:从右到左赋值 - * / % ^ |从右到左逗号,从左到右
实例1
#include stdio.hint main()
{int a 21;int b 10;int c ;c a b;printf(Line 1 - c 的值是 %d\n, c );c a - b;printf(Line 2 - c 的值是 %d\n, c );c a * b;printf(Line 3 - c 的值是 %d\n, c );c a / b;printf(Line 4 - c 的值是 %d\n, c );c a % b;printf(Line 5 - c 的值是 %d\n, c );c a; // 赋值后再加 1 c 为 21a 为 22printf(Line 6 - c 的值是 %d\n, c );c a--; // 赋值后再减 1 c 为 22 a 为 21printf(Line 7 - c 的值是 %d\n, c );
}运行
PS D:\05_study\mark-down-doc\02-cStudy\source make 01-test
gcc -o 01-test 01-test.c -g -Wall
PS D:\05_study\mark-down-doc\02-cStudy\source .\01-test.exe
Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22