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]);

相关推荐
程序员Ctrl喵2 小时前
Flutter 第三阶段:基础 Widget 全面指南
开发语言·javascript·flutter
计算机安禾2 小时前
【数据结构与算法】第31篇:排序概述与插入排序
c语言·开发语言·数据结构·学习·算法·重构·排序算法
xyx-3v2 小时前
C++构造函数、析构函数与拷贝控制深度解析
开发语言·c++
Larry_Yanan2 小时前
Qt+OpenCV(一)环境搭建
开发语言·c++·qt·opencv·学习
独特的螺狮粉2 小时前
开源鸿蒙跨平台Flutter开发:微波射频阻抗匹配系统-极坐标史密斯圆图与天线信号渲染架构
开发语言·flutter·华为·架构·开源·harmonyos
冰暮流星2 小时前
javascript之dom方法访问内容
开发语言·前端·javascript
我命由我123452 小时前
在 React 项目中,配置了 setupProxy.js 文件,无法正常访问 http://localhost:3000
开发语言·前端·javascript·react.js·前端框架·ecmascript·js
草莓熊Lotso2 小时前
MySQL 事务管理全解:从 ACID 特性、隔离级别到 MVCC 底层原理
linux·运维·服务器·c语言·数据库·c++·mysql
浅时光_c2 小时前
9 循环语句
c语言·开发语言