版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数组的引用:#in clude<stdio.h>void main (int argc,char *argv) int x5 = 2,3,1,4,6 ;int i;for (i = 0; i < 5; i+)printf("%dn", 2 * xi);一维数组的遍历:#in clude<stdio.h>void main (i nt argc, char *argv)int x5 = 1,2,3,4,5 ;int i = 0;for (i = 0; i < 5; i+)prin tf("x%d:%dn", i, xi)
2、;一维数组的最值:#include <stdio.h>int main( int argc, char * argv ) int x5 = 1,2,3,4,5 ;int nMax = x0;int i = 0;for (i = 1; i < 5; i+)if (xi > nMax)printf( "max:%dn", nMax);return 0;一维数组排序:#include <stdio.h>void main( int argc, char * argv ) int arr5 = 9, 8, 3, 5, 2 ;int temp =
3、0;int i, j;printf("冒泡排序前:n");for (i = 0; i< 5; i+)printf( "%d ", arri);printf( " n");for (i = 0; i < 5-1; i+)for (j = 0; j < 5 - 1 - i; j+)if (arrj > arrj + 1) temp = arrj;arrj = arrj + 1;arrj + 1 = temp;pri ntf("冒泡排序后:n");for (i =0; i < 5; i+)p
4、ri ntf("%d " , arri);printf( "n");二维数组的遍历#include <stdio.h>void main()/声明并初始化数组int array34 = 1,2,3,4,5,6,7,8,9,10,11,12 ;for ( int i = 0; i < 3; i+)/ 循环遍历行for ( int j = 0; j < 4; j+)/ 循环遍历列printf( "n" ); /每一行的末尾添加换行符二维数组应用#i nclude <stdio.h>void main(
5、int argc, char * argv ) int StuScore53 = /张同学88,70,90,/王同学80,80,60,/李同学89,60,85,/赵同学80,75,78,/周同学70,80,80,;int m = 0, n = 0;int nStuTotalScore;int nMathTotalScore = 0;int nChineseTotalScore = 0; int nEnglishTotalScore = 0; printf("个人总成绩:n");for (m = 0; m < 5; m+)n StuTotalScore = 0;for
6、(n = 0; n < 3; n+)n StuTotalScore += StuScorem n;switch (n)case 1: n Chi neseTotalScore += StuScorem1; break;case 2:nEn glishTotalScore += StuScorem2;switch (m)case 0:printf("张同学:dn", nStuTotalScore); break;case 1:pri ntf("王同学:%dn", n StuTotalScore); break;case 2:pri ntf("
7、;李同学:%dn", n StuTotalScore); break;case 3:pri ntf("赵同学:%dn", n StuTotalScore); break;case 4:pri ntf("周同学:%dn", n StuTotalScore); break;pri ntf("小组数学总分:%d小组数学平均分:%.2fn",nM athTotalScore,(double )nMathTotalScore / 5);pri ntf("小组语文总分:%d小组语文平均分:%.2fn",nChines
8、eTotalScore, (double )nChineseTotalScore / 5);printf("小组英语总分:d小组英语平均分:%.2fn"nEn glishTotalScore, (double) nEn glishTotalScore / 5);'无参函数#i nclude <stdio.h>void func()pri ntf("这是我的第一个函数!n ”);void main()fun c();有参函数调用无参函数#i nclude <stdio.h>void func( int x, int y)int sum
9、 = x + y;printf( "x+y=%dn", sum);void main()fun c(3, 5);函数调用及返回过程#include <stdio.h>int func( int x, int y)return x + y;void main()int sum = func(3, 5);printf( "x+y=%dn", sum);Printf 函数#include <stdio.h>void main()printf( "%c %c", 'H' , 'n');p
10、ri ntf("%s", "Hellow,world!n" );pri ntf("%d %d %d n" ,1,2, 3);pri ntf("%f %f %f n",2.1, 2.2);Scanf函数#include <stdio.h>void main()char str256;/字符数组保存得到的字符串scanf( "%s", str);printf( "%sn" , str);嵌套函数#include <stdio.h>int max2( int
11、 a, int b)/用于比较两个整数大小的函数if ( a > b)return a;elsereturn b;int max4( int a, int b, int c, int d) /用于比较四个整数大小的函数 int res;res = max2( a,b);res = max2(res,c);res = max2(res,d);return res;void main()int a = 5, b = 7, c = 9, d = 22, max;printf("请输入四个整数:5 7 9 22 n");/seanf("%d %d %d %d&quo
12、t;, a=5, b=7, c=9, d=22);max = max4(a, b, e, d);printf( "max=%d n", max);递归调用#include <stdio.h>/下面的函数使用递归实现,求1n的和int getsum( int n)if ( n = 1)return 1;/满足条件,递归结束int temp = getsum( n - 1);/在函数体中调用自身return temp + n;void main()int sum = getsum(4); /调用递归函数,获得 14的和 printf( "sum=%dn&q
13、uot;, sum); / 打印结果外部函数 建立源文件first.cint add( int x, int y)return x + y;建立源文件sec on d.c#include <stdio.h>extern int add( int x, int y);void main()printf( "%dn", add(1,2); _/注:extern可以省略内部函数用法建立 first.c#inelude <stdio.h> void show()printf( "%sn" , "first.c" );建
14、立 sec on d.c#in clude<stdio.h>staticvoid show()printf( "%sn" , "second.c"); void main()show();全局变量#include <stdio.h>int x = 123;void show() |printf( "show()函数中,x 的值为:%dn", x);|void main()show();printf( "main()函数中,x 的值为:%dn",x);当局部变量与全局变量重名时,全局变量会被屏
15、蔽#include <stdio.h>变量的作用域#inelude <stdio.h>int x = 10; void show() 1int x = 20;printf( "show()函数中,x 的值为:%dn", x); |void main()int x = 30;pri ntf("main()函数中,x的值为%dn", x);show(); 1If语句#include <stdio.h>void main()/定义变量xint x = 5;/如果x的值小于10则执行if大括号中的代码if (x < 10
16、)x+;printf( "x=%dn", x); lf.else 语句#include <stdio.h>void main()int num = 19;if (num % 2 = 0)/判断条件成立,num被2整除 printf( "num是一个偶数 n");elseprintf("num是一个奇数 n");lf.else if.else语句#include <stdio.h>void main()irit grade = 75;/定义学生成绩if(grade >= 80)/满足条件grsde >
17、= 80printf("该成绩的等级为优n");else if (grade >= 70)/不满足条件grade >=80,但满足条件grade>=70 printf("该成绩等级为良n");else if (grade >= 60)/不满足条件grade >=70,但满足条件grade >=60 printf("该成绩等级为中n");else/不满足条件grade >=60 printf("该成绩的等级为差n");三元运算符#include <stdio.h>
18、void main()int x = 0;int y = 1;int max;max = x > y ? x : y; printf( "max = %dn");Switch语句#include <stdio.h>void main()int week = 5;switch (week)case 1:printf("星期一 n");break;case 2:printf("星期二 n"); break;case 3:printf("星期三 n"); break;case 4:printf(&quo
19、t;星期四 n"); break;case 5:printf("星期五 n"); break;case 6:printf("星期六 n"); break;case 7:printf("星期日 n");break;default :printf("输入的数字不正确.n");break;则该执行语句只需书写一一在使用switch语句过程中,如果多个case条件后面的执行语句是一样的, 次即可#include <stdio.h>void main()int week = 2;switch (week
20、)case 1:/当week满足值1、2、3、4、5中任意一个时,处理方式相同 printf("今天是工作日n");break;case 6:case 7:/当week满足值6、7中任意一个时,处理方式相同 printf("今天是休息日n");break;While循环语句#include <stdio.h> void main()int x = 1; while (x <= 4)printf( "x = %dn" , x); / 条件成立,打印x的值x+;/x进行自增Do-while循环语句#include <
21、;stdio.h>void main()int x = 1;/定义变量x,初始值为1doprintf("x=%dn", x); /条件成立,打印x的值x+;x进行自增 while (x <= 4);/ 循环条件For循环#inelude <stdio.h> void main()int x = 1;/定义变量x,初始值为1doprintf("x=%dn", x); /条件成立,打印x的值x+;/x进行自增 while (x <= 4);/循环条件Break语句#include <stdio.h>void main
22、()int x = 1;/定义变量x,初始值为1while (x <= 4)/ 循环条件 |x+;/x进行自增printf( "x=%dn", x);if(x = 3)break;Goto语句#include <stdio.h>int main()int i, j;/定义两个循环变量for(i = 1; i <= 9; i+)/夕卜层循环for (j = 1; j <= i; j+)/内层循环if (i >4)/判断i的值是否大于4goto end;/跳至标志位end的语句/输出*prmtf( "*");printf(
23、 "n" );/ 换行end: return 0;Continue 语句#include <stdio.h>void main()int sum = 0;/定义变量sum,用于记住和for ( int i = 1; i <= 100; i+)if (i % 2 = 0)/如果i是一个偶数,执行if语句中的代码sum += i;/实现sum和i的累加printf( "sum = %dn" , sum);无符号整数类型#include <stdio.h>void main()int a = 12345;long b = -234
24、56, suml;unsigned int c = 32800, sum2;suml = b - a;sum2 = c - b;printf( "sum1=%1d,sum2=%un; suml, sum2);Float和double之间的数据转换#include <stdio.h>void main()float a;a = 3.141592612;printf( "a=%.9fn" , a);字符型变量#include <stdio.h>void main()char chi = 'A ;char ch2 = 65;printf(
25、 "%cn" , ch1); printf( "%cn" , ch2);#include <stdio.h>void main()转义符的用法charch1='A'charch2='n'charch3='B'charch4=''printf( "%c", ch1);printf( "%c", ch2);printf( "%c", ch3);printf( "%c", ch4); printf( &qu
26、ot;%c", ch2);枚举类型变量#include <stdio.h>enummonth JAN=1, FEB=2, MAR3, APf=4, MAY=5,JUN=6, JUL=7, AUG8, SEP=9, OCT10,NOVM1,DE(=12;void main()enum month lastm on th, thism on th, n extm on th;lastmo nth = APRthismo nth = MAYn extm onth = JUNpr intf( "%d %d %d n" , lastm on th, thism
27、on th, n extm on th); 在枚举中规定,如果不给标识符指定具体值,会默认该标识符的值等于前一标识符的值加一。因此可以快速定义#include <stdio.h>/定义一组常量enum Constants cl, c2, c3 = 4,c4, c5 = 3,c6, c7, c8 = 'O' , c9 ;void main()printf( "c9=%dn", c9);Sizeof运算符#i nclude <stdio.h>void mai n()/通过类型名称计算各基本数据类型所占内存大小pr in tf("
28、char: %dn", sizeof(char);pri ntf("short: %dn", sizeof(short);pr in tf("l ong: %dn", sizeof(l on g);prin tf("float: %dn", sizeof(float);SB C:Vi*ind owssystem 32cmd. exec har:1: 2 long: 4 float:4double* S unsigned char: 1 unsigned short: 2 iins ign ed int *4unsigned
29、longr:4ual_int:4u al_doiu.blis« B 请按任意键继续printf("double: %dn", sizeof(double);pri ntf("u nsig ned char: %dn", sizeof(u nsig ned char); pr in tf("u nsig ned short: %dn", sizeof(u nsig ned short); pr in tf("u nsig ned int: %dn", sizeof(u nsig ned in t);pr i
30、n tf("u nsig ned long: %dn", sizeof(u nsig ned lon g);/通过变量名称计算变量所属数据类型占用内存大小 in t val i nt = 100;double val double = 100000.0;prin tf("val i nt:%dn", sizeof(val i nt);pri ntf("val_double: %dn", sizeof(val_double); _ _指针的取址和取值运算符#include <stdio.h>void main()int nu
31、m = 100;int 类型变量 numpri ntf("num=%dn", num);/ 输岀变量值pri ntf("#&num = %pn" , &num);/输出变量的内存地址pri ntf("*&num = %dn" , *&num);/通过num地址读取num中的数据指针表达式的自增自减运算#inelude <stdio.h> void main()int arr5 = 1,2,3,4,5 ;int *p1 = &arr0;int *p2 = &arr3;print
32、f( "p1 的值为:%dn" , *p1);printf( "+p1 的值为:%dn" , *(+p1);printf( "p2 的值为:%dn" , *p2);printf( "-p2 的值为:%dn" , *(-p2); 1同类指针相减运算#inelude <stdio.h>void main()int arr5 = 1,2,3,4,5 ;int *p1 = &arr0;int *p2 = &arr3;printf( "p1 的值为:%dn" , p1);pri
33、ntf( "p2 的值为:%dn" , p2);printf( "p1-p2 的值为:%dn" , p2 p1);指针变量的使用#inelude <stdio.h>void main( int arge , char * argv )int nNum = 0x12345678;int * pNum;/定义一个指针变量pNum = &n Num;/为指针变量赋值printf( "nNum Val:%xn" , nNum);printf( "nNum Addr:%pn" , &nNum);p
34、rintf( "pNum Val:%pn" , pNum);printf( "*pNum :%xn" , *pNum);指针变量作为函数的参数(作用是将一个变量的地址传送到另一个函数中)#include <stdio.h>void main( int arge , char * argv )int nNum = 0x12345678;int * pNum; /定义一个指针变量 pNum = &nNum; /为指针变量赋值 printf( "nNum Val:%xn" , nNum); printf( "n
35、Num Addr:%pn" , &nNum); printf( "pNum Val:%pn" , pNum); printf( "*pNum :%xn" , *pNum);指向一维数组元素的指针#include <stdlib.h>#include <stdio.h>void main( int argc , char * argv )int X10 = 1,2,3,4,5,6,7,8,9,10 ;int i = 0;int nLen = 10;printf("数组X修改前:n");for (
36、i = 0; i < 10; i+)printf( "%d ", Xi);/用指针pTemp指向数组Xint * pTemp = X;/通过指针pTemp访问数组中的元素,并修改元素的值for (i = 0; i < nLen; i+)pTempi = pTempi * 2;printf( "n数组X修改之后:n”);/通过指针移动来遍历输出X数组中的元素for (i = 0; i < 10; i+)printf( "%d ", *pTemp);pTemp+;printf( "n");指向二维数组元素的指针
37、#include <stdlib.h>#inelude <stdio.h> void main()int X25 = 1,2,3,4,5 , 6,7,8,9,10 ;/定义数组指针用于指向二维数组int (*pXEIement)5 = X;int m = 0;int n = 0;printf("二维数组元素如下:n");for (m=0; m < 2; m+)printf("第4行的元素如下:n" , m + 1);for (n = 0; n < 5; n+) /通过数组指针来访问为数组中的元素 printf( &qu
38、ot; %d", pXEIeme ntm n);printf( "n");指针数组的概念#i nclude <stdio.h>/输出指针数组中元素的值int print( int * arr ,int n) Jint i = 0;for (i = 0; i< n; i+)printf( "%dn" , * arr i);return 1;void main( int argc , char * argv ) int a, b, c, d, e;a = 1;b = 2;c = 3;d = 4;e = 5;int *Arr = &
39、amp;a, &b, &c, &d, &e ;/ 定义一个 int 类型的指针数组print(Arr, 5);/ 调岀 print ()函数指针数组作为main ()函数的形参#in elude <stdlib.h>#in elude <stdio.h>int main( int argc , char * argv )int i = 0;pri ntf("程序的参数列表如下:n “);for (i = 0; i <argc ; i+)printf( "%s “,argv i);return 0;二级指针#in
40、elude <stdlib.h>#i nclude <stdio.h>void main( int argc , char * argv )int m=10;int * |pM = &m;/指针pM存放的是变量m的地址int *ppM = &pM;/二级指针ppM存放的是指针pM的地址pri ntf("m = %dn",m);pri ntf("*pM = %dn",*pM);pri ntf("*pM = %dn",*ppM);Malloc()函数和free ()函数#i nclude <s
41、tdio.h>void main()int u, v;/定义二维数组的长和宽printf("第一维为:");scanf( "%d", &u);printf("第二维为:");scanf( "%d", &v);int * array = ( int *)malloc( sizeof (int *)* u);/ 先创建第一维for (int i = 0; i < u; i+)/在内层循环中动态创建第二维arrayi = (int *)malloc(sizeof (int )*v);for (
42、int j = 0; j<v; j+)arrayij = 0;/给数组元素复制printf( "%d “,arrayij);字符数组#in clude <stdio.h>void main()/声明一个字符数组并初始化char char_array5 = 'h' , 'e' , 'l''l' , 'o' ;int i;/通过sizeof关键字得到数组长度,并遍历打印其内容。for (i = 0; i <sizeof (char_array); +i)printf("%c&
43、quot; , char_arrayi);printf( "n");输出字符串中的字符#i nclude <stdio.h>void main()hellochar char array6 = ( "hello" ); /声明一个长度为6的字符数组并初始化为int i;/通过sizeof关键字得到数组长度fc)r (i = 0; i <sizeof(char_array); +i)F/ 通过 printf输岀char array中的字符串printf( "char_.array的第 %dn", i, char_arr
44、ayi);获取用户输入字符的长度#defi ne _CRT_SECURE_NO_WARNINGS闭安全检查#include <stdio.h>#include <string.h>void main()char str1024;/声明一个足够大的字符型数组保存将要被输入的字符串printf("请输入待测量的字符串:");scanf( "%s", str); /接受用户输入字符串 printf("您输入的字符串长度为 d。n" , strlen(str);空字符 0 '的使用#include <st
45、dio.h>void main()char char_array = 'h' , 'e' , T , T , 'o' , '0' , 'w','o' , 'r' , 'l' , 'd' ;printf "%sn", char_array ;忘记在字符数组的末尾添加空字符0 '程序也会出现一些奇怪的现象#include <stdio.h>void main()char char_array = 'h&
46、#39; , 'e' , T , T , 'o' ;printf"%sn", char_array ;使用指针修改字符串中的字符#include <stdio.h>int main()char char_array = "hello world!" ;char *ptr;printf("修改前的字符串如下:%sn", char_array);ptr = char_array; /将一个字符型指针指向字符型数组 char_array 的首地址/开始修改字符串while (*ptr !='
47、;0' )/检测是否到串未尾if (*ptr ='')*ptr ='!'ptr+;printf("修改后的字符串如下:s n" , char_array);return 0;Gets ()函数#pragma warning( disable :4996) #inelude <stdio.h> void main()char pho neNumber12;printf("请输入手机号码:");gets(ph on eNumber);printf("您的手机号码是:sn" , phone
48、Number);Puts ()#pragma warning( disable :4996) #inelude <stdio.h>void main()char buf12;puts("请输入一个字符串:");gets(buf);puts("您输入的是:n");puts(buf);字符串比较#pragma warning( disable :4996)#include <stdio.h>#include <string.h>void main()char username100;/定义存放用户名的字符数组char pa
49、ssword100;/定义存放密码的字符数组printf("登录n");printf("请输入用户名:");gets(username);/获取用户输入的用户名printf("请输入密码:");gets(password);/获取用户输入的密码/比较输入的用户名和密码是否正确if (!strcmp(password, "ILoveC" ) && (!strcmp(username, "user")printf("用户 %s 登录成功! n" , user na
50、me);elsen");printf("登陆失败,请检查用户名或密码是否正确输入。Strncmp ()函数#include <string.h>#include <stdio.h>voidmai n()char * str1 ="abcdef"char * str2 ="abcdeg"/判断字符串str1和str2中的前5个字符是否相同if (!strncmp(str1, str2, 5)printf( "str1 和str2 的前5个字符相同”);elseprintf( "str1和str
51、2的前5个字符不同”);Strchr ()函数#include <stdio.h>#inelude <string.h>int getcount( char * str , char c)/存储找到的字符个数int count = 0;/存储当前字符指针在字符串中的位置char * ptr = str ;/获取第一次出现字符变量c值的指针位置while (ptr = strchr(ptr,c) != NULL+ptr;+cou nt;return count;void main()char str6 ="abaca"char c ='a
52、9;int num = getcount(str, c);printf("字符c在字符串中岀现了 d次。n" , c, num);Strstr ()函数#pragma warning( disable :4996)#include <stdio.h>#include <string.h>void main()char str10240;/声明字符串数组,用于保存段落char word10240;/声明字符串数组,用于保存要查找的字符串char * ptr;printf("请输入要扫描的段落:");gets(str);printf(
53、"请输入要查找的单词:“);gets(word);ptr = strstr(str, word);/搜索是否包含指定的字符串if (ptr = NULLprintf("段落中不包含单词 s。n" , word); else/得到检测岀的字符串后20个字符if (strlen(ptr) >= 20)printf("单词岀现在%s附近。n“,ptr);Strcat ()函数#pragma warning( disable :4996)#include <stdio.h>#include <string.h>void main()
54、/区号char areaNumber5;/电话号码char pho neNumber12;int in put;/分机号char extraNumber5;/用来存储连接后的结果,需要初始化为0!char buffer25 = 0 ;printf("请输入区号:");gets(areaNumber);printf("请输入电话号码:");gets(ph on eNumber);printf("有分机号吗? ( y/n)");in put = getchar();/由于getchar ()只读入一个字符,因此需要调用fflush来清除输
55、入缓冲区的换行符fflush( stdin );if (input ='y')printf("请输入分机号:“);gets(extraNumber);strcat(buffer, areaNumber);strcat(buffer,"-");strcat(buffer, pho neNumber);strcat(buffer,"-");strcat(buffer, extraNumber);elsestrcat(buffer, areaNumber);strcat(buffer, "-");strcat(bu
56、ffer, pho neNumber);printf("您的电话号码是 s。n"buffer);Str neat ()函数#pragma warning( disable :4996)#include <stdio.h>#include <string.h>void main()char buf130;/声明字符串数组,用于保存字符串 bufl.char buf230;/声明字符串数组,用于保存字符串 buf2.printf("请输入第一个字符串:“);gets(bufl);printf("请输入第二个字符串:“);gets(bu
57、f2);/ 使用 strncait()函数来对字符串进行拼接strncat(buf1, buf2,sizeof (buf1)-1 - strlen(buf1);printf("连接后的字符串是 s。n" , bufl);Atoi ()函数#pragma warning( disable :4996)#include <stdio.h>#include <stdlib.h>void main()char buf20;int result;printf("请输入待转换的十进制数:");gets(buf);result = atoi(buf);printf("转换结果是 d. n" , result);使用函数itoa ()将整数转换字符串#pragma warning( disable :4996)#include <stdio.h>#include <stdlib.h>/用于保存八进制的转换结果char number_820;/用于保存十进制的转换结果char numb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年厂房出租安全风险评估与报告协议4篇
- 个人信用贷款协议范本(2024年版)版B版
- 论文写作全攻略
- 2025年度国际贸易代理风险控制合同范本4篇
- 2025年度高端装备制造厂区租赁合同协议4篇
- 2025年度医疗设施场地租赁合同范本6篇
- 2025年度常年法律顾问服务合同企业劳动争议解决报价4篇
- 专项经济分析与信息咨询服务协议版B版
- 2024经济中介服务合同格式
- 2025年度环保设备销售与环保技术服务合同4篇
- 增强现实技术在艺术教育中的应用
- TD/T 1060-2021 自然资源分等定级通则(正式版)
- 《创伤失血性休克中国急诊专家共识(2023)》解读
- 仓库智能化建设方案
- 海外市场开拓计划
- 2024年度国家社会科学基金项目课题指南
- 供应链组织架构与职能设置
- 幼儿数学益智图形连线题100题(含完整答案)
- 七上-动点、动角问题12道好题-解析
- 2024年九省联考新高考 数学试卷(含答案解析)
- 红色历史研学旅行课程设计
评论
0/150
提交评论