四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx

上传人:b****6 文档编号:5991673 上传时间:2023-01-02 格式:DOCX 页数:14 大小:20.34KB
下载 相关 举报
四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx_第1页
第1页 / 共14页
四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx_第2页
第2页 / 共14页
四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx_第3页
第3页 / 共14页
四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx_第4页
第4页 / 共14页
四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx

《四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx》由会员分享,可在线阅读,更多相关《四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx(14页珍藏版)》请在冰豆网上搜索。

四川省普通高等学校计算机应用知识和能力第二十九次等级考试.docx

四川省普通高等学校计算机应用知识和能力第二十九次等级考试

四川省普通高等学校计算机应用知识和能力第二十九次等级考试

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

2008年10月18日上午9:

00—11:

00

第一部分软件技术基础(共15分)

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

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

1.在设备管理中通道是处理输入、输出的软件。

(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.队列的操作原则是(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.下列关于C++语言类的描述中错误的是(16)。

16(A)类用于描述事物的属性和对事物的操作

(B)类与类之间通过封装而具有明确的独立性

(C)类与类之间必须是平等的关系,而不能组成层次结构

(D)类与类之间可以通过一些方法进行通信和联络

2.C++中,已知有如下定义:

constintD=5;

inti=1;

longintf=0;

charc=15;

则下列选项错误的是(17)。

17(A)++i;(B)D--;(C)c++;(D)--f;

3.下面关于类和对象的描述中,错误的是(18)。

18(A)类就是C语言中的结构体类型,对象就是C语言中的结构体变量

(B)类和对象之间的关系是抽象和具体的关系

(C)对象是类的实例,一个对象必须属于一个已知的类

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

4.设有定义:

intn=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是(19)。

19(A)p=5;(B)*q=5;(C)q=p;(D)*p=5;

5.设有定义:

chars[20]="ab\101\ncd";则sizeof(s)和strlen(s)的值为(20)。

20(A)6,6(B)20,6(C)20,7(D)20,10

6.在C语言的函数中(21)。

21(A)必须有形参(B)形参必须是变量名

(C)可以有也可以没有形参(D)数组名不能作为形参

7.下列程序输出结果是(22)。

#include"stdio.h"

#defineSQR(x)x*x

voidmain()

{inta=10,k=2,m=1;

a/=SQR(k+m)/SQR(k+m);

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

}

22(A)10(B)1(C)9(D)0

8.已知学生记录描述如下

structstudent

{intno;

charname[20];

charsex;

struct

{intyear;

intmonth;

intday;

}birth;

};

structstudents;

设变量s中“生日”是“1982年5月29日”,对“生日”的正确赋值方式是(23)。

23(A)year=1982;month=5;day=29;

(B)birth.year=1982;birth.month=5;birth.day=29;

(C)s.year=1982;s.month=5;s.day=29;

(D)s.birth.year=1982;s.birth.month=5;s.birth.day=29;

9.有下列程序输出结果是(24)。

#include

voiddig(char*s)

{

char*p=s;

while(*s)

*s>='0'&&*s<='9'?

s++:

(*p++=*s++);

*p='\0';

}

voidmain()

{

char*str="A1B2C3";

dig(str);

puts(str);

}

24(A)ABC(B)A1B2C3(C)A1B2C(D)ABC3

10.在下面的选项中,赋值语句错误的是(25)。

25(A)i++;(B)a=(b=(c=2,d=3));

(C)a=a

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

1.读下面程序并回答问题:

#include

voidfun1(intx,inty)

{

intt;

t=x;x=y;y=t;

}

voidfun2(intx[])

{

intt;

t=x[0];x[0]=x[1];x[1]=t;

}

voidmain()

{

inta[2]={1,2},b[2]={1,2};

fun1(b[0],b[1]);fun2(a);

printf("%d,%d,%d,%d\n",a[0],a[1],b[0],b[1]);

}

(1)下列说法错误的是(26)。

26(A)数组名作为函数参数进行传递,传递的是数组的首地址

(B)数组名作为函数参数时,形参数组与实参数组共用内存空间

(C)普通变量作为函数参数进行传递,实参与形参之间发生的是单向值传递

(D)数组名作为函数参数时,传递的是数组元素的值

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

27(A)1,2,1,2(B)1,2,2,1(C)2,1,1,2(D)2,1,2,1

2.读程序并回答问题。

#include

intfun()

{

staticintc=0;

c++;

returnc;

}

voidmain(intargc,char*argv[])

{

intx,i,j;

for(i=1;i

for(j=0;argv[i][j]!

='\0';j++)

x=fun();

printf("%d\n",x*argc);

}

(1)若程序经编译连接后生成可执行文件2_3.exe,若键入以下命令行:

2_3abcd123

则程序的运行结果为(28)。

28(A)3(B)21(C)9(D)0

(2)若将函数fun中的static去掉,变为intc=0;程序经编译后连接生成可执行文件2_3.exe,若键入以下命令行:

2_3abcd123

则程序的运行结果为(29)。

29(A)3(B)30(C)22(D)10

3.读程序并回答问题

#include

#include

voidfun(char*s,intp1,intp2)

{

chart;

while(p1

{

t=*(s+p1);*(s+p1)=*(s+p2);*(s+p2)=t;

p1++;p2--;

}

}

voidmain()

{

charstr[10];

inti;

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

str[i]='A'+i;

str[i]='\0';

puts(str);

fun(str,0,strlen(str)-1);

puts(str);

}

(1)第一个puts(str)的输出结果为(30)。

30(A)AHCFEDGBI(B)IBGDEFCHA

(C)ABCDEFGHI(D)IHGFEDCBA

(2)第二个puts(str)的输出结果为(31)。

31(A)AHCFEDGBI(B)IBGDEFCHA

(C)ABCDEFGHI(D)IHGFEDCBA

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

voidmain()

{

intn,m,s=0,t=1;

scanf("%d",&m);

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

{

t*=n;

s+=t;

}

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

}

程序的功能是(32)

32(A)实现1的阶乘至m的阶乘的求和

(B)求m的阶乘

(C)1到m的求和

(D)实现1至m-1的阶乘的求和

5.读程序,回答问题。

#include

voidmain()

{

chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!

='\0';i++)

if(s[i]!

='c')s[j++]=s[i];

s[j]='\0';

puts(s);

}

程序运行时输入cctv10,其输出结果为(33)。

33(A)cc(B)tv10(C)ctv10(D)tv10cc

6.有下列程序:

#include

charfunc(char*s)

{

char*p=s;

while(*p!

='\0')

p++;

returnp-s;

}

voidmain()

{

printf("\n%d\n",func("Hello!

"));

getch();

}

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

34(A)3(B)Hello!

6(C)无输出(D)6

(2)指针变量的运算不可以(35)。

35(A)指针变量加整形变量(B)指针变量减整形变量

(C)指针变量加指针变量(D)指针变量减指针变量

7.以下是一个C++程序,读程序写出程序运行结果。

#include

voidmain()

{

intnum=0,i=8;

do

{i--;

num++;

}while(--i);

cout<

}

程序的运行结果是(36)。

36(A)2(B)0(C)4(D)5

8.有下列程序:

#include

voidmain()

{charc='A';

intk=0;

do

{switch(c++)

{case'A':

k++;break;

case'B':

k--;

case'C':

k+=2;break;

case'D':

k%=2;continue;

case'E':

k*=10;break;

default:

k/=3;

}

k++;

}while(c<'G');

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

getch();

}

(1)程序输出结果是(37)。

37(A)k=3(B)k=4(C)k=2(D)k=0

(2)本程序中continue的作用(38)。

38(A)与break一样(B)不起任何作用

(C)开始下一次循环(D)出现语法错误

9.有下列程序

intw=3;

intfun(intk)

{

if(k==0)returnw;

return(fun(k-1)*k);

}

voidmain()

{

intw=10;

printf("%d\n",fun(5)*w);

}

输出结果是(39)。

39(A)360(B)3600(C)1080(D)1200

10.有下列程序

voidmain()

{

charch[2][5]={"6934","8254"},*p[2];

inti,j,s=0;

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

p[i]=ch[i];

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

for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)

s=10*s+p[i][j]-'0';

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

}

输出结果是(40)。

40(A)6385(B)69825(C)63825(D)693825

注意:

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

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

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

1.函数fun的功能是:

找出N行M列二维数组元素中的最大值,并作为函数值返回,最大值的行列下标通过形参指针带回main函数中。

请填空。

#include

#defineN3

#defineM4

intfun(inta[N][M],int*row,int*col)

{

inti,j,r,c;

r=c=0;

for(i=0;i

for(j=0;j

if(a[i][j]>①){r=i;c=j;}

②;

*col=c;

③;

}

voidmain()

{

inta[N][M]={1,2,3,4,5,6,7,8,9,10,11,12};

introw,col,max;

max=fun(a,&row,&col);

printf("max=%d,row=%d,col=%d\n",max,row,col);

}

2.程序的功能是:

求出分数序列2/1,3/2,5/3,8/5,13/8……前20项之和,请填空。

#include

voidmain()

{doublex=2,y=1,t,s=0;

inti;

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

{

s=①;

t=②;

x=③;

y=t;

}

printf("s=%f\n",s);

}

3.有5个学生的成绩需要保存在文件score.dat文件中,保存格式如下:

姓名,年龄,成绩请填空。

#include

voidmain()

{FILE*fp;

inti;

charname[80];

intage;

floatscore;

fp=fopen(①,"w");

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

{printf("请输入第%d个学生的信息\n",i);

printf("姓名:

");

scanf("%s",name);

printf("年龄:

");

scanf("%d",&age);

printf("成绩:

");

②;

fprintf(fp,"%s,%d,%f\n",name,age,score);

}

③;

}

4.下列程序的功能是:

从5个字符串中找出最长的那个字符串。

请填空。

#include

#include

#defineN5

#defineM81

char*fun(char(*sq)[M])

{inti;

①;

sp=sq[0];

for(i=1;i

if(②)sp=sq[i];

returnsp;

}

voidmain()

{charstr[N][M],*longest;

inti;

printf("pleaseenter5string:

");

for(i=0;i

gets(str[i]);

for(i=0;i

puts(str[i]);

longest=③;

printf("\nThelongeststring:

");

puts(longest);

}

5.下面程序的功能是:

由25人坐成圆圈,先从任一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1,2,3,4,…),数到5的倍数的出圈,剩下的继续报数,求最后出圈的编号。

#include

voidmain()

{

inta[26],j,n,count;

for(j=1;j<=25;j++)a[j]=j;

j=1;

count=0;

①;

do

{if(a[j]!

=0)

{n++;

if(n%5==0)

{②;

if(count==24)printf("%d\n",j);

count++;

}

}

j++;

if(j>25)j=1;

}

while(③);

}

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

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

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

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