四川省计算机等级考试二级C语言笔试题22.docx

上传人:b****2 文档编号:1265057 上传时间:2023-04-30 格式:DOCX 页数:21 大小:22.19KB
下载 相关 举报
四川省计算机等级考试二级C语言笔试题22.docx_第1页
第1页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第2页
第2页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第3页
第3页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第4页
第4页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第5页
第5页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第6页
第6页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第7页
第7页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第8页
第8页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第9页
第9页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第10页
第10页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第11页
第11页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第12页
第12页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第13页
第13页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第14页
第14页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第15页
第15页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第16页
第16页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第17页
第17页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第18页
第18页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第19页
第19页 / 共21页
四川省计算机等级考试二级C语言笔试题22.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

四川省计算机等级考试二级C语言笔试题22.docx

《四川省计算机等级考试二级C语言笔试题22.docx》由会员分享,可在线阅读,更多相关《四川省计算机等级考试二级C语言笔试题22.docx(21页珍藏版)》请在冰点文库上搜索。

四川省计算机等级考试二级C语言笔试题22.docx

四川省计算机等级考试二级C语言笔试题22

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

2009-03-2915:

24:

34

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

第二十二次等级考试

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

时间:

 2005年4月16日

    上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )

1.C++语言中所定义的类实际上也是一种数据类型。

                                                    (  1  )

2.数据结构的表示包括数据逻辑结构和存储结构两方面的表示。

                                 (  2  )

3.冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。

            (  3  )

4.线性表采用链式存储时,结点的存储地址必须是连续的。

                                        (  4  )

5.栈顶的位置是随着进栈和退栈操作而变化的。

                                                          (  5  )

6.在软件生存期内,软件必须进行维护,维护不会产生副作用。

                                 (  6  )

7.采用动态重定位进行地址转换,允许程序在执行过程中在内在中移动。

而静态重定位则不可以。

                                                                                                                               (  7  )

8.在软件的需要分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。

                                                                                                                                         (  8  )

9.需求分析阶段的主要任务应由系统分析员主持完成。

                                           (  9  )

10.操作系统是最重要的系统软件。

                                                                               (  10 )

二、选择题(每小题1分,共5分)

1.以下特征中哪个不是算法的特征  (  11 )。

  11 (A)可行性       (B)确定性     (C)有穷性              (D)唯一性

2.在多道程序设计系统中,处于后备状态的作业要经过(  12 )调度后才能真正执行。

  12 (A)作业调度                                  (B)作业调度和进程调度

      (C)进程调度                                  (D)作业调度和设备调度

3.为解决CPU和I/O设备之间速度匹配问题,常采用“缓冲区”方法。

“缓冲区”的结构多为( 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 )

      #include

voidswap(intx,inty)

{x^=y;y^=x;x^=y;}

main()

{

 inta=010,b=1;

 swap(a,b);

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

}

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

 2.有以下程序

#include

#include

main()

{

 char*p,*q;

 p=(char*)malloc(sizeof(char)*20);

 q=p;

 scanf("%s%s",p,q);

 printf("%s,%s",p,q);

}

若输入:

abcdef<回车>,则输出为( 17 )。

  17 (A)def,def           (B)abc,def             (C)abc,d                 (D)d,d

 3.下列程序的输出是( 18 )。

#include

voidmain()

{

 inta=-1,b=4,k;

 k=(a++<=0)&&(!

(b--<=0));

 cout<

}

  18 (A)003           (B)103                    (C)112                 (D)012

 4.关于类概念的描述中,( 19 )是错误的。

  19 (A)类就是C语言中的结构体类型

      (B)类是创建对象的样板

(C)类是具有共同行为的若干对象的统一描述体

(D)类是抽象数据类型的实现

 5.下列程序的运行结果是( 20 )。

#include

main()

{

 voidfu();

 fu();

 fu();

}

voidfu()

{

 staticinta=0;

 printf("a=%d,",!

a?

1:

8);

}

  20 (A)a=8,a=8,        (B)a=1,a=8                 (C)a=8,a=1,            (D)a=1,a=1,

 6.以下程序中,输出值是( 21 )。

#include

#defineM3

#defineNM+1

#defineNNN*N/2

main()

{

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

}

  21 (A)3            (B)4                    (C)6                 (D)8

 7.若有语句:

chars1[]="string1",s2[8],*s3,*s4="string2";则( 22 )是对库函数strcpy的错误调用。

  22 (A)strcpy(s1,"string2");                    (B)strcpy(s4,"string1");

(C)strcpy(s3,"string1");                    (D)strcpy("string2",s2);

 8.以下( 23 )为不正确的if语句。

  23 (A)if(x>y);                       (B)if(x==y)x+=y;

      (C)if(x!

=y)x=x*x elsex+=1;         (D)if(x

 9.关于C++函数参数的描述中,错误的是( 24 )。

 

  24 (A)实参个数与形参个数可以不同

      (B)缺省参数必须放在形参表的最右端

      (C)用引用变量作形参可以实现地址传递

      (D)重载函数可以有缺省参数

 10.若有如下定义:

structnode

{

 intdata;

 structnode*next;

}

46

q

且已建立下面的链表结构,指针p,q分别指向图中所示结点,则不能将q所指结点插入链表末尾的一组语句是( 25 )。

p

44

5 NULL   

head…… 

  

25(A)q->next=NULL;p=p->next;p->next=q;             (B)p=p->next;q->next=p->next;p->next=q;

(C)p=p->next;q->next=p;p->next=q;                    (D)p=(*p).next;(*q).next=(*p).next;(*p).next=q;

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

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

#include

#include

voidfun(char*s,intm)

{

 chart,*p1,*p2;

 p1=s;

 p2=s+m-1;

 while(p1

  {t=*p1++;*p1=*p2--;*p2=t;}

}

main()

{

 chara[]="ABCDEFG";

 fun(a,strlen(a));

 puts(a);

}  

26 (A)GFEDCBA                               (B)AGADAGA       

(C)GAGGAGA                              (D)AGAAGAG

 2.读下列C程序,选择正确的输出结果。

#include

#include

voidfun(charstr[][10],intn)

{

 chart[20];

 inti,j;

 for(i=0;i

   for(j=i+1;j

     if(strlen(str[i])

       {

         strcpy(t,str[i]);

         strcpy(str[i],str[j]);

         strcpy(str[j],t);

       }

}

main()

{

 charstr[][10]={"abc","aabcd","abed","a","acdefg"};

 inti;

 fun(str,5);

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

   printf("%2d",strlen(str[i]));

 printf("\n");

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

   puts(str[i]);

}  

(1) main函数中,第一个for循环的输出结果为:

( 27 )。

27 (A)65431                        (B)13456       

(C)76542                       (D)24567

(2) main函数中,第二个for循环的输出结果为:

( 28 )。

 28 (A)abc            (B)a               (C)acdefg              (D)a

        aabcd         abc            aabcd             abc

        abed          abed           abed              aabcd

        a             aabcd          abc               abed

        acdefg         acdefg         a                 aabcd

  3.以下是一个C++程序,读程序并回答问题。

#include

intfun(intu,intv)

{

 inttemp;

 while(v!

=0)

   {

     temp=u%v;

     u=v;

     v=temp;

   }

 returnu;

}

voidmain()

{

 intu,v;

 intt;

 cout<<"Inputtwointegers:

";

 cin>>u>>v;

 t=fun(u,v);

 cout<

 cout<

若从键盘中输入1015;回答下列两个问题:

(1)第一条输出语句的输出结果为( 29 )。

29 (A)5             (B)10               (C)15               (D)30

(2)第二条输出语句的输出结果为( 30 )。

30 (A)5             (B)10               (C)15               (D)30

 4.以下程序的运行结果是( 31 )。

#include

chang(char*c,intfg)

{

 if(*c=='')

   return1;

 elseif(fg&&*c<='z'&&*c>='a')

         *c+='A'-'a';

 return0;

}

main()

{

 intflag=1;

 charch;

 do

 {

   ch=getchar();

   flag=chang(&ch,flag);

   putchar(ch);

 }while(ch!

='\n');

}

 程序运行时,从第一列开始输入以下字符,代表换行符。

     Thisisabook!

  31 (A)tHISISABOOK!

              (B)thisIsABook!

      (C)ThisIsABook!

                         (D)ThisIsaBook!

  5.以下程序的运行结果是( 32 ):

#include

main()

{

 inta=1,b=2,c=3;

 a++;

 c+=b;

 {

   intb=4,c;

   c=2*b;

   a+=c;

   printf("%d,%d,%d,",a,b,c);

 }

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

}

  32 (A)10,4,8,10,2,5    (B)6,2,4,6,2,4             (C)10,4,8,10,2,8         (D)9,4,8,2,2,5

 6.以下程序的输出是( 33 )。

#include

main()

{

 intx=1,y=0,a=0,b=0;

 switch(x)

 {

   case1:

     switch(y)

     {

       case0:

a++;break;

       case1:

b++;break;

     }     

   case2:

 

     a++;b++;break;

   case3:

     a++;b++;

 }

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

}

  33 (A)a=1,b=0       (B)a=2,b=1             (C)a=1,b=1             (D)a=2,b=2

 7.若有以下程序段:

inta[]={4,0,2,3,1},k,j,t;

for(j=1;j<5;j++)

{

 t=a[j];

 k=j-1;

 while(k>=0&&t>a[k])

 { a[k+1]=a[k];k--;}

 a[k+1]=t;

}

  则该程序段的功能是( 34 )。

  34   (A)对数组a进行插入排序(升序)      

(B)对数组a进行插入排序(降序)

(C)对数组a进行选择排序(升序)   

(D)对数组a进行选择排序(降序)

 8.选择下面程序运行的结果。

#include

intm[3][3]={{1},{2},{3}};

intn[3][3]={1,2,3};

main()

{

 printf("%d\n",m[1][0]+n[0][0]);

 printf("%d\n",m[0][1]+n[1][0]);

}

 第1条printf语句行输出的结果是( 35 )。

 

  35 (A)0              (B)1                    (C)2                    (D)3

 第2条printf语句行输出的结果是( 36 )。

 

  36 (A)0              (B)1                    (C)2                    (D)3

 9.选择下面程序运行的结果(设int占2个字节)

#include

main()

{

 structdate

 {

   intyear,month,day;

 }today;

 union

 {

   longi;

   intk;

   charc;

 }mix;

 printf("date=%d\n",sizeof(structdate));

 printf("mix=%d\n",sizeof(mix));

}  

  第1条printf语句行输出的结果为( 37 )。

  37 (A)date=2       (B)date=4       (C)date=6      (D)前3个答案都是错误的

  第2条printf语句行输出的结果为( 38 )。

  38 (A)mix=2       (B)mix=4       (C)mix=6       (D)前3个答案都是错误的

 10.读下面程序,程序的命名为MyCopy.c。

/*---------MyCopy.c---------*/

#include

main(intargc,char*argv[])

{

 if(argc!

=3)

   printf("\nFormat:

MyCopy\n");

 else

 {

   FILE*source,*desine;

   source=fopen(argv[1],"rb");

   desine=fopen(argv[2],"wb");

   if(source==NULL)

     printf("ERROR:

Can'topensourcefile%s!

\n",argv[1]);

   elseif(desine==NULL)

           printf("ERROR:

Can'topensourcefile%s!

\n",argv[2]);

   else

   {

     while(!

feof(source))

       fputc(fgetc(source),desine);

   }

   fclose(source);

   fclose(desine);

 }

}

 

(1)程序的功能是( 39 )。

  40 (A)将磁盘文件的信息显示在屏幕上               

      (B)将一个磁盘文件复制到另一个磁盘文件中

      (C)将两个磁盘文件合并           

      (D)以上答案都不对

 

(2)当编译、连接后,在命令行键入:

MyCopyFILE1FILE2<回车>,则程序将实现( 40 )。

  41 (A)将FILE1的信息显示在屏幕上               

      (B)将FILE1和FILE2合并

      (C)将一个FILE2复制到FILE1中  

      (D)将一个FILE1复制到FILE2中

注意:

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

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

 

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

 1.以下程序的功能是将磁盘文件a.dat中的10个整数读入并进行升序排序。

#include

voidsort(int*p,intn)

{

 inti,j,t;

 for(i=0;i

   for(j=i+1;j

     if(①      

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2