四川省计算机等级考试二级C语言笔试题22.docx
- 文档编号:4678862
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:18
- 大小:22.24KB
四川省计算机等级考试二级C语言笔试题22.docx
《四川省计算机等级考试二级C语言笔试题22.docx》由会员分享,可在线阅读,更多相关《四川省计算机等级考试二级C语言笔试题22.docx(18页珍藏版)》请在冰豆网上搜索。
四川省计算机等级考试二级C语言笔试题22
四川省计算机等级考试二级C语言笔试题(第二十二次)一
2009-03-2915:
24:
34
四川省普通高等学校计算机应用知识和能力
第二十二次等级考试
二级(C与C++语言)笔试试卷
时间:
2005年4月16日
上午9:
00—11:
00
第一部分
软件技术基础
(共15分)
一、是非判断题(每小题1分,共10分)
(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )
1.C++语言中所定义的类实际上也是一种数据类型。
( 1 )
2.数据结构的表示包括数据逻辑结构和存储结构两方面的表示。
( 2 )
3.冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。
( 3 )
4.线性表采用链式存储时,结点的存储地址必须是连续的。
( 4 )
5.栈顶的位置是随着进栈和退栈操作而变化的。
( 5 )
6.在软件生存期内,软件必须进行维护,维护不会产生副作用。
( 6 )
7.采用动态重定位进行地址转换,允许程序在执行过程中在内在中移动。
而静态重定位则不可以。
( 7 )
8.在软件的需要分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。
( 8 )
9.需求分析阶段的主要任务应由系统分析员主持完成。
( 9 )
10.操作系统是最重要的系统软件。
( 10 )
二、选择题(每小题1分,共5分)
1.以下特征中哪个不是算法的特征 ( 11 )。
11 (A)可行性 (B)确定性 (C)有穷性 (D)唯一性
2.在多道程序设计系统中,处于后备状态的作业要经过( 12 )调度后才能真正执行。
12 (A)作业调度 (B)作业调度和进程调度
(C)进程调度 (D)作业调度和设备调度
3.为解决CPU和I/O设备之间速度匹配问题,常采用“缓冲区”方法。
“缓冲区”的结构多为( 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
voidswap(intx,inty)
{x^=y;y^=x;x^=y;}
main()
{
inta=010,b=1;
swap(a,b);
printf("%d,%d\n",a,b);
}
16 (A)10,1 (B)8,1 (C)1,8 (D)1,10
2.有以下程序
#include
#include
main()
{
char*p,*q;
p=(char*)malloc(sizeof(char)*20);
q=p;
scanf("%s%s",p,q);
printf("%s,%s",p,q);
}
若输入:
abcdef<回车>,则输出为( 17 )。
17 (A)def,def (B)abc,def (C)abc,d (D)d,d
3.下列程序的输出是( 18 )。
#include
voidmain()
{
inta=-1,b=4,k;
k=(a++<=0)&&(!
(b--<=0));
cout< } 18 (A)003 (B)103 (C)112 (D)012 4.关于类概念的描述中,( 19 )是错误的。 19 (A)类就是C语言中的结构体类型 (B)类是创建对象的样板 (C)类是具有共同行为的若干对象的统一描述体 (D)类是抽象数据类型的实现 5.下列程序的运行结果是( 20 )。 #include main() { voidfu(); fu(); fu(); } voidfu() { staticinta=0; printf("a=%d,",! a? 1: 8); } 20 (A)a=8,a=8, (B)a=1,a=8 (C)a=8,a=1, (D)a=1,a=1, 6.以下程序中,输出值是( 21 )。 #include #defineM3 #defineNM+1 #defineNNN*N/2 main() { printf("%d\n",NN); } 21 (A)3 (B)4 (C)6 (D)8 7.若有语句: chars1[]="string1",s2[8],*s3,*s4="string2";则( 22 )是对库函数strcpy的错误调用。 22 (A)strcpy(s1,"string2"); (B)strcpy(s4,"string1"); (C)strcpy(s3,"string1"); (D)strcpy("string2",s2); 8.以下( 23 )为不正确的if语句。 23 (A)if(x>y); (B)if(x==y)x+=y; (C)if(x! =y)x=x*x elsex+=1; (D)if(x 9.关于C++函数参数的描述中,错误的是( 24 )。 24 (A)实参个数与形参个数可以不同 (B)缺省参数必须放在形参表的最右端 (C)用引用变量作形参可以实现地址传递 (D)重载函数可以有缺省参数 10.若有如下定义: structnode { intdata; structnode*next; } 46 q 且已建立下面的链表结构,指针p,q分别指向图中所示结点,则不能将q所指结点插入链表末尾的一组语句是( 25 )。 p 44 5 NULL head…… 25(A)q->next=NULL;p=p->next;p->next=q; (B)p=p->next;q->next=p->next;p->next=q; (C)p=p->next;q->next=p;p->next=q; (D)p=(*p).next;(*q).next=(*p).next;(*p).next=q; 二、读程序回答问题(每个选择3分,共45分) 1.下列程序运行的结果为( 26 )。 #include #include voidfun(char*s,intm) { chart,*p1,*p2; p1=s; p2=s+m-1; while(p1 {t=*p1++;*p1=*p2--;*p2=t;} } main() { chara[]="ABCDEFG"; fun(a,strlen(a)); puts(a); } 26 (A)GFEDCBA (B)AGADAGA (C)GAGGAGA (D)AGAAGAG 2.读下列C程序,选择正确的输出结果。 #include #include voidfun(charstr[][10],intn) { chart[20]; inti,j; for(i=0;i for(j=i+1;j if(strlen(str[i]) { strcpy(t,str[i]); strcpy(str[i],str[j]); strcpy(str[j],t); } } main() { charstr[][10]={"abc","aabcd","abed","a","acdefg"}; inti; fun(str,5); for(i=0;i<5;i++) printf("%2d",strlen(str[i])); printf("\n"); for(i=0;i<5;i++) puts(str[i]); } (1) main函数中,第一个for循环的输出结果为: ( 27 )。 27 (A)65431 (B)13456 (C)76542 (D)24567 (2) main函数中,第二个for循环的输出结果为: ( 28 )。 28 (A)abc (B)a (C)acdefg (D)a aabcd abc aabcd abc abed abed abed aabcd a aabcd abc abed acdefg acdefg a aabcd 3.以下是一个C++程序,读程序并回答问题。 #include intfun(intu,intv) { inttemp; while(v! =0) { temp=u%v; u=v; v=temp; } returnu; } voidmain() { intu,v; intt; cout<<"Inputtwointegers: "; cin>>u>>v; t=fun(u,v); cout< cout< } 若从键盘中输入1015;回答下列两个问题: (1)第一条输出语句的输出结果为( 29 )。 29 (A)5 (B)10 (C)15 (D)30 (2)第二条输出语句的输出结果为( 30 )。 30 (A)5 (B)10 (C)15 (D)30 4.以下程序的运行结果是( 31 )。 #include chang(char*c,intfg) { if(*c=='') return1; elseif(fg&&*c<='z'&&*c>='a') *c+='A'-'a'; return0; } main() { intflag=1; charch; do { ch=getchar(); flag=chang(&ch,flag); putchar(ch); }while(ch! ='\n'); } 程序运行时,从第一列开始输入以下字符, Thisisabook! 31 (A)tHISISABOOK! (B)thisIsABook! (C)ThisIsABook! (D)ThisIsaBook! 5.以下程序的运行结果是( 32 ): #include main() { inta=1,b=2,c=3; a++; c+=b; { intb=4,c; c=2*b; a+=c; printf("%d,%d,%d,",a,b,c); } printf("%d,%d,%d\n",a,b,c); } 32 (A)10,4,8,10,2,5 (B)6,2,4,6,2,4 (C)10,4,8,10,2,8 (D)9,4,8,2,2,5 6.以下程序的输出是( 33 )。 #include main() { intx=1,y=0,a=0,b=0; switch(x) { case1: switch(y) { case0: a++;break; case1: b++;break; } case2: a++;b++;break; case3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 33 (A)a=1,b=0 (B)a=2,b=1 (C)a=1,b=1 (D)a=2,b=2 7.若有以下程序段: inta[]={4,0,2,3,1},k,j,t; for(j=1;j<5;j++) { t=a[j]; k=j-1; while(k>=0&&t>a[k]) { a[k+1]=a[k];k--;} a[k+1]=t; } 则该程序段的功能是( 34 )。 34 (A)对数组a进行插入排序(升序) (B)对数组a进行插入排序(降序) (C)对数组a进行选择排序(升序) (D)对数组a进行选择排序(降序) 8.选择下面程序运行的结果。 #include intm[3][3]={{1},{2},{3}}; intn[3][3]={1,2,3}; main() { printf("%d\n",m[1][0]+n[0][0]); printf("%d\n",m[0][1]+n[1][0]); } 第1条printf语句行输出的结果是( 35 )。 35 (A)0 (B)1 (C)2 (D)3 第2条printf语句行输出的结果是( 36 )。 36 (A)0 (B)1 (C)2 (D)3 9.选择下面程序运行的结果(设int占2个字节) #include main() { structdate { intyear,month,day; }today; union { longi; intk; charc; }mix; printf("date=%d\n",sizeof(structdate)); printf("mix=%d\n",sizeof(mix)); } 第1条printf语句行输出的结果为( 37 )。 37 (A)date=2 (B)date=4 (C)date=6 (D)前3个答案都是错误的 第2条printf语句行输出的结果为( 38 )。 38 (A)mix=2 (B)mix=4 (C)mix=6 (D)前3个答案都是错误的 10.读下面程序,程序的命名为MyCopy.c。 /*---------MyCopy.c---------*/ #include main(intargc,char*argv[]) { if(argc! =3) printf("\nFormat: MyCopy else { FILE*source,*desine; source=fopen(argv[1],"rb"); desine=fopen(argv[2],"wb"); if(source==NULL) printf("ERROR: Can'topensourcefile%s! \n",argv[1]); elseif(desine==NULL) printf("ERROR: Can'topensourcefile%s! \n",argv[2]); else { while(! feof(source)) fputc(fgetc(source),desine); } fclose(source); fclose(desine); } } (1)程序的功能是( 39 )。 40 (A)将磁盘文件的信息显示在屏幕上 (B)将一个磁盘文件复制到另一个磁盘文件中 (C)将两个磁盘文件合并 (D)以上答案都不对 (2)当编译、连接后,在命令行键入: MyCopyFILE1FILE2<回车>,则程序将实现( 40 )。 41 (A)将FILE1的信息显示在屏幕上 (B)将FILE1和FILE2合并 (C)将一个FILE2复制到FILE1中 (D)将一个FILE1复制到FILE2中 注意: ①请把下面“程序填空”中各小题答案写在主观题答题纸上 ②每一个空只填一个语句或一个语句所缺的部分内容 三、程序填空(每空2分,共30分) 1.以下程序的功能是将磁盘文件a.dat中的10个整数读入并进行升序排序。 #include voidsort(int*p,intn) { inti,j,t; for(i=0;i for(j=i+1;j if(①
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 四川省 计算机等级考试 二级 语言 笔试 22