版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言经典编程100题第一部分:基础语法篇(1-10题)本部分聚焦C语言基本语法、变量、常量、运算符及简单输入输出,夯实编程基础,适合初学者入门练习。题目1:打印“Hello,World!”——最基础的C语言程序,熟悉程序结构、预处理指令及printf函数的使用。题目2:计算两个整数的和与差——定义整型变量,接收用户输入,使用算术运算符计算并输出结果。题目3:求三个整数中的最大值——利用条件运算符或if-else语句,比较三个数的大小并输出最大值。题目4:判断一个整数是奇数还是偶数——通过取余运算符%判断整数能否被2整除,区分奇偶性。题目5:将摄氏度转换为华氏度——根据公式F=C×9/5+32,实现温度单位转换,熟悉浮点型运算。题目6:计算圆的面积和周长——定义圆周率常量,接收圆的半径,利用公式计算面积(πr²)和周长(2πr)。题目7:使用sizeof运算符计算各数据类型的字节数——熟悉char、short、int、long、float、double等基本数据类型的内存占用。题目8:输入一个字符,判断其是否为大写字母、小写字母或数字——利用ASCII码范围判断字符类型。题目9:计算两个整数的乘积,若乘积大于100则输出乘积,否则输出两数之和——结合算术运算与条件判断。题目10:使用条件运算符求两个数的最小值——掌握条件运算符(?:)的简洁用法,替代简单的if-else语句。第二部分:循环结构篇(11-25题)本部分重点练习for、while、do-while三种循环结构,结合条件判断,解决重复执行类问题,培养逻辑思维。题目11:打印1到100的所有整数——使用for循环遍历,熟悉循环变量的初始化、条件判断和自增操作。题目12:打印1到100的所有奇数——利用循环结合取余运算,筛选出奇数并输出。题目13:计算1到100的所有整数之和——使用循环累加,掌握循环体内的累加逻辑。题目14:计算1到n的阶乘(n由用户输入)——通过循环实现乘法累加,注意阶乘的范围(避免溢出)。题目15:打印9×9乘法表——使用双重for循环,外层控制行数,内层控制列数,注意格式对齐。题目16:输入一个正整数,判断其是否为质数(素数)——循环遍历2到sqrt(n),判断是否能被整除。题目17:打印100到200之间的所有质数——结合循环与质数判断逻辑,批量筛选质数。题目18:计算斐波那契数列的前20项——斐波那契数列:1,1,2,3,5,...,使用循环实现递推。题目19:输入一个整数n,打印n行的等腰三角形(用*表示)——双重循环控制行数和每行的*数量,利用空格实现居中。题目20:输入一个整数,反转该整数(如输入123,输出321)——利用循环取余获取每一位数字,再拼接成反转后的数。题目21:计算1+1/2+1/3+...+1/n的和(n由用户输入)——循环累加分数,注意浮点型精度问题。题目22:打印1到n之间的所有完数(完数:因子和等于自身的数,如6=1+2+3)——循环筛选因子并累加判断。题目23:使用do-while循环实现输入一个正整数,若输入错误则重新输入——熟悉do-while循环“先执行后判断”的特性。题目24:打印1到n的所有水仙花数(水仙花数:三位数,各位数字的立方和等于自身,如153=1³+5³+3³)——循环遍历三位数,拆分各位数字并判断。题目25:计算两个正整数的最大公约数(GCD)——使用辗转相除法(欧几里得算法),通过循环实现余数迭代。第三部分:数组篇(26-45题)本部分练习一维数组、二维数组的定义、初始化、遍历及常见操作,掌握数组的核心用法,解决批量数据处理问题。题目26:定义一个一维数组,存储10个整数,求数组的最大值和最小值——遍历数组,逐一比较更新最值。题目27:定义一个一维数组,存储10个整数,计算数组所有元素的和与平均值——遍历数组累加,再计算平均值(注意浮点型转换)。题目28:将一维数组的元素逆序存放(如原数组[1,2,3,4,5],逆序后[5,4,3,2,1])——利用循环交换首尾元素。题目29:输入10个整数存入数组,找出其中的质数并输出——结合数组遍历与质数判断逻辑。题目30:定义一个数组,统计数组中某个指定元素出现的次数(元素由用户输入)——遍历数组,计数匹配元素。题目31:将两个一维数组的对应元素相加,结果存入第三个数组——遍历两个数组,逐元素相加并赋值。题目32:定义一个二维数组(3行4列),初始化后打印出所有元素——使用双重循环遍历二维数组。题目33:计算二维数组(3行4列)所有元素的和——双重循环累加二维数组的每一个元素。题目34:找出二维数组中的最大值及其所在的行号和列号——遍历二维数组,记录最值及坐标。题目35:实现二维数组的转置(行变列,列变行)——定义转置后的数组,通过双重循环赋值。题目36:输入10个整数存入数组,对数组进行升序排序(冒泡排序)——掌握冒泡排序的核心逻辑(相邻元素比较交换)。题目37:输入10个整数存入数组,对数组进行降序排序(选择排序)——掌握选择排序的核心逻辑(选择最值交换位置)。题目38:在有序数组中插入一个指定元素,保持数组的有序性(升序)——找到插入位置,移动元素后插入。在有序数组中查找指定元素,若存在则输出其下标,否则输出“不存在”(顺序查找)——遍历数组逐一匹配。题目40:在有序数组中查找指定元素,使用二分查找法(效率更高)——利用数组有序性,不断缩小查找范围。题目41:删除数组中指定的元素(若有多个,删除第一个)——找到元素下标,移动后续元素覆盖该位置。题目42:将数组中的重复元素去重,保留一个(如原数组[1,2,2,3,3,3],去重后[1,2,3])——遍历数组,筛选不重复元素存入新数组。题目43:打印杨辉三角(前10行)——利用二维数组,规律:每行首末元素为1,中间元素等于上一行相邻两个元素之和。题目44:定义一个数组,存储10个随机整数(1-100),并打印出来——使用rand()函数生成随机数,注意初始化随机种子。题目45:计算一维数组中所有偶数元素的和——遍历数组,筛选偶数并累加。第四部分:字符串篇(46-60题)本部分练习字符串的定义、输入输出、遍历及常见操作,熟悉字符数组的用法,掌握字符串处理的核心技巧。题目46:输入一个字符串,计算字符串的长度(不使用strlen函数)——遍历字符数组,统计非'\0'的字符个数。题目47:输入一个字符串,将其转换为大写字母(不使用strupr函数)——利用ASCII码,小写字母比大写字母大32,遍历转换。题目48:输入一个字符串,将其转换为小写字母(不使用strlwr函数)——同理,大写字母转换为小写字母,减去32。题目49:输入一个字符串,判断其是否为回文字符串(如“abba”“abcba”)——对比字符串首尾字符,逐一向中间靠拢。题目50:输入两个字符串,拼接成一个新字符串(不使用strcat函数)——将第一个字符串复制到新数组,再拼接第二个字符串。题目51:输入两个字符串,比较其大小(不使用strcmp函数)——逐字符对比ASCII码,直到找到不同字符或字符串结束。题目52:输入一个字符串,统计其中大写字母、小写字母、数字和其他字符的个数——遍历字符串,根据ASCII码范围判断字符类型并计数。题目53:输入一个字符串,删除其中的指定字符(如删除所有'a')——遍历字符串,将非指定字符存入新数组。题目54:输入一个字符串,替换其中的指定字符(如将所有'a'替换为'b')——遍历字符串,匹配到指定字符则替换。题目55:输入一个字符串,反转字符串(如“hello”反转为“olleh”)——利用循环交换字符串首尾字符。题目56:输入一个字符串,找出其中出现次数最多的字符及其出现次数——遍历字符串,统计每个字符的出现次数,再找出最大值。题目57:输入一个句子(多个单词,用空格分隔),统计句子中单词的个数——遍历字符串,判断空格前后的字符,计数单词。题目58:将字符串中的空格替换为下划线(如“helloworld”替换为“hello_world”)——遍历字符串,匹配空格则替换为下划线。题目59:输入一个字符串,判断其是否为纯数字字符串(如“12345”是,“12a34”不是)——遍历字符串,判断每个字符是否为数字。题目60:输入两个字符串,判断第二个字符串是否为第一个字符串的子串(如“abc”是“abcdef”的子串)——遍历主字符串,匹配子串的每一个字符。第五部分:函数篇(61-75题)本部分练习函数的定义、调用、参数传递(值传递、地址传递)及返回值,掌握函数的封装思想,简化代码结构。题目61:编写一个函数,求两个整数的最大值——将最大值判断逻辑封装为函数,调用函数输出结果。题目62:编写一个函数,判断一个整数是否为质数——将质数判断逻辑封装为函数,返回布尔值(1或0)。题目63:编写一个函数,计算一个整数的阶乘——封装阶乘计算逻辑,通过函数返回阶乘结果。题目64:编写一个函数,计算两个正整数的最大公约数(GCD)——封装辗转相除法,函数返回最大公约数。题目65:编写一个函数,计算两个正整数的最小公倍数(LCM)——利用公式LCM(a,b)=a*b/GCD(a,b),调用GCD函数实现。题目66:编写一个函数,将一维数组的元素逆序存放——通过地址传递,直接修改原数组的值。题目67:编写一个函数,对一维数组进行冒泡排序(升序)——封装冒泡排序逻辑,通过地址传递操作数组。题目68:编写一个函数,计算一维数组所有元素的和——封装累加逻辑,函数返回数组总和。题目69:编写一个递归函数,计算n的阶乘——利用递归思想,函数调用自身,终止条件为n=1。题目70:编写一个递归函数,求斐波那契数列的第n项——递归实现斐波那契递推逻辑,注意优化重复计算。题目71:编写一个函数,判断一个字符串是否为回文字符串——封装回文判断逻辑,函数返回布尔值。题目72:编写一个函数,计算字符串的长度(模拟strlen函数)——封装字符串长度统计逻辑,返回长度值。题目73:编写一个函数,拼接两个字符串(模拟strcat函数)——通过地址传递,将第二个字符串拼接到第一个字符串末尾。题目74:编写一个函数,交换两个整数的值(通过地址传递,实现真正交换)——利用指针修改原变量的值。题目75:编写一个函数,打印指定行数的等腰三角形(用*表示)——封装三角形打印逻辑,通过参数控制行数。第六部分:指针篇(76-85题)本部分练习指针的定义、赋值、取值、指针与数组、指针与字符串的关联,掌握指针的核心用法,理解内存地址的概念。题目76:使用指针交换两个整数的值——定义指针变量,通过指针操作原变量的内存地址,实现交换。题目77:使用指针遍历一维数组,打印数组所有元素——利用指针自增,访问数组的每一个元素。题目78:使用指针求一维数组的最大值和最小值——通过指针遍历数组,对比更新最值。题目79:使用指针计算一维数组所有元素的和——利用指针遍历数组,累加元素值。题目80:使用指针反转一维数组的元素——定义两个指针(首指针和尾指针),交换指针指向的元素,逐步向中间靠拢。题目81:使用指针操作字符串,将字符串转换为大写字母——通过指针遍历字符串,修改每个字符的ASCII码。题目82:使用指针判断字符串是否为回文字符串——利用首尾指针,对比指针指向的字符。题目83:使用指针拼接两个字符串——通过指针操作,将第二个字符串的字符逐一复制到第一个字符串末尾。题目84:定义一个指针数组,存储5个字符串,打印所有字符串——利用指针数组遍历,访问每个字符串。题目85:使用指针作为函数参数,修改数组的值——将数组名(指针)传入函数,通过指针修改原数组元素。第七部分:结构体与共用体篇(86-90题)本部分练习结构体的定义、初始化、成员访问,以及共用体的基本用法,掌握自定义数据类型的应用。题目86:定义一个结构体(学生),包含学号、姓名、年龄、成绩,输入一个学生的信息并打印——熟悉结构体的定义和成员访问。题目87:定义一个结构体数组(存储5个学生信息),输入所有学生信息,打印出成绩大于80分的学生信息——结构体数组的遍历与条件筛选。题目88:定义一个结构体(学生),编写函数,根据学号查找学生信息并返回——结构体作为函数参数和返回值。题目89:定义一个共用体,包含int、char、float三种类型,赋值其中一种类型,打印所有类型的值——理解共用体“共用内存”的特性。题目90:定义一个结构体(员工),包含工号、姓名、工资,对员工数组按工资降序排序并打印——结构体数组的排序。第八部分:文件操作篇(91-95题)本部分练习文件的打开、关闭、读写操作,掌握文件指针的用法,实现数据的持久化存储。题目91:编写程序,向文件中写入一行字符串(如“C语言经典编程100题”),然后读取该文件内容并打印——熟悉文件的写入和读取操作。题目92:编写程序,将1到100的所有整数写入文件,再从文件中读取并打印出来——批量写入和读取整数。题目93:编写程序,读取一个文本文件,统计文件中的字符个数、单词个数和行数——文件遍历与统计。题目94:编写程序,将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省杭州市杭州市萧山区高桥初级中学2025-2026学年普通高中毕业班单科质量检查数学试题含解析
- 浙江省温州市六校2026届初三5月质检英语试题含解析
- 陕西省西安市高新第一中学2026年初三下期入学检测试题数学试题含解析
- 陕西省西安市西安交大附中2025-2026学年初三第二次模拟测试英语试题含解析
- 浙江省宁波市余姚市重点名校2026年初三化学试题质量调研卷(文理合卷)含解析
- 浙江省宁波市镇海区重点达标名校2026年中考二轮物理试题1-4月复习专号数理报含解析
- 武汉市2026届初三下学期期初学情调研考试数学试题试卷含解析
- 2025 高中时评类阅读理解之文化传承创新问题课件
- 2026年精密机械装配工艺与检测
- 2026年机械设计大赛作品展示
- DB31/T 5000-2012住宅装饰装修服务规范
- 钢结构预拼装方案及标准
- 马工程西方经济学(精要本第三版)教案
- 【初中 语文】第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
- GenAI教育在不同场景下的应用案例分析与演进路径
- GB/T 44815-2024激光器和激光相关设备激光束偏振特性测量方法
- 某爱琴海购物中心开业预热推广方案
- 口腔颌面部肿瘤-血管瘤与脉管畸形的诊疗
- 康复质控中心建设思路和工作计划
- GB/T 44457-2024加氢站用储氢压力容器
- 和父亲断绝联系协议书范本
评论
0/150
提交评论