C语言程序设计习题答案(杜有福主编)

更新时间:2023-11-13 03:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序设计习题答案

习题一 C语言程序设计概述

三、用传统流程图、N-S图分别表示求解以下问题的算法。

1. 有3个数a,b,c,要求按由大到小的顺序把它们输出。

2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。

3. 求1+2+3+?+100的值。

输入三个数给a,b,c 如果ax Yes No min = x n = n + 1 输出max,min的值 s=0; i=1 当i小于等于100时 s=s+i; i = i+1; 输出s的值 s=1; i=1 当i小于等于10时 s=s*i; i = i+1; 输出s的值 4. 求1×2×3×?×10的值。 5. 求下列分段函数的值。

6. 求100~200之间的所有素数。

Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

输入一个数给x X<=1 Yes no X<1 x<5 Yes no yes no Y=3x y=4x-1 y=5x+1 y=6-3x 输出s的值 i =100 当i<=200时 n=2; flag=1; 当n< i时 i能否被n整除? yes no flag=0 n = n+1 flag=1? yes no 1

7. 求一元二次方程ax2

+bx+c=0的根。分别考虑d=b2

-4ac大于0、等于0和小于0三种情况。

四、注释下面C程序的各个组成部分。

main() /*主函数 */ { /*程序开始 */

int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */

a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf(\/*在屏幕上打印出变量a 的值 */ } /*程序结束 */

习题二 数据类型、运算符与表达式

一、 选择题

1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD

二、填空题

1.字母 L 或字母 l

2. 字符或%c 、 整数或%d

3.在程序运行过程中,其值可以在一定的范围内变化的量。 4. ‘\\0’

5. 小数形式 、 指数形式

6. 关键字 、 预定义标识符 、 用户标识符 7. 字母 、 数字 、 下划线 、 数字 8. 18 9. 2 、 1 、 30 10. 双精度实数或double

11. 赋值 、 逗号 、20、 20 、 20、 4 12. 4 习题三 顺序程序设计

一、 选择题

1~10:BCCBC CCDCC 二、 填空题

1. printf( ) 、 scanf( ) 2. l (注:long的第1个字符) 3. 域宽,即在格式字符前加一个整数,如] 4. ‘\\0’ 5. e 、 g 6. 6

2

7. s 、 c 8. *

9. - 、 + 10. i

三、 编程题

1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进 行输出。例如输入的时间为4258秒,则输出结果为:1小时10分58秒。

#include \main() {int x,h,m,s; scanf(\

h=x/3600; m=x600/60; s=x`; printf(\}

2. 编写程序,读入三个整数给变量a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。

#include \main() {int a,b,c,t;

printf(\ scanf(\ printf(\ t=a;a=c;c=b;b=t;

printf(\}

习题四 选择结构程序设计

一、 填空题

1. 1 、 0

2. ! % + <= != && || = 3. x==0 4. 0,2

5. 20 、 0 、 0 二、 选择题

1~7:DDCAD DC 三、 程序阅读题

1. 595959 2. 0.500000 3. 1 4. 2 5. 6 6. a=2,b=1 7. pass warn

3

8. 1 四、 编程题

1. 设a为整型变量且其值大于零,请将以下if语句改写成switch语句。

if ( a<60) m=1; else if(a<70) m=2; else if(a<80) m=3; else if(a<90) m=4; else m=5; #include \main() {int a,m; scanf(\ switch(a/10)

{case 0:case 1:case 2:case 3: case 4:case 5:m=1;break; case 6:m=2;break; case 7:m=3;break; case 8:m=4;break; default:m=5;break; }

printf(\}

#include \main() {int a,m; scanf(\ m=0; switch(a/10) {default:m++; case 8:m++; case 7:m++; case 6:m++;

case 5:case 4:case 3:case 2: case 1:case 0:m++; }

printf(\}

2. 编写程序,从键盘输入一个整数,打印出它是奇数还是偶数。

#include \main() {int a;

scanf(\ if(a%2==1)

printf(\ else

printf(\}

3. 编写程序,从键盘输入一个字符,判别它是否是小写字母,如果是,将它转换为大写字母;如果不是,不转换。然后输

出最后得到的字符。

4

#include \main() {char ch;

scanf(\ if(ch>='a' && ch<='z') ch=ch-32; printf(\}

4. 编写程序,从键盘输入一个不多于4位的正整数,打印出它是几位数。

#include \main() {int x,n;

scanf(\ if(x>1000) n=4; else if(x>100) n=3; else if(x>10) n=2; else n=1; printf(\}

5. 当一个人的月收入在2000元以下时免税;月收入在2000元到5000元之间时,超过2000的部分纳税8%;月收入在5000

元以上时,2000至5000之间的部分纳税8%,超过5000的部分纳税15%。编写程序从键盘输入月收入income,计算并输出应交税款tax。

#include \main() {int income; float tax;

scanf(\ if(income<=2000) tax=0;

else if(income<=5000)

tax=0.08*(income-2000); else

tax=0.08*(5000-2000)+0.15*(income-5000); printf(\}

6. 回文是指正读和反读都一样的数或字符串。例如:12321、55455、35553等都是回文。请编写一个程序,从键盘上读取一个包含五位数字的长整数,并判断它是否是回文。(提示:用除法运算和求余运算把一个数的个位、十位、百位、千位等分别分离出来。)

#include \main() {long x; int a,b,d,e; scanf(\

a=x/10000; b=x000/1000; d=x0/10; e=x; if(a==e && b==d)

printf(\ else

printf(\

5

本文来源:https://www.bwwdw.com/article/udqv.html

Top