C语言零基础必背干货

C语言的基本构成(高数叔)

#include<stdio.h> (预操作处理)
int main() / int main(void) / int main(int arge,char argv[ ])(定义主函数)
{
变量定义
部分变量赋值;(初始化赋值或赋值语气)
表达式运算;(算法和结构)
输出结果;
return 0;(运行结束)
}

一、进制问题:

十进制:由0123456789表示—字母D
二进制:由0和1表示—字母B
八进制:由01234567表示—字母O
十六进制:由0-9 A-F表示—字母H

二、关键字
描述数字类型:

char(字符型),double(双精度浮点),float(单精度浮点),int(整型)

描述语句:

break,case,continue,default,do,else,for,goto,if,return,sizeof,switch,while

数据类型定义:

typedef,void

存储类型:

auto,static

三、题目(考试要点):

1、C程序由函数构成
2、程序里必须有只能有一个主函数
3、主函数位置任意
4、从主函数开始执行、结束
5、大括号作为函数体来定义使用
6、分号为结束标志,最后一行末尾必须有

四、名字构成

字母、数字、下划线 (第一个字符不能为数字
源程序(.c) — 编译(.obj)— 可执行文件(.exe) —运行程序

五、hello world

#include<stdio.h>
int main()
{
printf(“hello world!\n”)
return 0;
}

六、类型:

整型:int–4个字节(十进制0123、八进制(012)、十六进制(0x123))
字符型:char–1字节(字符:‘a’、‘3’、‘!’) (字符串:“ ”、“apple”)
字符串个数=实际字符+1
字符‘a’为一个字节, 字符串“a”为两个字节, 因为字符串“a"实际是字符’a\0’ ,\0是字符串结束标志,系统自动增加
实型:float(单精度实型)—4个字节
double(双精度实型)—8个字节 double number
空类型(void)
构造类型:数组、结构体
指针类型:( * ) int*pa指针

七、常见字符对应的十进制整数

‘ ’(空格)对应32 、‘0’对应48 、‘A’对应65 、‘a’对应97

八、转义字符

\n (换行)、\t (水平制表)、 \0 (空字符)、 \ddd(1-3位八进制所代表的字符)

九、整型与字符型的转换 (%c字符,%d整型)

转换依据为十进制
#include<stdio.h>
int main()
{
char c1,c2;
c1=‘A’;
c2=c1+32;
printf(“c1=%c,c1=%d\n”,c1,c1);
printf(“c2=%c,c2=%d\n”,c2,c2);
return 0;
}

运行结果
c1=A,c1=65
c2=a,c2=97

十、符号定义(逗号分隔,分号结束):

#define X 3.14159(程序开始定义)
int r=5
a=Xrr即为(3.1415955)

十一、变量赋值

int a; 如 int a=1;或int a=1,b;
int max,min;如 int a=1,b=2;(错误表达int a=b=1)
double num1,num2;
字符串赋值:如 char c1=‘A’;char c1=65;

十二、运算符

1、/(取整:8.0/4等于=2.0000、3/2=1.000000、3.0/2=1.500000)、%(取余为8%4=0)、= = 、 >= 、<= 、 !=

2、逻辑运算符:&&(与)、 ||(或)、!(非)

3、++i为i=i+1- -i为i=i-1 =(把等号右边的值赋值给左边的变量+=、-=,/=,%=)

考点:

(1)求int a=5,b=6,c=7;表达式a= =b>c的结果
(算数运算中>的优先级高于= =,真为1,假为0
因为a== b>c等价于a==(b>c)
b>c为假为0,a==0为假,答案为0

(2)int a=5,b=1,c=3;表达式a>b+c的结果
(算数运算高于关系运算)因为5>(1+3)结果为1

(3)表达式a+b>c&&x+y<b等价于:((a+b)>c)&&((x+y)<b)
算数运算>关系运算>逻辑运算

(4)设int a=0,b=1,c;c=(a++>0)&&(b–<0)的结果
a++>0等价于0>0,为假,&&中有假全为假,答案为0

(5)设int a=0,b=1,c;c=(++a>0)II(b–<0)的结果
++a>0等价于1>0,答案为1

(6)假定int x=28,y=15;表达式x>y?x:y的结果为?
?为条件运算符如果x>y执行x,否则执行y,答案:2

(7)假定int a=3;表达式aa+5的结果为?答案:24
a
=b等价于a=ab 、 a=a+5等价于a=a*(a+5)

(8)假定double x=5.6,y=3.2;int z; z=x+(int)y的结果为?答案:8
int为强制类转换,x+(int)y=5.6+3=8.6,z为整型,答案为8

(9)设x、y、t均为整型变量,则执行语句x=y=3;t=++x||++y后y的值为:4
因为++x=4为真值,等于t,根据逻辑运算规则,不再计算后面的答案

(10)设y=10,x=y++,执行该程序后x和y的值:x=10,y=11
y赋值给x后,y做自增运算

简单编程:

任意输入三位数,分离个十百位数

#include<stdio.h>
int main()
{
int num,a,b,c;
scanf("%d",&num);
a=num/100
b=(num-a*100)/10
c=num%10
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
return 0;
}

十三、输入输出函数

#include<stdio.h> 标准输入输出函数库

(1)输入scanf(); 输出函数:printf()
scanf()的使用方法:scanf(“格式控制符”,变量)
int a;char b; double c; float d
scanf("%d" / “%C” / “%lf" / “%f”,&a,&b,&c,&d)
考试格式
int x,char y,double z;
scanf(“%d,%c,%lf",&x,&y,&z);
printf“%d,%c,%.2f",x,y,z);(z保留两位小数)

字符输入函数:getchar() ;字符输出函数:putchar()
(3)输入函数gets(),输出函数puts()
考试格式
char c1,c2---------------输入:how are you
gets(c1); ------------------------ how are you
scanf("%s",&c2) -------输出:
printf("%s\n",c1) -------------- how are you
printf("%s\n",c2)----------------how

gets 遇回车符结束,scanf遇空格,回车符,TAB结束

其他:

格式声明%%输出结果为%
例:“printf(“a=%%d,b=%%d\n”,a,b)结果为a=%d,b=%d

首字母大小写转换

#include<stdio.h>
int main()
{
char c1,c2;
c1=getchar();
c2=c1-32;大小写相差32
putchar(c2);
return 0;
}

三角形面积

#include<stdio.h>
#include<math.h>
int main()
{
int x,y,z;
double s,area;
scanf("%d,%d,%d",&x,&y,&z);
s=(x+y+z)/2;
area=sqrt(s*(s-x)(s-y)(s-z));
printf("%.2f",s);
return 0;
}在这里插入图片描述

十四、选择结构
一、if

(1)if----else if----else

if后面有多条语句需要用大括号括住

两数交换
#include<stdio.h>
int main()
{
double a,b,c;
scanf("%lf,%lf",&a,&b);
if(a>b)
{
c=a;
a=b;
b=c;
}
printf(“a=%.2f,b=%.2f\n”,a,b);
return 0;
}
(2()if 嵌套问题
if 和else配对采用就近配对原则
if(x>1)
if(x>10)
y=x-10;
else
y=x+10

if(x>1)
{
if(x>10)
y=x-10
}
else
y=x+10

二、while语句:

(1)while
while(表达式)
{
语句;
}
先判断再执行,反复执行,表达式值为假时结束
1-100累加求和

#include<stdio.h>
int main()
{
int x=1,sum=0;
while(x<=100)
{
sum=sum+x;
x++;
}
printf("%d",sum);
return 0;
}
(2)do – while
先执行再判断,的、判断句为假时结束
累加求和
#include<stdio.h>
int main()
{
int x=1,sum=0;
do {
sum=sum+x;
x++;
} while(x<=100);
printf("%d",sum);
return 0;
}

三、for

== for语句==
for(表达式1;表达式2;表达式3) { 循环体语句 } 表达式1 – 表达式2 – 循环体语句–表达式3 – 表达式2(如果不成立循环体结束)
累加求和
#include<stdio.h>
int main()
{
int x=1,sum=0;
for(x=1;x<=100;x++) for函数里使用分号分隔
{
sum=sum+x;
}
printf("%d",sum);
return 0;
}
#include<stdio.h>
判断素数
#include<stdio.h>
int main()
{
int x;
int i=2;
scanf("%d",&x);
for(i=2;i<x;i++)
{
if(x%i==0)break;
}
if(i<x)
printf(“不是素数”);
else
printf(“是素数”0;
return 0;
}
输出100-200之间的全部素数

四、break语句的应用

break仅适用于switch和循环语句
#include<stdio.h>
int main()
{
int n;
for(n=1;n<=10;n++)
{
if(n%7==0)break;
printf("%d\n",n);
}
return 0;
}
输出结果为1 2 3 4 5 6

五、continue语句的应用

#include<stdio.h>
int main()
{
int n;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d\n",n);
}
return 0;
}
输出结果为1 2 4 5 7 8 9 10

例题:若有下列语句:int k=10; while(k=0) k=k-1,则:一次循环都不执行
当k=0时,条件为假,初始条件不成立,循环一次都不执行。

  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值