




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 1 编写一程序 在屏幕上输出如下内容 X X X 0 0 0 include void main printf X X X n 注意转义字 符 n 的用法 printf n printf n printf n printf 0 0 0 n 1 2 输出 Hello world 语句 include void main printf Hello world n 2 1 编写一程序 接受用户输入的两个整 数 并计算它们的和 差 积 商 程序 运行结果应如下所示 注意 尖括号部分表示用户输入数据或要 被替换的输出内容 尖括号本身并不需要 输入或输出 多使用几组整数尝试一下 你发现了什么 The program gets two integers and computes their sum difference product and quotient The first number The second number Results as follows include void main int a b printf The program gets two integers and computes their sum difference product and quotient n printf The first number scanf d printf The second number scanf d printf Results as follows n printf d d d n a b a b printf d d d n a b a b printf d d d n a b a b printf d d f n a b 1 0 a b 做除法时要注意 除得的结果是实数 2 2 输入半径 r 的值 求出圆周长 圆面 积 include define PI 3 14 void main int r float zhouchang mianji printf please input r scanf d zhouchang 2 PI r mianji 2 PI r r printf zhouchang f n zhouchang printf mianji f n mianji 3 1 如何实现下述输出要求 A 输出整数 1234 输出共占 8 位 数据 左对齐 B 输出整数 1234 输出共占 10 位 数 据右对齐 C 输出十六进制整数 0 xFFDE3C02 输 出共占 8 位 数据左对齐 D 输出十六进制整数 0 xFFDE3C 输出 共占 8 位 数据右对齐 前补 0 E 输出浮点数 10 36 输出共占 6 位 数 据右对齐 F 输出浮点数 123 4567890 输出共占 12 位 精度 6 位 数据右对齐 G 输出浮点数 123 4567890 精度 3 位 数据左对齐 include define PI 3 14 void main printf 8d n 1234 printf 10d n 1234 printf 8X n 0 xFFDE3C02 printf 00 X n 0 xFFDE3C printf 6 2f n 10 36 printf 12 6f n 123 4567890 printf 3f n 123 4567890 3 2 编制程序 接受用户输入的数值 输 出以该值为半径的圆面积 以该值为半径的球体表面积与体积 pi 取 值 3 1415926536 结果保留 10 位有效数字 include define PI 3 1415926536 void main float r yuan qiu tiji 分别为半径 圆 面积 球面积 球体积 printf please input r scanf f yuan PI r r qiu 4 PI r r tiji 4 0 3 PI r r r printf yuan f nqiu f ntiji f n yu an qiu tiji 4 1 给出一个百分制成绩 要求输出成绩 等级 A B C D E 90 分以上为 A 80 89 分为 B 70 79 分为 C 60 69 分为 D 60 分以下为 E 分别用 if 和 switch 语句实现 include void main int score printf please input score scanf d switch score 10 case 10 case 9 printf A n break case 8 printf B n break case 7 printf C n break case 6 printf D n break default printf E n 以下为 if 结构 include void main int score printf please input score scanf d if score 90 printf A n else if score 80 printf B n else if score 70 printf C n else if score 60 printf D n else printf E n 5 1 使用循环结构打印下述图形 打印行 数 n 由用户输入 图中每行事实上包括两 部分 中间间隔空格字符数 m 也由用户输 入 include void main int n 行数 int i j i 为行的循 环变量 j 是普通的循环变量 printf please n scanf d for i 1 i n i 外层循环 i 控制行数 for j 1 j n i j printf for j 1 j 2 i 1 j 输出星号 printf for j 1 j 1 j 输 出星号 printf printf n 5 2 编制程序 按照下述格式打印九九乘 法表 Nine by nine Multiplication Table 1 2 3 4 5 6 7 8 9 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81 include void main int i j printf Nine by nine Multiplication Table n printf n printf n for i 1 i 9 i printf 4d i printf n n for i 1 i 9 i 此双循 环结构为本题核心 printf d i for j 1 j i j printf 4d i j printf n printf n 5 3 存在自然数 其所有小于自身的因子 之和等于该数 这样的数称为完数 设计算法 判断某个给定的自然数 n 是否 为完数 要求具有容错处理功能 include void main int n int sum 0 sum 保存自然数 n 的因 子之和 int i printf please input n scanf d for i 1 i n i if n i 0 sum i if n sum 注意判断相等要用 运算符 而不是 printf yes n else printf no n 6 1 按照下述格式打印 2009 年 5 月日历 Calander 2009 5 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 include void main int i printf Calander 2009 5 n printf n printf Su Mo Tu We Th Fr Sa n printf n for i 0 i 5 i printf for i 1 i 31 i printf 4d i if i 7 2 printf n printf n n 6 2 打印所有 100 至 999 之间的水仙花数 所谓水仙花数是指满足其各位数字立方和 为该数字本身的整数 include void main int i j k m i j k 分别表示百位 十位 个位数字 for m 100 m 1000 m i m 100 j m i 100 10 k m i 100 j 10 10 if m i i i j j j k k k printf d n m 6 3 接受用户输入的正整数 n 计算 f n 1 1 2 1 3 1 n 的值 include void main int n p 1 i float sum 0 printf please input n scanf d for i 1 i n i p p i sum 1 0 p printf sum f n sum 6 4 接受用户从键盘输入的年份值与月份 值 打印 2009 年以后 含 任意月份的日 历 2009 年前的拒绝打印 include void main int i 循环变量 int j day j 表示周一的位 置 day 表示月的天数 int year month run 输入的年 月份 run 为闰年的标识 long x 0 x1 0 x2 0 输入的年月之 前共有多少天 x 为总天数 x1 是之前年天数 x2 是当年前面月天数 printf Please input year scanf d 输入年份 printf Please input month scanf d 输入月份 求得输入的年月之前有多少天 x x1 x2 x1 是之前年天数 x2 是当年前 面月天数 for i 2009 i year i if i 4 0 else x1 x1 365 if year 4 0 else run 0 for i 1 i month i if i 4 i 6 i 9 i 11 x2 x2 30 else if i 2 x2 x2 31 else if i 2 else x2 x2 28 x x1 x2 求得输入的年月之前有多少天 x 然后下面的事可操作 printf n printf Su Mo Tu We Th Fr Sa n printf n 确定星期一 是第几个位置 用前面的天数余 7 然后对 应位置 这里假定 2009 年 1 月 1 日是星期 4 如果不是 switch 规则也要更改 switch x 1 7 case 0 j 4 break case 1 j 5 break case 2 j 6 break case 3 j 7 break case 4 j 1 break case 5 j 2 break case 6 j 3 break 定输入的月 份有多少天 if month 4 month 6 month 9 mont h 11 day 30 else if month 2 day 31 else if month 2 else day 28 确定 j 和 day 后 开始输出 for i 1 i j i 将周一放到正 确的位置 printf 每个位置是 4 个空格 for i 1 i day i printf 4d i if i 7 j 1 7 0 printf n printf n 7 1 编程实现用数组打印 Fibonacci 数列的 前 20 项 include void main long a 30 i a 0 a 1 0 a 2 1 for i 3 i 21 i a i a i 1 a i 2 a i 3 for i 0 i 20 i if i 0 printf d t a i 7 2 编程实现从键盘输入的一组数中找出 其中最大值和最小值 include void main int a 10 max min i for i 0 i 10 i scanf d max min a 0 max min 赋初值 for i 0 i 9 i if maxa i min a i printf max d min d n max min 7 3 编程实现用一 二维数组分别输出杨 辉三角 include 用二维数组输出杨 辉三角形 void main int a 10 10 i j for i 0 i 10 i 将杨辉三角形中值 为 1 的数输入 a i i 1 a i 0 1 for i 2 i 10 i 从第 3 行第 2 列 开始 计算 2 维数组中的值 外循环控制行 数 for j 1 j i 1 j 内循环控制 列 结束条件根据规律正好是行数减 1 a i j a i 1 j a i 1 j 1 for i 0 i 10 i 输出 2 维数组 for j 0 j 10 j printf 5d a i j if i j 1 当行数小于列数 1 就回车 这样后面的 0 不输出 printf n break include 用一维数组输出杨 辉三角形 void main int a 10 1 b 10 1 int i j for i 0 i 10 i 外层循环 控制输 出行数 确定每行数是什么 也相当于列 了 然后输出 for j 1 j i j 确定每 行的数组元素 a j b j b j 1 for j 1 j i j 保存到 数组 b 中做备份 b j a j for j 0 j i j 输出这 些数组元素 printf 5d a j printf n 回车 8 1 编程实现将二维数组行列元素互换 include void main int a 3 4 b 4 3 int i j for i 0 i 3 i 对数组 a 赋值 for j 0 j 4 j scanf d for i 0 i 3 i 得到数组 b for j 0 j 4 j b j i a i j for i 0 i 4 i 输出数组 b for j 0 j 3 j printf 4d b i j printf n 8 2 编程实现求二维数组中最大元素值及 其行号 列号 include void main int a 3 4 max hang lie int i j for i 0 i 3 i 对数组 a 赋值 for j 0 j 4 j scanf d max a 0 0 hang 0 lie 0 赋初 值 for i 0 i 3 i for j 0 j 4 j if max a i j max a i j hang i lie j printf max d nhang d nlie d n max hang lie 8 3 假设有一对兔子 一个月后成长为大 兔子 从第二个月开始 每对大兔子生一 对小兔子 不考虑兔子的死亡 设计算法 求第 n 个月的兔子总数 此题是杨辉三角形的变型题 include 用一维数组输出杨 辉三角形 void main int a 10 1 b 10 1 int i j sum 0 n scanf d for i 0 i n i 外层循环 控制输 出行数 确定每行数是什么 也相当于列 了 然后输出 for j 1 j i j 确定每 行的数组元素 a j b j b j 1 for j 1 j i j 保存到 数组 b 中做备份 b j a j for i 0 i n i sum sum a i printf d n sum 9 1 编写一个函数 max 用于比较两个整 数的大小 include int max int x int y return x y x y void main int a b scanf d d printf max d n max a b 9 2 编写一函数 IsPrime 判断某个大于 2 的正整数是否为素数 include include int IsPrime int x int i for i 2 in 将 m 和 n 比较 大的数字放在 n 中 temp n n m m temp p m n 计算两个数的乘积 为了在后面求最小公倍数 while m 0 用循环和求余数的 方法计算 m 和 n 的最小大公约数 放在 n 中 r n m n m m r printf zuidagongyueshu d n n printf zuixiaogongbeishu d n p n 输出最小公倍数 10 2 使用递归的方法实现求 n 的函数 f n include long fun long n long s if n 1 return 1 递归结束条件为 n 1 else s n fun n 1 return s void main int n printf Please input n scanf ld printf d ld n fun n 11 1 编写通用的排序的函数 实现冒泡 选择排序方法 include void maopao int a int n 冒泡排序 函数 int i j t for i 0 i n 1 i for j 0 ja j 1 t a j a j a j 1 a j 1 t void xuanze int a int n 选择排序函 数 int i j t for i 0 i n 1 i for j i 1 ja j t a i a i a j a j t void main int a 10 i for i 0 i 10 i scanf d maopao a 10 xuanze a 10 for i 0 i 10 i printf 4d a i 11 2 给定一个自然数 n 求其各位数字之 和 重复上一过程 一直得到 1 9 之间的 数 例如数 1234 的各位数字之和为 10 继续 计算 得到 10 的各位数字之和为 1 没有用子函数 而是通过 goto 语句来反 复运算 其实反复调用同样一种算法就是递归 即 自己调用自己 通过 goto 的方式了解了这 个原理以后 再写成递归函数的形式就容 易些了 include void main long n 输入的数 int s 各位数之和 printf please input x 1 4294967295 scanf d L1 s 0 while n s n 10 n 10 if s 10 n s printf d n s 输出每次求 得得和 可做验证用 goto L1 printf d n s 递归方法 include int fun long n int s 0 s 0 while n s n 10 n 10 if s 10 return s else return fun s void main long n 输入的数 printf please input x 1 4294967295 scanf d printf d n fun n 11 3 题目 编写一掷骰子游戏 首先由计 算机生成一个随机数 然后接受用户输入的字符串 g 命令后生 成用户的随机数 模拟用户掷了一次骰子 比较它们的大小 如果用户得到的随机数 小于计算机得到的 则输出用户输了 否 则输出用户赢了 include include include void main int jsj 计 算机将生成的随机数 int ren 人产生的随机数 srand unsigned time NULL jsj rand 11 2 既然是骰子 假设 2 颗 点数就是 2 到 12 那么 y 12 x 2 即 rand Y X 1 X printf computer point d go or not jsj if getchar g 如果 输入的是字母 g ren rand 11 2 printf people point d n ren if ren jsj printf people win n else printf computer win n 11 4 编写一函数 返回 1 52 之间的随机 数 模拟发不含大小王牌的扑克牌 将生 成的随机数映射为每张扑克牌 按照花色 梅花 方块 红桃 黑桃 和 大小 2 10 J Q K A 顺序进行映射 include include include int fun srand unsigned time NULL return rand 52 1 生成随即机 数 1 52 void main int n p i j n fun i n 4 余得得数 就是 1 2 3 0 中得一个 switch i 将余得的数 对应成正确得花色对应 ASCII 码 case 1 i 5 break 草花 case 2 i 4 break 方片 case 3 i 3 break 红桃 case 0 i 6 黑桃 j n 1 4 2 将 1 52 映射 成扑克牌 2 3 4 5 14 p j switch p 将 11 12 13 14 映射成 J Q K J case 11 p J break case 12 p Q break case 13 p K break case 14 p A printf d n n if j 10 printf c d n i p else printf c c n i p 11 5 面向小学 1 2 年级学生 随机选择两 个整数和加减法形成算式要求学生解答 要求 1 只出 10 道题 每题 10 分 程 序结束时显示学生得分 2 确保算式没有超出 1 2 年级的水平 只允许进行 50 以内的加减法 不允许两数 之和或之差超出 0 50 的范围 负数更是不 允许的 3 每道题学生有三次机会输入答案 当学生输入错误答案时 提醒学生重新输 入 如果三次机会结束则输出正确答案 4 对于每道题 学生第一次输入正确 答案得 10 分 第二次输入正确答案得 7 分 第三次输入正确答案得 5 分 否则不得分 5 当学生输入了正确得数后 随机显 示评价结果 例如 Right Correct That s the answer 等 若答案错误 则按照 No the answer is 输出答案 include include include fun2 计算学生每题得分 int fun2 int a3 int x x 为学生输入的结果 scanf d if x a3 return 10 else printf wrong again scanf d if x a3 return 7 else printf wrong again scanf d if x a3 return 5 else return 0 fun1 确定运算是加法还 是减法以及相应标准答案 int fun1 int a1 int a2 int a3 标准答案 char bln 加法或减法 的标识 if rand 2 1 只产生 0 或 1 不妨设置 1 为加法 0 为减法 a3 a1 a2 bln else a3 a1 a2 bln printf 3d 2c 3d a1 bln a2 return fun2 a3 void main int a1 a2 i sum 0 a1 a2 为 计算机随机生成的数 sum 为最终学生得分 srand unsigned time NULL 做种 for i 1 i 0 25 a2 rand 26 while a1 a2 产生 的第二个随机数要比第一个数小 以便做 减法运算 a1 a2 不能是 a1 a2 因为写成 a1 a2 的话 如果 a1 0 就进行不下去了 a2 rand 26 printf d i 输入题目标 号 sum sum fun1 a1 a2 printf printf nYour total score is 4d n sum 12 1 编写函数 求包含 n 个元素的整数数 组中元素的平均值 要求在函数内部使用 指针操纵数组元素 include float fun int p float sum 0 int q p for p q 10 p sum sum p return sum 10 void main int a 10 int i float ave for i 0 i 10 i scanf d ave fun a 调用 fun 函数计算平均 值 参数传递方式为 数组名做实参 传 递的是地址 printf f n ave 12 2 题目 独立实现标准字符串库的 strcmp 函数 题意是编写一个自定义函数 实现 strcmp 函数的功能 而不是让我们去调用 strcmp 函数 那么做题之前就要弄清楚 strcmp 的原型 及含义 查书后附录的函数表可找到 include int fun char p char q int i for i 0 p i 0 q i 0 i if p i q i return 1 if p i q i return 1 return 0 void main char a 100 char b 100 int x printf please input string a gets a printf please input string b gets b x fun a b 数组名做实参 传递的是地址 printf d n x 13 2 接受用户输入的整数 n 随机生成 n 个 0 100 间的整数 使用动态数组存储所有元素 分别统计 0 59 60 84 85 100 之间的元素个数 include include include include int fun int p int n int x int y 参数分别 是 数组 元素个数 下限 上限 int i num 0 for i 0 i x return num void main int n i num1 num2 num3 int p NULL printf please input n scanf d p int malloc sizeof int n 生成动 态数组 生成一段连续空间 p 指向其首地 址 srand unsigned time NULL for i 0 i n i 对 确定的动态数组赋值 p i rand 101 1 for i 0 i n i 输 出 10 个数 printf 4d p i num1 fun p n 0 59 计 算各区间数的个数 num2 fun p n 60 84 num3 fun p n 85 100 free p 清 空分配的内存 printf nnum1 2d nnum2 2d nnum 3 2d n num1 num3 num3 14 1 给定字符串 s 其内容为英语长句 其中包含英语单词 标点符号 空格等内 容 每个英语单词使用标点符号 一个或多个 空格分隔 将英语长句分隔成英语单词序 列输出 并输出其单词数目 include include int fun char s char p NULL q NULL p 表示 每个单词的初始位置 q 表示每个单词的结 束位置 int num 0 p q s while p 0 p 从字符串 s 的初始位开始 直到 s 最后 for p a q 确定 q 的位置 q 是每个 单词结束位置 for p q p 输出单 词 putchar p putchar n return num void main char s 100 puts please input article gets s printf number of word d n fun s 14 2 有 3 个学生 每个学生的数据包括学 号 三门课的成绩 要求用 input 函数实现从键盘输入学生数 据 用 average 函数求每个人的平均分 用 output 函数打印学生数据及平均成绩 include struct student 定义全局结构体类型 student int number float score 3 float average struct student p 计算平均值函数 形参是结构体变量 int i float sum 0 for i 0 i 3 i sum sum p score i return sum 3 void output struct student stu 输出结构体函数 形参是结构体指针 int i j printf n for i 0 i 3 i printf d stu i number for j 0 j 3 j printf 6 2f stu i score j printf ave 2f n average stu i 题目中说用 output 函数输出平均值 而平均值又让编 写成一个函数 那么这里采用 out 中调用 average 函数 printf n void input struct student stu 对结构体数组赋值函数 形参是结构体指 针 int i j for i 0 i 3 i printf stu d nnum i 1 scanf d printf score for j 0 j 3 j scanf f void main struct student stu 3 定义结构体数组 input stu 数组名做参数 传递的是地址 output stu 14 3 静态链表的建立 有三个学生 包括 学号 sno char 8 姓名 sname char 20 分数 grade float 定义结构体类型数组存学生信息 使用链 表所有学生 实现链表的输入输出 静态的书上有原题目 我写成动态的了 用子函数的方式实现 include include include struct stu 定义全局结构体 char sno 8 char sname 20 float grade struct st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产C证考试高频题库解析及答案
- 涉车类警情处置考试题库及答案
- 上海高级钳工实操考试题库及答案
- 陕西省小升考试题及答案
- triz创新方法试题和答案
- 2024版正式的担保借款合同范本
- 2025年策划保密协议书(离职版)
- 农产品质量安全检测实验室质量控制案例分析试题及答案
- 融智煤炭操作考试题及答案
- 护肤考试题及答案
- 2025至2030年中国分时度假行业市场运营现状及投资规划研究建议报告
- 孕期甲状腺功能课件
- 2025年财政部高层次财会人才选拔考试历年参考题库含答案详解(5套)
- 电子技术基础说课
- 2025年保密观试题题库及答案
- 2024年四川泸州医疗卫生辅助岗位招募笔试真题
- 旅行团队管理办法
- 2025年秋期部编版四年级上册小学语文教学计划+教学进度表
- 2025安宁疗护实践指南(试行)知识测试试题及答案
- 2025年时事政治试题库及答案(共550题)
- 中国城市轨道交通全自动运行系统技术指南
评论
0/150
提交评论