1、中山大学高级语言程序设计一实践试题中大计算机及应用实践考试高级语言程序设计一实践考核试题及答案试题1. 有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数? 都是多少? 编写程序, 在屏幕上打印输出这些三位数.解答:main()int a4=1,2,3,4;int i, j, k;for (i=0; i4; i+)for (j=0; j4; j+)for (k=0; k4; k+)if (i != j) & (j != k) & (i != k)printf (%8d, a*100+aj*10+ak);printf(n);试题2. 有一个整数, 加上100后是一个完全平方数, 再
2、加上168又是一个完全平方数, 编写程序求出该数是多少?解答:#include main()int i=10, j;long m=268, n=100;char flag=n;while (flag = n)for (j=i+1; j = sqrt(m); j+)if (m = (long)(j*j)printf (%dn, n-100);flag=y;break;i+;n=(long)i*i;m=n+168;试题3. 编写C程序, 要求能读入一正整数n, (n10), 并输出如下图形:122233333.nnnnn.nnnnn (共2n-1个n).333332221解答:main()int
3、i, j, n;printf (Please input n(19):n);scanf (%d, &n);for (i=1; i=n; i+)for (j=0; jprintf ( );for (j=0; j=1; i-)for (j=0; jprintf ( );for (j=0; j2*i-1; j+)printf (%d, i);printf (n);试题4. 编写C程序, 要求能读入两个整数m与n, 计算并读出m与n的绝对值的最大公约数及最小公倍数.解答:main()int m, n, a, b, t, div, mul;printf (Please input m,n:n);scan
4、f (%d,%d, &m, &n);if (m0) m=-m;if (n0) n=-n;if (m = 0) | (n = 0)div=0;mul=0;elseif (mN)a=n;b=m;elsea=m;b=n;dot=a%b;a=b;b=t;while (t != 0);div=a;mul=m*n/a;printf (the maximum common divisor of %d,%d is: %dn, m, n, div);printf (the minimum common multiple of %d,%d is: %dn, m, n, mul);试题5. 已知 e=1+1/1!+
5、1/2!+1/3!+.+1/n!, 试用上述公式求 e 的近似值.要求累加所有不小于10 -6的项值,部分程序给出如下, 请完成程序,实现以上功能.#include main()int i=1;float e, n;e=1.0; i=1;n=1.0;*在此编写代码*fun(int i)int j,k;k=1;for (j=1; j= 1e-6);printf (e=%fn, e);fun(int i)int j,k;k=1;for (j=1; j=i; +j)k=k*j;return (k);试题6. 请编写程序求出100200之间的所有素数, 并将结果在屏幕上显示出来.(素数是只能被1和它本
6、身整除的自然数)解答:main()int i, j;for (i=100; i=200; i+)for (j=2; jif (i%j=0) break;if (i=j)printf(%4d, i);试题7. 编写一个函数fun(str), 它的功能是: 统计由实参传来的一个字符中的字母,数字,空格和其它字符的个数. 部分源程序给出如下, 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句.#include int alph, digit, space, others;main()char text80;printf (n请输入一个字符串:n);gets
7、 (text);printf (字符串是:n);puts (text);alph = digit = space = others = 0;fun (text);printf (n%d个字母, %d个数字, %d个空格, %d个其它字符.n,alph, digit, space, others);fun(str)char str;.解答:#include int alph, digit, space, others;main()char text80;printf (please input a character string:n);gets (text);printf (the chara
8、cter string is:n);puts (text);alph = digit = space = others = 0;fun (text);printf (alph number: %d, digit number: %d, space number: %d, others number: %dn, alph, digit, space, others);fun(str)char str;int i=0;while (str!=)if (a = str) & (str = z) |(A = str) & (str = Z)alph+;else if (0 = str) & (str
9、= 9)digit+;else if (str = ) space+;else others+;i+;return;试题8. 编写一个程序, 它的功能是: 将一个3x3的矩阵转置, 例如: 运行程序时, 按行输入以下3x3的矩阵:1 2 34 5 67 8 9转置后的矩阵为:1 4 72 5 83 6 9解答:main()int a33, b33, i, j;printf (Please input a matrix:n);for (i=0; i3; i+)for (j=0; j3; j+)scanf (%d, &aj);bj=aj;for (i=0; i3; i+)for (j=0; j3;
10、 j+)printf (%8d, bj);printf (n);试题9. 编写程序打印如下的逆蛇形数字方阵.(用循环语句, 行数可变, 至少8行)1 12 11 102 13 16 93 14 15 84 5 6 7解答:main()int i, j, m=1, n, a8080;printf (please input n:n);scanf (%d, &n);for (i=0; i=i; j-)ajn-i-1=m+;for (j=n-i-2; ji; j-)aj=m+;for (i=0; ifor (j=0; jprintf (%4d, aj);printf (n);试题10. 正读和反读都
11、一样的字符串称为回文字符串, 在键盘上输入一个字符串,判别它是否回文字符串(字符串中字符的个数不得少于10).解答:#include main()char str80, flag=y;int i=0, j;printf (please input a string:n);gets (str);j=strlen (str);j-;while (i = j)if (str != strj)flag=n;break;elsei+;j-;if (flag = n)printf (the string is not palindrome!n);elseprintf (the string is pali
12、ndrome!n);1 n1对读入的任意n(n=0且n50), 能计算并输出y(n)的值.解答:int y(int n)if (n = 1) return (1);else return y(n-2) + 2* y(n-1);main()int n, f;printf (please input n:n);scanf (%d, &n);f=y(n);printf (y(n)=%dn, f);试题12. 编写C程序, 要求能读入一个字符串(100以内个字符, 其中有空格),计算并输出该字符串中所有大写英文字母的个数.解答:#include main()int i=0, n=0;char str1
13、00;printf (please input a string:n);gets (str);while (str != )if (A = str) & (str = Z) n+;i+;printf (the number is: %dn, n);试题13. 一个整数, 加上100后是一个完全平方数, 再加上168又是一个完全平方数,编写程序, 要求在100000以内的整数中找出所有满足上述性质的整数.解答:#include main()int i=10, j;long m=268, n=100;while (n100000)for (j=i+1; j = sqrt(m); j+)if (m
14、= (long)(j*j)printf (%8d, n-100);break;i+;n=(long)i*i;m=n+168;printf(n);试题14. 编写程序, 求1到100之间的奇数之和及偶数之和, 并将二者输出.解答:main()int i;int oddSum=0, evenSum=0;for (i=1; i= 1e-4);printf(PI=%fn, 4*pi);试题17. 编写程序, 生成Fibonacci数列f(i)的前20项(即i=20)并输出, 其中:0 i=1f(i) 1 i=2f(i-2)+f(i-1) i2解答:main()int n;static int f20=0,1;for (n=2; n20; n+)fn=fn-1+fn-2;for (n=0; n20; n+)if (n%5=0) printf (n);printf(%8d, fn);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1