1、C语言上机实验题目解题思路上机实验题目解题思路第十三次实验:指针之一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
2、(“%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:步骤:方法同24
3、543576:步骤: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, in
4、t 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
5、 *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) su
6、mDiff(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值 fo
7、r (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
8、(int n),功能返回n的逆序数。函数:int reverse (int n) int result=0; do while(.!=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; else result = fib(n-1) + fib(n-2) return result;2)定义main函数, 多组输入,
9、输出结果。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(“%
10、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)。35
11、70:步骤: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。357
12、3:步骤: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),计算元素和并存入数组s
13、i中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)定义
14、数组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/
15、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)二维数组每个元素aij值为:i*4+j+ 1;4)输出数组的每一个元素3900:步骤:1)定义字符数组a100及相关变量2)多组测试:输入字符串a3)对数组每个元素ai,若是字母,字母计数加1.4)输出统计结果。3905:步骤:1)定义字符数组str100及相关变量2)多组测试:输入字符串str3)若str0为小写字母,则变大写4)从str1开始,每个字符,判断是否是单词第一个字母(当前是小写字母且前一个是空格,即stri是字母&stri-1= 5)输出字符串str.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1