C语言 百分网手机站

2017年最新C语言考题带答案

时间:2018-04-10 C语言 我要投稿

  谦虚是学习的朋友,自满是学习的敌人。以下是小编为大家搜索整理2017年最新C语言考题及答案,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

  一、选择题((1)-(40)每小题1分, (41)-(50)每小题2分, 共60分)

  下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  (1)通常所说的主机主要包括

  A.CPU

  B.CPU和内存

  C.CPU、内存与外存

  D.CPU、内存与硬盘

  (2)在微机系统中,最基本的输入输出模块BIOS存放在

  A.RAM中

  B.ROM中

  C.硬盘中

  D.寄存器中

  (3)一个24*24点阵的汉字字形信息所占的字节数为

  A.2

  B.24

  C.32

  D.72

  (4)bit的意思是

  A.字

  B.字长

  C.字节

  D.二进制位

  (5)某学校的工资管理程序属于

  A.系统程序

  B.应用程序

  C.工具软件

  D.文字处理软件

  (6)与十六进制数BB等值的十进制数是

  A.187

  B.188

  C.185

  D.186

  (7)设一张软盘已染上病毒,能清除病毒的措施是

  A.删除该软盘上的所有文件

  B.格式化该软盘

  C.删除该软盘上的所有可执行文件

  C.删除该软盘上的所有批处理文件

  (8)一张3.5英寸双面高密度软盘片的容量为

  A.360KB

  B.720KB

  C.1.44MB

  D.1.2MB

  (9)与二进制小数0.1等值的十六进制小数为

  A.0.1

  B.0.2

  C.0.4

  D.0.8

  (10)DOS系统的热启动与冷启动的不同之处为热启动时

  A.不检测键盘、处设接口与内存

  B.不提示用户输入日期与时间

  C.不用装入COMMAND.COM文件

  D.不能从软盘启动

  (11)为了将磁盘上的文件K1,K2,K3,依次连接在文件K4的后面,应使用命令

  A.COPY K1+K2+K3 K4

  B.COPY K1+K2+K3+K4

  C.COPY K1+K2+K3+K4 K4

  D.COPY K4+K1+K2+K3

  (12)下列文件名中可以作为批处理文件名的是

  A.AUTOEXC.C

  B.AUTOEXEC

  C.ATX.BAT

  D.AUTO.TXT

  (13)要打印输出当前盘的根目录下所有文件与子目录清单,应使用命令

  A.DIR \ >PRN

  B.TYPE \ >PRN

  C.DIR >PRN

  C.TYPE >PRN

  C.DIR >PRN

  D.TYPE >PRN

  (14)设可执行文件ABC.EXE所需要的本该由键盘输入的数据已经按格式存放在文件XYZ中,并要求执行结果放在XYZ中输入数据的后面。下列命令中正确的是

  A.ABCXYZ

  B.ABC>XYZ

  C.ABC  D.ABC>>XYZ

  (15)设当前盘中某一目录路径为\A\B\C,当前目录为\A。下列命令中肯定出错的是

  A.MD \A\C

  B.CD..

  C.MD \A\B\A

  D.MD \A\B

  (16)设A盘的目录结构如下:

  根目录

  │

  ┌────┬────┬──┴───┬─────┬────┐

  │ │ │ │ │ │

  ABC D1子目录 DX.C Q.DAT D2子目录 A.FOR

  │ │

  ┌────┬┴──┬───┐ ┌─────┼────┐

  │ │ │ │ │ │ │

  B.PAS D3子目录 Y.BAS A.C A1.C D4子目录 XYZ.C

  │

  ┌───┬──┴─┬───┐

  │ │ │ │

  QR.C NA.C A.TXT B.C

  如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是

  A.\D2\D4\QR.C

  B.D4\QR.C

  C.A:D4\QR.C

  D.A:D2\D4\QR.C(17)下列DOS命令中,有错误的是

  A.TYPE AAB.FOR>CON

  B.TYPE ? AB.FOR

  C.COPY *.C CON

  D.COPY CON PRN

  (18)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是

  A.COPY C:\XYZ.TXT+AB1.TXT

  B.COPY AB1.TXT>>C:\XYZ.TXT

  C.TYPE AB1.TXT>C:\XYZ.TXT

  D.AB1.TXT+C:\XYZ.TXT>C:\XYZ.TXT

  (19)下列命令中合法的是

  A.DISKCOPY A: A:

  B.DISKCOPY A: C:

  C.DISKCOPY C: A:

  D.DISKCOPY C: D:

  (20)设当前盘中某一目录路径为\A\B\C\D\XU,当前目录为\A。要将根目录下扩展名为.C的所有文件复制到当前目录下,并将扩展名改为.FOR,应使用命令

  A.COPY \*.C *.FOR

  B.COPY *.C \A\*.FOR

  C.COPY *.FOR \*.C

  D.COPY \A\*.C *.FOR

  (21)下列不正确的转义字符是

  A.'\\'

  B.'\"

  C.'074'

  D.'\0'

  (22)若有以下定义:

  char a; int b;

  float c; double d;

  则表达式a*b+d-c值的类型为

  A.float

  B.int

  C.char

  D.double

  (23)表示关系x<=y<=z的c语言表达式为

  A.(X<=Y)&&(Y<=Z)

  B.(X<=Y)AND(Y<=Z)

  C.(X<=Y<=Z)

  D.(X<=Y)&(Y<=Z)

  (24)设a=1,b=2,c=3,d=4,则表达式:

  A.765.12<回车>

  B.i=100,f=765.12<回车>

  C.100<回车>765.12<回车>

  D.x=100<回车>y=765.12<回车>

  (29)设x和y均为int型变量,则执行下的循环后,y值为

  for(y=1,x=1;y<=50;y++)

  { if(x>=10))break;

  if (x%2==1)

  { x+=5; continue;}

  x-=3;

  }

  A.2

  B.4

  C.6

  D.8

  (30)给出以下定义:

  char x[ ]="abcdefg";

  char y[ ]={'a','b','c','d','e','f','g'};

  则正确的叙述为

  A.数组X和数组Y等价

  B.数组x和数组Y的长度相同

  C.数组X的长度大于数组Y的长度

  D.数组X的长度小于数组Y的长度

  (31)以下叙述中不正确的是

  A.在不同的函数中可以使用相同名字的变量

  B.函数中的形式参数是局部变量

  C.在一个函数内定义的变量只在本函数范围内有效

  D.在一个函数内的复合语句中定义的变量在本函数范围内有效

  (32)假定a和b为int型变量,则执行以下语句后b的值为

  a=1; b=10;

  do

  { b-=a; a++; }

  while (b--<0);

  A.9

  B.-2

  C.-1

  D.8

  (33)设j为int型变量,则下面for循环语句的执行结果是

  for( j=10;j>3;j--)

  { if(j%3)j--;

  --j; --j;

  printf("%d ",j);

  }

  A.6 3

  B.7 4

  C.6 2

  D.7 3

  (34)设有以下宏定义:

  #define N 3

  #define Y(n)( (N+1)*n)

  则执行语句:z=2 * (N+Y(5+1));后,z的值为

  A.出错

  B.42

  C.48

  D.54(35)设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

  A.k=*P1+*P2;

  B.p2=k;

  C.P1=P2;

  D.K=*P1 * (*P2);

  (36)设有如下定义:

  int arr[]={6,7,8,9,10};

  int * ptr;

  则下列程序段的输出结果为

  ptr=arr;

  * (ptr+2)+=2;

  printf ("%d,%d\n",*ptr,*(ptr+2));

  A.8,10

  B.6,8

  C.7,9

  D.6,10

  (37)以下程序的输出结果是

  main()

  { int i,k,a[10],p[3]:

  K=5;

  for (i=0;i<10;i++)a[i]=i;

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

  for (i=0;i<3;i++)k+=p[i]*2;

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

  }

  A.20

  B.21

  C.22

  D.23

  (38)执行以下程序段后,m的值为

  int a[2][3]={ {1,2,3},{4,5,6} };

  int m,*p;

  p=&a[0][0];

  m=(*p)*(*(p+2))*(*(p+4));

  A)15

  B.14

  C.13

  D.12

  (39)有以下程序段

  char arr[]="ABCDE";

  char *ptr;

  for(ptr=arr;ptr

  main()

  { union

  { int k;

  char i[2];

  } *s,a;

  s=&a;

  s->i[0]=0x39; s->i[1]=0x38;

  printf("%x\n",s->k);

  }

  输出结果是