C语言 百分网手机站

计算机二级C语言习题

时间:2020-10-08 13:31:50 C语言 我要投稿

2017年计算机二级C语言精选习题

  练习做多了自然会形成自己的做题方法和速度,为此,今天百分网小编为大家整理了以下2017年计算机二级C语言精选习题,希望对大家有帮助!

  1.下列说法正确的是( )。

  A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

  B.在c语言中,数组元素的个数可以不确定,允许随机变动

  C.在C语言中,数组元素的数据类型可以不一致

  D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数

  2.表达式“~0x11”的值是( )。

  A.0xFFEE

  B.0x71

  C.0x0071

  D.0xFFF1

  3.下列程序的输出结果是( )。

  main()

  { int p[8]={11,12,13,14,15,16,17,18},i=0,j =0;

  while(i++<7)

  if(p[i]%2)j+=p[i];

  printf("%d\n",j);

  }

  A.42

  B.45

  C.56

  D.60

  4.下列程序的输出结果是( )。

  #included stdi0.h>

  #included string.h>

  void fun(int b[])

  { static int i=0;

  do

  { b[i]+=b[i+1];

  }while(++i<2);

  }

  main()

  { int k,a[5]={1,3,5,4,9};

  fun(a);

  for(k=0;k<5;k++)printf("%d",a[k]);

  }

  A.13579

  B.48579

  C.48549

  D.48999

  5.有以下程序:

  main()

  { int a=1,b=3,C=5,*P;

  int*p1=&a,*p2=&b,*p3=&c;

  *p=*p1*(*p2);

  }

  执行后的输出结果是( )。

  A.1

  B.2

  C.3

  D.4

  6.有以下程序:

  fun(int x)

  { int P;

  if(x==0 || x==l)return(3);

  p=x-fun(x-2);

  return p;

  }

  main()

  {printf("%d\n",fun(7));}

  程序执行后的输出结果是( )。

  A.7

  B.3

  C.2

  D.0

  7.下述程序的运行结果是( )。

  #included stdio.h>

  #included strin9.h>

  main()

  { char*s1="abDuj";

  char*s2="ABdUG";

  int t;

  t=strcmp(s1,s2);

  printf("%d",t);

  }

  A.正数

  B.负数

  C.零

  D.不确定的值

  8.下列程序中c的二进制值是( )。

  char a=2,b=4,c;

  c=a^b>>2;

  A.00000011

  B.00010100

  C.00011100

  D.00011000

  9.函数fseek()的正确调用形式是( )。

  A.fseek(位移量,起始点,文件类型指针);

  B.fseek(文件类型指针,位移量,起始点);

  C.fseek(文件类型指针,起始点,位移量);

  D.fseek(起始点,位移量,文件类型指针);

  10.下列叙述正确的是( )。

  A.C语言中的文件是流式文件,因此只能顺序存取数据

  B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

  C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

  D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

  参考答案及解析:

  1.D。【解析】在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。

  2.A。【解析】本题主要考查按位求反运算:十六进制整型常量的形式是以数字Ox开头的十六进制字符串;位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变1。

  3.B。【解析】C语言中,数组的下标默认为0,因此数组P的下标从0开始,所以p[8]的范围为0~7。第l次循环i=0,执行循环,得出i=1,因此p[i]为p[1]=12,12%2= 0,不执行后面的语句;接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;依此类推最后退出循环。最后j 的值为:j=13+15+17=45。

  4.C。【解析】本题考查do-while循环,在fun函数中,首先定义了静态变量i=0,do-while循环要实现的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不变的规则重新给b数组赋值。在主函数中,通过调用fun函数,按上面的规则对数组a重新赋值,最后输出数组a。

  5.C。【解析】本题中指针p1、p2、p3指向a、b、c值所存放的地址空间,然后再将指针变量*p1、*p2中值的乘积赋给指针变量*P,即赋给变量c,输出c的值3。

  6.C。【解析】在函数funlint x)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun (x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun (1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。

  7.A。【解析】本题考查符符串比较函数和两个字符串比较的原则这两个知识点。

  (1)两字符串比较的原则是依次比较两个字符串同一位置的`一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大

  (2)strcmp(s1,s2)的返回值,当str1str2,返回值为正数。

  8.A。【解析】本题主要者查右移运算和按位异或。把b化为二进制数为00000100,右移两位后为00000001,a的二进制为00000010,两者异或为00000011。

  9.B。【解析】指针函数fseek()的调用形式为:fseek (fp,offset,position);fseek函数参数说明:“fp”是指向该文件的文件型指针;“offset”为位移量,是指从起始点position 到要确定的新位置的字节数。以起点为基准,向前移动字节数。“position”为起始点,指出以文件的什么位置为基准进行移动,position的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表示文件的末尾。

  10.D。【解析】在C语言巾,文件的存取方式有两种:顺序存取和直接存取。如果以“a”的方式对已打开的文件进

  行写操作后,则原文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式勾读和写操作而打开文件,则可以对文件进行读写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。

【2017年计算机二级C语言精选习题】相关文章:

1.2017年计算机二级《C语言》基础练习题及答案

2.2017年计算机二级C语言章节练习题及答案

3.计算机二级C语言巩固练习题2017

4.2017年计算机二级C语言循环结构试题考点

5.计算机二级C语言练习题

6.2016年计算机二级《C语言》基础练习题及答案

7.2017年下半年计算机二级《C语言》基础练习题

8.2017计算机二级C语言章节练习题及答案

9.计算机二级C语言模拟练习题