c语言速通复习

1,c语言基础知识

1,入门

main函数:程序唯一入口,执行起点和终点

函数:是构成c语言程序的基本单位

函数体:{}包含的执行代码块

prinf函数想执行必须包含#include<stdio.h>

2,标识符和关键词

关键词就是c语言本身已经定义好的词,本身有特殊含义例:include int main return

标识符规则:1,只能由字母数字和下划线构成 2,数字不可以作为标识符的开头 3,关键词不可以作为标识符

3,进制

c语言中 只能使用八进制、十进制、和十六进制,没有二进制

八进制前缀为0,例如017

十进制没有前缀 例如10

十六进制前缀为0x,例如0x1F

4,变量

变量是指程序运行过程中,可以改变并且有可能会改变的,变量必须先声明,后使用

区分:int x=y=10;错误!c语言中不允许连续初始化

正确示例:int x,y;x=y=10;

5,数据类型

前提是在32位系统中讨论

无符号类型:unsigned:经过它修饰的数据类型,都不能是负数

字符类型:字符类型的值是由单引号包括的,'a',每个单引号只能有一个字符

char c='a'

字符本质上是一个数字,数字和字符一一对应的关系我们叫做ASCII码

例:大写字母A加32变成小写字母a

转义字符:八进制,十六进制

单引号内不是只能放一个字符吗?

单引号内\+内容其实表示的是一个字符

注意字符本身就是数字

单引号表示的是字符,双引号表示的是字符串

printf输出格式:

printf("格式字符串",参数1,参数2,。。。)

例:printf("这个整型数值是:%d',123);

纠正:转化为16进制结果为f

A正确 B错误浮点型为%f C'A'相当于数字65,为整型,%f打不出来 D:1234为整型,但是%s是字符串型,也打不出来

scanf和printf使用都要加头文件#include<stdio.h>

格式字符串中的格式必须要和控制台中输入的数据格式一摸一样

例如:scanf("%d,%d",&a,&b);

输入格式:10,20

复制代码
#include<stdio.h>
int main(){
char a,b;
printf("请输入一小写字母!\n");
scanf("%c",&a);
b=a-32;
printf("%c %c",a,b);
return 0;

}

如果指定输入长度那就在指定范围内赋值

不会限制输入长度,只会限制读取长度

字符1和整数1是两个不同的东西,字符1的%c字符型就是1,但是如果要打印为整数形式,数字则为ASCII码48

基本运算:

1,除法两边如果都是整型 ,那么输出结果也是整型

2,除号两边如果有一个小数 的话,那么就可以保留小数

3,求余数要求百分号两边都是整数

从右往左一步一步计算

++/--浮点数类型也是可以使用的

例:int z=(2,3,4);表达式的值就为4

z=2,3,4;z的值为2

逻辑运算符

注意:c语言中非0即为真例如:!6的值为0

理清楚关系再写表达式

短路原则

c语言分为顺序结构,分支结构和循环结构

分支结构

顺序执行,有一个符合条件就跳出

如果if /else后面只跟着一行代码花括号是可以省略的,都是多行必须要用花括号

循环结构

正确答案为C

注意:赋值表达式 k = 0 的值,就是赋值完成后变量 k 的值。

每次是先执行循环体,然后再判断条件

在do-while循环体中,一定要有能使while 后表达式值变为零("假")的操作

例题训练:

cs 复制代码
#include<stdio.h>
int main(){
int sum,num=0;
prinf("请输入一系列数字(以0结束)\n");
do{
printf("请输入一个数字\n");
scanf("%d",&num);
sum+=num;
}
while(num!=0);
printf("总计:%d",sum);
return 0;
}

数组

数组元素的数量必须是一个正整数常量

例:int x=5,int a[x];写法错误,变量不可以作为元素数量

判断:char p[];错误,只有后面有花括号的初始化的情况下才可以省略数组数量

二维数组 的规则:只有第一个[]大小可以省略,其他的[]大小都不能省略

二维数组的第一个下标是[0][0]

cs 复制代码
#include<stdio.h>
int main(){
int arr[10];
int min,tmp=0;
for(int i=0;i<10;i++){
scanf("%d",&arr[i]);
}
for(int i=0;i<10;i++){
if(arr[i]<min)
min=i;
}
tmp=arr[0];
arr[0]=arr[min];
arr[min]=tmp;
for(int i=0;i<10;i++){
printf("%d",&arr[i]);
}
return 0;
}

函数

一般来说函数定义是不能在主函数之前的,但是也可以通过函数声明来解决。

比如在int main()前面声明一下int add(int x,int y);就可以正常运行了

函数声明时也不需要写出完整的参数名,只需要这样**double fun(int,int);**就行

这个声明也可以写在main函数里面,只要在函数调用之前就行

例题:编写一段程序用于判断输入的数字是否为素数

cs 复制代码
int IsPrimeNumber(int num){
if(num<=1)
return 0;
else{
for(int i=2;i<num;i++){
if(num%i==0)
return 0;}
}
return 1;
}
int main(){
int a;
printf("请输入一个数字:");
scanf("%d",&a);
if(IsPrimeNumber(a)){
printf("这是一个素数:%d",a);}
else{
printf("这不是一个素数:%d",a);}
return 0;
}

如何计算一个数组的数量大小:

int size=sizeof(nums)/sizeof(nums[0]);

相关推荐
im_AMBER6 分钟前
Leetcode 162 除了自身以外数组的乘积 | 接雨水
开发语言·javascript·数据结构·算法·leetcode
是个西兰花13 分钟前
C++:异常
开发语言·c++·异常
AI人工智能+电脑小能手18 分钟前
【大白话说Java面试题】【Java基础篇】第18题:HashMap底层是如何扩容的
java·开发语言·面试·散列表·hash-index·hash
AbandonForce20 分钟前
Map类:pair键值对|map的基本操作|operator[]
开发语言·c++·算法·leetcode
澈20722 分钟前
C++核心:封装与static静态成员实战指南
开发语言·c++·算法
wuyoula39 分钟前
全新多平台电商代付商城源码
开发语言·c++·ui·小程序·php源码
玖疯子40 分钟前
IT疑难杂症诊疗室:系统性故障排查指南
开发语言·php
码云数智-大飞41 分钟前
OpCache 原理深挖:从字节码缓存到预加载(Preloading)的实战配置
java·开发语言
handler0144 分钟前
进程状态流转的本质:Linux 内核队列与底层数据结构解密
linux·运维·c语言·数据结构·c++·笔记·学习
cany10001 小时前
C++ -- 泛型编程
java·开发语言·c++