版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言代码大全(基础+进阶,可直接运行)一、基础入门代码(必学)1.第一个C语言程序(HelloWorld)c
#include<stdio.h>
//程序入口:main函数,程序从这里开始执行
intmain(){
//printf函数:用于输出内容到控制台
printf("HelloWorld!\n");//\n表示换行
return0;//表示程序正常结束,返回0
}说明:最基础的C程序框架,包含头文件引用、main函数、输出语句,是所有C程序的基础模板。2.变量与数据类型(int、float、char)c
#include<stdio.h>
intmain(){
//定义不同类型的变量
intage=20;//整型:用于存储整数
floatscore=95.5;//浮点型:用于存储小数
chargender='M';//字符型:用于存储单个字符,用单引号包裹
//输出变量的值,%d对应int,%f对应float,%c对应char
printf("年龄:%d\n",age);
printf("成绩:%.1f\n",score);//%.1f表示保留1位小数
printf("性别:%c\n",gender);
return0;
}3.输入输出(scanf获取用户输入)c
#include<stdio.h>
intmain(){
inta,b;
printf("请输入两个整数(用空格分隔):");
//scanf函数:获取用户从控制台输入的内容,&是取地址符,必须加
scanf("%d%d",&a,&b);
printf("你输入的两个数是:%d和%d\n",a,b);
printf("两数之和:%d\n",a+b);
printf("两数之差:%d\n",a-b);
return0;
}4.分支结构(if-else、switch-case)c
#include<stdio.h>
intmain(){
//1.if-else分支(判断成绩等级)
intscore;
printf("请输入成绩:");
scanf("%d",&score);
if(score>=90){
printf("优秀\n");
}elseif(score>=80){
printf("良好\n");
}elseif(score>=60){
printf("及格\n");
}else{
printf("不及格\n");
}
//2.switch-case分支(判断星期)
intweek;
printf("请输入星期(1-7):");
scanf("%d",&week);
switch(week){
case1:printf("星期一\n");break;//break用于跳出switch,避免穿透
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");//没有匹配的case时执行
}
return0;
}5.循环结构(for、while、do-while)c
#include<stdio.h>
intmain(){
//1.for循环(打印1-10)
printf("for循环打印1-10:");
for(inti=1;i<=10;i++){//初始化;条件;自增
printf("%d",i);
}
printf("\n");
//2.while循环(打印10-1)
printf("while循环打印10-1:");
intj=10;
while(j>=1){//循环条件,成立则执行循环体
printf("%d",j);
j--;//自减,避免死循环
}
printf("\n");
//3.do-while循环(至少执行一次,打印1-5)
printf("do-while循环打印1-5:");
intk=1;
do{
printf("%d",k);
k++;
}while(k<=5);//先执行循环体,再判断条件
return0;
}二、常用功能代码(高频使用)1.求两个数的最大公约数和最小公倍数c
#include<stdio.h>
intmain(){
inta,b,temp,gcd,lcm;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b);
//备份原始值,用于计算最小公倍数
inta1=a,b1=b;
//辗转相除法求最大公约数(GCD)
while(b!=0){
temp=a%b;
a=b;
b=temp;
}
gcd=a;//循环结束后,a就是最大公约数
//最小公倍数(LCM)=两数乘积/最大公约数
lcm=(a1*b1)/gcd;
printf("最大公约数:%d\n",gcd);
printf("最小公倍数:%d\n",lcm);
return0;
}2.判断素数(质数)c
#include<stdio.h>
#include<math.h>//用于sqrt函数(求平方根)
intmain(){
intn,i,flag=1;//flag=1表示是素数,0表示不是
printf("请输入一个大于1的整数:");
scanf("%d",&n);
//素数判断逻辑:只能被1和自身整除,只需判断到sqrt(n)即可
for(i=2;i<=sqrt(n);i++){
if(n%i==0){//能被其他数整除,不是素数
flag=0;
break;
}
}
if(flag==1&&n>1){
printf("%d是素数\n",n);
}else{
printf("%d不是素数\n",n);
}
return0;
}3.冒泡排序(对数组进行升序/降序排序)c
#include<stdio.h>
#defineN5//定义数组长度为5
intmain(){
intarr[N]={3,1,4,2,5};//待排序数组
inti,j,temp;
//冒泡排序核心:两两比较,将大的数“冒泡”到末尾
for(i=0;i<N-1;i++){//外层循环:控制排序轮数
for(j=0;j<N-1-i;j++){//内层循环:控制每轮比较次数
if(arr[j]>arr[j+1]){//升序:大的在后;降序改为<
//交换两个元素的值
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//输出排序后的数组
printf("排序后的数组:");
for(i=0;i<N;i++){
printf("%d",arr[i]);
}
return0;
}4.数组的输入、输出与遍历c
#include<stdio.h>
intmain(){
intarr[10];//定义一个长度为10的整型数组
inti,len=10;
//输入数组元素
printf("请输入10个整数:");
for(i=0;i<len;i++){
scanf("%d",&arr[i]);//数组下标从0开始
}
//输出数组元素(遍历数组)
printf("你输入的数组:");
for(i=0;i<len;i++){
printf("%d",arr[i]);
}
printf("\n");
//求数组的最大值和最小值
intmax=arr[0],min=arr[0];
for(i=1;i<len;i++){
if(arr[i]>max)max=arr[i];
if(arr[i]<min)min=arr[i];
}
printf("数组最大值:%d\n",max);
printf("数组最小值:%d\n",min);
return0;
}5.函数调用(自定义函数,实现代码复用)c
#include<stdio.h>
//自定义函数:求两个数的最大值(声明+实现)
intgetMax(intx,inty){
returnx>y?x:y;//三目运算符:x>y则返回x,否则返回y
}
//自定义函数:打印n个星号
voidprintStar(intn){//void表示无返回值
inti;
for(i=0;i<n;i++){
printf("*");
}
printf("\n");
}
intmain(){
//调用getMax函数
inta=15,b=20;
printf("最大值:%d\n",getMax(a,b));
//调用printStar函数
printStar(5);//打印5个星号
printStar(10);//打印10个星号
return0;
}三、进阶代码(指针、结构体、文件操作)1.指针基础(变量指针、数组指针)c
#include<stdio.h>
intmain(){
//1.变量指针:指向变量的地址
intnum=100;
int*p=#//p是指针变量,存储num的地址,*p表示指针指向的值
printf("num的值:%d\n",num);
printf("num的地址:%p\n",&num);//%p用于输出地址
printf("指针p存储的地址:%p\n",p);
printf("指针p指向的值:%d\n",*p);
*p=200;//通过指针修改变量的值
printf("修改后num的值:%d\n",num);
//2.数组指针:指针指向数组首元素地址(数组名就是首元素地址)
intarr[5]={1,2,3,4,5};
int*p_arr=arr;
printf("\n数组元素(通过指针遍历):");
for(inti=0;i<5;i++){
printf("%d",*(p_arr+i));//p_arr+i指向第i个元素
}
return0;
}2.结构体(存储不同类型的关联数据)c
#include<stdio.h>
#include<string.h>//用于strcpy函数(复制字符串)
//定义结构体类型:学生信息
structStudent{
charname[20];//姓名
intage;//年龄
floatscore;//成绩
};
intmain(){
//定义结构体变量并初始化
structStudentstu1={"张三",18,92.5};
//访问结构体成员(用点号.)
printf("学生1信息:\n");
printf("姓名:%s\n",);
printf("年龄:%d\n",stu1.age);
printf("成绩:%.1f\n",stu1.score);
//结构体指针访问成员(用箭头->)
structStudent*p_stu=&stu1;
printf("\n通过指针访问学生1信息:\n");
printf("姓名:%s\n",p_stu->name);
printf("年龄:%d\n",p_stu->age);
//修改结构体成员的值
strcpy(,"李四");//字符串不能直接赋值,需用strcpy
stu1.age=19;
printf("\n修改后学生1姓名:%s,年龄:%d\n",,stu1.age);
return0;
}3.文件操作(读写文本文件)c
#include<stdio.h>
#include<string.h>
intmain(){
//1.写入文件(w模式:覆盖写入,没有文件则创建)
FILE*fp=fopen("test.txt","w");//fopen打开文件,返回文件指针
if(fp==NULL){//判断文件是否打开成功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江西理工大学高层次人才招聘笔试备考试题及答案解析
- 2026中国宋庆龄基金会直属事业单位招聘应届高校毕业生2人笔试模拟试题及答案解析
- 2026年福建福安市事业单位招聘109人笔试备考题库及答案解析
- 安全上网我能行
- 学生宿舍管理员安全培训
- 人防安全生产课件
- 消防安全中班安全教案
- 转炉煤气安全培训
- 项目人力资源计划书培训
- 厨房安全风险分析
- 家政公司安全生产管理制度
- 行政岗位任职资格分级标准详解
- 2026年山西工程职业学院单招职业技能考试题库及答案解析(名师系列)
- 地震勘探资料解释技术
- 2025年校园节能改造项目可行性研究报告及总结分析
- 运动品牌361°小刘鸭联名新品发布快闪店活动方案
- 2025秋南方新课堂金牌学案中国历史七年级上册(配人教版)(教师用书)
- 劳动关系协调员四级考试真题(2篇)
- 2025年ODCC开放数据中心大会:云边协同AI网络技术白皮书
- 2025年中国纳米功能电池项目创业计划书
- 雅马哈DTX430K电子鼓中文说明书
评论
0/150
提交评论