单选题
1、〖第27题〗47) 执行下列语句后,a和b的值分别为()。 int a,b; a=1+'a'; b=2+7%-4-'A';
A
-63,-64
B
98,-60
C
1,-60
D
79,78
答案解析
正确答案:B
解析:
这道题考查的是 C 语言中字符常量与整数的运算、ASCII 码值以及运算符优先级和结合性的知识。
### 1. 基础知识准备
在 C 语言中,字符常量(如 `'a'` 和 `'A'`)在参与算术运算时,使用的是其对应的 **ASCII 码值**。
* 字符 `'a'` 的 ASCII 码值为 **97**。
* 字符 `'A'` 的 ASCII 码值为 **65**。
### 2. 逐步推导
#### 计算变量 `a` 的值
语句:`a = 1 + 'a';`
1. 将 `'a'` 替换为其 ASCII 码值 97。
2. 表达式变为:`a = 1 + 97`。
3. 计算结果:`a = 98`。
#### 计算变量 `b` 的值
语句:`b = 2 + 7 % -4 - 'A';`
这里涉及三个运算符:`+`(加法)、`%`(取模/求余)、`-`(减法)。
* **优先级**:`%` 的优先级高于 `+` 和 `-`。
* **结合性**:`+` 和 `-` 同级,从左到右结合。
**第一步:计算取模运算 `7 % -4`**
* 在 C 语言中,取模运算的结果符号跟随**被除数**(即左边的操作数)。
* $7 \div (-4) = -1$ ... 余 $3$。
* 或者理解为:$7 = (-4) \times (-1) + 3$。
* 所以,`7 % -4` 的结果是 **3**。
此时表达式变为:`b = 2 + 3 - 'A';`
**第二步:计算加法 `2 + 3`**
* `2 + 3` 的结果是 **5**。
此时表达式变为:`b = 5 - 'A';`
**第三步:计算减法 `5 - 'A'`**
* 将 `'A'` 替换为其 ASCII 码值 65。
* 表达式变为:`b = 5 - 65`。
* 计算结果:`b = -60`。
### 3. 最终结论
* `a` 的值为 **98**
* `b` 的值为 **-60**
对比选项:
A. -63, -64
B. 98, -60
C. 1, -60
D. 79, 78
故正确答案为 **B**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、第272题 (1.0分) 题号:702 对于基本类型相同的两个指针变量之间,不能进行的运算是()。
单选题
1、第271题 (1.0分) 题号:588 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。
单选题
1、第270题 (1.0分) 题号:109 C语言中,double类型数据占()。
单选题
1、第269题 (1.0分) 题号:153 在C语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式()。
单选题
1、第268题 (1.0分) 题号:726 fwrite函数的一般调用形式是()。
单选题
1、第267题 (1.0分) 题号:649 若有说明: int a[3][4]={0};则下面正确的叙述是()。
单选题
1、第266题 (1.0分) 题号:635 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
单选题
1、第265题 (1.0分) 题号:512 while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是()。
单选题
1、第264题 (1.0分) 题号:110 C语言中,char类型数据占()。
单选题
1、第263题 (1.0分) 题号:741 在C程序中,可把整型数以二进制形式存放到文件中的函数是()。
