您的位置:自考365 > 复习指导 > 笔记串讲 > 工学 > 自考“高级语言程序设计”习题答案详解(15)

自考“高级语言程序设计”习题答案详解(15)

2007-09-04 09:43   【 】【我要纠错

  (3) 用do-while循环实现的程序

  # include

  main() /*用do-while循环*/

  { int i, k=0 ;

  i=1;

  do{

  if(k++%5==0) /*每行五个*/

  printf(“\n”);

  printf(“=*==]”,i,i,i*i);

  1++;

  } while(<=100);

  printf(“\n”);

  }

  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.所以正确的回答是③。

本文转载链接:自考“高级语言程序设计”习题答案详解(15)

分享到:
  • 站内搜索
  • 课程搜索
  • 试题搜索

热门搜索:教材 报名 查分 免考 考试计划