数据类型:整数类型int 字符型类型char 浮点数类型float
输入输出函数pringf(输出到终端) scanf(运行停顿,从键盘读入)
if循环
if 循环方式3种
if: if(判断) 语句1 if(判断) 语句1 else 语句2 if(判断) 语句1 else if(判断) 语句2 else if(判断) 语句3 else 语句4
switch遍历:
switch(变量) { case 常量B:语句1; case 常量A:语句2; case 常量C:语句3; default:语句4; //如果都不符合条件执行此行 }
for语法结构:
for(循环初始值;循环条件;循环变量增值) 执行语句; for(i=1;i<100;i++) printf(i);
while语法结构:
while(条件) { 执行语句; } //2 do { 执行语句 } while(条件);
关于循环嵌套,循环嵌套包含for while if等此处以for举例,替换为其他同理
for(j=0;j<3;i++) //外循环 { printf("外循环") //外循环执行语句 for(i=0;i<3;i++) //内循环 { printf("内循环") //内循环执行语句 } printf("\n") //此处打印空行 在执行结果中便于分清每次外循环 } 上述代码执行结果: 外循环 内循环 内循环 内循环 外循环 内循环 内循环 内循环 外循环 内循环 内循环 内循环
即每次外循环执行了三次内循环(内循环条件限制为3,),共执行了三次外循环(外循环条件限制为3次)
continue和break区别:前者只中断本次外循环,而执行下一次外循环;后者中断整个循环
1.break 语句可用于跳出循环。 2.break所在的循环体已经结束 1.continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。 2.continue所在的循环体并没有结束
代码演示:
for (i=0;i<5;i++) { if (i==3) break; x=x + "The number is " + i + "<br>"; } // 只输出 0 , 1 , 2 , 到3就跳出循环了 --- for (i=0;i<=5;i++) { if (i==3) continue; x=x + "The number is " + i + "<br>"; } // 不输出3,因为continue跳过了,直接进入下一个迭代
数组是基于基本数据类型的一种数据类型:
定义类型说明符 数组名[数字]; 如int array[4];
基于此可衍生二维数组 int array[3][4];为3*4的矩阵,一般在循环中用array[i][j]代替数字进行迭代;
在数组学习中,涉及一些字符串(char)的常用函数
puts gets strcat strcpy strncpy strcmp strlen strlwr strupr
代码演示
#include<stdio.h> int main() { char str1[]={"china"}; char str2[]={"beijing"}; char str3[10]; puts(str1); //puts同printf gets(str)从键盘得到数组 printf("%s\n",strcat(str1,str2)); //strcat拼接两者 strcpy(str3,str2); //strcpy讲后者复制到前者去,后者可以是字符串 printf(str3); // strncpy(str3,str2,2); //将后者前n位复制到前者 strcmp(str1,str2); //strcmp(字符串1,字符串2),比较大小,前者大返回正整数 printf("%d",strlen(str1)); //返回字符串长度,不包括后面的\0 //strlwr转换为小写字母,strupr转换为大写字母 }
函数使用
/* 定义无参数函数: 类型名 函数名() { 函数体 } 定义有参数函数 类型名 函数名(形式参数) { 函数体 } 定义空函数 类型名 函数名() {} 调用函数 函数名字(实参列表) */ //多维数组做函数参数 #include<stdio.h> int main() { int max_value(int array[][4]); int a[3][4] = {{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf("max value is %d\n",max_value(a)); return 0; } int max_value(int array[][4]) { int i,j,max; max = array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]>max) max = array[i][j]; return(max); }
读写文件
fputc() 把参数 c 的字符值写入到 fp 所指向的输出流中。如果写入成功,它会返回写入的字符,如果发生错误,则会返回 EOF。
fputs() 把字符串 s 写入到 fp 所指向的输出流中。如果写入成功,它会返回一个非负值,如果发生错误,则会返回 EOF。
fgetc() 函数从 fp 所指向的输入文件中读取一个字符。返回值是读取的字符
fgets() 从 fp 所指向的输入流中读取 n - 1 个字符。它会把读取的字符串复制到缓冲区 buf,并在最后追加一个 null 字符来终止字符串。
如果这个函数在读取最后一个字符之前就遇到一个换行符 '\n' 或文件的末尾 EOF,则只会返回读取到的字符
fscanf(FILE *fp, const char *format, ...) 函数来从文件中读取字符串,但是在遇到第一个空格字符时,它会停止读取。
#include <stdio.h> int main() { FILE *fp = NULL; fp = fopen("test.txt", "w+"); fprintf(fp, "This is testing for fprintf...\n"); fputs("This is testing for fputs...\n", fp); fclose(fp); }
#include <stdio.h> int main() { FILE *fp = NULL; char buff[255]; fp = fopen("/tmp/test.txt", "r"); fscanf(fp, "%s", buff); printf("1: %s\n", buff ); fgets(buff, 255, (FILE*)fp); printf("2: %s\n", buff ); fgets(buff, 255, (FILE*)fp); printf("3: %s\n", buff ); fclose(fp); }