计算机二级c语言笔试题和面试题答案(最新)(三)

|来源:新高考网

  (37)下列函数定义中,会出现编译错误的是

  A)max(int x,int y,int *z)

  B)int max(int x,y)

  { *z=x>y ? x:y; } { int z;

  z=x>y ? x:y;

  return z;

  }

  C)max(int x,int y)

  D)int max(int x,int y)

  { int z; { return(x>y?x:y); }

  z=x>y?x:y; return(z);

  (38)有以下程序

  #include

  #define F(X,Y) (X)*(Y)

  main()

  { int a=3, b=4;

  printf("%d“n", F(a++, b++));

  }

  程序运行后的输出结果是

  A)12

  B)15

  C)16

  D)20

  (39)有以下程序

  fun(int a, int b)

  { if(a>b) return(a);

  else return(b);

  }

  main()

  { int x=3, y=8, z=6, r;

  r=fun(fun(x,y), 2*z);

  printf("%d“n", r);

  }

  程序运行后的输出结果是

  A)3

  B)6

  C)8

  D)12

  (40)若有定义:int *p;,则以下叙述中正确的是

  A)定义了一个基类型为int的指针变量p,该变量具有三个指针

  B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

  C)定义了一个名为*p的整型数组,该数组含有三个int类型元素

  D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

  (41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址

  #include

  #include

  char *scmp(char *s1, char *s2)

  { if(strcmp(s1,s2)<0)

  return(s1);

  else return(s2);

  }

  main()

  { int i; char string[20], str[20];

  for(i=0;i<3;i++) gets(str[i]);

  strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/

  strcpy(string,scmp(string,str));

  printf("%s“n",string);

  }

  若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为

  A)abcd

  B)abba

  C)abc

  D)abca

  (42)有以下程序

  struct s

  { int x,y; } data={10,100,20,200};

  main()

  { struct s *p=data;

  printf("%d“n",++(p->x));

  }

  程序运行后的输出结果是

  A)10

  B)11

  C)20

  D21

  (43)有以下程序段

  main()

  { int a=5,*b,*c;

  c=&b; b=&a;

  ……

  }

中国点击率最高的一篇文章 !