收藏 分享(赏)

程序设计基础(C语言)第3版_习题及答案.doc

上传人:微传9988 文档编号:2517458 上传时间:2018-09-20 格式:DOC 页数:105 大小:532.50KB
下载 相关 举报
程序设计基础(C语言)第3版_习题及答案.doc_第1页
第1页 / 共105页
程序设计基础(C语言)第3版_习题及答案.doc_第2页
第2页 / 共105页
程序设计基础(C语言)第3版_习题及答案.doc_第3页
第3页 / 共105页
程序设计基础(C语言)第3版_习题及答案.doc_第4页
第4页 / 共105页
程序设计基础(C语言)第3版_习题及答案.doc_第5页
第5页 / 共105页
点击查看更多>>
资源描述

1、第 1 章 C 语言概述【习题 1-1】简述 C 语言的特点。答:C 语言的特点:C 语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C 是结构式语言;C 语法限制不太严格,程序设计自由度大;C 语言允许直接访问物理地址;C 语言程序生成代码质量高;C 语言适用范围大,可移植性好。【习题 1-2】简述上机调试运行 C 程序的操作步骤。答:上机运行 C 语言程序的操作步骤为:启动 Visual C+ 6.0建立工程创建源程序文件输入(编辑)源程序内容保存源程序文件编译源程序文件连接目标程序执行程序开始另一个程序。【习题 1-3】上机运行本章的 3 个例题。答:略。【习题 1-4】请从以

2、下的 4 个选项中选择一个正确答案。(1)A (2)A (3)C (4)B 【习题 1-5】参照本章例题,编写一个 C 语言程序,输出以下信息:*Nice to meet you!* 编写程序如下:#includevoid main()printf(“*n“);printf(“Nice to meet you!n“);printf(“*n“);第 2 章 基本数据类型和运算符【习题 2-1】上机编辑并调试本章所有例题。答:略。【习题 2-2】下面哪些是合法的常量?20 0.5 012 13e5.1 E-5 8e4 5. 0x6amn “OK“ “a“ 012 “a/b“ 答:合法的常量有:20

3、 0.5 012 8e4 5. 0x6a合法的常量有: “OK“ “a“ 012 “a/b“ 【习题 2-3】下面的变量名中哪些是合法的?Afloat a,b;int a,b;float a,b;float a,int b;char a;答:错误,因为关键字 Int 应该全为小写字母 正确错,因为同一变量在程序的同一处不应该声明为不同的数据类型错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号错,a表示字符常量,不能用作变量名【习题 2-5】把下列数学式子写成 C 语言表达式。(1)3.26e x+ (a+b)413(2) sin()ab(3) 21rmg(4)2r+r 2+cos(

4、45)(5) ()11monthatelon对应的 C 语言表达式分别为:(1)3.26*exp(x)+1.0/3*pow(a+b,4)(2)2*sqrt(x)+(a+b)/(3*sin(x)(3)g*m1*m2/(r*r)(4)2*3.14*r+3.14*r*r+cos(3.14/180*45)(5)loan*rate*pow(1+ rate, month)/(pow(1+rate, month)-1)【习题 2-6】C 语言中为什么要引入转义字符?答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如

5、a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上的字符,为了解决这一问题,在 C 语言中引入了转义字符。【习题 2-7】逻辑表达式的值是什么?只能用 1 和 0 才能表示真值和假值吗?答:逻辑表达式的值是一个逻辑量“真”或者“假” ,不是只有用 1 表示真值,用 0 表示假值,在判断一个量为真假时,常以 0 表示假,以非 0 表示真。【习题 2-8】对于表达式(1+2)*(y=3),可以肯定(1+2)先计算,而(y=3)后计算吗?答:不能。【习题 2-9】 “int j;x=0;y=0;x=x+y;int x,y;x=y-(y/10)*

6、10;int x;x=x+1;y=x;-x;对应的简写语句分别为:(1)int a,b;(2)x=y=0;(3)x+=y;(4)int x,y;x=y%10;(5)int x;x+; 或 x+=1; 或 +x;(6)y=x-;【习题 2-12】写出下面程序运行后的结果。 程序运行结果:2,3 程序运行结果:y=5. 程序运行结果:ch1=65,ch2=97B,b 程序运行结果:0,48 程序运行结果:0221 程序运行结果:a,A,32,32 程序运行结果:01,60,15,15 程序运行结果:2,2,11,2,10,2,2-1,2,2 程序运行结果:324 程序运行结果:323,343,4,

7、401第 3 章 顺序和选择结构程序设计【习题 3-1】请从以下的 4 个选项中选择 1 个正确答案。1. 结构化程序设计的三种基本结构是( ) 。A. 函数结构、判断结构、选择结构 B.平行结构、嵌套结构、函数结构C. 顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构【正确答案】 C2. putchar( )函数可以向终端输出一个( ) 。A. 整型变量表达式值 B. 实型变量值C. 字符串 D. 字符或字符型变量值【正确答案】 D3. 若已定义 double y; 拟从键盘输入一个值赋给变量 y,则正确的函数调用是( ) 。A. scanf(“%d”, B. scanf(“%

8、7.2f”, C. scanf(“%lf”, D. scanf(“%ld”, 【正确答案】 C4. 若有以下定义: float x; int a, b; 则正确的 switch 语句是( ) 。A. switch(x) B. switch(x) case 1.0:printf(“*n“); case 1,2:printf(“*n“);case 2: printf(“*n“) case 3:printf(“*n“); C. switch(a+b) D. switch(a-b); case 1: printf(“*n“) ; case 1:printf(“*n“);case 2: printf(“

9、*n“); case 2:printf(“*n“); 【正确答案】 C5. 为了避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与( )组成配对关系。A. 缩排位置相同的 if B. 在其之前未配对的 ifC. 在其之前尚未配对的最近的 if D. 同一行上的 if 【正确答案】 B【习题 3-2】i f 语 句 有 那 3 种 形 式 , 请 分 别 画 出 每 种 形 式 的 执 行 流 程 图。【参考答案】(1)顺序结构 (2)选择结构(3)循环结构(当型循环) 循环结构(直到型循环)【习题 3-3】下面哪些语句是合法的?(1)if(a=b)printf(“Hell

10、o“);(2)if(a=b)printf(“Hello“)(3)if(a=b)printf(“Hello“)elseprintf(“Goodbye“);(4)if a=bprintf(“Hello“);【正确答案】(1)合法。(2)不合法。(3)不合法。(4)不合法。【习题 3-4】读程序写结果。(1)从键盘输入 58#includevoid main( ) int a;scanf(“%d“,if(a50) printf(“A=%d“,a);if(a40) printf(“B=%d“,a);if(a30) printf(“C=%d“,a);答案: A=58 B=58 C=58(2)#inclu

11、destdio.hvoid main( ) int x=10,y=20,t=0;if(x=y) t=x;x=y;y=t;printf(“%d,%d n“,x,y);答案:20(3)#includevoid main( )int p,a=5;if(p=a!=0)printf(“%dn“,p);elseprintf(“%dn“,p+2);答案: 1(4) #includestdio.hvoid main( )int a=4,b=3,c=5,t=0;if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;printf(“%d %d %dn“,a,b,c);答案:5 3 4(5)

12、#includestdio.hvoid main( ) int i,m=0,n=0,k=0;for(i=9;i=11;i+)switch(i/10) case 0: m+; n+; break;case 10: n+;break;default: k+;n+; printf(“%d %d %dn“,m,n,k); 答案:1 3 2(6) #includestdio.hvoid main( ) int n=0,m=1,x=2;if(!n) x-=1;if(m) x-=2;if(x) x-=3; printf(“%dn“,x);答案:-4 (7) #includestdio.hvoid main(

13、 ) int x=1,y=0,a=0,b=0;switch(x) case 1:switch(y) case 0:a+; break;case 1:b+; break;case 2:a+;b+; break;printf(“%d %dn“,a,b);答案:2 1(8) #includestdio.hvoid main( )int a=3,b=4,c=5,t=99;if(baa=c;c=t;if(acb=a;a=t;printf(“%d %d %dn“,a,b,c);答案:4 3 5(9) #includestdio.hvoid main( )int n=c;switch(n+) default

14、: printf(“error“);break;case a:case A:case b:case B:printf(“good“);break;case c:case C:printf(“pass“);case d:case D:printf(“warn“);答案:passwarn【习题 3-5】有如下 if 条件语句:if(a=d)*/x=3;else if(c=b)【习题 3-6】有两个程序段:(1)if(avoid main( )int a, b, c;if(ab) t=a; a=b; b=t;if(a0scanf(“%d”, if(m%3=0|m%13=0|m%17=0)printf

15、(“can be divided!”);elseprintf(“can not be divided!”);【习题 3-12】若一个学生是某校的学生,且是男生,则输出“male” ;若是女生,则输出“female” ;若不是某校的学生,则输出“No” 。试编写该程序并画出流程图。程序如下: /*c3_12.c*/#include void main( )int school, sex;scanf(“%d,%d”, if(school=1) if(sex=1)printf(“male”);elseprintf(“female”);elseprintf(“No”);【习题 3-13】某产品的国内销

16、售价为 80 箱以下,每箱 350 元,超过 80 箱,超过部分每箱优惠 20 元;国外销售价为 1000 箱以下,每箱 900 元,超过 1000 箱,超过部分每箱优惠 15 元。试编写计算销售额的程序。程序如下: /*c3_13.c*/#include void main( ) float money;int national, count;printf(“Input national or external: “);scanf(“%d“,printf(“Input count of product: “);否 是 是 否 输 入 学 生 学 校 及 学 生 性 别 是 否 某 校 学 生

17、 输 出 No 是 否 某 校 学 生是 否 男 生 输 出 female“female” 输 出 “male” 结 束 scanf(“%d“,if(national) /* 国内销售 */if(countvoid main()char chr;char password;chr=getchar();password=chr+6;if(chr90)password=(password%91)+A;elsepassword=password%91;elseif(password=123)password=(password%123)+a;else password=password%123;pr

18、intf(“The characters password is %c“,password);【习题 3-15】企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的部分,可可提成 7.5%;20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到 60万之间时高于 40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于 100 万元时,超过 100 万元的部分按 1%提成,从键盘输入当月利润 I

19、,求应发放奖金总数?程序如下: /*c3_15.c*/#include main() long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(“%ld“, bonus1=*0.1; /*利润为 10 万元时的奖金*/bonus2=bonus1+*0.75; /*利润为 20 万元时的奖金*/bonus4=bonus2+*0.5; /*利润为 40 万元时的奖金*/bonus6=bonus4+*0.3; /*利润为 60 万元时的奖金*/bonus10=bonus6+*0.15; /*利润为 100 万元时的奖金*/if(i

20、void main( ) float sum=0.0,ave=0.0,score;int i; for(i=0;ivoid main( ) float sum=0.0;int i,j=1; for(i=1;ivoid main( ) int x,y,z;printf(“水仙花数有:“);for(x=1;xvoid main()int s=0,i;for(i=1;ivoid main()int s=0,i=1;while(ivoid main()int s=0,i=1;dos+=i;i+;while(ivoid main()int a,b,t;scanf(“%d,%d“,while(a!=b)i

21、f(ab) t=a;a=b;b=t; printf(“%d,%dn“,a,b);scanf(“%d,%d“,【习题 4-7】从键盘输入的一组字符中统计出大写字母的个数 m 和小写字母的个数 n,并输出 m、n 中的较大者。程序如下:/*c4_7.c*/#include void main()int m=0,n=0;char c;while(c=getchar()!=n)if(cAfloat s;scanf(“%d,%d“,s=max=min=a;for(i=1;ia) min=a;printf(“Max=%d,Min=%d,avg=%f“,max,min,s/n);【习题 4-9】输出显示自然

22、数 1100 之间的全部素数。程序如下:/*c4_9.c*/#include #include void main()int n,i,j,l=0;for(n=2;n=i+1)if(lvoid main()int m,s,i;for(m=2;mvoid main()int x,y,z,i,result=888;for(x=1;xvoid main()int x,y;for(x=0;xvoid main( ) int x,i; x=1;for(i=9;i=1;i-) x=2*(x+1); printf(“%dn“,x); 【习题 4-14】编写程序,找出 1-99 之间的全部同构数。 (同构数的定

23、义:出现在平方数的右边。例如:5 是 25 右边的数,25 是 625 右边的数,5 和 25 都是同构数)程序如下:/*c4_14.c*/#include void main()int i;for(i=1;ivoid main()int i,j;for(i=0;ivoid main( ) int i,j,k; for(i=0;ivoid main()int a,i,j,k;printf(“please enter the number“);scanf(“%d“,for(i=0;ivoid main()long int num;scanf(“%ld“,doif(num/10%10=9) pri

24、ntf(“%ld“,num);scanf(“%ld“,while(num!=0);【习题 4-19】假设 x,y 是整数,编程求 xy的最后 3 位数,要求 x、y 从键盘输入。程序如下:/*c4_19.c*/#includevoid main()int i,x,y;long last=1;printf(“Input x and y:“);scanf(“%d,%d“,for(i=1;i#include void main()int a,b,c,d;scanf(“%d“,for(b=3;bsqrt(b)d=a-b;else continue;for(c=2;csqrt(d) printf(“%d

25、=%d+%dn“,a,b,d);第 5 章 数组【习题 5-1】现有一实型一维数组 A12,其各元素值在内存中排列的顺序为:1.0,15.5,9.5,-23,8.4,66.5,7.1,22.0,54.5,-34,11.3,32.5,请按下列要求编写程序求答案。(1)数组中元素值最小的数组元素。(2)数组中元素值最大的数组元素。(3)数组中某数组元素值等于另外两个数组元素值之和的等式。(4)数组中某数组元素值等于另外两个数组元素值之差的等式。程序如下:/*c5_1.c*/#include void main()double a12=1.0,15.5,9.5,-23,8.4,66.5,7.1,22

26、.0,54.5,-34,11.3,32.5;int i,j,k;double max,min;min=a0;for(i=0;iai) min=ai;printf(“min=%lfn“,min);max=a0;for(i=0;ivoid main()int a1010; int i,j,k;for(i=0;i=j)printf(“%3d“,aij);elseprintf(“ “);printf(“n“);printf(“n“);printf(“=8=n“);for(i=0;i=9-i)printf(“%3d“,aij);elseprintf(“ “);printf(“n“);printf(“n“

27、);【习题 5-8】阅读、分析下列程序,并写出运行相应程序后的输出结果。(1)#include “stdio.h“void main() static int a10=1,1,1,1,1,1,1,1,1,1;int i,j;for(i=0;i10;i+)for(j=0;ji;j+)ai=ai+aj;for(i=0;i10;i+)printf(“%dn“,ai);(2)#include “stdio.h“void main() static int a200;int i,j,n;for(i=0;i200;i+)ai=0;n=100;for(i=0;in;i+)for(j=0;jn;j+)aj=a

28、i+1;printf(“%dn“,an-1);(3)#include “stdio.h“void main() int a,b=0;static int c10=1,2,3,4,5,6,7,8,9,0;for(a=0;a10;+a)if(ca%2)=0) b+=ca;printf(“%d“,b);(4)#include “stdio.h“void main() int a,b=0;static int c10=1,2,3,4,5,6,7,8,9,0;for(a=0;a10;+a)if(a%2)=0) b+=ca;printf(“%d“,b); (5)#include “stdio.h“main() int a,b=0;int c10=1,2,3,4,5,6,7,8,9,0;for(a=0;a10;+a)b+=ca;printf(“%d“,b);(6)#include “stdio.h“int c10=1,2,3,4,5,6,7,8,9,0;void main() int a,b=0;for( a=0;a10;+a)if(ca%2)=1) b+=ca;printf(“%d“,b);(1)结果:1248163264128256512(2)结果:199(3)结果:20(4)结果:25(5)结果:45(6)结果:25【习题 5-9】编写一个程序,完成 5.1 题的要求。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报