C语言程序实例.docx

上传人:b****8 文档编号:24029636 上传时间:2023-05-23 格式:DOCX 页数:48 大小:36.56KB
下载 相关 举报
C语言程序实例.docx_第1页
第1页 / 共48页
C语言程序实例.docx_第2页
第2页 / 共48页
C语言程序实例.docx_第3页
第3页 / 共48页
C语言程序实例.docx_第4页
第4页 / 共48页
C语言程序实例.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

C语言程序实例.docx

《C语言程序实例.docx》由会员分享,可在线阅读,更多相关《C语言程序实例.docx(48页珍藏版)》请在冰豆网上搜索。

C语言程序实例.docx

C语言程序实例

数组的引用:

#include

voidmain(intargc,char*argv[])

{

intx[5]={2,3,1,4,6};

inti;

for(i=0;i<5;i++)

{

printf("%d\n",2*x[i]);

}

}

一维数组的遍历:

#include

voidmain(intargc,char*argv[])

{

intx[5]={1,2,3,4,5};

inti=0;

for(i=0;i<5;i++)

{

printf("x[%d]:

%d\n",i,x[i]);

}

}

一维数组的最值:

#include

intmain(intargc,char*argv[])

{

intx[5]={1,2,3,4,5};

intnMax=x[0];

inti=0;

for(i=1;i<5;i++)

{

if(x[i]>nMax)

{

nMax=x[i];

}

}

printf("max:

%d\n",nMax);

return0;

}

一维数组排序:

#include

voidmain(intargc,char**argv[])

{

intarr[5]={9,8,3,5,2};

inttemp=0;

inti,j;

printf("冒泡排序前:

\n");

for(i=0;i<5;i++)

{

printf("%d",arr[i]);

}

printf("\n");

for(i=0;i<5-1;i++)

{

for(j=0;j<5-1-i;j++)

{

if(arr[j]>arr[j+1])

{

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

printf("冒泡排序后:

\n");

for(i=0;i<5;i++)

{

printf("%d",arr[i]);

}

printf("\n");

}

二维数组的遍历

#include

voidmain()

{

//声明并初始化数组

intarray[3][4]={{1,2,3,4,},{5,6,7,8,},{9,10,11,12}};

for(inti=0;i<3;i++)//循环遍历行

{

for(intj=0;j<4;j++)//循环遍历列

{

printf("[%d][%d]:

%d",i,j,array[i][j]);

}

printf("\n");//每一行的末尾添加换行符

}

}

二维数组应用

#include

voidmain(intargc,char*argv[])

{

intStuScore[5][3]={

//张同学

{88,70,90},

//王同学

{80,80,60},

//李同学

{89,60,85},

//赵同学

{80,75,78},

//周同学

{70,80,80},

};

intm=0,n=0;

intnStuTotalScore;

intnMathTotalScore=0;

intnChineseTotalScore=0;

intnEnglishTotalScore=0;

printf("个人总成绩:

\n");

for(m=0;m<5;m++)

{

nStuTotalScore=0;

for(n=0;n<3;n++)

{

nStuTotalScore+=StuScore[m][n];

switch(n)

{

case0:

{

nMathTotalScore+=StuScore[m][0];

break;

}

case1:

{

nChineseTotalScore+=StuScore[m][1];

break;

}

case2:

{

nEnglishTotalScore+=StuScore[m][2];

}

}

}

switch(m)

{

case0:

{

printf("张同学:

%d\n",nStuTotalScore);

break;

}

case1:

{

printf("王同学:

%d\n",nStuTotalScore);

break;

}

case2:

{

printf("李同学:

%d\n",nStuTotalScore);

break;

}

case3:

{

printf("赵同学:

%d\n",nStuTotalScore);

break;

}

case4:

{

printf("周同学:

%d\n",nStuTotalScore);

break;

}

}

}

printf("小组数学总分:

%d小组数学平均分:

%.2f\n",

nMathTotalScore,(double)nMathTotalScore/5);

printf("小组语文总分:

%d小组语文平均分:

%.2f\n",

nChineseTotalScore,(double)nChineseTotalScore/5);

printf("小组英语总分:

%d小组英语平均分:

%.2f\n",

nEnglishTotalScore,(double)nEnglishTotalScore/5);

}

无参函数

#include

voidfunc()

{

printf("这是我的第一个函数!

\n");

}

voidmain()

{

func();

}

有参函数调用无参函数

#include

voidfunc(intx,inty)

{

intsum=x+y;

printf("x+y=%d\n",sum);

}

voidmain()

{

func(3,5);

}

函数调用及返回过程

#include

intfunc(intx,inty)

{

returnx+y;

}

voidmain()

{

intsum=func(3,5);

printf("x+y=%d\n",sum);

}

Printf函数

#include

voidmain()

{

printf("%c%c",'H','\n');

printf("%s","Hellow,world!

\n");

printf("%d%d%d\n",1,2,3);

printf("%f%f%f\n",2.1,2.2);

}

Scanf函数

#include

voidmain()

{

charstr[256];//字符数组保存得到的字符串

scanf("%s",str);

printf("%s\n",str);

}

嵌套函数

#include

intmax2(inta,intb)//用于比较两个整数大小的函数

{

if(a>b)

{

returna;

}

else

{

returnb;

}

}

intmax4(inta,intb,intc,intd)//用于比较四个整数大小的函数

{

intres;

res=max2(a,b);

res=max2(res,c);

res=max2(res,d);

returnres;

}

voidmain()

{

inta=5,b=7,c=9,d=22,max;

printf("请输入四个整数:

57922\n");

//scanf("%d%d%d%d",a=5,b=7,c=9,d=22);

max=max4(a,b,c,d);

printf("max=%d\n",max);

}

递归调用

#include

//下面的函数使用递归实现,求1~n的和

intgetsum(intn)

{

if(n==1)

{

return1;//满足条件,递归结束

}

inttemp=getsum(n-1);//在函数体中调用自身

returntemp+n;

}

voidmain()

{

intsum=getsum(4);//调用递归函数,获得1~4的和

printf("sum=%d\n",sum);//打印结果

}

外部函数

建立源文件first.c

intadd(intx,inty)

{

returnx+y;

}

建立源文件second.c

#include

externintadd(intx,inty);

voidmain()

{

printf("%d\n",add(1,2));

}

//注:

extern可以省略

内部函数用法

建立first.c

#include

voidshow()

{

printf("%s\n","first.c");

}

建立second.c

#include

staticvoidshow()

{

printf("%s\n","second.c");

}

voidmain()

{

show();

}

全局变量

#include

intx=123;

voidshow()

{

printf("show()函数中,x的值为:

%d\n",x);

}

voidmain()

{

show();

printf("main()函数中,x的值为:

%d\n",x);

}

当局部变量与全局变量重名时,全局变量会被屏蔽

#include

intx=789;

voidmain()

{

intx=123;

printf("x的值为:

%d\n",x);

}

变量的作用域

#include

intx=10;

voidshow()

{

intx=20;

printf("show()函数中,x的值为:

%d\n",x);

}

voidmain()

{

intx=30;

printf("main()函数中,x的值为%d\n",x);

show();

}

If语句

#include

voidmain()

{

//定义变量x

intx=5;

//如果x的值小于10则执行if大括号中的代码

if(x<10)

{

x++;

}

printf("x=%d\n",x);

}

If...else语句

#include

voidmain()

{

intnum=19;

if(num%2==0)

{

//判断条件成立,num被2整除

printf("num是一个偶数\n");

}

else

{

printf("num是一个奇数\n");

}

}

If...elseif...else语句

#include

voidmain()

{

intgrade=75;//定义学生成绩

if(grade>=80)

{

//满足条件grsde>=80

printf("该成绩的等级为优\n");

}

elseif(grade>=70)

{

//不满足条件grade>=80,但满足条件grade>=70

printf("该成绩等级为良\n");

}

elseif(grade>=60)

{

//不满足条件grade>=70,但满足条件grade>=60

printf("该成绩等级为中\n");

}

else

{

//不满足条件grade>=60

printf("该成绩的等级为差\n");

}

}

三元运算符

#include

voidmain()

{

intx=0;

inty=1;

intmax;

max=x>y?

x:

y;

printf("max=%d\n");

}

Switch语句

#include

voidmain()

{

intweek=5;

switch(week)

{

case1:

printf("星期一\n");

break;

case2:

printf("星期二\n");

break;

case3:

printf("星期三\n");

break;

case4:

printf("星期四\n");

break;

case5:

printf("星期五\n");

break;

case6:

printf("星期六\n");

break;

case7:

printf("星期日\n");

break;

default:

printf("输入的数字不正确...\n");

break;

}

}

在使用switch语句过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可

#include

voidmain()

{

intweek=2;

switch(week)

{

case1:

case2:

case3:

case4:

case5:

//当week满足值1、2、3、4、5中任意一个时,处理方式相同

printf("今天是工作日\n");

break;

case6:

case7:

//当week满足值6、7中任意一个时,处理方式相同

printf("今天是休息日\n");

break;

}

}

While循环语句

#include

voidmain()

{

intx=1;

while(x<=4)

{

printf("x=%d\n",x);//条件成立,打印x的值

x++;//x进行自增

}

}

Do-while循环语句

#include

voidmain()

{

intx=1;//定义变量x,初始值为1

do

{

printf("x=%d\n",x);//条件成立,打印x的值

x++;//x进行自增

}while(x<=4);//循环条件

}

For循环

#include

voidmain()

{

intx=1;//定义变量x,初始值为1

do

{

printf("x=%d\n",x);//条件成立,打印x的值

x++;//x进行自增

}while(x<=4);//循环条件

}

Break语句

#include

voidmain()

{

intx=1;//定义变量x,初始值为1

while(x<=4)//循环条件

{

printf("x=%d\n",x);

if(x==3)

{

break;

}

x++;//x进行自增

}

}

Goto语句

#include

intmain()

{

inti,j;//定义两个循环变量

for(i=1;i<=9;i++)//外层循环

{

for(j=1;j<=i;j++)//内层循环

{

if(i>4)//判断i的值是否大于4

{

gotoend;//跳至标志位end的语句

}

printf("*");//输出*

}

printf("\n");//换行

}

end:

return0;

}

Continue语句

#include

voidmain()

{

intsum=0;//定义变量sum,用于记住和

for(inti=1;i<=100;i++)

{

if(i%2==0)//如果i是一个偶数,执行if语句中的代码

{

continue;//结束本次循环

}

sum+=i;//实现sum和i的累加

}

printf("sum=%d\n",sum);

}

无符号整数类型

#include

voidmain()

{

inta=12345;

longb=-23456,sum1;

unsignedintc=32800,sum2;

sum1=b-a;

sum2=c-b;

printf("sum1=%1d,sum2=%u\n",sum1,sum2);

}

Float和double之间的数据转换

#include

voidmain()

{

floata;

a=3.141592612;

printf("a=%.9f\n",a);

}

字符型变量

#include

voidmain()

{

charch1='A';

charch2=65;

printf("%c\n",ch1);

printf("%c\n",ch2);

}

 

#include

voidmain()

{转义符的用法

charch1='A';

charch2='\n';

charch3='B';

charch4='\\';

printf("%c",ch1);

printf("%c",ch2);

printf("%c",ch3);

printf("%c",ch4);

printf("%c",ch2);

}

枚举类型变量

#include

enummonth{JAN=1,FEB=2,MAR=3,APR=4,MAY=5,JUN=6,

JUL=7,AUG=8,SEP=9,OCT=10,NOV=11,DEC=12};

voidmain()

{

enummonthlastmonth,thismonth,nextmonth;

lastmonth=APR;

thismonth=MAY;

nextmonth=JUN;

printf("%d%d%d\n",lastmonth,thismonth,nextmonth);

}

在枚举中规定,如果不给标识符指定具体值,会默认该标识符的值等于前一标识符的值加一。

因此可以快速定义

#include

//定义一组常量

enumConstants{c1,c2,c3=4,c4,c5=3,c6,c7,c8='0',c9};

voidmain()

{

printf("c9=%d\n",c9);

}

Sizeof运算符

#include

voidmain()

{

//通过类型名称计算各基本数据类型所占内存大小

printf("char:

%d\n",sizeof(char));

printf("short:

%d\n",sizeof(short));

printf("long:

%d\n",sizeof(long));

printf("float:

%d\n",sizeof(float));

printf("double:

%d\n",sizeof(double));

printf("unsignedchar:

%d\n",sizeof(unsignedchar));

printf("unsignedshort:

%d\n",sizeof(unsignedshort));

printf("unsignedint:

%d\n",sizeof(unsignedint));

printf("unsignedlong:

%d\n",sizeof(unsignedlong));

//通过变量名称计算变量所属数据类型占用内存大小

intval_int=100;

doubleval_double=100000.0;

printf("val_int:

%d\n",sizeof(val_int));

printf("val_double:

%d\n",sizeof(val_double));

}

指针的取址和取值运算符

#include

voidmain()

{

intnum=100;//int类型变量num

printf("num=%d\n",num);//输出变量值

printf("#&num=%p\n",&num);//输出变量的内存地址

printf("*&num=%d\n",*&num);//通过num地址读取num中的数据

}

指针表达式的自增自减运

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1