C语言程序设计实验与习题答案.doc

上传人:w****2 文档编号:6592780 上传时间:2020-02-29 格式:DOC 页数:38 大小:124KB
返回 下载 相关 举报
C语言程序设计实验与习题答案.doc_第1页
第1页 / 共38页
C语言程序设计实验与习题答案.doc_第2页
第2页 / 共38页
C语言程序设计实验与习题答案.doc_第3页
第3页 / 共38页
点击查看更多>>
资源描述
2 程序填空 1 以下程序的功能是计算 1 50 之间能被 7 整除的整数之和 include void main int i sum 0 for i 1 50 i if i 7 0 sum i printf sum d n sum 2 下面程序接收来自键盘的输入 直到输入 Z 值 为 1 键为止 这些字符被原样输出 但若有连续一个以上的空 格时只输出一个空格 请填空 include void main char cx char front while cx getchar n if cx putchar cx if cx if front putchar cx front cx 3 程序改错 1 下列程序的功能是求 1 3 5 99 的和 include void main int s i int s 0 i i 1 while i 99 s s i s s i i printf 1 3 5 99 的和是 d n s 2 下面程序的功能是输入一个正整数 判断是否是素数 若 为素数输出 1 否则输出 0 include void main int i x y 0 y 1 scanf d for i 2 i x 2i if x i 0 y 0 x i 0 printf d n y 4 设计性实验 1 题 方法 1 精度控制 include include main int s float n t pi t 1 pi 0 n 1 0 s 1 while fabs t 1e 6 pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 方法 2 次数控制 include include main int s long times float n t pi t 1 pi 0 n 1 0 s 1 for times 1 times 1e9 times pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 2 题 main int i j frame double wheattal 0 double wheatfnu 1 printf Please input frame s numbers scanf d for i 0 i frame i wheattal wheatfnu wheatfnu wheatfnu printf n Total wheattatol s timeter e n wheattal 1 40e8 3 题 方法一 使用递推公式 n n 2 main int i n 1 double s 0 t 1 for i 1 i 20 i t n s t n 2 printf s lf s getch 方法二 使用通项公式 2 i 1 main int i double s 0 t 1 for i 1 i 20 i t 2 i 1 s t printf s lf s getch 方法三 include stdio h main long total sum m n t total 0 for m 1 m 20 m sum 1 t 1 for n 1 n m n sum sum t t t 2 total total sum printf total ld total 2 程序填空 1 以下程序的功能是计算 1 50 之间能被 7 整除的整数之和 include void main int i sum 0 for i 1 50 i if i 7 0 sum i printf sum d n sum 2 下面程序接收来自键盘的输入 直到输入 Z 值 为 1 键为止 这些字符被原样输出 但若有连续一个以上的空 格时只输出一个空格 请填空 include void main char cx char front while cx getchar n if cx putchar cx if cx if front putchar cx front cx 3 程序改错 1 下列程序的功能是求 1 3 5 99 的和 include void main int s i int s 0 i i 1 while i 99 s s i s s i i printf 1 3 5 99 的和是 d n s 2 下面程序的功能是输入一个正整数 判断是否是素数 若 为素数输出 1 否则输出 0 include void main int i x y 0 y 1 scanf d for i 2 i x 2i if x i 0 y 0 x i 0 printf d n y 4 设计性实验 1 题 方法 1 精度控制 include include main int s float n t pi t 1 pi 0 n 1 0 s 1 while fabs t 1e 6 pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 方法 2 次数控制 include include main int s long times float n t pi t 1 pi 0 n 1 0 s 1 for times 1 times 1e9 times pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 2 题 main int i j frame double wheattal 0 double wheatfnu 1 printf Please input frame s numbers scanf d for i 0 i frame i wheattal wheatfnu wheatfnu wheatfnu printf n Total wheattatol s timeter e n wheattal 1 40e8 3 题 方法一 使用递推公式 n n 2 main int i n 1 double s 0 t 1 for i 1 i 20 i t n s t n 2 printf s lf s getch 方法二 使用通项公式 2 i 1 main int i double s 0 t 1 for i 1 i 20 i t 2 i 1 s t printf s lf s getch 方法三 include stdio h main long total sum m n t total 0 for m 1 m 20 m sum 1 t 1 for n 1 n m n sum sum t t t 2 total total sum printf total ld total 2 程序填空 1 求任意两个整数之间所有的素数 include void main int i1 i2 i j flag printf input two integer i1 i2 scanf d d printf prime number n for i i1 i i2 i flag 1 for j 2 j i 1 j if i j 0 flag 0 break if flag 1 printf d t i printf n 2 以下程序的功能是输出下三角九九乘法表 include void main int i j for i 1 i 9 i for j 1 j i j printf d d d t i j i j printf n 3 程序改错 1 下列程序的功能是输出所有的 水仙花数 所 谓 水仙花数 是指一个三位数 该数的各位数字立 方和等于该数本身的数 例如 153 是一个 水仙 花数 因为 153 13 53 33 include void main int x s a for s 0 x 100 x 1000 s 0 x a x while a 0 s s a 10 a 10 a 10 a a 10 if x s printf d x 2 以下程序的功能是输出 1 至 1000 之间的所有完数 若一个整数等于该数的所有因子之和 则称该整数为完数 include void main int i j int s for i 1 i 999 i s 1 s 0 for j 1 j i 1 j for j 1 j i 1 j if i j 0 s s j i j if s i printf 5d i s i 4 设计性实验 SY61 C main int i j k n 0 i j k 分别代表三位整数的百位 十位 个位 n 代表个数 for i 1 i 9 i for j 0 j 9 j for k 0 k 9 k if i i i j j j k k k 1099 在所有组合中找出满足指定条件的 printf 4d 100 i 10 j k n if n 5 0 printf n 表示每行输出 5 个数 SY62 C include include main int i j k for i 1 i 4 i 上三角形有 4 行 每循环 1 次输出 1 行 for k 1 k 8 printf for j 1 j 1 i 下面为倒三角形 有 3 行 for k 1 k 8 2 i 1 2 k printf for j 1 j 0 该循环指定有根的区间 do x0 x1 x2 2 fx0 x0 2 x0 4 x0 3 6 if fx0 fx1 1e 5 该循环实现二分法求根 printf root x f x0 2 程序填空 1 include void main int m n num1 num2 temp printf Input two positive integer n scanf d d if num1 num2 temp num1 num1 num2 num2 temp m num1 n num2 while n 0 temp m n m n n temp printf The grestest common divisor is d n m printf The lowest common multiple is d n num1 num2 m 2 下面程序是计算表达式 1 1 2 1 2 3 1 2 3 10 和 include void main int sum i j t sum for i 1 i 10 i t 0 for j 1 j j t t j sum printf 1 1 2 1 2 3 1 2 3 10 d n sum 0 i sum t 3 程序改错 1 下面的程序是求 1 100 之间的素数 并将所有素数按每 行 10 个输出 include define include void main int i m k n int i m k n 0 for m 1 m 100 m m 2 if n 10 0 if n 10 0 printf n k 1 for i 2 i sqrt m i if m i 0 if m i 0 k 0 break if k 1 printf 3d m n n 1 printf n 2 下面程序是求表达式 1 1 2 1 3 1 4 1 5 1 100的 值 结果保留小数后 4位 include void main int i float s i 0 i 1 s 1 s 0 while i 100 if i 2 0 s s 1 i s s 1 0 i else s s 1 i s s 1 0 i i i 1 printf 1 1 2 1 3 1 4 1 100 10 3f n s 4 设计性实验 1 编程输出以下图形 include void main int i j k for i 1 i 6 i for k 1 k 20 2 i 1 2 k printf for j 1 j 2 i 1 j printf d i printf n 2 编写一个程序输出所有 5 位数字的回文 方法一 include void main long x a t x 原 5 位整数 a 用来暂存 x t 把 a 反序后的数 int i num 0 i 表示原 5 位数的某一位 num 回文数的个数 for x 10000 x0 i a 10 取出当前数的最后一位到 i t t 10 i 把取出的 i 组装到 t a a 10 if x t 原来的 5 位整数等于反序后的数 t printf ld x num if num 10 0 printf n 每行输出 10 个数 方法二 求 5 位整数中所有回文 include void main long int n m t 0 for n 10000 n 99999 n if hw n 1 printf 6ld n t if t 5 0 printf n 每行输出 5 个数 int hw long int a hw 函数测试 a 是否是回文 long int m r 0 m a while m r r 10 m 10 m 10 if a r return 1 是回文返回 1 else return 0 是回文返回 0 3 编程计算 e 1 1 1 1 2 1 3 1 n 精度为 1e 6 即最后一项 1 n 1e 6 就停止循环 提示 注意 1 n 1 n 1 1 n 利用循环加上每一次的分项 include void main long i double e t e 1 0 t 1 0 for i 1 t 1e 6 i t double i e t printf e f n e 2 a 10 x break a k x 附 算法简析 main int x i j k 感觉似乎 j 定义了没什么作用 int a 11 8 18 28 38 48 58 68 78 88 98 printf 请输入需要插入的一个整数 scanf d a 10 x 把 x 放到数据串最末位置 for i 0 i 10 i if xk i 将插入点以及其后的每个数据后移一个 单位 给 x 腾位 实例演示 腾位 8 18 28 38 48 58 68 78 88 98 x 8 18 28 38 38 48 58 68 78 88 98 插入点 a i a i 1 a k x 将 x 放到插入点位置 for i 0 i 11 i printf 3d a i printf n i 7 0 i 11 0 n i 5 0 3 a 将 continue 改为 break b 将 i k 1 改为 j k 1 c 将 j k 1 改为 i k 1 d 将 for i 0 i 10 i 改为 for i 0 i 9 i 附 算法简析 include void main int x i j k int a 10 8 18 28 38 48 58 68 78 88 98 printf 请输入需要删除的一个整数 scanf d i 0 j 9 while ix j k 1 if a k j printf 需要删除的数不在数组中 n else for k 9 k a k a k 1 挤位 后面的数 据向删除点靠拢 实例演示 挤位 若删除 38 删除点 8 18 28 38 48 58 68 78 88 98 8 18 28 48 58 68 78 88 98 98 for i 0 i 9 i 删除一个数 只剩 9 个 数组最末尾储存的是重复的数据 倒 数第二个 故不输出 printf 5d a i a 将 for i 0 j 0 i 10 i 改为 for i 1 j 0 i 0 j 改为 for j 0 j 4 include include int isprime int x int k sqrt x for k 1 k if x k 0 return 0 return x void sort int a int x int i k t for i 0 i x 1 i for k i 1 ka k t a i a i a k a k t void main int num 50 prime 50 i n 0 j printf PLease input 50 integers n for i 0 i 50 i scanf d if j isprime num i 0 prime n j sort prime n printf The sorted prime numbers are n for i 0 i n i printf 5d prime i include include main char input 10 paswor 10 password ch flag 0 int count 1 i 0 while count 3 printf 请输入密码 while ch getch 13 input i ch putchar input i 0 if strcmp input paswor 0 printf n n 你好 我的主人 flag 1 break else printf n n 离我远点 count getch if flag 0 printf 密码输入三次错误 你不是我的主人 n n 离我远点 n n 否则 我很生气 后果很严重 getch main int num 10 i max min maxj minj printf Please input the data n scanf d max min num 0 for i 1 i 10 i scanf d if maxnum i min num i minj i printf The maximum element s underside is d max d maxj num maxj printf nThe minimum element s underside is d min d minj num minj include include void input int a int n int i printf How many datas do you want to input scanf d n printf nPlease input d datas n n for i 0 i n i scanf d void sort 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 menu int a int n int i gotoxy 1 24 printf Datas for i 0 i void find int a int n int x int low 0 high n 1 mid printf nPLease input a data to be searched scanf d while lowa mid low mid 1 else high mid 1 if low high printf nThis data can t be found in the database else printf nThis data is in the position d mid gotoxy 7 3 mid 1 2 23 putchar 25 void insert int a int n int x k i printf nPLease input a data to be inserted scanf d a n x for i 0 i n i if xk i a i a i 1 a k x gotoxy 1 24 delline printf Datas for i 0 i n i printf 3d a i void Delete int a int n int x low high mid i printf nPLease input a data to be deleted scanf d low 0 high n 1 while lowx high mid 1 if a mid high printf The data to be deleted is not in the database n else for mid n 1 mid a mid a mid 1 gotoxy 1 24 delline printf Datas for i 0 i n 2 i printf 3d a i main int a 50 n 0 char com input a sort a n clrscr menu a n com getch switch com case 1 find a n break case 2 insert a n break case 3 Delete a n break default break getch DT made it in 2009 05 16 程序填空 1 include define N 4 void main int a N N s1 0 s2 1 max i j for i 0 i N i for j 0 j N j scanf d max a 0 0 for i 0 i N i for j 0 j max max a i j printf s1 d s2 d max d n s1 s2 max 2 include define M 4 define N 3 void main int a M N 1 2 3 4 5 6 7 8 9 10 11 12 int sum 0 i j for i 0 i N i sum a 0 i a M 1 i for j 1 j M 1 j sum a j 0 a j N 1 printf d n sum 改错 1 in include define M 3 define N 4 void main int a M N 1 2 3 4 5 6 7 8 9 10 11 12 int b N M int i j for i 0 i M i for j 0 j N j printf 3d a i j printf n for i 0 i N i for j 0 j M j b i j a j i printf n for i 0 i N i for j 0 j M j printf 3d b i j printf n 2 include void main int d 4 0 0 0 0 i j printf nPlease input 16 num for i 0 i 4 i for j 0 j 4 j scanf d for i 0 i 4 i for j 0 j 4 j if d i j d j i d i j d j i for i 0 i 4 i printf n n n n n 为了保持每行的间隔与每列的相同 for j 0 j i printf t d d i j 为了使位数不同的数输出依然保持三角型 else printf t 设计性实验 1 include define M 3 define N 6 void main int i j max min m 0 n 0 p 0 q 0 int a M N for i 0 i M i for j 0 j N j scanf d max min a 0 0 for i 0 i M i for j 0 jmax max a i j m i n j else if a i j min min a i j p i q j printf max d d d min d d d m n max p q min 3 include define N 20 void main int n i j int a N N printf please input the n scanf d for i 0 i n i a i 0 1 a i i 1 for i 2 i n i for j 1 j i j a i j a i 1 j 1 a i 1 j for i 0 i n i for j 0 j i j printf 4d a i j printf n 2 程序填空 1 以下程序的功能是求数组 a 中元素的和 include void main int a 10 int p sum 0 for p a p a 10 p scanf d p for p a p a 10 p sum sum p printf sum n sum d 2 以下程序功能是在数组中查找与 x 值相同的元素所在的 位置 include void main int i x a 11 printf please input ten number for i 1 i 11 i scanf d a i printf please input x scanf d a 0 x i 10 while x a i i if x a i printf found position is d i else printf not found 3 程序改错 1 以下程序的功能是求一元二次方程的实数根 include include double quadratic double factor static double result 2 double delta delta factor 1 factor 1 4 factor 0 factor 2 if delta 0 return 0 delta sqrt delta result 0 factor 1 delta 2 factor 0 result 1 factor 1 delta 2 factor 0 return result void main double fun 3 r double fun 3 r printf Please enter three factors scanf f f f lf lf lf r quadratic fun 3 r quadratic fun if r printf The solution is X1 lf tX2 lf n r 0 r 1 else printf No solution n 2 以下程序的功能是统计数组 a 中所有偶数的个数 include stdio h void main int a 10 p sum 0 printf 请输入 10 个整数 for p a p a p for p p a p if p 2 0 sum if p 2 0 sum printf 共有 d 个偶数 sum 2 程序填空 1 以下程序的功能是利用指针找出 3 个整数中的最小数 include void main int p1 p2 p3 min x y z p1 p2 p3 printf please input three integer scanf d d d p1 p2 p3 min p1 if p1 p2 min p2 if min p3 min p3 printf min d n min 2 以下程序利用指向函数的指针实现函数调用 完成可选择 的加减乘除运算 include 定义函数 add int add int x int y printf d d x y return x y 定义函数 sub int sub int x int y printf d d x y return x y 定义函数 mult int mult int x int y printf d d x y return x y 定义函数 dev int dev int x int y printf d d x y return x y void main int funp int int char op int x y printf Please intput the expression a b n scanf d scanf c scanf d op switch case funp break add case funp sub break case funp mult break case funp dev break default printf Operator is illegal n printf d n x y funp 3 程序改错 1 以下程序的功能是 输入 3 个整数 按由小到大的顺序输 出 include void main int i1 i2 i3 int p1 p2 p3 void swap int int void swap int int printf Please enter three integer n scanf d d d i1 i2 i3 scanf d d d p1 i1 p2 i2 p3 i3 p1 p2 p3 if i1 i2 swap p1 p2 if i1 i3 swap p1 p3 if i2 i3 swap p2 p3 printf pai xu hou de shu d d d n i1 i2 i3 void swap int p int q int t t p p q q t 2 下列程序的功能是利用自定义函数计算一无符号整数各位 数字的乘积 include unsigned f unsigned num unsigned s 1 p p s p do s s num 10 num 10 while num return p void main unsigned x p printf input x n scanf d p f x printf d p printf d p 4 设计性实验 1 编程一函数 其功能是求一个长正整数各位数字之和 要 求使用指针函数实现结果的返回 在主函数中进行测试 例 如 在 主 函 数 中 输 入 348762 输 出 结 果 应 为 为 30 即 3 4 8 7 6 2 的 和 方法一 利用指向函数的指针 int sum long n 利用递归求和 unsigned long x if n 10 x n else x sum n 10 n 10 return x void main long x int f long f sum scanf ld printf d f x 方法二 利用指针函数 仿照第 3 题改错 2 include unsigned f long num unsigned s 0 p p do s s num 10 num 10 while num return p void main unsigned p long x printf input x n scanf ld p f x printf d p 2 编程一函数求两个整数的最大公约数 要求使用指针函数 实现结果的返回 在主函数中调用此函数进行测试 两个整数由 键盘输入 方法一 利用指向函数的指针 int mcf int a int b int temp while b temp a b a b b temp return a void main int x y int f int int f mcf scanf d d printf d f x y 方法二 利用指针函数 仿照第 3 题改错 2 int mcf int a int b int temp while b temp a b a b b temp return void main int x y p scanf d d p mcf x y printf d p
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!