c语言学习目标
运行c语言环境codeblocks.
codeblocks的安装:
安装地址:http://www.codeblocks.org/downloads/26
codeblocks-16.01mingw-setup.exe
1.了解框架:#include<stdio.h>
int main(){
// 这里是要写的代码;
return 0;
}
这里main是主函数,有且只有一个。int是函数类型,也可以是void,char等等。
return是返回执行程序后的结果,可写可不写。
2.c语言做计算
实例:
#include<stdio.h>
int main(){
int a,b,c;
a = 10;
b = 20;
c = a + b;
printf("%d",c);
return 0;
}
3.存储变量的数据类型int,char,float,doubler
int:存数字的 %d表示数字类型
char:装字符的 %c表示字符
float:装小数的 %f表示小数
doubler:装更高精度的小数
4.c语言算法+ - * / % 加 减 乘 除 求余
11+4*5-9%3
#include<stdio.h>
int main(){
int a,b,c,d,e,f;
a = 11;
b = 4;
c =5;
d = 9;
e = 3;
f = a+b*c-d/e;
printf("%d",f);
return 0;
}
5.printf=输出函数格式
printf("只要不是变量的内容用引号括起来",a,b,c)。
6.c语言的注释和一些规则
/*......*/表示多行注释
// 表示单行注释
/n:表示换行,实例:printf("a小于b\n");
printf后必须加分号(;)。
7.c语言比较运算符>,<,==,>=,<=,!=
一个等号是赋值=,两个等号是相等==。
#include<stdio.h>
int main(){
int a=10,b=20;
if(a<b){
printf("a小于b");
}
}
8.逻辑运算符,判断真假&&,||,!
实例:#include<stdio.h>
int main(){
int a=10,b=20;
if(a<b){
printf("a小于b\n");
}
if(!(a>b)){
printf("a不比b大");
}
}
9.if语句
实例:#include<stdio.h>
int main(){
int score=67;
if(score<=100&&score>80){
printf("优秀");
}
else{
if(score<=80&&score>60){
printf("良好");
}
else{
printf("不及格");
}
}
}
10.星期查询,switch case语句,switch:开关,转换器。case:情况,实例。
#include<stdio.h>
int main(){
int weekday = 2;
switch(weekday){
case 1:
printf("today is monday\n");
break;
case 2:
printf("today is Tuesday\n");
break;
3,4,5,6,7;省略
default:
printf("number is wrong");
}
}
11.判断并赋值
y=(条件?‘A’:‘B’);条件满足结果为A,否则为B。
实例:
#include<stdio.h>
int main(){
int x = 20;
char y;
y = (x > 0 ?'A':'B');
printf("%C",y);
}
12.while循环语句
格式:while(条件表达式){循环体}
实例:#include<stdio.h>
int main(){
int i = 1;
int sum = 0;
while(i<=6){
sum=sum+3*i;
i++;
}
printf("%d",sum);
}
13.do.....while
格式:do{循环体}while(条件表达式)
实例:
#include<stdio.h>
int main(){
int i,sum;
i=1;
sum=0;
do{
sum=sum+3*i;
i++;
}
while(i<6);
printf("%d",sum);
}
14.for循环,可以取代while和do..while语句
格式:for(循环变量的赋值;循环条件;循环变量的自加){printf}
实例:
#include<stdio.h>
int main(){
int sum=0,i;
for(i=1;i<=100;i++){
sum=sum+i;
}
printf("%d",sum);
}
15.for,while,do...while与if搭配使用
实例:
#include<stdio.h>
int main(){
int i;
for(i=1;i<16;i++){
if((i%2)==1){
printf("%d\n",i);
}
}
}
16.九九乘法表
实例1:
#include<stdio.h>
int main(){
int a,b,c;
for(a=1;a<10;a++){
for(b=1;b<=a;b++){
c=a*b;
printf("%d*%d=%d\n",b,a,c);
}
}
}
实例2:
#include<stdio.h>
int main(){
int i,j;
for(i=1;i<8;i++){
for(j=1;j<=i;j++){
printf("*");
}
printf("*\n");
}
}
17.break,continue终止循环和跳过本次循环。
实例:
#include<stdio.h>
int main(){
int i;
for(i=1;i<10;i++){
if(i==3){
continue;
}
printf("%d循环次数",i);
}
}
18:数组类型:int,float,char
格式:int 数组名[5],其中5表示数组的个数。
引入变量1直接引入:比如int array[5] = {'t','o','m','c','a','t'},5可写可不写。
引入变量2先定义再引入.比如:int array[5],i;
for(i=0;i<5;i++){
array[i]=i;
}
float ,char同int格式一样。
实例:
#include<stdio.h>
int main(){
char array[] = {'t','o','m','c','a','t'};
int i = 0;
for(i=0;i<6;i++){
printf("%c",array[i]);
}
}
19.数组的使用规则:
1.往数组中存储时可以存一部分,后面的元素会自动赋值0.0表示结束。比如:int a[5] = {0,1}
2.数组名后中括号内的数字可加可不加,结果一样。比如:int a[5]和int a[];
3.字符数组赋值时中括号中可以不用写入数字。比如:char b[] = "lovec"和char b[5] = {'l','o','v','e','c'}效果差不多。
实例:
#include<stdio.h>
int main(){
int i,max,a[]={10,5,20,31,4};
max=a[0];
for(i=0;i<5;i++){
if(a[i]>max)
max=a[i];
}
printf("%d",max);
}
20.字符数组和字符串,sizeof是计算长度的语句sizeof(数组名)
字符串的长度比字符数组的长度多一个,比如char a[]=['l','o','v','e']
char b[]="love";a[]的长度是4,b[]的长度是5.
实例:
#include<stdio.h>
int main(){
char a[]={'l','o','v','e'};
char b[]="love";
int i,j;
i=sizeof(a);
j=sizeof(b);
printf("%d\n%d",i,j);
}
21.二维数组并赋值a[3][4]表示有三个数组,每个数组有四个值。
赋值方式:1.按行分段赋值:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2.按行连续赋值:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
实例:
#include<stdio.h>
int main(){
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int sum =0,v,i,j;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
sum=sum+a[i][j];
}
}
v=sum/12;
printf("%d\n %d",sum,v);
}
22.指针
格式:“*”+ 变量名=指针(声明一个指针变量)
类型:int*p1;指向整数变量的指针变量p1
float*p2;指向浮点型变量的指针变量p2
char*p3;指向字符型变量的指针变量p3
“&”: 叫取地址运算符。比如int a,&a就是取得变量a所存放的地址。
注意:p1=&a,声明指针变量后必须对其进行初始化,否则就是野指针危害很大。
int a=88,*p1=&a,指针初始化时只能指向地址,不能指向数据。
实例:声明三个变量并进行初始化。
#include<stdio.h>
int main(){
int a=0,*p1=&a;
float b=0.11,*p2=&b;
char c='a',*p3=&c;
printf("a=%d,b=%d,c=%d,",*p1,*p2,*p3);
}
23.使用指针
p代表的是地址,*p代表这个地址中存放的内容
用指针取变量的值 比如:int a=11,b,*p;
方法1:取值 p=&a; b=a;
方法2:取值 p=&a; b=*p;
b就成功取得a的值11。
实例:
#include<stdio.h>
int main(){
int x=100,y=200,*p1=&x,*p2=&y;
printf("%d",*p1+*p2);
}
24.指针的奇妙 数值的交换和指针的交换 指针的交换同数值的交换方式一样。
#include<stdio.h>
int main(){
int *p1,*p2,c,a=10,b=20;
p1=&a;
p2=&b;
if(a<b){
c=a;
a=b;
b=c;
printf("%d,%d\n",a,b);
printf("%d,%d",*p1,*p2);
}
}
25.野指针和null
分配类型的函数p=(char*)malloc(100);
释放内存:free(p) malloc和free成对出现。
char括号中的类型必须和p的类型一致,(100)分配类型的大小。
实例:
#include<stdio.h>
#include<stdlib.h>
int main(void){
int *p;
p = (int*)malloc(4);
if(p == NULL){
printf("内存分配失败。");
exit(-1);
}
*p=100;
printf("p的指针内容=%d",*p);
free(p);
}
?26.数组的指针
数组名是所占内存的首地址,比如:int a[],指针变量指向首地址,p=&a[0]或者p=a.
#include<stdio.h>
#include<stdlib.h>
int main(void){
int a[5],*p=a,i;
for(i=0;i<5;i++){
*p=i;
p++;
}
p=p-5;
for(i=0;i<5;i++,p++)
printf("%d\n",*p);
}
?27.使用数组的指针
实例:
#include<stdio.h>
int main(void){
int a[5],i;
for(i=0;i<5;i++)
*(a+i)=i;
printf("%d\n",*(a+i));
}
? 28.二维数组的指针
int a[2][3]分解成int a[0][3]和int a[1][3]
a指向a[0][0]即a的首地址,a+1指向a[1][0].
同样p=a,指向a[0][0],p+1指向a[1][0].
*(P+1)+1指向a[1][1].
实例:
?29:字符串的指针
实例:
?30:指针数组
实例:
?31.指向指针的指针
实例:
?32.指针的长度
实例:
33.函数
定义新的函数并调用。
实例:
#include<stdio.h>
void hello(){
printf("hello\n");
}
void myfun(){
printf("欢迎来到这里学习");
}
int main(){
hello(); //调用的函数
myfun(); //调用的函数
}
34.带参数的函数
多个参数之间用逗号分开,参数可以是多个类型的变量,参数必须有数据类型。
非void函数中一般会有return语句。return是结束此函数,所以用return不用printf.
而exit是结束整个程序详细见:25.野指针和null
实例:
#include<stdio.h>
int min(int a,int b){
if(a>b)
return b;
else
return a;
}
int main(){
int a=4,b=6,c;
c=min(a,b);
printf("%d",c);
}
35.函数的结束
#include<stdio.h>
int a(){
printf("我们在测试return的语句.\n");
return 0;
}
int b(){
printf("我们在测试exit的语句");
exit(0);
}
int main(){
a();
printf("return之后程序还能执行到这儿\n");
b();
printf("exit之后,程序不能执行到这里");
}
36.函数的声明和调用
函数的声明在main函数的前面,具体定义的函数要写在main函数的后面,遵循main函数在最前面的规则。
实例:
#include<stdio.h>
int a(void);int b(void);
int main(){
a();
printf("return之后程序还能执行到这儿\n");
b();
printf("exit之后,程序不能执行到这里");
}
int a(){
printf("我们在测试return的语句.\n");
return 0;
}
int b(){
printf("我们在测试exit的语句");
exit(0);
}
37.函数的递归调用
调用自身的函数叫递归函数
实例:
#include<stdio.h>
int sum(int);
int main(){
int n=100,s=0;
s=sum(n);
printf("%d",s);
}
int sum(int n){
if(n==1)
return 1;
else
return n+sum(n-1);
}
38.全局变量和局部变量
全局变量:在函数外定义的变量叫全局变量。
局部变量:在函数内定义的变量叫局部变量。
实例:
#include<stdio.h>
int max=100;
void pt();
int main(){
int min=10;
if (max>min)
pt();
}
void pt(){
printf("max值是:%d",max);max 是全局变量此处可用。
//printf("min值是:%d",min);min是局部变量此处不可用。
}
39.static变量 修饰局部变量
static+局部变量,变量的存在期间会延长,直到函数结束依然存在。
实例:
#include<stdio.h>
void fun();
int main(){
int i;
for(i=0;i<3;i++)
fun();
}
void fun(){
int b=1;
static int c=3;
b=b+1;
c=c+1;
printf("b=%d,c=%d",b,c);
}
40.extern变量 修饰全局变量
extern+全局变量=外部变量
#include<stdio.h>
int main(){
extern a,b; a和b在函数后面定义,若想调用加extern,从此处往后a和b就是全局变量。
int c;
if(a>b)
c=a;
else
c=b;
printf("%d",c);
}
int a=13,b=8;
41.普通变量做参数
实例:swap数值置换后并没有传到main函数中去,因为return才能把结果返回到函数中。
#include<stdio.h>
void swap(int a,int b);
int main(){
int a=10,b=20;
printf("置换前a=%d,b=%d\n",a,b);
swap(a,b);
printf("置换后a=%d,b=%d\n",a,b);
}
void swap(int a,int b){
int c;
c=a;
a=b;
b=c;
printf("swap函数置换后a=%d,b=%d\n",a,b);
}
42.指针做参数
用指针做参数和调用参数
43.数组名做参数
c语言学习目标
(1)数据结构、算法的概念和作用
结构化程序设计的方法、三种基本结构
程序流程图和 N-S流程图
(2)C程序的一些特点、标识符和关键字的概念.
编译、 链接和运行的概念及应用
C程序开发流程、 学会至少一种环境下的 C程序开发
(3)常量、变量的概念和使用
如何声明和定义变量
printf函数和scanf函数的使用
(4)整型、字符型、浮点型数据类型的使用
使用printf函数和scanf函数处理各种类型致据
使用typedef自定义数据类型
限定词const 和 volatile的使用
(5)表达式和语句的概念及其关系
各种操作符语句的使用、操作符之间的优先级和结合性
了解语法分析中的分析法
(6)if语句三种形式的使用、使用 switch语句实现多路选择结构 else
if结构和 switch语句的使用范围
条件表达式的使用,以及与if语句的比较
逻辑表达式的隐式选择
(7)for语旬、 where语句的结构和使用,两者的比较
do-while语句的使用, 以及与 while语句的比较
continue 语旬和break语句在循环结构中的作用
goto语句的局限性和功能、两种基本结构的嵌套使用
(8)一维数组的使用、具名变量的使用和数组越界的风险
二维数组、多维数组的使用
(9)字符数组的使用、字符串和字符数组的关系
字符串常量和字符串变量的使用
字符串终止符r\0'的作用
使用prinlf函数和 scanf函数处理字符串
(10)模块化编程思想
函数的作用、函数的声明、函数的形参列表
使用const形参
main函数的标准形式、如何向main函数传值及取得main函数值
(11)理解文件和函数的关系、头文件和源文件的关系
学会组织多文件工程,在至少一种环境下开发多文件工程
递归函数的使用、内部函数和外部函数的使用
(12)生存期和作用域的概念
全局变量和局部变量的概念和区别
变量屏蔽的方式
存储变量的各个存储区的作用和区别
auto、 static、 register和extern变量的使用与区别
(13)putchar 函数和 getchar 函数的正确使用
puts 函数和 gets 函数的正确使用
strcpy函数和 strncpy函数的正确使用
strcat函数和strncat函数的正确使用
strncmp函数和 strcmp題数的正确使用
strupr函数和strlwr函数的正确使用
(14)指针的概念及指针变量的内存访问方式
指针变量的定义、赋值和初始化
使用指针作为函数形参和函数值
函数型指针的使用、 void型指针的使用
(15)指针和数组的区别
使用指针访问数组,使用指针作为形参在函数中传递数组
指针型数组和数组指针
使用指针访问二维数组,指针作为形参在函数中传递二维数组
使用字符指针来.处理字符
字符串数组和字符指针数组使用上的区别
(16)理解堆的概念
malloc函数和free函数的正确使用
memset函数的正确使用、 calloc 函数和realloc 函数的正确使用
动态数组的管理和使用
(17)字节和位的概念、原码与补码的转换
6种位操作特及其组成的位运算赋值操作符的使用
各个位操作特的特殊用途、位域的概念和位域的使用
(18)结构体的概念及用途、结构体类型的声明及其字长
结构体变量的定义、访问和赋值
结构体数组和结构指针的使用
(19)共用体变量、枚举变量、位域变量的定义和使用
(20)宏定义的分类
宏对象、宏函数的执行机制和适用场景
宏函数和函数的区别
条件编译的三种形式
文件包含的使用
c语言学习目标的更多相关文章
- 20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标
自己较强的技能获取经验. 1:实话实说我自己是没有哪个技能可以超过90%的人的,只有自认为做的还可以的一些事情,例如打篮球,office软件的应用,一百米跑.至于其他方面就是很平庸了. 2:经验主要有 ...
- 20165315 C语言学习情况与Java学习目标
20165315 C语言学习情况与Java学习目标 一.出色技能的获取经验 我从小便是一个中规中矩的人,在很多方面都是让成绩尽量保持在前百分之二十到三十这个范围内,比如我比较擅长的唱歌和乒乓球,但也不 ...
- 《手把手教你学C语言》学习笔记(2)---学习C语言的目标和方法
一.学习C语言的目标主要是: 熟练掌握C语言的关键字,语法规则,程序控制等: 掌握基本的数据结构,数组.链表.栈和队列等: 掌握C语言中指针和内存.数组与指针.函数与指针.变量和指针.结构体和指针.硬 ...
- C 语言学习 第12次作业总结
作业总结 本次课堂的内容为字符串相关的几个函数还有结构体. 字符串相关函数 在此之前的课程中,输入主要都是使用scanf这个函数.而在这节课上,冯老师讲解了字符串获取函数gets.在不需要控制符的情况 ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- 技能收获与C语言学习
你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
- HTML语言学习笔记(会更新)
# HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...
- 20155229-付钰涵-分析自我技能延展到c语言学习状况
我的小技能 我记得幼儿园时表演的舞蹈,也记得从水彩到素描的学习,还记得小学和初中获得的钢琴省级奖项. 舞蹈止于一年级,绘画止于三年级,钢琴从学前班到高一那十年的时间里有过断续. 03年-04年的那个冬 ...
- 20155306白皎 学习技能+C语言学习
你有什么技能比大多数人更好 谈起技能,我还有感觉有微微拿得出手的也只有主持这一项才艺了吧.从小学到高中一直参加朗诵比赛,以及从小学到大学一直在所在学校有担任过主持工作. 上大学以来,也参加了院级朗诵比 ...
随机推荐
- t5_sumdoc.txt
C:\Users\Administrator\Documents\sumdoc 2019\sumdoc t5 final\sumdoc t511C:\Users\Administrator\Docum ...
- (原)ffmpeg中的writing_filter翻译
本文的主要目的是梳理,记录自己在学习开发ffmpeg视频滤镜的笔记.参考的主要内容是根据ffmpeg中doc下的writing_filter.txt文件以及ffmpeg的源码. author:liha ...
- shell中函数的使用
函数是一个脚本代码块,你可以对它进行自定义命名,并且可以在脚本中任意位置使用这个函数.如果想要这个函数,只要调用这个函数的名称就可以了.使用函数的好处在于模块化以及代码可读性强. (1).函数的创建语 ...
- Ubuntu 安装docker CE以及harbor
Docker CE安装 系统建议版本:Ubuntu 16.04 官方安装文档连接:https://docs.docker.com/install/linux/docker-ce/ubuntu/#pre ...
- java基础:
java基础: 内容. 待续........
- 【MongoDB学习之六】MongoDB集群
环境 MongoDB 4.0 CentOS 6.5_x64 一.主从复制-Master-Slave这种模式已不再推荐使用了. 二.副本集-Replica Set(用的多)副本集其实一种互为主从的关系, ...
- 【Spring Boot学习之二】WEB开发
环境 Java1.8 Spring Boot 1.3.2 一.静态资源访问 动静分离:动态服务和前台页面图片分开,静态资源可以使用CDN加速;Spring Boot默认提供静态资源目录位置需置于cla ...
- Node.js实现PC端类微信聊天软件(一)
Github StackChat 技术栈 写这个软件StackChat的主要目的是巩固练习Node和对React的实践,也是为了学习东西,所以选用了这些自己还没在项目里使用过的技术,边学变写 Elec ...
- JVM的基本结构和JVM的内存结构
这里概要介绍一下JVM在启动后,作为操作系统的一个进程的基本结构,以及从操作系统角度看,JVM如何管理它从操作系统里申请来的内存的,也就是JVM的内存结构或者叫JVM内存模型. 1.JVM的基本结构 ...
- mybatis-3.5.2增删查改
这玩意没啥技术含量,只不过长时间不用,就显得生疏了.正好今天想读取一个文件写入数据库,平时都是集成环境,都碰不到这些基础东西,看来还是需要时常给自己找活干. 首先建立一个maven工程. next n ...