![C语言程序设计实例教程(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/105/41865105/b_41865105.jpg)
3.4 课后习题
3.4.1 实训
一、实训目的
1.进一步练习顺序结构程序设计。
2.进一步巩固各种输入输出函数的使用方法。
3.提高编程和调试程序的能力。
4.进一步巩固选择结构程序设计语句的使用。
5.进一步巩固break语句的使用方法。
6.进一步练习循环结构程序设计。
7.进一步练习循环嵌套结构程序设计。
8.进一步提高综合编程和调试程序的能力。
二、实训内容
1.编写程序,用getchar()函数读入两个字符c1、c2,然后分别用putchar()函数和printf()函数输出这两个字符,并思考以下问题:
(1)变量c1、c2应定义为字符型还是整型?抑或两者皆可?
(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar()函数还是printf()函数?
(3)整型变量与字符型变量是否在任何情况下都可以互相代替?如“char c1,c2;”与“int c1,c2”是否无条件等价?
2.求一个圆柱体的体积。
3.编写一个简单的计算器,实现两个整型数的四则运算。
4.接收用户输入的3种商品的价格。如果购买的3种商品中至少有一种商品的价格大于50或者3种商品的总额大于100,则折扣率为15%,否则折扣率为0,计算并显示用户应付的钱数。
5.判断所输入的一个年份是否为闰年。
6.利用if语句编写程序,输入x值,求解以下分段函数的y值。当x<1时,y=x+1;当1≤x≤10时,y=2x+5;当x≥10时,y=x2+8。
7.编写一个程序,根据用户输入的期末考试成绩,输出相应的成绩评定信息。成绩大于等于90分时输出“优”;成绩大于等于80分、小于90分时输出“良”;成绩大于等于60分、小于80分时输出“中”;成绩小于60分时输出“差”。
8.利用switch语句编写一个计算器程序,用户输入四则运算表达式,输出计算结果。
9.输出所有的水仙花数(水仙花数是指一个三位数,其各位数字的立方和等于该数本身)。
10.求fibonacci数列(1,1,2,3,5,8,…)的前40项,该数列表示为:
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/65_02.jpg?sign=1738991528-GANCKxo9ccy0KMeO4LDA4iQdpg10MQcZ-0-e7e4128165219fd3c33286fc0f354229)
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/66_01.jpg?sign=1738991528-xOEsDtERdWgKpMgkNmbYmCVgt7Fv4mJI-0-827da27ae550450b69c08bb9c3a6480c)
11.求整数1~100的累加值,但要求跳过所有个位为3的数。
12.输出100~200之间的全部素数。
13.试编程,找出1~99的全部同构数。同构数是这样一组数:它出现在平方数的右侧。例如:5是25右边的数,25是625右边的数,5和25都是同构数。
3.4.2 练习题
一、选择题
1.putchar()函数可以向终端输出一个__________。
(A)整型变量表达式
(B)实型变量值
(C)字符串
(D)字符或字符型变量值
2.阅读以下程序,若输入:25,13,10↙(注:↙表示回车),则正确的输出结果为__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/66_02.jpg?sign=1738991528-kvqRi9mz18aXzSD6OK5zyqiUQILXCpDb-0-17ec306833c25a583ba6d9bd714aa2b1)
(A)x+y+z=48
(B)x+y+z=35
(C)x+z=35
(D)不确定值
3.已知定义int i,j,k;,若从键盘输入:1,2,3↙,分别使i,j,k的值为1,2,3,以下输入语句中正确的是__________。
(A)scanf("%2d%2d%2d",&i,&j,&k);
(B)scanf("%d%d%d",&i,&j,&k);
(C)scanf("%d,%d,%d",&i,&j,&k);
(D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
4.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为20,30,C和D,当从第一列开始输入数据时,正确的数据输入方式是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/66_03.jpg?sign=1738991528-Tr1hw9903bmp0Mkkwv6v9vmGY9bhsUn2-0-ca6b1e05ccc9c1cfd583e4151d86b45e)
(A)20C30D↙
(B)20C 30D↙
(C)20 C 30 D↙
(D)20,C,30,D↙
5.在if语句的嵌套中,else总是与__________配对。
(A)它前面未配对的if
(B)它前面最近的未配对的if
(C)它上面对应在同一列的if
(D)它在同一行的if
6.判断char型变量ch是否为大写字母的正确表达式是__________。
(A)'A'<=ch<='Z'
(B)(ch>='A')&(ch<='Z')
(C)(ch>='A')&&(ch<='Z')
(D)('A'<=ch)AND('Z'>=ch)
7.已知int x=10,y=20,z=30;,以下语句执行后x,y,z的值是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/67_01.jpg?sign=1738991528-v8vs8kdBw1O0EDLhBcJyPl8QWlSkI9iq-0-0477cabf67d6202bdb424261f63cd4a3)
(A)x=10,y=20,z=30
(B)x=20,y=30,z=30
(C)x=20,y=30,z=10
(D)x=20,y=30,z=20
8.请阅读以下程序,程序__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/67_02.jpg?sign=1738991528-4Bn6CeIpCghsAwA1SkCgzRbExHgmaLmW-0-d714b88c5dd268cd30c0c45647a9f7b2)
(A)有语法错不能通过编译
(B)可以通过编译但不能通过连接
(C)输出***
(D)输出$$$
9.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/67_03.jpg?sign=1738991528-CvcSlVUgDDZEVztKcIu8lSdYNtVMzab7-0-2023ba9007bbb71165197a3b449fb259)
(A)1
(B)2
(C)3
(D)6
10.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是__________。
(A)4
(B)3
(C)2
(D)1
11.下面程序段的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/67_04.jpg?sign=1738991528-Z3cuhFImMZOt9pGkjSADkJU7Bobq1cxd-0-eabc0cb6fef44c55186502ebb1db5ad6)
(A)2
(B)3
(C)4
(D)有语法错
12.设有以下程序段,下面描述正确的是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/67_05.jpg?sign=1738991528-qutbAYaNWZLo5bRQvcO5yEJqssLJFQi7-0-ba03669f3c52c79ce0cdd950751948b2)
(A)其中循环控制表达式与0等价
(B)其中循环控制表达式与'0'等价
(C)其中循环控制表达式是不合法的
(D)以上说法都不对
13.执行语句for(i=1;i++<4;);后变量i的值是______。
(A)3
(B)4
(C)5
(D)不定
14.以下for循环的执行次数是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/67_06.jpg?sign=1738991528-AcKd0ABrtLglmy0ihQeJeRVs58GHdtNF-0-afb5540cc369ebcec089571174796b50)
(A)是无限循环
(B)循环次数不定
(C)执行4次
(D)执行3次
15.下面程序的运行结果是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/68_01.jpg?sign=1738991528-8oK2F2z4vOfVR2XD1eO0DlnNNi075WeG-0-39b918e68350788d0e985da587fbba2c)
(A)*#*#*#$
(B)#*#*#*$
(C)*#*#$
(D)#*#*$
16.若有如下语句,则上面程序段______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/68_02.jpg?sign=1738991528-yZGpYPu0EU1FtKlLqCsQU6PMoaPemo8q-0-f4f73889965d05702b27fafeeea733e6)
(A)输出的是1
(B)输出的是1和-2
(C)输出的是3和0
(D)是死循环
17.下面程序的运行结果是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/68_03.jpg?sign=1738991528-M3TOiyvqLH89ui4dHLEcd8WjOx8JBPxw-0-787628120cb626bfdc1addd0658bad89)
(A)-1
(B)1
(C)8
(D)0
18.下面程序段不是死循环的是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/68_04.jpg?sign=1738991528-6H69XEPAmSa9kEluc7bI5CK4697W8yjW-0-6f72acdc5e32a830feb0531101b9eefc)
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/69_01.jpg?sign=1738991528-ARFYtH6mC4nMa8ADdEJ8w6BTqAp9C2ek-0-dd34f7e5636a0b3e920d430e8c473864)
19.以下描述正确的是_______。
(A)continue语句的作用是结束整个循环的执行
(B)只能在循环体内和switch语句体内使用break语句
(C)break语句和continue语句在循环体内的作用相同
(D)从多层循环嵌套中退出时,只能使用goto语句
20.以下程序的输出结果是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/69_02.jpg?sign=1738991528-9WMqJTAS34eD4SVayubkXu3QCqiEhPbI-0-42f439ca2f03d630ee56210094be6c42)
(A)9
(B)1
(C)10
(D)12
21.以下程序的输出结果是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/69_03.jpg?sign=1738991528-9ku1QS6f2kZy9urjz7IFRXKI5TL40pdX-0-ece3e2e483f9ea66a5d0bcec9c05bd70)
(A)8 12 16
(B)8 12
(C)12 16
(D)8
二、填空题
1.以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/69_04.jpg?sign=1738991528-vcGYOL5021ZI7ahWfHDZYpmIUutSqC4t-0-c710e68cc11d9ad36eaf879fdfd45c7f)
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/70_01.jpg?sign=1738991528-gxNN79FyRy0EH5jSL3QwMIvHifPvL5xX-0-70ac9060cf9d99d9dd254a8d3d929a4c)
2.以下程序实现3个整数的互联并输出a,b,c的值。请将下面的程序补充完整。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/70_02.jpg?sign=1738991528-hOZpedg9mCWAekpIOZYsw1CGc7IPNlcb-0-0a0ea004b407b196bec71cd9428ce2a9)
3.以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/70_03.jpg?sign=1738991528-vAPtOkJ6LHLAUfs8ja8sOMjnHUDuuETr-0-d9f8d3643da58a1b9fb942a0941beb17)
4.以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/70_04.jpg?sign=1738991528-37tknna3euYg1vgcm6MvzZw6snslVL7y-0-05cabf6d775afbdc4cc98d68d91926e6)
5.以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/70_05.jpg?sign=1738991528-nrvBw6B4zHObyZg7tBSNzgkh4KGuLWOg-0-5ec7ce8a70a43985130ceaeea97cf7e3)
6.以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/70_06.jpg?sign=1738991528-1JhBao1W0qhW81YOTF2zTJWL47tPV6s6-0-3c7b8f9a1d13c36aa2b2da87924d1f9b)
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/71_01.jpg?sign=1738991528-Ih7TCD2F9A8OgNiYVuK7RGC2hpaBaalW-0-521420dfd30d54618de2c88497353c1f)
7.以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/71_02.jpg?sign=1738991528-TQkEkMta48rjpj4VpdaLtTmIHh6WvKDR-0-44017c195ad45c2b7941eb17b0459155)
8.设有变量定义:int a=10,c=9;,则表达式(--a!=c++)?--a:++c的值是__________。
9.若运行时输入:3 5↙,则以下程序的运行结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/71_03.jpg?sign=1738991528-lSAkM4zr5WO2GDOZYWrsHp7OOaeBKCZF-0-2cf245afb23deaa3f24584728760ae08)
10.以下由while构成的循环执行的次数是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/71_04.jpg?sign=1738991528-vXCpbSKscgsHVNrz8q3J2Dc91abD5H2K-0-9033c6804d75102d0ea295f7f232dce7)
11.以下程序的输出结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/71_05.jpg?sign=1738991528-aQe9P81bUt7Ix3H9EK27Gzdrm0uVw6cO-0-3caf5a1788ff95f6c302b19d634d29ae)
12.以下程序的输出结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/71_06.jpg?sign=1738991528-jozUxwbqYpWcDNT2oApoTtqkwILZBnli-0-6d4dd6867b844c1c59f02b41886833b4)
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/72_01.jpg?sign=1738991528-AniChZ8OpnY5XfNUnGZNFdwwnBhE8eyp-0-ca894ad9af2154b8c9affc738c34e98c)
13.当运行以下程序时,从键盘上键入right?↙,则下面程序的运行结果是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/72_02.jpg?sign=1738991528-VhiYWxX2JRq3JT8e6uL7x2MZByrvXuVF-0-08e61d304b219ab0e4cf3ce19dfca949)
14.以下程序的输出结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/72_03.jpg?sign=1738991528-UBvYWrQ9BVHooHf49b1jOeNihiFohRxT-0-c43e6a1d1a9a4714e160c80cb03e27de)
15.以下程序的输出结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/72_04.jpg?sign=1738991528-4KDiidtwQetWCoI6SvRvottScDmqOp1F-0-d9a9194f25df6acd03ca854c5f99a74f)
16.以下程序的输出结果是__________。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/72_05.jpg?sign=1738991528-zf0E2CuXgCONj4zBrCHqL8E4sGvzEjtk-0-31d3073edcb864a09a6f2efb8aa4d04c)
17.等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项中输出能被4整除的所有项的和。请将以下程序中的空缺语句补充完整。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/73_01.jpg?sign=1738991528-dwfhxH6vRQBTd9xhKfJOZzUpiOWS6vQt-0-f1d3ef73207d8c36771173ae26944a0b)
18.以下程序的输出结果是_______。
![](https://epubservercos.yuewen.com/337DC8/21889224301191506/epubprivate/OEBPS/Images/73_02.jpg?sign=1738991528-3ftaOKmYX5HJggzUYNTfu7n5Ff1qqtUH-0-632cafeb8e79bab6dc977e2a4b4a79ce)