




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上机实验题目解题思路目录第十三次实验:指针之一22453:步骤:22454:步骤:23575:步骤:方法同245433576:步骤:33580:步骤:33582:步骤:3第十二次实验:函数之二42452:步骤:42482:步骤:53574:步骤:53571:步骤:5第十一次实验:函数之一63565:步骤:63566:步骤:63567:步骤:73568:步骤:73569:步骤:73570:步骤:73571:步骤:73573:步骤:8第十次实验:数组83552:步骤:83553:步骤:83555:步骤:83556:步骤:83561:步骤:93893:步骤:93895:步骤:93900:步骤:93905:步骤:9第十三次实验:指针之一2453:步骤:1) 定义两数交换的函数void swap(int *p1, int *p2),交换两指针所指向的值。.2) main函数:多组输入a、b,调用交换函数交换两变量值。代码框架:void swap (int *p1, int *p2) int main() int a, b; Int *pointer_1, *pointer_2;while (scanf(%d%d, &a, &b) != EOF)/输入a、b值 Pointer_1 = .; Pointer_2 = .; If (a b) Swap(.);printf(“%d %dn”, a, b); return 0; 2454:步骤:1) 定义同2453相同的函数void swap(int *p1, int *p2),交换两指针所指向的值。2) 定义main函数,多组输入三个数,从大到小输出。int main() int a, b,c; while (scanf(%d%d, &a, &b) != EOF)/输入a、b值 If (a b) Swap(&a, &b);If (a c) Swap(&a, &c);If (b c)Swap(&b, &c);printf(“%d %d%dn”, a, b, c); return 0; 3575:步骤:方法同24543576:步骤:1) 定义类同2453函数void swap(float *p1, float *p2),交换两指针所指向的值。2) 定义main函数,多组输入五个数,从小到大输出。int main() int a5, i, temp; while (scanf(%f, &a0) != EOF)/输入a、b值 for (i=1; i5; i+)scanf(“%f”, &ai); 选择排序完成5个数的排序,其中交换通过Swap(&a, &a)完成;循环输出a的所有元素; return 0; 3580:步骤:1) 自定义函数input(int a, int n),output(int a, int n);Void input(int a, int n)/函数无返回值,等效于void(int *a, int n) int i;For (i=0; in; i+)Scanf(“%d”, &ai);2) 在main函数中,调用它,完成对数组n个元素的输入输出。Int main()int array100, n;While (scanf(“%d”, &n) != EOF)Input(array, n);Output(array, n); Return 0;3582:步骤:1) 定义一个计算两个数和、差的函数sumDiff(int op1, int op2, int *pSum, int *pDiff),功能是求两个数op1、op2的和、差,其中*psum和*pdiff是计算得出的和与差,代替return 返回值,故函数不需要返回任何值了。Void sumDiff(int op1, int op2, int *pSum, int *pDiff)/op1、op2是要计算的两数*pSum = op1 + op2;/ pSum是main()函数中变量的地址,故修改的是main()函数中变量的值2) 在main函数中,调用它,计算输入的任意两个数的和与差。Int main()int a, b, s, d;While (scanf(“%d%d”, &a, &b) != EOF)sumDiff(a, b, &s, &d);printf(“sum=%d, diff=%dn”, s, d); Return 0;第十二次实验:函数之二2452:步骤:3) 定义判断素数函数int prime(int x):当x是素数时,函数返回1,否则返回0.4) main函数:多组输入n、m,对n-m间的每一个数i,调用函数prime(x)判断是否是素数,若是就输出。代码框架:int prime (int x) / (循环从2到sqrt(x),不能从2到x-1) int main() int m, n,i; while (scanf(%d%d, &n, &m) != EOF)/输入n、m值 for (i=n; i= m; i+)If () Printf(“%d ”, i); ./输出素数printf(“n”); return 0; 2482:步骤:3) 定义递归函数int age(int n, int m, int k),功能是求第n个人的岁数,并返回此岁数。函数:int age(int n, int m, int k) int result; if(n = = 1)result = k;else result = age(n-1, m, k) + m; return result;4) 定义main函数,多组输入,输出第n个人的岁数。3574:步骤:1) 定义函数int reverse(int n),功能返回n的逆序数。函数:int reverse (int n) int result=0;dowhile(.!=0); return result;2) 定义main函数,多组输入n,输出结果。3571:步骤:1) 定义递归函数int fib(int n),,功能是求返回第n项Fibonacci数。函数:int fib(int n) int i, f1, f2, item,result; if(n = = 1 | n=2)result = 1;elseresult = fib(n-1) + fib(n-2) return result;2) 定义main函数, 多组输入,输出结果。int main()int .while (scanf() != EOF)for (i = m; i y) z = x;else z = y;return z;2) main函数:定义三个变量a、b、c和m、多组测试输入三个整数;两次调用函数,就可得到最大数了。3567:步骤:1) 定义判断素数的函数int prime(int x),若是素数返回1,否则返回0。2) 主函数:从100-200每个数都通过调用函数prime(i)来判断是否素数。int main ()int i;For (I = 100; I 200; i+)If (prime(i) = =1)Printf(“%5d”, i);(以上代码未处理换行)3568:步骤:1) 定义求n!函数int fact(int n),函数返回n!值。(既可用整数表阶乘也可用浮点表阶乘)2) 主函数:从1-10每个数都通过调用函数fact(i)来求i!,并累加求和。由于阶乘和较大,故用浮点表示和。int main ()int i; float sum;For (I = 1; I =10; i+)Sum += fact(i);Printf(“%fn”, sum);3569:步骤:1) 定义函数int fn(int a, int n),返回aa(n个a)。2) 主函数核心语句:循环i=1到n, s += fn(a,i)。3570:步骤:1) 定义函数int countdigit(int number, int digit),返回number 中数字digit的个数关键算法:取出number的每一位,若等于digit,则计数count加1,最后返回count。2) 主函数核心语句:输入x, 个数n=countdigit(x, 2)。3571:步骤:1) 定义函数int factorsum(int number),返回number的因子和。关键算法:i从1到number-1,若i是number的因子,则累加和sum;最后返回sum。2) 主函数main(),核心语句:i从m到n,若I = = fact(i),则输出i。3573:步骤:1) 定义函数int is(int number),若数字立方和等于本身,返回1,否则返回0。关键算法:累加number的每一位数字,若和等于number,则返回1,否则返0。2) 主函数main(),核心语句:i从m到n,若I = = is(i),则输出i。第十次实验:数组3552:步骤:1) 定义数组a1010, s10及相关变量2) 多组测试:输入m, n ;二重for循环输入数组a的每一个元素(scanf(“%d”, &aij),注意%d后不加空格)。3) 对于第一行a0的每个元素a0j(j=0-n-1)都和第m-1行对应元素交换。4) 对每一行(i=0-m-1),计算元素和并存入数组si中5) 输出数组a的每一行(i=0-m-1)元素及si,并换行。3553:步骤:1) 定义数组a1010及相关变量2) 多组测试:输入 n ;二重for循环输入数组a的每一个元素(scanf(“%d”, &aij),注意%d后不加空格)。3) 主对角线元素:aii,副对角线ain-1-i。3555:步骤:1) 定义数组a66、标记是否上三角变量flag、及相关变量2) 多组测试:输入n ;flag=1; 二重for循环输入数组a的每一个元素3) 对于主对角线以下每个元素进行判断,如果不为零的,则flag=0同时跳出循环。4) 循环结束后判断flag值,若为1输出“YES”否则“No”3556:步骤:1) 定义数组a66、是否鞍点标记flag及相关变量2) 多组测试:输入n; 二重for循环输入数组a的每一个元素3) 对于每一行i:flag=1 ,找最大值max并记下其列下标cols,行下标lines;接着对于cols列所有其它元素,若小于max则flag=0,break;,退出内层循环;当cols列数都判断完毕后,若flag还为1则退出循环变量为i的外层循环。4) 若flag为1,输出lines、cols,否则输出”No”3561:步骤:1) 定义字符数组str80、是否回文标记flag、字符长度len及相关变量2) 多组测试:输入字符串、flag = 1;3) 计算输入字符串长度len,4) i从0到len/2:若stri != strlen-1-i, 则flag=0;5) 循环结束后,判断flag值,若为1输出“Yesn”,否则”Non”3893:步骤:1) 定义整型数组a20及相关变量2) 多组测试:输入n和n个整数;3) 先temp变量临时保存a0的值,4) i从0到n-2:后面的元素往前移,ai=ai+1;5) 循环结束后,把temp值存入an-1中3895:步骤:1) 定义整型数组a20及相关变量2) 多组测试:输入n和 m3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桥梁养护知识培训课件
- 2026届甘肃省兰州市兰州第一中学高一化学第一学期期中预测试题含解析
- 2026届江西省吉安市安福中学化学高二第一学期期末质量检测模拟试题含答案
- 2025年客户服务经理面试技巧全解析高级模拟题及答案
- 2025年陪诊师考试重要提示与试题及答案
- 投标文件中售后应急预案方案
- 2025年城市经济与可持续发展课程考试题及答案
- 2025年环保技术与可持续发展相关考试题及答案
- 2025年村级儿童之家档案员招聘考试重点回顾
- 公务员转任面试题目及答案
- 传播游戏理论视域下现代文创桌游传播伦理失范与匡正研究
- 2025年家畜饲养员及繁殖学技能资格知识考试题与答案
- 中国都市圈综合竞争力报告2024-上海同济城市规划设计研究院
- 意大利足协协议书
- 减重代谢外科个案管理体系构建
- 喷雾降尘合同协议
- CNAS-CC121-2017 环境管理体系审核及认证的能力要求
- 沙石购买合同协议
- 小学生依法治国课件
- 食堂自带碗筷管理制度
- 延期退休协议书范本
评论
0/150
提交评论