1、例 #include “stdio.h “ /*stdio.h是头文件*/ main( ) /*求两数之和*/ int a,b,sum; /*声明部分,定义整型变量a,b*/ a=123,b=456; /*赋值语句*/ sum=a+b; /*赋值语句*/ printf(“ sum is %dn “,sum); /*输出*/ 运行结果: sum is 579,预处理命令,函数首部,函数体,声明部分,语句部分,简单C程序分析,main( )printf( “first point. n” );printf( “second point. n” ); main()int a, b, sum; /*
2、定义变量 */a = 123; b = 456; sum = a + b; printf( “sum is %d n”, sum ); ,例 main() /*主函数*/ int a,b,c;scanf(“ %d,%d “, 输出: max=8,函数首部,函数体,声明部分,语句部分,函数首部,声明部分,语句部分,函数体,一个程序总是从main()函数开始执行,调用其他函数后,流程回到main()主函数结束。 main()主函数是系统定义的,说明:,main() int a,b,c;scanf(“%d,%d”,例: 形参和实参,/*调用max函数,将得到的值赋给c*/,/*定义max函数,x,y
3、为形式 参数*/,/*将z的值返回,通过max函数带回调用值*/,main() int a,b,c;scanf(%d,%d”,例: 形参和实参,运行时输入:4,6,2.函数的返回值,通过函数调用,使得主函数得到一个确定的值,如: main() c=max(a,b);int max(int x,int y) int z;if(xy) z=x;else z=y;reutrn(z);运行时输入:4,6,关于函数返回值的说明:,(4)若函数的值的类型与return后面的表达式类型不一致,则以函数类型为准,函数值的类型决定返回值的类型,如:,main() float a,b,int c;scanf(“%
4、f,%f”,运行时输入:1.5,2.5,输出:,2,int,例 用while循环,#include main() int i,sum=0;i=1;while(i=100) sum=sum+i;i+;printf(“%d“,sum); ,例 显示110的平方,#include main() int i=1;while(i=10) printf(“%d*%d=%dn“,i,i,i*i);i+; ,运行结果: 1*1=1 2*2=4 3*3=9 4*4=16 5*5=25 6*6=36 7*7=49 8*8=64 9*9=81 10*10=100,dowhile语句 一般形式:,do 循环体语句;w
5、hile(表达式);,执行流程:,特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 dowhile可转化成while结构,例 用dowhile循环求,#include main() int i,sum=0;i=1;do sum+=i;i+;while(i=100);printf(“%d“,sum); ,例 while和dowhile比较,main() int i,sum=0;scanf(“%d“, ,main() int i,sum=0;scanf(“%d“, ,for语句 一般形式:,for(expr1 ; expr2 ; expr3)循环体语句;,执行流程:,例 求输入的十个整
6、数中正数的个数及其平均值,#include main() int i,num=0,a;float sum=0;for(i=0;i10;i+) scanf(“%d“, ,数组,数组可以理解成一系列具有相同名称,不同下标的变量。 例如:int a5;声明了一个整型数组,它有五个元素(a0,a1a4). 数组初始化: int a5=1,2,3,4,5; int b =1,2,3,4,5,6;编译系统根据初值个数确定数组大小,程序举例,例 读10个整数存入数组,找出其中最大值和最小值,步骤: 1. 输入:for循环输入10个整数 2. 处理: (a) 先令max=min=x0 (b) 依次用xi和ma
7、x,min比较(循环)若ximax,令max=xi若ximin,令min=xi 3. 输出:max和min,#include main() int x10,i,max,min;printf(“Enter 10 integers:n“);for(i=0;ixi) min=xi;printf(“Maximum value is %dn“,max);printf(“Minimum value is %dn“,min); ,例 用数组求Fibonacci数列前20个数,#include main() int i;int f20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i
8、=0;i20;i+) if(i%5=0) printf(“n“);printf(“%12d“,fi); ,二维数组及多维数组 二维数组的定义 定义方式:数据类型 数组名常量表达式常量表达式;,数组元素的存放顺序 原因:内存是一维的 二维数组:按行序优先 多维数组:最右下标变化最快,程序举例,例 将二维数组行列元素互换,存到另一个数组中,例 求二维数组中最大元素值 及其行列号,#include main() int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;int i,j,row=0,colum=0,max;max=a00;for(i=0;imax) max=aij;row
9、=i;colum=j;printf(“max=%d,row=%d, colum=%dn“,max,row,colum); ,字符数组和字符串 字符数组 定义,字符数组的初始化 逐个字符赋值 用字符串常量 字符数组的引用,例 char c10, ch34;,例 char ch5=H,e,l,l,o;,ch0,H,e,l,l,o,ch1,ch2,ch3,ch4,例 输出一个字符串,#include main() char c10=I, ,a,m, ,a, ,b,o,y;int i;for(i=0;i10;i+)printf(“%c“,ci);printf(“n“); ,字符串 字符串及其结束标志
10、无字符串变量,用字符数组处理字符串 字符串结束标志:0,例 char ch6=“Hello”;char ch6=“Hello”;char ch=“Hello”;,字符串连接函数strcat 格式:strcat(字符数组1,字符数组2) 功能:把字符数组2连到字符数组1后面 返值:返回字符数组1的首地址 说明:字符数组1必须足够大连接前,两串均以0结束;连接后,串1的0取消,新串最后加0,字符串拷贝函数strcpy 格式:strcpy(字符数组1,字符串2) 功能:将字符串2,拷贝到字符数组1中去 返值:返回字符数组1的首地址 说明:字符数组1必须足够大拷贝时0一同拷贝不能使用赋值语句为一个字符
11、数组赋值,例 char str120,str220;str1=“Hello!”; ()str2=str1; (),例 strcpy与strcat举例,#include #include void main() char destination25;char blank = “ “, c= “C+“,turbo = “Turbo“;strcpy(destination, turbo);strcat(destination, blank);strcat(destination, c);printf(“%sn“, destination); ,Turbo C+,字符串比较函数strcmp 格式:st
12、rcmp(字符串1,字符串2) 功能:比较两个字符串 比较规则:对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或0为止 返值:返回int型整数,a. 若字符串1 字符串2, 返回正整数c. 若字符串1= 字符串2, 返回零 说明:字符串比较不能用“=”,必须用strcmp,字符串长度函数strlen 格式:strlen(字符数组) 功能:计算字符串长度 返值:返回字符串实际长度,不包括0在内,例 对于以下字符串,strlen(s)的值为: (1)char s10=A,0,B,C,0,D;,答案:1,How are you?Hello! Len1=6,Len2=12,Len3=18,上机考试题型,elsen+; pjz2+=ai; pjz1/=cnt; pjz2/=n; ,int i,n=0; int a1,a2,a3,a4; for(i=0;i300;i+) a4=ai/1000; a3=ai%1000/100; a2=ai%100/10; a1=ai%10; if(a4+a3=a2+a1) cnt+; pjz1+=ai; 接右边,