00:00
同学们,我们继续来看2014年的C语言二级笔试题,那么我们上面呢,讲到的第十题,我们看11题,第11题说计算机高级,我们这样看哈。他说,计算机高级语言程序的运行方法有编译执行和解释执行。什么叫编译执行呢?其实C语言就是编译执行,就是它先会生成这个可执行的文件。然后再执行,而解释执行呢,它是实际上可以对源码直接进行执行,比如像PHP。啊,解释这样的语言呢,我们称之为解释执行的语言,这些语言大家可能还没接触过啊,没接触过没有关系,你知道我们高级语言有这两种就可以了,那么下面呢,他说哪一个说法是正确的?第一个C语言仅可以以编译之性。这个答案是对的,C语言仅可以解释执行,这个不对,好,C语言既可以变异,又可以解释不对。以上说法都不对,也是不对的,所以这个分析我们就出来了。
01:04
分析就是什么呢,我们这个C语言。C语语言与语言哈,就是编译执行的。所以它是编译执行语言。那那这个就应该选什么呢?哎,就应该选这个A。对吧,同学们应该选A,而不能选别的。那我这再多说一句哈,哪些语言是呃,哪些语言。是解释执行的呢。解释执行的语语言有这么几个,像同学们知道像PHP语言是可以的,JS语言。对,像HTML语言也可以是解释执行好的,知道这个就可以了。12个以下说法正确,呃,错误的是C语言的可执行程序是由一系列的机器指令构成,这对的呀,没问题,用C语言编写的原程序不能直接在计算机上执行,肯定吗?刚才不是讲过吗?要编译成exe文件才可以执行C通过编译得到的二进制目标程序需要连接才可以,对的呀,我们以前不是讲过吗?他得到这个目标文件点obj。
02:18
然后呢,要跟我们的库。对不对,要跟这个库呢,进行这个连接,就link。Link完了过后得到ex文件,这个才能执行,所以CC这个说法也是正确的,那最后只能是D了,他说在没有安装C语言集成开发环境的机上,不能允许C源码生成的液体,这不对,因为我们这个开发环境只是用来做C语言开发的,而只要你你有这个C语言的运行环境就可以了,所说实话我们Windows都可以运行,所以说这个地方分析啊。分析,说什么呢?我们这个CC原程序生成的ex文件并不依赖于它,不依赖。不依赖,不依赖什么呢?这个开发环境,开发环境。
03:05
啊,只要说你有这个C相应的库就可以了啊,就是一般来说,一般说一般说什么呢?我们的Windows啊,Windows系统。系统都可以执行,都可以执行文件,你比如说你没有装C语言开发环境,是不是你下了像Windows那个安装文件,点exe你不是也可以执行的吗。那第12个我们说到第13个,以下选项不能作为C程序合法常量的有哪一个呢?这个A肯定不行,为什么A不行啊,它有个逗号啊,那哪能有逗号呢?说这个是不可以的。他说一。逗号123这个是不可以的,不可以,为什么呢?因为有一个逗号,这个是怎么可以呢?其他都OK,好其他都可以。其他都OK。那下面这个答案写一写哈,第二个题应该选的是什么呀?第二个题咱们答案应该是选D。
04:05
第第三个题答案就应该是选什么呢?OK,第三个答案选A。第14题以下选项中可以做C程序合法实数,实数就是小数了,那么我们来分析一下哪个可以呢?看第一个同学们第一个可不可以。第一个就可以,因为这个呀。我们知道小数点省略的话呢,是可以的,这个其实就就是什么呢,就相当于是0.110。就是什么呢?就是0.0.10.1乘以十的零次方。这当然可以了。就是十的零次方。是这样子吧,同学们,诶这个这怎么打不出来啊,四的零次方,这个这样子一个概念。当然是可以的了,这是OK的,第二个不行,3.0E的零,这不这是小数,怎么可以呢?咱们后面不能带小数是不是?哎,这个不可以带小数的,说这个不可以,然后呢,119,这显然更不可以,前面都没数啊。
05:10
前面小数都没有,你你谁跟谁,谁跟谁相乘呢,9.12这个倒是有了,后面一后面是不是没再说啊,所以说我们把这个错误给他说出来。分析分析啊,就是这个呢,这个0.2是错的。0.2没有听说过十的0.2次方吧,错误,你你你给我整个十的0.2次方出来。错误。好,再看这个了,这个1919前面没有实数啊啊没有小数,没有小数这个也不可以。然后再看这个可不可以呢?这个也不行,因为它后面E后面E后面没有整数后。没有一个整正整数啊,整数整数吧。整数,因为它也可能是小数哈,没有整数。
06:00
好了,15个题。他说定义了三个变量ABC,然后呢,他说错误的表达式是哪一个,先看第一个A可不可以啊,分析。首先第一个可不可以第一个直接就错了,为什么呢?因为三负给了B等于四,这是有问题的,B等于四这个就不是左值了。这就不是锁子了,所以说它是错的。错误,错误的原因。原因说一下原因,原因是B等于事后,这个是可以成立的,后就不是做事就。就不是坐子了。因为左子才可以接收我们的一个付,付过来的值B,这个可以看C加一完了过后付给这个BB是左子可以的,然后B的结果再付给AB,这是可以的。这个也可以一样的,C加上B等于四,这个就等于四,四相当于四加C付给A,这个也可以啊,这个是C付给了啊,四付给了C,再付给了B,那这个结果还是四,就一加四付给A,这都可以啊,其他都可以,其他都OK。
07:14
都OK,好,第16题我们看一下。他的第16个题呢,有这么一个串串,这是一个字符数组,这是个number,然后呢,它接收,注意它这是空格隔开的,也就是说当我们输一个数的时候呢,它是name等于匹配一个字符串,再打一个空格,后面就是number,那这样这样就很简单了哈,它就是name等于丽丽,然后呢,一个空格number等于,那这个太好了,那他说输出来这个name的值等于多少,那就是丽丽呀。所以这个结果呢,就应该等于A。好,这个就是A。啊,这个很简单,分析一下。分析。它的这个匹配输入的输入的这个格式和什么呢?和这个F是对等的。
08:05
格式写错了。格式。格式和这个对应。对应的,它是对应上的。因此呢,对,因此这个name其实就等于力。里最大小写的问题,所以这个结果呢,就应该等于几呢?等于呃,这个结果就是A。就是A,那上面15题这个结果也是A哈,写到这儿也是大写也是A。好,上面这个呢,14题好像也没写,14题的结果答案应该是选。A,好,都是一样。15题我看看啊。啊对,15题是A,十十五题十,16题是。A17题。啊,这这这几个都是A,确实都是A。12344个都是A号。
09:00
对的,没问题。好。我们再看第。17题他说if以及基本形式是这样子,他说表表达式呃的值正确的是,必须是逻辑值,那不一定对吧,必须是整数,那不一定呢,我我还是个负数也行啊,也不一定是正数,可以是任意合法的数字,因为对他来说非零为非零为真,零为假,非零为真就可以了,所以这个分析是这样子啊,只要满足。啊,就是这个条件,表达式只要满足是表达式表达式。哦,是任意任意合法数字。即可。即可,那么仍然他要遵守什么呢?遵守哎。遵守。遵守的是林为甲。零它为假,然后非零为真,非零为真的规则。好,这就是17题,18题,我们看一下18题呢,这个也比较简单,011,诶同学们看这个011是不是就是八进制啊,这个能看出来吗?分析出来哈,那这个011它就是八进制,我们讲过八进制吧,八进制,那这样子的011就应该等于第一个一就乘以八的多少次方啊。
10:20
是不是就就是零次方再加上一呃乘以乘以多少呢?八的二八的一次方。八的一次方。诶,这这个地方少了一个箭头,那整个这个结构就等于九。对,那九的话,你这个地方再加加X,这个是前加加看清楚没有。这个是钱佳佳哟,这个是佳佳,是钱佳佳。是钱加加,因此呢,这个结果咱们就出来了,就应该等于十啊结果。结果是什么呢?十、那也说这道题的答案。应该是几呢?应该是这个C上面这个题的答案。
11:05
应该是多少呢?应该是D,好的19题,我们看一下19题,这个题稍微有点麻烦,注意认真认真看啊。这是他的代码,这是他的代码,它的代码怎么来说的呢?他说呃,他是这样说的,他说已关,他说有个int s给他传了一第一个S传了第一个值进去,然后后面是while循环,While循环主主要是看是从哪从哪里开始,从哪里结束的,这开始到这结束啊,也就是说Switch语句被while while语句包包含起来的。好,那现在呢,我们就来看它输入的123450 123450,那么就一个看了。首先我们看,如果输的第一个是一。这个一肯定被在这个时看被解束也是到这个地方的时候呢,这这个S就等于一,这个能理解吗。好,那么一大于零成立,所以是一,那K11就成立,进到这里面去,进到这里面去,它百分号D就输出了。
12:07
这个时候就应该输出。呃,这个呃一加五,所以说这个应该输出一个六,现在就输出六了,看ABC第一个都是六分,分不出,分析不出来,注意看这里最关键的地方在哪里,大家看他这个case完了过后,后面后面没有break语句。就是这后面没有break语句,看懂了没有,哎,这个很重要啊,没有break语句,没有break语句就会穿透它,就会有一个穿透现象。那既然是穿透的话呢,它就会在这个集中马上再输出,这句话大家还记不记得,刚才我们S是等于一的,然后这边一加五等于六输出来了,然后再穿透,穿透这边仍然是一加四输出一个五。说说到这个地方呢。就应该判断出来,它第一个是六,第二个是五,看哪一个满足呢?A65666666,所以说这个已经不用看了,A是正确的。
13:06
因为后面都不可能都跟他不一样吗?所以说这个答案分析出来,分析一。就是第一次,第一次这个S等于的是一,然后呢,它会执行这两句话。就会执行这两句话。所以这两句话呢,有个穿透,所以说它就会输出什么呢,准确的讲,第一个在这里会输出一个六。第一个是六,第二个呢,会输出一个五,后面就不用看了。那只有A满足第二个数字事物,因此这个答案出来了是几呢?这个答案就应该是A。也就19题呢,答案C,其他不用看,你在花时间看,浪费你的时间。20题来了,好,20题呢,有一有下面一段程序段代码,有这么一段代码,大家看一下。我们分析一下哈,他说有一个负循环,应该这个负循环是八次,看到没有零到八嘛,然后round round这个地方是一个随机整数模模五这个地方一定要分析出来,此时此刻在这个地方啊,这个N。
14:14
的值只能是零。1234不可能是五,也就是他其实是产生一个随机数过后呢,对五取模显然就是01234好,然后呢,这里面有个Switch语句,大家看。是问是语句,他说如果N等于N等于一,就做这句话。N等于二就执行这句话,这面有个穿透,Count又是干什么呀?Count又是接着继续for循环,而不是退出。这个地方是。退出什么呢?退出break。对吧,这个抗呢是干什么呀,继续我们的这个for循环,是不是继续for循环。所以说我们看这个结果,最后还有一个零的话,还退出系统啊,这个是直接退出程序。
15:04
因为是X的零嘛,他说哪个是正确的,For循环的次数固定为八次,这个肯定不正确,那我上来要直接上来就生成一个零零,直接就退出去了,说这个不敢肯定,当产生随机数N等于40结束循环,我们看对不对呢?如果是圣圣四的话,他到这来了呀,到这来一个continue,又他又回去了,没有退出呀,所以这个是错的,这个也是错的。当产生的随机数N等于一和二时,不做任何操作对吗?一后面的确没有语句,但是也没有break呀。一实际上这个一会执行这个输出。因为你这个一后面没有break,看到没有。这个一和后面没有。它是没有这个break的。如果他这有break的话呢,那这个C就说的是对的了,那最后只有一个D了,当产生随机数N等于零时结束,程序正确,刚才已经分析了好,这个呢,就应该是选择几呢?选择A。
16:09
好,这个分析过程是这样子的分析就是。要明确的知道这这个这个流程就是按照什么呢,按照我们。按照按照。按照for循环加我们的Switch。来玩来来验证就可以了,验证几个并不难,但是这个地方考点大家一定要对这个break语句和continue了解,这个breaks退出这个Switch continue呢是你可以理解成下面这句话,不,不做了,直接用进行下次的for循环。这个我们实际上是讲过很多次的哈。因此这个答案呢,就应该选A。各位同学,那么我们这一小节这十道题就评讲到这儿,大家好好消化一下好不好?好这讲我们就说到这里。
我来说两句