精华0
威望12
K币39 元
注册时间2015-6-16
在线时间0 小时
最后登录2024-7-10
新手上路

- 精华
- 0
- 威望
- 12
- K币
- 39 元
- 注册时间
- 2015-6-16
|
本帖最后由 zyj8822 于 2015-8-24 13:42 编辑
C语言程序设计考查要点
(一) 掌握常量、变量的概念,掌握常见数据类型(字符型、整型和浮点型)变量的定义和使用。
(二) 掌握各种运算符的使用方法并理解运算符的优先级和关联性。
(三) 掌握各种数据类型的输入、输出,掌握数据类型之间的转换规则。
(四) 掌握分支结构程序设计方法,熟练使用if语句、switch语句。
(五) 掌握循环结构程序设计方法,熟练使用for语句、while语句和do-while语句。
(六) 熟练掌握一维数组、二维数组的定义和使用,熟练掌握字符串的定义和使用、掌握字符串处理函数的定义和使用。
(七) 熟练掌握函数的定义和调用,理解函数的递归和嵌套调用,了解不同类型存储变量的定义、使用范围和生命周期。
(八) 熟练掌握结构体的定义和使用,掌握结构体数组的定义和使用。
(九) 理解指针的定义,掌握通过指针访问数组、字符串和结构体的方法。
(十) 掌握文件的定义及处理方法。
第一天:掌握常量、变量的概念,掌握常见数据类型(字符型、整型和浮点型)变量的定义和使用。
这个没得说吧,强类型语言中必有东西,常量,变量,char,short,byte,int,long,double 真正在开发过程中,都会用到。多敲下代码就好了~!相信考试也不会出这么容易的问题,直接过~!
第二天:掌握各种运算符的使用方法并理解运算符的优先级和关联性。
C运算符优先级完整口诀(摘自网络)
C语言常用运算符的优先级口诀是:“单算关逻条赋逗”;
如果加入位运算符,完整口诀是:“单算移关与,异或逻条赋”。
■“单”表示单目运算符:逻辑非(!),按位取反(~),自增(++),自减(--),取地址(&),取值(*);
■“算”表示算术运算符:乘、除和求余(*,/,%)级别高于加减(+,-);
■“移”表示按位左移(<<)和位右移(>>);
■“关”表示关系运算符:大小关系(>,>=,<,<=)级别高于相等不相等关系(==,!=);
■“与”表示按位与(&);
■“异”表示按位异或(^);
■“或”表示按位或(|);
■“逻”表示逻辑运算符:逻辑与(&&)级别高于逻辑或(||);
■“条”表示条件运算符(? :);
■“赋”表示赋值运算符(=,+=,-=,*=,/=,%=,>>=,<<=,&=,^=, |=,!=);
◆另,逗号运算符(,) 级别最低,口诀中没有表述,需另加记忆...
运算符优先级别指定包含多个运算符的表达式中的运算顺序。 运算符关联性指定,在包含多个具有相同优先级别的运算符的表达式中,操作数与其左侧还是右侧的操作数组合。关联性也可以理解为从最高优先级别到最低优先级别
第三天:掌握各种数据类型的输入、输出,掌握数据类型之间的转换规则。
输入 scanf %d, %c, %f ,%s 等
输出 printf %d %c %f %s 等 其它函数基本不常用(getchar putchar)
数据类型转换 隐式和显式 隐式转为精度更高的 注意精度丢失情况
第四天:掌握分支结构程序设计方法,熟练使用if语句、switch语句。
用switch情况不多,基本可以用if解决,有时也可以借用三目运算 ? : 的形式处理。
第五天:掌握循环结构程序设计方法,熟练使用for语句、while语句和do-while语句。
虽然有while和do-while 基本上用for就可以搞掂。一 for走天下~!
第六天:熟练掌握一维数组、二维数组的定义和使用,熟练掌握字符串的定义和使用、掌握字符串处理函数的定义和使用。
数组的一个特点 内存必须是连续的,所以在开发中,尽量少用多维数组int a[5] 使用时下标从0开始 数组长度可以用 strlen() 这个方法来自于string.h 具体可以参考string.h
二维数组,可以简单的理解为数组的数组 int a[10][9] 遍历用两个嵌套的循环
字符中 其实就是char数组 只不过为了结束字符串 在最后自动加一个‘\0’ 如果怕麻烦 char a= "This is C";字符串的话也参考string.h
(PS:由于权限,帖子不让发引用链接,以后回顾的时候只能再google一下啰,对了google现在还是被墙中,只好百度或者yahoo或者bing)
第七天:熟练掌握函数的定义和调用,理解函数的递归和嵌套调用,了解不同类型存储变量的定义、使用范围和生命周期。
函数还是比较好理解的
返回类型 函数名 参数列表 函数体
void test ( int a, float b ){ }
例如 int plus (int a, int b) { return a + b; }
递归调用和嵌套调用都是调用函数,只不过递归是调用自身,嵌套是调用其它函数 当然函数不能无限调用下去,栈会不够用的。
存储变量主要是全局变量和局部变量, 当然还有静态变量或常量等。作用域就看修饰符和大括号的范围了呗。
在C语言,由于没有垃圾回收机制,所以内存呢,申请并用完后,就得手动释放内存哦~!
第八天:熟练掌握结构体的定义和使用,掌握结构体数组的定义和使用。
定义: struts 类型名{成员列表};定义结构体时同时定义变量:struts 类型名{成员列表}变量名A,变量名B;当然也可以初始化变量
使用时,变量名打点调属性名即可
结构体数组用法类似,变量名后面加[]就可以了,注意长度。
第九天:理解指针的定义,掌握通过指针访问数组、字符串和结构体的方法。
定义:指向类型 * 变量名
例如:int * p; float * f;struts Staff staff,* sp=staff;
| | 数组 | 字符串 | 结构体 | | 定义 | int a[5];
int *p=a; | char s="this is c pro";
char *p =s; | struts Staff stu;
stuts Staff *p=stu;
struts Staff stus[4];
*p = stus;
| | 访问 | p++; | printf("%s",s); | (*p).成员名
p->成员名 |
指针的难度比较大,越来越多的开发语言已经没有指针了,所以个人仅学习一级指针(只一个*的)。
入个门吧~!
第十天:掌握文件的定义及处理方法。
在学习之前预估内容有:
文件定义
创建目录
创建文件
写文件内容
文件内容修改/追加
文件删除
目录删除
代 码 开 始 ![]()
#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#include <direct.h>
#include <malloc.h>
/**
* 创建目录,如果目录不存在 可以创建多级目录
* 返回0 代表成功
*/
int createDir(char * path){
int status = mkdir(path);
printf("%s,%d\n",path,status);
return status;
}
/**
* 删除目录
* 返回0 代表成功
*/
int deleteDir(char * path){
int status = rmdir(path);
printf("%s,%d\n",path,status);
return status;
}
/**
* 创建文件
*/
int createFile(char * filePath){
FILE * fp;
if((fp =fopen(filePath,"w+"))==NULL){
printf("无法打开%s文件!\n",filePath);
}else{
fclose(fp);
}
return 0;
}
/**
*删除文件
*/
int removeFile(char * filePath){
return remove(filePath);
}
/**
* 加内容文件
*/
int putContentFile(char * filePath, char * contents){
FILE * fp;
if((fp =fopen(filePath,"a"))==NULL){
printf("无法打开%s文件!\n",filePath);
}else{
fputs(contents,fp);
fputs("\n",fp);
fclose(fp);
}
return 0;
}
/**
*顺序读取文件
*/
int readFile(char * filePath){
FILE * fp;
char * contents = (char *)malloc(100*sizeof(char));
if((fp =fopen(filePath,"r"))==NULL){
printf("无法打开%s文件!\n",filePath);
}else{
while(fgets(contents,100,fp)!= NULL){//读取一行
printf("%s",contents);
}
fclose(fp);
}
return 0;
}
int randomReadFile(char * filePath,char * contents){
return 0;
}
int main(){
char * ppath = "c:/testpath";
char * path = "c:/testpath/test";
char * filename = "c:/testpath/test/test.txt";
char * content = "中国test";
createDir(path);//创建目录
createFile(filename);//创建文件
putContentFile(filename,content);//文件添加内容
putContentFile(filename,content);//文件追加内容
readFile(filename);
removeFile(filename);
deleteDir(path);
deleteDir(ppath);
}
代 码 结 束 ![]()
如有不对不妥之处,请多多指正~!欢迎交流共同进步~!
|
评分
-
查看全部评分
|