首页>计算机>软件水平考试>模拟试题>正文
软件设计师课后练习题:第四章习题解答

www.zige365.com 2008-11-11 17:24:53 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
4.1  单项选择题
    1.若有下列说明,则数值为4的表达式是(  )
      int a[12]={ l,2,3,4,5,6,7,8,9,10,11,12 };
      char c=’a’,d, g;
    ①a[g-c]           ②a[4] 
    ③a[’d’-’c’]            ④a[’d’-c] 
     【解】数组元素的下标自0开始顺序编号,值为4的元素是a[3]。所以只有下标表达式的值为3的才是正确的。下标表达式g-C中的的变量g和c的值是还未被设定的,其值不确定。a[4]的值为5,下标为4是不对的。’d’-’c’的值为1,a[l]的值是2,所以也是不对的。变量c的值为’a’ ,’d’-c=3,所以正确解答是④。

    2.设有定义:"char s[12]={"string"};" 则printf("%d\n",strlen(s));的输出是(  )
    ① 6              ② 7                
    ③11             ④ 12
       【解】在C语言中,字符串是指在有效字符之后有字符率结束标记符的字符列,并约定字符串的长度是指字符率中有效字符个数,不包括字符串的结束标记符。存放于字符数组s中的字符串是“string”,该字符串的长度为6,所以输出该字符串的长度应是6。正确的解答是①。

    3.下列语句中,正确的是(   )
      ① char a[3][]={’abc",’1’};         ② char a[][3]={’abc’,’l’};
      ③char a[3][]={’a’,"1"};                ④char a[][3]={"a","1"};
       【解】如定义数组时有初始化,其最高维的长度可以省缺,由系统根据初始化时的初值个数确定,而其它维的长度是不可以缺省的。对二维字符数组的初始化,可以按行用字符串对其初始化,也可以按二维数组元素的存储顺序逐一用字符对其元素初始化。在供选择解答①和③中,有不是最高维的长度被缺省,所以是错误的。在供选择解答①和②中,还将字符串常量写作’abc’,这也是错误的。只有④,用字符率按行给二维字符数组初始化,这才是正确的。正确构解答是④。

    4.合法的数组定义是(    )
       ①int a[]={"string"}               ②int a[5]={0,1,2,3,4,5};
       ③char a={"string"}                ④char a[]={0,1,2,3,4,5};
      【解】①错误的原因是整数数组不可以用字符串对其初始化。②错误的原因是,数组初始化时,初始化指定的值的个数多于数组的元素个数。③错误的原因是,能用字符串初始化的只;有字符指针变量,或字符数组。字符率不能对其它类型的变量初始化,包括字符变量。④是正确的,因为字符数组可以用小整数(作为字符的ASCII代码值)对其元素初始化。

    5.语句"printf("%d\n"strlen("ats\nol2\1\\"));"的输出结果是(    )
             ①11            ②10              ③ 9              ④ 8
      【解】字符串中的字符可以是一般的普通字符,也可以是由反斜杠字符开头的转义字符。在字符串"abs\no12\11\\" 中,有三个转义字符,它们是\n、\1、\\,所以该字符串的有效字符个数是9。所以正确的回答是③。

    6.函数调用“strcat(strcpy(strl,str2),str3)”的功能是(   )
      ①将字符串strl复制到字符串str2中后再连接到字符串str3之后
      ②将字符串strl连接到字符串str2中后再复制到字符率str3之后
      ③将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后
      ④将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中
      【解】函数调用strcat(s1,s2)是将s2字符串复制连接到s1字符串之后,使s1字符串变得更长。函数调用strcpy(s1,s2)是将s2字符串复制到s1,使s1字符串的内容与s2字符串的内容相同。函数调用strcat(strcpy(strl,str2) ,str3) 是先执行strcpy(strl,str2),然后再执行strcat(strl,str3),所以其功能是将字符串str2复制到字符串strl中,然后再将字符串str3复制连接到字符串strl之后。正确的选择是③。

    7.设有如下定义,则正确的叙述为(   )
      char x[]={"abcdefg"};
      char y[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’};
      ①数组x和数组y等价②数组x和数组y长度相同
      ③数组X的长度大于数组y的长度④数组X的长度小于数组y的长度
     【解】不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给出的值的个数确定。字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初始化。但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符率结束字符。但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需要的字节个数会比用同样多的字符初始化多1个字节。所以只有③才是正确的。

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

我要投稿 新闻来源: 编辑: 作者:
相关新闻
2009年咨询工程师考前练习-项目决策方法与实务1(08/1
2009年咨询工程师考前练习-项目决策方法与实务2(08/1
2009年咨询工程师考前练习-项目决策方法与实务3(08/1
2009年咨询工程师考前练习-项目决策分析与评价一-1(0
2009年咨询工程师考前练习-项目决策分析与评价一-2(0
2009年咨询工程师考前练习-项目决策分析与评价一-3(0