您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言程序设计实训教程习题和实验解答
C语言程序设计实训教程习题和实验解答2.1C语言概述【习题解答】1结构化程序有三大基本结构:顺序、分支和循环.2..算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。。有穷性:一个算法应包含有限的操作步骤而不能是无限的。确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的,有零个或多个输入输出,有一个或多个输出。有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。对于程序设计人员,必须会设计算法,并根据算法写出程序。可以用自然语言、流程图、伪代码和计算机语言表示算法。3.C语言的主要特点有:语言简洁、紧凑,使用方便、灵活。ANSIC一共只有32个关键字;控制语句丰富,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;运算符丰富,共有34种;数据结构类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言;生成目标代码质量高,程序执行效率高;与汇编语言相比,用C语言写的程序可移植性好。4.用传统流程图表达如下:2.2数据类型与表达式【习题解答】一、选择题1.C2.B3.A4.B5.A6.B7.D8.B9.D10.C二、填空题1.整型、实型、字符型、枚举类型2.3.0000003.逗号运算符4.三,自右向左5.1,06.32767三、编程题1.已知球的半径为1.5cm,计算球的体积。#includestdio.hvoidmain(){floatr=1.5,volume;volume=4.0/3*r*r*r;printf(“%f\n”,volume);}2.输入两个数a和b,求a除以b的商和余数?#includestdio.hvoidmain(){inta,b,c,d;scanf(“%d,%d”,&a,&b);c=a/b;d=a%b;printf(“%d,%d”,c,d);}3.输入三个学生的成绩,求这三个学生的总成绩和平均成绩。#includestdio.hvoidmain(){inta,b,c,sum;floataverage;printf(“pleaseinputstudents’score:”);scanf(“%d,%d,%d”,&a,&b,&c);sum=a+b+c;average=sum/3.0;printf(“sum=%d,average=%f\n”,sum,average);}【实验解答】1.c=102.①程序功能为输入两个数,求两数的差②c=103.#includestdio.hvoidmain(){inta,b,c;a=b=5;c=a+b;printf(“a+b=%d”,c);}4.运行结果i=8,j=10,m=9,n=10,u=9,v=-10(回车)5.x=16,y=24,z=246.①10068②10068dD③10068dD④120112xp⑤出错⑥3043210A7.编写一个C程序,输入a,b,c三个整数,求这三个数之和。具体要求:1)在TurboC环境或其他编译环境下编辑该程序,然后进行编译连接。2)运行该程序,检查你所编写的程序是否正确。#includestdio.hvoidmain(){inta,b,c,sum;scanf(“%d,%d,%d”,&a,&b,&c);sum=a+b+c;printf(“sumis:%d\n”,sum);}2.3顺序结构程序设计【习题解答】一、选择题1.B2.C3.A4.A5.D6.B二、填空题1.y=22.□□6□□6□6.00□6.00(□表示空格)3.k=11,k8=13,k16=b。4.ahpu.edu.cn!□□□ahpu.edu.cn!□□□□□□□□□□ahpuahpu□□□□□□□□□□□5.5,4,c=36.i=56,j=789.000000,x=12345.000000,y=a,c=72三、编程题1.已知x=3.2,y=7,z=2,计算y/3*x-2的值。#includestdio.hvoidmain(){floatx=3.2;inty=7,z=2;printf(“%f”,y/3*x-2);}2.输入一个华氏温度,要求输出摄氏温度(结果保留2位)。公式为c=5/9*(f-32)。#includestdio.hvoidmain(){floatf,c;scanf(“%f”,&f);c=5.0/9*(f-32);printf(“c=%.2f”,c);}3.从键盘输入一个小写字母,用大写形式输出该字母。#includestdio.hvoidmain(){chara,b;printf(“pleaseinputalittleletter:”);scanf(%c,&a);b=a-32;printf(%c,b);}4.把16进制数12a以10进制形式输出。#includestdio.hvoidmain(){inta=0x12a;printf(%d,a);}5.输入两个整数,将其值交换。#includestdio.hvoidmain(){inta,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,177777,ffff,65535b=-24.编程并上机调试运行1)设圆半径为r=1.5,求圆周长、面积。要求用scanf函数输入数据,输出时取小数点后两位。#includestdio.hvoidmain(){floatr,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位十进制整数,分别输出百位、十位以及个位上的数。#includestdio.hvoidmain(){inta,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。#includestdio.hvoidmain(){inta;floatb,c;scanf(%f,&b);a=(int)b;c=b-a;printf(%.2f=%d+%.2f,b,a,c);}4)用getchar函数读入两个字符,然后分别用putchar和printf函数输出这两字符。#includestdio.hvoidmain(){chara,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,0,0。3.585858。4.20,0。5.2。6.a=3,b=2。三、编程题1.要求输入三个数,输出其中最大值。#includestdio.hvoidmain(){inta,b,c,max;scanf(%d%d%d,&a,&b,&c);max=a;if(maxb)max=b;if(maxc)max=c;printf(maxis:%d\n,max);}2.由键盘输入3个数,若输入的这3个数可以构成三角形,则计算以这3个数为边长的三角形周长;如果不能,则输出提示错误信息。#includestdio.hvoidmain(){floata,b,c,l;printf(pleaseinputa,b,c\n);scanf(%f,%f,%f,&a,&b,&c);if((a+b)c&&(a+c)b&&(b+c)a){l=a+b+c;printf(l=%f\n,l);}elseprintf(Itisnottriangle!\n);}3.从键盘上输入一个整数判断其奇偶以及正负。#includestdio.hvoidmain(){inta;scanf(%d,&a);if(a0){if(a%2==0)printf(ItisPLUSevennumber);elseprintf(ItisPLUSoddnumber);}elseif(a0){if(a%2==0)printf(ItisMINUSevennumber);elseprintf(ItisMINUSoddnumber);}elseprintf(ItisZERO);}4.判断方程ax2+bx+c=0的根的个数。#includestdio.hvoidmain(){inta,b,c;scanf(%d%d%d,&a,&b,&c);if(b*b-4*a*c0)printf(2);elseif(b*b-4*a*c==0)printf(1);elseprintf(0);}5.从键盘输入表示年份的整数,判断是否为闰年。#includestdio.hvoidmain(){intyear;scanf(%d,&year);if((year%400==0)||(year%4==0&&year%100!=0))printf(Itisrunnian);elseprintf(Itisnotrunnian);}【实验解答】实验名称选择结构程序设计1.if(‘0’=c&&c=’9’)if((‘A’=c&&c=’Z’)||(’a’=c&&c=’z’))else2.编程并上机调试运行1)给出一个不多于4位的正整数,求它是几位数?#includestdio.hvoidmain(){intn;printf(Inputanum(0num10000));scanf(%d,&n);if(n10)printf(1\n);elseif(n100)printf(2\n);elseif(n1000)printf(3\n);elseprintf(4\n);}2)给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’、’D’、’E’。90分及以上为’A’,80~89为’B’,70~79为’C’,60~69为’D’,60以下为’E’。用switch语句来实现。#includestdio.hvoidmain(){intscore;scanf(%d,&score);if(score0||score100)printf(Error!);else{score=score/10;switch(score){case10:case9:printf(A\n);break;case8:printf(B\n);break;case7:printf(C\n);break;case6:printf(D\n);break;default:printf(E\n);}}}3)输入四个数,要求按从大到小顺序输出。#includestdio.hvoidmain(){inta,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;c=t;}if(ad){t=a;a=d;d=t;}if(bc){t=b;b=c;c=t;}if(bd){t=b;b=d;d=t;}if(cd){t=c;c=d;d=t;}printf(%d,%d,%d,%d\n,a,b,c,d);}4)输入3个整数,将最大数与最小数输出。#includestdio.hvoidmain(){inta,b,c,t;intmax,min;scan
本文标题:C语言程序设计实训教程习题和实验解答
链接地址:https://www.777doc.com/doc-2908145 .html