首页>计算机>软件水平考试>模拟试题>正文
软考程序员考前练习试题及答案解析(九)

www.zige365.com 2010-7-28 15:00:23 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

二、程序分析


  1main()
  { char str[]="1234567"

  int i
  for(j=0i7i=3)
  printf("%sn"str+i)

  }

  【解析】分析份循环语句可知,控制变量 i的值只能依次等于036。再分析输出语句中的输出格式,这是字符串格式,要求输出表达式是存放字符串的首地址。而输出表达式是“stri”。我们针对i不同值来-一分析:i=0str0就是str,其中存放的字符串是“1234567”,所以第1行上的输出就是:1234567。当 i=3时,str3,代表了数组元素str[3]的地址,从这儿开始的字符率串是“4567”,所以第2行输出的是:4567。同样道理,i=6时, str6是元素str[6]的地址,从该地址存放的字符率是"7",所以第3行输出的是:7
  【参考答案】 1234567
  
4567
  7

2struct a char name10];
  int age
  }aa[3]={{"abc",20},{"def",21},{"ghi"22}}
  main()
  { struct a *paa=aa

  printf("%c%c%c"(*(paa+1))name0
  (*paa++)name[1]
  (*(paa+1))name[2])

  }

  【解析】本程序并不复杂,关键在于如何使用指向结构型数组的指针变量来引用该数组元素,以及如何引用结构型成员是数组的数组元素。
  首先看结构型a及对应数组aa的定义和赋予的初值。
  结构型a共有两个成员,一个是字符型数组name,另一个是整型age
  结构型数组aa3个元素,所赋予的初值如下:
  
aa[0].name="abc" aa[0].age=20
  
aa[1].name="def" aa[1].age=21
  
aa[2].name="ghi" aa[2].age=22
  主函数中的第1个语句是定义结构型指针变量paa,并且使它指向结构型数组aa的首地址。注意,此后的*paa就是aa[0]*(paai)就是aa[i]

  现在可以分析输出语句了。输出格式是3个字符格式,按照printf()函数的规定,表达式表中表达式计算顺序是自右向左进行的,下面依次讨论这3个字符格式对应的输出表达式。
  第3个输出表达式是“(*(paa1)).name[2]",其中的“*(paa1)”代表“aa[1]”,所以该表达式就是“aa[1].name[2]”,对应的字符是'f'
  第 2个输出表达式是"(*paa++).name[1]”,其中“*ppa++“*”++是同级运算符,结合性是自右向左的,所以++先计算,由于是后缀,所以要先计算“*paa”,它代表“aa[0]”,所以该表达式就是“aa[0].name[1]”,对应的字符是'b'。注意,最后要对paa进行++运算,使其指向aa[1]
  第 1个输出表达式是“(*(paa1)).name[0]”,注意现在的paa以及指向aa[1]了,所以其中的“*(paa1)”代表“aa[2]”,所以该表达式就是“aa[2].name[0]”,对应的字符是'g'
  现在可以得出结论:程序的输出是 3个字符:gbf
  【参考答案】gbf

 

 

 

 3main()
  { int x1x2x3x4

  x1=x2=x3=x4=1
  switch(x1)
  { case 1
switch(x2)
  { case 0x3++break

  case 1x4--
  }
  case 2x3++x4--
  }
  printf("%d%d"x3x4)
  }

  【解析】本题的关键是嵌套的多分支语句switch。注意在执行switch语句前,变量x1x2x3x4已经赋值,他们的值均为1。执行外层switch语句时,用于控制分支选择的变量x1的值为1,所以要执行的是“case 1”的分支。该分支又是一个switch语句,用于控制分支选择的变量x2的值为1,所以需要执行的是“case 1”的分支。该分支执行的语句是“x4--”,使得x4的值变为0。接着退出该分支,即退出内层的switch语句。由于外层的switch语句的“case 1”分支中没有“break”语句,所以将继续执行其后的“case 2”分支,即执行“x3++,x4--,结果x3等于2 x4等于-1。再退出外层switch语句,执行输出语句,此时,变量x3的值为

本新闻共4页,当前在第1页  1  2  3  4  

我要投稿 新闻来源: 编辑: 作者:
相关新闻