整数类型 int
字符类型 char
实数类型 float和double
算法 计算机语言表示的算法实例:
问题: 求12+22+···+502
#include main() { int n,i,sun=0; scanf(“%d”,&n); /* 输入变量n,控制问题规模*/ for(i=1,i<=n;i++) sum+=i*i; printf(“sum=%d\\n”,sum); } If语句实例 例:从标准输入设备接收一个字符,如果是字母,输出它的ASCII码,否 则输出不是字母的信息。 # include main() {int c; c=getchar(); /*调入库函数getchar得到输入*/ if((c>=‘a’&&c<=‘z’) ‖(c>=‘A’&&c<=‘Z’)) /*判断是否为字母*/ printf(“%c ASCII code : %d \\n”,c,c); /*输出字母的ASCII码 */ else printf(“%c is not letter \\ n”,c); } 例:编写程序,根据输入的学生成绩,给出相应的等级。90分以上等级为A,60 分以下等级为E,其余每10分一个等级。 # include main() { float score; char grade; printf(“Enter score:”); scanf(“%f”,&score); if ( score>=90) grade=‘A’; else if ( score>=80) grade=‘B’; else if ( score>=70) grade=‘C’; else if ( score>=60) grade=‘D’; else grade=‘E’; Printf(“score: %f grade:%c\\n”,score,grade); } switch语句 switch (表达式) { case 常量表达式1:语句1 case 常量表达式2:语句2 ... case 常量表达式n:语句n default : 语句n+1 } 2. switch语句的执行过程 标号的作用,只是指出选择转移的起点。 一方面允许多个case标号连接到同一段代码,提供代码共享的能力。 另一方面,又使得正常选择分支case标号后的语句,一定要加入break语句才能实现多分支选择的功能。 # include main( ) { int i,n,sum; scanf(“%d”,&n); sum=0; i=1; while(i<=n) { sum=sum+1; i++; } printf(“sum=%d\\n”,sum); } 3.4.2 do_while循环 1.语法 do 循环体 while (表达式); 括号、分号是必须的。循环体可以是一条语句或复合语句或空语句“;”,表示循环结构的开始和结束,在这种循环结构中要成对使用。 2. do_while循环的执行过程 (1)执行do后面的循环体。 (2)计算while后面括号中的表达式,当值为非0时,转去执行 do和while (1);当值为0时,退出do_while循环。 do_while循环实例 # include main( ) { int i,n,sum; scanf(“%d”,&n); sum=0; i=1; do { sum=sum+1; i++; } while(i<=n); printf(“sum=%d\\n”,sum); } 3.4.3 for循环 1.语法 for (表达式1;表达式2;表达式3) 循环体 2. for循环的执行过程 (1)计算表达式1。/*表达式1通常为循环变量赋初值,使用赋值表达式和逗号表达式较多。*/ (2)计算表达式2,若其值非0,转(3);若为0,结束循环。/*表达式2控制循环条件*/ (3)执行循环体。 (4)计算表达式3,转(2)。 for循环语句实例 # include main( ) { int i,n,sum; scanf(“%d”,&n); for ( sum=0,i=1; i<=n; i++) sum=sum+1; printf(“sum=%d \\n”,sum); } 例:写程序,输出下三角形状的乘法九九表。 #include Main( ) { int i,j; for (i=1;i<=9;i++) printf(“%4d”,i); /*打印表头*/ Printf(“%c”,’\\n’); for (i=1;i<=50;i++) printf(“%c”,’-’); /*打印表头底部的一 行横线*/ Printf(“%c”,’\\n’); for (i=1;i<=9;i++) /*循环体执行一次打印 一行*/ { for (i=1;j<=i;j++) printf(“%4d”,i*j); /*循环体执行一次个数据*/ Printf(“%c”,’\\n’); /*每行尾换行*/ } printf(“%c”,’\\n’); } 函数数值传递效果示例 打印一 , #include void swap(int,int); main() { int x=10,y=20; printf(“(1)x=%d y=%d \\n”,x,y); /*输出调用swap之前变量x和y的值*/ swap(x,y); printf(“(4)x=%d y=%d \\n”,x,y); /*输出调用swap之后,x和y的值*/ } swap(int a,int b) { int t; printf(“(2)a=%d b=%d \\n”,a,b); /*输出形参a和b的值*/ t=a; a=b;b=t; printf(“(3)a=%d b=%d \\n”,a,b); /*输出交换a和b的值以后的各自的值*/ } 程序运行结果 (1) x=10 y=20 (2) a=10 b=20 (3) a=20 b=10 (4) x=10 y=20 带参数宏定义实例 #define MAX(x,y) ((x)>(y)?(x): (y)) #include Main() { int a , b, c; float x, y, z; scanf(“%d%d”,&a,&b); c=MAX(a, b); scanf(“%f%f”,&x,&y); z=MAX(x, y); printf(“c=%d z=%f \\n”, c, z); } 6.1.1 一维数组的定义 数组的维数是指表示数组使用的下标个数,如果数组中每个元素只带有一个下标,称这样的数组为一维数组。 定义形式为: 类型说明符 数组名[常量表达式]; 类型说明符指出数组元素的数据类型,数组名是标识符,元素个数使用方括号和常量表达式。 讨论C语言数组大小的规定。 讨论如何理解数组名。 6.1.2 一维数组的引用 C语言中,一个数组不能整体应用,数组名是一个地址常量,不能对其赋值,只能使用数组中的元素。 方法: 数组名[下标] 讨论C语言使用下标的规定。 6.1.4 一维数组初始化 例: 解释下面数组定义和初始化的意义: int a[6]={1,2,3,4,5,6}; /*定义6个元素的整型数组并赋初值1~6 */ int a[6]={1,2}; /*定义6个元素的整型数组并初始化前两个元素为1和 2,后4个元素赋初值0 */ int a[3]={1,2,3,4}; /*用于初始化的数据多于数组的定义,编译出错 */ int a[ ]={1,2,3,4,5,6}; /*定义6个元素的整型数组并赋初值1~6 ,数 组中没有元素个数信息,由花括号中的数据个数决定*/ 一维数组实例 #include main() { int i,num; float score[]={87,90,85,98,65,80,74,67}; float sum=0.0; num=sizeof(score)/sizeof(float); /*计算数组元素个数*/ for(i=0; i printf(“average: %.1f \\n”,sum/num); /*平均分有一位小数*/ } 6.2.5 二维数组实例 通过键盘给3*4的二维数组输入数据,然后分别按行和按列输出数组元素。 #include main( ) {int a[3][4],i,j; printf(“enter data by line: \\n”); for(i=0;i<3;i++) for(j=0;j<4;j++) scanf(“%d”,&a[i][j]); printf(“output by line: \\n”); for(i=0;i<3;i++) { for (j=0;j<4;j++) printf(“%5d”, a[i][j]); printf(“ \\n”); } printf(“output by column: \\n”); for (j=0;j<4;j++) { for(i=0;i<3;i++) printf(“%5d”, a[i][j]); printf(“ \\n”); } } 程序运行结果如下: enter data by line: 1 2 3 4 5 6 7 8 9 10 11 12 output by line: 1 2 3 4 5 6 7 8 9 10 11 12 Output by column: 1 5 9 2 6 10 3 7 11 4 8 12 6.3.1 字符数组 字符数组是元素数据类型是字符类型的一维数组。字符数组引用、存储、初始化的方法都与一维数组相同,只是要注意字符数组的元素是字符,有特殊的字面表示格式。 字符数组初始化的方法也和一维数组相同。 例:char s[5]={‘1’,’2’,’3’,’4’,’5’}; char s[5]={‘1’,’2’}; char s[]={‘1’,’2’,’3’,’4’,’5’}; 初始化时没有赋值的元素值为空是编码为0的字符,叫空字符,用’\\0’表示。它即不是空格字符(32),也不是0字符(48)。 6.5数组作为函数的参数实例 #include void strcopy ( char s1[ ], char s2[ ]); main( ) {char s1[20],s2[6]=“China”; strcopy(s1,s2); puts(s1); } void strcopy (char s1[ ], char s2[ ]) { int i=0; while ( s2[i]!=‘\\0’) {s1[i]=s2[i]; i++; } s1[i]=‘\\0’; } 因篇幅问题不能全部显示,请点此查看更多更全内容