标签:
这是学习C语言的第一篇blog,纯技术的东西不多,只是希望能温习所学,物尽其用、、、
C语句的分类:
1.表达式语句
2.函数调用语句
3.控制语句
4.复合语句
5.空语句
1) 表达式语句
表达式语句由表达式加上分号“;”组成。其一般形式为:
表达式;
执行表达式语句就是计算表达式的值。
例如:
x=y+z; /* 赋值语句 */
y+z; /* 加法运算语句,但计算结果不能保留,无实际意义 */
i++; /* 自增1语句,i值+1 */
2) 函数调用语句
由函数名、实际参数加上分号“;”组成。其一般形式为:
函数名(实际参数表);
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值例如:
printf("Hello world!"); /* 调用库函数,输出字符串 */
3) 控制语句
控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。 可分成以下三类:
条件判断语句:if语句、switch语句;
循环执行语句:do while语句、while语句、for语句;
转向语句:break语句、continue语句、return语句。
4) 复合语句
把多个语句用括号{}括起来组成的一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句。例如:
{
x=y+z; //赋值
a=b+c; //赋值
printf("%d%d", x, a); //输出x和a
}
复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。
5) 空语句
只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。例如:
while(getchar()!=‘\n‘); //getchar()所读取到的字符不是回车时,将一直处于等待输入的状态,直到输入回车时,程序将停止。
C语言运算符与标识符
单独说这两个组成元素是因为我对于这两个元素的一些常识经常忘记,虽说是分享,但更多是让自己再加深一点印象,因为总感觉自己很健忘。
1)运算符(英文状态输入)
C的运算符可以说包含了你能在键盘上找到的所有数学运算符,另外还增加 “&","||"等符号,下面介绍部分运算符及其所包含的意思。
"%":百分号在C中叫取模,实际作用是取得除法中所得的余数;
"==":因为在C中‘=‘是赋值的符号,因此等于便用两个‘==‘来表示;
"&&":表示并且,即同时满足多个条件时使用;
";":用于各句的结尾,在循环语句中只有do_while语句在while之后还需要加上‘;‘做结束;
"!=":作用等同于数学中的不等号。
C中的运算符和数学中的运算同样都有先后顺序:
1.括号()
2.单目‘++‘‘--‘‘!‘ //‘!‘虽然属于逻辑符,但其优先级只在括号之后。
3.算数‘+‘‘-‘‘-‘‘*‘‘/‘
4.关系‘>‘‘<‘‘>=‘‘<=‘
5.逻辑‘&&‘‘||‘
6.赋值‘=‘‘+=‘‘-=‘‘*=‘‘/=‘
2)标识(zhì)符
说到标识符,(突然才发现它的读音是这个,大概我的语文也是体育老师教的吧、、、)回到正题,是因为程序中有很多对象需要命名,
为了建立正确的使用关系,因此标识符也有其自己的命名规则。
1.标识符由字母、数字或下划线(_)组成;
2.第一个字符必须是字母或下划线(_);
3.同一个字母大写和小写代表不同的字符。
C语言的常用算法
1)选择排序
选择排序(从小到大)的基本思想是,首先,选出最小的数,放在第一个位置;然后,选出第二小的数,放在第二个位置;以此类推,直到所有的数从小到大排序
1 #include<stdio.h> 2 int main() 3 { 4 int i; 5 int arr[10]; 6 for(i=0;i<10;i++) 7 { 8 printf("请输入第%d个学生成绩:\n",i+1); 9 scanf("%d",&arr[i]); 10 } 11 int j; 12 for(j=0;j<10;j++) 13 { 14 for(i=j;i<10;i++) 15 { 16 if(arr[j]>arr[i]) 17 { 18 int tem=arr[j]; 19 arr[j]=arr[i]; 20 arr[i]=tem; 21 } 22 } 23 } 24 for(i=0;i<10;i++) 25 { 26 printf("%d\n",arr[i]); 27 } 28 return 0; 29 }
2)冒泡法
冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。
1 #include<stdio.h> 2 int main() 3 { 4 int i; 5 int arr[10]; 6 for(i=0;i<10;i++) 7 { 8 printf("请输入第%d个学生成绩:\n",i+1); 9 scanf("%d",&arr[i]); 10 } 11 int j; 12 for(j=0;j<9;j++) 13 { 14 for(i=0;i<9;i++) 15 { 16 if(arr[i]>arr[i+1]) 17 { 18 int tem=arr[i]; 19 arr[i]=arr[i+1]; 20 arr[i+1]=tem; 21 } 22 } 23 } 24 for(i=0;i<10;i++) 25 { 26 printf("%d\n",arr[i]); 27 } 28 return 0; 29 }
3)插入法
插入排序的基本思想是,将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。
1 #include<stdio.h> 2 int main() 3 { 4 int arr[7]={2,4,5,23,45,78}; 5 int num; 6 printf("请输入一个数:\n",num); 7 scanf("%d",&num); 8 int i=0; 9 int index=6; 10 for(;i<6;i++) 11 { 12 if(num>=arr[i]&&num<arr[i+1]) 13 { 14 index=i+1; 15 break; 16 } 17 if(num<arr[0]) 18 { 19 index=0; 20 break; 21 } 22 } 23 for(i=6;i>index;i--) 24 { 25 arr[i]=arr[i-1]; 26 } 27 arr[index]=num; 28 for(i=0;i<7;i++) 29 { 30 printf("%d ,",arr[i]); 31 } 32 return 0; 33 }
if和for循环在自己的编程语言中出现的次数应该是最多的,应该是与这两个语句的功能强、作用范围广有很大关系,
但是由于接触C的时间不多,很多时候有想法却不能将其程序化,确实很无奈,希望今后能有所进步,哪怕是一点点,也比止步不前好太多,don‘t give up!
标签:
原文地址:http://www.cnblogs.com/Outyua/p/4438213.html