冲刺必看!名师讲解二级C真题之填空题
技术与开发
选择题全部点评完了,本期就开始点评试卷的第二部分——填空题。下面展示了五道有代表性的填空题的解析,而其他填空题的解析请到http://www.cpcw.com/bzsoft下载。
第4题:对下列二杈树进行中序遍历的结果为。
本题难度:较难
涉及知识:二杈树的遍历
专家解析:遍历是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。分三种类型:中序遍历、前序遍历和后序遍历。1.中序(左→根→右)遍历算法定义:(1)遍历左子树;(2)访问根结点;(3)遍历右子树。2.前序(根→左→右)遍历的算法定义:(1) 访问根结点;(2) 遍历左子树;(3) 遍历右子树。3.后序(左→右→根)遍历的算法定义:(1)遍历左子树;(2)遍历右子树;(3)访问根结点。此类题,每年必考,考生必须多做相关的复习题,才能牢固掌握。
第7题:以下程序的功能是输出a、b、c三个变量中的最小值,请填空。
#include
main()
{ int a,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1=a
t2=c printf("%d\n",t2); } 本题难度:中等 涉及知识:运算符的使用 专家解析:条件运算符是C语言中唯一的一个三目运算符,表达式1?表达式2:表达式3,求解顺序是先求解表达式1,如果为真则求解表达式2,如果为假则求解表达式3。此题中先把a、b的值作比较,把最小值送给变量t1,然后把t1和c的值作比较,把最小值送给变量t2。本题考察考生对条件运算符的基本使用方法的掌握,但考生需要注意的是条件运算符的比较方向为“自右至左”,如a>b?a:c>d?c:d,相当于a>b?a:(c>d?c:d)。 第10题:以下程序的输出结果是。 #include main() { int i; for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A'); printf("\n"); } 本题难度:中等 涉及知识:字符变量,for循环的表达式的使用 专家解析:for循环的一般形式为:for(表达式1;表达式2;表达式3)语句,先求解表达式1,再求解表达式2,如果为真则执行内嵌语句,执行后求解表达式3,为假则结束循环。此题中,第一次执行时,i的值为a,输出A,然后执行表达式3,连续加两次,i的值为c,求解表达式2为真,输出C,最后一次输出为E,因此答案是ACE。 第14题:执行以下程序的输出结果是。 #include main() {int i,n[4]={1}; for(i=1;i<=3;i++) {n[i]=n[i-1]*2+1; printf("%d",n[i]); } } 本题难度:中等 涉及知识:数组初始化、数组元素操作 专家解析:本题考核要点是数组初始化。程序中,对n数组进行了初始化,得到:n[0]=1,n[1]=0,n[2]=0,n[3]=0。通过for循环逐个计算,得到:n[1]=n[0]*2+1=3,n[2]=n[1]*2+1=7,n[3]=n[2]*2+1=15。 第15题:以下程序的输出结果是。 #include #define M 5 #define N M+M main() { int k; k=N*N*5; printf("%d\n",k); } 本题难度:难 涉及知识:宏表达式 专家解析:此题考核对宏定义的理解。在预处理过程中,宏表达式只进行“原样替换为相应的值/表达式”,不进行任何算术运算,也不添加()。题中,k=5+5*5+5*5=55。 第4题答案:ACBDFEHGP 第7题答案:a:b c:t1 第10题答案:ACE 第14题答案:3715 第15题答案:55