历年二级C考试真题.docx

上传人:b****6 文档编号:7751049 上传时间:2023-01-26 格式:DOCX 页数:24 大小:117.61KB
下载 相关 举报
历年二级C考试真题.docx_第1页
第1页 / 共24页
历年二级C考试真题.docx_第2页
第2页 / 共24页
历年二级C考试真题.docx_第3页
第3页 / 共24页
历年二级C考试真题.docx_第4页
第4页 / 共24页
历年二级C考试真题.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

历年二级C考试真题.docx

《历年二级C考试真题.docx》由会员分享,可在线阅读,更多相关《历年二级C考试真题.docx(24页珍藏版)》请在冰豆网上搜索。

历年二级C考试真题.docx

历年二级C考试真题

二级C考试历年真题

第一章

2011.3

1、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是

  A)C语言程序仅可以编译执行

  B)C语言程序仅可以解释执行

  C)C语言程序既可以编译执行又可以解释执行

  D)以上说法都不对

2、以下叙述中错误的是

  A)C语言的可执行程序是由一系列机器指令构成的

  B)用C语言编写的源程序不能直接在计算机上运行

  C)通过编译得到的二进制目标程序需要连接才可以运行

D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

2010.9

3、以下关于结构化程序设计的叙述中正确的是

  A)一个结构化程序必须同时由顺序、分支、循环三种结构组成

  B)结构化程序使用goto语句会很便捷

  C)在C语言中,程序的模块化是利用函数实现的

  D)由三种基本结构构成的程序只能解决小规模的问题

  

4、以下关于简单程序设计的步骤和顺序的说法中正确的是

  A)确定算法后,整理并写出文档,最后进行编码和上机调试

  B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档

  C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档

  D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构

5、以下叙述中错误的是

  A)C程序在运行过程中所有计算都以二进制方式进行

  B)C程序在运行过程中所有计算都以十进制方式进行

  C)所有C程序都需要编译链接无误后才能运行

  D)C程序中整型变量只能存放整数,实型变量只能存放浮点数

2010.3

6、以下叙述正确的是

A)C语言程序是由过程和函数组成的

B)C语言函数可以嵌套调用,例如:

fun(fun(x))

C)C语言函数不可以单独编译

D)C语言中除了main函数,其他函数不可作为单独文件形式存在

7、以下关于C语言的叙述中正确的是

A)C语言中的注释不可以夹在变量名或关键字的中间

B)C语言中的变量可以在使用之前的任何位置进行定义

C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D)C语言的数值常量中夹带空格不影响常量值的正确表示

2009.9

7、以下叙述中正确的是

A)程序设计的任务就是编写程序代码并上机调试

B)程序设计的任务就是确定所用的数据结构

C)程序设计的任务就是确定所用算法

D)以上三种说法都不完整

第二章

2011.3

 1、以下选项中不能用作C程序合法常量的是

  A)1,234B)'\123'

  C)123D)"\x7G"

  (14)以下选项中可用作C程序合法实数的是

  A).1e0B)3.0e0.2

  C)E9D)9.12E

 2、若有定义语句:

inta=3,b=2,c=1;,以下选项中错误的赋值表达式是

  A)a=(b=4)=3;B)a=b=c+1;

C)a=(b=4)+c;D)a=1+(b=c=4);

2010.9

3、有以下定义:

int a;long b;double x,y;则以下选项中正确的表达式是

  A)a%(int)(x-y)

  B)a=x!

=y;

  C)(a*y)%b

  D)y=x+y=x

  

4、以下选项中能表示合法常量的是

  A)整数:

1,200

  B)实数:

1.5E2.0

  C)字符斜杠:

‘\’

  D)字符串:

"\007"

5、表达式a+=a-=a=9的值是

  A)9

  B)_9

  C)18

  D)0

22、有以下程序,其中k的初值为八进制数

#include

main()

{intk=011;

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

}

程序运行后的输出结果是

A)12B)11C)10D)9

2010.3

6、以下C语言用户标识符中,不合法的是

A)_1B)AaBCC)A_BD)a--b

7、若有定义:

doublea=22inti=0,k=18;,则不符合c语言规定的赋值语句是

A)a=a++,i++;B)i=(a+k)<=(i+k);

C)i=a%11;      D)i=!

a;

2009.9

8、表达式:

(int)((double)9/2)-(9)%2的值是

A)0B)3C)4D)5

9、)若有定义语句:

 int x=10;,则表达式x-=x+x的值为

A)-20B)-10C)0D)10

10、以下选项中,能用作用户标识符的是

A)voidB)8_8C)_0_D)unsigned

2009.3

11、以下选项中合法的标识符是

A)1_1B)1-1C)_11D)1--

12、若函数中有定义语句:

intk;,则

A)系统将自动给k赋初值B)这时k中值无定义C)系统将自动给k赋初值-1

D)这时k中无任何值

13、以下选项中,能用作数据常量的是

A)o115B)0118C)1.5e1.5D)115L

(14)设有定义:

intx=2;,以下表达式中,值不为6的是

A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x,x+=2

第三章

2011.3

  1、有以下程序段

  charname[20];

  intnum;

  scanf("name=%snum=%d",name;&num);

  当执行上述程序段,并从键盘输入:

name=Lilinum=1001<回车>后,name的值为

  A)Lili

  B)name=Lili

  C)Lilinum=

  D)name=Lilinum=1001

 2、有以下程序

  #include

  main()

  {intx=011;

  printf("%d\n",++x);

  }

  程序运行后的输出结果是

A)12B)11C)10D)9

2010.9

  

3、若变量已正确定义,在if(W)printf(“%d\n”,k);中,以下不可替代W的是

  A)a<>b+c

  B)ch=getchar()

  C)a==b+c

  D)a++

  

2010.3

4、有以下程序

#include

main()

{chara,b,c,d;

 scanf(“%c%c”,&a,&b);

 c=getchar();d=getchar();

 printf(“%c%c%c%c\n”,a,b,c,d);}

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:

回车也是

一个字符)

12

34

则输出结果是

A)1234B)12C)12D)12

  3  34

5、以下关于C语言数据类型使用的叙述中错误的是

A)若要准确无误差的表示自然数,应使用整数类型

B)若要保存带有多位小数的数据,应使用双精度类型

C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型

6、若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是

A)1B)0C)2D)不知道a的值,不能确定

2009.9

7、阅读以下程序

#include 

main()

{ int case; float printF;

  printf("请输入2个数:

");

  scanf("%d %f",&case,&printF);

  printf("%d %f\n",case,printf);

}

该程序在编译时产生错误,其出错原因是

A)定义语句出错,case是关键字,不能用作用户自定义标识符

B)定义语句出错,printF不能用作用户自定义标识符

C)定义语句无错,scanf不能作为输入函数使用

D)定义语句无措,printf不能输出case的值

8、有以下程序

#include 

main()

{ int a=1,b=0;

  printf("%d,",b=a+b);

  printf("%d",a=2*b);

}

程序运行后的输出结果是

A)0,0B)1,0C)3,2D)1,2

2009.3

9、若有定义语句:

doublex,y,*px,*py,执行了px=&x,py=&y;之后,正确的输入语句是

A)scanf(“%f%f”,x,y);B)scanf(“%f%f”,&x,&y);

C)scanf(“%lf%le”,px,py);D)scanf(“%lf%lf”,x,y);

10、程序段:

intx=12;

doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是

A)123.141593  B)123.141593  C)12,3.141593  D)123.141593

第四、五章(选择循环)

2011.3

1、if语句的基本形式是:

if(表达式)语句,以下关于“表达式”值的叙述中正确的是

  A)必须是逻辑值B)必须是整数值

  C)必须是正数D)可以是任意合法的数值

2、有以下程序

  #include

  main()

  {intx=011;

  printf("%d\n",++x);

  }

  程序运行后的输出结果是

  A)12B)11C)10D)9

3、有以下程序

  #include

  main()

  {ints;

  scanf("%d",&s);

  while(s>0)

  {switch(s)

  {case1:

printf("%d",s+5);

  case2:

printf("%d",s+4);break;

  case3:

printf("%d",s+3);

  default:

printf("%d",s+1);break;

  }

  scanf("%d",&s);

  }

  }

  运行时,若输入123450<回车>,则输出结果是

  A)6566456B)66656C)66666D)6666656

4、有以下程序段

  inti,n;

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

  {n=rand()%5;

  switch(n)

  {case1:

  case3:

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

  case2:

  case4:

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

  case0:

exit(0);

  }

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

  }

  以下关于程序段执行情况的叙述,正确的是

  A)for循环语句固定执行8次

  B)当产生的随机数n为4时结束循环操作

  C)当产生的随机数n为1和2时不做任何操作

  D)当产生的随机数n为0时结束程序运行

5、若i和k都是int类型变量,有以下for语句

  for(i=0,k=-1;k=1;k++)printf("*****\n");

  下面关于语句执行情况的叙述中正确的是

  A)循环体执行两次

  B)循环体执行一次

  C)循环体一次也不执行

  D)构成无限循环

 6、有以下程序

  #include

  main()

  {charb,c;inti;

  b='a';c='A';

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

  {if(i%2)putchar(i+b);

  elseputchar(i+c);

  }printf("\n");

  }

  程序运行后的输出结果是

  A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef

7、有以下程序段

  #include

  main()

  {…

  while(getchar()!

='\n');

  …

  }

  以下叙述中正确的是

  A)此while语句将无限循环

  B)getchar()不可以出现在while语句的条件表达式中

  C)当执行此while语句时,只有按回车键程序才能继续执行

  D)当执行此while语句时,按任意键程序就能继续执行

2010.9

8、有以下程序

  #include

  main()

  {int a=1,b=0;

  if(!

a)b++;

  else if(a==0)if(a)b+=2;

  else b+=3;

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

  }

  程序运行后的输出结果是

  A)0

  B)1

  C)2

  D)3

  

  9)若有定义语句inta,b;doublex;则下列选项中没有错误的是

  A)switch(x%2)              B)switch((int)x/2.0

  {case0:

a++;break;           {case0:

a++;break;

  case1:

b++;break;            case1:

b++;break;

  default:

a++;b++;            default:

a++;b++;

  }                              }

  C)switch((int)x%2)       D)switch((int)(x)%2)

  {case0:

a++;break;           {case0.0:

a++;break;

  case1:

b++;break;             case1.0:

b++;break;

  default:

a++;b++;             default:

a++;b++;

  }                               }

10)有以下程序

  #include

  main()

  {inta=1,b=2;

  while(a<6){b+=a;a+=2;b%=10;}

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

  }

  程序运行后的输出结果是

  A)5,11

  B)7,1

  C)7,11

  D)6,1

  

  11)有以下程序

  #include<stdio.h>

  main()

  {inty=10;

  while(y--);

  printf(”y=%d\n”,y);

  }

  程序执行后的输出结果是

  A)y=0

  B)y=-1

  C)y=1

  D)while构成无限循环

2010.3

(18)以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是

A)switch(a)

{case1:

a=b;break;

default:

a++;

B)switch(a==1)

{case0:

a=b;break;

case1:

a++;

C)switch(a)

{default:

a++;break;

case1:

a=b;

D)switch(a==1)

{case1:

a=b;break;

case0:

a++;

(19)有如下嵌套的if语句

if(a

 if(a

 elsek=c;

if(b

 elsek=c;

以下选项中与上述if语句等价的语句是

A)k=(a

a:

b;k=(b<c)?

b:

c;

B)k=(a

((b<c)?

a:

b)((b>c)?

b:

c);

C)k=(a

((a<c)?

a:

c)((b<c)?

b:

c);

D)k=(a

a:

b;k=(a<c)?

a:

c;

(20)有以下程序

#include

main()

{inti,j,m=1;

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

{for(j=3;j>0;j--)

{if(i+j>3)break;

 m*=i*j;}

}

printf(“m=%d\n”,m);

}

程序运行后的输出结果是

A)m=6B)m=2C)m=4D)m=5

(21)有以下程序

#include

main()

{inta=1,b=2;

 for(;a<8;a++){b+=a;a+=2;}

printf(“%d,%d\n”,a,b);

}

程序运行后的输出结果是

A)9,18B)8,11C)7,11D)10,14

(22)有以下程序,其中k的初值为八进制数

#include

main()

{intk=011;

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

}

程序运行后的输出结果是

A)12B)11C)10D)9

2009.9

18.(18)有以下程序

#include 

main()

{ int c=0,k;

  for(k=1;k<3;k++)

    switch(k)

    { default:

c+=k;

      case 2:

c++;break;

      case 4:

c+=2;break;

    }

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

}

程序运行后的输出结果是

A)3B)5C)7D)9

19.(19)以下程序段中,与语句:

 k=a>b?

(b>c?

1:

0):

0;功能相同的是

A)if((a>b)&&(b>c)) k=1;

  else k=0;

B)if((a>b)||(b>c)) k=1;

  else k=0;

C)if(a<=b)k=0;

  else if(b<=c) k=1;

D) if(a>b) k=1;

   else if(b>c) k=1;

   else k=0;

20.(20)有以下程序

#include 

main()

{  char s[]={"012xy"};int i,n=0;

   for(i=0;s[i]!

=0;i++)

     if(s[i]>'a'&&s[i]<='z') n++;

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

}

程序运行后的输出结果是

A)0B)2C)3D)5

21.

(21)有以下程序

#include 

main()

{  int n=2,k=0;

   while(k++&&n++>2);

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

}

程序运行后的输出结果是

A)0 2B)1 3C)5 7D)1 2

22.

(22)有以下定义语句,编译时会出现编译错误的是

A) char a='a';B) char a='\n';C) char a='aa';D) char a='\x2d';

23.

(23)有以下程序

#include 

main()

{  char c1,c2;

   c1='A'+'8'-'4';

   c2='A'+'8'-'5';

   printf("%c,%d\n",c1,c2);

}

已知字母A的ASCII码为65,程序运行后的输出结果是

A)E,68B)D,69C)E,DD)输出无定值

24.

(24)有以下程序

#include 

void fun(int p)

{  int d=2;

   p=d++; 

   printf("%d",p);

}

main()

{  int a=1;

   fun(a);

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

}

程序运行后的输出结果是

A)32B)12C)21D)22

第6章数组

2011.3

(21)有以下程序

  #include

  voidmain()

  {chars[]="012xy\08s34f4w2";

  inti,n=0;

  for(i=0;s[i]!

=0;i++)

  if(s[i]>='0'&&s[i]<='9')n++;

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

  }

  程序运行后的输出结果是

  A)0B)3C)7D)8

(30)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

  #include

  #defineN10

  voidfun(intx[N])

  {inti=0;

while(i

scanf(“%d”,__________)

  }

  在程序中下划线处应填入的是

  A)x+iB)&x[i+1]

  C)x+(i++)D)&x[++i]

(31)有以下程序

  #include

  main()

  {chara[30],b[30];

  scanf("%s",a);

  gets(b);

  printf("%s\n%s\n",a,b);

  }

  程序运行时若输入:

  howareyou?

Iamfine<回车>

  则输出结果是

  A)howareyou?

B)how

  Iamfineareyou?

Iamfine

C)howareyou?

IamfineD)rowareyou?

2010.9

(22)有以下程序

  #include

  main()

  {chars[]=”rstuv";

  printf(”%c\n”,*s+2);

  }

  程序运行后的输出结果是

  A)tuv

  B)字符t的ASCII码值

  C)t

  D)出错

(23)有以下程序

  #include<stdio.h>

  #include<string.h>

  main()

  {charx[]=”STRING”;

  x[0]=0;x[1]=’\0’;x[2]=’0’;

  printf(”%d %d\n”,sizeof(x),strlen(x));

  }

  程序运行后的输出结果是

  A)6 1

  B)7 0

  C)6 3

  D)7 1

 (27)下列定义数组的语句中,正确的是

  A)int N=10;           B)#defineN10

  int x[N];               intx[N];

  C)int x[0..10];       D)intx[];

  

  (28)若要定义一个具有5个元素的整型数组,以下错误的定义语句是

  A)int a[5]=﹛0﹜;

  B)int b[]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1