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

www.zige365.com 2010-7-28 15:00:23 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
n次。循环体中是将参数m的值乘到变量pp中,变量pp在开始循环时已经设置初值为1,所以整个循环是将nm乘到pp中。显然循环语句的功能是计算m”。而函数的返回值正是这个变量pp中的值。
  由此分析可知,函数调用“p(34)”的返回值就是34。结果为 81,也就是本程序的输
  出结果。
  【参考答案】81

  9struct stu
  { int numchar name[10]int age};

  void py(struct stu *p)
  { printf("%sn"(*p)name);}

  main()
  { struct stu student[3]={{1001"Sun"25},

  {1002"Ling"23},
  {1003"Shen"22};
  py(student2)
  }

  【解析】本程序是由3段组成的。第1段是结构型stn的定义;第2段是函数py()的定义;第3段是主函数。
  我们先分析主函数。首先定义了结构型stu的数组student[3],并且给3个元素的所有成员都赋了初值。接着调用了函数py,对应的实参是结构型数组元素student[2]的地址。注意,数组名+k”是数组元素数组名[k]”的地址。
  再来分析函数调用"py(student2)"。调用时,首先把实参传递给形参,即把结构型stu的数组元素student[2」的地址"student2"传递给形式参数结构型stu的指针变量p”
  然后执行函数体,输出表达式是"(*p).name",这是结构型stu的指针变量p指向的结构型stu数据(即结构型stu的数组元素student[2)的成员name,其值是字符串"Shen"。这就是本题的答案。
  【参考答案】Shen

 10# include"stdioh"
  
main()
  { char c

  while((c=getchar())=’n’)
  
switch(c)
  {case ’0’

  case’1’ putchar(c)
  case’2’putchar(c)break
  case’3’putchar(c)
  defaultputchar(c1)break
  }
  printf("n")
  }
  假定本程序执行时输入:1357(其中的/代表回车换行符)


  【解析】本题也可以采用记录的方法。
  执行 while循环。
  输入第1个字符'1',不是'n',执行switch语句的"case'1'"后的输出语句,输出字符'1';由于其后没有“break”语句,则继续执行"case'2'"后的语句,输出字符'1'。输入第2个字符'3',不是'n',执行switch语句的"case'3'"后的输出语句,输出字符'3';由于其后没有“break”语句,则继续执行"default"后的语句,输出字符'4'
  继续while循环。
  输入第3个字符'5',不是'n',执行switch语句的"default"后的语句,输出字符'6'
  继续while循环。
  输入第4个字符呼'7',不是'n',执行switch语句的"default"后的语句,输出字符'8'
  继续While循环。
  输入第 5个字符'n',是'n',退出while循环,输出回车换行符
  注意switch语句的执行过程是:在每个“case”分支之后,可以有多个语句,程序将依次执行这些语句,直到遇见“break”语句或者switch语句的右花括号。如果某个“case”分支的后面没有“break”语句,它在执行完本分支后的所有语句之后,将继续执行下一个分支中的语句,直到出现“break”语句或者switch语句的右花括号后才中止本分支的执行。
  【参考答案】113468

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

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