自考资讯

导航

自学考试《C语言程序设计》试题及答案

来源 :中华考试网 2017-01-31

  阅读程序题

  导读:学会阅读程序对于初学者来说很重要,一方面可以巩固所学的语法知识,另一方面通过阅读别人写好的程序来打开自己的思路,就所谓见多识广。读者通过阅读理解程序,从给出的四个备选参考答案中,选择程序的正确输出。如果选择有误,就要认真分析原因,是概念方面的错误还是对程序逻辑理解不对,从而加深对语法规则的理解,提高程序设计能力。程序设计语言是开发程序的一个工具,学习语言的目的是为了编写程序来解决实际问题,所以特别提倡通过实际上机来检验备选答案,增强动手能力。习题基本上是按照教材的章节来安排的,读者可以根据学习的进度选择部分习题。

  【2.1】以下程序的输出结果是 。

  main( )

  {

  float a;

  a=1/100000000;

  printf("%g",a);

  }

  A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0

  【2.2】下面程序的输出结果是____。

  #include

  main( )

  {

  int x=10;

  {

  int x=20;

  printf ("%d,", x);

  }

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

  }

  A) 10,20 B) 20,10 C) 10,10 D) 20,20

  【2.3】以下程序的输出结果是____。

  main()

  {

  unsigned int n;

  int i=-521;

  n=i;

  printf("n=%u\n",n);

  }

  A) n=-521 B) n=521 C) n=65015 D) n=102170103

  【2.4】以下程序的输出结果是 。

  main( )

  {

  int x=10, y=10;

  printf("%d %d\n", x――, ――y);

  }

  A) 10 10 B) 9 9 C) 9 10 D) 10 9

  【2.5】以下程序的输出结果是____。

  main()

  {

  int n=1;

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

  }

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

  【2.6】以下程序的输出结果是____。

  main()

  { int x=0x02ff,y=0x0ff00;

  printf("%d\n",(x&y)>>4|0x005f);

  }

  A) 127 B) 255 C) 128 D) 1

  【2.7】以下程序的输出结果是____。

  main()

  {

  int a=1;

  char c='a';

  float f=2.0;

  printf("%d\n",(!(a==0),f!=0&&c=='A'));

  }

  A) 0 B) 1

  【2.8】下面程序的输出结果是____。

  main()

  { int a=1,i=a+1;

  do

  { a++ ;

  }while( !~i++ > 3);

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

  }

  A) 1 B) 2 C) 3 D) 4

  【2.9】下面程序的输出结果是____。

  main()

  { int a=111;

  a=a^00;

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

  }

  A) 111,157 B) 0,0 C) 20,24 D) 7,7

  【2.10】下面程序的输出结果是____。

  main()

  { char s[12]= "a book";

  printf("%.4s",s);

  }

  A) a book! B) a book!<四个空格》

  C) a bo D) 格式描述错误,输出不确定

  【2.11】下面程序的输出结果是____。

  main()

  { int a,b;

  scanf("%2d%3d",&a,&b);

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

  }

  A) a=12 b=34 B) a=123 b=45 C) a=12 b=345 D) 语句右错误

  【2.12】以下程序段的输出结果是 。 int a=10,b=50,c=30;

  if(a>b)

  a=b;

  b=c;

  c=a;

  printf("a=%d b=%d c=%d\n",a,b,c);

  A) a=10 b=50 c=10 B) a=10 b=30 c=10

  C) a=50 b=30 c=10 D) a=50 b=30 c=50

  【2.13】以下程序的输出结果是 。 main()

  { int a=0,b=1,c=0,d=20;

  if(a) d=d-10;

  else if(!b)

  if(!c) d=15;

  else d=25;

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

  }

  A) d=10 B) d=15 C) d=20 D) d=25

  【2.14】下面程序的输出结果为 。

  main()

  { int a=1,b=0;

  switch(a)

  { case 1: switch (b)

  { case 0: printf("**0**"); break;

  case 1: printf("**1**"); break;

  }

  case 2: printf("**2**"); break;

  }

  }

  A) **0** B) **0****2** C) **0****1****2** D) 有语法错误

  【2.15】以下程序的输出结果是 。 main()

  { char *s="12134211";

  int v1=0,v2=0,v3=0,v4=0,k;

  for(k=0;s[k];k++)

  switch(s[k])

  { case '1': v1++;

  case '3': v3++;

  case '2': v2++;

  default: v4++;

  }

  printf("v1=%d, v2=%d, v3=%d, v4=%d\n",v1,v2,v3,v4);

  }

  A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1

  C) v1=5,v2=8,v3=6,v4=1 D) v1=4,v2=7,v3=5,v4=8

  【2.16】下面程序的输出是 。

  main()

  { int x=1,y=0,a=0,b=0;

  switch(x)

  { case 1: switch(y)

  { case 0: a++;break;

  case 1: b++;break;

  }

  case 2: a++;b++;break;

  }

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

  }

  A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2

  【2.17】下面程序的输出是____。

  main()

  { int num=0;

  while(num<=2)

  { num++;

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

  }

  }

  A) 1 B) 1 C) 1 D) 1

  2 2 2

  3 3

  4

  【2.18】下面程序的输出结果是____。

  main()

  { int a=1,b=0;

  do

  { switch(a)

  { case 1: b=1;break;

  case 2: b=2;break;

  default : b=0;

  }

  b=a+b;

  }while(!b);

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

  }

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

  【2.19】从键盘上输入"446755"时,下面程序的输出是____。

  #include

  main()

  { int c;

  while((c=getchar())!='\n')

  switch(c -'2')

  { case 0:

  case 1: putchar(c+4);

  case 2: putchar(c+4);break;

  case 3: putchar(c+3);

  default: putchar(c+2);break;

  }

  printf("\n");

  }

  A) 888988 B) 668966 C) 88898787 D) 66898787

  【2.20】下面程序的输出结果是____。

  main()

  { int k=0;

  char c='A';

  do

  { switch(c++)

  { case 'A': k++;break;

  case 'B': k--;

  case 'C': k+=2;break;

  case 'D': k=k%2;contiue;

  case 'E': k=k+10;break;

  default: k=k/3;

  }

  k++;

  }while(c<'C') ;

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

  }

  A) k=1 B) k=2 C) k=3 D) k=4

  【2.21】下面程序的输出结果是____。

  main()

  { int x,i;

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

  { x=i;

  if(++x%2==0)

  if(++x%3==0)

  if(++x%7==0)

  printf("%d ",x);

  }

  }

  A) 39 81 B) 42 84 C) 26 68 D) 28 70

  【2.22】下面程序的输出结果是____。

  #include

  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

  【2.23】假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是____。

  #include

  main()

  { float x,y,z;

  scanf("%f,%f",&x,&y);

  z=x/y;

  while(1)

  { if(fabs(z)>1.0)

  { x=y;

  y=z;

  z=x/y;

  }

  else break;

  }

  printf("%f\n",y);

  }

  A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000

  【2.24】下面程序的输出结果是____。

  main()

  { int i,j,x=0;

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

  { x++;

  for(j=0;j<-3;j++)

  { if(j%2)

  continue;

  x++;

  }

  x++;

  }

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

  }

  A) x=4 B) x=8 C) x=6 D) x=12

  【2.25】下面程序的输出结果是____。

  main()

  { int i,j,k=10;

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

  { k++;

  { int k=0;

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

  { if(j%2) continue;

  k++;

  }

  }

  k++;

  }

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

  }

  A) k=4 B) k=8 C) k=14 D) k=18

  【2.26】下面程序的输出结果是____。

  #include

  main( )

  { int n[3][3], i, j;

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

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

  n[i][j]=i+j;

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

  for(j=0;j<2;j++ )

  n[i+1][j+1]+=n[i][j];

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

  }

  A) 14 B) 0 C) 6 D) 不确定

  【2.27】下面程序的输出结果是____。

  #include

  main( )

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

  int i,j,n;

  n=9;

  i=n/5;

  j=n-i*5-1;

  printf("a[%d][%d]=%d\n", i,j,a[i][j]);

  }

  A) 6 B) -3 C) 2 D) 不确定

  【2.28】下面程序的输出结果是____。

  int m[3][3]={ {1}, {2}, {3} };

  int n[3][3]={ 1, 2, 3 };

  main( )

  { printf("%d\n", m[1][0]+n[0][0] ); /* ① */

  printf("%d\n", m[0][1]+n[1][0] ); /* ② */

  }

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

  【2.29】下面程序的输出结果是____。

  #include

  main( )

  { char s1[50]={"some string *"},s2[]={"test"};

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

  }

  A) some string * B) test

  C) some stritest D) some string *test

  /**********************************************************************************/

  【2.30】下面程序的输出结果是____。

  #include

  f(char *s)

  { char *p=s;

  while(*p!='\0')

  p++;

  return(p-s);

  }

  main()

  { printf("%d\n",f("ABCDEF"));

  }

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

分享到

您可能感兴趣的文章