版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计100例本文整理C语言程序设计100例,涵盖基础语法、数组、指针、函数、结构体、文件操作等核心知识点,从入门到进阶层层递进,每例均包含完整代码、详细注释及功能说明,适合C语言初学者巩固基础、提升编程能力,也可作为进阶学习者的参考案例。所有案例均经过调试可正常运行,注重实用性和易懂性,助力快速掌握C语言编程技巧。第一部分基础入门篇(1-20例)本部分聚焦C语言基础语法,包括变量、常量、运算符、条件判断、循环结构等,帮助初学者快速上手C语言编程,掌握基本编程逻辑。例1:输出"HelloWorld!"功能:最基础的C语言程序,实现屏幕输出指定字符串,熟悉C语言程序的基本结构。c
#include<stdio.h>
intmain(){
//输出HelloWorld!,printf为C语言格式化输出函数
printf("HelloWorld!\n");
return0;//程序正常结束,返回0
}说明:#include<stdio.h>引入标准输入输出头文件,main()函数是C程序的入口,printf()用于输出内容,\n表示换行。例2:计算两个整数的和功能:从键盘输入两个整数,计算并输出它们的和,熟悉变量定义、输入函数scanf()的使用。c
#include<stdio.h>
intmain(){
inta,b,sum;//定义三个整型变量,a、b存储输入的整数,sum存储和
printf("请输入两个整数(用空格分隔):");
scanf("%d%d",&a,&b);//从键盘输入两个整数,&表示取变量地址
sum=a+b;//计算两个数的和
printf("两个数的和为:%d\n",sum);//输出结果,%d表示输出整型数据
return0;
}例3:判断一个数是否为偶数功能:输入一个整数,判断其是否为偶数,熟悉if-else条件判断语句和取余运算符%的使用。c
#include<stdio.h>
intmain(){
intnum;
printf("请输入一个整数:");
scanf("%d",&num);
//偶数能被2整除,取余结果为0;否则为奇数
if(num%2==0){
printf("%d是偶数\n",num);
}else{
printf("%d是奇数\n",num);
}
return0;
}例4:求三个整数中的最大值功能:输入三个整数,找出其中的最大值,熟悉多条件判断和逻辑运算符的使用。c
#include<stdio.h>
intmain(){
inta,b,c,max;
printf("请输入三个整数(用空格分隔):");
scanf("%d%d%d",&a,&b,&c);
//先比较a和b,将较大值赋给max,再比较max和c
max=a>b?a:b;//三目运算符,等价于if(a>b)max=a;elsemax=b;
max=max>c?max:c;
printf("三个数中的最大值为:%d\n",max);
return0;
}例5:计算1到10的累加和功能:使用for循环计算1+2+...+10的和,熟悉for循环的基本用法。c
#include<stdio.h>
intmain(){
inti,sum=0;//sum初始化为0,避免随机值影响结果
//for循环三要素:初始化i=1,循环条件i<=10,循环后i自增1
for(i=1;i<=10;i++){
sum+=i;//等价于sum=sum+i
}
printf("1到10的累加和为:%d\n",sum);
return0;
}例6:使用while循环求1到n的累加和功能:输入一个正整数n,使用while循环计算1到n的累加和,对比for循环与while循环的用法。c
#include<stdio.h>
intmain(){
intn,i=1,sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
//while循环:先判断条件,条件成立则执行循环体
while(i<=n){
sum+=i;
i++;//循环变量自增,避免死循环
}
printf("1到%d的累加和为:%d\n",n,sum);
return0;
}例7:使用do-while循环输出1到10功能:使用do-while循环输出1到10的数字,熟悉do-while循环“先执行、后判断”的特点。c
#include<stdio.h>
intmain(){
inti=1;
//do-while循环:先执行循环体,再判断条件,至少执行一次
do{
printf("%d",i);
i++;
}while(i<=10);
printf("\n");
return0;
}例8:计算一个数的阶乘功能:输入一个正整数n,计算n的阶乘(n!=1×2×3×...×n),熟悉循环与乘法运算的结合。c
#include<stdio.h>
intmain(){
intn,i;
longlongfactorial=1;//阶乘结果可能很大,用longlong类型避免溢出
printf("请输入一个正整数n:");
scanf("%d",&n);
//处理异常情况:n为负数时提示错误
if(n<0){
printf("错误:负数没有阶乘!\n");
return1;//程序异常结束,返回非0值
}
for(i=1;i<=n;i++){
factorial*=i;//等价于factorial=factorial*i
}
printf("%d的阶乘为:%lld\n",n,factorial);
return0;
}例9:输出100以内的所有奇数功能:使用循环输出100以内的所有奇数,熟悉循环与条件判断的结合使用。c
#include<stdio.h>
intmain(){
inti;
printf("100以内的所有奇数:\n");
for(i=1;i<=100;i+=2){//i从1开始,每次加2,直接获取奇数
printf("%d",i);
//每输出10个奇数换行,提升可读性
if(i%10==9){
printf("\n");
}
}
return0;
}例10:判断一个数是否为素数功能:输入一个正整数,判断其是否为素数(只能被1和自身整除的大于1的整数),熟悉循环与条件判断的进阶用法。c
#include<stdio.h>
intmain(){
intnum,i,flag=1;//flag为标志位,1表示素数,0表示非素数
printf("请输入一个正整数:");
scanf("%d",&num);
//素数判断逻辑:大于1,且不能被2到sqrt(num)之间的任何数整除
if(num<=1){
flag=0;//1及以下的数不是素数
}else{
for(i=2;i*i<=num;i++){//优化:只需判断到sqrt(num)
if(num%i==0){
flag=0;
break;//找到一个除数,直接退出循环,无需继续判断
}
}
}
if(flag==1){
printf("%d是素数\n",num);
}else{
printf("%d不是素数\n",num);
}
return0;
}例11:输出100以内的所有素数功能:结合素数判断逻辑,输出100以内的所有素数,熟悉循环嵌套的使用。c
#include<stdio.h>
intmain(){
intnum,i,flag;
printf("100以内的所有素数:\n");
//外层循环遍历100以内的所有整数
for(num=2;num<=100;num++){
flag=1;//初始化标志位为1(默认是素数)
//内层循环判断当前num是否为素数
for(i=2;i*i<=num;i++){
if(num%i==0){
flag=0;
break;
}
}
if(flag==1){
printf("%d",num);
}
}
printf("\n");
return0;
}例12:将输入的整数逆序输出功能:输入一个整数,将其逆序输出(如输入123,输出321),熟悉取余和整除运算的结合。c
#include<stdio.h>
intmain(){
intnum,reverse=0,remainder;
printf("请输入一个整数:");
scanf("%d",&num);
//逆序逻辑:每次取最后一位数字,拼接到reverse中
while(num!=0){
remainder=num%10;//取最后一位数字
reverse=reverse*10+remainder;//拼接数字
num=num/10;//去掉最后一位数字
}
printf("逆序后的数字为:%d\n",reverse);
return0;
}例13:计算两个数的最大公约数功能:输入两个正整数,使用辗转相除法计算它们的最大公约数,熟悉循环与取余运算的实际应用。c
#include<stdio.h>
intmain(){
inta,b,temp;
printf("请输入两个正整数(用空格分隔):");
scanf("%d%d",&a,&b);
//辗转相除法:a=b*q+r,直到r=0,此时b为最大公约数
while(b!=0){
temp=a%b;//取余数r
a=b;//将b赋值给a
b=temp;//将余数r赋值给b
}
printf("两个数的最大公约数为:%d\n",a);
return0;
}例14:计算两个数的最小公倍数功能:输入两个正整数,利用最大公约数计算最小公倍数(最小公倍数=两数乘积/最大公约数)。c
#include<stdio.h>
intmain(){
inta,b,temp,gcd,lcm;
printf("请输入两个正整数(用空格分隔):");
scanf("%d%d",&a,&b);
//先计算最大公约数
intx=a,y=b;//保存原始值,用于后续计算最小公倍数
while(y!=0){
temp=x%y;
x=y;
y=temp;
}
gcd=x;//x即为最大公约数
lcm=(a*b)/gcd;//计算最小公倍数
printf("两个数的最小公倍数为:%d\n",lcm);
return0;
}例15:使用switch语句判断成绩等级功能:输入学生成绩(0-100),使用switch语句判断成绩等级(90-100为A,80-89为B,70-79为C,60-69为D,60以下为E)。c
#include<stdio.h>
intmain(){
intscore;
printf("请输入学生成绩(0-100):");
scanf("%d",&score);
//处理成绩异常情况
if(score<0||score>100){
printf("输入错误!成绩应在0-100之间。\n");
return1;
}
//switch语句:根据score/10的值判断等级
switch(score/10){
case10:
case9:printf("成绩等级:A\n");break;//90-100对应A
case8:printf("成绩等级:B\n");break;//80-89对应B
case7:printf("成绩等级:C\n");break;//70-79对应C
case6:printf("成绩等级:D\n");break;//60-69对应D
default:printf("成绩等级:E\n");break;//60以下对应E
}
return0;
}例16:输出斐波那契数列的前n项功能:输入一个正整数n,输出斐波那契数列的前n项(斐波那契数列:1,1,2,3,5,8...,从第三项开始,每一项等于前两项之和)。c
#include<stdio.h>
intmain(){
intn,i,a=1,b=1,c;
printf("请输入要输出的斐波那契数列项数n:");
scanf("%d",&n);
if(n<=0){
printf("输入错误!n应为正整数。\n");
return1;
}
printf("斐波那契数列前%d项:\n",n);
for(i=1;i<=n;i++){
printf("%d",a);
c=a+b;//计算下一项
a=b;//更新a为前一项的后一项
b=c;//更新b为新计算的项
}
printf("\n");
return0;
}例17:计算一个数的绝对值功能:输入一个整数,计算并输出它的绝对值,熟悉条件判断和数学运算。c
#include<stdio.h>
intmain(){
intnum,abs_num;
printf("请输入一个整数:");
scanf("%d",&num);
//绝对值逻辑:正数和0的绝对值是自身,负数的绝对值是其相反数
if(num<0){
abs_num=-num;
}else{
abs_num=num;
}
printf("%d的绝对值为:%d\n",num,abs_num);
return0;
}例18:使用循环打印等腰三角形功能:输入三角形的行数,使用循环打印等腰三角形(由*组成),熟悉循环嵌套和格式控制。c
#include<stdio.h>
intmain(){
intn,i,j,k;
printf("请输入等腰三角形的行数:");
scanf("%d",&n);
//外层循环控制行数
for(i=1;i<=n;i++){
//内层循环1:打印空格,控制三角形的缩进
for(j=1;j<=n-i;j++){
printf("");
}
//内层循环2:打印*,控制每一行的*数量
for(k=1;k<=2*i-1;k++){
printf("*");
}
printf("\n");//每一行结束后换行
}
return0;
}例19:输入三个数,按从小到大的顺序输出功能:输入三个整数,将它们按从小到大的顺序排列并输出,熟悉多条件判断和变量交换。c
#include<stdio.h>
intmain(){
inta,b,c,temp;
printf("请输入三个整数(用空格分隔):");
scanf("%d%d%d",&a,&b,&c);
//交换逻辑:确保a<=b<=c
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
printf("从小到大的顺序为:%d%d%d\n",a,b,c);
return0;
}例20:计算1到n的平方和功能:输入一个正整数n,计算1²+2²+...+n²的和,熟悉循环与平方运算的结合。c
#include<stdio.h>
intmain(){
intn,i;
longlongsum=0;//平方和可能较大,用longlong类型
printf("请输入一个正整数n:");
scanf("%d",&n);
for(i=1;i<=n;i++){
sum+=i*i;//累加每个数的平方
}
printf("1到%d的平方和为:%lld\n",n,sum);
return0;
}第二部分进阶提升篇(21-60例)本部分聚焦C语言进阶知识点,包括数组、指针、函数、结构体、枚举等,提升编程逻辑性和灵活性,解决更复杂的编程问题。例21:定义一个整型数组,求数组元素的最大值和最小值功能:定义一个包含10个整型元素的数组,初始化或从键盘输入元素,找出数组中的最大值和最小值。c
#include<stdio.h>
intmain(){
intarr[10];//定义一个包含10个元素的整型数组
inti,max,min;
printf("请输入10个整数(用空格分隔):");
//从键盘输入10个元素,存入数组
for(i=0;i<10;i++){
scanf("%d",&arr[i]);
}
//初始化max和min为数组的第一个元素
max
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中枢神经系统感染监测指南
- 2026年成人高考经济与管理类财务管理真题单套试卷
- 2026年成人高考高起专语文(综合)冲刺单套试卷
- 浅析事业单位档案的规范化管理和优化策略
- COPD 患者呼吸困难的典型特征
- 2026年5月注册安全工程师执业资格考试案例分析单套试卷
- GE 德鲁克传感器:压力测量领域的卓越典范
- 造价工程师真题及答案
- 员工综合素质题目及答案
- spa泳池施工方案(3篇)
- 安全工程毕业论文
- 第5课《大自然的语言》课件++2023-2024学年统编版八年级语文下册
- 有创血压测量操作评分标准
- 数据排序课件浙教版高中信息技术选修1
- 对外投资合作国别(地区)指南 -印度尼西亚-20230619-00348
- 《公共政策学-政策分析的理论方法和技术》重点解析讲述
- python课件第三章基本数据类型:数字类型及math库的应用
- GB/T 5782-2016六角头螺栓
- GB/T 5023.5-2008额定电压450/750 V及以下聚氯乙烯绝缘电缆第5部分:软电缆(软线)
- GB/T 34940.2-2017静态切换系统(STS)第2部分:电磁兼容性(EMC)要求
- GB/T 14056.2-2011表面污染测定第2部分:氚表面污染
评论
0/150
提交评论