




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川省普通高等学校计算机应用知识和能力第二十三次等级考试二级(C与C+语言) 笔 试 试 卷时间: 2005年10月15日 上午 9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 数据在计算机内在中的表示是指数据的存储结构。( 1 )2. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 2 )3. 链表可以随机访问任意一个结点,而顺序表则不能。( 3 )4. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 4 )5. Windows、OS/2、Linux微机操作系统都是多用户多任务操作系统。( 5 )6. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。( 6 )7. 流式文件和记录式文件都以字符为基本单位进行存取。( 7 )8. 不定长文件是指字段的长度不固定。( 8 )9. 软件工程的三要素包括方法、工具和环境。 ( 9 )10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 )二、选择题(每小题1分,共5分)1. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是 ( 11 ) 11 (A) 1,4,3,2 (B) 2,3,4,1 (C) 3,1,4,2 (D) 3,4,2,12. 任何两个并发进程之间( 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)软件的测试第二部分C与C+语言程序设计(共85分)一、单项选择题(每小题1分,共10分) 1. 若变量已定义并赋值,下列符合C语法的表达式是 ( 16 ) 16 (A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b 2. 以下程序输出的结果是 ( 17 ) void main() char a=Hello China; s5=0; puts(s); 17 (A) Hello (B) China (C) Hello China (D) O 3. 有以下程序 #include void main() char *p,*q; p=(char *)malloc(sizeof(char)*20); q=p; scanf(%s %s,p,q); printf(%s,%sn,p,q); 若输入abc def,则输出为 ( 18 )。 18 (A) def,def (B) abc,def (C) abc,d (D) d,d 4.下列函数形式正确的是( 19 )。 19 (A) double fun(int x,int y) (B) fun(int x,y) z=x+y; int z; return z; return z; (C) fun(x,y) (D) double fun(int x,int y) int x,y; double z; double z=x+y; z=x+y; return z; return z; 5.下列有关类和对象的说法不正确的是( 20 ) 。 20 (A) 对象是类的一个实例 (B) 一个类只能有一个对象 (C) 任何一个对象只能属于一个具体的类 (D) 类与对象的关系和数据类型与变量的关系相似 6. 派生类的对象对它的基类成员中( 21 )是可以访问的。 21 (A) 公有继承的公有成员 (B) 公有继承的私有成员 (C) 保护继承的公有成员 (D) 私有继承的公有成员 7. 已知学生的结构体描述如下: struct students int no; char name10; char sex; struct int day; int month; int year; birth; int score; ; 用学生结构体定义了变量w : struct students w; 设变量w中的生日是1982年5月29日,下列对生日的正确赋值方法是( 22 )。 22 (A) day=29; (B) w.day=29 month=5; w.month=5; year=1982; w.year=1982; (C) w.birth.day=29; (D) birth.day=29; w.birth.month=5; birth.month=5; w.birth.year=1982; birth.year=1982; 8. 假定p1和p2是已赋值的int型指针,则下面有关运算中,( 23 )是非法的。 23 (A) (p1+=4)=p2 (B) p2=10-p1; (C) if(p1!=p2) printf(!=); (D) p1+=(p2-p1); 9. 关于C/C+语言,以下叙述正确的是( 24 )。 24 (A) C是面向过程的程序设计语言,C+不支持面向过程的程序设计 (B) C语言支持图形设计,C+不支持 (C) C程序由函数组成,而C+程序由类组成 (D) C是C+的子集 10. 设有以下语句: char x=3,y=6,z; z=xy2; 则z的值是( 25 )。 25 (A) 00010100 (B) 00011100 (C) 00011011 (D) 00011000二、读程序回答问题(每个选择3分,共45分) 1. 下列程序运行的结果为 ( 26 )。 # include void main() int a=2,b=-1,c=2; if(ab) if(bc) c=0; else c+=1; printf(%d,c); 26 (A) 3 (B) 2 (C) 1 (D) 0 2. 下列程序运行的结果为 ( 27 )。 # include void main() int a=15,b=21,m=0; switch(a%3) case 0 : m+; break; case 1 : m+; switch(b%2) default : m+; case 0 : m+; break; printf(%d, m ); 27 (A) 1 (B) 2 (C) 3 (D) 4 3. 以下程序运行后,文件test 中的内容为 ( 28 )。 # include # include void fun(char *fname, char *st) FILE *fp; int i; fp=fopen(fname,w); for(i=0; istrlen(st); i+ ) fputc(sti , fp ); fclose(fp); void main() fun(test,world); fun(test,hello); 28 (A) world (B) worldhello (C) helloworld (D) hello 4. 读下列程序: # include void main() union value char ch; int n; double f; Data; coutsizeof(Data)=sizeof(Data)endl; Data.ch=a; coutData.chendl; Data.n=100; coutData.hendl; Data.f=78.168; coutData.fendl; value 是 ( 29 )。 29 (A) 共用体变量名 (B) 共用体名 (C) 结构体变量名 (D) 结构体名 程序的运行结果是 ( 30 )。 30 (A) sizeof(Data)=13 (B) sizeof(Data)=8 a a 100 100 78.168 78.168 (C) 13 (D) 8 a a 100 100 78.168 78.168 5. 读下列程序: # include void main() static char str50=485057ehk105101,*p=str; int sum1=0,sum2=0; while(*p!=0) if(*p=48 & *p=101 & *p=107) sum2+; else; p+; coutsum1,sum2endl; 程序的运行结果是 ( 31 )。 31 (A) 3,2 (B) 2,3 (C) 3,12 (D) 12,3 while(*p!=0) 与 ( 32 ) 功能相同。 32 (A) while(*p!=0) (B) while(*p=0) (C) while(*p0) (D) while(*p!0) 6. 读下列程序: # include # include void fun(char *w, int n) char t,*s1,*s2; s1=w; s2=w+n-1; while(s1s2) t=*s1+; *s1=*s2-; *s2=t; void main() char *p; p=1234567; fun(p,strlen(p); puts(p); 输出结果是 ( 33 )。 33 (A) 7654321 (B) 1711717 (C) 1714171 (D) 1234567 若把程序中的语句:while(s1s2) t=*s1+; *s1=*s2-; *s2=t; 改写成: while (s1s2) t=*s1; *s1=*s2; *s2=t; s1+; s2+; ,则输出结果是( 34 )。 34 (A) 7654321 (B) 1711717 (C) 1714171 (D) 1234567 7. 下列程序运行结果是 ( 35 )。 # define X 5 # define Y X+1 # define Z Y*X/2 void main() int a; a=Y; printf(%d , Z); printf(%dn,-a); 35 (A) 7 6 (B) 12 6 (C) 12 5 (D) 7 5 8. 读下列程序: # include int x; void sub(int *s , int x ) static int t=0; x+=st; t+; void main() int a=3,8,4,2,i; int x=0; for(i=0; i4; i+) sub(a,x); printf(%3d,x); 程序的执行结果是 ( 36 )。 36 (A) 3 8 4 2 (B) 3 11 15 17 (C) 0 0 0 0 (C) 2 4 8 3 若把程序第二行的语句 int x; 删除,运行结果是 ( 37 )。 37 (A) 3 8 4 2 (B) 3 11 15 17 (C) 0 0 0 0 (C) 2 4 8 3 9. 读下列程序分析运行结果 # include char *cat( char *str1 , char *str2 ) char *pt; for(pt=str1; *pt!=0; pt+); while(*str2!=0) *pt+=*str2+; return(pt); void main() char *p,s130=210,s230=45; p=cat(s1,s2); printf(%dn,p-s1); p=cat(s1,s2); printf(%dn,p-s1); 主函数中,执行第一个输出函数后的结果为 ( 38 )。 38 (A) 5 (B) 6 (C) 7 (D) 8 主函数中,执行第二个输出函数后的结果为 ( 39 )。 39 (A) 5 (B) 6 (C) 7 (D) 8 10. 下列程序的运行结果是 ( 40 )。 # include void main() char *str=One,Two,Three,Four; char *ptr=str; int i; for(i=0;i3;i+) printf(%s, (ptr+1)i ); 40 (A) newohree (B) Two (C) TwoThreeFour (D) 指针运算非法,无输出注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空 ( 每空2分,共30分 ) 1. 以下程序可把输入的十进制数以十六进制的形式输出。 # include void main() char b17=0123456789ABCDEF; int c64,d,i=0,base=16; long n; scanf(%ld,&n); do ci= ; i+; n=n/base; while(n!=0); for(i-; i=0; -i) d= ; printf(%c, ); printf(n); 2. 有一个数是43634,其左右对称,求比它大的对称数中最小的那个。 # include void main() long int i=43634,j; int count,ch10; do i+; j=i; count=0; while(j) chcount=j%10; j= ; count+; if( ) break; while(1); printf(%ldn, ); 3. 以下程序能统计并输出1至100之间所有能被3整除但不能被7整除的所有正整数。 # include # define M 100 void fun( int m, int *p, int *t) int i,num=0; for(i=1;i=m;i+) if( ) ; *t=num; void main() int aM,n,k; ; for(k=0;kn;k+) if( (k+1) % 5 = 0 ) printf(n); else printf(%3d,ak); printf(n); 4. 下面程序功能是从字符串s中删除任何在第二个字符串t中出现的字符,然后输出。 # include void main() char s81,t20,*p1,*p2; int i; scanf(%s%s, ); printf(n); p1=s; for(i=0;*(p+i);i+) for(p2=t;*p2;p2+) while( ) strcpy( ); printf(%s,s); 5. 文件stu.txt中存放了一个学生各门课程的考试分数,数据之间以逗号分割。下面程序将文件中的所有分数取出,计算出平均分,显示在屏幕上,还要把这个平均分数按原文件的数据格式记录在原文件中。例如文件stu.txt中存放的为“60.5,81.1,93.5,90.5”,则程序运行后文件stu.txt中为“60.5,81.1,93.5,90.5,78.366669”。 # include void main() int n=0; float x=0.0,y; FILE *fp; fp= ; do fscanf( ); if(feof(fp) break; x+=y; n+; while(1); x=x/n; printf(average=%f,x); ; fclose(fp); 四川省普通高等学校计算机应用知识和能力第二十三次等级考试二级 (C与 C+语言 )上机考试试卷 (第一套) 参考答案一、 程序调试题(文件名为test1-1.c)(40分) 磁盘上有一个名为test1-1.c的C程序文件,其功能是:输入一个字符串,将其中的每一个连续的数字序列看作一个整数,将这些整数检索出来后依次放入一个long int型数组中,请改正程序中的错误,使程序能得出正确的结果. 注意:不要增加或删除行,不要合适改程序结构.#include #include /* 改为: math.h */main() char str100, *p=str, help15; static long int num50; int i=0, k=0, m, sign=0; printf(ninput the string:); scanf(%s, p); do if(*p=0 & *p=0 & *p=48 & *p=0) numi+=(helpk-48)*(long int)pow(n+,10); /* 改为:pow(10,n+) */ i+; k=0; sign=0; else /* 改为:else; */ p+; while(*(p-1)!=0); for(m=0; mi; m+) printf(%d, numm); /* 改为:%ld (即长整型格式输出)*/评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test1-2.c)(60分) 请用函数调用方式编写程序,要求能实现: (1)在被调函数中求出1到1000之内能被7或11整除,但不能被7和11同时整除的所有整数,并把它们放到数组a中. (2)在主函数中将符合上述条件的整数个数和所有整数输出到屏幕以级文件test1-2.dat中评分标准:1被调函数fun编写正确 20分2文件打开和关闭正确 10分3函数调用正确5分4屏幕输出和文件输出正确15分5输出格式正确5分6程序结构合理5分参考程序:# include # define M 1000int fun(int *a) int m,k=0; for(m=1;m=M;m+) if( (m%7=0 & m%11!=0) | (m%7!=0 & m%11=0) ) ak+=m; return k;main() int aM,n,k; FILE *fp; clrscr(); /*清屏函数*/ fp=fopen(test1-2.dat,w); n=fun(a); printf(%dn,n); fprintf(fp,%dn,n); for(k=0;kn;k+) printf(%5d,ak); fprintf(fp,%5d,ak); if( (k+1)%10 = 0 ) printf(n); fprintf(fp,n); fclose(fp);四川省普通高等学校计算机应用知识和能力第二十三次等级考试二级 (C与 C+语言 )上机考试试卷 (第二套) 参考答案一、 程序调试题(文件名为 test2-1.c)( 40 分 ) 磁盘上有一个名为test2-1.c的C程序文件,其功能是:求出数组中值最大的元素在数组中的下标,并将最大值增添在数组的最后,如:876 675 896 101 401 980 431 451 777(原数组)876 675 896 101 401 980 431 451 777 980(增添后的数组)请改正程序中的错误,合程序能得出正确的结果. 注意:不要增加或删除行,不要合适改程序结构.#include #define N 80void fun(int *s, int *t, int k) /* 改为 *k */ int i,m; *k=0; m=*s; for(i=1;i(*t-1);i+) if(ms+i) /* 改为 *(s+i) */ m=*(s+i); k=i; /* 改为 *k */ si+1=m; *t+ ; /* 改为 (*t)+ */main() int aN=876,675,896,101,301,401,980,431,451,777; int i, n=10, mi; fun(aN, &n, &mi); /* 改为 a */ printf(nThe index of max is:%dn,mi); printf(The result:n); for(i=0;in;i+) printf(%4d, &ai ); /* 改为 ai */评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test2-2.c)(60分) 在三位整数(100至999)中寻长其中有两位数字相同的完全平方数,例子如144,676等,它们是完全平方数,双有两位数字相同,将符合条件的整数依次从小到大存入数组aa中, 要求: (1)编制函数fine()实现对找满足条件的完全平方数,并将满足条件的完全平方数的个数通过函数fine()返回. (2)在main()函数中把符合要求的完全平方数及个数输出到屏幕上和文件test22.dat中.四川省普通高等学校计算机应用知识和能力第二十三次等级考试二级 (C与 C+语言 )上机考试试卷 (第三套) 参考答案一、 程序调试题(文件名为 test3-1.c)( 40 分 ) 磁盘上有一个名为test3-1,c的C程序文件,其功能是:实现将字符串中字母以外的其他字符无能为力去掉组成新的字符串输出,运行结果为:abcdEEEa 请改正程序中的错误,使程序能得出正确的结果.注意:不要增加或删除行,不要合适改程序结构.文件test22.dat中.#include #include /* 改为 ctype.h */void fun(char s) /* 改为 *s */ int i,j; for(i=j=0;si;i+); /* 改为 去掉分号 ;*/ if(isalpha(si) sj =si; /* 改为 sj+ */ si =0; /* 改为 sj */void main() char str80=a*b$c(d!EEE !a.; fun(str80); /* 改为 str */ printf(n); puts(str);评分标准:每改对一处得6分,结果正确得4分二、编程题(程序文件取名为 test3-2.c)(60分) 编写main函数,从键盘输入任意5个4位正整数存入数组aa中,调用函数sort(),函数sort()的功能是: 按每个数后三位的大小进行升序排列,并将结果依次存入数组bb中,如果后三位的数值相等,则按4位正整数的大小进行降序排列. 例如:输入:6012 5099 9012 7025 8088 则输出的结果为:9012 6012 7025 8088 5099最后,在main()函数中把排序后的结果输出到文件test3-2.dat中 注意:程序中不得合用全局变量.评分标准:1文件定义、打开、关闭正确 10分2数据讲稿和文件写入正确 10分3函数调用正确5分4函数定义和参数使用正确20分5结果正确10分6程序结构合理5分参考程序:#include void sort(int aa,int bb) int i,j,data; for(i=0;i5;i+) for(j=i+1;jaaj%1000) data=aai; aai=aaj; aaj=data; else if(aai%1000=aaj%1000) if(aaiaaj) data=aai; aai=aaj; aaj=data; for(i=0;i5;i+) bbi=aai;void main() int aa5,bb5; FILE *out; int i; printf(nplease input 5 numbers:); for(i=0;i5;i+) scanf(%d,&aai); sort(aa,bb); out=fopen(test3-2.dat,w); printf(n); for(i=0;i5;i+) printf(%5d,bbi); fprintf(out,%5d,bbi); fclose(out);四川省普通高等学校计算机应用知识和能力第二十三次等级考试二级 (C与 C+语言 )上机考试试卷 (第四套) 参考答案一、程序调试题(文件名为 test4-1.c)( 40 分 )#include #include int fun(char s, char t) /* 改为 char *s, char *t */ int n=0 ; char *p , *r ; while(*s) p=s; r=t ; while(*r) if(*r=*p) /* 改为 = */ r+; p+; else continue; /* 改为 break */ if(r=0) /* 改为 *r */ n+; r+; /* 改为 s+ */ return *s; /* 改为 n */main() int m ; char s100, t100; printf(nPlease enter string s:); gets(s); printf(nPlease enter string t: ); gets(t); m=fun(s,t); printf(nThe result is: m= %dn,m);评分标准:每改对一处得6分,结果正确得4分二
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饭堂的合同(标准版)
- 浙江中烟工业有限责任公司笔试试题2025
- 2025年高考新课标一卷英语试卷附答案(新课标卷)
- 2025年延边注册环保工程师考试(大气污染防治专业案例)全真模拟题库及答案
- 考点攻克人教版八年级物理上册第5章透镜及其应用章节训练试卷(含答案详解版)
- 2025年金属冶炼单位安全生产管理人员考试(金属冶炼铜冶炼)仿真试题及答案四
- 2025年江苏省建筑施工企业安管人员考试(专职安全生产管理人员C2类)仿真试题及答案
- 综合解析苏科版八年级物理下册《从粒子到宇宙》重点解析试卷(附答案详解)
- 2025年煤矿企业主要负责人安全生产知识和管理能力考试全真模拟试题及答案
- 考点解析-人教版八年级上册物理光现象《光的直线传播》必考点解析试题(含答案解析)
- 铝合金熔铸安全培训课件
- 家具制造业2025年原材料价格波动对行业市场发展趋势影响报告
- 食品安全风险监测试题案例分析及参考答案
- 2024-2025学年广东省深圳市南山区五年级(下)期末数学试卷
- 布达拉宫课件
- 人教版高中生物必修2《遗传与进化》必背知识考点提纲
- 资产抵押项目资产评估操作流程详解
- 2025-2026学年冀教版(2024)小学数学一年级上册(全册)教学设计(附目录P339)
- 2024译林版八年级英语上册期末复习:Unit1~Unit8全册各单元语法知识点 讲义(含练习题及答案)
- 房屋安全性鉴定方案
- 工作责任感的衡量与评价标准
评论
0/150
提交评论