计算机等级 百分网手机站

计算机二级C语言真题及答案(3)

时间:2018-04-19 19:28:23 计算机等级 我要投稿

计算机二级C语言真题及答案

  A)2

  B)3

  C)4

  D)5

  (33)有以下程序

  #include

  int fun (int x,int y)

  { if(x!=y) return ((x+y)/2);

  else return (x);

  }

  main()

  { inta=4,b=5,c=6;

  printf("%d\n",fun(2*a,fun(b,

  C)));

  }

  程序运行后的输出结果是

  A)3

  B)6

  C)8

  D)12

  (34)有以下程序

  #include

  int fun()

  { static intx=1;

  x*=2;

  return x;

  }

  main()

  { int i,s=1;

  for(i=1;i<=3;i++) s*=fun();

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

  }

  程序运行后的输出结果是

  A)0

  B)10

  C)30

  D)64

  (35)有以下程序

  #include

  #define S(x)4*(x)*x+1

  main()

  { intk=5,j=2;

  printf("%d\n",S(k+j));

  }

  程序运行后的输出结果是

  A)197

  B)143

  C)33

  D)28

  (36)设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是

  A)t1=t2;

  B)t2.num1=t1.num1;

  C)t2.mark=t1.mark;

  D)t2.num2=t1.num2;

  (37)有以下程序

  #include

  struct ord

  { int x,y;}dt[2]={1,2,3,4};

  main()

  {

  struct ord *p=dt;

  printf("%d,",++(p->x));printf("%d\n",++(p->y));

  }

  程序运行后的输出结果是

  A)1,2

  B)4,1

  C)3,4

  D)2,3

  (38)有以下程序

  #include

  struct S

  { inta,b;}data[2]={10,100,20,200};

  main()

  { struct Sp=data[1];

  printf("%d\n",++(p.a));

  }

  程序运行后的输出结果是

  A)10

  B)11

  C)20

  D)21

  (39)有以下程序

  #include

  main()

  { unsignedchar a=8,c;

  c=a>>3;

  printf("%d\n",

  C);

  }

  程序运行后的输出结果是

  A)32

  B)16

  C)1

  D)0

  (40)设fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是

  A)写操作结束后可以从头开始读

  B)只能写不能读

  C)可以在原有内容后追加写

  D)可以随意读和写

  二、填空题

  (1)有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。

  (2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为 【2】 。

  (3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为 【3】 测试。

  (4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空。

  (5)在关系A(S,SN,

  D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称 【5】 是关系A的外码。

  (6)以下程序运行后的输出结果是【6】。

  #include

  main()

  { int a;

  a=(int)((double)(3/2)+0.5+(int)1.99*2);

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

  }

  (7) 有以下程序

  #include

  main()

  { int x;

  scanf("%d",&x);

  if(x>15)printf("%d",x-5);

  if(x>10)printf("%d",x);

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

  }

  若程序运行时从键盘输入12<回车>,则输出结果为【7】。

  (8)有以下程序(说明:字符0的ASCII码值为48)

  #include

  main()

  { charc1,c2;

  scanf("%d",&c1);

  c2=c1+9;

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

  }

  若程序运行时从键盘输入48<回车>,则输出结果为【8】。

  (9)有以下函数

  voidprt(char ch,int n)

  { int i;

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

  printf(i%6!=0?"%c":"%c\n",ch);

  }

  执行调用语句prt('*',24);后,函数共输出了 【9】 行*号。

  (10)以下程序运行后的输出结果是【10】。

  #include

  main()

  { int x=10,y=20,t=0;

  if(x==y)t=x;x=y;y=t;

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

  }

  (11)己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。请填空。

  void fun(inta[N],int k)