欢迎来到010在线作文网!

c语言面试题及答案(2)

试题 时间:2021-08-31 手机版

二、填空题(每空2分,共40分)

  请将每个空的正确答案写在【l】至【20】序号的横线上,答在试卷上不得分。

  (1)对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为  【l】  。

  答案:【1】n/2

  评析:删除一个元素,平均移动的元素个数为(n-l+n-2+……+0)n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-l+n-2+……+1)n=(n+1)/2;所以总体平均移动元素个数为n/2。

  (2)注释说明了程序的功能,它分为  【2】  注释和功能性注释。

  答案:【2】序言性

  评析:注释一般分为序言性注释和功能性注释。

  (3)软件测试中路径覆盖测试是整个测试的基础,它是对软件  【3】  进行测试。

  答案:【3】结构

  评析:路径测试是白盒测试方法中的一种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。

  (4)数据库技术的主要特点为数据的集成性、数据的高  【4】  和低冗余性、数据独立性和数据统一管理与控制。

  答案:【4】共享性

  评析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据韵独立性,数据统一管理与控制。

  (5)数据元素之间  【5】  的整体称为逻辑结构。

  答案:【5】逻辑关系

  评析:数据元素之间逻辑关系的整体称为逻辑结构。数据的逻辑结构就是数据的组织形式。

  (6)若有定义int m=5,y=2,则执行表达式y+=y-=m*=y后,y的值为  【6】  。

  答案:【6】.16

  评析:将赋值运算符右侧的“表达式”的值赋给左侧的变量,并且赋值运算符按照“白右而左”的结合顺序,本题表达式应先算m的值为10,再运算y的值为8,最后计算y=y+(-8)=-8+(-8)=-16。

  (7)若x和y都是double型变量,]ix的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为  【7】  。

  答案:【7】8.000000

  评析: fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

  (8)设有char a,b;,若要通过a&b运算屏蔽掉a中的其它位,只保留第2位和第8位(右起为第1位),则b的二进制是  【8】  。

  答案:【8】10000010

  评析:运算“&”的规则是只有当两个相应的二进制位都为1时,该位的结果才为1。要保留第2、8位,只要将其与二进制数10000010相与。

  (9)下列程序执行后输出的结果是  【9】  。

  f(int a)

  {  static c=0;

  C=a+C++:

  return(C);

  }

  main()

  {  int a=2,i,k;

  for(i=O;i<2;i++)

  k=f(a++);

  printf(”%d\n”,k);

  }

  答案:【9】7

  评析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。

  (10)下面程序执行后输出的结果是  【10】  。

  int m=13:

  int fun(int x,int y)

  {  int m=3;

  return(x*y-m);

  }

  main()

  {  int a=7,b=5;

  printf(”%d\n”,fun(a,b)/m);

  }

  答案:【10】2

  评析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,ftm(a,b)/m中的m应取外部变量的值13,因此输出2。

  (11)下列程序执行后输出的结果是  【11】  。

  main()

  {  nt arr[10],i,k=0;

  for(I=0;i<l0;i++)arr[I]=i;

  for(I=1;i<4;i++)k+=arr[i]+i;

  printf(”%d\n”,k);

  }

  答案:【11】12

  评析:本题的第一个for循环是用于给数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是art[1]到arr[3]及i的和,所以输出结果为12。

  (12)下列程序执行后输出的结果是 【12】 。

  struct s

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

  main()

  {

  struct s*p=data;

  printf(”%d”,++(p->x));

  }

  答案:【12】11

  评析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(p->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[01.x]输出。

  (13)下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个print语句的输出结果是  【13】  。

  main()

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

  p=a;

  printf(”%X\n”,p);

  printf(”%x\n”,p+9);

  }

  答案:【13】la6

  评析:对于指针变量的运算,就是对于地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以16进制输出的。

  (14)以下函数的功能是计算s=l+l/2!+l/3!+…+l/n!,请填空.

  double fun(int n)

  {  double s=O.O,fac=1.O;

  int i,k=1;

  for(i=l;i<=n;i++)

  {    【14】  ;

  fat=fat/k;

  s=s+fac;

  }

  }

  答案:【14】k=k*i

  评析:本题中通过for循环求s表达式中每一项的和,表达式“fac=fac/k;”求的是每一项的值,所以k的值应为n!,在求n!的时候,可以用上次循环阶乘的值乘i,就可以直接得此次n!,故本题填k=k*i。

  (15)下面程序的运行结果是  【15】  。

  main()

  {  unsigned a=0112,x;

  x=a>>3:

  printf(”x=%o”,x);

  }

  答案:【15】x=11

  评析:在对无符号数的右移是高位补0。

  (16)函数(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

  void (char s[],int i,int n)

  {  int j,k,length=O;

  while(s[1ength])

  【16】  ;

  –i:

  j=i;

  }

  if(  【17】  )

  {  k=i+n;

  if(i+n<=length)

  while(k<length)

  s[j++]=s[k++];

  s[j]=‘\0’;

  }

  答案:【16】length++

  【17】i<length

  评析:第一个循环极有可能是这个计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了一i运算,故实际应填入i<length。

  (17)下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

  int word(char*s)

  { int num=O,flag=O;

  while(*s)

  { if(  【18】  ==”)flag=O;

  else if(  【19】  ){flag=1;num++}

  }

  return  【20】  ;

  }

  答案:【18】*s++

  【19】flag==O或*(s-1)==”

  【20】num

  评析:在统计字符串单词个数的算法中,本题的flag是为了记录一个单词是否结束了。在第18空应填写*s++;如果某个字符不是空格,则必需判断它是否是单词,如果是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=O,否则判断前一个字符是否是空格,如果是的话,则说明这个字符是一个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第19空应flag==O或*(s-1)==”;最后一个空格需填写的是返回的单词的个数,即num。

【c语言面试题及答案】相关文章:

1.c语言试题及答案

2.计算机c语言试题及答案

3.C语言程序设计的试题及答案

4.计算机二级c语言试题及答案

5.c语言练习试题

6.C语言实训总结

7.c语言学习总结

8.c语言练习试题库


本文来源http://www.010zaixian.com/shiti/2132049.htm
以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请给我们来信(zaixianzuowenhezi@gmail.com),我们会及时处理和回复,谢谢.