C语言程序设计实训教程习题和实验解答.doc
《C语言程序设计实训教程习题和实验解答.doc》由会员分享,可在线阅读,更多相关《C语言程序设计实训教程习题和实验解答.doc(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计实训教程习题和实验解答2.1 C语言概述【习题解答】1结构化程序有三大基本结构:顺序、分支和循环.2.算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。有穷性:一个算法应包含有限的操作步骤而不能是无限的。 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的,有零个或多个输入输出,有一个或多个输出。有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。对于程序设计人员,必须会设计算法,并根据算法写出程序。可以用自然语言、流程图、伪代码和计算机语言表示算法。3.C语言的主要特
2、点有:语言简洁、紧凑,使用方便、灵活。ANSI C一共只有32个关键字;控制语句丰富,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;运算符丰富,共有34种;数据结构类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言;生成目标代码质量高,程序执行效率高;与汇编语言相比,用C语言写的程序可移植性好。4.用传统流程图表达如下:2.2 数据类型与表达式【习题解答】一、选择题1.C 2.B 3.A 4.B 5.A 6.B 7.D 8.B 9.D 1
3、0.C二、填空题1.整型、实型、字符型、枚举类型2.3.3.逗号运算符4.三,自右向左5.1,06.32767三、编程题1.已知球的半径为1.5cm,计算球的体积。#include void main()float r=1.5,volume; volume=4.0/3*r*r*r; printf(“%fn”,volume);2.输入两个数a和b,求a除以b的商和余数?#include void main()int a,b,c,d; scanf(“%d,%d”,&a,&b); c=a/b; d=a%b; printf(“%d,%d”,c,d);3.输入三个学生的成绩,求这三个学生的总成绩和平均成
4、绩。#include void main()int a,b,c,sum; float average; printf(“please input students score:”); scanf(“%d,%d,%d”,&a,&b,&c); sum=a+b+c; average=sum/3.0; printf(“sum=%d,average=%fn”,sum,average);【实验解答】1.c=102. 程序功能为输入两个数,求两数的差c=103. #include void main() int a,b,c; a=b=5; c=a+b;printf(“a+b=%d”,c);4.运行结果i=8
5、,j=10,m=9,n=10,u=9,v=-10(回车)5.x=16,y=24,z=246. 100 68 100 68d D 100 68d D 120 112x p 出错 304 321 0 A7.编写一个C 程序,输入a,b,c三个整数,求这三个数之和。具体要求:1) 在Turbo C环境或其他编译环境下编辑该程序,然后进行编译连接。2) 运行该程序,检查你所编写的程序是否正确。#include void main()int a,b,c,sum; scanf(“%d,%d,%d”,&a,&b,&c);sum=a+b+c;printf(“sum is : %dn”,sum);2.3 顺序结
6、构程序设计【习题解答】一、选择题1. B2. C3. A 4.A 5.D 6.B二、填空题1. y=2 2.666.006.00 (表示空格)3. k=11,k8=13,k16=b。 4. ! ! ahpu ahpu5. 5,4,c=3 6. i=56,j=789.,x=12345.,y=a,c=72三、编程题1.已知x=3.2,y=7,z=2,计算y/3*x-2的值。#includevoid main() float x=3.2; int y=7,z=2; printf(“%f”, y/3*x-2);2.输入一个华氏温度,要求输出摄氏温度(结果保留2位)。公式为c=5/9*(f-32)。#i
7、nclude void main() float f,c; scanf(“%f”,&f); c=5.0/9*(f-32); printf(“c=%.2f”,c);3.从键盘输入一个小写字母,用大写形式输出该字母。#include void main() char a,b; printf(“please input a little letter:”); scanf(%c,&a); b=a-32; printf(%c,b);4.把16进制数12a以10进制形式输出。#include void main()int a=0x12a;printf(%d,a);5.输入两个整数,将其值交换。#inclu
8、de void main()int a,b,t; scanf(a=%d,b=%d,&a,&b); t=a; a=b; b=t; printf(a=%d,b=%d,a,b);【实验解答】实验 顺序结构程序设计1. 结果为0,因为a,b被定义为实型,而却以整型输入,类型不匹配。2. 错误之处: s=3 /(a+b)*(a+b); 应改为:s=3.0/(a+b)*(a+b);3. 运行结果 -1,,ffff,65535 b=-24.编程并上机调试运行1) 设圆半径为r=1.5,求圆周长、面积。要求用scanf函数输入数据,输出时取小数点后两位。#include void main() float r
9、,l,s,v;scanf(%f,&r);l=2*3.14*r;s=3.14*r*r;printf(l=%.2f,s=%.2f,v=%.2f,l,s);2) 输入一个3位十进制整数,分别输出百位、十位以及个位上的数。#include void main() int a,b,c,d; scanf(%d,&a); b=a/100; c=a/10%10; d=a%10; printf(%d %d %d,b,c,d);3) 从键盘输入一个带2位的实数,将其整数部分和小数部分分离后输出。例如:输入321.54,输出321.54=321+0.54。#include void main() int a; fl
10、oat b,c; scanf(%f,&b); a=(int)b; c=b-a; printf(%.2f=%d+%.2f,b,a,c);4) 用getchar函数读入两个字符,然后分别用putchar和printf函数输出这两字符。#include void main()char a,b; a=getchar(); b=getchar(); putchar(a); putchar(b); printf(n%c%c,a,b);2.4 选择结构程序设计【习题解答】一、选择题1. A。 2. D。 3. A。 4. B。 5. C。 6. A。二、填空题1. (x20&x30)|x-100。2. 1,
11、0,0。3. 。4. 20,0。5. 2。6.a=3,b=2。三、编程题1.要求输入三个数,输出其中最大值。#includevoid main() int a,b,c,max; scanf(%d%d%d,&a,&b,&c); max=a; if(maxb) max=b; if(maxc) max=c; printf(max is:%dn,max);2.由键盘输入3个数,若输入的这3个数可以构成三角形,则计算以这3个数为边长的三角形周长;如果不能,则输出提示错误信息。#include void main() float a,b,c,l; printf(please input a,b,cn);
12、scanf(%f,%f,%f,&a,&b,&c); if(a+b)c&(a+c)b&(b+c)a) l=a+b+c; printf(l=%fn,l); else printf(It is not triangle!n);3.从键盘上输入一个整数判断其奇偶以及正负。#include stdio.hvoid main() int a; scanf(%d,&a); if(a0) if(a%2=0) printf(It is PLUS even number); else printf(It is PLUS odd number); else if(a0) printf(2); else if(b*b
13、-4*a*c=0) printf(1); else printf(0);5.从键盘输入表示年份的整数,判断是否为闰年。#include stdio.hvoid main() int year; scanf(%d,&year); if(year%400=0)|(year%4=0&year%100!=0) printf(It is runnian); else printf(It is not runnian);【实验解答】实验名称 选择结构程序设计1. if(0=c&c=9) if(A=c&c=Z)|(a=c&c=z)else2.编程并上机调试运行1) 给出一个不多于4位的正整数,求它是几位数?
14、#includevoid main() int n; printf(Input a num(0num10000); scanf(%d,&n); if(n10) printf(1n); else if(n100) printf(2n); else if(n1000) printf(3n); else printf(4n);2) 给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分及以上为A,8089为B,7079为C,6069为D,60以下为E。用switch语句来实现。#includevoid main() int score; scanf(%d,&score); if(score1
15、00) printf(Error!); else score=score/10; switch(score) case 10: case 9:printf(An);break; case 8:printf(Bn);break; case 7:printf(Cn);break; case 6:printf(Dn);break; default:printf(En); 3) 输入四个数,要求按从大到小顺序输出。#includevoid main()int a,b,c,d,t; scanf(%d%d%d%d,&a,&b,&c,&d); if(ab)t=a;a=b;b=t; if(ac)t=a;a=c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 习题 实验 解答
限制150内