程序结构是三种 : 顺序结构 、 选择结构(分支结构) 、 循环结构 。
标识符
标识符由字母,数字,下划线组成,并且数字不能放在第一位。这个很重要哦,每年都会考。
标识符分为关键字、预定义标识符、用户 标识符。
关键字:(不可以 作为用户标识符号)
auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,inline,long,register,restrict,return,short,signed,sizeof,static,struct,switch,typedef,unsigned,union,void,volatile,while,_Bool,_Complex,_Imaginary,_Alignas,_Alignof,_Atomic,_Static_assert,_Noreturn,_Thread_local,_Generic
而main define scanf printf 都不是关键字 ,大家注意区分。
对于一些题目会迷惑学生,比如把关键字换了换字母,或者改了大小写,那就不是关键字了,比如For,不是关键字,可以用做标识符。
预定义标识符:define scanf printf include ,预定义标识符可以做为用户标识符。
用户 标识符:几乎每年都考,大家牢记!
数组
一维数组:
int a[5]={1,2,3 , }; 也是合法的
可以忽略数组长度,但是对于int a[];该初始化是错的,只有在对数组初始化(即赋值)的时候才可以省略数组的长度没有初始化便不可以这么命名。
二维数组:
int a[3][]={1,2,3,4,5,6}; 不合法
二维数组初始化时可以省略行数,但不能省略列数!!!
特殊转义字符
前导0不写,与八和十六进制数字区分
八进制转义字符:‘\ddd’, 前导的0是不能写的。
十六进制转义字符:'\xdd ’,前导的0不能写,并且 x 是小写 。
输出占位符
%o 八进制 | %#o 带前导的八进制 |
%x 十六进制 | %#x 带前导的十六进制 |
int x=017 ;
printf (“ %d ”, x ); 15
printf (“ %o ”, x ); 17 printf (“ %#o ”, x ); 017
printf (“ %x ”, x ); 11 printf (“ %#x ”, x ); 0x11
逻辑运算符
表达式的数值只能为 1(表示为真),或 0(表示假)。这个概念真的非常非常要!!!大家一定要牢记。
逗号表达式优先级别最低 ,表达式的数值逗号最右边 的那个表达式的数值,(2,3,4)的表达式的数值就是4 。
关于按位运算符,!>&&>||
一定记住“=”就是赋值,“ = = ”才是等号。
++ 在前先加后用 , ++ 在后先用后加
在初始化的时候,不可以连续赋值。比如int a=b=9;是不对的。
题目:
设整型变量 n 的值为 2,执行语句“n+=n-=n*n;”后,n 的值是( )。
A. 0 B. 4 C. - 4 D. 2
让我们逐步分析这个语句:
- 最内层的运算是
n * n
,即 2 * 2,得到 4。 - 接下来是 n-=4相当于
n = n - 4
,即2-4,得到 -2。 - 最后是
n += -2
,相当于n = n + (-2)
,即2+(-2)得到 0。
因此,执行完语句后,整型变量 n
的值为 0。所以,正确的选项是 A. 0。
在 C 语言中,&
操作符表示按位与操作,| 操作符表示按位或操作。按位与操作对两个二进制数的相应位执行逻辑与运算,如果两个相应位都为 1,则结果位为 1,否则为 0。
让我们计算 x & y
,其中 x=2,y=3:
x: 0 1 0 (2的二进制表示)
y: 0 1 1 (3的二进制表示)
----------------
x&y: 0 1 0 (按位与的结果)
所以,x & y
的结果是 2,因此正确的选项是 B。
让我们计算 x | y
,其中 x=2,y=3:
x: 0 1 0 (2的二进制表示)
y: 0 1 1 (3的二进制表示)
----------------
x|y: 0 1 1 (按位或的结果)
所以,x | y
的结果是 3。
strlen 和 sizeof 的区别
strlen是一个库函数,使用的时候需要引用头文件string.h,
而sizeof计算的是所占空间的大小,单位是字节。
当读数的时候,strlen计算的是‘\0’之前的字符个数,而sizeof计算的是所占空间的大小,包括‘\0’。
题目:
设有数组定义:char array[]=“China”;则数组所占的存贮空间为()。
A.4 个字节 B. 5 个字节 C. 6 个字节 D. 7 个字节
从题目上来看,China是字符串,后面隐藏来一个结束语‘\0,它在内存中也占一个字节,因此一共是6个字节,答案选C。
关于除法/和余法%的一些运算:
一定要区分余法和除法。
“/ / ” 两边 都是 整型的话,结果就是一个 整型 。 2 3/2 的结果就是 1.
“/ / ” 如果 有一边是 小数,那么结果就是 小数 。 0 3/2.0 的结果就是 0.5
题目
输入123 ,输出 321 逆序输出数据
int i=123;
while (i ! =0 )
{
printf (“ %d ”, i%10);
i=i/10}
循环
大家可以自己调试计算一下哦。
int k=1; int k=1 ;
while(- -k); while(k - -); printf(“ %d ”,k ), printf(“ %d ”,k );
结果为 0 结果为 -1
而对于for循环
for(int i=0;i<200;i++)
printf("%d",i); 结果为200
1.除法(正常运算)
int i=5;
int j=2;
printf("%d",i/j);
答案为:2
int i=-5;
int j=2;
printf("%d",i/j);
答案为:-2
int i=5;
int j=-2;
printf("%d",i/j);
答案为:-2
int i=-5;
int j=-2;
printf("%d",i/j);
答案为:2
2.余法(不正常运算)
int i=5;
int j=2;
printf("%d",i%j);
答案为:1
int i=-5;
int j=2;
printf("%d",i/j);
答案为:-1
int i=5;
int j=-2;
printf("%d",i/j);
答案为:1
int i=-5;
int j=-2;
printf("%d",i/j);
答案为:-1
后期会再进行改善的,谢谢大家的观看!