26次笔试.docx

上传人:b****7 文档编号:26322555 上传时间:2023-06-17 格式:DOCX 页数:16 大小:20.80KB
下载 相关 举报
26次笔试.docx_第1页
第1页 / 共16页
26次笔试.docx_第2页
第2页 / 共16页
26次笔试.docx_第3页
第3页 / 共16页
26次笔试.docx_第4页
第4页 / 共16页
26次笔试.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

26次笔试.docx

《26次笔试.docx》由会员分享,可在线阅读,更多相关《26次笔试.docx(16页珍藏版)》请在冰豆网上搜索。

26次笔试.docx

26次笔试

26次笔试

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

第二十六次等级考试

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

时间:

2007年4月14日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

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

1.Windows是多用户多任务操作系统。

(1)

2.在程序设计中,常用一维数组来表示线性表的顺序存储空间。

(2)

3.在面向对象的软件开发方法中,类可以创建对象,类是对象的实例,对象是生成类的模板。

(3)

4.在计算机系统中,操作系统是处于裸机之上的第一层软件。

(4)

5.数据的存储结构与数据的处理效率无关。

(5)

6.提供没有错误的程序是提高软件的可维护性的基本措施。

(6)

7.中断控制方式适用于外设同CPU之间进行大量数据交换。

(7)

8.在软件工程中,结构化软件开发方法是一种自顶向下分阶段实现的软件开发方法。

(8)

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

(9)

10.软件工程的目的是最终解决软件的生产工程化。

(10)

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

1.以下哪种测试方法不属于白盒测试技术(11)。

11(A)基本路径测试(B)边界值分析测试

(C)循环覆盖测试(D)逻辑覆盖测试

2.若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是(12)。

12(A)1,4,3,2(B)2,3,4,1

(C)3,1,4,2(D)3,4,2,1

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)是正确的。

(考点:

枚举类型)

16(A)enumem1{my,your=4,his,her=his+10};

(B)enumem2{"No","Yes"};

(C)enumem3{1,one=4,two,8};

(D)enumem4{A,D,E+1,K};

2.共用体(联合)类型变量在任何给定时刻(17)。

(考点:

结构体、共用体)

17(A)所有成员一直驻留在各自的内存中

(B)只有一个成员驻留在内存中

(C)部分成员(>1)驻留在内存中

(D)没有成员驻留在内存中

3.以下对结构体变量td的定义中,错误的是(18)。

(考点:

结构体)

18(A)typedefstructaa(B)structaa

{intn;{intn;

floatm;floatm;

}AA;};

AAtd;structaatd;

(C)struct(D)struct

{intn;{intn;

floatm;floatm;

}aa;}td;

structaatd;(考点:

一维数组中指针及运算)

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

#include

voidmain()

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

printf("%d\n",*p+*q);

}

19(A)16(B)10(C)8(D)6

5.若有定义inta=1,b=3,c=5,d=4;则执行以下程序段后x的值为(20)。

(考点:

条件语句)

if(a

if(c

elseif(a

if(b

elsex=3;

elsex=6;

elsex=7;

20(A)1(B)3(C)6(D)2

6.已知inta=5,b=9;将a+b的值输出到屏幕上,下列实现方法中,正确的是(21)。

(*考点:

C++)

21(A)cout<

(C)cout<

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

(考点:

宏定义、函数)

#include

#defineP3

intF(intx){return(P*x*x);}

voidmain()

{printf("%d\n",F(3+5));}

22(A)192(B)29(C)25(D)编译出错

8.以下程序输出的结果是(23)。

(考点:

数组及其运算))

#include

voidmain()

{charp[]={'a','b','c'},q[]="abc";

printf("%d,%d\n",sizeof(p),sizeof(q));

}

23(A)4,4(B)3,3(C)4,3(D)3,4

9.下面哪个是合法的数组定义(24)。

(考点:

数组)

24(A)chara={'H','e','l','l','o'};(B)chara[5]={"H","e","l","l","o"};

(C)chara[5]={'H','e','l','l','o'};(D)chara[5]="Hello";

10.表达式0x13&0x17的值是(25)。

(考点:

位运算)

25(A)0x17(B)0x13(C)0x18(D)0xec

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

1.读程序,回答问题。

(考点:

if~else条件语句)

#include

voidmain()

{

intx,y;

scanf("%d,%d",&x,&y);

if(x>y)

x=y;y=x;

else

x++;y++;

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

getch();

}

①程序的输出结果是(26)。

26(A)有语法错误,不能通过编译

(B)若输入数据3和4,则输出4和5

(C)若输入数据4和3,则输出3和4

(D)若输入数据4和3,则输出4和4

②程序中getch()函数的作用是(27)。

27(A)输出结束字符(B)输入开始字符

(C)方便看运行结果(D)没有任何作用

2.以下程序的运行结果为(28)。

(考点:

二维数组、指针数组)

#include

voidmain()

{charch[2][10]={"693","825"},*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);

}

28(A)92(B)6982(C)9325(D)6385

3.阅读如下程序:

(考点:

switch语句)

#include

voidmain()

{inta=0,b=2,c=3;

switch(a)

{case0:

switch(b==2)

{case1:

putchar('&');break;

case2:

putchar('%');break;

}

case1:

switch(c)

{case1:

putchar('$');

case2:

putchar('*');break;

default:

putchar('#');

}

}

}

29(A)&%(B)&#(C)&$(D)%#

4.读程序,回答问题。

(考点:

递归函数)

#include

fun(intx)

{intp;

if((x==0)||(x==1))return3;

p=x-fun(x-2);

returnp;

}

voidmain()

{inta;

printf("\nEnterapositiveinteger:

");

scanf("%d",&a);

if(a<0)printf("Inputerror\n");

elseprintf("%d\n",fun(a));

}

①该函数的功能是(30)。

30(A)利用递归函数f(x)=x-f(x-2)(B)计算数学函数f(x)=f(x-2)

(C)计算x的阶乘(D)以上都不是

②如果从键盘输入a的值为9,则运行的结果是(31)。

31(A)9(B)7(C)3(D)1

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

(考点:

全局变量的作用范围)

#include

voidfun()

{externintx,y;

inta=15,b=10;

x=a-b;

y=a+b;

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

}

intx,y;

voidmain()

{inta=7,b=5;

x=a+b;

y=a-b;

fun();

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

}

32(A)5,25(B)12,2(C)2,12(D)25,5

5,2512,22,1225,5

6.读程序,回答问题。

(考点:

结构体数组、结构体指针、函数(指针参数))

#include

structstu

{intnum;

charname[10];

intage;

};

voidfun(structstu*p)

{printf("%s\n",(*p).name);}

voidmain()

{structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",21},{9803,"Zhao",19}};

fun(students+2);

}

①fun函数的功能是(33)。

33(A)结构体数组排序(B)输出结构体的name成员

(C)输入结构体数组的数据(D)计算students数组加2后的值

②运行该程序,输出的结果是(34)。

34(A)Zhang(B)Wang(C)Zhao(D)9801

7.读程序,回答问题。

(考点:

函数(指针参数)、指针运算)

#include

charfunc(char*s)

{char*p=s;

while(*p!

='\0')

p++;

returnp-s;

}

voidmain()

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

"));

getch();

}

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

35(A)3(B)Hello!

6(C)无输出(D)6

②指针变量不可以进行的运算是(36)。

36(A)指针变量加整型常量(B)指印变量减整型常量

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

8.读程序,回答问题。

(考点:

命令行参数)

voidmain(intargc,char*argv[])

{while(--argc>0)

printf("%s",argv[argc]);

printf("\n");

}

若以上程序经编译连接后生成可执行文件2-8.exe,运行时输入命令行:

2-8ABCDEFGHIJKL则输出结果为(37)。

37(A)ABCDEFG(B)L(C)LKJIHGFEDCBA(D)ABCDEFGHIJKL

9.读程序,回答问题。

(考点:

共用体及指针)

#include

unionpw

{inti;

charc[2];

}*p,a;

voidmain()

{p=&a;

p->i=5;

p->c[0]=10;

p->c[1]=1;

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

}

程序的运行结果为(38)。

38(A)266(B)1(C)10(D)5

若将程序中的union改为struct,则程序的运行结果为(39)。

39(A)266(B)1(C)10(D)5

10.读程序,回答问题。

(考点:

变量的作用范围)

#include

voidmain()

{intm=1,n=2,t=3;

++m;

t+=++n;

{intn=10,t;

t=n*2;

m+=t;

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

}

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

}

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

40(A)22,11,5(B)22,10,20(C)32,9,5(D)16,21,6

22,3,922,3,618,5,622,3,6

注意:

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

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

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

1.下面程序的功能是:

统计C语言源程序(file3-1.c)文件中的“{”和“}”是否配对,即“{”和“}”的数目是否相等。

如果配对,则输出“OK!

”否则输出“ERROR!

”。

(考点:

文件、字符配对算法)

#include

#include

voidmain()

{FILE*fp;

①;

intch1=0,ch2=0;

if((fp=fopen("file3-1.c",②))==NULL)

{printf("fileopenerror!

\n");

exit(0);

}

while(!

feof(fp))

{③=fgetc(fp);

if(ch1=='{')

ch1++;

if(ch2=='}')

ch2++;

}

fclose(fp);

if(ch1==ch2)

printf("OK!

\n");

else

printf("ERROR!

\n");

}

2.下面程序的功能是:

将一个数插入到一个有序数组(从小到大)中,使插入以后的数组仍然有序。

采用的算法是:

确定要插入数的位置,然后将比这个数大的数后移一个位置,在空出的位置上将该数插入。

(考点:

数组、插入排序算法)

#include

voidmain()

{inta[11]={1,3,6,7,9,12,14,18,19,20},x;

inti,p;

printf("Inputadata:

\n");

scanf("%d",&x);

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

if(x

{①;

break;

}

for(i=9;②;i--)

a[i+1]=a[i];

③;

printf("Thearray:

\n");

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

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

printf("\n");

}

3.以下程序能统计一个英文句子(以.号结束)中最长单词的长度。

(考点:

字符数组、函数(指针参数)、单词长度处理算法)

#include

intcount(char*p)

{intword=0,max=0;

while(*p!

='.')

{while((*p<='z')&&(*p>='a')||(*p<='Z')&&(*p>='A'))

{①;

p++;

}

if(②)

max=word;

③;

p++;

}

returnmax;

}

voidmain()

{charstr[80];

gets(str);

printf("max=%d\n",count(str));

}

4.下面程序中,函数SumColumMin的功能是:

求出M行N列二维数组每列元素中的最小值,并计算它们的和值。

主函数中输出和值。

(考点:

二维数组、函数(指针参数)、二维数组最值求和算法)

#include

#defineM2

#defineN4

voidSumColumMin(inta[M][N],int*sum)

{inti,j,k,s=0;

for(i=0;i

{k=0;

for(j=0;j

if(a[k][i]>a[j][i])k=j;

s+=①;

}

②=s;

}

voidmain()

{

intx[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(③);

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

}

5.以下程序采用直接选择法对数组a中的10个数进行降序排列,然后按每行5个数的格式输出。

(考点:

数组、选择排序算法)

#include

voidmain()

{

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

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

{

k=j;

for(i=j+1;i<10;i++)

{

if(*(a+i)>①)

k=i;

}

t=a[j];

*(a+j)=②;

*(a+k)=t;

}

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

printf((i%5)?

"%4d":

③,*(a+i));

printf("\n");

}

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

当前位置:首页 > 农林牧渔 > 林学

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

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