根据《全国计算机二级考试c语言程序设计考试大纲(2018年版) 》,计算机二级C 语言主要考C 语言程序的结构、数据类型及其运算、基本语句、选择结构程序设计、循环结构程序设计、数组的定义和引用、函数、编译预处理、指针、结构体(即“结构”)与共同体(即“联合”)、位运算和文件 *** 作12大块内容。采用上机考试形式,考试时长120分钟,满分100分。
考试内容
一、C 语言程序的结构
1 程序的构成,main 函数和其他函数。
2 头文件,数据说明,函数的开始和结束标志以及程序中的注释。
3 源程序的书写格式。
4 C 语言的风格。
二、数据类型及其运算
1C 的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2 C 运算符的种类、运算优先级和结合性。
3 不同类型数据间的转换与运算。
4 C 表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句
1 表达式语句,空语句,复合语句。
2 输入输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计
1 用 if 语句实现选择结构。
2 用 switch 语句实现多分支选择结构。
3 选择结构的嵌套。
五、循环结构程序设计
1 for 循环结构。
2 while 和 do-while 循环结构。
3 continue 语句和 break 语句。
4 循环的嵌套。
六、数组的定义和引用
1 一维数组和二维数组的定义、初始化和数组元素的引用。
2 字符串与字符数组。
七、函数
1 库函数的正确调用。
2 函数的定义方法。
3 函数的类型和返回值。
4 形式参数与实际参数,参数值的传递。
5 函数的正确调用,嵌套调用,递归调用。
6 局部变量和全局变量。
7 变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理
1 宏定义和调用(不带参数的宏,带参数的宏)。
2 “文件包含”处理。
九、指针
1 地址与指针变量的概念,地址运算符与间址运算符。
2 一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。
3 用指针作函数参数。
4 返回地址值的函数。
5 指针数组,指向指针的指针。
十、结构体(即“结构”)与共同体(即“联合”)
1 用 typedef 说明一个新类型。2 结构体和共用体类型数据的定义和成员的引用。
3 通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。
十一、位运算
1 位运算符的含义和使用。
2 简单的位运算。
十二、文件 *** 作
只要求缓冲文件系统(即高级磁盘 I / O 系统),对非标准缓冲文件系统(即低级磁盘 I / O 系统)不要求。
1 文件类型指针(FILE 类型指针)。
2 文件的打开与关闭(fopen,fclose)。
3 文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf 函数的应用),文件的定位(rewind,fseek 函数的应用)。
参考资料
考试吧考试吧[引用时间2018-4-30]
#include <stdioh>
int IsPerfect(int m)
{
int i,k=0,s=0;
for(i=1;i<m;i++)
if(m%i==0) s+=i;
if(s==m) k=1;
return k;
}
//以上为函数IsPerfect,以下为主函数
void main(){
int n;
scanf("%d",&n);
if(IsPerfect(n))
printf("%d is a perfect number",n);
else
printf("%d is not a perfect number",n);
}
运行示例:
#include <stdioh>
#include <stdlibh>
#include <stringh>
#define MAX_NUM 50
#define MAX_LINE 256
struct student {
char name[10];
float math;
float chinese;
float eng;
float aver;
char grade;
};
const char student_file = "studenttxt";
const char grade_file = "gradetxt";
int init(struct student s, int n);
int fun(struct student s[], int n);
void sort(struct student s, int n);
void display(struct student s, int n);
void save_student(struct student s, int n, const char file);
void load_student(const char file);
int main(int argc, char argv[])
{
int num = 0;
struct student st[MAX_NUM];
num = init(st, MAX_NUM);
printf("\n等级为D的人数: %d\n", fun(st, num));
save_student(st, num, student_file);
sort(st, num);
save_student(st, num, grade_file);
display(st, num);
printf("\n所有学生信息\n");
load_student(student_file);
printf("\n排序后的学生信息\n");
load_student(grade_file);
return 0;
}
/ 初始化 /
int init(struct student s, int n)
{
int num = 0, i = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
printf("请输入学生数量[不大于50]: ");
fflush(stdout);
scanf("%d", &num);
while (0 >= num || n < num)
{
fflush(stdin);
printf("无效的参数,请输入学生数量[不大于50]: ");
fflush(stdout);
scanf("%d", &num);
}
for (i = 0; i < num; ++i)
{
printf("请输入第%d个学生的信息: ", i + 1);
fflush(stdout);
scanf("%9s %f %f %f", s[i]name, &s[i]math, &s[i]chinese, &s[i]eng);
fflush(stdin);
}
return num;
}
/ 计算平均成绩并统计等级为D的人数 /
int fun(struct student s[], int n)
{
int i = 0, cnt = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
for (i = 0; i < n; ++i)
{
s[i]aver = (s[i]math + s[i]chinese + s[i]eng) / 30;
if (70 <= s[i]aver && 85 > s[i]aver)
s[i]grade = 'B';
else if (60 <= s[i]aver && 70 > s[i]aver)
s[i]grade = 'C';
else if (60 > s[i]aver)
s[i]grade = 'D';
else
s[i]grade = 'A';
if ('D' == s[i]grade)
++cnt;
}
return cnt;
}
/ 降序排列 /
void sort(struct student s, int n)
{
int i = 0, j = 0;
struct student tmp;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
for (i = 0; i < n - 1; ++i)
{
for (j = 0; j < n - 1 - i; ++j)
{
if (s[j]aver < s[j + 1]aver)
{
tmp = s[j];
s[j] = s[j + 1];
s[j + 1] = tmp;
}
}
}
}
void display(struct student s, int n)
{
int i = 0;
if (0 == s || 0 >= n || MAX_NUM < n)
return 0;
printf("所有学生的信息如下: \n");
for (i = 0; i != n; ++i)
{
printf("%d name[%s] math[%1f] chinese[%1f] eng[%1f] aver[%1f] grade[%c]\n",
i + 1, s[i]name, s[i]math, s[i]chinese, s[i]eng, s[i]aver, s[i]grade);
}
}
/ 保存学生信息到指定文件 /
void save_student(struct student s, int n, const char file)
{
int i = 0;
FILE fp = 0;
char buf[MAX_LINE] = {0};
if (0 == s || 0 >= n || MAX_NUM < n || 0 == file)
return 0;
if (fp = fopen(file, "w"))
{
for (i = 0; i != n; ++i)
{
sprintf(buf, "%s %1f %1f %1f %1f %c\r\n",
s[i]name, s[i]math, s[i]chinese, s[i]eng, s[i]aver, s[i]grade);
fwrite(buf, 1, strlen(buf), fp);
memset(buf, 0x00, MAX_LINE);
}
fclose(fp);
}
}
/ 加载指定文件中的信息 /
void load_student(const char file)
{
char buf[MAX_LINE] = {0};
FILE fp = 0;
if (0 == file)
return ;
if (fp = fopen(file, "r"))
{
while (fgets(buf, MAX_LINE, fp))
printf("%s", buf);
fclose(fp);
}
}
首先用1~3天的时间,把C语言的基本语法、基本类型等过一遍。比如指针啊,数组啊,指针的指针啊等等。除非平时一点都没听,否则3天之内应该是可以吧这些内容熟悉一遍的。
剩余的时间,预留3天做做题。其余时间全部放到数据结构和基本算法的研究上。比如链表、排序算法等。
一般考试就是理论和编程。在学校应该是偏理论。所以先过一遍理论,然后再通过练习加深理论。
祝你好运了
#include<stdioh>
int main(void)
{
double a=00,b=00,c=00,d=00;
double agv=00
printf("please intput 4 socres:\n");
scanf("%lf %lf %lf %lf",&a,&b,&c,&d);
agv = (a+b+c+d)/40;
printf("the agv is %f",agv);
return;
}
2
#include<stdioh>
int main(void)
{
char temp =0;
while(temp = getchar())
{
if ((temp >= 'a')&& (temp <='z'))
temp += 32;
putchar(temp);
}
return;
}
3
#include<stdioh>
int main(void)
{
int i=0,sum =0;
for(i=1;i<=100;i++)
{
if( (i%4 == 0) || (i%7 == 0) )
sum += i;
}
printf("%d",sum);
return;
}
设计题是大部分代码都已经给你了,你只要填空填一行或者几个空格就行了,考试时是你进入系统做完后保存然后老师阅卷的,30道选择题应该是电脑直接出成绩了,设计题如果运行出问题了一般就没分了,但是写出了关键点了老师应该会给一点点分数
以上就是关于计算机二级(C语言)都考哪些内容全部的内容,包括:计算机二级(C语言)都考哪些内容、c语言程序设计、C语言程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)