首页 C语言程序设计基础知识要点

C语言程序设计基础知识要点

举报
开通vip

C语言程序设计基础知识要点...01.C程序基本结构(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=01​)一、C语言的特点:1、C语言源程序的基本组成单位是函数;一个C程序可由若干个函数组成,其中必须有且仅有一个以main命名的主函数,其余的函数名称可由编程者自行设定。,2、C程序的执行总是由main()函数的第一个可执行语句开始,到main()函数的最后一个可执行的语句结束;而其他函数都是在main()函数开始执行以后,通过其他函数的调用才得以运行。3、C语言系统提供...

C语言程序设计基础知识要点
...01.C程序基本结构(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=01​)一、C语言的特点:1、C语言源程序的基本组成单位是函数;一个C程序可由若干个函数组成,其中必须有且仅有一个以main命名的主函数,其余的函数名称可由编程者自行设定。,2、C程序的执行总是由main()函数的第一个可执行语句开始,到main()函数的最后一个可执行的语句结束;而其他函数都是在main()函数开始执行以后,通过其他函数的调用才得以运行。3、C语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include编译预处理命令将描述该库函数的头文件包含进去。二、C程序的 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 :1、语句可从分开放在任意多行内;如:printf(“ToC,”);printf(“ornottoC:”);与printf(“ToC,ornottoC:”);是等价的2、一行中可以有若干个语句;如:a=123;b=345;3、每个语句和数据定义的最后必须有一个分号;三、C语言程序的运行:1、编译(Compile):将C源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。2、建造(Bulid):C语言程序示例:显示“Hello”#includeintmain(void){printf(“Hello.\n”);return0;}说明:#include是必不可少的,它包含了C语言 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 输入输出库的相关信息;printf函数来自”标准输入输出库”,可以产生格式化输出;\n告诉printf函数执行完信息显示后要进行换行操作;return0 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 明程序终止时会向操作系统返回值0;{}来标出main()函数的起始和结束。02.数据类型(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=02​)一、C语言的特点:1、C语言源程序的基本组成单位是函数;一个C程序可由若干个函数组成,其中必须有且仅有一个以main命名的主函数,其余的函数名称可由编程者自行设定。2、C程序的执行总是由main()函数的第一个可执行语句开始,到main()函数的最后一个可执行的语句结束;而其他函数都是在main()函数开始执行以后,通过其他函数的调用才得以运行。3、C语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include编译预处理命令将描述该库函数的头文件包含进去。二、C程序的书写格式:1、语句可从分开放在任意多行内;如:printf(“ToC,”);printf(“ornottoC:”);与printf(“ToC,ornottoC:”);是等价的2、一行中可以有若干个语句;如:a=123;b=345;3、每个语句和数据定义的最后必须有一个分号;三、C语言程序的运行:1、编译(Compile):将C源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。2、建造(Bulid):C语言程序示例:显示“Hello”#includeintmain(void){printf(“Hello.\n”);return0;}说明:#include是必不可少的,它包含了C语言标准输入输出库的相关信息;printf函数来自”标准输入输出库”,可以产生格式化输出;\n告诉printf函数执行完信息显示后要进行换行操作;return0表明程序终止时会向操作系统返回值0;{}来标出main()函数的起始和结束。03,运算符和表达式(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=03​)1、算术运算符和表达式+:加法运算符,如3+5;-:减法运算符,如5-3;*:乘法运算符,如5*8;/:除法运算符,如3/6;参与运算量均为整型时,结果也为整型,舍去小数;若运算量中有一个是实型,则结果为双精度实型。%:模运算符,也称“取余运算符”,用于计算两数相除后的余数,如5%3=2;2、赋值运算符和赋值表达式赋值运算符:”=”,其作用是将一个表达式的值赋给一个变量;其一般形式为:变量=表达式如:x=a+b;赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。因此a=b=c=5可理解为a=(b=(c=5));复合赋值运算符:+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=构成复合赋值表达式的一般形式为:变量双目运算符=表达式它等价于:变量=变量运算符表达式如:a+=5等价于a=a+5x*=y+7等价于x=x*(y+7)r%=p等价于r=r%p3、类型转换如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型换成左边的类型。具体 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 如下:1)实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。4、自增、自减运算符:自增运算符:“++”,功能是将变量的值加1;自减运算符:“--”,功能是将变量的值减1;可有以下几种形式:++ii自增1后再参与其它运算。--ii自减1后再参与其它运算。i++i参与运算后,i的值再自增1。i--i参与运算后,i的值再自减1。注:(1)”++”、”--“的操作对象只能是变量;(2)”++”、”--“运算优先级相同,且结合方向自右向左;-i++应理解为-(i++),【例】自增、自减运算、#includemain(){inti=8;printf("%d\n",++i);/*i先加1,再输出i,输出结果为9*/printf("%d\n",--i);/*i先减1,再输出i,结果为8*/printf("%d\n",i++);/*先输出i,输出结果为8,i再加1,*/printf("%d\n",i--);/*先输出i,输出结果为9,i再减1,*/printf("%d\n",-i++);/*先加输出-i,输出结果为-8,i再加1*/printf("%d\n",-i--);/*先输出-i,输出结果为-9,i再减1*/}5、求字节运算符计算表达式的结果所占字节数或某种数据类型的定义字节数。一般格式:sizeof(数据类型标识符)或sizeof(表达式)如:sizeof(float)的值为4,占4个字节;sizeof(2*3)的值为2,占2个字节;6、关系运算符和关系表达式关系运算符:“<”(小于)、“<=”(小于等于)、”>”(大于)、”>=”(大于等于)、”==”(等于)、“!=”(不等于)关系表达式:若关系表达式成立,其值为“真”,否则为“假”;在C语言中,用0代表“假”,用1代表“真”;7、逻辑运算符和逻辑表达式:逻辑运算符:“!”(非)、“&&”(与)、“||”(或);运算优先级:!>&&>||逻辑表达式:用逻辑运算符将表达式连接起来的式子;逻辑表达式的结果仍然是逻辑量(“真”或“假”)8、条件运算符:一般格式:<表达式1>?<表达式2>:<表达式3>先计算表达式1,若表达式1的值为真,则计算表达式2的值,且表达式2的值为整个条件表达式的值;否则,计算表达式3的值,且表达式3的值即为整个条件表达式的值。9、逗号运算符和逗号表达式逗号运算符:”,”作为运算符,其功能是将多个表达式组成一个表达式;一般形式:表达式1,表达式2,…,表达式n求解过程:先计算表达式1,再计算表达式2,依此计算表达式n,最终,表达式n的值即为整个表达式的值。04.顺序结构(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=04​)一、概述:顺序语句按照语法形式分为:表达式语句、函数调用语句、复合语句、流程控制语句和空语句。1、表达式语句:语法格式:表达式;如:a+4;其中赋值语句为最典型的表达式语句,如:a=5;a=b+3;特别提示:分号(;)是表达式语句中不可缺少的一部分。2、函数调用语句:如:printf(”Iamastudent!”);其中:printf()为系统提供的函数,用于显示信息。3、复合语句:所谓“复合语句”即由一对“{}”括起来的一组语句,也称“块语句”或“分程序”。一般形式为:{语句1语句2...语句n}如:{i++;j=a+3;printf("%d,j=",i,j);}特别提示:复合语句中的最后一条语句的分号不得缺少;复合语句的“}”之后不得有分号。4、空语句:“空语句”即为一个独立的分号。如:main(){...;...}二、数据的输入输出C语言提供了一些输入输出函数,如printf()和scanf(),在程序中调用这些输入输出函数时,必须将标准输入输出头文件“stdio.h”包含到用户所编写的源程序中。如:#include其中:#include命令一般写在程序的开头位置。1、格式输入输出1、格式输出函数printf()(1)一般格式:printf(格式字符串,输出列表)其中:“格式字符串”包括“输出字符”和“格式控制字符”(由%和格式字符组成,指定输出项的输出格式)。•d格式符:用于输出十进制整数;%d:以十进制形式显示输出变量的值;%5d:以十进制形式显示变量的值,且至少占用5个字符的空间,若不够5位数字,则左侧补空格;%-5d:以十进制形式显示变量的值,且至少占用5个字符的空间,左对齐;%5.3d:以十进制形式显示变量的值,且至少占用5个字符的空间并至少有3位数字,若不够3位数字,则左侧补0;如:#includemain(){inti;i=40;printf(“%d\n”,i);printf(“%5d\n”,i);printf(“%-5d\n”,i);printf(“%5.3d\n”,i);}•f格式符:用于以小数形式输出实数;%10.3f:以定点十进制形式显示变量的值,且总共用10个字符,其中,整数位6位,小数位3位,小数点1位;如:#includemain(){floatx;x=839.21f;printf(“%10.3f\n”,x);}•c格式符:用于输出一个字符;如:x=”a”,y=”b”,则printf(%c%c",x,y)的输出结果为:ab若变量的值为整数,则输出该整数值为ASCII码的字符:如x=65,y=98,则printf(“%c,%c”,x,y)的输出结果为:A,b;同理,一个字符的数据也可以以整数的形式输出;如x=’a’,y=’B’,则printf(“%d,%d”,x,y)的输出结果为:97,66•s格式符:用于输出一个字符串。如:printf(“%s”,”Iamastudent!”)•e,E格式符:用于以指数形式输出实数。如:printf(“%e”,123.456),则输出结果为:1.234560e+002;•g,G格式符:用于输出实数,根据数值的大小自动选择f格式或e格式。2、格式输入函数scanf()(1)一般格式:scanf(格式字符串,变量地址表)其中:格式字符串使用双引号括起来的字符串,包括“普通字符”(按原样输入)、“格式控制字符”(由%和格式字符组成,用来标定输入数据的格式)。变量地址表是由若干个变量地址组成的表列,可以是变量的地址,也可以使字符串的首地址。•d格式:用于输入十进制整数;如:scanf(“%d,%d”,&x,&y);则输入格式为:123,3456•u格式:用于输入十进制无符号整数;•f格式:用于输入以小数形式的实数;如:scanf(“%f,%f”,&x,&y);则输入格式为:123.23,23.456•c格式:用于输入一个字符;如:scanf(“%c,%c”,&x,&y);则输入格式为:a,b•s格式:用于输入一个字符串;如:scanf(“%s”,a);假定a为字符数组,则输入格式为:abcdef注:输入的字符串中间不能包含空格。特别说明:•对于变量,”&”加变量名即为该变量的地址;如:&a、&b等分别表示变量a和变量b的地址;•对于字符串数组或字符指针型变量,数组名和指针变量名本身即为其地址;•可以在%和格式字符之间加表示位数的数字;如:scanf(“%5s”,p);表示只能输入5个字符给字符串指针p;3、字符数据的输入输出:(1)putchar()函数:是向标准输入输出设备输出一个字符;其调用格式为:putchar(ch);其中:ch为一个字符变量或常量;putchar()函数作用等同于printf(“%c”,ch);(2)getch()getche()和getchar()函数:•getch():从键盘上读入一个字符,但不显示在屏幕上;•getche():从键盘上读入一个字符,显示在屏幕上;•getchar():从键盘上读入一个字符,并显示在屏幕上,但直到输入回车键时才结束输入,第一个字符为其函数的返回值。05.选择结构(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=05​)一、if语句:一般格式:if(表达式)语句;表示:当“表达式”成立时,则执行“语句”;否则跳过“语句”;如:if(a>b)printf(“a>b!”);例:若用户输入的数为3的倍数,则显示”OK”#includemain(){inta;scanf(“%d”,&a);if(a%3==0)printf(“OK”);}二、if-else语句:一般格式:if(表达式)语句1;else语句2;例:给出用户输入的两个整数的较大者#includemain(){inta,b;scanf(“%d,%d”,&a,&b);if(a>b)printf(“themax=%d”,a);elseprintf(“themax=%d”,b);}三、if语句的嵌套1、if子句中嵌套:•if(表达式1)if(表达式2)语句1;else语句2;else语句3;•if(表达式1){if(表达式2)语句1;}else语句2;2、else子句中嵌套•if(表达式1)语句1;elseif(表达式2)语句2;else语句3;•if(表达式1)语句1;elseif(表达式2)语句2;3、嵌套一般格式:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;…elseif(表达式n)语句n;else语句n+1;例:将用户输入的成绩按以下规则转换成等级成绩:分数:90~100等级:优分数:80~89等级:良分数:70~79等级:中分数:60~69等级:及格分数:60以下等级:不及格#includemain(){intd;printf(“输入分数:”);scanf(“%d”,&d);if(d>=90)printf(“优”);elseif(d>=80)printf(“良”);elseif(d>=70)printf(“中”);elseif(d>=60)printf(“及格”);elseprintf(“不及格”);}四、条件语句:表达式1?表达式2:表达式3执行的过程:若表达式1的值为非0时,该条件语句的职位表达式2,否则为表达式3;例:求一个整数的绝对值#includemain(){inti,absi;scanf(“%d”,&i);absi=i>0?i:-i;printf(“%d绝对值是%d\n”,i,absi);}五、switch语句switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;…case常量表达式n:语句n;break;default:语句n+1;}例:商店卖货物,每一件3.5元,按购买的数量给与优惠:购买100件,优惠5%;购买200件以上,优惠6%;购买300件以上,优惠8%;购买400件以上,优惠10%;购买500件以上,优惠15%;#includemain(){intn;floatp,price;scanf("%d",&n);switch(n/100){case1:p=0.05;break;case2:p=0.06;break;case3:p=0.08;break;case4:p=0.10;break;case5:p=0.15;break;}price=3.5*n*(1-p);printf("%应付款=%7.2f\n",price);}06.循环结构(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=06​)一、for语句:一般格式:for(表达式1;表达式2;表达式3)语句;表示:先计算表达式1的值,再计算表达式2的值,若表达式2的值为0,则跳出循环体,转去执行循环体后面的程序命令;若表达式2的值非0,则执行循环体中的语句,接着计算表达式3的值;而后,再从计算表达式2的值开始重复上诉操作,直到表达式2的值为0时结束。例:计算sum=1+2+3+…+100的值”#includemain(){inti,sum;sum=0;for(i=1;i<=100;i++)sum=sum+i;printf(“sum=%d”,sum);}二、while语句:一般格式:while<表达式>语句;表示:先计算表达式的值,若为非0,则执行循环体语句,然后再计算表达式的值,重复上述过程,直到计算表达式的值为0时结束循环。例:计算sum=1+2+3…+100的值#includemain(){inti,sum;i=1;sum=0;while(i<=100){sum=sum+i;i++;}printf(“sum=%d”,sum);}三、do-while语句1、一般格式:Do语句;While<表达式>;表示:先执行一次循环语句,然后计算表达式的值,若表达式的值非0,则再执行循环语句,然后从计算表达式的值开始重复上述过程,直到计算表达式的值为0,循环结束。例:计算sum=1+2+3…+100的值#includemain(){inti,sum;i=1;sum=0;do{sum=sum+i;i++;}while(i<=100);printf(“sum=%d”,sum);}四、break和continue语句:1、break语句:使用break语句可以提前结束由while、for、do-while语句构成的循环,而去执行循环下面的语句。例:判定用户输入的一个数是否为素数#includemain(){inta,d;printf(“请输入一个整数:”);scanf(“%d”,&a);for(d=2;dmain(){inti,n=0,sum=0;while(n<10){printf(“请输入整数:”);scanf(“%d”,&i);if(i==0)continue;//若为0,则继续输入下一个数sum+=i;n++;}printf(“%d”,sum);}五、三种循环的比较:1、三种循环可以处理同一个问题,一般情况下可以相互代替;2、while和do-while循环语句只在while语句之后指定循环条件,在循环体内应包含使循环趋于结束的语句;for循环语句可以在<语句3>中包含使循环趋于结束的语句;3、对于while和do-while循环语句,循环变量的初始化应在while和do-while语句之前完成;for循环语句可以在<表达式1>中进行;4、while和for语句是先判断表达式,后执行循环;do-while循环语句是先执行循环,后判断表达式;07数组(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=07​)数组是一组具有同一名字、不同下标的变量。数组中带下标的变量称为数组元素,每个数组元素由数组名字和下标唯一地来确定;同一数组中的元素数据类型相同。一、一维数组:1、定义:只有一个下标的数组。2、定义格式:类型说明符数组名[常量表达式]如:inta[3];//定义了一个一维数组,名称为a,数据类型为整型,含3个数组元素a[0]、a[1]、a[2];说明:•类型说明符:是指数组的数据类型;•常量表达式:是一个值为正整数的表达式,用来表示该数组的元素的个数,即数组的大小;3、数组的引用:数组名[下标];如:a[2]4、数组的初始化:•对数组的全部因素赋初值:如:inta[3]={10,20,30};则该语句执行后,a[0]=10,a[1]=20,a[2]=30;•对数组的部分元素赋初值:如:intb[3]={12,11};则该语句执行后,b[0]=12,b[1]=11,a[2]=0;•对数组的全部元素赋初值时,也可将数组定义为一个不确定长度的数组:如:intc[]={10,15,20};则该语句执行后,数组c的长度自动确定为3,c[0]=10,c[1]=15,c[2]=20;例:将输入的10个整数按反序输出#includemain(){inta[10],i;printf("请输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("反序输出:");for(i=9;i>=0;i--)printf("%d",a[i]);printf("\n");}例:计算Fibonacci数列的前20项Fibonacci数列定义:f(1)=1f(2)=1f(n)=f(n-1)+f(n-2)(n>2)#includemain(){intf[21],i;f[1]=1;f[2]=1;for(i=3;i<=20;i++)f[i]=f[i-1]+f[i-2];for(i=1;i<=20;i++){printf("%8d",f[i]);//每个数字占8位if(i%5==0)printf("\n");//按5个一行输出}}二、二维数组:具有两个下标的数组为二维数组。1、定义格式:类型说明符数组名[常量表达式][常量表达式]如:inta[3][2];//定义了一个二维数组,名称数组名为a,含有6个元素:a[0][0]、a[0][1]、a[1][0]、a[1][1]、a[2][0]、a[2][1];说明:•第一个常量表达式指出的是数组的行数;第二个常量表达式指出的是数组的列数;•二维数组元素的顺序是:按行存放;即先顺序存放第一行的元素,再存放第二行的元素…以此类推;其存储格式:a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]2、二维数组的初始化:同一维数组。•分行为二维数组赋初值:inta[3][2]={{1,2},{3,4},{5,6}};则该语句执行后,a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6;•按数组在存储时的排列次序赋初值:inta[3][2]={1,2,3,4,5,6};•对数组的部分元素赋初值:inta[3][2]={{1},{2,3},{4}};•忽略第一维的长度,对二维数组赋初值:inta[][2]={1,2,3,4,5,6};该语句执行后,C语言系统自动计算出第一维的长度为6/2=3,同样有:a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4,a[2][0]=5,a[2][1]=6;例:将两个2行3列的矩阵相加,并显示结果。#includemain(){inta[2][3]={1,3,5,7,9,11};intb[2][3]={2,4,6,8,10,12};intc[2][3],sum=0,i,j;for(i=0;i<2;i++)//i表示第1行到第3行for(j=0;j<3;j++)//j表示第1列到第3列c[i][j]=a[i][j]+b[i][j];for(i=0;i<2;i++)for(j=0;j<3;j++){printf(“%5d”,c[i][j]);if((j+1)%3==0)printf(“\n”);}}08字符数组(​http:​/​​/​ptc.imust.cn​/​online_c​/​view_content.php?id=08​)字符数组是用来存放字符的数组,字符数组中的一个元素存放一个字符。1、字符数组的定义:chara[10];2、字符串:字符串是借助于字符数组来存放的,并规定以字符’\0’(占用存储空间,但不计入字符串的长度)为字符串的结束标记。3、字符串处理函数:•scanf(“%s”,a);//以格式符%s输入字符串,输入的字符串自动以’\0’结尾;输入的字符数组名前不加”&”前缀;•printf(“%s”,a);//以格式符%s输出字符串,输出的字符串以’\0’结尾;•gets(a);//a为字符数组名,输入的字符可以包含’\0’字符;•puts(a);//a为字符数组名,输入的字符可以包含’\0’字符;•strcat(字符串1,字符串2);//把字符串2连接到字符串1后;•strcpy(字符数组1,字符串2);//把字符串2拷贝到字符数组1中;如:str为字符数组,将字符常量赋予str:strcpy(str,"abcdef");•strcmp(字符串1,字符串2);//比较两个字符串,若相等,则返回0,若字符串1>字符串2,则返回1,否则返回-1;如:比较两个字符串str1、str2:if(strcmp(str1,str2)==1)printf("str1>str2");•strlen(字符数组);//返回字符数组中包含的字符串的长度;•strlwr(字符串);//将字符串的大写字符转换为小写;•strupr(字符串);//将字符串的小写字符转换为大写;例:不使用strlen()函数,计算一个字符串的长度#includemain(){inti=0;charstr[30];printf(“输入一个字符串:”);gets(str);while(str[i]!=’\0’)i++;printf(“字符串长度为:%d\n”,i);}例:将一字符串逆转#include#includemain(){charstr[20],temp;inti,j;printf(“输入一个字符串:”);gets(str);for(i=0;i字符串2,则返回1,否则返回-1;如:比较两个字符串str1、str2:if(strcmp(str1,str2)==1)printf("str1>str2");•strlen(字符数组);//返回字符数组中包含的字符串的长度;•strlwr(字符串);//将字符串的大写字符转换为小写;•strupr(字符串);//将字符串的小写字符转换为大写;例:不使用strlen()函数,计算一个字符串的长度#includemain(){inti=0;charstr[30];printf(“输入一个字符串:”);gets(str);while(str[i]!=’\0’)i++;printf(“字符串长度为:%d\n”,i);}例:将一字符串逆转#include#includemain(){charstr[20],temp;inti,j;printf(“输入一个字符串:”);gets(str);for(i=0;ifloatpower(floatx,intn){inti;floats;s=1;for(i=1;i<=n;i++)s=s*x;return(s);}2、函数的调用:C语言中函数调用的一般格式:函数名(实参表);如:floatf;f=power(3,10);3、数组作为函数的参数•数据元素作为函数实参在函数调用时,把数组元素作为实参传递给形参,实现单向的值传递;如:判别各个元素的值,大于0,则输出该值,小于或等于0,则输出0#includevoidfunc(intx){if(x>0)printf(“%4d”,x);elseprintf(“%2d”,0);}main(){inta[5],i;printf(“请输入5个数:”);for(i=0;i<5;i++)scanf(“%d”,&a[i]);for(i=0;i<5;i++)func(a[i]);//将数组元素作为实参传递}•数组名作为函数参数(1)使用数组名作为函数参数时,形参和实参是同类型的数组;(2)在主调函数和被调函数中分别定义数组;(3)数组名代表了数组的起始地址,数组名作为函数参数传递的是该数组的起始地址,而不是该数组元素的值;例:将数组中的元素的和计算并显示出来。#includefunc(intb[]){intsum=0,i;for(i=0;i<10;i++)sum+=b[i];returnsum;}main(){inta[]={1,2,3,4,5,6,7,8,9,10},s;s=func(a);//将数组a组为参数传递给函数funcprintf("s=%d",s);}4、内部函数和外部函数•内部函数:在定义函数时,在其类型名之前加“static”,则所定义的函数为内部函数,只能被所在的源文件中的函数调用,其他源文件若有同名的内部函数,互不干扰。•外部函数:在定义函数时,在其类型名之前加“extern”(也可省略),则所定义的函数为外部函数(也称全局函数),可被其他源程序的函数调用。如:staticintfunc_1()//内部函数{...}externfunc_2()//外部函数{...}综合测试~~~~~给定程序为:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上只剩一个桃子。求第一天共摘了多少桃子。由主函数输出第一天共摘桃子数。输出结果为1534。#includeintfun(intn){}main(){intn=10,sum;sum=fun(n);printf("sum=%d",sum);}解析:根据题意,第n+1天剩下的桃子数为x(n+1),第n天剩下的桃子数为x(n),则满足:x(n)=2*(x(n+1)+1);第十天剩下1个桃子,可推算出第九天剩下的数量;可利用for循环,递推出其他天数剩下的桃子数:intfun(intn){intx,i;x=1;//第十天剩下的数量for(i=n-1;i>=1;i--)//从第九天开始推算{x=2*(x+1);}returnx;}~~~~~~给定程序的功能是:从键盘输入10个整数求其中的最大值。#includemain(){intfun(intb[],intn);intmax;inti,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);max=fun(a,10);printf("max=%d",max);}intfun(intb[],intn){}解析:比较最大值的一般算法:设置一个变量max,第一步:将第一个数赋予max;第二步:利用for循环,将剩下的9个数依次与max相比较,每次比较,max均等于大的数;intfun(intb[],intn){intmax,i;max=b[0];//将第一个数赋予maxfor(i=1;i<=n-1;i++)//将剩下的9个数依次与max比较;if(max#includevoidhs(charc[]){}main(){chara[]={"AgRbhLfFGjI"};hs(a);printf("%s",a);}解析:将给定字符串的每一个字符取出,判断是否介于'a'和'z'之间,若是,则将其转换为大写字符,即其ASC码值-32。voidhs(charc[]){unsignedinti;for(i=0;i='a'&&c[i]<='z')c[i]=c[i]-32;return;}~~~~~~~给定程序的功能是:求1+2+3+4+5+6+......+n(n的值由键盘输入)。includemain(){intfac(intn);intn,sum;scanf("%d",&n);sum=fac(n);printf("sum=%d",sum);}intfac(intn){}解析:函数fac的功能是计算1-n之间整数的累计和。intfac(intn){inti,sum;sum=0;//累计和的初始值为0for(i=1;i<=n;i++)sum+=i;//将1-n之间的整数累加起来returnsum;}~~~~~~~~~给定程序的功能是:从键盘输入10个整数,求其中的最小值。#include"stdio.h"main(){intfun(intx[],intn);inta[10],i,min;printf("pleaseinput10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);min=fun(a,10);printf("min=%d\n",min);}intfun(intx[],intn){}解析:比较最小值的一般算法:设置一个变量min,第一步:将第一个数赋予min;第二步:利用for循环,将剩下的9个数依次与min相比较,每次比较,min均等于小的数;intfun(intx[],intn){intmin,i;min=x[0];//将第一个数赋予minfor(i=1;i<=n-1;i++)//将剩下的9个数依次与min比较;if(min>x[i])min=x[i];returnmin;}如有侵权请联系告知删除,感谢你们的配合!精品精品精品
本文档为【C语言程序设计基础知识要点】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥10.0 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
爱赢
公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)
格式:doc
大小:93KB
软件:Word
页数:0
分类:互联网
上传时间:2021-02-26
浏览量:26