四川计算机C语言第2034次笔试题及答案.docx

上传人:b****6 文档编号:8529456 上传时间:2023-01-31 格式:DOCX 页数:211 大小:161.49KB
下载 相关 举报
四川计算机C语言第2034次笔试题及答案.docx_第1页
第1页 / 共211页
四川计算机C语言第2034次笔试题及答案.docx_第2页
第2页 / 共211页
四川计算机C语言第2034次笔试题及答案.docx_第3页
第3页 / 共211页
四川计算机C语言第2034次笔试题及答案.docx_第4页
第4页 / 共211页
四川计算机C语言第2034次笔试题及答案.docx_第5页
第5页 / 共211页
点击查看更多>>
下载资源
资源描述

四川计算机C语言第2034次笔试题及答案.docx

《四川计算机C语言第2034次笔试题及答案.docx》由会员分享,可在线阅读,更多相关《四川计算机C语言第2034次笔试题及答案.docx(211页珍藏版)》请在冰豆网上搜索。

四川计算机C语言第2034次笔试题及答案.docx

四川计算机C语言第2034次笔试题及答案

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

第二十次等级考试

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

 

第一部分

软件技术基础

(共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~10:

ABABB ABABB

二、单项选择题(每小题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)快速排序

1~5:

DACDC

第二部分

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("%d,",m-=3);}

while(!

(--m));

17(A)1(B)1,-3,(C)3,0(D)死循环

3.执行下列程序片段时的输出结果是(18)。

intx,y;

x=3;y=5;

printf("%d",x%=(y/=2));

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

4.对于下述程序,判断正确的是(19)。

#include

voidf(int*p)

{*p=10;}

int*p;

voidmain()

{f(p);

printf("%d",(*p)++);

}

19(A)输出的值是随机值(B)运行时出错(C)输出值为10(D)输出值为11

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

#defineFU(y)2.8+y

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

#definePRINT(a)PR(a);

#include

voidmain()

{intx=2;

PRINT(FU(5)*x);

}

20(A)12(B)14(C)13(D)15

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

#include

voidmain()

{inta[10]={9,8,7,6,5,4,3,2,1,0},*p=a+4;

printf("%d",*++p);

printf("%d",++*p);

}

21(A)4,3(B)4,6(C)5,5(D)4,5

7.关于对类要领的描述中,错误的是(22)。

22(A)类就是C语言中的结构类型(B)类是创建对象的样板

(C)类是具有共同行为的若干对象的统一描述体(D)类是抽象数据类型的实现

8.已知inta=9,b=4;将a-b的值输出显示到屏幕上,下列各种实现方法中,正确的是(23)。

23(A)cout<

(C)cout<

9.下列循环语句会进入死循环的是(24)。

24(A)i=0;do{i++;}while(i==100);(B)for(i=0;i<100;i+=3.14);

(C)for(i=0;;i+=2);(D)k=1;do{k--;}while(k);

10.下面程序运行的结果是(25)。

#include

intfun(char*str)

{

intn=0;

while(*str>='0'&&*str<='9')

{n=n*10+*str-'1';str++;}

returnn;

}

voidmain()

{printf("%d\n",fun("567.89"));}

25(A)89(B)567.89(C)567(D)456

1、A2、B3、C4、C5、A

6、D7、A8、C9、C10、D

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

1.有下列程序:

#include

voidmain()

{inta,b,c,x;

a=b=c=0;

for(inti=0;i<10;i++)

{cin>>x;

switch(x%3)

{case0:

a+=x;break;

case1:

b+=x;break;

case2:

c+=x;break;

}

}

cout<

}

程序运行时依次输入x的值为:

12345678910

①程序运行的结果是(26)。

26(A)3,12,21(B)18,22,15(C)3,4,3(D)9,10,8

②switch(x%3)与(27)相同。

27(A)switch(!

(x%3)!

=0)(B)switch(x%3==0)(C)switch(x%3!

=0)(D)他们都不相同

2.有下列程序:

#include

voidmain()

{

char*str[]={"One","Two","Three","Four"};

char=str;

inti;

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

printf("%s",(ptr+1)[i]);

}

①为程序中空白处选择填空(28)。

28(A)**ptr(B)*ptr(C)ptr[](D)&ptr

②运行结果是(29)。

29(A)newohree(B)Two(C)TwoThreeFour(D)指针运行非法,无输出

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

#include

voidmain(void)

{

intm,n;

doublex,y;

intdivide(intm,intn);

doubledivide(intm,doubley);

doubledivide(doublex,doubley);

cout<<"Entertwointegerandtworealnumber:

";

cin>>m>>n>>x>>y;

L1:

cout<

L2:

cout<

L3:

cout<

}

intdivide(intm,intn)

{returnm/n;}

doubledivide(intm,doubley)

{returnm/(int)y;}

doubledivide(doublex,doubley)

{returnx/y;}

①输入数据727.02.0,语句L1输出结果是(30)。

30(A)0(B)1(C)3(D)3.5

②输入数据727.02.0,语句L2输出结果是(31)。

31(A)0(B)1(C)3(D)3.5

③输入数据727.02.0,语句L3输出结果是(32)。

32(A)0(B)1(C)3(D)3.5

4.#include

voidmain()

{

unsignedinta=0112,x,y,z;

x=a>>3;

y=~(~0<<4);

z=x&y;

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

printf("%x\n",!

(x&&y&&z));

}

该程序中执行第一个printf函数后,输出为(33)。

33(A)111711(B)171117(C)111717(D)171711

该程序中执行第二个printf函数后,输出为(34)。

34(A)171(B)0112(C)1(D)0

5.以下程序运行的结果为(35)。

#include

voidswap1(inta,intb)

{inttemp;

temp=a;a=b;b=temp;

}

voidswap2(int&a,int&b)

{inttemp;

temp=a;a=b;b=temp;

}

voidmain()

{inti=3,j=5;

swap1(i,j);

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

swap2(i,j);

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

}

35(A)35(B)53(C)53(D)35

35533553

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

#include

voidfun(char*strp)

{char*t;

if(*strp){t=strp;t++;fun(t);putchar(*strp);}

}

voidmain()

{inti,a[10]={0,1,2,3,4,5,6,7,8,9};

charstr[11];

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

str[i]=a[i]+'0';

str[i]='\0';

fun(str);

}

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

36(A)9(B)10(C)11(D)12

程序的输出结果为(37)。

37(A)0123456789(B)9876543210(C)01234(D)98765

5678943210

7.读下列C程序,若输入字符串Examination,请选择正确的输出结果。

#include

voidmain()

{charstr[20];

inti=0;

staticintcount[2]={0};

gets(str);

do

{

switch(str[i++])

{

case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

count[0]++;

/*break;*/

default:

count[1]++;

}

}while(str[i]!

='\0');

printf("count[0]=%d,count[1]=%d\n",count[0],count[1]);

}

程序的输出结果为(38)。

38(A)count[0]=6,count[1]=11(B)count[0]=6,count[1]=12

(C)count[0]=5,count[1]=11(D)count[0]=5,count[1]=12

若将程序中注释语句的注释标记去掉,则程序的输出结果为(39)。

39(A)count[0]=6,count[1]=11(B)count[0]=6,count[1]=5

(C)count[0]=5,count[1]=11(D)count[0]=6,count[1]=6

8.下面程序输出的结果为(40)。

#include

inta=5;

voidmain()

{inta=3;

a++;

cout<

:

a;

}

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

40(A)54(B)45(C)53(D)44

1、

(1)B

(2)D2、

(1)A

(2)C3、

(1)C

(2)A(3)D

4、

(1)A

(2)D5、D6、

(1)C

(2)B

7、

(1)A

(2)B8、B

注意:

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

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

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

1.下列程序实现将一个整数字符串转换为一个整数。

#include

#include

intFun(char*str)

{intnum,digital,len;

①;

len=strlen(str);

while(*str!

=NULL)

{

digital=*str-'0';

for(inti=0;②;i++)

digital*=10;

len--;

③;

num+=digital;

}

returnnum;

}

voidmain()

{charn[80];

intnumber;

gets(n);

number=Fun(n);

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

}

1、①num=0②i

2.寻找并输出11~999之间的数m,它满足m,m2,m3均为回文数(所谓回文数是指其各位数字左右对称的整数)。

#include

voidmain()

{intsymm(longn);

longm;

for(m=11;m<1000;m++)

if(①)

cout<<"m="<

}

intsymm(longn)

{longi,m;

i=n;m=0;

while(②)

{③;

i=i/10;

}

return(m==n);

}

2、①symm(m)&&symm(m*m)&&symm(m*m*m)

②i!

=0③m=m*10+i%10

3.已知head指向一个单向链表,如下图:

主程序中调用add函数能求出链表中所有结点数据域的和sum并返回。

structlink

{intdata;

structlink*next;

}

intadd(structlink*heak)

{structlink*p;

ints=0;

p=①;

while(p)

{s+=②;

p=③;

}

return(s);

}

voidmain()

{structlink*head;

……/*表示省掉的程序段,创建链表*/

sum=add(head);

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

}

3、①head②p->data③p->next

4.下面程序功能是统计文本data.txt中各种大写字母的个数,将统计结果存放在数组count中,(字母'A'的个数存入count[0]中,字母'B'的个数存入count[1]……依此类推),输出统计结果,一行输出5个。

请填空。

#include

#include

voidmain()

{FILE*fp;

staticintcount[26]={0};

inti;

charch;

if(①)

{printf("Cannotopenthefile!

\n");

exit(0);

}

while(!

feof(fp))

{②;

if(ch>='A'&&ch<='Z')count[③]++;

}

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

{

if(i%5==0)printf("\n");

printf("count[%d]=%-5d",count[i]);

}

fclose(fp);

}

4、①(fp=fopen("data.txt","r"))==NULL

②ch=fgetc(fp)③ch-'A'

5.下面程序的功能是输入两个字符串a和b和一个标志flag,当flag=0时,将b连在a后;当flag=1时,将a连在b后;否则返回空指针。

请填空。

#include

#include

char*stradd(char*s,char*t,intf)

{char*p;

if(f==0)

{p=s;

s+=strlen(s);

①;

}

elseif(f==1)

{p=t;

while(*t++);

t--;

while(*s)

*t++=*s++;

②;

}

③;

returnp;

}

voidmain()

{chara[100],b[100],*str;

intn;

printf("Inputstringaandb:

\n");

gets(a);

gets(b);

printf("Inputflag:

");

scanf("%d",flag);

str=stradd(a,b,n);

printf("Output:

%s\n",str);

}

5、①while(*s++=*t++)②*t='\0'③elsep=NULL

 

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

第二十一次等级考试

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

 

第一部分

软件技术基础

(共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~10:

BBABB ABBAB

二、单项选择题(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)解决问题的计算方法

1~5:

CCDDB

第二部分

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

{intm=5;

if(m++>5)

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

else

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

}

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

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

main()

{int

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

当前位置:首页 > 自然科学 > 化学

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

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