C语言(30次)答案及分析

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

C语言(30次)答案及分析

四川省普通高等学校计算机应用知识和能力第三十次等级考试二级(C与C++语言)笔试试卷时间:2009年4月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)参考答案:ABABAABABA二、选择题(每小题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)抽象参考答案:BDDCC四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页n第二部分C与C++语言程序设计(共85分)一、单项选择题(每小题1分,共10分)1.C语言中,若有说明:(考点:指针)floatn=2.0,*p=&n,*q=p;则以下非法的赋值语句是(16)。16(A)p=q;(B)*p=*q;(C)n=*q;(D)p=n;2.C++中,已知inta=6,b=3;将a+b的值输出到屏幕上,下列正确的输出是(17)。(*考点:C++)17(A)cout<10)与!(a<10&&a>10)(B)!(a==b)与a>b&&ab)与a=10||a<=10)与!(a<=10)&&!(a>=10)8.设有说明:int(*a)[M];其中的标识符a是(23)。(考点:行指针)23(A)一个指向具有M个整型元素的一维数组的指针(a是一个行指针变量)(B)指向M个整型变量的函数指针(C)M个指向整型变量的指针(D)具有M个指针元素的一维数组指针,每个元素都只能指向整型量(int*a[M];)9.若有以下说明和语句:(考点:结构体指针)structstudent{intage;intnum;}std,*p;//std是结构体类型变量,p是指向结构类型数据的指针变量四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页np=&std;//p指向std变量则以下对结构体变量std中成员age的引用方式不正确的是(24)。24(A)std.age(B)p->age(C)(*p).age(D)*p.ageó*(p.age)10.若有定义:chars[100]="string";则执行语句puts(strcat(s,strcpy(s,"s")));后,屏幕上输出的结果是(25)。(考点:字符串处理库函数)25(A)s(B)strings(C)ss(D)sstring二、读程序回答问题(每个选择3分,共45分)1.读程序并回答问题(考点:数组、函数(地址参数)、逆置算法)#includevoidfun(int*a,intbott,inttop){inti,j,t;i=bott;j=top;while(ilongfun(intn){longz;if(n==0||n==1)z=1;elsez=n*fun(n-2);returnz;}voidmain(){longz;intn;scanf("%d",&n);z=fun(n);printf("%ldn",z);四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页n}若输入n的值为6,则程序的输出结果为(28)。28(A)21(B)15(C)48(D)720以下哪个非递归程序与函数fun的功能相同(29)。(B)longfun(intn){inti;longz;for(i=n,z=0;i>0;i-=2)z=z+i;returnz;}29(A)longfun(intn){inti;longz;for(i=n,z=1;i>0;i-=2)z=z*i;retrunz;(D)longfun(intn){inti;longz;for(i=n,z=0;i>0;i--)z=z+i;returnz;}}(C)longfun(intn){inti;longz;for(i=n,z=1;i>0;i--)z=z*i;retrunz;}3.读程序并回答问题(考点:文件、函数(地址参数)、排序算法)#includevoidfun(int*a,intn)//用冒泡排序法对a数组中的n个数进行升序排序{inti,j,t;for(i=0;ia[j+1])//相邻元素比较,逆序交换,这是冒泡排序法{t=a[j];a[j]=a[j+1];a[j+1]=t;}}voidmain(){FILE*fp;inta[5],i;if((fp=fopen("data.txt","r+"))==NULL)//可读可写方式打开文件{printf("Cannotopenthefile.n");exit(0);}for(i=0;i<5;i++)//结束循环后文件位置指针指向文件的末尾fscanf(fp,"%d",a+i);//从文件读出5个整数fun(a,5);rewind(fp);//重置文件的位置指针到文件的开头for(i=0;i<5;i++){printf("%d",a[i]);fprintf(fp,"%d",a[i]);//向文件写5个整数,将文件中原有内容覆盖掉}fclose(fp);}若文件data.txt中的内容为13254,读程序回答下面两个问题四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页n程序运行后,屏幕上的输出结果为(30)。30(A)54321(B)12345(C)1325412345(D)1325454321程序运行后,文件data.txt中的内容为(31)。31(A)54321(B)12345(C)1325412345(D)13254543214.有下列程序(考点:循环(continue))#includevoidmain(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;//结束本层本次循环x++;}printf("%d",x);x++;}printf("n%d",x);}(1)程序吉第一条printf语句输出的结果是(32)32(A)45(B)56(C)58(D)37(2)程序吉第二条printf语句输出的结果是(33)33(A)4(B)8(C)6(D)125.有下列程序:(考点:if~else嵌套)#includevoidmain(){intx=100,a=10,b=20;intv1=5,v2=0;if(a四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页nvoidmain(){intx=10,y=5;switch(x){case1:x++;default:x+=y;//x=15case2:y--;//y=4case3:x--;//x=14}printf("x=%d,y=%d",x,y);}执行下列程序后,输出结果为(36)。36(A)x=15,y=4(B)x=14,y=4(C)x=10,y=5(D)x=15,y=57.有以下程序:(考点:二维数组、循环(continue、嵌套)、自增运算)#includevoidmain(){intarray[4][4]={{9,8,7,6},{5,4,3,2},{1,2,3,4},{5,6,7,8}};inti=0,j=0,m=0,n=0;while(i++<3){if(i==3||i==1)continue;j=0;do{n=array[i][j];m+=n;j++;}while(j<4);}printf("%dn",m);}(1)程序运行的结果是(37)37(A)10(B)9(C)8(D)不能运行(2)对于本程序来说,不影响运行结果的是(38)38(A)将i++改为++i(B)将i++<3改为i++<=3(C)去掉continue(D)将continue改为break8.有以下程序:(考点:函数、全局变量、复合赋值运算、自增运算)#includeintd=1;fun(intp){intd=5;d+=p++;//d=d+(p++)èd=5+3=8,p=4printf("%d",d);//输出局部变量d的值}voidmain(){inta=3;fun(a);d+=a++;//d=d+(a++)èd=1+3=4,a=4printf("%dn",d);//输出全局变量d的值四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页n}(1)fun函数中的输出结果为(39)。39(A)6(B)7(C)8(D)9(2)main函数中的输出结果为(40)。40(A)12(B)13(C)4(D)5注意:①请把下面“程序填空”中各小题答案写在主观题答题纸上②每一个空只填一个语句或一个语句所缺的部分内容三、程序填空(每空2分,共30分)1.以下程序可以把从键盘上输入的十进制数以二或十六进制形式输出,变量n为待转换的十制制整数。变量base确定转换后的类型,若转换成二进制,则输入base的值为2;若转换成十六进制,则base的值为16。请填空。(考点:进位计数制转换算法)#includevoidmain(){chara[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};intc[64],d,i=0,base;longn;printf("enteranumber:n");scanf("%ld",&n);printf("enternewbase:n");scanf("%d",&base);do{c[i]=①n%base;//保留余数i++;n=n/base;//保留商}while(n!=0);printf("Transmitenewbase:n");for(--i;②i>=0;--i){d=c[i];printf("%c",③a[d]);}printf("n");}2.下列程序能从一个词典dict中查找某个单词。如果查到时报告成功并输出该单词,否则报告失败。(考点:指针数组、二级指针、返回指针的函数、查找字符串算法)#include#includechar*dict[]={"a","ab","abc","abcd","abcdef"};char*check(char*word)//返回指针值的函数{char**d;//d为二级指针变量intflag;for(d=dict;dvoidmain(intargc,char*argv[]){FILE*fp1,*fp2;if(argc<①3){printf("命令行参数错!n");exit(0);}fp1=fopen(argv[1],②“r”);fp2=fopen(argv[2],"w");while(!feof(fp1))//检测fp1是否指向文件的末尾fputc(③fgetc(fp1),fp2);fclose(fp1);fclose(fp2);}4.下列程序实现输入输出100人的电话号码簿。(考点:结构体数组)#include#defineN100structp{intcode;charname[20];chartel[15];};//定义结构体类型①structpt[N];voidmain(){inti;for(i=0;iintfun(intn){inti;if(n<=1)return0;else{for(i=2;i<=n/2;i++)if(①n%i==0)return0;②return1;}}voidmain(){inti,a[10],sum=0;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(③fun(a[i])==1)sum=sum+a[i];printf("sum=%dn",sum);}四川省计算机二级考试第三十次C与C++语言笔试试卷第9页共9页
查看更多

相关文章

您可能关注的文档