ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:26.32KB ,
资源ID:7950023      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7950023.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言22次试题及答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言22次试题及答案.docx

1、C语言22次试题及答案四川省普通高等学校计算机应用知识和能力第二十二次等级考试二级(C与C+语言) 笔 试 试 卷时间: 2005年4月16日 上午 9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. C+语言中所定义的类实际上也是一种数据类型。 ( 1 )2. 数据结构的表示包括数据逻辑结构和存储结构两方面的表示。 ( 2 )3. 冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。 ( 3 )4. 线性表采用链式存储时,结点的存储地址必须是连续的。 ( 4 )5

2、. 栈顶的位置是随着进栈和退栈操作而变化的。 ( 5 )6. 在软件生存期内,软件必须进行维护,维护不会产生副作用。 ( 6 )7. 采用动态重定位进行地址转换,允许程序在执行过程中在内在中移动。而静态重定位则不可以。 ( 7 )8. 在软件的需要分析阶段,要直接面向用户,主要考虑用户的经济承受能力和费用的支付问题。 ( 8 )9. 需求分析阶段的主要任务应由系统分析员主持完成。 ( 9 )10.操作系统是最重要的系统软件。 ( 10 )二、选择题( 每小题1分,共5分 )1. 以下特征中哪个不是算法的特征 ( 11 )。 11 (A) 可行性 (B) 确定性 (C) 有穷性 (D) 唯一性2

3、. 在多道程序设计系统中,处于后备状态的作业要经过 ( 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) 程序的

4、效率 (C) 程序设计语言的先进性 (D) 程序的规模第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分) 1. 下列程序运行的结果是 ( 16 ) # include void swap(int x,int y) x=y;y=x;x=y; main() int a=010,b=1; swap(a,b); printf(%d,%dn,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

5、)*20); q=p; scanf(%s %s,p,q); printf(%s,%s,p,q);若输入:abc def ,则输出为 ( 17 ) 。 17 (A)def,def (B) abc,def (C) abc,d (D) d,d 3. 下列程序的输出是 ( 18 )。# include void main() int a=-1,b=4,k; k=(a+=0)&(!(b-=0); coutkabendl; 18 (A) 003 (B) 103 (C)112 (D) 012 4. 关于类概念的描述中,( 19 ) 是错误的。 19 (A) 类就是C语言中的结构体类型 (B) 类是创建对象的

6、样板(C) 类是具有共同行为的若干对象的统一描述体 (D) 类是抽象数据类型的实现 5.下列程序的运行结果是 ( 20 ) 。 # include main() void fu(); fu(); fu();void fu() static int a=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 # define M 3# define N M+1# define NN N*N/2main() printf(%d

7、n,NN); 21 (A) 3 (B) 4 (C) 6 (D) 8 7. 若有语句:char s1=string1,s28,*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 (xy); (B) if(x=y) x+=y; (C) if(x!=y) x=x*x else x+=1; (D) if

8、(xnext=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 void fun(char *s,int m) char t,*p1,*p2; p1=s; p2=s+m-1; while(p1p2) t=*p1+; *p1=*

9、p2-; *p2=t; main() char a=ABCDEFG; fun(a,strlen(a); puts(a); 26 (A) GFEDCBA (B) AGADAGA (C) GAGGAGA (D) AGAAGAG 2. 读下列C程序,选择正确的输出结果。# include # include void fun(char str10, int n) char t20; int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if( strlen(stri) strlen(strj) ) strcpy(t,stri); strcpy(stri,strj);

10、strcpy(strj,t); main() char str10=abc,aabcd,abed,a,acdefg; int i; fun(str,5); for(i=0;i5;i+) printf(%2d,strlen(stri); printf(n); for(i=0;i5;i+) puts(stri); (1) main函数中,第一个for循环的输出结果为: ( 27 )。27 (A) 6 5 4 3 1 (B) 1 3 4 5 6 (C) 7 6 5 4 2 (D) 2 4 5 6 7(2) main函数中,第二个for循环的输出结果为: ( 28 )。 28 (A) abc (B)a

11、 (C)acdefg (D)a aabcd abc aabcd abc abed abed abed aabcd a aabcd abc abed acdefg acdefg a aabcd 3. 以下是一个C+程序,读程序并回答问题。# include int fun(int u,int v) int temp; while(v!=0) temp=u%v; u=v; v=temp; return u;void main() int u,v; int t; coutuv; t=fun(u,v); couttendl; coutu*v/tendl; 若从键盘中输入10 15;回答下列两个问题:(

12、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,int fg) if(*c= ) return 1; else if( fg & *c=a ) *c+=A-a; return 0;main() int flag=1; char ch; do ch=getchar(); flag=chang(&ch,flag); putchar(ch); wh

13、ile(ch!=n); 程序运行时,从第一列开始输入以下字符,代表换行符。 This is a book! 31 (A) tHIS IS A BOOK! (B) this Is A Book! (C) This Is A Book! (D) This Is a Book! 5. 以下程序的运行结果是( 32 ):# include main() int a=1,b=2,c=3; a+; c+=b; int b=4,c; c=2*b; a+=c; printf(%d,%d,%d,a,b,c); printf(%d,%d,%dn,a,b,c); 32 (A) 10,4,8,10,2,5 (B) 6

14、,2,4,6,2,4 (C) 10,4,8,10,2,8 (D) 9,4,8,2,2,5 6. 以下程序的输出是( 33 )。# include 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; case 3: a+;b+; printf(a=%d,b=%dn,a,b); 33 (A) a=1,b=0 (B) a=2,b=1 (C) a=1,b=1 (D) a=2,b=2 7. 若有以下程序段:int a=4,0,2

15、,3,1,k,j,t;for(j=1;j=0 & tak ) ak+1=ak; k-; ak+1=t; 则该程序段的功能是( 34 )。 34 (A) 对数组a进行插入排序(升序) (B) 对数组a进行插入排序(降序)(C) 对数组a进行选择排序(升序) (D) 对数组a进行选择排序(降序) 8. 选择下面程序运行的结果。# include int m33=1,2,3;int n33=1,2,3;main() printf(%dn,m10+n00); printf(%dn,m01+n10); 第1条printf语句行输出的结果是( 35 )。 35 (A) 0 (B) 1 (C) 2 (D)

16、3 第2条printf语句行输出的结果是( 36 )。 36 (A) 0 (B) 1 (C) 2 (D) 3 9. 选择下面程序运行的结果(设int占2个字节)# include main() struct date int year,month,day; today; union long i; int k; char c; mix; printf(date=%dn,sizeof(struct date); printf(mix=%dn,sizeof(mix); 第1条printf语句行输出的结果为( 37 )。 37 (A) date=2 (B) date=4 (C) date=6 (D)

17、 前3个答案都是错误的 第2条printf语句行输出的结果为( 38 )。 38 (A) mix=2 (B) mix=4 (C) mix=6 (D) 前3个答案都是错误的 10. 读下面程序,程序的命名为MyCopy.c 。/*-MyCopy.c-*/# include main(int argc,char *argv) if(argc!=3) printf(nFormat:MyCopy n); else FILE *source,*desine; source=fopen(argv1,rb); desine=fopen(argv2,wb); if(source=NULL) printf(ER

18、ROR:Cant open source file %s!n,argv1); else if(desine=NULL) printf(ERROR:Cant open source file %s!n,argv2); else while(!feof(source) fputc(fgetc(source),desine); fclose(source); fclose(desine); (1)程序的功能是( 39 )。 40 (A) 将磁盘文件的信息显示在屏幕上 (B) 将一个磁盘文件复制到另一个磁盘文件中 (C) 将两个磁盘文件合并 (D) 以上答案都不对 (2)当编译、连接后,在命令行键入:

19、MyCopy FILE1 FILE2,则程序将实现( 40 )。 41 (A) 将FILE1的信息显示在屏幕上 (B) 将FILE1和FILE2合并 (C) 将一个FILE2复制到FILE1中 (D) 将一个FILE1复制到FILE2中注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空 ( 每空2分,共30分 ) 1. 以下程序的功能是将磁盘文件a.dat中的10个整数读入并进行升序排序。# include void sort(int *p,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1

20、;jn,j+) if( ) t=pi; pi=pj; pj=t; main() int a10,i; FILE *fp; fp=fopen(a.dat,r); for(i=0;i10;i+) ; fclose(fp); for(i=0;i10;i+) printf(%d ,ai); printf(n); ; for(i=0;i10;i+) printf(%d ,ai); printf(n); 2. 下列程序用递归算法实现,输入任意一个整数,在各数位之间插入空格后输出。# include main() long int n; void func(long); scanf(%ld,&n); ;vo

21、id func( ) if(m=0) ; printf( %d,m%10); 3. 程序功能:有10个数按升序放在一个数组中,输入一个数,要求用折半查找该数是数组中的第几个元素,如果该数不在数组中,打印出“NO”。折半查找法:设数组长度为n,则将输入的数m与an/2比较,若man/2,则将an/2到an的数继续折半进行查找。# include main() int a10=12,32,45,62,71,76,80,85,90,95; int num,bott,top,mid; printf(Input a number:n); scanf(%d,&num); bott=0; top=9; wh

22、ile(bott=top) mid= ; if(num=amid) printf(%d is the %d numbern,num,mid+1); break; else if(numamid) ; else bott=mid+1; if( ) printf(Non); 4. 有两个字符串str1和str2,将str1和str2对应字符中ASCII码值较大者存入字符数组str3的对应位置,若str1和str2长度不一致,则将较长字符串中剩余字符直接连接到str3的末尾。例如:str1存放字符串abaxef,str2存放字符串bac,则str3中的字符串为bbcxef。# include # i

23、nclude main() int i; char str80,str280,str380= ; char *p1,*p2; p1=str1; p2=str2; gets(str1); gets(str2); for(i=0; ;i+) if( *(p1+i) *(p2+i) ) str3i = *(p1+i); else str3i = *(p2+i); if( ) strcat(str3,p1+i); else ; printf(Result:%sn,str3); 5. 下面程序的功能是计算100至1000之间有多少个数其各位数字之和是5。# include void main() int i,s,k,count=0; for(i=100;ipj fscanf(fp,%d,&ai ) sort(a,10) 2、 func(n) long m func(m/10) 3、 (bott+top)/2 top=mid-1 botttop 4、 str1i!= 0&str2i!= 0 strlen(str1)strlen(str2) strcat(str3,p2+i ) 5、 k0 k/10 continue

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

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