全国计算机二级C语言真题(全国计算机二级c语言考试真题)

公冶凡龙
导读 大家好,乐天来为大家解答以下的问题,关于全国计算机二级C语言真题,全国计算机二级c语言考试真题这个很多人还不知道,现在让我们一起来看看

大家好,乐天来为大家解答以下的问题,关于全国计算机二级C语言真题,全国计算机二级c语言考试真题这个很多人还不知道,现在让我们一起来看看吧!

1、这个主要考察变量的作用域对于inta=1这句中的a作用域是最大的,是整个.c文件,首先要明白,当这个a的作用域中的其他地方出现同名变量定义时,这个作用域比较大的变量失效,也就是说在一个小的作用域中要使用出现在这个作用域中的那个同名变量。

2、这个用语言很难表达清楚,看下面的解释应该能明白的。

3、对于f函数中定义的静态inta,它的作用域是f函数,在f函数中出现a时都是使用这个变量,方便区别,我们称它为a1而对于main函数中出现在for循环中的a,它的作用域是for循环,也就是说在这个for循环中使用到的a都是这个变量。

4、方便起见,我们称它为a2首先,从main函数开始执行,进入for语句,i=0;第一次的for循环相当于:inta2=3;k+=f(3);此时进入函数f,在函数f中,c=3,这里函数f的执行相当于:a1=2;c=4;return(2++)+4这里2++返回2,所以整体返回6,也就是k=6;返回之后a1变成3再次进入for循环,i=1;第二次的for循环相当于:inta2=3;k+=f(3);此时再次进入函数f,在函数f中,c=3,由于函数f中定义的a1是一个静态变量,所以在上次f中修改的a1的值这次进入时仍然保持为修改过后的值,而不会像非静态变量一样在上次离开函数f后丢失,再次进入时重新分配成原始值。

5、第二次f函数相当于:a1=3;c=4;return(3++)+4返回7;这时k变成是7+6=13再次进入循环,i=2,不符合循环条件,循环结束最后执行k+=a,这里才会用到作用范围最大的inta=1的这个变量所以最后的结果是14。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!