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

招聘笔试题2018-11-22王华老师

  程序在执行了c=&b;b=&a;语句后,表达式:**c的值是

  A)变量a的地址

  B)变量b中的值

  C)变量a中的值

  D)变量b的地址

  (44)有以下程序

  #include

  main()

  { c har str[][20]={"Hello","Beijing"},*p=str;

  printf("%dn",strlen(p+20));

  }

  程序运行后的输出结果是

  A)0

  B)5

  C)7

  D)20

  (45)已定义以下函数

  fun(char *p2, char *p1)

  { while((*p2=*p1)!=’0’){ p1++;p2++; } }

  函数的功能是

  A)将p1所指字符串复制到p2所指内存空间

  B)将p1所指字符串的地址赋给指针p2

  C)对p1和p2两个指针所指字符串进行比较

  D)检查p1和p2两个指针所指字符串中是否有’0’

  (46)有以下程序

  main()

  { int x=3, y=2, z=1;

  printf("%dn",x/y&~z);

  }

  程序运行后的输出结果是

  A)3

  B)2

  C)1

  D)0

  (47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为

  A)0

  B)1

  C)-1

  D)一个非0值

  (48)下列关于C语言数据文件的叙述中正确的是

  A)文件由ASCII码字符序列组成,C语言只能读写文本文件

  B)文件由二进制数据序列组成,C语言只能读写二进制文件

  C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

  D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

  (49)有以下程序

  main()

  { int a,*p,i;

  p=&a[0][0];

  for(i=0;i<9;i++) p[i]=i+1;

  printf("%d n",a[1]);

  }

  程序运行后的输出结果是

  A)3

  B)6

  C)9

  D)2

  (50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。

  struct node

  { int data;

  struct node *next;

  } *p, *q, *r;

  _______________________________

  | data next data next data next |

  | →□□ → □□ → □□→ |

  |  ↑p ↑q ↑r |

  |______________________________|

  现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是

  A)r->next=q; q->next=r->next; p->next=r;

  B)q->next=r->next; p->next=r; r->next=q;

  C)p->next=r; q->next=r->next; r->next=q;

  (资料东方教育网 http://www.eastedu.com.cn)

  D)q->next=r->next; r->next=q; p->next=r;

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

  (1)计算机软件分为系统软件与应用软件,UNIX属于 〖1〗 。

  (2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。若使用TYPE命令,则完整的命令为 〖2〗 。

  (3)Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于 〖3〗 。

  (4)在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到 〖4〗 文件夹中。

  (5)在Windows环境下,为了进行"添加/删除程序"操作,首先打开 〖5〗 ,然后双击其中的相应图标。

  (6)以下程序运行后的输出结果是 〖6〗 。

  main()

  { int p=30;

  printf("%dn",(p/3>0 ? p/10 : p%3));

  }

  (7)以下程序运行后的输出结果是 〖7〗 。

  main()

  { char m;

  m=’B’+32; printf("%cn",m);

  }

  (8)以下程序运行后的输出结果是 〖8〗 。

  main()

  { int a=1,b=3,c=5;

  if (c=a+b) printf("yesn");

  else printf("non");

  }

  (9)以下程序运行后的输出结果是 〖9〗 。

  main()

  { int i,m=0,n=0,k=0;

  for(i=9; i<=11;i++)

  switch(i/10)

  { case 0: m++;n++;break;

  case 10: n++; break;

  default: k++;n++;

  }

  printf("%d %d %dn",m,n,k);

  }

  (10 )执行以下程序后,输出’#’号的个数是 〖10〗 。

  #include

  main()

  { int i,j;

  for(i=1; i<5; i++)

  for(j=2; j<=i; j++) putchar(’#’);

  }

  (11)以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。

  int fun( int n)

  { int m=0,f=1,i;

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

  { m+=i*f;

  f= 〖11〗 ;

  }

  return m;

  }

  main()

  { printf("m=%dn", 〖12〗 ); }

  (12)以下程序运行后的输出结果是 〖13〗

  main()

  { int i,n[]={0,0,0,0,0};

  for(i=1;i<=4;i++)

  { n[i]=n[i-1]*2+1;

  printf("%d ",n[i]);

  }

  }

  (13)以下程序运行后的输出结果是 〖14〗

  main()

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

  for(i=0;i<3;i++)

  for(j=i+1;j<3;j++) a[j][i]=0;

  for(i=0;i<3;i++)

  { for(j=0;j<3;j++) printf("%d ",a[i][j]);

  printf("n");

  }

  }

  (14)以下程序运行后的输出结果是 〖15〗

  int a=5;

  fun(int b)

  { static int a=10;

  a+=b++;

  printf("%d ",a);

  }

  main()

  { int c=20;

  fun(c);

  a+=c++;

  printf("%dn",a);

  }

相关推荐

猜你喜欢

大家正在看

换一换