阅读以下C代码,回答问题1至问题3,将解答写入答题纸的对应栏内。
【C代码1】
#include<stdio.h>
int main()
{
int num = 5 ;
printf("%d\n",++num);
printf("%d\n",num++);
printf("%d\n",num--);
printf("%d\n",num);
return 0;
}
【问题1】(4分)
请给出C代码1运行后的输出结果。
【问题2】(6分)
已知字符'a’的ASCII码值为十进制数97,请给出调用C代码2中函数func('a')后的输出结果。
【问题3】(5分)
请给出调用C代码3中函数test()后的输出结果。
【问题1】
6
6
7
6
【问题2】
a:97
c:99
e:101
【问题3】
BCDEF
CDEF
DEF
EF
F
本题考查考生对C程序基本语句和控制结构的理解和应用。
C代码1主要考查前置自增(自减)和后置自增(自减)运算的含义。自增(自减)运算是C程序中频繁使用的运算,其含义是将变量的值增加1(减去1)。前置自增时,是将变量的值增加1,增1后变量的值作为表达式的值;后置自增时,是先取变量的值作为表达式的值,然后将变量的值增加1,自减运算同理。本代码段中,num的初始值为5,经过前置自增运算“++num”之后,num的值变为6,该表达式(++num)的值也是num自增后的值,即第一个printf输出6。对于表达式“num++”,是对num进行后置自增,该表达式的值取num自增之前的值(即6,即第二个printf输出6),而num的值变为7。接下来在printf中进行后置自减运算“num--”,此时表达式的运算结果是num自减之前的值(即7,即第三个printf输出7),而num的值会改变为6,因此第4个printf 输出6。
C代码2主要考查针对字符运算的单重循环控制。字符数据的内部表示是其编码, 例如字符'a'的ASCII码值为97,输出时的格式控制串为"%c:%d"时,要求以字符方式和十进制数值方式输出,因此可看到输出结果为a:97。字符集中对数字、字母的编码都是 连续的,因此ch表示字符'a'时,ch+2就表示字符'c',以此类推。
C代码3主要考查针对字符运算的双重循环控制。外层循环控制变量raw取值范围为0~5(等于5时结束循环),内层循环控制变量ch的取值范围为符‘B’+row~‘B’+5(等 于‘B’+5即‘G’时结束内层循环),如下表所示。