位置:首页 > 自考专业

2012年自考“高级语言程序设计”经典习题及答案(14)

  • 发布时间:2024-09-15 16:21:23
  • 来源:本站整理
  • 阅读:
导读:
  (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.所以正确的回答是③。

相关阅读