首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 软件考试 > 考试试题 >

08年12月软件设计笔试考前练习(5)

2008-12-11 
软件设计笔试考前练习

    2008年下半年软件考试因故推迟了,这未尝不是一件好事,对于那些准备还不够充分的考生来说,现在正是查漏补缺的好时机,本站为您整理了考前练习题,希望对您有所帮助,祝您考出好成绩!

    1.设有如下定义,则正确的叙述为( )

  char x[]={"abcdefg"};

  char y[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’};

  ①数组x和数组y等价②数组x和数组y长度相同

  ③数组X的长度大于数组y的长度④数组X的长度小于数组y的长度

  2.根据变量定义“static int b[5], a[][3]={1,2,3,4,5,6};”,b[4]=_____,a[1][2]

  【解】不指定数组长度的字符数组定义,其所需要的字节数可由初始化中给出的值的个数确定。字符数组可以用字符串初始化,也可用字符逐个给字符数组的元素初始化。但用字符初始化时,尽管给出了字符串中的全部字符,还是不会自动有字符率结束字符。但字符串初始化自动会含有字符串的结束标记符,字符串初始化所需要的字节个数会比用同样多的字符初始化多1个字节。所以只有③才是正确的。

  【解】系统规定,静态变量定义时,若末初始化,系统自动给定二进制代码全0的值。所以态数组b的元素全为0,当然包括b[4]也为几静态数组a是二维数组,每行有三个元素,在初始化中结出了六个初值,所以数组a有2行。由于数组的元素按行顺序存储,并按行顺序初始化。前三个值是第一行,后三个凳堑诙小[1][2]是第二行的第三列元素,也是 a的最后一个元素,所以其值是6。

    3.设有代码"int(*ptr)[10];”,其中的ptr是( )

  ①10个指向整型变量的指针

  ②指向10个整型变量的函数指针

  ③一个指向具有10个元素的一维数组的指针

  ④具有10个指针元素的一维数组

  4.若有以下定义,则数值为4的表达式是( )

  int w[3][4]={{0,1},{2,4},{5,8}},(* p)[4]= W;

  ①*w[1]+l

  ②p++,*(p+1)

  ③w[2][2]

  ④p[1][1]

  【解】代码“int(*ptr)[10];”的分析过程是,因圆括号,括号内的ptr先与字符*结合,字符*修饰标识符ptr是一种指针;接着与后面的一对方括号结合,表示是这样的一种指针,是指向一维数组的;再有方括号中的10,说明这种数组有10个元素。至此,ptr是指向含10个元素的。3COME文档编辑

  一维数组的指针。最后,是最前面的int,表示数组元素是int类型的。所以,ptr是一个指向具有10个int型元素的一维数组的指针。所以解答是③。另外,要是①,10个指向整型变量的指针,就是一个指针数组,上述代码应写成“int *ptr[10];”,即ptr是一个有10个指向整型变量的数组。要是②,返回值是指向10个整型变量的函数的指针,上述代码应写成“int(*(*ptr)())[10];”,即ptr是指针,指向一种函数,函数的返回值又是一种指针,指向10个元素的数组,数组的元素是整型的。下面的代码是这样的函数指针和函数的例子:

  # include

  int a[][10]={{1,2,3,4,5,6,7,8,9,0} ,{0,1,2,3,4,5,6,7,8,9} };

  int(*(*ptr)(int))[10];

  int(*f( int n))[10]

  {return a+n;

  }

  void main()

  { int(*p)[10],*q;

  ptr=f;/*让ptr指向函数f*/

  P=(*ptr)(0);

  q=*p;

  printf("%d\n", *p);

  P=(*ptr)(l);

  q=*p;

  printf("%d\n", *q);

  }

  在上述代码中,函数有一个int型的形参。要是④,其意义与①相同,上述代码应写成“int* ptr[10];”,即 ptr是一个有10个元素的数组,数组元素是指向整型变量的指针。

  【解】二维数组定义有多种赋初值的办法,问题给出的代码是按行给数组的部分元素赋初值。它们分别是w[0][0]=0.w[0][1]=1、w[1][1]=2.w[1][1]=4,w[2][0]=5,w[2][1]=8。根据约定,未指定初值的元素自动置全0值。指针变量p是一个指向具有四个int型元素的一维数组的指针,定义时的初值使它指向数组W的第一行。①的代码,*w[1]+1中的W[l]是指向 w[l][0]的指针,*w[1] 就是w[1][0],其值是2,*w[1]+l的值是3。②的代码是逗号表达式,“p++,*(p+1)”先使p指向数组w的第二行,*(p+l)中的p+l是指向数组w的第三行,*(p+1)是指针值,指向数组w的第三行的第一个元素,即&w[2][0]. ③的代码w[2][2]引用数组W第三行的第三列元素,其值是0。④的代码p[1][l]引用数组W第二行的第二列元素w[1][1],其值是 4。所以解答是@。

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行