版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上机实验题目解题思路目录第十三次实验:指针之一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:步骤:939
2、05:步骤:9第十三次实验:指针之一2453:步骤:1) 定义两数交换的函数void s *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(.);pr
3、intf(“%d %dn”, a, b); return 0; 2454:步骤:1) 定义同2453相同的函数void s *p1, int *p2),交换两指针所指向的值。2) 定义main函数,多组输入三个数,从大到小输出。int main() int a, b,c; while (scanf("%d%d", &a, &b) != EOF)/输入a、b值 If (a < b) S, &b);If (a < c) S, &c);If (b < c)S, &c);printf(“%d %d%dn”, a, b, c)
4、; return 0; 3575:步骤:方法同24543576:步骤:1) 定义类同2453函数void s *p1, float *p2),交换两指针所指向的值。2) 定义main函数,多组输入五个数,从小到大输出。int main() int a5, i, temp; while (scanf("%f", &a0) != EOF)/输入a、b值 for (i=1; i<5; i+)scanf(“%f”, &ai); 选择排序完成5个数的排序,其中交换通过S, &a)完成;循环输出a的所有元素; return 0; 3580:步骤:1) 自定
5、义函数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; i<n; 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) 定义一个计算两个
6、数和、差的函数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
7、, 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 m
8、ain() 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 =
9、 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 =
10、= 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 <=n; i+)printf(“%5d “, fib(i)printf(“n”);第十一次实验:函数之一3565:步骤:1) 定义符号函数sign(int n)2) main函数:输入x,调用函数sign(x)。代码框架:int sign(int n) int m; . return m; int main(
11、) int x, y; while (scanf("%d", &x) != EOF)/输入x值 y = sign(x); ./输出y的值 return 0; 3566:步骤:1) 定义函数max(int x, int y),功能是求两个数x、y中最大数的,并返回最大数。函数:int max(int x, int y) int z; if(x>y) z = x;else z = y;return z;2) main函数:定义三个变量a、b、c和m、多组测试输入三个整数;两次调用函数,就可得到最大数了。3567:步骤:1) 定义判断素数的函数int prime(i
12、nt 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
13、 (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:
14、步骤: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) 定义数
15、组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
16、-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;
17、,退出内层循环;当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年高考贵州卷物理真题(试卷+解析)
- 2026年高速公路安全驾驶培训
- 特殊作业奖惩制度范本
- 2026年2026江苏省人民医院心血管内科打字员招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 改革文学介绍
- EPC项目投标人承包人工程经济的合理性分析、评价
- 回族做礼拜的念词集合6篇
- 场地清表施工方案设计
- 光纤熔接机培训
- 电梯工程有限公司程序文件
评论
0/150
提交评论