C笔记总结
第一章 C语言基础
#include”stdio.h”
void main(){
Printf(“Hello C!”);
}
1.控制台(后台)
2.图形化(前台)
#include "stdio.h" 导入的意思,导入库函数
stdio.h 系统库input/output
Stdio.h stdlib.h String.h
函数,主函数
void 无返回值
main 固定的名称
{} 代码块
() 参数
printf 函数—> stdio.h
printf 向屏幕打印双引号的内容
void main(){
代码
printf("Hello C !");
}
C语言语法规则
1.大小写区分
2.每句代码后应该有分号结束
3.所有的标点符号都是半角符号
4.标识符可以是下划线或者是字母开头,可以用数字结尾
转义符
\" \' \n(换行) \r \a \t(制表) \\
注释
1.单行注释 //
2.多行注释 /**/
2014-02-17周一:c
1.c
#include "stdio.h"
#include "stdlib.h"
void main(){
printf("Hello c!\n");
printf("A\tB\tC\t\n");
printf("D\tEE\tFF\n");
}
2.c
#include"stdlib.h"
void main(){
system("ipconfig");
system("del d:\\a.txt");
system("\"C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE\" http://www.xasxt.com");
system("notepad d:\\a.txt");
}
3.c
#include"stdio.h"
void main(){
int age = 18;
float x = 10.9; //float型小数点后有效数位最多6位
double Y = 100.99999988;//double型小数点后有效数位最多12位
double y = 100.99999931;
double z = 100.33333388;
printf("---%d---\n",age);
printf("%f\n",x);
printf("%f\n", Y);
printf("%f\n", y);
printf("%f\n", z);
printf("%.8lf\n", Y); // 100.99999988
}
4.c
#include"stdio.h"
void main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d,%d\n",a,b);
printf("%d+%d=%d\n",a,b,a+b);
}
-------------------------------------------------------------------------------------------------------
第二章 数据类型
1.常量和变量
变量:在程序运行过程中其值可以改变的量称之为变量,在一片代码"{}"块内部。不允许有重复的标示符名称。
数据类型 变量名称[=值];
int a=33;
int a; a=33;
int a,b,c,d,e,f;
int a,b=35,c;
常量:在程序运行过程中其值不可改变的量称之为常量
const int a=100;
2.数据类型:
数值型:short int long float double
字符型:cha
数值
1.整数 short(2个字节 16位) int(4个字节 32位) long(8个字节 64位)
2.小数 float(4个字节 32位)小数点后有效数位6位
double(8个字节 64位)小数点后有效数位12位
非数值
char(1个字节 8位)
3.scanf&printf
%d short int
%ld long
类型转换
1.自动转换 小到大
short -> int -> long
int -> float -> double
2.强制转换 大到下
float f=(float)15.555555555;
scanf(); 输入函数 专门从控制台索取数据到变量
控制台暂停,出现下划线等待你输入
& 此符号叫取地址符!
scanf("%c%d%c",&ch,&age,&ch1);
scanf("%d%d",&age,&age);
int a,b;
scanf("%d+%d",&a,&b);
printf("%d+%d=%d",a,b,a+b);
getchar();输入一个字符
2014-02-18周二:C
1.c
#include"stdio.h"
void main(){
int i = 100;
int a=100,b=5;
int c=a%b;
printf("%d\n",i++);
printf("%d\n",i);
printf("%d\n",--i);
printf("%d\n",i);
printf("%d\n",c);
printf("%d\n",10*(10-5)+(56-97));
}
2.c
#include "stdio.h"
void main(){
int a,b,c;
char c1,c2,c3;
scanf("%d%d%d",&a,&b,&c);
printf("%d+%d+%d=%d\n",a,b,c,a+b+c);
//scanf("%c",&c1);
getchar(); //回车的ascii码为10
scanf("%c%c%c",&c1,&c2,&c3);
printf("%d+%d+%d=%d",c1,c2,c3,c1+c2+c3);
}
3.c
#include"stdio.h"
void main(){
int a,b;
printf("请输入a的值: ");
scanf("%d",&a);
printf("请输入b的值: ");
scanf("%d",&b);
printf("判断a是否大于b:%d\n",a>b);
printf("判断a是否小于b:%d\n",a<b);
printf("判断a是否大于等于b:%d\n",a>=b);
printf("判断a是否小于等于b:%d\n",a<=b);
printf("判断a是否等于b:%d\n",a==b);
printf("判断a是否不等于b:%d",a!=b);
}
4.c
#include"stdio.h"
void main(){
int year;
printf("请输入一个年份:");
scanf("%d",&year);
printf("%d",(year % 4 == 0 )&&(year % 100 != 0)||(year % 400 == 0));
}
5.c
#include"stdio.h"
/*三元运算符*/
void main(){
int a,b,c;
a = 1000;
b = 0;
c = 0;
b = (a > 900 ? 50 : 40);
c = (a > 900 ? (100 == 100 ? (100 == 100 ? 50 : 40) : 40 ): 40);
printf("%d\n",b);
printf("%d\n",c);
}
6.c
#include"stdio.h"
void main(){
char c;
int a,b;
printf("请输入a,c,b的值");
scanf("%d%c%d",&a,&c,&b);
if(c == '+'){
printf("%d%c%d=%d\n",a,c,b,a+b);
}else{ if(c == '-'){
printf("%d%c%d=%d\n",a,c,b,a-b);
}else{ if(c == '*'){
printf("%d%c%d=%d\n",a,c,b,a*b);
}else{ if(c == '/'){
printf("%d%c%d=%d\n",a,c,b,a/b);
}else{if(c == '%'){
printf("%d%c%d=%d\n",a,c,b,a%b);
}else{
printf("操作不合法\n");
}
}
}
}
}
}
7.c
#include"stdio.h"
void main(){
char c;
int a,b;
int value=0;
printf("请输入a,c,b的值");
scanf("%d%c%d",&a,&c,&b);
if(c == '+' ){
value = a + b;
}else if(c == '-'){
value = a - b;
}else if(c == '*'){
value = a * b;
}else if(c == '/'){
value = a / b;
}else if(c == '%'){
value = a % b;
}else{
value = 0;
}
printf("%d%c%d=%d\n",a,c,b,value);
}
-------------------------------------------------------------------------------------------------------------------
第三章 控制流程语句
1.算术运算符 + - * / %
#include "stdio.h"
void main(){
int a=100,b=5;
int c=a%b;
printf("%d",c);
printf("%d",10*(10-5)+(56-97));
}
= 赋值运算符
B=A; 将A的值赋值一份覆盖B的值
自增 自减
++ --
int a = 100;
a++; (a=a+1;) a--; (a=a-1;)
符号在前怎么说 (先运算后赋值)
符号在后怎么说 (先赋值后运算)
++a; --a;
复合运算符(简写) += -= *= /= %=
int a=100;
a+=10; ( a=a+10;)
算术运算符运算出来的是数值!
2.关系运算符 (六个关系运算符)
第一类: > < = = !=
第二类: >= <=
关系运算符运算出的是逻辑值!(真假 1 0 true false)
#include”stdio.h”
void main(){
int a=100,b=50;
printf("%d",a>b);
}
#include”stdio.h”
void main(){
int a,b;
printf("请输入A的值:");
scanf("%d",&a);
printf("请输入B的值:");
scanf("%d",&b);
printf("判断是否等于(a==b):%d\n",a==b);
printf("判断是否大于(a>b):%d\n",a>b);
printf("判断是否小于(a<b):%d\n",a<b);
printf("判断是否大于等于(a>=b):%d\n",a>=b);
printf("判断是否小于等于(a<=b):%d\n",a<=b);
printf("判断是否不等于(a!=b):%d\n",a!=b);
}
3.逻辑运算符
&& || !
与 或 非
与-并且 或-或者 非-取反
逻辑运算符运算出来的还是逻辑值!
第一类: && ||
第二类: !
&& 必须两边都为真 运算出来的就是真
|| 只要一方是真 算出的就是真
!
真(运行) && 运行
假(运行) && 不运行
真(运行) || 不运行
假(运行) || 运行
#include”stdio.h”
void main(){
int a,b,c;
a=0;b=0;c=1;
printf("%d,%d,%d\n",a&&b,a||c,b&&c);
printf("%d,%d,%d\n",!a,b||c,!a&&b||c);
}
优先级 !非 → &&与 → ||或
闰年的计算:
#include”stdio.h”
void main(){
int year=2016;
printf("%d",(year%4==0)&&(year%100!=0)||(year%400==0));
}
4.流程控制语句
1.三元运算符
______ ? ____ : _____
表达式 值 值
可以互相的嵌套
2.if else
if()[{
}][else[{
}]]
if(____表达式____){
}else{
}
不带大括号,只包括第一句代码
3.switch
Switch(值){//值: int char
case 值:代码;break;
default :代码;break;
}
5.循环语句
1.While
While(表达式){//表达式值为真时,一直回头循环
代码
}
2.do while
do{
代码
}
while();
只运行一次 每次都运行 每次都运行
3.For(__赋值__;______表达式_____;__改变条件__){
代码
}
2014-02-19周三:C
1.c
#include"stdio.h"
void main(){
int year;
printf("请输入你要查询的年份:");
scanf("%d",&year);
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
printf("%d是个闰年!",year);
}else{
printf("%d是个平年!",year);
}
}
2.c
#include"stdio.h"
#include "stdlib.h"
void main(){
while(1 == 1){
char input;
int zongfen=0;//总分
int xueli=0;//学历
int yuyan=0; //语言能力
int gongzuo=0;//工作
int nianling=0;//年龄
int gongzuoyaoqing=0;//工作邀请
int zhixiqinshu=0; //直系亲属
printf("---------------------------------\n");
printf("\n");
printf(" 欢迎使用加拿大技术移民评分系统\n");
printf("\n");
printf(" 作者:东方不败\n");
printf("\n");
printf("---------------------------------\n");
printf("\n");
printf("现在开始测试!(请写大写)\n");
printf("\n");
printf("学历?\n");
printf("(A).大专 (B).本科 (C),研究生以上\n");
printf("请选择:");
scanf("%c",&input);
if(input=='A'){
xueli=22;
}else if(input=='B'){
xueli=20;
}else if(input=='C'){
xueli=25;
}
printf("\n");
getchar(); //吸收上面输入后的一个回车符 (因为下一个输入是%c格式,回车符是一个字符,ascii码为10,%c格式吸收字符)
printf("英文语言能力?\n");
printf("(A).精通 (B).中等熟练 (C),基本熟练 (D),不会\n");
printf("请选择:");
scanf("%c",&input);
if(input=='A'){
yuyan=16;
}else if(input=='B'){
yuyan=8;
}else if(input=='C'){
yuyan=4;
}else if(input=='D'){
yuyan=0;
}
printf("\n");
getchar(); //吸收上面输入后的一个回车符 (因为下一个输入是%c格式,回车符是一个字符,ascii码为10,%c格式吸收字符)
printf("法语语言能力?\n");
printf("(A).精通 (B).中等熟练 (C),基本熟练 (D),不会\n");
printf("请选择:");
scanf("%c",&input);
if(input=='A'){
yuyan+=8;
}else if(input=='B'){
yuyan+=8;
}else if(input=='C'){
yuyan+=4;
}else if(input=='D'){
yuyan+=0;
}
printf("\n");
getchar(); //吸收上面输入后的一个回车符,可不要 (因为下一个输入是%d格式,回车符是一个字符,ascii码为10,%d格式不吸收字符)
printf("年龄?\n");
printf("请输入:");
scanf("%d",&nianling);
if(nianling>=21 && nianling<=49){
nianling=10;
}else if(nianling>49){
nianling=(nianling-49)*2;
if(nianling>=10){
nianling=0;
}else{
nianling=(10-nianling);
}
}else if(nianling<21){
nianling=(21-nianling)*2;
if(nianling>=10){
nianling=0;
}else{
nianling=(10-nianling);
}
}
printf("\n");
getchar(); //吸收上面输入后的一个回车符,可不要 (因为下一个输入是%d格式,回车符是一个字符,ascii码为10,%d格式不吸收字符)
printf("工作年限?\n");
printf("请输入(1-4年):");
scanf("%d",&gongzuo);
if(gongzuo==1){
gongzuo=15;
}else if(gongzuo==2){
gongzuo=17;
}else if(gongzuo==3){
gongzuo=19;
}else if(gongzuo>=4){
gongzuo=21;
}else{
gongzuo=0;
}
printf("\n");
getchar();//吸收上面输入后的一个回车符 (因为下一个输入是%c格式,回车符是一个字符,ascii码为10,%c格式吸收字符)
printf("是否有加拿大企业的工作邀请?\n");
printf("(A).有 (B).无\n");
printf("请选择:");
scanf("%c",&input);
if(input=='A'){
gongzuoyaoqing=10;
}else if(input=='B'){
gongzuoyaoqing=0;
}
printf("\n");
getchar(); //吸收上面输入后的一个回车符 (因为下一个输入是%c格式,回车符是一个字符,ascii码为10,%c格式吸收字符)
printf("是否在加拿大有直系亲属?\n");
printf("(A).有 (B).无\n");
printf("请选择:");
scanf("%c",&input);
if(input=='A'){
zhixiqinshu=10;
}else if(input=='B'){
zhixiqinshu=0;
}
getchar();
zongfen=xueli+yuyan+nianling+gongzuo+gongzuoyaoqing+zhixiqinshu;
printf("\n\n\t您的总分是:%d\n\n",zongfen);
if(zongfen>=67){
printf("\n\n\t恭喜您!满足技术移民要求!\n\n");
}else{
printf("\n\n\t小朋友回家玩去!加拿大不需要你!\n\t其实中国也不错!\n\n");
}
printf("\n\n\n\n");
system("pause");
}
}
3.c
#include"stdio.h"
void main(){
char c;
int a,b;
int value = 0;
printf("请输入a,c,b的值:");
scanf("%d%c%d",&a,&c,&b);
switch(c){
case '+' : value = a + b;break;
case '-' : value = a - b;break;
case '*' : value = a * b;break;
case '/' : value = a / b;break;
case '%' : value = a % b;break;
default : value = 0;break;
}
printf("%d%c%d=%d\n",a,c,b,value);
}
4.c
#include"stdio.h"
void main(){
int s;
int t;
printf("请输入成绩:");
scanf("%d",&s);
t = s / 10;
switch(t){
case 10:
case 9: printf("等级为A\n");break;
case 8: printf("等级为B\n");break;
case 7: printf("等级为C\n");break;
case 6: printf("等级为D\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf("等级为E\n");break;
default : printf("不会吧\n");break;
}
}
5.c
#include"stdio.h"
void main(){
int i = 0;
while(i <= 10){
printf("AAAAAAA\n");
i++;
}
}
6.c
#include"stdio.h"
void main(){
int i = 1;
while(i <= 100){
printf("%d\n",i);
i+=2;
}
}
7.c
#include"stdio.h"
void main(){
int i = 1;
while(i <= 9){
int p = 1;
while(p <= i){
printf("%d×%d=%d\t",p,i,p*i);
p++;
}
printf("\n");
i++;
}
}
8.c
#include"stdio.h"
void main(){
int i = 1;
while(i <= 9){
int p = 1;
while(p <= i){
printf("* ");
p++;
}
printf("\n");
i++;
}
}
9.c
#include"stdio.h"
void main(){
int i,j;
for(i = 1;i <= 9; i++){
for(j = 1;j <= i; j++){
printf("%d*%d=%d\t",j,i,i*j);
}
printf("\n");
}
}
10.c
#include"stdio.h"
void main(){
do{
printf("AAAAAAA\n");
}while(1==1);
}
2014-02-20周四:C
1.c
#include "stdio.h"
/* *
***
*****
***
*
*/
void main(){
int i,p,u;
for(i=1;i<=3;i++){
for(p=3;p>i;p--){
printf(" ");
}
for(u=1;u<=((i*2)-1);u++){
printf("*");
}
printf("\n");
}
for(i=2;i>=1;i--){
for(p=2;p>=i;p--){
printf(" ");
}
for(u=1;u<=((i*2)-1);u++){
printf("*");
}
printf("\n");
}
}
2.c
#include "stdio.h"
/* *
***
*****
***
*
*/
void main(){
int i,p,u;
int row;
while(1==1){
printf("大小:");
scanf("%d",&row);
for(i=1;i<=row;i++){
for(p=row;p>i;p--){
printf(" ");
}
for(u=1;u<=((i*2)-1);u++){
printf("*");
}
printf("\n");
}
for(i=row-1;i>=1;i--){
for(p=row-1;p>=i;p--){
printf(" ");
}
for(u=1;u<=((i*2)-1);u++){
printf("*");
}
printf("\n");
}
}
}
3.c
#include "stdio.h"
/* *
* *
* *
* *
*
*/
void main(){
int i,p,u;
int row;
while(1==1){
printf("大小:");
scanf("%d",&row);
for(i=1;i<=row;i++){
for(p=row;p>i;p--){
printf(" ");
}
for(u=1;u<=((i*2)-1);u++){
if(u==1){
printf("*");
}else if(u==((i*2)-1)){
printf("*");
}else{
printf(" ");
}
}
printf("\n");
}
for(i=row-1;i>=1;i--){
for(p=row-1;p>=i;p--){
printf(" ");
}
for(u=1;u<=((i*2)-1);u++){
if(u==1){
printf("*");
}else if(u==((i*2)-1)){
printf("*");
}else{
printf(" ");
}
}
printf("\n");
}
}
}
4.c
#include"stdio.h"
/* *
* * *
* * * * *
* * *
*
*/
void main(){
int i,p,j;
for(i = 1;i <= 3;i++){
for(p = 3;p > i;p--){
printf(" ");
}
for(j = 1;j <= ((2 * i) - 1);j++){
printf("* ");
}
printf("\n");
}
for(i = 2;i >= 1; i--){
for(p = 2;p >= i; p--){
printf(" ");
}
for(j = 1;j <= 2 * i -1;j++){
printf("* ");
}
printf("\n");
}
}
5.c
#include"stdio.h"
void main(){
int age[3];
scanf("%d",&age[0]);
scanf("%d",&age[1]);
scanf("%d",&age[2]);
printf("%d\n",age[0]);
printf("%d\n",age[1]);
printf("%d\n",age[2]);
}
6.c
#include"stdio.h"
void main(){
int age[]={1,2,9};
printf("%d\n",age[0]);
printf("%d\n",age[1]);
printf("%d\n",age[2]);
printf("%d\n",&age[0]);
printf("%d\n",&age[1]);
printf("%d\n",&age[2]);
}
7.c
#include"stdio.h"
void main(){
int i;
int a[5];
int max;
int min;
for(i = 0;i < 5;i++){
scanf("%d",&a[i]);
}
max = a[0];
min = a[0];
for(i = 1;i < 5;i++){
if(a[i] > max){
max = a[i];
}
}
for(i = 1;i < 5;i++){
if(a[i] < min){
min = a[i];
}
}
printf("最大值:%d\n", max);
printf("最小值:%d\n", min);
}
-------------------------------------------------------------------------------------------------------------------
第四章 数组和指针
1.数组
数据类型 数组名[ 大小]
大小一旦定下在运行过程中不能改变
(1)一维
int a[1];
a[0]=100;
冒泡排序:
int age[]={90,50,30,51,60};
30,50,51,60,90
(2)二维
行 列
int age[3][3]; //表格数组
#include "stdio.h"
void main(){
int age[3][3]={{55,66,77},{555,444,11},{88,99,11}};
int i,u;
age[1][1]=111;
for(i=0;i<3;i++){
for(u=0;u<3;u++){
printf("%d\t",age[i][u]);
}
printf("\n");
}
}
2.指针
(1)指针──即地址
一个变量的地址称为该变量的指针。通过变量的指针能够找到该变量。
(2)指针变量──专门用于存储其它变量地址的变量
指针变量num_pointer的值就是变量num的地址。指针与指针变量的区别,就是变量值与变量的区别。
int *p;
指针声明后,是空的
& 或者是给指针分配内存
2014-02-21周五C:
1.c
#include "stdio.h"
/*冒泡排序 {90,50,30,51,60}
0 0 0 0 4 90 90 90 90~ 30*
0 0 0 3 50 50 50 ~ 30~ 90
0 0 2 30 30~ 30 ~ 50 50
0 1 51~ 51~ 51 51 51
60~ 60 60 60 60
30 30 30 30
90 90 90~ 50*
50 50~ 50~ 90
51~ 51~ 51 51
60~ 60 60 60
30 30 30
50 50 50
90 90~ 51*
51~ 51~ 90
60~ 60 60
30 30
50 50
51 51
90~ 60*
60~ 90
*/
void main(){
int age[]={90,50,30,51,60};
int i,u;
int num;
for(i=0;i<4;i++){
for(u=4;u>i;u--){
if(age[u]<age[u-1]){
num=age[u];
age[u]=age[u-1];
age[u-1]=num;
}
}
}
for(i=0;i<5;i++){
printf("%d \n",age[i]);
}
}
2.c
#include "stdio.h"
/*冒泡排序 {90,50,30,51,60}
0 0 0 0 4 .90~ 30* 30 30 30
0 0 0 3 .50 .50 50* 50 50
0 0 2 .30~ .90 .90~ 51* 51
0 1 .51 .51 .51~ .90~ 90*
.60 .60 .60 .60~ 60
*/
void main(){
int age[]={90,50,30,51,60};
int i,u,j;
int tem;
for(i=0;i<=4;i++){
for(u=0;u<=4;u++){
if(age[u]>age[u+1]){
tem =age[u];
age[u] = age[u+1];
age[u+1]=tem;
}
}
}
for(j = 0;j <= 4;j++){
printf("%d\n",age[j]);
}
}
3.c
#include"stdio.h"
void main(){
int i,u;
int a[][3] = {{1,1,1},{2,2,2},{3,3,3}};
a[0][0] = 7;
for(i = 0;i < 3;i++){
for(u = 0;u <3; u++){
printf("%d\t",a[i][u]);
}
printf("\n");
}
}
4.c
#include"stdio.h"
void main(){
int age[3][3]={
{55,66,77},
{555,444,11},
{88,99111,11}};
int i,u,max;
for(i = 0;i <= 2;i++){
printf("请输入:\n");
for(u = 0;u <= 2;u++){
printf("请输入%d行%d列",i,u);
scanf("%d",&age[i][u]);
}
}
max=age[0][0];
for(i=0;i<3;i++){
for(u=0;u<3;u++){
if(age[i][u]>max){
max=age[i][u];
}
}
}
printf("%d",max);
}
5.c
#include"stdio.h"
void main(){
int *p,i = 1000;
p = & i;
printf("%d\n",*p);
i = 98;
printf("%d\n",*p);
*p = 100;
printf("%d\n",*p);
}
6.c
#include"stdio.h"
#include"malloc.h"
void main(){
int *p;
p = malloc(4*3);
*(p+0) = 100;
*(p+1) = 110;
*(p+2) = 120;
printf("%d\n",*(p+0));
printf("%d\n",*(p+1));
printf("%d\n",*(p+2));
printf("%d\n", p+0);
printf("%d\n", p+1);
printf("%d\n", p+2);
}
7.c
#include "stdio.h"
void main(){
int a[][3] = {{1,1,1},{2,2,2},{3,3,3}};
int *p,p1,p2;
p = a[0];
p1 = a[1];
p2 = a[2];
printf("%d\n",p);
printf("%d\n",p1);
printf("%d\n",p2);
}
8.c
#include"stdio.h"
#include "malloc.h"
void main(){
int *p,i,u,num;
p=malloc(4*5);
for(i=0;i<5;i++){
scanf("%d",p+i);
}
for(u=0;u<4;u++){
for(i=4;i>u;i--){
if(*(p+i)<*(p+(i-1))){
num=*(p+i);
*(p+i)=*(p+(i-1));
*(p+(i-1))=num;
}
}
}
for(i=0;i<5;i++){
printf("%d\n",*(p+i));
}
}
9.c
#include "stdio.h"
#include "malloc.h"
void main(){
int *p,i,u,num,count;
printf("你想输入多少个?");
scanf("%d",&count);
p=malloc(4*count);
for(i=0;i<count;i++){
scanf("%d",p+i);
}
for(u=0;u<count-1;u++){
for(i=count-1;i>u;i--){
if(*(p+i)<*(p+(i-1))){
num=*(p+i);
*(p+i)=*(p+(i-1));
*(p+(i-1))=num;
}
}
}
for(i=0;i<count;i++){
printf("%d\n",*(p+i));
}
}
10.c
#include "stdio.h"
#include "string.h"
#include "malloc.h"
void main(){
char *str;
int i=0;
char c[6]={'A','B','C','D','E','\0'};
printf("%s\n",c);
str=malloc(sizeof(char)*3);
scanf("%s",str);
for(i=0;i<3;i++){
printf("%d\n",*(str+i));
}
}
11.c
#include "stdio.h"
void add(int *p){
*p=*p+1000;
}
void main(){
int p=100;
add(&p);
printf("%d\n",p);
}
-------------------------------------------------------------------------------------------------------------------
第五章 函数
1.函数
独立的程序段
执行一个具体的、明确定义的任务
2.声明函数
类型 函数名(类型 形参1,类型 形参2,…… )
{
声明语句;
执行语句;
}
在定义之前使用函数,必须声明
3.函数的嵌套调用
不能嵌套定义函数,但可以嵌套调用函数
嵌套调用特点是层层调用,逐级返回
4.函数的递归调用
在调用一个函数的过程中直接或间接地调用函数本身,称为递归调用
递归要素:递归公式、递归终止条件
2014-02-21周五:C
1.c
#include"stdio.h"
void m(int a){
int i;
for(i = 0;i < a; i++){
printf("HELLO C\n");
}
}
void main(){
m(5);
2.c
#include"stdio.h"
void m(int a){
int i;
for(i = 0;i < a; i++){
printf("HELLO C\n");
}
}
void main(){
int x = 5 ;
m(x);
}
3.c
#include "stdio.h"
float m(float f1,float f2){
if(1==1){
return f1+f2;
}else{
return f1+f2;
}
}
void main(){
float f1=0,f2=0;
f1= m(15,m(15,m(15,15)));//函数调用
printf("%f\n",f1);
}