2008年9月全国计算机等级二级 C语言笔试真题及答案

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

2008年9月全国计算机等级二级 C语言笔试真题及答案

2008年9月全国计算机等级考试二级C语言笔试试卷发布时间:2009-04-2708:05:44发布人:东方教育网新闻来源:2008年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题    下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是A)12345ABCDE                         B)EDCBA54321C)ABCDE12345                         D)54321EDCBA(2)下列叙述中正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反应队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反应队列中元素的动态变化情况D)循环队列中元素的个数是由队头和队尾指针共同决定(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)O(N)        B)O(n2)       C)O(log2n)        D)O(n log2n)(4)下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是A)控制流        B)事件驱动       C)模块调用        D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是A)N-S图  B)DFD图  C)PAD图  D)程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是A)一致性  B)分类性  C)多态性  D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是A)一对一  B)一对多  C)多对一  D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段    B)文件系统阶段  C)数据库系统阶段  D)三个阶段相同(10)有三个关系R、S和T如下:A B Cm 1 3R                    Sn                                    TA Bm 1n 2B C1 33 5 由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积        B)交        C)并        D)自然连接(11)以下叙述中正确的是A)C程序的基本组成单位是语句           B)C程序中每一行只能写一条语句     C)简单C语句必须以分号结束             D)C语句必须在一行内写完(12)计算机能直接执行的程序是A)源程序       B)目标程序       C)汇编程序        D)可执行程序(13)以下选项中不能作为C语言合法常量的是A)’cd’        B)0.1e+6       C)”a”        D)”11”(14)以下选项中正确的定义语句是A)double a;b;       B)double a=b=7;     C)double a=7,b=7;       D)double ,a,b;(15) 以下不能正确表示代数式 的C语言表达式是A)2*a*b/c/d      B)a*b/c/d*2        C)a/c/d*b*2         D)2*a*b/c*d(16)C源程序中不能表示的数制是    A)二进制        B) 八进制        C) 十进制        D) 十六进制 (17) 若有表达式(w)?(--x):(++y),则其中与w等价的表达式是    A) w= =1        B) w= =0        C)w!=1          D) w!=0 (18) 执行以下程序段后,w的值为    int  w=’A’,x=14,y=15;     w=((x||y)&&(w<’a’));   A)-1           B)NULL         C)1           D) 0(19)若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d ”,&a,&b,&c);给a赋值1,给b赋值2, 给c赋值3, 以下输入形式中错误的是(u代表一个空格符)   A)uuu1,2,3<回车>                B)1u2u3<回车>   C)1,uuu2, uuu3<回车>             D)1,2,3<回车>(20) 有以下程序段       int    a,b,c;n       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=50 c=30C) a=10 b=30 c=10                 D) a=50 b=30 c=50(21) 若有定义语句:int  m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是     A) m[--i]          B)m[2*2]         C)m[m[0]]         D)m[m](22)下面的函数调用语句中func函数的实参个数是       func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8))); A)3          B) 4          C)5          D)8(23)若有定义语句:double  x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是     A)*p         B)x[5]        C)*(p+1)         D)*x(24) 若有定义语句:char s[10]= “1234567 ”;,则strlen(s)的值是     A)7     B)8      C)9      D)10(25)以下叙述中错误的是     A) 用户定义的函数中可以没有return语句     B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值     C)用户定义的函数中若没有return语句,则应当定义函数为void类型     D)函数的return语句中可以没有表达式(26)以下关于宏的叙述中正确的是     A)宏名必须用大写字母表示      B)宏定义必须位于源程序中所有语句之前     C)宏替换没有数据类型限制      D)宏调用比函数调用耗费时间(27)有以下程序#include main() { int i,j; for(i=3;i>=1;i--)  {  for(j=1;j<=2;j++)   printf("%d",i+j);    printf("n ")  }} 程序的运行结果是A) 2 3 4        B) 4 3 2       C) 2 3          D) 4 53 4 5            5 4 3           3 4              3 4n                               4 5              2 3(28) 有以下程序#include main(){   int   x=1,y=2,z=3; if(x>y) if(ymain(){  int   i=5;   do   {  if(i%3==1)        if(i%5==2)         {  printf(“*%d”,i);  break;  }      i++;   }   while(i!=0);   printf(“n”);}程序的运行结果是A) *7          B)*3*5           C)*5           D)*2*6(30)有以下程序#include  int fun(int  a,int   b){ if(b==0)  return a; else     return(fun(--a,--b));}main(){  printf("%dn", fun(4,2));}程序的运行结果是A) 1            B)2            C)3           D)4 (31) 有以下程序#include  #include  int  fun(int   nn){  int  *p;    p=(int*)malloc(sizeof(int));   *p=n;   return  *p;}main(){   int  a;   a = fun(10);    printf("%dn",a+fun(10));}程序的运行结果是A)0          B)10             C)20             D)出错(32)有以下程序#include  void  fun( int  a,   int  b){  int   t;   t=a;  a=b;  b=t;}main(){  int  c[10]={1,2,3,4,5,6,7,8,9,0}, i;   for(i=0;i<10;i+=2)  fun(c, c[i+1]);   for(i=0;i<10;i++)  printf("%d," ,c);   printf("n");}程序的运行结果是A)1,2,3,4,5,6,7,8,9,0               B)2,1,4,3,6,5,8,7,0,9C)0,9,8,7,6,5,4,3,2,1               D)0,1,2,3,4,5,6,7,8,9(33) 有以下程序#include  struct   st{  int  x, y;} data[2]={1,10,2,20};main(){   struct  st  *p=data;    printf("%d,",p->y);   printf("%dn",(++p)->x);}程序的运行结果是A)10,1        B)20,1       C)10,2       D)20,2(34) 有以下程序#include  void fun(int  a[], int  n)  {  int   i,t;   for(i=0;i#define  N   4void fun(int  a[][N], int  b[]){  int  i;   for(i=0;iint fun(int  (*s)[4],int n, int k){ int   m,i; m=s[0][k]; for(i=1;im)m= s[k]; return  m;}main() { int  a[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}}; printf("%dn",fun(a,4,0));}程序的运行结果是 A)4          B)34          C)31            D)32(37) 有以下程序#include  main(){ struct STU {  char  name[9]; char  sex;  double  score[2];}; struct STU  a={"Zhao",'m',85.0,90.0},b={"Qian",'f',95.0,92.0}; b=a;n printf("%s,%c,%2.0f,%2.0fn", b.name, b.sex, b.score[0], b.score[1]);}程序的运行结果是A) Qian,f,95,92    B) Qian,m,85,90    C) Zhao,f,95,92    D) Zhao,m,85,90(38) 假定已建立以下链表结构,且指针p和q已指向如图所示的结点:head  a  b  c                data  next                  p             q 则以下选项中可将q所指向结点从链表中删除并释放该结点的语句组是A)(*p).next=(*q).next;  free(p);        B)p=q->next;  free(q);C) p=q;  free(q);                    D)p->next=q->next;  free(q);(39) 有以下程序#include  main(){  char  a=4;   printf(“%dn”,a=a<<1);}程序的运行结果是A) 40         B) 16        C) 8         D) 4(40) 有以下程序#include  main(){ FILE    *pf; char  *s1="China", *s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf);          /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf);}以上程序执行后abc.dat文件的内容是     A) China      B) Chinang      C) ChinaBeijing      D) BeijingChina二、填空题 n(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)对下列二叉树进行中序遍历的结果是  【1】   。 (2)按照软件测试的一般步骤,集成测试应在  【2】  测试之后进行。(3)软件工程三要素包括方法、工具和过程,其中,  【3】  支持软件开发的各个环节的控制和管理。(4)数据库设计包括概念设计、  【4】  和物理设计。(5)在二维表中,元组的  【5】  不能再分成更小的数据项。(6)设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式 【6】 。(7)若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:     a=7     b=9请完成输出语句:printf(  “  【7】   “,a,b);(8)以下程序的输出结果是  【8】  。#includemain(){ int i,j,sum; for(i=3;i>=1;i--) {  sum=0;  for(j=1;j<=i;j++)   sum+=i*j; } printf("%dn",sum);}(9)以下程序的输出结果是  【9】  。#includemain(){ int j,a[]={1,3,5,7,9,11,13,15},*p=a+5;   for(j=3;j;j--)     {  switch(j)    {      case 1:   case 2:printf(“%d”,*p++); break;   case 3:printf(“%d”,*(--p));    }    }}(10)以下程序的输出结果是  【10】  。#include#define   N   5int fun(int *s,int a ,int n){ int j; *s=a;  j=n;n while(a!=s[j])  j--; return j;}main(){ int s[N+1];   int k; for(k=1;k<=N;k++)  s[k]=k+1; printf("%dn",fun(s,4,N));}(11)以下程序的输出结果是  【11】  。#include int fun(int x){ static int t=0; return(t+=x);}main(){ int s,i; for(i=1;i<=5;i++)  s=fun(i); printf("%dn",s);}(12)以下程序按下面指定的数据给x数组的下三角置数,并按如下形式输出,请填空。             43     72      6     91      5     8    10#include main(){ int x[4][4],n=0,i,j; for(j=0;j<4;j++)  for(i=3;i>=j;  【12】  ) {n++;x[j]=  【13】  } for(i=0;i<4;i++) { for(j=0;j<=i;j++)   printf("%3d",x[j]);  printf("n"); }}(13)以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符@作为输入结束标志。请填空。#include long   【14】        /*  函数说明语句  */main(){ long n; n=func();  printf("n=%ldn",n);}long func(){ long m;n for(m=0;getchar()!='@';  【15】  ); return m;}2008年9月全国计算机等级考试二级C语言笔试试卷(参考答案)一、选择题 1-10  BDCAD  BABCD11-20  CDACD  ADCBA21-30  CABAB  CDDAB31-40  CACDB  CDDCB二、填空题【1】 DBXEAYFZC 【2】 单元 【3】 过程 【4】 逻辑设计 【5】 分量 【6】 a=a-(a+b) 【7】 a=%dnb=%d 【8】 1 【9】 9911 【10】 3 【11】 15 【12】 i-- 【13】 n 【14】 func() 【15】 m++  
查看更多

相关文章

您可能关注的文档