四川省计算机等级考试二级C语言考试分析_第1页
四川省计算机等级考试二级C语言考试分析_第2页
四川省计算机等级考试二级C语言考试分析_第3页
四川省计算机等级考试二级C语言考试分析_第4页
四川省计算机等级考试二级C语言考试分析_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川省计算机等级考试

二级C语言考试分析主要内容一、主要考点分析1、考试题型分析2、理论考试题型与主要考点3、上机考试题型与解题方法二、常考算法三、应试方法与技巧四、重要章节复习(指针)考试题型分析一、理论考试(考试时间:120分钟)软件技术基础(15分)C程序设计基础(10分)读程序回答问题(45分)程序填空(30分)二、上机考试(考试时间:60分钟)程序调试题(40分)编写程序(60分)主要考点分析理论考试的题型与主要考点一、软件技术基础(10分判断题,5分选择题)1、主要考点:《数据结构》:数据结构与算法的基本概念;线性表的基本操作及存储结构;栈、队列、链表的定义、操作及存储结构;树、二叉树和图的概念;线性表的查找:顺序查找、二分法查找、分块查找;内排序:插入排序、选择排序、归并排序《操作系统》:功能、分类、进程及处理机管理:进程、进程的通讯、进程控制、进程调度及死锁等基本概念;存储管理、设备管理、文件管理的基本任务和方法《软件工程》:软件生存周期、软件测试(黑盒、白盒)主要考点分析2软件技术部分复习方法先把软件技术基础知识认真地看一遍,把知识点串成一个整体,让自己的大脑中有一个整体框架;用较集中的时间把软件技术基础知识题目做完,因为这样能更好的感受到常考内容和考点;把所做题目中的错题找到改正的依据;考试前再把所有试题看一遍。等着拿软件技术基础知识的高分!二、单项选择题(每题1分,共10分)主要考点:(对C基本知识的理解和掌握)运算符和表达式:算术(*、/、%、++、--、(类型))运算、关系运算、逻辑运算、条件运算、位运算、指针运算程序设计的基本结构:选择(if、if~else、switch)、循环(while)数组:定义、赋初值、输入、输出函数:定义、调用宏:带参数的宏、嵌套宏结构体、共用体主要考点分析switch(表达式){caseE1:语句组

1;break;caseE2:语句组

2;break;…….caseEn:语句组

n;break;[default:语句组;break;]}例#defineWIDTH80#defineLENGTH

WIDTH+40

var=LENGTH*2;宏展开:var=80+40*2;例#defineS(a,b)a*b………..area=S(3,2);宏展开:area=3*2;例structstudent{intnum;charname[20];charsex;

intage;floatscore;charaddr[30];}stu[10],*p;p=stu;p++;stu[1].age====(*p).age====p->age

例uniondata{inti;charch;floatf;};例声明结构类型typedef

struct

aa{

intmonth;

intday;

intyear;}DATE;DATE

a;struct

aaa;三、读程序回答问题(每问3分,共45分)主要考点:(注意知识的综合运用)程序设计基本结构:复杂分支、循环及混合处理数组:一维数组、二维数组、字符数组(重点)指针:变量的指针、数组的指针(重点)函数(重点)参数传递方式(普通值、地址值)函数的递归调用,注意每次递归的参数值以及递归返回的位置函数和循环、指针、数组的综合应用变量的存储属性和循环、函数的综合应用结构体、共用体(0~1题)宏定义(0~1题)文件和循环、函数的综合应用(0~1题)主要考点分析4、程序填空(每空2分,30分)(多练习往届考题)常见填空位置:函数的实参函数调用语句循环或分支语句的条件变量定义或赋初值数据的输入、输出文件的打开、读写其他操作语句主要考点分析主要考点分析常用的库函数math.h包含:abs(x):函数返回x的绝对值(整型)fabs(x):返回是x的绝对值(双精度型)pow(x,y):返回是x的y次方(双精度型)rand()产生随机数sqrt(x):开平方ctype.h包含:字符测试头文件isalpha(ch):测试ch是否为字母isdigit(x):测试x是否为数字islower():测试字母是否为小写字母,小写字母,返回非零值,否则返回0主要考点分析常用的库函数stdio.h包含:文件操作类、getchar()、putchar()、gets()、puts()string.h包含:

strcat()、strcpy()、strcmp()、strlen()isupper():测试字母是否为大写字母,如果是大写字母,返回非零值,否则返回0

stdio.h包含文件操作函数文件的读写函数。

fputc(c,fp);c=fgetc(fp);

fread(buffer,size,n,fp);fwrite(buffer,size,n,fp);

fprintf(fp,”%d,%f”,i,f);fscanf(fp,”%d,%f”,&i,&f);

fputs(str,fp);fgets(str,n,fp);关闭文件:fclose(fp);文件测试函数

While(!feof(fp)){}

文件指针定位函数

rewind(fp);

fseek(fp,-100,2);n=ftell(fp);上机考试的题型与解题方法一、程序调试题(40分)1、解题步骤

(1)调出源程序F3(注意文件名)(2)通读一遍程序,将直接看得出的错误改正

(3)编译查找语法错误

(4)运行,结果不对在进行查看逻辑错误

(5)保存2、注意

(1)保存改错题无需设置路径和文件名,直接以原名保存原位置(按F2即可)

(2)程序一般为5~6处错误,改对一处即得相应分值

(3)时间一般控制在20分钟以内完成主要考点分析上机考试的题型与解题方法一、程序调试题(40分)3、程序调试题常见错误设置(1)打开及关闭文件(2)输入语句(3)函数调用时

(4)实现程序功能的核心代码处(5)输出语句部分(6)其它地方主要考点分析二、编写程序(60分)1、题型:函数调用处理字符串、一维数组或二维数组2、注意:

(1)设置正确的文件名,看清题单上的要求

(2)程序的结构:主函数调用子函数,最好子函数定义在前

(3)文件存在考生目录下(即默认路径)

主要考点分析三、常考算法排序算法(选择、冒泡)判断素数求最值数组元素逆序存放有序数组中插入一数后仍然有序分解整数各位数字数字字符串和整数的相互转换英文大小写字母的相互转换字符串中的指定字符进行删除进制的转换二维数组进行转置应试方法与技巧笔试除程序填空题外其它题要求全部给出答案机试编程题不要什么都不写,阅卷有步骤分对于非计算机专业学生,如果你对计算机相关知识掌握的不很好的话,笔试应该多花时间记忆。当然,如果你对计算机相关知识掌握的比较好的话,就可以多理解。

1.1软件技术基础,基本上是靠记忆,各次考试重复率很高。

1.2单选题,主要是读一些简单的程序,细心点把程序走一遍就可以稳拿分数。

1.3读程序题,是比较简单的,注意自己经常容易出错的地方,细心就OK。

1.4笔试中程序填空是大分区,容易失去大分数,也容易得到大分数。就要有一定编程基础才能拿分了。上机就确实需要实力了。但是,大家不必慌张,仔细比较历年考试后就会发现一些有规律的地方。

2.1改错题

一般都只有3-6个错误。

首先,运行程序看看有没有缺少符号这类错误(比如:缺少}",;等)。

再次,看看有没有变量没有定义或者基本语法错误(比如:指针赋值错误等)。改到程序可以运行就很不错了。

其次,注意运行结果是不是我们想要的结果。注意循环的次数和边界等问题。

最后,解决功能错误。比如:要求将一数组升序排列,确因为判断条件的不对变成了降序排列。

2.2编程题

文件+算法是四川省计算机二级C语言的特点。文件操作几乎必考。一般考文件的顺序读写。算法难度相当于国家三级难度。非计算机专业需要重点练习编程题。应试经验谈

祝同学们考试成功!后面是一些练习题例1:编写函数fun,函数fun的功能是:求出满足“百位减十位等于个位”的所有三位整数,并按降序存入形参数组a中,满足条件下的三位数总个数作为函数值返回。main函数中调用函数fun,并按一行5个数输出结果。例2:编写函数fun,其功能是:将形参指针a指向的字符顺序放入形指针c指向的字符串中,再把形参指针b指针的字符串逆序放入形参指针c指向的字符串中。注:不能使用字符串的复制和连接函数。例如:a指向的字符串为adcb,b指向的字符串为213,则字符串c中的内容为adcb312。地址和指针的概念:

inta=5;int*p;p=&a;5变量名:a变量值:5变量的地址:&aa指针变量名:p指针变量值:&a指针变量的地址:&p&ap这样,a和地址变量p就建立了联系。对于a变量,就可以通过指针p去间接的访问。有如下关系:a*p&apa=3;*p=3指针指针1、变量的指针及指向变量的指针变量注意:指针变量作函参时与普通变量的区别2、指针与数组

(1)一维数组与指针,如有inti,a[10],*p=a;①引用数组元素的方法:a[i]=*(a+i)=p[i]=*(p+i)②数组元素地址的表示:&a[i]=&p[i]=a+i=p+i③p++表示指针指向下一个元素,a++无意义Ex指针与一维数组:#include<stdio.h>voidfun(int*a,int

bott,inttop){int

i,j,t;i=bott;j=top;

while(i<j){t=a[i];a[i]=a[j];a[j]=t;

i++;j--;}}voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,0},i;fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(i=0;i<10;i++)

printf("%d",a[i]);}1函数fun的功能是(

)(A)将下标为bott

到top之间的数组元素逆置(B)将下标为bott

到top之间数组元素进行升序排列(C)将下标为bott

到top之间数组元素进行降序排列(D)将下标为bott

和下标为top的两个元素互换2程序的运行结果为()

(A)0987654321 (B)4321098765 (C)5678901234 (D)0987651234指针

(2)二维数组与指针(inta[3][4])①行地址与列地址的表示②指向行的指针变量(int(*p)[4])(3)字符串和指针

①利用指针引用字符数组及其元素②应注意’\0’的正确使用3、指针数组和指向指针的指针

(1)指针数组:int*p[4];char*p[5];(2)二级指针:int**p;(3)指针数组作main函数的形参:

voidmain(int

argc,char*argv[])

char*p;p=“IloveChina!”;

printf(“%s”,p);

printf(“%c”,*p);ex指针数组与二维数组有下列程序voidmain(){charch[2][5]={"6934","8254"},*p[2];

int

i,j,s=0;

for(i=0;i<2;i++)

p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';

printf("%d\n",s);}

输出结果是(

)。

(A)6385(B)69825(C)63825(D)693825此时的二维数组名与指针数组名等价ex指针数组与二维数组下列程序的运行结果是()。

#include<stdio.h>voidmain(){char*str[]={"One","Two","Three","Four"};char**ptr=str;

inti;

for(i=0;i<3;i++)

printf("%s",(ptr+1)[i]);}(A)newohree(B)Two(C)TwoThreeFour

(D)指针运算非法,无输出指针4、函数的指针和指向函数的指针变量5、返回指针值的函数返回指针值的函数:读下列程序分析运行结果

#include<stdio.h>

char*cat(char*str1,char*str2){char*pt;

for(pt=str1;*pt!='\0';pt++);while(*str2!='\0')*pt++=*str2++;*pt=‘\0’;

return(pt);}voidmain(){char*p,s1[30]="210",s2[30]="45";p=cat(s1,s2);printf("%d\n",p-s1);p=cat(s1,s2);printf("%d\n",p-s1);}

①主函数中,执行第一个输出函数后的结果为(38)。

38(A)5(B)6(C)7(D)8②主函数中,执行第二个输出函数后的结果为(39)。

39(A)5(B)6(C)7(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论