四川省计算机二级c语言笔试试卷及分析(34-28次)

2020-04-17 04:04

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

第三十四次等级考试

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

时间: 2011年4月 16 日 上午 9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 作业与进程的主要区别是前者由用户提交,后者是由系统自动生成。 2. 从循环链表中任意一个结点出发不能访问到整个链表。 3. 如果分时操作系统的时间片一定,那么用户数越少,则响应时间越长。

( 1A ) ( 2B ) ( 3B ) ( 4A ) ( 5B ) ( 6A ) ( 7A ) ( 8A ) ( 9B ) ( 10B )

4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。 5. 死锁产生的根本原因是操作系统能够提供的资源比请求该资源的进程数少。 6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。 7. 链栈与顺序栈相比,有一个明显的优点是通常不会出现栈满的情况。 8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。 9. 黑盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。 10.软件设计时,应力求增加模块间的耦合,减少模块的内聚。

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

1. 设已将元素a1,a2,a3依次入栈,元素a4正等待进栈。那么下列4个序列中不可能出现的出栈序列是( 11 ) 。A

11 (A)a3 a1 a4 a2 (B) a3 a2 a4 a1 2. 以下哪一个不是操作系统的特征( 12 )。B

(C) a3 a4 a2 a1

(D) a4 a3 a2 a1 (D) 虚拟 (D) 等待?就绪 (D) 多重分区管理 (D) 触发时间 12 (A) 并发 (B) 分解 (C) 共享 3. 下列的进程状态变化中,( 13 )变化是不可能发生的。C

13 (A) 运行?就绪 (B) 运行?等待 (C) 等待?运行 4. 很好地解决了碎片问题的存储管理方法是( 14 )。B 14 (A) 页式存储管理 (B) 段式存储管理 (C) 可变分区管理 5. 作业从进入后备队列到被调度程序选中的时间间隔称为( 15 )。B 15 (A) 周转时间 (B) 等待时间 (C) 响应时间 第二部分 C与C++语言程序设计 (共85分) 一、单项选择题 ( 每小题1分,共10分 )

1. 以下合法的字符常量是( 16B ) 。(考点:常量) 16 (A) “a” (B) ?\\72? (C) ?\\0x12? 2. 以下程序的结果是( 17 )。(考点:位运算)

void main()

{ unsigned int a=3,b=10;

(D) ?ab?

printf(\%d \\n\}

17 (A) 1 (B) 13 (C) 12

3. 以下程序的输出结果是( 18D )。(考点:逻辑运算)

void main()

{ int a=-1,b=4,k;

k = ( ++a < 0 ) && !( b-- <= 0 ); printf(\}

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

4. 以下程序运行后的输出结果是( 19 )。(考点:字符数组及字符串处理函数)

# include

void main()

{ char p[20]={'a','b','c','d'},q[]=\

strcpy(p+strlen(q),r); //strcpy(p+3, r); p: “abcabcde” strcat(p,q); //p: “abcabcdeabc” printf(\

}

19 (A) 20 9 (B) 9 9 (C) 20 11 (D) 11 11

5. 下列对C语言字符数组的描述中错误的是( 20C )。(考点:字符数组)

20 (A)字符数组可以存放字符串

(B)字符数组的字符串可以整体输入、输出

(C)可以在程序中用赋值运算符“=”对字符数组进行整体赋值 (D)不可以用关系运算符对字符数组中的字符串进行比较

6. 下述程序的输出结果是( 21D )。(考点:条件运算)

# include

void main()

{ int a[]={7,4,6,3,10}; int m=10,k,*ptr=&a[0];

for(k=0;k<5;k++) m= *(ptr+k)

21 (A) 10 (B) 4 (C) 6

7.有如下程序员 (考点:if~else嵌套)

# include void main() { int a=2,b=-1,c=2; if(a

else c++; printf(\

该程序的输出结果是( 22C )

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

8. 根据下面的结构体类型及其结构数组的定义,值等于?A?的表达式是( 23 )(考点:结构体)

struct season

(D) 5

(D) 3

{ char name[10]; int day;

};

struct season s[4]={\Autumn\

23 (A) s[3].name[0] (B)s[3].name (C) s[2].name

9. 运行以下程序的输出结果为( 24B )。(考点:宏定义)

# define R 1+2 # define S(r) r*r # define V(r) S(r)*R # include void main()

{ int r1=1+2;

printf(\

}

24 (A) 27 (B) 11 (C) 9 (D) 7

10. 以下不能对二维数组a进行正确初始化的语句是 ( 25A ) 。(考点:二维数组赋初值)

25 (A) int a[2][3]={{1,2},{3,4},{5,6}}; (B) int a[][3]={{1,2},{0}}; (D) int a[][3]={1,2,3,4,5,6}

二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 读下面的程序并回答问题。(考点:switch语句嵌套)

# include

void main()

{ int x=1,y=0,a=0,b=0; switch(x) {

case 1:

switch(y)

{ case 0: a++;break; case 1: b++;break; } (C) int a[2][3]={0};

(D) s[2].name[0]

case 2: a++;b++;break;

}

printf(“%d%d\\n”,a,b); }

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

26 (A) 2,1 (B) 1,2 (C) 1,1 (D) 0,0

(2)将程序中的switch ( x ) 更改为switch ( x != 1 ) ,其程序运行结果是( 27D )。

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

2. 读下面程序并回答问题。(考点:字符指针数组、选择排序算法)

# include

# include

void abc(char *name[],int len) { char *temp; int i,j,k; for(i=0;i

k=i;

for(j=i+1;j

if( strcmp(name[k],name[j]) > 0 ) k=j; //k记最小行的下标 if(i!=k)

用选择法对name指针数组指向的各字符串进行从小到大的排序。

{ temp=name[i]; name[i]=name[k]; name[k]=temp; }//交换指针数组元素的值,其指向的目标字符串的存放位置不变 } }

void main()

{ static char *name[]={\ int i,n=5; abc(name,n); for(i=0;i<5;i++)

printf(\%c\ //输出排序后各指针数组元素所指向字符串的第一个字符

printf(\}

(1)函数abc( )的功能是( 28 B )。

28 (A) 按字符排序 (B)按字符串排序 (C) 交换字符串 (D) 字符串倒序

(2)程序输出结果是( 29 C )。

29 (A) tfbfj (B) turbo (C) bffjt

(D) java

3. 读下面的程序并回答问题。(考点:静态存储类型)

# include

int func(int x) { int y=0; static int z=3; x=z++, y++; return(x); }

void main() { int a=2,i,b;

for(i=0;i<2;i++) b=func(a++); printf(\

}

程序运行的结果是( 30C )。

30 (A) 2 (B) 3 (C) 4

(D) 5

4. 读下面程序并回答问题。(考点:递归函数、全局变量)

# include

int temp; //全局变量 void main() { int fun(int n); int num,sum;

num=5684;

temp=num; //全局变量temp=5684 sum=fun(num);

printf(\}

int fun(int n) { int remind;

static int sum=0;

if(n>=10) fun(n/10); remind=n; sum+=remind;

if(temp>n) printf(\ else

printf(\ return sum;

}

(1)程序中的fun函数被调用次数为( 31C )。 31 (A) 2 (B) 3 (2)程序的输出结果为( 32A )。

(C) 4

(D) 5

32 (A) 5+6+8+4 =23 (B)5+6+8+4+=23 (C) 4+8+6+5+=23 (D) 4+8+6+5=23

5. 读下面程序并回答问题。(考点:文件)

# include

char x[4][8]={\int a[4]={6,7,6,5}; void main() { int i; char y[4][8]; FILE *fp;

fp=fopen(\ for(i=0;i<4;i++)

fputs(x[i],fp);//将二维数组x中各行存的字符串依次写入fp所指的文件 fclose(fp);

fp=fopen(\for(i=0;i<4;i++)

fgets(y[i],a[i],fp); //从fp所指的文件中读出各行字符串存入二维数组y中

fclose(fp);

for(i=0;i<4;i++) printf(\ //*(y+i)?y[i] }

(1)程序的运行结果是( 33 A )。 33 (A)First

Secodn Third

(B) First

First First

(C) “First”

(D) Four

Third Second First

“Second” “Third”

Four First “Four” (2)以下哪种说法正确( 34C )。

34 (A) TEST.txt仅在程序运行期间存在,程序结束后就没有了

(B) TEST.txt文件必须在程序运行之前建立好

(C) 如果TEST.txt文件不存在,程序运行中会自动建立TEST.txt文件 (D) TEST.txt始终是无内容的空文件

6. 读下面程序,回答问题。(考点:字符数组、归类计数算法)

# include

void main()


四川省计算机二级c语言笔试试卷及分析(34-28次).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015继续医学教育公共考试(完整答案版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: