精通C程序设计教程各章习题(2)

2019-02-26 10:38

t?2t+1 2≤t<3

3.14 编程输出一个周期的余弦函数cosx的值,要求每隔?/20输出一个函数值。 3.15 编程输出以下计算结果。

0.02 0.22 0.42 0.62 0.82 1.02 1.22 1.42 1.62 1.82 1.92 2.02 3.16 输入一个实数a和一个整数m,不使用系统库函数,计算并输出am。 比如:输入a值为3,m值为3,则输出27.0000; 输入a值为?2,m值为?3,则输出?0.1250。 3.17 编程求出一个长整数的十进制位数。 比如,输入35076,输出为5; 输入为?24,输出为2。

3.18 输入一个正长整数,按相反次序输出该整数的各位数字。 比如,输入为35076,输出是67053。

3.19编写一个决定学生成绩的程序。这个程序将读入一个学生的三次考试成绩(0-100),然后计算其平均值,并根据这个平均值决定学生的总成绩(用字母A, B, C, D, F来表示)。字母成绩按如下规定来确定:

A 平均成绩在90或90分以上 B 平均成绩在80到89分 C 平均成绩在70到79分 D 平均成绩在60到69分 F 平均成绩在60分以下

程序在显示了一个学生的字母成绩后,将继续对下一个学生的成绩进行处理,直到用户输入的学生成绩为负数时停止。

3.20 编程输入两个日期y1,m1,d1和y2,m2,d2,计算并输出这两个日期相距的天数。

4.1 输入若干整数,直到输入0时停止,统计并输出奇数的数目和偶数的数目。 4.2 输入10个实数,输出这10个数的平均值。 4.3 计算s=

2

?k!?0!?1!?2!?????(n?1)!?n!。要求n值由用户输入。

k?0n4.4 根据本章打印杨辉三角形例题中组合数的递推计算方法计算组合数Cm要求输入n、mn,值,输出组合数。程序中应对输入的n, m有效性进行检查。

x3x5x7??????,要求最后一项绝对值小于10?6时停止计4.5 输入x值,计算sin(x)?x?3!5!7!算。 4.6 用公式

?2?22442n2n计算时取1000个因子。 ?????????????计算?的近似值,

13352n?12n?1?2x2?2?4x42?4?6x51?????????的前n?1项和。要求x和n2222333?53?5?71?x(1?x)(1?x)??x4.7 计算

1?x2值由键盘输入。

x2x3x4??????。要求计算到最一项绝对值小于10?64.8 输入x值(|x|<1),计算s?x?234时停止。

4.9 一个小球从高度为h米处自由落下,每次落地后反弹回原高度的一半再落下。求小球第k次落地时,总共走过了多少米?第k次落地反弹后,可以反弹到多高?

4.10 输入自然数n,输出其和等于n的所有不增的正整数和式。如n=4,程序将输出: 4=4 4=3+1 4=2+2 4=2+1+1 4=1+1+1+1

要求程序完成一次输出后,继续提示用户输入n值,直到用户输入0或负数时才停止运行。

4.11 编写程序,输入一个自然数n,将n分解成质因子连乘形式。要求程序完成一次输出后,继续提示用户输入自然数,只有当输入的自然数是0或负数时,程序才停止运行。

4.12 “有物不知何数,三三数剩二,五五数剩三,七七数剩二”问物有多少?(引自《孙子算经》)编程输出1000以内所有的解。

4.13 韩信点兵:有兵一队,五伍剩一,六伍剩五,七伍剩四,十一伍剩十,问兵几何? 4.14 有30个男女小孩同在一家饭馆进餐,共花了50元,其中每男宾3元,女宾2元,小孩1元。问男、女、小孩各多少?

4.15 将一张面值100元的人民币兑换为5元、2元、1元和5角的零钞,要求零钞总数不超过40张且每种至少1张,求所有兑换方案。 4.16 有一个算式缺少了四个数字(如下所示),请编程找出这四个数字。 1?0566?(475??3?49)?1?6=416354

4.17 打印如下图形。要求把图形放到屏幕中央并且打印行数n(n=1, 2, … , 9)由用户输入。

1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1

4.18 打印如下图形。打印行数n由有户输入。要求把图形放在屏幕中央。

a a b a a b c b a a b c d c b a

a b c d e d c b a

4.19 打印如下图形。要求总行数n由键盘输入。注意:n必须是奇数。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

4.20 打印如下图形。要求输入最大的字母来控制打印行数。比如,下图应该输入字母D。 A B-B C―――C D―――――D C―――C

B-B A

4.21 打印如下图形。要求打印行数n由用户输入。 1 2 4 7 11 2 3 5 8 12 4 5 7 10 14 7 8 10 13 17 11 12 14 17 21

4.22 自拟格式,打印九九乘法表。

4.23 p和q都是素数,若q=p?2,那么p, q对被称为双素数。 例如,3, 5就是双素数。

编程求1000以内所有的双素数。

4.24 如果一个自然数的所有因子之和等于该数本身,称这个数为“完数”。编程输出1000以内的全部完数。要求输出格式如下: 28=1+2+4+7+14

4.25 输入若干个自然数,直到输入0时停止,求所有自然数的最大公约数与最小公倍数。 4.26 求2-10000中的守形数。所谓守形数,是指某数平方的低位就是该数本身。 比如,52=25, 5是25的低位,因此5就是守形数;

762=5776,76是5776的低位,因此76也是守形数。

要求输出格式形如:76:76?76=5776 4.27 两个自然数a, b(a?b),若a的因子和等于b,b的因子和等于a,称a, b为亲密数对,求1000以内

第五章习题

5.1 建立一个N元实型数组,输出最大值与最小值元素的下标。

5.2 编写程序,输入N个学生的成绩并用一维数组保存。计算并输出平均成绩、最高分以及最低分。

5.3 编程建立并输出一个N阶单位矩阵。

5.4 建立一个整型一维数组,然后重排数组元素,使得所有奇数排在偶数前面。

5.5 用一维数组存储素数,求1000以内的素数。为了提高算法效率,在判断整数m是否是素数时,只需要用已经找到并存入数组中的素数去试除m。

5.6 输入最多不超过15个正整数,求这些整数的最大公约数与最小公倍数。要求用数组求解。

5.7 写一个程序,输入一个N阶实数方阵,实现矩阵转置并输出。

5.8 在屏幕上打印出以下杨辉三角形,要求打印出的行数n由用户输入。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1 ?

(用二维数组求解)

5.9 删除数组中小于0的所有元素,要求不另辟数组空间实现算法。

比如:数组原来为:?5 ?2 9 3 ?1 ?10 ?7 12 6 ?3 则删除小于0的元素后,数组变为9 3 12 6

5.10 输出一个二维数组中的鞍点(i0, j0)。鞍点满足两个条件,一是在i0行它是最大元,二是在j0列它是最小元。如果没有鞍点,输出提示信息。 5.11 编程判断一个N阶方阵是否为对称矩阵。

5.12 以下程序的功能是重新排列数组a[N]的元素,使相等元素放在一起,并且保持它们在数组中第一次出现的相对次序。例如:

重排前:4, 3, 4, 2, 4, 5, 2, 4, 3, 1, 5, 4 重排后:4, 4, 4, 4, 4, 3, 3, 2, 2, 5, 5, 1

程序采用的算法是先删去重复元素,并统计各不同元素出现的次数,再按照各元素重复次数写回到数组a中。 #include #define N 20 void main()

{ int a[N],b[N],c[N],i,j,k,t; for(j=0;j

{ b[j]=c[j]=1; scanf(\}

for(i=0;i

for(j=i+1;j

t=N?1;

for(i=k;i>=0;i??)

for(j=1;j ;j++) =a[i]; for(j=0;j

第六章习题

6.1 指针的三个属性是什么?

6.2 指出下面程序中的指针常量标识符,并说明含义。 #include #include void main()

{ double x,y;int a[]={0,1,2,3 };int ?p=NULL;

scanf(\x=fabs(y);p=&a[1]; printf(\ }

6.3 若有定义float a[7],?p=a+3;写出以下表达式代表的数组元素。

(1)?a; (2)?p; (3)?(a+2); (4)?(p?2); (5)?(p?2); (6)p[?1]; (7)p[1]; (8)p[?3];

6.4 若有定义long a[10],i,?p;以下程序能够正确输入数组元素的是 。 (A) i=0;while(i<10) scanf(\(B) for(i=0,p=a;i<10;scanf(\(C) for(p=a;p<=a+9;p++) scanf(\?p); (D) p=a;do scanf(\?a>=10);

6.5 以下程序能够安全正确地建立字符串的是 。

(A) main() { char s[41];scanf(\(B) main() { char s[41];scanf(\(C) main() { char ?s;scanf(\(D) main() { char s[41],?p=s;scanf(\?p);

6.6 定义三个变量用于存储读入的三个整数,另定义三个指向整型量的指针变量,并利用它们实现将读入的三个整数按值从小到大顺序输出。

6.7 利用指针编写一个程序,使它能够从键盘读入4个数,并找出它们的平均值、最大值和最小值,然后将结果显示到屏幕上。要求不能使用数组。

6.8 编写一个程序,要求当用户输入两个字符串后,程序将这两个字符串连接起来输出。 6.9 由用户输入一串字符,将其中大写字母变成小写字母,小写字母变成大写字母,并按倒序输出。要求用下标和指针两种方法求解。

6.10 编写一个程序,使它能够统计用户输入的字符串中的数字字符数目。 6.11 编写程序,实现N元数组元素循环左移m次。

比如:N=8,输入8个元素为1 2 3 4 5 6 7 8 则循环左移三次的输出结果是 4 5 6 7 8 1 2 3

(要求用下标和指针两种方法求解)

6.12 编写一个程序,使它能够模拟摩斯译码,即 将字母ABCDEFGHIJKLMNOPQRSTUVWXYZ 翻译成ZYXWVUTSRQPONMLKJIHGFEDCBA 例如,输入如下密码:

NZWZN,R ZN ZWZN 将译码为:

MADAM,I AM ADAM

该程序要求用户从键盘输入一个按照以上密码规定编写的字符串,然后对其进行译码并输出结果。

6.13 编写一个程序,输入一个字符串,删除字符串中所有的空格后,输出字符串。要求不另辟串存储空间且输出时不能使用循环语句。

6.14 输入学生人数n以及n个学生的成绩,将成绩存储于n元动态数组。输出其中的最高分、最低分以及平均成绩。

6.15 定义两个大小相同的矩阵a,b,输入矩阵a的所有元素,将矩阵a复制到矩阵b,然后输出矩阵b。

6.16 输入两个字符串s1和s2,以及一个正整数n,将字符串s2插入到s1的第n个字符之后,输出插入字符串s2之后字符串s1。

其中,当n=0时,表示将串s2插入到s1有效字符之前; 当n=串s1长度时,将s2插入到s1有效字符之后。 要求不另辟字符串存储空间,并且对能否插入应该作判断,即


精通C程序设计教程各章习题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:材料成形原理试题总复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: