在 C 语言学习过程中,通过实战编程题巩固知识点是非常有效的方式。本文整理了一系列经典 C 语言编程题,涵盖基础计算、逻辑判断、图形打印等多个维度,并附上完整代码与解析,适合初学者参考学习

上机题

1.

计算n以内所有正奇数的和 ? n值通过键盘输入

代码:

/*************************************************************************> File Name:    demo04.c> Author:       千夕> Description:  > Created Time: 2025年07月16日 星期三 15时19分09秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int num = 0;int i = 1;int n;printf("请输入数字:");scanf("%d",&n);while(i < n){if(i % 2 != 0 )num += i;          i++;}printf(" %d 以内所有正奇数和为: %d\n",n,num);return 0;
}

运行结果:

2.

计算 1 + 1/(2 * 3) + 1/(3 * 4) + …+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为 止

代码:

/*************************************************************************> File Name:    demo05.c> Author:       qianxi> Description:  > Created Time: 2025年07月16日 星期三 18时15分43秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{float i = 2;float sum=0;float n=0;for(;1 / (i * (i + 1)) > 0.00001; i++){n = 1 / (i * (i + 1));sum += n;}printf("这个式子的答案是:%f\n",sum+1);return 0;
}

运行结果:

3.

计算1+1/2 - 1/3 + 1/4 - 1/5 …+1/n= ? n通过键盘输入(int k = -1)

代码:

/*************************************************************************> File Name:    demo06.c> Author:       千夕> Description:  > Created Time: 2025年07月16日 星期三 19时02分32秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int i = 1;float sum1,sum2;int x;float sum = 0;printf("请输入正整数:");/*if(scanf("%d",&x) != 1 || x <= 0){printf("请输入一个正整数。\n");return 1;}
*/scanf("%d",&x);while(i <= x){if(i % 2 == 0){sum1 +=1.0 / i;}else {sum2 += 1.0 / i;}i++;}sum = sum1-sum2+2;printf("这个式子的值为:%.6f\n",sum);return 0;
}

运行结果:

4.

计算n的阶乘 ? n! = 123…*n n值通过键盘输入

代码:

/*************************************************************************> File Name:    demo07.c> Author:       千夕> Description:  > Created Time: 2025年07月16日 星期三 21时40分18秒************************************************************************/#include <stdio.h>
#include <math.h>int main(int argc,char *argv[])
{unsigned long n;size_t r = 1;printf("请输入一个整数:");scanf("%lu",&n);for(int i = 1; i <= fabs(n); i++) r *=i;printf("1~%lu的阶乘为%lu\n",(size_t)fabs(n),r);return 0;
}

运行结果:

5.

输出半径为1~10的圆面积,面积大于100时停止

代码:

/*************************************************************************> File Name:    demo10.c> Author:       千夕> Description:  > Created Time: 2025年07月16日 星期三 23时53分40秒************************************************************************/#include <stdio.h>
#define PI 3.1415926int main(int argc,char *argv[])
{double area;for (int r = 1; r <= 10;r++){area = PI * r * r;if (area > 100){break;}printf("半径为%d的圆的面积为:%lf\n",r,area);}return 0;
}

运行结果:

6

求输入的十个整数中正数的个数及其平均值

代码:

/*************************************************************************> File Name:    demo08.c> Author:       千夕> Description:  > Created Time: 2025年07月16日 星期三 22时34分46秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int a;int b = 0;double sum = 0;printf("请输入十个数字:");for(int i = 1; i <= 10;i++){scanf("%d",&a);if(a > 0){b++;sum +=a;}}printf("10个数中的正整数个数为%d个,平均值为%.2lf\n",b,sum/b);return 0;
}

运行结果:

7

打印出100以内能整除7之外的的自然数

代码:

/*************************************************************************> File Name:    demo09.c> Author:      千夕> Description:  > Created Time: 2025年07月16日 星期三 23时19分29秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{printf("100以内不能整除7的数为:");for(int i = 1; i <= 100; i++){if(i % 7 != 0){printf("%d ",i);}}printf("\n");return 0;
}

运行结果:

8

打印乘法表

代码:

/*************************************************************************> File Name:    demo11.c> Author:       千夕> Description:  > Created Time: 2025年07月16日 星期三 23时59分57秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{printf("=======九九乘法表=======\n");for(int i = 1;i <=9 ;i++){for( int j = 1; j <= i;j++){printf("%d×%d=%d\t",j,i,j*i);}printf("\n");}printf("\n");return 0;
}

运行结果:

9

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值 钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

代码:

/*************************************************************************> File Name:    test5.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 19时46分44秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{printf("百钱买百鸡问题\n");printf("-----------------\n");for(int x = 0;x <= 100; x++){for(int y = 0; y <= 100 - x;y++){for(int z = 0;z <= 100 - x - y;z++){if(x + y + z == 100 && 5 * x + 3 * y + z / 3 == 100)printf("%d\t%d\t%d\n",x,y,z);}}}return 0;
}

运行结果:

10

从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。

代码:

/*************************************************************************> File Name:    test2.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 09时59分09秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{unsigned num,max = 0;while(1){scanf("%u",&num);if(num == 0){break;}else if(num > max){max = num;}}printf("最大值是:%u\n",max);return 0;
}

运行结果:

思考题

1

判断一个数是不是回文数。(回文数是指正序(从左向右)和倒序(从右向左)读都是 一样的整数。如:12321

代码:

/*************************************************************************> File Name:    test6.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 20时02分53秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int num,originalNum,n = 0,x;printf("请输入数字:");scanf("%d",&num);originalNum = num;for (;num != 0;){x = num % 10;n = n * 10 + x;num /= 10;}num = originalNum;if(originalNum == n)printf("这串数字是回文数\n");else printf("这串数字不是回文数\n");return 0;
}

运行结果:

2

通过键盘录入一个整数,判断这个整数是否是水仙花数。

代码:

/*************************************************************************> File Name:    test4.c> Author:      千夕> Description:  > Created Time: 2025年07月17日 星期四 19时22分30秒************************************************************************/#include <stdio.h>
#include <math.h>
int main(int argc,char *argv[])
{int num, originalNum,n=0,sum=0;printf("请输入整数:");scanf("%d",&num);originalNum = num;while(num != 0){num /= 10;n++;}num = originalNum;while(num != 0){int digit = num % 10;sum += pow(digit,n);num /= 10;}if (sum == originalNum)printf("%d是水仙花数\n",originalNum);elseprintf("%d不是水仙花数\n",originalNum);return 0;
}

运行结果:

扩展题

使用 * 在控制台分别打印上直角三角形、下直角三角形,上等腰三角形、下等腰三角 形、菱形、平行四边形。

①上直角三角形代码:

/*************************************************************************> File Name:    demo7.c> Author:      千夕> Description:  > Created Time: 2025年07月17日 星期四 20时55分11秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int i,j;for(i = 0;i <=5;i++){for(j = 0;j <= i;j++){printf("*");}printf("\n");}return 0;
}

运行结果:

②下直角三角形代码:

/*************************************************************************> File Name:    demo8.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 21时17分35秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int x,y;for (x=5;x >= 0;x--){for (y = 0; y <= x ;y++)printf("*");printf("\n");}return 0;
}

运行结果:

③上等腰三角形代码:

/*************************************************************************> File Name:    demo09.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 22时06分10秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int i,j,space;for(i = 1;i<=5;i++){for(space = 1;space <= 5 - i; space++){printf(" ");}for(j = 1;j<=2*i -1;j++){printf("*");}printf("\n");}return 0;
}

运行结果:

④下等腰三角形代码:

/*************************************************************************> File Name:    demo10.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 22时31分07秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int i,j,space;for(i = 5;i >=1 ; i--){for(space = 1;space <= 5-i;space++){printf(" ");}for(j = 1;j <= 2*i-1;j++){printf("*");}printf("\n");}return 0;
}

运行结果:

⑤菱形代码:

/*************************************************************************> File Name:    demo11.c> Author:       千夕> Description:  > Created Time: 2025年07月17日 星期四 22时52分29秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{   int i,j,space;for(i = 1;i<= 5;i++){for(space = 1;space<=5-i;space++){printf(" ");}for(j = 1;j<=2*i-1;j++){printf("*");}printf("\n");}for(i = 4 ;i>=1;i--){for(space = 1;space<=5-i;space++){printf(" ");}for(j = 1;j<=2*i-1;j++){printf("*");}printf("\n");}return 0;
}

运行结果:

⑥平行四边形代码:

/*************************************************************************> File Name:    demo12.c> Author:      千夕> Description:  > Created Time: 2025年07月17日 星期四 23时05分45秒************************************************************************/#include <stdio.h>int main(int argc,char *argv[])
{int i,j,space;for(i=1;i<=5;i++){for(space = 1;space<=5-i;space++)printf(" ");for(j=1; j<=5;j++){printf("*");}printf("\n");}return 0;
}

运行结果:

总结

        本文涵盖的编程题涉及 C 语言基础语法(循环、条件判断、数组等)和算法逻辑,通过这些实例可以加深对 C 语言的理解与应用。实际编程中,需注意变量初始化、边界条件处理及数据类型选择,避免出现逻辑错误或溢出问题。初学者可在此基础上尝试优化代码,如增加输入校验、扩展功能等,提升编程能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89864.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89864.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/89864.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chapter 3 Design of Switching Power Regulators

Chapter 3 Design of Switching Power Regulators Power Management Techniques for Integrated Circuit Design by Ke-Horng Chen 这本书比较深, 简单介绍基本概念后, 就直接抛出大段公式和结论, 一章讲其他书几章内容, 适合有一定基础, 想进一步做电源系统的人查阅. 优点是不…

算法题(176):three states

审题&#xff1a; 本题需要我们找到最佳铺设道路&#xff0c;将三个国家联通起来&#xff0c;然后输出最佳铺设道路的铺设数量&#xff0c;若没有联通方法则输出-1 思路&#xff1a; 首先我们正面思考&#xff1a;只需从某个点出发然后搜索到三个国家即可&#xff0c;最后对比所…

BIOS+MBR微内核加载loader程序实现过程

上一篇讲到的微内核程序是由BIOS例程自动加载到内存中运行的,而且大小有限,能做的事情有限。我们知道内核程序大小是可以扩展的不能只有512字节,同时在加载运行内核前还需要完成一些必要的实模式下才能做的准备工作。所以单纯在实模式下只使用微内核程序是不太够的,就有了加…

使用Proxy设计模式来增强类的功能:ToastProxy和DesktopToast的设计关系

使用代理模式来增强类的功能&#xff1a;ToastProxy和DesktopToast Documentation: v1.0.0 Specified for Version v1.12.0&#xff0c;First Release in 2025/7/12 Documenation belongs to Projects: Charliechen114514/CCIMXDesktop: This is a Simple Desktop with Common …

瑞芯微2025开发者大会之见闻

序言本人参加了2025年的瑞芯微开发者大会&#xff0c;在展览区看到了很多有意思的音视频产品&#xff0c;下面按照产品类型分类给大家做一下展示。期间并没有将所有展出物进行拍摄&#xff0c;但是基本已经覆盖大部分内容。1、RK3566该芯片内置DSP音频处理器&#xff0c;蓝牙5.…

【最新】Java的几种设计模式详解及适用业务场景

✅ 1. 单例模式&#xff08;Singleton&#xff09; 定义&#xff1a;确保类只有一个实例&#xff0c;并提供全局访问点。优点&#xff1a;节省资源、控制访问。场景&#xff1a;数据库连接池、日志管理器、配置中心。代码要点&#xff1a; 构造方法私有静态变量保存唯一实例公共…

单链表的手动实现+相关OJ题

目录 链表的介绍 单链表的手动实现 单链表的基本框架 打印链表&#xff1a; 获取表长&#xff1a; 头插法新增节点&#xff1a; 尾插法新增节点&#xff1a; 在指定下标插入&#xff1a; 链表的查找 删除链表中第一个出现的key&#xff1a; 删除链表中所有key值 链表…

梯度提升之原理

简介 梯度提升主要是基于数学最值问题 数学描述 目标函数为 obj(θ)∑i1nl(yi,y^i(t))∑k1tw(fk)obj(\theta) \sum_{i1}^n l(y_i, \hat y_i^{(t)}) \sum_{k1}^t w(f_k)obj(θ)i1∑n​l(yi​,y^​i(t)​)k1∑t​w(fk​) 其中ttt表示集成的树的个数&#xff0c;y^i(t)y^i(t−1)…

[学习] Hilbert变换:从数学原理到物理意义的深度解析与仿真实验(完整实验代码)

Hilbert变换&#xff1a;从数学原理到物理意义的深度解析与仿真实验 文章目录Hilbert变换&#xff1a;从数学原理到物理意义的深度解析与仿真实验一、数学原理二、作用与物理意义1.构造解析信号2.相位移动特性3.应用场景三、仿真实验实验1&#xff1a;正弦信号的Hilbert变换实验…

对话弋途科技:当AI重构汽车大脑,一场车载操作系统的“觉醒年代“开始了

&#xff08;图片来源&#xff1a;Pixels&#xff09;站在未来看历史&#xff0c;AI汽车刚刚开始。数科星球原创作者丨苑晶编辑丨大兔当特斯拉的自动驾驶仍在全球引发争议时&#xff0c;中国智能汽车战场已悄然开启第二幕。从"四个轮子的大手机"到"移动智能空间…

❗机器学习量化交易模型全面剖析报告基于因子库的机器学习交易模型构建指南

目录 第一章&#xff1a;机器学习在加密货币量化交易中的应用概述 范式转变&#xff1a;从传统因子到机器学习驱动的策略 为什么选择机器学习&#xff1f;机遇、挑战与核心概念 机遇 挑战 核心概念 第二章&#xff1a;为机器学习准备您的因子库 理解量化因子作为机器学…

内容创作智能体:多模态内容生成的完整解决方案

内容创作智能体&#xff1a;多模态内容生成的完整解决方案 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…

测试学习之——Pytest Day4

Pytest作为Python中功能强大且易于使用的测试框架&#xff0c;深受开发者喜爱。它不仅提供了简洁的测试编写方式&#xff0c;还通过丰富的配置选项、灵活的标记机制和强大的数据驱动能力&#xff0c;极大地提升了测试效率和可维护性。本文将深入探讨Pytest的配置意义与层级、常…

【软件系统架构】系列七:系统性能——路由器性能深入解析

目录 一、路由器的核心功能 二、路由器性能核心指标 1. 吞吐量&#xff08;Throughput&#xff09; 2. 并发连接数&#xff08;Session Capacity&#xff09; 3. 每秒连接数&#xff08;CPS&#xff0c;Connections Per Second&#xff09; 4. 转发延迟&#xff08;Laten…

【数据结构】第一讲 —— 概论

【数据结构】第一讲 —— 概论 文章目录【数据结构】第一讲 —— 概论1.1 基本概念和常用术语1.2 了解数据结构1. 数据结构2. 数据的逻辑结构3. 数据的物理结构&#xff08;存储结构&#xff09;4. 数据的运算1.3 算法的描述和分析1.3.1 算法的描述1.3.21.1 基本概念和常用术语…

全面解析MySQL(2)——CRUD基础

1.CreateCreate(创建)&#xff1a;添加新数据到数据库中#基础语法 insert into table_name (column1,column2,column3, ...) values (value1,value2,value3, ...);1.1 单行全列插入value中值的数量和顺序必须和column⼀致describe demo1; -----------------------------------…

某外企笔试总结——纯C语言

这里写自定义目录标题一、sizeof 计算&#xff08;32位环境&#xff09;二、简答题三、数据存储区域与可修改性四、字符串比较输出及原因五、数组指针运算输出六、字符串倒序代码错误排查七、下面程序可以把1维数组转为2维数组&#xff0c;然后调用 printArr2D 打印出数组内容&…

Qt Graphs 模块拟取代 charts 和 data visualization还有很长的路要走

近期关注 Qt 6.10 的分支进展&#xff0c; 发现了 Qt 6.10 的 charts 和 data visualization &#xff08;以下简称 DV&#xff09;已经被deprecated, 功能将会合并到 graphs 模块。如果后面 charts\ DV 被弃用&#xff0c;那算是很大的API变化了。从Qt 6.5 以后开始引入的 gra…

2025牛客暑期多校训练营2(部分补题)

题目链接&#xff1a;牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ B Bitwise Perfect 思路 考虑到由&#xff0c;那么只有变小的时候对答案的贡献才能够减少&#xff0c;从二进制的角度考虑什么时候变小&#xff0c;只有min(x,y)中的最高位1异或之后变…

Nginx的location匹配规则

Nginx的location匹配规则 为什么你的Nginx配置总是不生效&#xff1f; 改了Nginx配置无数次&#xff0c;reload命令执行了几十遍&#xff0c;浏览器访问时却依然返回404&#xff1f;运维工程师小张上周就遇到了这个问题&#xff1a;明明配置了location /static/ { root /var/ww…