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

www.zige365.com 2010-7-28 15:07:13 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
kW--W printf("*")

  【解析】问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符* 。上述循环控制过程用for循环可描述如下:
  for(w=kW!0; W-- printh("*");
  或写成:

  forwk w--w printf"*");
  若用while语句,可描述如下:
  Wk
  whilew--!0printf("*")
  w++/*w等于0时,也执行了一次 w--,这里是对w最后减1的补尝*/
  或更直观地写成:

  Wk
  whilew!0{ w--Printf("*");}
  若用do-while语句,可描述如下:

  Wk
  ifW
  do{
  w-- prinif"*");

  } whilew);
  若写成:
  Wk
  do
  W-- printf("*")
  } whilew!=0);
  是不正确的,因为原代码当k的值为0时,不输出字符*,而上面的改写,当k的值为0时,将输出许许多多的字符*。所以解答应是C
  【参考答案】C

  45. 若有下列说明,则数值为4的表达式是(
  int a[12]{ l23456789101112 }
  char c'a'd g
  A.a[gc]
  
B.a[4]
  
C.a['d'-'c']
  D.a['d'-c]

  【解析】数组元素的下标自0开始顺序编号,值为4的元素是a[3]。所以只有下标表达式的值为3的才是正确的。下标表达式g-C中的的变量gc的值是还未被设定的,其值不确定。a[4]的值为5,下标为4是不对的。'd'-'c'的值为1a[l]的值是2,所以也是不对的。变量c的值为'a' 'd'-c3,所以正确解答是D
  【参考答案】D

46.设有定义:"char s[12]={"string"};" printf("%d\n"strlen(s));的输出是(
  A. 6
  
B. 7
  C.11
  D.12

  【解析】在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。正确的解答是A
  【参考答案】A

  47.下列语句中,正确的是(
  A.char a[3][]={'abc"'1'}
  B.char a[][3]={'abc''l'}
  C.char a[3][]={'a'"1"}
  D.char a[][3]={"a","1"}

  【解析】如定义数组时有初始化,其最高维的长度可以省缺,由系统根据初始化时的初值个数确定,而其它维的长度是不可以缺省的。对二维字符数组的初始化,可以按行用字符串对其初始化,也可以按二维数组元素的存储顺序逐一用字符对其元素初始化。在供选择解答A.C.中,有不是最高维的长度被缺省,所以是错误的。在供选择解答A.B.中,还将字符串常量写作'abc',这也是错误的。只有D.,用字符率按行给二维字符数组初始化,这才是正确的。正确构解答是D
  【参考答案】D

  48.合法的数组定义是(
  A.int a[]={"string"}
  
B.int a[5]={0,1,2,3,4,5};
  
C.char a={"string"}
  D.char a[]={0,1,2,3,4,5};

  【解析】A.错误的原因是整数数组不可以用字符串对其初始化。B.错误的原因是,数组初始化时,初始化指定的值的个数多于数组的元素个数。C.错误的原因是,能用字符串初始化的只;有字符指针变量,或字符数组。字符率不能对其它类型的变量初始化,包括字符变量。D是正确的,因为字符数组可以用小整数(作为字符的ASCII代码值)对其元素初始化。
  【参考答案】D

49.语句"printf("%d\n"strlen("ats\nol2\1\\"))"的输出结果是(
  A.11
  
B.10
  C. 9
  D. 8

  【解析】字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转义字符。在字符串"abs\no12\11\\" 中,有三个转义字符,它们是

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

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