必胜高考网 > 计算机类 > 计算机等级 > 资讯 >

计算机三级网络技术:十类必记语句(2)

时间: 未知2 资讯

  (6)求平均值

  变量说明:

  变量i是循环变量,变量终值等于数组中元素的个数,a[i]是一个一维数组;变量pjz表示平均值;变量cnt是一个记数变量。if是一个条件判断语句,此处假设判断a[i]是不是偶数。(注:pjz和cnt的初始值一般都是0,此处省去了该变量的赋值语句。)

  表达式含义:

  通过for循环依次判断当前数组元素a[i]的值是否是偶数(该条件根据题目要求而定),如果是偶数,则将a[i]的值累加到变量pjz中,同时,记数变量cnt的值加1,所有循环结束后,再将变量pjz的总和除以个数cnt得到平均值并将该值赋给变量pjz。

  例如:

  假设,数组a[4]中的5个数字为:2、4、5、11、12,计算偶数的平均值。

  ①本题数组a[4]中共有5个元素,因此要进行5次for循环进行判断。

  ②循环结束后,通过表达式计算:18/=3,变量pjz的最终结果等于6。

  (7)数组排序

  变量说明:

  i和J都是循环变量,同时也是数组b的下标变量,temp是两数转换时的中间变量,以上变量名都可以由考生自定义,而数组b口的名称需要根据题目要求进行命名。另外,变量cnt表示数组中元素的总数,该变量值一般需要计算得到,可参考第(5)点中的相关语句,此处不再重复讲解。

  表达式含义:

  在一维数组b口中,通过两个for循环对数组中的每个数进行比较。

  ①首先,在第一层for循环中,循环变量i的值与数组下标的值同步,即都是从0开始,每循环一次,变量值加1,即数组下标值加l,直到读取到倒数第2个元素时,循环结束,注意,因为一维数组的下标值是从0开始的,因此,当数组有 cnt元素时,最后一个元素的数组下标值实际等于cnt-1,当i值等于cnt-1的值的时候,将不再执行for循环体中的语句。

  ②然后第2层for循环中,循环变量j的起始位置是从上一个循环i值位置的下一位置开始,即i+1的位置开始,在该循环中,i的值始终保持不变,而i的值依次递增加1,直到i值等于元素总数cnt值时结束循环,这样,就能将第i个数与其后面所有的数进行比较。

  ③最后,通过一个排序语句,对数组中的元素进行升序或降序排序。

  例如:

  假设,数组b[5]中的6个数字及顺序为:7、5、8、3、4、6,即:b[0]=7,b[1]5,b[2]=8,b[3]=3,b[4]=4,b[5]=6,按从小到大的顺序排序。

  ①执行流程如下:

  .首先执行第一层for循环的第1次循环,i的起始值为0,b[0]=7,即b[i]的当前值等于7。

  .此时开始执行第二层的for循环,j的起始值为i+1,此时b[j]=b[1]=5。将b[0]和b[1]进行比较,如果b[0]>b[1],

  则交换两个数的位置,交换位置后b[i]=b[O]=5,b[j]=b[1]=7;

  .继续执行第二层for循环,此时,j的值加1,则b[j]=b[2]=8,再将b[j]与b[i]进行比较,此时b[i]的值小于b[j]的值,不符合判断,两数的位置不变;依次类推,再继续读取b[3]、b[4]、b[5]的值与b[0]的值进行比较,这样,在所有的比较结束后,最小的一个数就排到了b[0]的位置了。

  .此时,完成了第一层循环的第l次循环,数组序列为:3、5、7、8、4、6。

  ②执行第一层for循环的第2次循环时,i的值加l,即b[i]=b[1]=5,此时是从数组的第2个元素开始,然后再执行第二层for循环,j的值从i+1=1+1=2开始,接着比较b[i]和bD]的大小,按升序排列,根据①中的说明,执行类似的操作,再将b[3]、 b[4]、b[5]后面与b[1]比较大小,重新排序,当第一层for循环的第2次循环结束后,数组序列为:3、4、5、7、8、6。

  ③根据前两个步骤可以看出,在第一层for循环的两次循环结束后,最小的两个数也都按升序的方式排列到最前面了,依次类推,第一层for循环的第3次循环将从数组的第3个元素开始进行判断,最后,在所有的循环结束后,数组序列为:3、4、5、6、7、8。

  总之,记住一点,在执行两层for循环时,只有第二层循环中的所有循环执行完毕,第一层循环才会开始新一轮的循环计算。另外,还要注意的是,只有两个紧接着的或有包含关系的for语句才构成双重循环,如果两个for语句之间有别的语句,则两个for语句是相对独立的,不构成双重循环。

  (8)将数值存入数组的语句

  变量说明:

  变量i是循环变量,变量终值等于数组中元素的个数,a[i]是需要计算的一维数组,b[cnt]是用来保存结果的一维数组, cnt是数组的下标变量。(注:cnt的初始值一般都是0,此处省去了该变量的赋值语句。)

  表达式含义:

  通过for循环依次判断当前数组元素a[i]的值是否是奇数(该条件根据题目要求而定),如果是奇数,则将a[i]的值赋给变量b[cnt],同时cnt的值加1。

  例如:

  假设,数组a[4]中的5个数字为:7、2、5、11、13,计算偶数的平均值。

  ①本题数组a[4]中共有5个元素,因此要进行5次for循环进行判断。

  ②循环结束后,通过表达式计算:18/=3,变量pjz的最终结果等于6。

  (9)判断一个数与其前面或后面连续几个数的语句

  ①小于后连续5个数

  ⑦大于前连续5个数

  变量说明:

  a[i]表示一维数组变量,i是数组下标变量,a[i-1]、…、a[i-5]分别表示当前数组元素a[i]的前5个数组元素;a[i+1]、…、 a[i+5]则表示前数组元素a[i]的后5个数组元素。

  表达式含义:

  通过数组下标变量确定当前数组元素的前5个或后5个元素的位置,然后再通过大于或小于号连接各个数组变量,判断数组元素之间的大小关系。

  例如:

  判断数组a[9]中连续大于后5个数的数字,数组a[9]中包含的数是:a[0]=2、a[1]=3、a[3]=10、a[4]=9、a[5]=6、a[6]=7、 a[7]=5、a[8]=8、a[9]=1、a[10]=15。

  可以看出,只有数字a[3]=10和a[4]=9才可同时符合连续大于该数后面5个数的要求,对于后面不足5个数的数字将不参与比较。

  (10)对文件中的记录按字段排序关键语句:

  变量说明:

  变量i和j都是循环变量,同时表示的是结构体中的一行记录;dm是产品代码的变量名,sell[i].dm是第i行的产品代码的值, me、dj、sl和je分别是产品名称、单价、数量和金额的变量名,同样sell[i].mc、sell[i].dj、sell[i].sl和sell[i].je也分别代表各字段在第i行对应的变量值;tmp是用来保存记录的中间变量;PR0是结构体名。

  表达式含义:

  首先通过两个for循环对结构体中的两条记录进行比较(具体的控制流程,与第(7)点中的类似),通过strcmp()函数比较两条记录中上一条记录的产品名称是否小于下一条记录的产品名称(ASCIl码值),如果两个产品名称相同,则比较上一条记录的金额是否小于下一条记录的金额。无论满足哪个条件,都将执行条件语句中的语句序列,即:把sell[i](当前记录)的值复制到tmp,然后将把sell[j](当前记录后面的记录)的值复制到sell[i],最后将tmp的值复制到sell[j],这样就完成了记录的排序。

  本例题可参考第(7)点的例题,此处不在重复说明。

53830