考试大纲.docx
- 文档编号:12360788
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:218
- 大小:108.39KB
考试大纲.docx
《考试大纲.docx》由会员分享,可在线阅读,更多相关《考试大纲.docx(218页珍藏版)》请在冰豆网上搜索。
考试大纲
四川省普通高等学校
计算机应用知识和能力等级考试
考试大纲
(2008年修订)
四川省教育厅
计算机等级考试中心
2008年10月
二级
考试要求
二级考试包括笔试和上机考试,笔试包含软件技术基础和各语种的程序设计两部分,以程序设计为主。
考试时间
二级笔试考试时间:
120分钟
二级上机考试时间:
60分钟
考试内容
软件技术基础
一、掌握程序设计常用的数据结构与算法
1.数据结构与算法的基本概念
2.线性表的基本操作及存储结构
3.栈、队列、链表的定义、操作及存储结构
4.树、二叉树和图的概念
5.线性表的查找:
顺序查找、二分法查找、分块查找
6.内排序:
插入排序、选择排序、变换排序、归并排序
二、了解软件工程的基本思想及软件开发技术
1.程序、软件、软件工具、软件工程的概念
2.软件的生存期和开发模型
3.结构化分析方法(SA方法)、结构化设计方法(SD方法)、结构化程序设计(SP)的概念、任务和实现方法。
结构化程序设计的主要图示工具(程序流程图、方框图、问题分析图)及伪代码。
4.面向对象系统的基本概念:
类、对象、方法、消息、继承、多态性
5.面向对象程序设计与结构化程序设计的主要区别
6.基于构件的软件开发方法及软件复用的概念
7.软件测试的概念及基本方法
三、熟悉计算机软件开发的支撑环境——操作系统
1.操作系统的功能和类型
2.进程及处理机管理:
进程、进程的通讯、进程控制、进程调度及死锁等基本概念
3.存储管理、设备管理、文件管理的基本任务和方法
C语言程序设计
一、C程序的结构
1.C程序的构成,main()函数和其他函数。
2.头文件,数据说明,函数的开始和结束标志。
3.源程序的书写格式。
4.C语言的风格。
二、数据类型、运算符和表达式
1.C语言的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C语言的运算符的种类和功能,运算优先级和结合性。
3.不同类型数据间的转换(自动转换与强制转换)与运算。
4.C语言的表达式(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、程序设计初步
1.C语言的语句:
表达式语句,空语句,复合语句。
2.数据的输入/输出,输入/输出函数的使用。
3、选择结构程序设计
(1)用if语句实现选择结构。
(2)用switch语句实现多分支选择结构。
(3)选择结构的嵌套。
4.循环结构程序设计
(1)while和do-while循环结构。
(2)for循环结构。
(3)break语句和continue语句。
(4)循环嵌套。
5.编译预处理
(1)宏定义:
不带参数的宏定义;带参数的宏定义。
(2)文件包含命令。
四、数组
1.数组的含义和存储特点。
2.一维数组和二维数组的定义、初始化;数组元素的引用。
3.字符串与字符数组;常用的字符串处理函数。
五、函数
1.C语言库函数的调用。
2.函数的定义与声明。
4.函数的类型与返回值。
5.函数的形式参数与实在参数,参数值的传递。
6.函数的正确调用,嵌套调用与递归调用。
7.局部变量和全局变量。
8.变量的存储类型,变量的作用域和生存期。
六、指针
1.变量及数组元素的地址,指针与地址运算符,指针与指针变量。
2.指针变量的声明、赋值,通过指针变量来引用所指变量的值。
3.数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。
通过指针引用以上各类型数据。
4.用指针作函数的参数。
5.返回指针值的函数。
6.指针数组,指向指针的指针。
7.main函数的命令行参数;有参main函数的程序运行。
七、结构体与共用体
1.结构体和共用体类型数据的定义和引用:
结构体变量,结构体数组,结构体指针等。
2.用指针和结构体构成链表,单向链表的建立、输出、删除与插入。
3.结构体和共用体类型的存储特点。
八、文件
1.文件类型指针(FILE类型指针)的定义。
2.文件的打开与关闭(FOPEN,FCLOSE)。
3.正确使用文件读写函数(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF)进行文件的读写,文件定位函数(REWIND,FSEEK)的使用。
注:
只要求缓冲文件系统。
25次
(第一套)
(60分钟)
一、程序调试(文件名为test1-1.c40分)
下列程序其功能是:
计算并输出M以内最大的10个素数之和,M由主函数传给fun函数。
例如:
当M的值为100,则函数的值为732。
请修改程序中的错误,使之能输出正确的结果。
注意:
不得增加行或删行,不得更改原程序结构。
#include
intfun(intm)
{intsum=0,n=0,j,yes;
while((m>=2)||(n<10))
{yes=0;
for(j=2;j<=m/2;j++)
if(m%j==0)
{yes=0;
break;
}
if(yes)
{sum+=m;
n++;
}
m++;
}
return;
}
voidmain()
{intm;
printf("enterm:
\n");
scanf("%d",m);
printf("%d\n",fun(m));
}
二、编写程序(文件取名为test1-2.c60分)
磁盘上的test1-2.txt文件中以文本形式存放有10名学生的记录,每条记录由学号和一门课程成绩组成。
用函数调用方式编写程序,要求实现:
在main函数中读入10名学生记录,存入结构数组s,调用fun函数,把平均成绩和分数最低的学生记录输出到屏幕上。
被调函数fun求出10名学生的平均成绩并统计分数最低的学生记录(注意:
分数最低的学生可能不止一个),fun的参数是数组s的首地址和数组h的首地址(h中存放分数最低的学生记录),fun的返回值是分数最低的学生的人数。
一个学生记录放在如下结构中:
structstudent
{charnum[10];
ints;
};
(第二套)(60分钟)
一、程序调试(文件名为test2-1.c40分)
下列程序其功能是:
程序中fun函数的功能是在一个字符数组中查找一个指定的字符,若数组中含有该字符则返回该字符在数组中第一次出现的位置(下标值);否则返回-1,查询结果在main函数中输出。
请修改程序中的错误,使之能输出正确的结果。
注意:
不得增加行或删行,不得更改原程序结构。
#include
voidfun(char*a,charch)
{
inti,j;
for(i=0;;i++)
if(*(a+i)==ch)
{
j=i;
continue;
}
elsei=-1;
returnj;
}
voidmain()
{
charstr[100],ch;
intk;
printf("enterastring:
");
ges(str[100]);
printf("enteracharacter:
");
ch=getchar();
k=fun();
if(k==-1)printf("notfound!
\n");
elseprintf("found=%d\n",k);
}
二、编写程序(文件取名为test2-2.c60分)
已有一数据文件test2-2.dat,文件中的数据依次由:
准考证号、笔试成绩、上机成绩三项组成,中间由空格分开。
编程统计及格(笔试成绩和上机成绩均大于等于60分的为及格)的考生人数,以及及格率(即及格考生在总人数中占的百分比),并将获得及格的考生信息(准考证号、笔试成绩、上机成绩),考生总人数,获得及格的考生的考生人数和及格率输出到屏幕上同时写入到文件test2-2.out中。
(第三套)(60分钟)
一、程序调试(文件名为test3-1.c40分)
下列程序其功能是:
在程序中有一fun函数,其功能是:
在字符串s中的数字字符(不超过8个)取出,按原来顺序组成整数疳输出。
例如:
当s中的字符串为:
“A12C9D76EF”,由取出的正整数为12976。
请改正程序中的错误,使程序能得出正确的结果。
注意:
不得增加行或删行,不得更改原程序结构。
#include
#include
voidfun(char*s,char*t,intk)
{
inti;
k=0;
for(i=0;s[i];i++)
if(0<=s[i]&&s[i]<=9)
{t[*k]=s[i];
*k+=1;
}
}
voidmain()
{
chars[100],t[9];
longintn;
intI,k;
printf("\npleaseentetstrings:
");
scanf("%s",s);
fun(s,t,&k);
for(i=0,i n+=(t[k-1-i]-'0'*pow(10,i); printf("theresultis: %d": n); } 二、编写程序(文件取名为test3-2.c60分) 已有一数据文件test3-2.dat,内容是9位评委为位艺术考生的艺术表演按考生编号的评分结果(第一行的第一列为考生编号,后9列为9位评委的打分),编写程序实现: 结考生考试成绩进行统计,去掉一个最高分和一个最低分作为最后得分,将7位评委打分的平均值作为考生的最后成绩。 将结果按test3-2.dat文件的格式,在第一行的最后加上平均他输出到屏幕上。 要求数据文件中的考生信息输入到如下结构数组中: structdefen {charksbh[10]; intcj[9]; }ks[10]; (第四套)(60分钟) 一、程序调试(文件名为test4-1.c40分) 下列程序其功能是: 在字符串中找出ASII码值最大的字符,将其入在第一个位置上,并郊该字符前的字符向后顺序移动。 例如: 输入字符串ABCeDEFG,调用fun函数后输出的字符串为: eABCDFG.。 请改正程序中的错误,使程序能得出正确的结果。 注意: 不得增行或删行,不得更改原程序的结构。 #include voidfun(charp) { charmax,*q; inti=0; max=p[i]; while(p[i]! =0) {if(max {max=p[i]; p=q+i; } i++; } while(q { *q=*(q-1); q++; } p[0]=max; } voidmain() { charstr[80]; printf("enterastring: "); gets(str); printf("\ntheoriginalstring: '); puts(str); fun(str); printf("\nthestringaftermoving: "); puts(str); } 二、编写程序 编写程序求表达式的值: s=a+aa+aaa+…..+aa…a(此处aa…a表示n个a,a和n的值均在1至9之间)。 例如: a=3,n=4时,s=3+33+333+33333其值为3702。 要求用函数调用方式编写程序: main函数中输入a和n,调用函数fun完成表达式值的计算(a和n作为fun函数的参数,表达式的值作为fun函数的返回值),然后main函数将结果显示在屏幕上,同时存放在test4-2.txt文件中。 25-1套参考答案: 一、程序调试题(文件名为test1-1.c)(40分) #include intfun(intM) {intsum=0,n=0,j,yes; while((M>=2)||(n<10))/*改为&&*/ {yes=0;/*改为1*/ for(j=2;j<=M/2;j++) if(M%j==0) {yes=0; break; } if(yes) {sum+=M; n++; } M++;/*改为M--*/ } return;/*改为returnsum*/ } voidmain() {intM; printf("EnterM: \n"); scanf("%d",M);/*改为&M*/ printf("%d\n",fun(M)); } 评分标准: 每改对一处得8分 二、编程题(程序文件取名为test1-2.c)(60分) 评分标准: 1、结构数组或指针定义正确10分2、平均成绩计算正确10分 3、分数最低的学生记录和人数统计正确10分4、函数调用和参数传递正确10分 5、文件打开、记录读入和关闭正确10分6、输出结果正确10分 参考程序: #include #defineN10 structstudent {charnum[10]; ints; }; floataverage; intfun(structstudent*a,structstudent*b) {inti,n=0,min; floatsum=a[0].s; min=a[0].s; for(i=1;i {if(min>a[i].s) min=a[i].s; sum+=a[i].s; } average=sum/N; for(i=0;i if(min==a[i].s) {b[n]=a[i]; n++; } returnn; } main() {structstudents[N],h[N]; inti,n; FILE*fp; if((fp=fopen("test1-2.txt","r"))==NULL) {printf("Fileopenerrors! \n"); exit(0); } for(i=0;i fscanf(fp,"%s%d",s[i].num,&s[i].s); fclose(fp); n=fun(s,h); printf("Theaveragescoresis: %5.2f\n",average); printf("THe%dlowestscore: \n",n); for(i=0;i printf("%s%4d\n",h[i].num,h[i].s); } 25-2套参考答案: 一、程序调试题(文件名为test2-1.c)(40分) #include voidfun(char*a,charch)/*改为int*/ {inti,j; for(i=0;;i++)/*改为a[i]! =’\0’*/ if(*(a+i)==ch) {j=i; continue;/*改为break*/ } elsej=-1; returnj; } voidmain() {charstr[100],ch; intk; printf("Enterastring: "); ges(str[100]);/*改为gets(str)*/ printf("Enteracharacter: "); ch=getchar(); k=fun();/*改为fun(str,ch)*/ if(k==-1)printf("Notfound! \n"); elseprintf("found=%d\n",k); } 评分标准: 每改对一处得8分 二、编程题(程序文件取名为test2-2.c)(60分) 评分标准: 1、文件指针定义、打开文件、关闭文件正确(10分)2、读文件内容正确(10分) 3、统计考生总人数,获得及格的考生人数方法正确(10分) 4、及格率计算正确(10分)5、写入文件正确(10分) 6、屏幕输出正确(5分)7、结构合理(5分) 参考程序: #include main() {FILE*in,*out; charc1[20]; intcj1,cj2; intn=0,m=0; if((fp=fopen("test2-2.dat","r"))==NULL) {printf("Fileopenerror! \n"); exit(0); } out=fopen("test2-2.out","w"); while(! feof(in)) {fscanf(in,"%s",c1); fscanf(in,"%d%d",&cj1,&cj2); if(cj1>=60&&cj2>=60) {printf("%s",c1); printf("%d",cj1); printf("%d\n",cj2); fprintf(out,"%s",c1); fprintf(out,"%d",cj1); fprintf(out,"%d\n",cj2); n++; } m++; } fclose(in); printf("Thetotal: %d\n",m); printf("Thepassnumber: %d\n",n); printf("Thepassrate: %02f%\n",(float)n/m*100); fprintf(out,"Thetotal: %d\n",m); fprintf(out,"Thepassnumber: %d\n",n); fprintf(out,"Thepassrate: %02f%\n",(float)n/m*100); fclose(out); } 25-3套参考答案: 一、程序调试题(文件名为test3-1.c)(40分) #include #include voidfun(char*s,char*t,intk)/*改为*k*/ {inti; k=0;/*改为*k=0*/ for(i=0;s[i];i++) if(0<=s[i]&&s[i]<=9)/*改为'0'<=s[i]&&s[i]<='9'*/ {t[*k]=s[i]; *k+=1; } } voidmain() {chars[100],t[9]; longintn;/*改为n=0*/ inti,k; printf("Pleaseenterstrings: "); scanf("%s",s); fun(s,t,&k); for(i=0;i n+=(t[k-1-i]-'0')*pow(10,i); printf("Theresultis: %d",n);/*改为%ld*/ } 评分标准: 每改对一处得8分 二、编程题(程序文件取名为test3-2.c)(60分) 评分标准: 1、文件指针定义、打开文件、关闭文件正确10分2、读文件内容正确10分 3、最高、最低分的确定正确10分4、平均分计算正确15分 5、输出结果正确10分6、结构合理5分 参考程序: #include main() {FILE*in; structdefen {charksbh[10]; intcj[9]; }ks[10]; floataveg; intmax,min; inti,j,sum; if((im=fopen("test3-2.dat","r"))==NULL) {printf("Fileopenerror! \n"); exit(0); } for(i=0;i<10;i++) {sum=0;max=0;min=100; fscanf(in,"%s",ks[i].ksbh); for(j=0;j<9;j++) {fscanf(in,"%d",&ks[i].cj[j]); if(ks[i].cj[j]>max)max=ks[i].cj[j]; if(ks[i].cj[j] sum+=ks[i].cj[j]; } aveg=(sum-max-min)/7.0; printf("%s",ks[i].ksbh); for(j=0;j<9;j++) printf("%d",ks[i].cj[j]); printf("%8.1f\n",aveg); } fclose(in); } 第25-4套参考答案 一、程序调试题(文件名为test4-1.c)(40分) #include voidfun(charp)/*改为*p*/ {charmax,*q; inti=0; max=p[i]; while(p[i]! ='0')/*改为'\0'*/ {if(max {max=p[i]; p=q+i;/*改为q=p+i*/ } i++; } while(q p*/ {*q=*(q-1); q++;/*改为q--*/ } p[0]=max; } voidmain() {charstr[80]; printf("Enterastring: "); gets(str); printf("\nTheorginalstring: "); puts(str); fun(str); printf("\nThestringaftermoving: %s\n",str); } 评分标准: 每改对一处得8分 二、编程题(程序文件取名为test4-2.c)(60分) 评分标准: 1、fun函数算法正确(15分)2、文件指针定义、打开文件、关闭文件正确(10分) 3、函数调用、参数传递、返回值正确(15分)4、a和n输入正确(5分) 5、数据输出到文件正确(5分)6、屏幕显示正确(5分) 7、程序结构合理(5分) 参考程序: #include longintfun(in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考试 大纲