【C语言程序设计知识点】
1. 变量命名规则:在C语言中,标识符可以作为变量名,但必须遵循一定的规则。标识符可以由字母、数字和下划线组成,且不能以数字开头。因此,选项D) _abc, INT, abcd 是合法的变量名,其他选项包含不合法字符或格式,例如`struct`是关键字,不能用作变量名,`2A`以数字开头,`ELSE`和`INT`是大写,而C语言的关键词通常小写。
2. ASCII码:ASCII码是字符编码的标准,它将字符与整数关联。小写字母'a'的ASCII码值是97,大写字母'A'的ASCII码值是65。要输出大写字母'B',可以通过加上1得到,或者从小写字母'b'减去32(因为'a'到'B'相差32个位置)。所以,选项A) `putchar('A'+1);` 和 B) `putchar('b'-32);` 都是正确的,但选项D) `putchar(B);` 错误,因为B在这里被视为未声明的变量。
3. 字符串常量与表达式:在C语言中,字符串常量如"aacbb242"需要使用双引号包围。表达式中计算字符串常量的顺序要遵循运算符的优先级。选项A) 和D) 在除法操作前有括号,但除法的优先级高于乘法,所以它们不正确。正确的表达式是B) `-b+sqrt(b*b-4*a*c)/(2*a)`,它遵循数学公式来解二次方程。
4. 运算符优先级与类型转换:C语言中的运算符有特定的优先级, `%`取模运算符优先于`*`和`/`。在浮点数运算中,整数会被自动转换为浮点数。因此,`x=1+1%3*5/2`的结果取决于浮点数运算的规则,不是整数除法。由于1%3等于1,最终表达式变为`x=1+1*5/2`,这将计算为`3.5`,所以答案是C) `3.500000`。
5. 进制转换与输出:在C语言中,使用前导0表示八进制数,例如`027`代表八进制数27。当打印整数时,它们默认按十进制输出。因此,变量`m`被初始化为八进制数27,即十进制的23。`printf("%d\n",m--)`会在打印后递减`m`,所以输出依然是23,答案是C) `23`。
6. 逻辑运算符:`&&`(逻辑与)和`|`(逻辑或)是C语言的逻辑运算符。`&&`具有短路特性,如果左侧表达式为假,右侧不会被计算。`|`则没有短路特性。表达式`c && a | b`中,`c`为真,`a | b`相当于`1 | 1`,结果为1,所以整个表达式的结果是1,答案是B) `1`。
7. 自增自减运算:自增`++`和自减`--`运算符在变量前或后的使用会影响结果。在这个例子中,`x+=x%= (-6)+4;`首先计算`x%= (-6)+4`,这会使得`x`等于-2,然后`x`增加`x`的值,所以`x`最后等于0,答案是A) `0`。
8. 三目运算符:三目运算符`? :`在C语言中用于条件判断。如果表达式`(a>b)`为真,那么`z=c`的值会被赋给`z`,否则`z=d`的值会被赋给`z`。因为`a=1`, `b=2`, 所以`a>b`为假,`z`将被赋值为`d`的值,即4,答案是C) `4`。
9. 条件判断与自增自减:`if (a++ > 5)`会先检查`a`是否大于5,然后自增`a`。初始`a=5`,检查后变为6,所以条件为假,执行`else`部分,`a--`后`a`变成5,`printf`输出`a--`后的值5,答案是C) `5`。
10. 字符输入与计数:此程序段统计输入的字符中"A"、"B"、"D"以及所有其他字符的次数。输入"AaBbDd"后,计数器`s`会增加6次,因为有2个"A",1个"B",1个"D"和2个其他字符,答案是A) `6`。
11. `for`循环与`continue`:`for`循环中,如果`i%2`为真,`continue`会跳过本次循环的剩余部分并进入下一次迭代。由于只有偶数`i`不被跳过,`s`只累加偶数,因此当`i`从1到10时,累加的是2, 4, 6, 8, 10,结果是30,答案是A) `30`。
12. `do-while`循环与条件判断:`do-while`循环至少会执行一次,即使条件为假。`i`初始化为26,`i%8`的结果是2,因此第一次循环输出2。之后`i`更新为13,`i%8`为5,循环结束,所以输出结果是2,答案是C) `2`。
13. `while`循环与条件判断:`while (k=0) k--;`中,`k=0`是赋值操作,而不是比较,因此`k`被赋值为0,然后立即减1变为-1,循环条件不再满足,循环不会执行,答案是C) `一次也不执行`。
14. 二维数组定义:在C语言中,二维数组的定义需要指定每一维的大小。选项B) `int a[][4];`定义了一个未指定第一维长度,第二维长度为4的二维数组,是正确的定义方式。
15. 字符数组与转义序列:在C语言中,字符串常量可以包含转义序列,例如`\t`代表制表符,`\b`代表退格符,`\n`代表换行符,`\061`是八进制数表示的字符。因此,`str[]="a\tb\\c\061";`创建了一个包含这些特殊字符的字符串。
以上就是试卷中涉及的C语言程序设计的相关知识点,包括变量命名、ASCII码、表达式计算、逻辑运算符、自增自减、三目运算符、条件判断、循环结构、字符输入处理、数组定义和字符串常量等。