复习试题1.docx
- 文档编号:6071242
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:39
- 大小:239.16KB
复习试题1.docx
《复习试题1.docx》由会员分享,可在线阅读,更多相关《复习试题1.docx(39页珍藏版)》请在冰点文库上搜索。
复习试题1
[题目内容]编写一个用户自定义函数,函数的功能是:
将华氏温度转换为摄氏温度。
编写一个程序,输出一个华氏温度与摄氏温度的对照表,其中华氏温度从32开始到100为止,步长为4。
[输入]无
[输出]如下:
华氏温度摄氏温度
320.00
362.22
404.44
446.67
488.89
5211.11
5613.33
6015.56
6417.78
6820.00
7222.22
7624.44
8026.67
8428.89
8831.11
9233.33
9635.56
10037.78
[提示]主函数使用for(f=32;f<=100;f=f+4)
#include
voidmain()
{
floatftoc(intf);
intf;
printf("华氏温度摄氏温度\n");
for(f=32;f<=100;f=f+4)
printf("%d%.2f\n",f,ftoc(f));
}
floatftoc(intf)
{
floatc;
c=5*(f-32)/9.0;
returnc;
}
[题目内容]某班同学检查身体,身高测量的结果如下:
1.65,1.90,1.81,1.55,1.56,1.70,1.72,1.65,1.69,1.75,1.73,1.85,1.74,1.71,1.60,1.50,1.68,1.73,1.72,1.80。
编写程序,从键盘将这组数据输入到数组中保存,并输出;然后,求出这些同学身高的最大值和最小值以及平均值,并输出。
(数据保留2位小数)
[输入]某班同学身高测量
[输出]某班同学身高测量,身高的最大值和最小值以及平均值。
[提示]定义一维数组,利用for循环语句从键盘逐个输入身高数据、输出数组中的每个元素;定义最大值、最小值、平均值变量,利用for循环语句求数组元素中的最大值、最小值、和值,再求出平均值;利用printf输出结果。
#include
voidmain()
{
floatx[20];inti;
floatmax,min,sum,ave;
for(i=0;i<20;i++)
scanf("%f",&x[i]);
for(i=0;i<20;i++)
printf("%.2f\t",x[i]);
max=x[0];min=x[0];sum=x[0];
for(i=1;i<20;i++)
{if(max if(min>x[i])min=x[i]; sum=sum+x[i]; } ave=sum/20; printf("\n%.2f\n%.2f\n%.2f\n",max,min,ave); } 3.[目的]应用所学知识解决实际问题。 [题目内容]数值的分布范围。 一份计算机市场调查报告显示,市场上PC机的售价不同: 6500,4990,5500,7200,6810,5700,5660,6900,5850,6250。 编写程序,计算平均售价以及价格范围。 (数据保留2位小数) [输入]市场上PC机的售价 [输出]平均售价、价格范围 [提示]分布范围是对一系列数值进行统计分析的方法之一。 分布范围是指该系列数值中最大值与最小值之差。 即分布范围=最大值-最小值。 #include voidmain() { inti,x[10],max,min,sum,range; floatave; printf("\n请输入售价: \n"); for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=0;i<10;i++) printf("%d",x[i]); printf("\n"); max=min=sum=x[0]; for(i=1;i<10;i++) { if(x[i]>max)max=x[i]; if(x[i] sum=sum+x[i]; } range=max-min; ave=sum/10.0; printf("ave=%f\trange=%d\n",ave,range); } [目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为: 求1-100之间的奇数之和。 [输入]无 [输出]计算结果 [提示]使用三种循环语句均可。 #include"stdio.h" voidmain() { inti,sum=0; for(i=1;i<=100;i=i+2) sum=sum+i; printf("sum=%d\n",sum); } 4.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为: 输出100以内能被7整除的数。 [输入]无 [输出]判断结果 [提示]使用三种循环语句均可。 #include"stdio.h" voidmain() { inti,sum=0; for(i=1;i<=100;i++) if(i%7==0)printf("%d\t",i); } 5.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为: 计算并输出一年12个月的总降雨量和平均降雨量。 [输入]12个月的降雨量 [输出]总降雨量和平均降雨量 [提示]使用for循环语句,和值、平均值变量采用双精度类型,和值初值设为零。 #include"stdio.h" voidmain() { inti; doublex,sum=0,ave; for(i=1;i<=12;i++) { printf("请输入%d月的降雨量: ",i); scanf("%lf",&x); sum=sum+x; } ave=sum/12; printf("sum=%lf\tave=%lf\n",sum,ave); } 6.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为: 在0°到90°之间每隔5°输出一行数据,打印一个表。 每行中包括5个项目: 角度数,以及它所对应的正弦、余弦、正切、余切函数值。 [输入]无 [输出]如下表格 [提示]使用for循环语句和if语句,注意0°、90°时的正切和余切的处理。 #include"stdio.h" #include"math.h" #definePI3.1415926 voidmain() { inti; doubleih; printf("角度数正弦余弦正切余切\n"); for(i=0;i<=90;i=i+5) { ih=i*PI/180; if(i==0) printf("%d\t%lf\t%lf\t%lf\t%c\n",i,sin(ih),cos(ih),sin(ih)/cos(ih),'-'); elseif(i==90) printf("%d\t%lf\t%lf\t%c\t%lf\n",i,sin(ih),cos(ih),'-',cos(ih)/sin(ih)); else printf("%d\t%lf\t%lf\t%lf\t%lf\t\n",i,sin(ih),cos(ih),sin(ih)/cos(ih),cos(ih)/sin(ih)); } } 7.[目的]掌握循环次数已知的循环控制处理方法。 [题目内容]编写一个程序,其功能为: 输入10个字符,输出各个字符的ASCII编码。 [输入]10个字符 [输出]各个字符的ASCII编码 [提示]使用for循环语句,字符的输入不需要分隔符,可以连续输入10个字符。 #include"stdio.h" voidmain() { inti; charch; for(i=1;i<=10;i++) { printf("请输入一个字符: "); scanf("%c",&ch); printf("\n%c%d\n",ch,ch); } } 8.[目的]掌握循环次数未知的循环控制处理方法。 [题目内容]编写一个程序,其功能为: 计算一批货物的总值,输入货物单价和数量。 事先不知道需要统计的货物有多少种。 [输入]货物单价和数量 [输出]货物的总值 [提示]使用while循环语句或do…while语句,设计一个特殊值作为循环结束的标志,例如,单价值为零。 #include"stdio.h" voidmain() { doubleprice,num,sum=0; printf("请输入货物单价和数量: "); scanf("%lf%lf",&price,&num); while(price! =0) { sum=sum+price*num; printf("请输入货物单价和数量: "); scanf("%lf%lf",&price,&num); } printf("sum=%lf\n",sum); } 9.[目的]掌握递推法的处理方法。 [题目内容]编写一个程序,其功能为: 输出fibnocci数列的前20项,每行输出5个。 说明: fibnocci数列的前两项均为1,以后各项等于其前两项之和。 [输入]无 [输出]fibnocci数列的前20项 [提示]使用for循环语句以及递推算法,fibnocci数列的前两项均为1,以后各项等于其前两项之和。 #include"stdio.h" voidmain() { inti,f1,f2,f3,n; f1=1;f2=1; printf("\n%8d%8d",f1,f2); n=2; for(i=1;i<=18;i++) { if(n%5==0)printf("\n"); f3=f1+f2; printf("%8d",f3);n++; f1=f2;f2=f3; } printf("\n"); } (1计算a+|b|2判断一个整数是否可以被3和5整除) 1.[目的]掌握判断一个字符型数据是否数字字符的方法,以及数字字符转换为相应整数的方法。 [题目内容]从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。 [输入]一个字符型数据 [输出]整数或出错信息 [提示]根据字符型数据的ASCII码值是否在‘0’字符与‘9’字符之间进行判断。 使用if…else…语句和复合语句。 #include"stdio.h" voidmain() { charch; intdch; printf("请输入一个字符: \n"); scanf("%c",&ch); printf("输入的字符是: %c\n",ch); if(ch>='0'&&ch<='9') { dch=ch-'0'; printf("%c对应的整数是: %d\n",ch,dch); } else { printf("%c不是数字字符\n",ch); } } 2.[目的]掌握条件表达式的使用 [题目内容]编写一个程序,其功能为: 从键盘输入三个数x、y、z,判断x+y=z是否成立,若成立输出“x+y=z”的信息,否则输出“x+y! =z”的信息。 [输入]三个数x、y、z [输出]“x+y=z”或“x+y! =z” [提示]条件判断表达式x+y==z #include"stdio.h" voidmain() { floatx,y,z; printf("请输入x,y,z: \n"); scanf("%f%f%f",&x,&y,&z); if(x+y==z) printf("x+y=z\n"); else printf("x+y! =z\n"); } 3.[目的]掌握求最大值最小值的方法。 [题目内容]编写一个程序,其功能为: 输入三个整数,输出最大数和最小数。 [输入]三个整数 [输出]最大值和最小值 [提示]设置最大值变量max和最小值变量min;首先比较a,b的大小,并把大数存入max,小数存入min;然后最大值变量max和最小值变量min再与c比较,若c大于max,则max取值c,否则保持不变;如果c小于min,则min取值c,否则保持不变。 最后输出max和min的值。 使用if…else…语句、if语句以及复合语句。 #include"stdio.h" voidmain() { inta,b,c,max,min; printf("请输入三个整数a,b,c: \n"); scanf("%d%d%d",&a,&b,&c); printf("三个整数为: \n"); printf("a=%db=%dc=%d\n",a,b,c); if(a>b) { max=a; min=b; } else { max=b; min=a; } if(c>max)max=c; if(c printf("max=%dmin=%d\n",max,min); } 4.[目的]运用已学知识解决实际问题。 [题目内容]如下两个线性方程组的两个未知数为x1和x2: ax1+bx2=m cx1+dx2=n 该方程的唯一解为(ad-cb不等于零时): 请编写一个程序,读取a、b、c、d的值,计算x1和x2的值。 如果ad-cd等于零,应给出适当的提示信息。 [输入]方程的系数a、b、c、d的值 [输出]当ad-cb不等于零时,输出方程的解x1、x2的值;当ad-cb等于零时,输出提示信息。 [提示]用if…else…语句和复合语句实现。 #include"stdio.h" voidmain() { floata,b,c,d,m,n,x1,x2; printf("请输入方程的系数a,b,c,d,m,n: \n"); scanf("%f%f%f%f%f%f",&a,&b,&c,&d,&m,&n); printf("方程为: \n"); printf("%fx1+%fx2=%f\n",a,b,m); printf("%fx1+%fx2=%f\n",c,d,n); if((a*d-c*b)==0) { printf("\n方程无解。 \n"); } else { x1=(m*d-n*c)/(a*d-c*b); x2=(n*a-m*c)/(a*d-c*b); printf("\nx1=%f\n",x1); printf("x2=%f\n",x2); } } 5.[目的]运用已学知识解决实际问题。 [题目内容]某产品生产成本c=c1+mc2,其中c1为固定成本,c2为单位产品可变成本。 当生产数量m<10000时,c1=20000元,c2=10元;当生产数量m≥10000时,c1=40000元,c2=5元;编写一个程序,其功能为: 分别计算出生产数量为6000以及25000时,总生产成本及单位生产成本。 [输入]生产数量 [输出]生产数量、总生产成本、单位可变成本 [提示] #include"stdio.h" voidmain() { intm,c1,c2,c; printf("请输入生产数量: \n"); scanf("%d",&m); if(m<10000) { c1=20000; c2=10; } else { c1=40000; c2=5; } c=c1+m*c2; printf("生产数量=%d\n",m); printf("总成本=%d\n",c); printf("单位生产成本=%d\n",m*c2); } 6.[目的]掌握分段函数的计算。 [题目内容]编写一个程序,计算下列函数: y= x x<1 2x-1 1≤x<10 3x-11 X≥10 [输入]x值 [输出]y值 [提示]根据输入的x值的取值,计算y的值并输出。 使用if…elseif语句以及复合语句。 #include"stdio.h" voidmain() { floatx,y; printf("请输入x: \n"); scanf("%f",&x); printf("输入x=: %f\n",x); if(x<1) { y=x; printf("y=%f\n",y); } elseif(x>=1&&x<10) { y=2*x-1; printf("y=%f\n",y); } else { y=3*x-11; printf("y=%f\n",y); } } 7.[目的]掌握字符型变量的定义与使用,掌握大小写字母转换的算法。 [题目内容]编写一个程序,其功能为: 从键盘输入一个字符,判别该字符的类别,并输出向相应信息。 [输入]一个字符 [输出]显示“控制字符”、“数字字符”、“大写字母”、“小写字母”、“其它字符”信息。 [提示]根据输入字符的ASCII码来判别类型。 由ASCII码表可知ASCII值小于32的为控制字符。 在'0'和'9'之间的为数字,在'A'和'Z'之间为大写字母,在'a'和'z'之间为小写字母,其余则为其它字符。 使用if…elseif…语句。 #include"stdio.h" voidmain() { charch; printf("请输入一个字符: \n"); scanf("%c",&ch); printf("输入的字符是: %c\n",ch); if(ch<32) printf("%c是控制字符。 \n",ch); elseif(ch>='0'&&ch<='9') printf("%c是数字字符。 \n",ch); elseif(ch>='a'&&ch<='z') printf("%c是小写字母字符\n",ch); elseif(ch>='A'&&ch<='Z') printf("%c是大写字母字符\n",ch); else printf("%c是其他字符。 ",ch); } 8.[目的]掌握标准数学函数使用。 [题目内容]编写一个程序,其功能为: 从键盘输入一元二次方程ax2+bx+c=0的各项系数a、b、c的值,判断方程实数解的不同情况,分别求解方程,并输出(结果保留两位小数,如无实根给出相应的信息)。 应用如下规则: (1)若a、b的值为零,则没有解; (2)若a为零,只有一个实数解; (3)若b2-4ac为负数,则没有实数解;若b2-4ac为正数,有两个实数解;若b2-4ac为零,有两个相等的实数解。 [输入]一元二次方程ax2+bx+c=0的各项系数a、b、c [输出]方程的实数解情况 [提示]包含标准数学函数头文件,使用标准数学函数sqrt(x)实现开平方计算,判别式b2-4ac,如果小于0,则输出“方程无实数根”,等于0,输出一个实根,结果使用双精度浮点数表示,%lf格式,大于0,输出两个不同的实数根,结果使用双精度浮点数表示,%lf格式。 #include"stdio.h" #include"math.h" voidmain() { floata,b,c; doublex1,x2; printf("请输入a,b,c: \n"); scanf("%f%f%f",&a,&b,&c); if(a==0&&b==0) printf("a=%fb=%fc=%f方程无解! \n",a,b,c); elseif(a==0) { x1=-c/b; printf("a=%fb=%fc=%fx=%lf\n",a,b,c,x1); } elseif(b*b-4*a*c>0) { x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("a=%fb=%fc=%fx1=%lfx2=%lf\n",a,b,c,x1,x2); } elseif((b*b-4*a*c)==0) { x1=(-b)/(2*a); printf("a=%fb=%fc=%fx1=x2=%lf\n",a,b,c,x1); } else printf("a=%fb=%fc=%f无实数解! \n",a,b,c); } 9.[目的]运用已学知识解决实际问题。 [题目内容]编写程序,输入三角形三边a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。 [输入]三角形三边a、b、c [输出]不能构成三角形或能构成等腰、等边、直角、一般三角形的信息。 [提示]利用三角形两边之和大于第三边判断是否能够构成三角形,能够成三角形时再以等腰、等边、直角三角形的条件进行判断。 #include"stdio.h" voidmain() { floata,b,c; printf("请输入a,b,c: \n"); scanf("%f%f%f",&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) { if(a==b&&b==c&&c==a) printf("a=%fb=%fc=%f构成等边三角形! \n",a,b,c); else if(a==b||b==c||c==a) printf("a=%fb=%fc=%f构成等腰三角形! \n",a,b,c); elseif(a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b) printf("a=%fb=%fc=%f构成直角三角形! \n",a,b,c); else printf("a=%fb=%fc=%f构成一般三角形! \n",a,b,c); } else printf("a=%fb=%fc=%f不能构成三角形! \n",a,b,c); } 10.[目的]运用已学知识解决实际问题。 [题目内容]某个电力公司对其用户的收费规定如下: 用电数量收费标准 0~200x*0.5元 201~400100+(x-200)*0.65元 401~600230+(x-400)*0.8元
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习 试题