考试大纲.docx

上传人:b****5 文档编号:12360788 上传时间:2023-04-18 格式:DOCX 页数:218 大小:108.39KB
下载 相关 举报
考试大纲.docx_第1页
第1页 / 共218页
考试大纲.docx_第2页
第2页 / 共218页
考试大纲.docx_第3页
第3页 / 共218页
考试大纲.docx_第4页
第4页 / 共218页
考试大纲.docx_第5页
第5页 / 共218页
点击查看更多>>
下载资源
资源描述

考试大纲.docx

《考试大纲.docx》由会员分享,可在线阅读,更多相关《考试大纲.docx(218页珍藏版)》请在冰豆网上搜索。

考试大纲.docx

考试大纲

四川省普通高等学校

计算机应用知识和能力等级考试

 

考试大纲

(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(qp*/

{*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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

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

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