三、程序分析题(本大题共5小题,每小题5分,共25分)
阅读下列程序,将输出结果写到各题右侧的空白除处。
31 【分析】我们可以按照程序中语句执行的顺序,记录各个变量及数组元素值的方法来解决这种阅读程序写运行结果的问题。首先执行第1个for循环。
i=0, i<5的条件成立,执行循环体。
a[0]=9*(0-2+4*(0>2))%5=9*(-2)%5=-18%5=-3
i=1,1<5的条件成立,执行循环体。
a[1]=9*(1-2十4*(1>2))%5=9*(-1)%5=-9%5=-4
1=2,i<5的条件成立,执行循环体。
a[2]=9*(2-2十4*(2>2))%5=9*(0)%5=0%5=0
i=3,i<5的条件成立,执行循环体。
a[3]=9*(3-2+4*(3>2))%5=9*(5)%5=45%5=0
1=4,1<5的条件成立,执行循环体。
a[4]=9*(4-2+4*(4>2))%5=9*(6)%5=54%5=4
i=5,1<5的条件不成立,退出第1个for循环。
注意,计算中的“i>2”是关系运算,结果只能为1或0;“x%5”是模运算,结果是x除5的余数,且余数的符号和x符号相同。
再执行第2个for循环。
i=4,i>=0的条件成立,执行循环体。输出数组元素a[4]的值,等于4
i=3,i>=0的条件成立,执行循环体。输出数组元素a[3」的值,等于0
i=2,1>=0的条件成立,执行循环体。输出数组元素a[2」的位,等于0
i=1,i>=0的条件成立,执行循环体。输出数组元素a[1]的值,等于-4
i=0,1>=0的条件成立,执行循环体。输出数组元素a[0]的值,等于-3
i=-1,i>=0的条件不成立,退出第2个for循环。
【答案】 4 0 0 -4 -3
32.【分析】本程序的第1条语句是定义2行5列的二维字符型数组s,并且赋了初值如下:
s[0][0]='1's[0][1]='2's[0][2]='3's[0][3]='4's[0][4]='\0'
s[1][0]='5's[1][1]='6's[1][2]='7's[1][3]='8's[1][4]='9'S[1][5]='\0'
此外还定义了字符型指针数组p,利用第3条语句赋了值,结果如下:
p[0]指向以“s[0][i]”为数组名的一维数组首地址,即p[0][i]就相当于s[0][i]
p[1]指向以“s[1][i]”为数组名的一维数组首地址,即p[1][i]就相当于s[1][i]
第2条语句定义了整型变量i(用于单重循环的控制变量)和sum,并对sum清0。
第4条语句是for循环,控制变量i初值为0,每次加2,控制循环的条件是“p[0」[i]!='\
0',注意其中的“p[0][i]”就是“s[0][i]”,这个控制循环的条件可以理解为“二维字符型数组元素s[0][i]不是字符串的结束标记则继续循环”。从控制变量i的取位来看,二维字符型数组元素只能取s[0][0]、s[0][2],因为下一个数组元素是s[0][4],该元素值是'\0'。再分析循环体中的语句,其中“ p[0][i]-'0'”是将数组元素s[0][i]中存放的数组字符减去'0',结果将是该数字字符对应的一位整数,整个语句是将sum变量中的原值乘以10以后再加上当前的数字。循环结束后的sum值就是s[0」[0」和s[0][2]中的两个数字组成的2位十进制数,结果为13。
按照同样的道理,可以分析出第2个for循环作用是完全相同的,它是把s[1」[1」、s[1][3]中的两个数字(前者为6,后者为8)拼接到sum的原值中,结果sum中值为十进制整数1368。程序的最后一个语句就是输出变量sum中的整数值。
【答案】 1368
高级语言程序设计模拟试卷(十)-9
2008-10-02 18:10:12 作者:未知 来源:考试大 文字大小:【大】【中】【小】
三、程序分析题(本大题共5小题,每小题5分,共25分) 阅读下列程序,将输出结果写到各题右侧的空白除处。 31 【分析】我们可以按照程序中语句执行的顺序,记录各个变量及数组元素值的方法来解决这种阅读程序写运 ...
关键字:高级语言程序设计

