试题

计算机二级C语言巩固练习

时间:2025-04-11 17:15:37 试题 我要投稿

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.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

  11.为了避免在嵌套的条件语句if else中产生二义性,C语言规定,else子句总是与( )配对。

  A.缩排位置相同if

  B.其前面最近的if

  C.其后面最近的if

  D.同一行上的if

  12.设有下列程序段:

  char str[]="HelloWorld":

  char* plr;

  ptr=str:

  执行上面的程序段后,*(ptr+10)的值为( )。

  A.’\0 ’

  B.’0’

  C.不确定的值

  D.’0’的地址

  13.有以下程序:

  void swap(char*x,char*y)

  { char t;

  t=*x;*x=*y;*y=t;

  }

  main()

  { char*s1="abe",*s2="123":

  swap(s1,s2);

  printf("%s,%s\n",s1,s2);

  }

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

  A.123,abe

  B.abc.123

  C.1bc,a23

  D.321,cba

  14.下列程序的运行结果是( )。

  #include

  main()

  { static char a[]="Languagef",b[]="programe":

  char*p1,*p2;int k;

  p1=a;p2=b;

  for(k=0;k<=8;k++)

  if(*(p1+k)==*(p2+k))

  printf("%c",*(p1+k)):

  }

  A.gae

  B.ang

  C.program

  D.有语法错

  15.下列程序的运行结果为( )。

  #define MAX(x,y)(x)>(y)?(x):(y)

  main()

  { int a=2,b=3,C=1,d=3,t:

  printf("%d\n",(MAX(a+h,c+d))*100):

  }

  A.500

  B.5

  C.4

  D.400

  参考答案及解析

  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+”的方式勾读和写操作而打开文件,则可以对文件进行读写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。

  11.B。【解析】C语言规定,在if…else语句中,else总是与它前面的最近的if配对。

  12.A。【解析】本题主要考查字符数组和指针,在c语言中,字符型数组在存放字符串时会自动在末尾加上’\0 ’,所以数组str有11个元素;ptr指向数组str的首地址,ptr+ 10是指向str[10],*(ptr+10)是引用str[10]的值。

  13.C。【解析】本题考查swap函数,它的作用是把x、Y 所指的内容互换,其他的不变,因此当执行完调用函数后,仅仅’a’与’1’互换,其他的没有变。

  14.A。【解析】本题考查指针用法,if语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  15.A。【解析】本题考查带参数宏的定义,运算符:(x) >(y)?(x):(y)当表达式为真时输出X,否则输出Y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),输出a+b=5,所以x=5*100。

【计算机二级C语言巩固练习】相关文章:

计算机二级C语言巩固练习题201708-16

计算机二级《C语言》考前巩固练习题201609-10

2017计算机二级C语言知识巩固题08-23

2017计算机二级C语言知识巩固试题05-18

计算机二级C语言练习题07-18

计算机二级C语言考试冲刺练习10-06

计算机二级《C语言》真题练习11-28

全国计算机二级《C语言》巩固试题及答案06-10

计算机二级考试C语言预测上机巩固试题06-17