四川省计算机等级考试二级C语言笔试题第二十一次一.docx

上传人:b****7 文档编号:8979280 上传时间:2023-02-02 格式:DOCX 页数:18 大小:21.06KB
下载 相关 举报
四川省计算机等级考试二级C语言笔试题第二十一次一.docx_第1页
第1页 / 共18页
四川省计算机等级考试二级C语言笔试题第二十一次一.docx_第2页
第2页 / 共18页
四川省计算机等级考试二级C语言笔试题第二十一次一.docx_第3页
第3页 / 共18页
四川省计算机等级考试二级C语言笔试题第二十一次一.docx_第4页
第4页 / 共18页
四川省计算机等级考试二级C语言笔试题第二十一次一.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

四川省计算机等级考试二级C语言笔试题第二十一次一.docx

《四川省计算机等级考试二级C语言笔试题第二十一次一.docx》由会员分享,可在线阅读,更多相关《四川省计算机等级考试二级C语言笔试题第二十一次一.docx(18页珍藏版)》请在冰豆网上搜索。

四川省计算机等级考试二级C语言笔试题第二十一次一.docx

四川省计算机等级考试二级C语言笔试题第二十一次一

四川省计算机等级考试二级C语言笔试题(第二十一次)一

2009-03-2915:

15:

17

四川省普通高等学校计算机应用知识和能力

第二十一次等级考试

二级(C与C++语言)笔试试卷

时间:

2004年10月16日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

一、是非判断题(每小题1分,共10分)

 1.应用程序在执行过程中,需要通过打印输出数据时,一般先形成一个打印作业,将其存放在硬盘中的一个指定队列中。

当打印空闲时,就会按先来后服务的方式从中取出待打印的作业进行打印。

                                                                                                                                                                            ( 1 )

 2.若无进程牌运行状态,则就绪队列和等待队列均为空。

                          ( 2 )

 3.多道程序设计是指在一台处理上迸发运行多个程序逻辑。

                        ( 3 )

 4.黑盒法是软件测试方法中的静态测试方法之一。

                                  ( 4 )

 5.软件的详细设计就是要编写出具体的程序。

                                 ( 5 )

 6.软件生命周期中花费最多的阶段是软件维护。

                                              ( 6 )

 7.Windows是单用户多任务操作系统,UNIX是多用户多任务操作系统。

        ( 7 )

 8.进程把程序作为它的运行实体,没有程序也就没有进程。

                   ( 8 )

 9.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:

结构化语言、判定表和判定树。

                                                            

( 9 )

 10.作业调度程序从后备队列中选一个作业装入主存后,决定能否占用处理机的是设备调度程序。

                                                                                                                                                                                        ( 10 )

二、单项选择题(1分/小题,共5分)

 1.交换技术是在(  11  )之间交换程序和数据。

11(A)主内存与CPU             (B)CPU与外设

 (C)主内存与外存             (D)外存与CPU

 2.以下的工具中哪个不是软件详细设计中使用的工具(  12 )。

12(A)数据流图                  (B)N-S图

 (C)PDA图                   (D)PDL语言

 3.任何两个并发进程之间(   13  )。

13(A)一定存在互斥关系          (B)一定存在同步关系

 (C)一定彼此独立无关          (D)可能存在同步或互斥关系

 4.进程从运行状态进入就绪状态的原因可能是(  14  )。

14(A)被选中占有处理机          (B)等待某一事件

 (C)等待的事件已发生          (D)时间片用完

 5.算法指的是(  15  )。

15(A)计算机程序                (B)解决问题的有限运算序列

 (C)排序算法                  (D)解决问题的计算方法

第二部分

C与C++语言程序设计

(共85分)

一、单项选择题(每小题1分,共10分)

 1.以下程序运行后,输出结果是( 16 )。

main()

{ inta=1,b=2,m=0,n=0,k;

      k=(n=b>a)||(m=a

      printf(“%d,%d\n”,k,m);

}

   16(A)0,0    (B)0,1    (C)1,0     (D)1,1

 2.以下程序输出的结果是( 17 )。

       main()

       { int m=5;

          if(m++>5)

printf(“%d”,m++);

          else

              printf(“%d”,m--);

}

17(A)7      (B)6        (C)5       (D)4

 3.下列程序运行的结果是( 18 )。

        main()

        { inta=10,b=11,c=12;

           printf(“%d\n”,a>c?

a:

c?

d=a>b:

b);

}

18(A)11     (B)0        (C)10       (D)12

 4.已知:

inta,b;下列switch语句中,( 19 )是正确的。

19(A)switch(a)                (B)switch(a+b)

      {                            {

        casea:

 a++;break;             case1:

a++;

        caseb:

b++;break;              case2:

b++;

      }                             }

(C)switch(a*b)              (D)switch(a/10+b)

    {                             {

      case1,2:

a+b;                   casea+b:

++a;break;

      case3,4:

a-b;                   casea-b:

--b;

    }                             }

 5.下列程序由两个件f1.c和f2.c组成。

   f1.c文件的内容:

#include

#include

#defineN3

main()

{ inti;

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

     printf(“%d,”,sum(i));

}

f2.c文件的内容:

sum(intn)

{ intt;

  staticints=0;

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

     s+=t*t;

  return(s);

}

程序的运行输出结果是( 20 )。

 20(A)1,5,14, (B)1,2,3,  (C)1,6,20,  (D)1,4,9,

 6.C++中,有以下定义:

inta,b;若要从键盘输入变量a,b的值,则正确的输入语句是( 21 )。

21(A)cin>>a>>b;           (B)cin<

(C)cout>>a>>b;          (D)cout<

 7.下列程序运行的结果是( 22 )。

#include 

#defineswap(x,y) {x^=y;y^=x;x^=y;}

main()

{ inta=010,b=1;

  swap(a,b);

  printf(“%d,%d\n”,a,b);

}

 22(A)1,8     (B)8,1   (C)10,1    (D)1,10

 8.以下scanf函数调用中对结构体变量成员的错误引用是( 23 )。

structstudent

{ charname[20];

  intage;

  intsex;

}stud[5],*p;

p=stud;

 23(A)scanf(“%s”,stud[0].name);    (B)scanf(“%d”,&stud[0].age);

(C)scanf(“%d”,p->age);         (D)scanf(“%d”,&(p->sex));

 9.在以下关于构造函数的描述中,错误的是( 24 )。

24(A)构造函数可以重载         (B)构造函数可以带缺省形参值

(C)构造函数名必须与类同名   (D)构造函数可以带回返回值

 10.下面对C++函数重载的描述中,错误的是( 25 )

25(A)函数名相同                  (B)函数参数个数或参数类型至少有一个不同

(C)函数参数不可以用缺省值   (D)函数返回值必须不同

四川省计算机等级考试二级C语言笔试题(第二十一次)二

2009-03-2915:

20:

00

二、读程序回答问题(每个选择3分,共45分)。

 1.下列程序运行的结果为( 26 )。

#include

voidfun(char*c,intd)

{ *c=*c+1;

  d=d+1;

  printf("%c,%c,",*c,d);

}

main()

{ chara='A',b='a';

  fun(&b,a);

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

}

 26(A)B,a,B,a  (B)a,B,a,B  (C)A,b,A,b  (D)b,B,A,b

 2.下面程序的输出是( 27 )。

#include

voidtest(int*u,int*v)

{ int*w;

  w=u;u=v;v=w;

}

main()

{ intm=3,n=6,*x=&m,*y=&n;

  test(x,y);

  printf("%d  %d",m,n);

}

 27(A)3  6   (B)6  3   (C)0  0   (D)编译出错

 3.以下程序的输出结果是( 28 )。

#include

main()

{ intx,y;

  for(x=1,y=1;x<=15;x++)

  { if(y>=20)

       break;

     if(y%3==1)

     { y+=3;

        continue;

     }

     y-=10;

  }

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

}

 28(A)8,22   (B)7,20   (C)6,22   (D)5,20

 4.fun(char*t1,char*t2)

{ inti,j;

  while(*t2!

=0)

  { for(i=0,j=0;t1[i];i++)

       if(t1[i]!

=*t2)

         t1[j++]=t1[i];

     t1[j]='\0';

     t2++;

  }

}

main()

{ chara[]="abcde",b[]="ae";

  fun(a,b);

  puts(a);

}

该程序的输出结果为( 29 )。

 29(A)abcde   (B)bcd     (C)abcdeae   (D)ae

 5.以下程序的输出结果是( 30 )。

#include

#defineFUN(y)   2.84+y

#definePR(a)    printf("%d",(int)(a))

#definePRINT(a) PR(a);putchar('\n')

main()

{intx=2;

 PRINT(FUN(5)*x);

}

  30(A)11      (B)12      (C)14      (D)15

 6.读下列程序,回答问题。

#include

voidsort(inta[])

{ inti,j,t;

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

    for(j=0;j<4-i;j++)

      if(a[j]>a[j+1])

        {t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

main()

{ inta[5]={5,10,-7,3,7},i,t,j;

  sort(a);

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

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

}

关于程序的说法正确的是( 31 )。

 31(A)用选择法对数据按从小到大排列

(B)用选择法对数据按从大到小排列

(C)用冒泡法对数据按从小到大排列

(D)用冒泡法对数据按从大到小排列

 7.执行下面程序时输入“Iwillpasstheexam!

”,其输出结果是( 32 )。

如果将程序中的scanf(“%s”,s)改为gets(s);同样输入”Iwillpasstheexan!

”,则程序的输出结果是( 33 )。

#include

intfun(chars[])

{ inti=0;

  while(s[i]!

='\0')

    i++;

  returni;

}

voidmain()

{ chars[81];

  printf("Pleaseinputastring:

\n");

  scanf("%s",s);

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

}

 32(A)5     (B)21     (C)1      (D)17

 33(A)5     (B)21     (C)1      (D)17

 8.以下是一个C++程序

#include

classSample

{ intx,y;

  public:

  Sample() {x=y=0;}

  Sample(inta,intb) {x=a; y=b;}

  voiddisp()

   { cout<<"x="<

}

voidmain()

{ Sample s1,s2(2,3);

  s1.disp();

  s2.disp();

}

(1)该程序主函数中s1.disp()的输出为( 34 )。

 34(A)x=0y=0(B)x=2y=3(C)x=3y=2(D)x=1y=1

(2)该程序主函数中s2.disp()的输出为( 35 )。

 35(A)x=0y=0(B)x=2y=3(C)x=3y=2(D)x=1y=1

 9.读下列程序并回答问题。

#include 

voidfun(int*p,inti,intj)

{ intt;

  if(i

  { t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;

     fun(p,++i,--j);

  }

}

main()

{ inta[]={1,2,3,4,5,6},i;

  fun(a,0,5);

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

    printf("%d",a[i]);

}

(1)程序中的fun函数被调用( 36 )次。

 36(A)6   (B)5   (C)4   (D)3

(2)程序的运行结果是( 37 )。

 37(A)123456 (B)456123 (C)135246  (D)654321

 10.读程序,回答问题。

#include

main(intargc,char*argv[])

{FILE*fp;

 intfun(FILE*);

 intnum,i=1;

 while(--argc>0)

   if((fp=fopen(argv[i++],"r"))==NULL)

   { printf("Cannotopenfile!

\n");

      exit(0);

   }

   else{num=fun(fp);  fclose(fp); }

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

}

intfun(FILE*fp)

{ staticintcount=0;

  charc;

  c=fgetc(fp);

  while(c!

=EOF)

  { if(c>='0'&&c<='9')count++;

     c=fgetc(fp);

  }

  return(count);

}

上述C程序经编译、连接后生成一个名为2_3.exe的可执行文件,假设盘上有两个文本文件file1.dat和file2.dat,file1.dat的内容为123abc,file2.dat的内容为xyzABC987。

(1)若在DOS提示符下键入:

2_3file1.datfile2.dat<回车>,则程序的运行结果为( 38 )。

 38(A)num=3 (B)num=4(C)num=5 (D)num=6

(2)若将fun函数中对count的定义staticintcount=0;改为intcount=0;其余条件不变,则在DOS提示符下键入:

2_3file1.datfile2.dat<回车>,则程序的运行结果为( 39 )。

39(A)num=3 (B)num=4(C)num=5 (D)num=6

   (3)若将fun函数中对count的定义staticintcount=0;改为intcount;其余条件不变,则在DOS提示符下键入:

2_3file1.datfile2.dat<回车>,则程序的运行结果为( 40 )。

40(A)num=4 (B)num=5(C)num=6 (D)随机值

四川省计算机等级考试二级C语言笔试题(第二十一次)三

2009-03-2915:

23:

02

 

 

注意:

①请把下面“程序填空”中各小题答案写在主观题答题纸上

     ②每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空(每空2分,共30分)

 1.以下程序能创建一张包含有4名学生信息的单向链表并输出。

#include

#include

#defineLENsizeof(structstudent)

structstudent

{ intdata;

  ①                     ;

};

intnum=1;

structstudent*creat()

{ structstudent*head,*p1,*p2;

  head=p1=p2=(structstudent*)malloc(LEN);

  scanf("%d",&p1->data);

  while(num<4)

   { p1=(structstudent*)malloc(LEN);

      scanf("%d",&p1->data);

      ②                       ;

      p2=p1;

      num++;

   }

  p2->next=NULL;

  return(head);

}

main()

{ structstudent*head,*p;

  head=creat();

  p=head;

  if(head!

=NULL)

    do{ printf("%d",p->data);

         ③                         ;

      }while(p!

=NULL);

}

2.下面程序功能是在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如:

cbyab变成ycbab。

#include

#include

main()

{ charstr[80],*p=str,*q,max;

  gets(p);

  max=*(p++);

  while(*p!

=0)

  { if(max<*p)

     { max=*p;

        ①                   ;

     }

     p++;

  }

  p=q;

  while(②                    )

    { *p=*(p-1);p--;}

  ③                  ;

  puts(p);

}

3.以下程序能统计低于平均成绩的人数,并将低于平均成绩的分数存放到below数组中。

#include

intfun(intscore[],intm,intbelow[])

{ inti,k=0,aver=0;

  for(i=0;i

     ①                      ;

  aver/=m;

  for(i=0;i

    if(score[i]

    { ②                     ;

       k++;

    }

  return(k);

}

main()

{ inti,n,below[9];

  intscore[9]={10,20,30,40,50,60,70,80,90};

  n=③                      ;

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

  printf("Belowtheaveragesc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1