四川计算机二级C语言历年考题.docx

上传人:b****5 文档编号:7664220 上传时间:2023-01-25 格式:DOCX 页数:190 大小:136.73KB
下载 相关 举报
四川计算机二级C语言历年考题.docx_第1页
第1页 / 共190页
四川计算机二级C语言历年考题.docx_第2页
第2页 / 共190页
四川计算机二级C语言历年考题.docx_第3页
第3页 / 共190页
四川计算机二级C语言历年考题.docx_第4页
第4页 / 共190页
四川计算机二级C语言历年考题.docx_第5页
第5页 / 共190页
点击查看更多>>
下载资源
资源描述

四川计算机二级C语言历年考题.docx

《四川计算机二级C语言历年考题.docx》由会员分享,可在线阅读,更多相关《四川计算机二级C语言历年考题.docx(190页珍藏版)》请在冰豆网上搜索。

四川计算机二级C语言历年考题.docx

四川计算机二级C语言历年考题

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

第十九次等级考试

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

时间:

2003年10月18日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

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

1.在目前,用于保证软件质量的主要手段是进行软件测试。

(1)

2.使用DMA方式传送数据期间不需要CPU干预。

(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.有X、Y、Z三个元素依次入栈,不可能的出栈顺序是(12)。

12(A)Z,Y,X(B)Z,X,Y

(C)Y,X,Z(D)X,Y,Z

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)。

#include

intFun(intx,inty)

{

returnx+y;

}

voidmain()

{

inti=10;

cout<

}

16(A)程序输入结果不确定(B)程序输出结果是20

(C)程序输出结果是21(D)程序输出是22

2.下列描述正确的是(17)。

17(A)C++程序中cout时需要用到预处理命令#include

(B)C++程序必须有return语句

(C)C++程序中的变量必须定义在主程序内部

(D)C++程序中所有使用的符号常量可以不进行定义

3.下述程序的输出结果是(18)。

#include

voidmain()

{

inty=10;

while(y--);

printf("y=%d",y);

}

18(A)y=0(B)y=1(C)y=随机值(D)y=-1

4.若有以下说明:

char*str1="copy",str2[20],*str3="str",*str4,*str5="good";

则正确的串操作语句是(19)。

19(A)strcpy(str4,str1);(B)strcat(str1,str3);

(C)str2="newstr";(D)strcpy(str5,str3);

5.下面程序运行后,x,y,z的值分别为(20)。

#include

voidmain()

{

intx=0,y=0,z=0;

++x||++y||++z;

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

}

20(A)100(B)000(C)111(D)001

6.以下程序运行的结果是(21)。

#include

unionmyun

{struct

{intx,y,z;}u;

intk;

}a;

voidmain()

{

a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf("%d%d%d\n",a.u.x,a.u.y,a.u.z);

}

21(A)456(B)654(C)056(D)065

7.关于C++和C语言学关系描述中,错误的是(22)。

22(A)C语言与C++是兼容的

(B)C++对C语言进行了一些改进

(C)C语言是C++的一个子集

(D)C++和C语言都是面向对象的

8.下列描述中,正确的是(23)。

23(A)子类可以继承其父类的所有属性和操作,但子类不能定义自己特有的属性和操作

(B)消息传递是类与类之间通信的手段

(C)C++允许函数重载,但不允许运算符重载

(D)C++中可以定义虚函数,通过它来支持动态联编

9.下面程序运行的结果是(24)。

#definef(x)1+x+x*x

#include

voidmain()

{

inta=2,b=3;

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

}

24(A)17(B)31(C)13(D)7

10.下面局部程序代码是C++中的(25)特性的表现。

voiddisplay(intvar)

{cout<

}

voiddisplay(charvar)

{cout<

}

voiddisplay(intvar1,intvar2)

{cout<

}

25(A)继承(B)重载(C)多态性(D)封装

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

1.有下列程序:

#include

intf(intm)

{

staticintx[3]={2,3,4};

inti;

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

x[i]+=x[i]-m;

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

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

printf("\n");

return(x[m]);

}

voidmain()

{inty=1;

f(f(y));

}

(1)第一次调用f函数的结果是(26)。

26(A)5,7,9,(B)1,5,9,(C)0,1,3,(D)3,5,7,

(2)第二次调用f函数的结果是(27)。

27(A)3,5,7,(B)1,5,9,(C)0,1,3,(D)5,7,9,

2.读下列程序,运行时输入:

Thisisabook!

#include

intchange(char*c,intfg)

{if(*c=='')

L1:

return1;

else

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

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

return0;

}

voidmain()

{

intflag=1;

charch;

do

{ch=getchar();

flag=change(&ch,flag);

putchar(ch);

}while(ch!

='\n');

}

(1)程序的运行结果是(28)。

28(A)THISISABOOK!

(B)thisIsABook!

(C)ThisIsABook!

(D)ThisIsaBook!

(2)与L1:

return1等效描述的为(29)。

29(A)return0(B)return–1(C)return1-1(D)return!

(-1)

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

(28)。

#include"iostream.h"

intsb(int*s,inty)

{staticinti=3;

y=s[i--];

returny;

}

voidmain()

{ints[]={1,2,3,4};

inti,x=0;

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

{x=sb(s,x);

cout<

}

cout<

}

(1)程序结束后i的值为(30)。

30(A)4(B)0(C)2(D)1

(2)该程序的输出结果是(31)。

31(A)1,2,3,4,(B)2,3,4,1,(C)3,4,1,2,(D)4,3,2,1,

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

#include"iostream.h"

voidmain()

{char*s="213142";

inta=0,b=0,c=0,d=0;

intk;

for(k=0;s[k];k++)

switch(s[k])

{default:

d++;

case'1':

a++;

case'3':

c++;

case'2':

b++;

}

cout<<"a="<

}

(1)该程序运行结束时,k的值是(32)。

32(A)8(B)7(C)6(D)5

(2)该程序的输出结果是(33)。

33(A)a=4,b=5,c=4,d=1(B)a=4,b=9,c=3,d=1

(C)a=3,b=6,c=4,d=1(D)a=8,b=8,c=8,d=8

5.下列程序运行的结果为(34)。

#include"stdio.h"

voidfun(char*s)

{chart;

if(*s)

{t=*s++;fun(s);

if(t!

='\0')

putchar(t);

}

}

voidmain()

{char*a="1234";

fun(a);

}

34(A)1234(B)4321(C)1324(D)4231

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

#include"stdio.h"

voidsub1(chara,charb)

{charc;

c=a;a=b;b=c;

}

voidsub2(char*a,charb)

{charc;

c=*a;*a=b;b=c;

}

voidsub3(char*a,char*b)

{charc;

c=*a;*a=*b;*b=c;

}

voidmain()

{chara,b;

a='A';b='B';

sub3(&a,&b);putchar(a);putchar(b);

sub2(&a,b);putchar(a);putchar(b);

sub1(a,b);putchar(a);putchar(b);

}

(1)程序中调用完函数sub3后,输出为(35)。

35(A)AB(B)ABBA(C)BA(D)BAAB

(2)该程序的最终输出结果为(36)。

36(A)ABBBAB(B)ABBBBB(C)BABABA(D)BAAAAA

7.读以下程序,并回答问题。

#include

unionbt

{

inta;

intb[2];

}

voidfun(unionbt*c)

{

c->a=-7;

c->b[0]=9;

c->b[1]=8;

};

voidmain()

{

unionbtc;

fun(&c);

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

}

(1)程序的输出结果为(36)。

36(A)8(B)9(C)-7(D)7

(2)若将程序中的所有的union换成struct,则程序的输出结果为(37)。

37(A)8(B)9(C)-7(D)7

8.读程序,回答问题。

#include

#include

voidmain(intargc,char*argv[])

{

FILE*fp;

voidfun(FILE*fp);

inti=1;

while(--argc>0)

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

{printf("Cannotopenfile!

\n");

exit(0);

}

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

}

voidfun(FILE*fp)

{

charc;

c=fgetc(fp);

while((c!

=EOF))

{if(c>='A'&&c<='Z')putchar(c);

elseif(c>='a'&&c<='z')putchar(c-('a'-'A'));

c=fgetc(fp);

}

}

上述C程序经编译、连接后生成一个可执行文件,文件名为ex2_8。

假设磁盘上有两个文本文件file1.txt和file2.txt,file1.txt的内容为SiChuan,file2.txt的内容为Test。

若在DOS提示符下键入:

ex2_8file.txtfile2.txt<回车>,则程序的运行结果为(39)。

39(A)SICHUAN(B)SICHUANTEST(C)SiChuanTest(D)TEST

9.下面程序的输出是(40)。

#include"stdio.h"

intfun(charvalue,intn)

{value>>=n-1;

value&=0x01;

return(value);

}

voidmain()

{charc=13;

printf("%d\n",fun(c,2));

}

40(A)13(B)1(C)3(D)0

注意:

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

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

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

1.下面程序是一个求数组元素之和的程序。

主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。

函数Sum计算数组元素之和。

请完成下列程序。

#include

intTotalSum(int[],int);

voidmain()

{inta[5]={2,3,6,8,10};

intTotal;

Total=①;

count<<"Aumofarray:

"②<

}

intTotalSum(intarray[],intlen)

{intsum=0;

for(inti=0;i

③;

returnsum;

}

2.输入一个8位二进制数,将其转换为十进制数输出。

#include"iostream.h"

doublepower(doublex,intn);

voidmain(void)

{inti;

intvalue=0;

charch;

cout<<"Enteran8bitbinarynumber";

for(i=7;i>=0;i--)

{cin>>ch;

if(①)

value+=②;

}

cout<<"decimalvalueis"<

}

doublepower(doublex,intn)

{doubleval=1.0;

while(n--)

③;

return(val);

}

3.以下程序是判断输入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,如level),请填空。

#include"stdio.h"

#include"string.h"

voidmain()

{

chars[81],*p1,*p2;

intn;

gets(s);

n=strlen(s);

p1=s;

p2=①;

while(②)

{if(*p1!

=*p2)break;

else{p1++;③;}

}

if(p1

elseprintf("Yes\n");

}

4.下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有num[i][j]=num[j][i]),请填空。

#include

voidmain()

{

intnum[4][4];

inti,j,flag=0;

printf("Inputarraynum:

\n");

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

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

scanf("%d",①);

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

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

if(②)

{flag=1;break;}

if(③)printf("No\n");

elseprintf("Yes\n");

}

5.下面程序的功能是从键盘输入一字符串,将该字符串与一文本文件进行比较,打印出也之相同的行的行号和内容。

voidcomp()用于文件的比较,文件名用命令行参数提供。

请填空。

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

FILE*fp;

voidcomp(char*string)

{intline=0;

charstr[100];

{fgets(str,100,fp);

str[strlen(str)-1]='\0';

line++;

printf("%d:

%s\n",line,str);

}

}

voidmain(intargc,char**argv)

{

charstring[100];

if(argc!

=2)

{printf("Error\n");

exit(0);

}

if(fp=③)==NULL)

{printf("Can'topenfile%s!

\n",argv[1]);

exit(0);

}

printf("Pleaseinputthestring:

\n");

gets(string);

comp(string);

fclose(fp);

}

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

第二十次等级考试

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

时间:

2004年4月10日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

1.数据元素是数据的基本单位,数据项是数据的最小单位。

(1)

2.栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。

(2)

3.引入虚拟存储技术后,逻辑内存总容量是由地址总线的位数确定的。

(3)

4.编译程序是一种常用的应用软件。

(4)

5.顺序文件和链接文件的长度都可以动态变化。

(5)

6.在文件系统中彩目录管理文件。

(6)

7.允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。

(7)

8.程序、数据、和程序控制块是构成一个进程的三要素。

(8)

9.黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。

(9)

10.软件的总体设计和详细设计都要用PAD图形工具。

(10)

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

1.允许用户把若干作业提交计算机系统集中处理的操作系统称为(11)。

11(A)分时操作系统(B)实时操作系统

(C)网络操作系统(D)批处理操作系统

2.分配到必要资源并获得了处理机时的进程的状态称为(12)。

12(A)就绪状态(B)执行状态(C)等待状态(D)阻塞状态

3.利用通道技术可以在(13)之间直接交换数据。

13(A)内存与CPU(B)CPU与外设

(C)内存与外设(D)内存、CPU和外设三者

4.以下的准则中哪个不是软件设计的准则(14)。

14(A)编程语言选择准则(B)信息屏蔽准则

(C)结构化和模块化准则(D)抽象准则

5.有一数列:

97657613294958经过一趟排序后得到:

65971376294958请问使用的是何种排序方法(15)。

15(A)简单插入排序(B)冒泡排序

(C)2路归并排序(D)快速排序

第二部分

C与C++语言程序设计

(共85分)

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

1.定义如下枚举类型:

enumDay{Monday,Tuesday,Wednesday,Thursday,Friday=2};

则下列语句正确的是(16)。

16(A)表达式Wednesday==Friday的值是true

(B)enumDayday;day=3;

(C)enumDayday;day=Tuesday-3;

(D)enumDayday;day=Monday+10;

2.下列程序片段的输出结果是(17)。

intm=4;

do

{printf("

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

当前位置:首页 > PPT模板 > 艺术创意

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

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