四川省计算机二级C语言试题集.docx

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

四川省计算机二级C语言试题集.docx

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

四川省计算机二级C语言试题集.docx

四川省计算机二级C语言试题集

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

第三十一次等级考试

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

时间:

2009年10月24日

上午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.若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是(11)。

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

2.操作系统本身是计算机系统软件的重要组成部分,而其物质基础是(12)。

12(A)系统硬件(B)程序(C)数据结构(D)标准程序库

3.外部设备完成了预定的输入/输出操作所引起的中断是(13)。

13(A)外中断(B)I/O中断(C)程序中断(D)标准程序库

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

14(A)抽象准则(B)模块化准则(C)信息屏蔽准则(D)综合性准则

5.在结构化设计方法中,设计功能模块算法属于软件开发中的(15)阶段。

15(A)详细设计(B)需求分析

(C)总体设计(D)编程调试

第二部分

C与C++语言程序设计

(共85分)

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

1.已知:

chars[]="China",*p;(考点:

字符指针)

p=s;

则下列叙述正确的是(16)。

16(A)s和p完全相同(B)*p与s[0]不等(C)*p与s[0]相等(D)*s与p相等

2.以下可以作为函数fopen中第一个参数的正确格式是(17)。

(*考点:

文件)

17(A)c:

prog\file1.dat(B)c:

\\prog\\file1.dat

(C)"c:

\prog\file1.dat"(D)"c:

\\prog\\file1.dat"

3.若有定义:

uniondata

{

inti;

floatj;

chars[5];

}k;

则在TurboC2.0环境中sizeof(k)的值是(18)。

(考点:

共用体类型)

18(A)2(B)5(C)11(D)0

4.下面四个选项中,合法的用户自定义标识是(19)。

(考点:

标识符命名)

19(A)int(B)a_b3(C)3_bc(D)#mm

5.已知结构体:

(20)。

(考点:

存储类型extern)

structstudent

{

charname[20];

struct

{intyear;

intmonth;

}birth;

charsex;

}stu;

20(A)stu.birth=2009;(B)stu.year=2009;

(C)stucent.birth.year=2009;(D)stu.birth.year=2009;

6.下面程序的输出结果是(21)。

(考点:

宏定义)

#include

#defineM4

#defineN2*M+1

#defineKN/2-5

voidmain()

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

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

7.有以下结构体及其变量的定义:

structnode

{intdata;

structnode*next;

}*p,*q,*r;

如图所示,指针p、q、r分别指向此链表中的三个连续结点。

 

若要将q所指结点从链表中删除,使p所指结点与r所指结点连接,不能完成指定操作的语句是(22)。

(考点:

链表)

22(A)p->next=q->next;(B)p->next=p->next->next;

(C)p->next=r;(D)p=q->next;

8.下列程序段中,不是无限循环的是(23)。

(考点:

循环语句)

23(A)(B)

k=0;j=100;

dowhile

(1)

{++k;}{j=j%100+1;

whiel(k-->=0);if(j>100)break;}

(C)(D)

s=3333;for(;;);

while(s%2+s++%2);

9.不能把字符串"Hello!

"赋给字符数组b的选项是(24)。

(考点:

字符数组赋值)

24(A)charb[10]={'H','e','l','l','o','!

','\0'};

(B)charb[10];b="Hello!

";

(C)charb[10];strcpy(b,"Hello!

");

(D)charb[10]="Hello!

";

10.若变量已正确定义并赋值,以下符合C语言语法的表达式是(25)。

(考点:

表达式)

25(A)a:

=b+1(B)a=b=c+2(C)int18.5%3(D)a=a+7=c+b

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

1.在下面程序中(考点:

数组、函数(地址参数)、删除字符算法)

#include

voidfun(char*s)

{

inti,j;

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

='\0';i++)

if(s[i]>='0'&&s[i]<='9')

{s[j]=s[i];

j++;

}

s[j]='\0';

}

voidmain()

{

chars[20]="ab12cd34";

fun(s);

printf("%3d%3d\n",sizeof(s),strlen(s));

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

}

(1)第1个printf输出的结果为(26)。

26(A)88(B)208(C)2020(D)204

(2)第2个printf输出的结果为(27)。

27(A)abcd(B)ab12cd(C)1234(D)ab12cd34

2.下列程序的输出结果是(28)。

(考点:

函数(地址参数和普通参数)、指针运算)

voidfun(char*c,intd)

{

*c=*c+1;

d=d+1;

}

voidmain()

{

chara='A',b='a';

fun(&b,a);

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

}

28(A)B,A(B)a,B(C)A,B(D)A,b

3.下列程序的输出结果是(29)。

(考点:

带参数的宏定义)

#include"stdio.h"

#defineGOOD(y)2.84+y

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

#definePRINT(a)PR(a);putchar('\n')

voidmain()

{

intx=2;

PRINT(GOOD(5)*x);

}

29(A)11(B)15(C)13(D)12

4.下列程序运行后的输出结果是(30)。

(考点:

结构体类型、函数(普通参数)、全局变量和局部变量)

#include"stdio.h"

structtree

{

intx;

char*s;

}t;

func(structtreet)

{

t.x=10;

t.s="computer";

return(0);

}

voidmain()

{

t.x=1;

t.s="minicomputer";

fun(t);

printf("%d,%s\n",t.x,t.s);

}

30(A)10,computer(B)1,minicomputer

(C)1,computer(D)10,minicomputer

5.下列程序编译连接后生成可执行文件CAD.EXE,输入以下命令行:

CADFILE1FILE2表示回车)

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

(考点:

命令行参数)

#include"stdio.h"

voidmain(intargc,char*argv[])

{

inti;

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

for(i=0;i<=argc-1;i++)

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

printf("\n");

}

31(A)2(B)3

cadfile1file2cadfile1file2

(C)2(D)3

CAD.EXEFILE1FILE2CAD.EXEFILE1FILE2

6.有下列程序:

(考点:

for循环嵌套、continue语句、break语句)

#include"stdio.h"

voidmain()

{

inti,j,x=0;

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

{

x++;

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

{

if(j%2)

continue;

x++;

}

x++;

}

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

}

(1)该程序的运行结果是(32)

32(A)6(B)4(C)8(D)2

(2)若将程序中的continue改为break,则输出结果为(33)

33(A)6(B)4(C)8(D)2

7.有如下程序:

(考点:

文件打开方式、文件操作函数、函数调用)

#include"stdio.h"

#include"string.h"

voidfun(char*fname,char*st)

{

FILE*myf;

inti;

myf=fopen(fname,"w");

for(i=0;i

fputc(st[i],myf);

fclose(myf);

}

voidmain()

{

fun("text","world");

fun("text","hello");

}

(1)运行该程序后,文件text中的内容为(34)。

34(A)world(B)worldhello(C)hello(D)helloworld

(2)若将文件打开方式"w"改为"a",则运行程序后,文件text中的内容为(35)。

35(A)world(B)worldhello(C)hello(D)helloworld

8.有如下程序:

(考点:

递归函数)

#include"stdio.h"

intfun(intn)

{

inty;

if(n==1)

y=1;

elseif(n==2)

y=2;

else

y=n+fun(n-2);

returny;

}

voidmain()

{

intx;

scanf("%d",&x);

printf("%d",fun(x));

}

若输入x的值为8,则程序的输出结果为(36)。

36(A)16(B)36(C)30(D)20

intfun(intn)

{inti,s=0;

for(i=1;i<=n;i=i+2)

s=s+i;

returns;

}

与函数fun等价的非递归程序为(37)。

37(A)intfun(intn)(B)

{inti,s=0;

for(i=n;i>=1;i=i-2)

s=s+i;

returns;

}

intfun(intn)

{inti,s=0;

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

s=s+i;

returns;

}

(C)intfun(intn)(D)

{inti,s=0;

for(i=n;i>=1;i--)

s=s+i;

returns;

}

9.有如下程序:

(考点:

数组、函数、静态存储类型)

#include

intfun(int*x,intn)

{

staticints=0,i;

for(i=0;i

s=s+x[i];

returns;

}

voidmain()

{

intx[5]={1,2,3,4,5},y[4]={6,7,8,9},s;

s=fun(x,5)+fun(y,4);

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

}

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

38(A)15(B)30(C)45(D)60

(2)若将fun函数中的static去掉,则程序的运行结果为(39)。

39(A)15(B)30(C)45(D)60

10.有如下程序:

(考点:

循环、switch语句)

#include

voidmain()

{

charch;

while((ch=getchar())!

='\n')

{

switch(ch)

{

case'1':

case'2':

putchar(ch+2);

case'3':

case'4':

putchar(ch+2);break;

default:

putchar(ch+2);

}

}

}

若输入135<回车>,程序的运行结果为(40)。

40(A)135(B)357(C)3357(D)3333557

注意:

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

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

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

1.函数fun的功能是:

将n×n(1

例如:

123若m=2,则处理后的方阵为:

223

4568106

789141618

在main函数中调用fun函数,并分行输出处理后的方阵。

请填空。

(考点:

矩阵处理算法)

#include

voidfun(inta[][10],intn,intm)

{

inti,j;

for(i=0;i

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

a[i][j]=a[i][j]*m;

}

voidmain()

{

intw[10][10]={{1,2,3},{4,5,6},{7,8,9}},m,i,j;

scanf("%d",&m);

fun(②,3,m);

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

{

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

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

printf(③);

}

}

2.下面程序的功能是输出所有的5位4倍反序数。

请填空。

说明:

当一个5位整数的4倍刚好是其反序数,则称其为5位4倍反序数。

例如21978的反序数是87912,而87912=4*21978,所以21978就是一个5位4倍反序数。

输出结果为:

2197887912

(考点:

循环、逆置整数算法)

#include

voidmain()

{

longn,k,t,m,j=0;

for(n=10000;n<=99999;n++)

{

m=0;

t=n;

for(k=1;k<=①;k++)

{

②;

③;

}

if(m==4*n)

{

j++;

printf("%ld%ld\n",n,m);

}

}

}

3.下面程序的功能是:

对一整型数组中下标是3的倍数的元素进行升序排序,其余元素保持不变。

请填空。

(考点:

数组、排序算法)

#include

voidmain()

{

inta[16]={16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};

inti,j,t;

for(i=0;i<16;①)

for(j=i+3;j<16;②)

if(③)

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

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

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

}

4.已知磁盘文件test.dat中有10个大于2的正整数,下列程序能判断和输出文件中10个数中的所有素数。

请填空。

(考点:

文件、函数参数、判素数算法)

#include

intprime(①,intn)

{

inti,j,k=0,flag=0;

for(i=0;i

{

for(j=2;j

if(②==0)

{flag=0;

break;

}

else

flag=1;

if(flag)

{③=a[i];

k++;

}

}

returnk;

}

voidmain()

{

intn,i,a[10];

FILE*fp;

if((fp=fopen("test.dat","r"))==NULL)

{

printf("Cannotopenthefile!

\n");

exit(0);

}

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

fscanf(fp,"%d",&a[n]);

n=prime(a,n);

for(i=0;i

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

fclose(fp);

}

5.程序的功能是计算:

s=1-12+123-1234+12345的值,请填空。

(考点:

循环、序列处理算法)

#include

voidmain()

{

inti,s=0,t=0,k=1;

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

{

t=t*10+①;

s=s+②;

k=③;

}

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

}

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

第二十七次等级考试

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

时间:

2007年10月27日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

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

1.数组也是一种数据结构,一维数组就是一种顺序表结构。

(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.以下(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.以下程序的输出结果是(16)。

(考点:

逻辑运算、自增自减运算)

#include

voidmain()

{inta=-1,b=4,k;

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

(b--<=0);

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

}

16(A)004(B)103(C)003(D)104

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

当前位置:首页 > 表格模板 > 合同协议

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

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