当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年全国计算机等级二级C语言模拟试题及答案(13)
发布时间:2010/11/7 23:25:40 来源:城市学习网 编辑:ziteng
  一、单项选择题。(每题1分,共20分)
  1. C程序的基本单位是:(     )
  A.子程序
  B.程序
  C.子过程
  D.函数
  2.在C语言中,非法的八进制是:(     )
  A.016
  B.018
  C.017
  D.02
  3. 不是C语言实型常量的是:(     )
  A.55.0
  B.0.0
  C.55.5
  D.55e2.5
  4 .字符串“xyzw”在内存中占用的字节数是:(     )
  A.6
  B.5
  C.4
  D.3
  5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:(     )
  A.2.0
  B.2.25
  C.2.1
  D.1.5
  6. 若有语句char  c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:(  )
  (a的ASCII码值为97)
  A.M,2
  B.G,3
  C.G,2
  D.D,g
  7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:(     )
  A.a=2.2,b=3
  B.a=2.2 b=3
  C.2.2 3
  D.2.2,3
  8.表示关系12<=x<=y的C语言表达式为:(     )
  A.(12<=x)&(x<=y)
  B. (12<=x)&&(x<=y)
  C. (12<=x)|(x<=y)
  D.(12<=x)||(x<=y)
  9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mA.1
  B.3
  C.2
  D.4
  10. 若有说明和语句:int a=5,b=6;b*=a+1;则b的值为:(     )
  A.5
  B.6
  C.31
  D.36
  11. 设整型变量s,t,c1,c2,c3,c4的值均为2,则执行语句(s=c1==c2)||(t=c3>c4)后,s,t的值为:(     )
  A.1,2
  B.1,1
  C.0,1
  D.1,0
  12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:(     )
  A.4
  B.6
  C.5
  D.1
  13. 对于for(s=2;  ;s++)可以理解为:(     )
  A. for(s=2;0 ;s++)
  B. for(s=2;1 ;s++)
  C. for(s=2;s<2 ;s++)
  D. for(s=2;s>2;s++)
  14. 若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:(     )
  A.a[g-h]
  B.a[4]
  C.a[`d`-`h`]
  D.a[`h`-`c`]
  15. 设:char s[10]={“october”};则printf(“%d\n”,strlen(s));输出是:(  )
  A.7
  B.8
  C.10
  D.11
  16. 若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有个元素:(     )
  A.8
  B.5
  C.3
  D.15
  17. 设int a=5,b,*p=&a,则使b不等于5的语句为: (     )
  A.b=*&a
  B.b=*a
  C.b=*p
  D.b=a
  18. 若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是: (     )
  A.*p
  B.*a
  C.a[7]
  D.a[p-a]
  19. 若有int b[4]={0,1,2,3},*p则数值不为3的表达式是: (     )
  A.p=s+2,*(p++)
  B.p=s+3,*p++
  C. p=s+2,*( ++p)
  D.s[3]
  20.设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:(     )
  A.(*p).c2.a
  B.(*p).a
  C.p->c2.a
  D. p.c2.a [NextPage]  二、填空题。(每空1分,共15分)
  1.C语言标识符由 _________、__________和___________来构造。
  2.在C语言中,字符串常量是用__________一串字符。
  3.若有说明和语句:int a=25,b=60;b=++a;则b的值是__________ 。
  4.若int x=5;while(x>0)printf(“%d”,x--);的循环执行次数为__________。
  5.若有int a[5],*p=a;则p+2表示第__________ 个元素的地址。
  6.若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++则b和y的值分别是__________、__________。
  7.已知整型变量a=3,b=4,c=5,写出逻辑表达式a||b+c>c&&b-c的值是__________。
  8.C程序设计的三种基本结构是 ________、________和________。
  9.数组是表示类型相同的数据,而结构体则是若干__________数据项的集合。
  10.C语言中文件是指__________ 。
  三、将下列程序补充完整。(每空2.5分,共30分)
  1.输入三角形的三条边a,b,c,求三角形的面积。
  #include “math.h”
  #include “stdio.h”
  main( )
  {float  a,b,c,d,t,s;
  printf(“请输入三角形的三条边:”);
  scanf(“%f,%f,%f”,&a,&b,&c);
  if   (1)
  printf(“%f%f%f不能构成三角形!”, a,b,c);
  else {t=(a+b+c)/2;
  s=  (2)
  printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”, a,b,c,s);}}
  (1) __________
  (2) __________
  2.输入两个整数,n1,n2(要求n1#include “stdio.h”
  main()
  {int n1,n2,j,n=0;
  printf(“\n请输入两个数:”);
  scanf (      (3)        );
  if(n1>n2){   (4)    }
  for(j=n1;j<=n2,j++)
  if    (5)      n++;
  printf(“a=],b=],n=]\n”n1,n2,n);}
  (3) __________
  (4) __________
  (5) __________
  3.输入两个整数,n1,n2(要求n1  #include “math.h”
  #include “stdio.h”
  int prime (int x)
  {int k;
  for (6)
  if (x%k==0) return(0);
  return(1)}
  main()
  {int a,b,j,n=0;
  printf(“\n请输入两个数:”);
  scanf(“%d,%d”,&a,&b);
  if(a>b){    (7)     }
  for(j=a;j<=b,j++)
  if(    (8)    ) n++;
  printf(“a=M,b=M,n=M\n”a,b,n);}
  (6)__________
  (7)__________
  (8) __________
  4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。
  #include “stdio.h”
  main( )
  {int x,n,k,k1=0,k2=0,k3=0;
  printf(“input n=:”);
  (9)
  for(k=0;k{scanf(“%d”,&x);
  if (x<0)k1++;
  (10)           ;
  else  k3++;
  printf(“k1=M,k2=M,k3=M\n”,k1,k2,k3)}}
  (9)__________
  (10) __________
  5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束.]
  #include “stdio.h”
  main( )
  {char ch;
  do{ch=getchar();
  if (     (11)     )break;
  else if(     (12)     )putchar(ch);
  }while(1);}
  (11)__________
  (12) __________
  四、按格式写出程序运行结果。每题4分,共16分。
  1.格式化输出函数]
  main()
  {        int a=1,c=65,d=97;
  printf(“a10=%d,a8=%o,a16=%x\n”,a,a,a);
  printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
  d++;
  printf(“d10=%d,dc=%c\n”d,d);}
  输出结果:
  2. 循环结构
  main()
  { int y=9,k=1;
  for(;y>0;y--)
  {if(y%3==0){printf(“M”--y);continue;}
  k++;}
  printf(“\nk=M,y=M\n”,k,y);}
  输出结果:
  3.数组
  #include “stdio.h”
  main( )
  {int k,j;
  in       ta[]={3,-5,18,27,37,23,69,82,52,-15};
  for(k=0,j=k;k<10;k++)
  if(a[k]>a[j])j=k;
  printf(“m=%d,j=%d\n”,a[j],j);}
  输出结果为:
  4.字符输出
  main( )
  {char *p,s[]=“ABCD”;
  for ( p=s;p        printf(“%s\n”,p);}
  输出结果:
  五、按题目要求写出可运行程序:(19分)
  1.求元素个数为10的一维数组元素中的最大值和最小值。
  2.将矩阵 9   7   5      倒置为 9   3   4
  3   1   2             7   1   6
  4   6   8             5   2   8
  3.编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数。
  编写程序如下:
  [NextPage]   参考答案
  一、单项选择题:
  1.D    2.B    3.D    4.B    5.B
  6.B    7.A    8.B    9.B   10.C
  11.A   12.C   13.B   14.C   15.A
  16.D   17.B   18.C   19.A  20.B
  二、填空题:
  1.字母、数字和下划线    2.双引号    3.26
  4.5    5.三(3)    6.1,20
  7.1    8.顺序结构、选择结构、循环结构    9.类型不同
  10.存储在外部介质上的相关数据集合。
  三、将下列程序补充完整。
  1.(1)((a+b2.(3)”%d%d”,&n1,&n2 (4) j=n1;n1=n2;n2=j;(5)j%3==0
  3.(6)(k=2;k<=sqrt(x);k++) (7) j=a;a=b;b=j;(8)prime(j)
  4.(9)scanf(“%s”,&n)(10)else if (x==0)
  5.(11)ch==`Q`||==`q`(12)ch>=`A`&&ch<=`Z`||ch>=`a`&&ch<=`z`
  四、按格式写出程序运行结果。
  1.a10=1,a8=1,a16=1
  c10=65,c8=101,c16=41,cc=A
  d10=98,dc=b
  2.8   5   2
  k=4   y=0
  3.m=82,j=7
  4.ABCD
  BCD
  CD
  D
  五、按题目要求写出可运行程序。
  1.#include “stdio.h”
  main()
  { int term[10];
  int i,max,min;
  printf(“请输入10个整数:”);
  for(i=0;i<10;i++)
  scanf(“%d”,&term[i]);
  (max=term[0];
  min=term[0];
  for(i=0;i<10;i++)
  {if(term[i]if(term[i]>max)max=term[i];}
  printf(“max=%d,min=%d”,max,min);}
  2. main()
  int j,k,x;
  int a[][3]={9,7,5,3,1,2,4,6,8};
  for(j=0;j<3;j++)
  for(k=j+1,k<3;k++)
  {x=a[j][k];a[j][k]=a[k][j];a[k][j]=x;}
  for(j=0;j<3;j++)
  {for(k=0,k<3;k++)
  printf(“M”,a[j][k]);}}
  3.#include “stdio.h”
  int gcd(int m,int,n)
  {if(n==0)return(m);
  else return(gcd(n,m%n));
  int tim(int m,int,n)
  return(m*n/gcd(m,n));}
  main()
  {int m,n,g,t;
  printf(“enter two number please:”);
  scanf(“%d,%d”,&m,&n);
  g=gcd(m,n);t=tim(m,n);
  printf(“gcd(m,n)=%d\n”,g);
  printf(“tim(m,n)=%d\n”,t);}
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved