当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机等级二级C语言章节习题及答案(8)
发布时间:2010/11/7 23:37:11 来源:城市学习网 编辑:ziteng
  第9章 预处理命令
  一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
  9.1 有以下程序
  #define F(X,Y)(X)*(Y)
  main()
  { int a=3, b=4;
  printf("%d\n", F(a++, b++));
  }
  程序运行后的输出结果是
  A)12
  B)15
  C)16
  D)20
  正确答案: A
  9.2 以下叙述中不正确的是
  A)预处理命令行都必须以#号开始
  B)在程序中凡是以#号开始的语句行都是预处理命令行
  C)宏替换不占用运行时间,只占编译时间
  D)在以下定义是正确的: #define PI 3.1415926;
  正确答案: D
  9.3 有如下程序:
  #define N 2
  #define M N+1
  #define NUM 2*M+1
  main()
  { int i;
  for(i=1;i<=NUM;i++)printf("%d\n",i);
  }
  该程序中的for循环执行的次数是
  A)5
  B)6
  C)7
  D)8
  正确答案: B
  9.4 以下程序的运行结果是
  #define MIN(x,y)(x)<(y)?(x):(y)
  main()
  { int i=10,j=15,k;
  k=10*MIN(i,j);
  printf("%d\n",k);
  }
  A)10
  B)15
  C)100
  D)150
  考生答案: 正确答案: B
  9.5 有如下定义
  #define D 2
  int x=5;float y=3.83;
  char c=′D′;
  则下面选项中错误的是
  A)x++;
  B)y++;
  C)c++;
  D)D++;
  正确答案: D
  9.6 以下程序段的执行结果为
  #define PLUS(X,Y)X+Y
  main()
  { int x=1,y=2,z=3,sum;
  sum=PLUS(x+y,z)*PLUS(y,z);
  printf("SUM=%d",sum);
  }
  A)SUM=9 B)SUM=12 C)SUM=18 D)SUM=28
  正确答案: B
  9.7 下列程序的输出结果是
  #include "stdio.h"
  #defineM(x,y)x%y
  main()
  { int a,m=12,n=100;
  a=M(n,m);
  printf("%d\n",a--);
  }
  A)2
  B)3
  C)4
  D)5
  正确答案: C
  9.8 阅读下列程序段,则程序的输出结果为
  #include "stdio.h"
  #define M(X,Y)(X)*(Y)
  #define N(X,Y)(X)/(Y)
  main()
  { int a=5,b=6,c=8,k;
  k=N(M(a,b),c);
  printf("%d\n",k);
  }
  A)3
  B)5
  C)6
  D)8
  正确答案: A
  9.9 已知#define M 2;的宏定义,执行语句k=M*5;后,k的值是
  A)10
  B)5
  C)2
  D)以上答案都不对
  正确答案: D
  9.10 以下关于宏替换叙述中,错误的是
  A)宏替换占用编译时间
  B)替换文本中可以包含已定义过的宏名
  C)宏名可以由+号组成
  D)宏替换只能是字符替换
  正确答案: C [NextPage]   二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)
  9.11 设有如下宏定义
  #define MYSWAP(z,x,y)
  { z=x;x=y;y=z;}
  以下程序段通过宏调用实现变量a,b内容交换,请填空。
  float a=5,b=16,c;
  MYSWAP(【1】,a,b);
  正确答案: c
  9.12 以下程序的输出结果为【2】。
  #define JFT(x)x*x
  main()
  { int a, k=3;
  a=++JFT(k+1);
  printf("%d",a);
  }
  正确答案: 9
  9.13 以下程序的输出结果是【3】 。
  #define MAX(x,y)(x)>(y)?(x):(y)
  main()
  { int a=5,b=2,c=3,d=3,t;
  t=MAX(a+b,c+d)*10;
  printf("%d\n",t);
  }
  正确答案: 7
  9.14 下面程序的运行结果是【4】。
  #define N 10
  #define s(x)x*x
  #define f(x)(x*x)
  main()
  { int i1,i2;
  i1=1000/s(N); i2=1000/f(N);
  printf("%d %d\n",i1,i2);
  }
  正确答案: 1000 10
  9.15 以下程序的输出结果是【5】。
  #define PR(ar)printf("%d,",ar)
  main()
  { int j, a[]={1, 3, 5, 7, 9, 11, 15}, *p=a+5;
  for(j=3; j; j--)
  switch(j)
  { case 1:
  case 2: PR(*p++); break;
  case 3: PR(*(--p));
  }
  printf("\n");
  }
  正确答案: 9,9,11,
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved