2006年4月全国计算机等级考试二级C语言考前密卷2
来源:优易学  2011-11-20 16:32:00   【优易学:中国教育考试门户网】   资料下载   IT书店

行;+(cp+3)是数组c的第三行的第0列的地址值;+(cp+1)+3是数组c的第一行第三列的地址值。 (40)下列选项中不能正确定义结构体的是_________。
  a)typede fstruct     b)struct color c1
  { int red;        { int red;
  int green;        int green;
  int blue;        int blue;
  }color;         };
  color cl;
  c)struct color      d)struct
  { int red;       { int red;
  int green;       int green;
  int blue;        int blue;
  }cl;          }cl;
  答案:b
  评析:将一个变量定义为标准类型与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如,struct color),不能只指定结构体名。其中可以不出现结构体名,答案d就是缺省结构体名的情况。而变量名列表必须放在成员列表后面,所以b答案不能正确将c1定义为结构体变量。
  
(41)设有以下语句
  char a=3,b=6,c;
  c=a^b<<2:
  则c的二进制值是_________。
  a)00011011       b)00010100 
  c)00011100       d)00011000
  答案:a
  评析:"<<"是c语言中规定的左移运算符,n是异或运算符,所以,c的二进制值应为0001 1011。
  
(42)设有如下定义
  struct ss
  {  char name[10];
  int age;
  char sex;
  }std[3],*p=std;
  下列各输入语句中错误的是__________.
  a)scanf("%d",&(*p).age);  
  b)scanf("%s",&std.name);
  c)scanf("%c",&std[o].sex); 
  d)scanf("%c",&(p->sex));
  答案:b
  评析:在c语言中,结构体变量的引用有三种等价方式:
  1、结构体变量.成员名;2、(*p).成员名;3、p->成员名。
  因为std.name是字符数组名,-本身代表地址,其前面不应该使用"&"符号,所以选项b错误。
  
(43)设有
  static char str[]="beijing";
  则执行
  printf(%d\n",strlen(strcpy(str,"china")));
  后的输出结果为__________。
  a)5           b)7 
  c)12           d)14
  答案:a
  评析:在执行printf()函数前,数组str的长度是7,但是当使用strcpy()函数将新的值赋给str后,strlenr)函数返回的应当是现在的str字符串的字符个数,即是5。
(44)下列程序段中,不是死循环的是__________。
  a)int i=100;      b)unsigned k=0;
  while(1)         do
  {             {
  i=i%100+l:        ++k;
  if(i>=100)break;    }
  }            while(k>=0);
  c)for(;;);       d)int s=3379;
  while(s++%2+s%2)s++;
  答案:a
  评析:当表达式为非0值时,执行while语句中的内嵌语句,可用break语句跳出循环,用contin

上一页  [1] [2] [3] [4] [5] [6] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训