四川计算机二级第34次C语言笔试真题答案_第1页
四川计算机二级第34次C语言笔试真题答案_第2页
四川计算机二级第34次C语言笔试真题答案_第3页
四川计算机二级第34次C语言笔试真题答案_第4页
四川计算机二级第34次C语言笔试真题答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四川省普通高等学校计算机应用知识和能力第三十四次等级考试二级(C与C+语言) 笔 试 试 卷时间: 2011年4月 16 日 上午 9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 作业与进程的主要区别是前者由用户提交,后者是由系统自动生成。( A )2. 从循环链表中任意一个结点出发都能访问到整个链表。( A )3. 如果分时操作系统的时间片一定,那么用户数越少,则响应时间越长。( A )4. 队列在操作系统的各种资源请求排队及数据缓冲区管理中广泛使用。( A )5. 死锁产

2、生的根本原因是操作系统能够提供的资源比请求该资源的进程数少。( B ) 分析:死锁产生原因:争夺共享资源;进程推进顺序不当6. 虚拟设备技术能将独占设备转换为可共享的设备,提高资源利用率。( A )7. 链栈与顺序栈相比,有一个明显的优点是通常不会出现栈满的情况。( A )8. 软件维护是长期的过程,交付使用的软件仍然需要排错、修改和扩充。( A )9. 墨盒测试要求测试人员根据程序内部逻辑结构设计或选择测试用例。( B ) 分析:白盒测试才是根据程序内部逻辑结构设计测试用例,黑盒测试是功能测试10.软件设计时,应力求增加模块的耦合,减少模块间的内聚。( B ) 分析:软件设计时,应力求增加模

3、块的内聚,减少模块间的耦合二、选择题(每小题1分,共5分)1. 设已将元素a1、a2、a3依次入栈,元素a4正等待进栈。那么下列4个序列中不可能出现的出栈序列是( A ) 。 11 (A) a3、a1、a4、a2(B) a3、a2、a4、a1(C) a3、a4、a2、a1(D) a4、a3、a2、a12. 以下哪一个不是操作系统的特征( B )。 12 (A) 并发(B) 分解(C) 共享(D) 虚拟3. 下列的进程状态变化中,( C )变化是不可能发生的。 13 (A) 运行à就绪(B) 运行à等待(C) 等待à运行(D) 等待à就绪4. 很好地解决了

4、碎片问题的存储管理方法是( D )。 14 (A) 多重分区管理 (B) 段式存储管理(C) 可变分区管理(D) 页式存储管理5. 作业从进入后备队列到被调度程序选中的时间间隔称为( B )。 15 (A) 周转时间 (B) 等待时间 (C) 响应时间(D) 触发时间第二部分C与C+语言程序设计(共85分)一、单项选择题 ( 每小题1分,共10分 ) 1. 以下合法的字符常量是( C )。16 (A) “a”(B) 72(C) 0x12(D) ab 2. 以下程序的结果是( B )。#include "stdio.h"void main()unsigned int a=3,

5、b=10;printf("%dn",a<<2|b>>1); 17 (A) 1(B) 13(C) 12(D) 5 3. 以下程序的输出结果是( D )。#include "stdio.h"void main()int a=-1,b=4,k;k=(+a)&&!(b-<=0);printf("%d %d %dn",k,a,b);18 (A)1 0 4 (B)1 0 3 (C) 0 0 3 (D)0 0 4 4. 以下程序的输出结果是( C )。#include <string.h>v

6、oid main()char p20='a','b','c','d',q="abc",r="abcde"strcpy(p+strlen(q),r);strcat(p,q);printf("%d %dn",sizeof(p),strlen(p);19 (A) 20 9(B) 9 9 (C)20 11(D)11 11 5. 下列对C语言字符数组的描述中错误的是( C )。20 (A) 字符数组可以存放字符串(B) 字符数组的字符串可以整体输入、输出(C) 可以在程序中用赋值运

7、算符“=”对字符数组进行整体赋值(D) 不可以用关系运算符对字符数组中的字符串进行比较 6.下述程序的输出结果是( D )。#include "stdio.h"void main()int a=7,4,6,3,10;int m=10,k,*ptr=&a0;for(k=0;k<5;k+)m=*(ptr+k)<m?*(ptr+k):m;printf("%dn",m);21 (A) 10(B) 4(C) 6 (D) 3 7. 有如下程序#include "stdio.h"void main()int a=2,b=-1,c

8、=2;if(a<b)if(b<0) c=0;elsec+;printf("%dn",c);该程序的输出结果是( C )。22 (A) 0(B) 1(C) 2(D) 3 8. 根据下面的结构体类型及其结构数组的定义,值等于A的表达式是( D )。struct seasonchar name10;int day; struct season s4=“Spring”,90,”Summer”,91,”Autumn”,92,”Winter”,92;23 (A) 0 (B) (C) (D) 0 9. 运行以下程序的输

9、出结果为( B )。#include "stdio.h"#define R 1+2#define S(r) r*r#define V(r) S(r)*Rvoid main()int r1=1+2;printf("%d",V(r1);24 (A) 27(B) 11 (C)9 (D)7 10.以下不能对二维数组a进行正确初始化的语句是 ( A ) 。25 (A) int a 2 3 =1,2,3,4,5,6;(B) int a 3 =1,2,0;(C) int a 2 3 =0;(D) int a 3 =1,2,3,4,5,6;二、读程序回答问题 ( 每个选

10、择3分,共45分 ) 1. 读下面程序并回答问题: #include "stdio.h"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; case 2: a+;b+;break; printf("%d,%dn",a,b);(1)程序的运行结果为( A )。26 (A) 2,1 (B) 1,2(C) 1,1(D) 0,0(2)将程序中的switch(x)更改为switch(x!=1),其程序运行结果是( D )。27

11、(A) 2,1 (B) 1,2(C) 1,1(D) 0,0 2. 读下面程序并回答问题:#include "stdio.h"#include "string.h"void abc(char *name,int len)char *temp; int i,j,k;for(i=0;i<len-1;i+)k=i;for(j=i+1;j<len;j+)if(strcmp(namek,namej)>0) k=j;if(i!=k) temp=namei;namei=namek;namek=temp; void main()static char *

12、name="turbo c","fortan","basic","forbase","java"int i,n=5;abc(name,n);for(i=0;i<5;i+)printf("%c",*namei);printf("n"); 函数abc的功能是( B )。28 (A) 按字符排序 (B) 按字符串排序(C) 交换字符串(D) 字符串倒序程序的运行结果是( C )。29 (A) tfbfj(B) turbo(C) bffjt(D) java

13、3. 读下面程序并回答问题:#include "stdio.h"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("%dn",b);该程序运行的结果是( C )。30 (A)2(B) 3(C) 4(D) 5 4. 有下列程序(考点:函数(地址参数)、指针运算)#include "stdio.h"int temp;void main()int fun(int n

14、);int num,sum;num=5684;temp=num;sum=fun(num);printf("=%dn",sum);int fun(int n)int remind;static int sum=0;if(n>=10)fun(n/10);remind=n%10;sum+=remind;if(temp>n)printf("%d+",remind);elseprintf("%d",remind);return sum;(1)程序中的fun函数被调用次数为( C )。31 (A)2(B) 3(C) 4(D) 5(2)

15、程序的输出结果为( A )。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 "stdio.h"char x48="First","Second","Third","Four"int a4=6,7,6,5;void main()int i;char y48;FILE *fp;fp=fopen("TEST.txt","w");for(i=0;i

16、<4;i+)fputs(xi,fp);fclose(fp);fp=fopen("TEST.txt","r");for(i=0;i<4;i+)fgets(yi,ai,fp);fclose(fp);for(i=0;i<4;i+)printf("%sn",*(y+i);(1)程序运行的结果是( A )33 (A) First(B) First(C) “First”(D) Four Second First “Second” Third Third First “Third” Second Four First “Four”

17、 First(2)以下哪种说法是正确的( C )。34 (A) TEST.txt仅在程序运行期间存在,程序结束后就没有了(B) TEST.txt文件必须在程序运行之前建立好(C) 如果TEST.txt文件不存在,程序运行中会自动建立TEST.txt文件(D) TEST.txt始终是无内容的空文件 6. 读下面程序并回答问题。#include "stdio.h"void main()char s50="de123116abc5656"int i,b10=0,cnt=0;for(i=0;si!='0'i+)if(si>='0&#

18、39;&&si<='9')bsi-'0'+;else cnt+;printf("%dn",cnt);for(i=0;i<10;i+)printf("%d",bi);(1)main函数中第一个printf输出cnt的值为( B )36 (A) 15 (B) 5(C) 9(D) 16(2)该程序的功能是( C )37 (A) 取出字符串中的数字子串连接起来(B) 统计数字子串在字符串中出现的次数(C) 将数字子串转换为整数并累加(D) 将字符串中的数字字符转换为数字,结果加起来乘以10 7. 读下面

19、程序,回答问题。#include "stdio.h"int fun(int *a,int n)if(n>1) return *a+fun(a+1,n-1);elsereturn *a;void main()int a10=1,2,3,4,5,6,7,8,9,10,s;s=fun(a+3,3);printf("%dn",s); (1)函数fun与下面非递归程序等价的是( A )。37 (A)int fun(int *a,int n)(B) int fun(int *a,int n)int i,s=0;int i,s=0;for(i=0;i<n;

20、i+)for(i=0;i<n;i+)s=s+ai;s=s+*a;return s;return s;(C)int fun(int *a,int n)(D) int fun(int *a,int n)int i,s=0;int i,s=0;for(i=0;i<n;i+)for(i=0;i<n;i+)s=ai;s=s+an-i;reutrn s;return s; (2)程序的输出结果为( C )。38 (A) 55(B) 12 (C) 15 (D) 18 8. 读下面程序,回答问题。#include "stdio.h"void sort(int a,int

21、n)int i,j,t;for(i=0;i<n-1;i+)for(j=0;j<i;j+)if(aj>ai)t=aj;aj=ai;ai=t;void main()int x10=1,0,-76,4,8,12,65,100,-45,123;int i;sort(x+5,5);printf("%d",x5);(1)程序中sort函数的功能是( C ) 39 (A)用起泡法对含有n个元素的数组a从小到大的排序 (B)用选择法对含有n个元素的数组a从小到大的排序(C)用二分法对含有n个元素的数组a从小到大的排序(D)用起泡法对含有n个元素的数组a从大到小的排序(2)

22、该程序的运行输出结果为( B )40 (A) -76(B) -45 (C) 8 (D) 123注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空 ( 每空2分,共30分 ) 1. 程序中函数fun()的功能是:查找字符串str中指定字符ch出现的次数并返回,并将该字符出现时的下标位置记录于数据组bb中。例如在字符串中查找字符'1',其结果为3次,下标分别为0,5,6。请填空。#include "stdio.h"#define N 20int fun(char *str,char ch,int

23、*bb)int i=0,n=0;while(*str)if( stri=ch )bb n+ =i;str+;i+;return n ;void main()char strN,ch;int bbN=0,i,n;printf("nInput the original string:");gets(str);printf("nInput character:");scanf("%c",&ch);n=fun(str,ch,bb);printf("nThe number of character is:%dn",n

24、);printf("nThe suffix of character:");for(i=0;i<n;i+)printf("%d",bbi);2. 已知head指向单链表的第一个结点,以下程序调用函数print输出这一单链表。请填空。#include "stdio.h"#include <malloc.h>#define Len sizeof(struct student)struct studentint data;struct student *next;struct student *creat().return

25、(head);print(struct student *head)struct student *p;printf("nThe linklist is:");p=head;if(head=!NULL)while(p->next !=NULL)printf("%d", p->data );p= p->next ;printf("%d",p->data);void main()struct student *head;head= creat() ;print(head);3.下列程序的功能是:假设a数组中的数,按由小到大的顺序存放。将数组a中相邻相同的数删得只剩一下,然后以每行5个数的形式输出a数组中的数。请填空。#include "stdio.h"#define MAX 20void main()int aMAX,i,j,n;for(i=0;i<MAX;i+)scanf("%d", a+i );n=i=MAX-1;while( i )if(ai=ai-1)for(j=i;j<=n;j+)aj-1=aj;n=n-1;i=i-1;for(i=0;i<=n;i+)if(i%5=0) printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论