二级C上机之填空题做题方法及技巧.doc
文本预览下载声明
二级C语言上机填空题做题方法和技巧总结
填空题之方法
上机填空题占30分,一般有3个空需要填写,每个空为10分;
填空题做题之前必须弄清题目含义,抓住关键字,例如:要求对数组进行从小到大排序,则将会出现大于符号,如果是从大到小排序则出现小于符号;
填空题中出现频率最高的就是函数的调用、函数的首部、函数的返回值等和函数相关的问题,因此必须牢牢掌握祝函数的基本特征;
填空题中有的“空”比较难,考生除了掌握必须的C语言知识之外,还需要很好的逻辑思路,如果一个空将花很多时间来解决,那么建议使用“死记硬背”的方法来缩短复习时间;
上机题库中100题有部分题目是重复的或是相似的题目很多,同学们要使用比对的方法尽量去理解;
多练习,多思考,多总结
填空题之结构体相关考点
结构体成员引用:上机题库P18第9题(和92题一致),P27第23题(和51题一样)
读清楚题目要求:
要求将形参a所指结构体变量的数据赋值给函数中的结构体变量b;
从例如可以看出来:结构体中的学号和姓名变为了1002和“LiSi”,但是3门课成绩没有变化;
代码分析:
#include stdio.h
#include string.h
struct student {
long sno;
char name[10];
float score[3];
};
void fun(struct student a) /*fun函数首部,函数返回void,有一个形参a,a是一个结构体类型,形参a和类型必须和实参s的类型一致*/
{ struct student b; int i;
/**********found**********/
b = __1__; /*题目要求将形参a的值赋值给结构体变量b,因此填:a*/
b.sno = 10002; /*将10002赋值给b.no,因此结构体变量b的学号变为了10002*/
/**********found**********/
strcpy(__2__, LiSi); /*姓名要变为”LiSi”,则要引用b中的name成员,因此填入b.name*/
printf(\nThe data after modified :\n);/*讲解是一句带过不用多讲*/
printf(\nNo: %ld Name: %s\nScores: ,b.sno, b.name); /*讲解是一句带过不用多讲*/
/**********found**********/
for (i=0; i3; i++) printf(%6.2f , b.__3__); /*分析:这个是一个循环语句,执行3次循环,printf(%6.2f , b.__3__)要求输出是一个实型数据的成员,因此可以得知是score成员,因为score是一个数组,因此填:b.score[i],当i变化就可以取出第一门、第二门、第三门课的成绩*/
printf(\n);
}
main()
{ struct student s={10001,ZhangSan, 95, 80, 88}; /*考试必须了解的定义部分定义的内容*/
int i;
printf(\n\nThe original data :\n);
printf(\nNo: %ld Name: %s\nScores: ,s.sno, s.name);
for (i=0; i3; i++) printf(%6.2f , s.score[i]);
printf(\n);
fun(s); /*调用fun函数,传入实参,实参和形参必须一 一对应,类型和个数必须一致*/
}
23题:
从例如中可以看出:变化的是结构体中的学号和姓名
#include stdio.h
#include string.h
struct student {
long sno;
char name[10];
float score[3];
};
void fun( struct student *b)
{ int i;
/**********found**********/
b__1__ = 10004; /*题目中t的学号变化为了10004,因此填写:b-sno,不能填写b.sno,因为b是一个指针*/
/**********found**********/
strcpy(b__2__, LiJie); /*t的姓名变为了”LiJie”,因此填写:b-name*/
}
main()
{ struct student t={10002,ZhangQi, 93, 85, 87};
int i
显示全部