C语言第一类题型分析.docx
- 文档编号:8754395
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:34
- 大小:25.30KB
C语言第一类题型分析.docx
《C语言第一类题型分析.docx》由会员分享,可在线阅读,更多相关《C语言第一类题型分析.docx(34页珍藏版)》请在冰豆网上搜索。
C语言第一类题型分析
C语言编程第一周
1.编写一程序P122.C实现以下功能
从键盘读入4个数num1、num2、num3、num4,输出:
(num1÷num2的余数)×num3+num4,不需考虑num2为0和计算结果溢出的情况。
要求输出的结果中,整数部分宽度为8(不足8时以0补足)、小数部分宽度为7。
编程可用素材:
printf("请输入4个数:
")、printf("\n计算结果为:
…。
请输入4个数:
100 30 100.1234567 25
计算结果为:
00001026.2345670
#include
intmain(void)
{
intnum1,num2,num4;
doublenum3,xx;
printf("请输入4个数:
");
scanf("%d%d%lf%d",&num1,&num2,&num3,&num4);
xx=(num1%num2)*num3+num4;
printf("\n计算结果为:
%016.7f\n",xx);
return0;
}
2.编写一程序P134.C实现以下功能
通过键盘输入一串(约定为10个字符),输出每个字符对应的ASCII码值(十进制)。
编程可用素材:
printf("\n请输入10个字符:
")、printf("\n加密结果为:
…。
请输入10个字符:
Very Good!
加密结果为:
86, 101, 114, 121, 32, 71, 111, 111, 100, 33
#include
intmain(void)
{
chara1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
printf("\n请输入10个字符:
");
scanf("%c%c%c%c%c%c%c%c%c%c",&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9,&a10);
printf("\n加密结果为:
%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
return0;
}
3. 编写一程序P721.C实现以下功能
从键盘输入x,y,z的值,编写程序输出以下表达式的值:
x+z%3*(int)(x+y)%2/4
编程可用素材:
printf("please input x,y,z:
")、printf("\nResult = …。
程序的运行效果应类似地如图1所示,图1中的红色部分是从键盘输入的内容。
please input x,y,z:
2.5,4.7,7
Result = 2.500000
#include
intmain(void)
{
floatx,y,m;
intzz;
printf("pleaseinputx,y,zz:
");
scanf("%f%f%f",&x,&y,&zz);
m=x+zz%3*(int)(x+y)%2/4;
printf("\nResult=%f\n",m);
return0;
}
4. 编写一程序P736.C实现以下功能
从键盘上输入一个四位整数,计算各个位上的数字之和。
编程可用素材:
printf("Input a number with 4-digit:
")、printf("\nsum=…\n"…。
Input a number with 4-digit:
1234
sum=10
#include
intmain(void)
{
inta1,a2,a3,a4,a5,sum;
printf("Inputanumberwith4-digit:
");
scanf("%d",&a1);
a2=a1%10;
a3=a1/10%10;
a4=a1/100%10;
a5=a1/1000;
sum=a2+a3+a4+a5;
printf("\nsum=%d\n",sum);
return0;
}
第二周
1.编写一程序P132.C实现以下功能
在屏幕上输出I can printf \n,"\t & \!
。
程序的运行效果应类似地如图1所示。
I can printf \n,"\t & \!
#include
intmain(void)
{
printf("Icanprintf\\n,\"\\t&\\!
\n");
return0;
}
2.编写一程序P710.C实现以下功能
输入一个小写英文字母,首先输出它及其ASCII码,然后输出其对应的大写字母及其ASCII码。
编程可用素材:
printf("Input a lowercase letter:
")、printf("\n…(…)…。
Input a lowercase letter:
yy(121)Y(89)
#include
intmain(void)
{
charxiao,da;
printf("Inputalowercaseletter:
");
scanf("%c",&xiao);
da=xiao-32;
printf("\n%c(%d)\n%c(%d)\n",xiao,xiao,da,da);
return0;
}
3.编写一程序P711.C实现以下功能
用scanf输入圆半径r,圆柱高h,求圆周长C1(=2πr)、圆面积S(=πr2)、圆柱体积V(=πr2h)。
(注意:
本题中规定圆周率取值为3.14)
编程可用素材:
printf("Input:
")、printf("\nC1 = … S = … V =…。
Input:
r=1.3, h=5C1 = 8.16 S = 5.31V = 26.53
include
#include
intmain(void)
{
doublerr,cc,ss,vv;
inthh;
printf("Input:
");
scanf("r=%lf,h=%d",&rr,&hh);
cc=3.14f*2*rr;
ss=3.14f*rr*rr;
vv=3.14f*rr*rr*hh;
printf("\nC1=%.2f\nS=%.2f\nV=%.2f\n",cc,ss,vv);
return0;
}
4.编写一程序P733.C实现以下功能
从键盘读入一个任意字符,输出该字符ASCII的十六进制值。
编程可用素材:
printf("Input a character:
")、printf("\nAscii('…') = 0x…\n"…。
Input a character:
bAscii('b') = 0x62
#include
intmain(void)
{
charaa;
printf("Inputacharacter:
");
scanf("%c",&aa);
printf("\nAscii('%c')=0x%x\n",aa,aa);
return0;
}
5.编写一程序P723.C实现以下功能
输入三角形的三边长a、b、c(边长可以是小数),求三角形面积area,并输出。
如果输入的三边构不成三角形,应给出“data error”的信息提示。
注:
根据“海伦-秦九韶”公式,area=√p(p-a)(p-b)(p-c),其中p=(a+b+c)/2。
编程可用素材:
printf("please input triange sides:
")、printf("\ndata error\n")、printf("\narea=…\n"…。
please input triange sides:
3, 4, 5area=6.00
please input triange sides:
3, 4, 8data error
include
#include
intmain(void)
{
doubleaa,bb,cc,pp,area;
printf("pleaseinputtriangesides:
");
scanf("%lf,%lf,%lf",&aa,&bb,&cc);
if(aa+bb>cc&&bb+cc>aa&&aa+cc>bb)
{
pp=(aa+bb+cc)/2;
area=sqrt(pp*(pp-aa)*(pp-bb)*(pp-cc));
printf("\narea=%.2f\n",area);
}
else
{
printf("\ndataerror\n");
}
return0;
}
6.编写一程序P135.C实现以下功能
通过键盘输入弧度x,输出x的正弦值(可用库函数sin)。
编程可用素材:
printf("请输入弧度 x:
")、printf("\nSin(…) = …\n"…。
请输入弧度 x:
1.552Sin(1.55) = 0.99982
#include
#include
intmain(void)
{
doublexx,aa;
printf("请输入弧度x:
");
scanf("%lf",&xx);
aa=sin(xx);
printf("\nSin(%.2f)=%.5f\n",xx,aa);
return0;
}
7.编写一程序P259.C实现以下功能
先从键盘读入7个数据(依次为3整数、2字符、2实数),然后按示例格式倒序输出这7个数据。
编程可用素材:
printf("请输入7个数据(依次为3整数、2字符、2实数):
")、printf("\n这7个数据倒序为:
")。
请输入7个数据(依次为3整数、2字符、2实数):
81 192 35 x m 6127.123763 152.351192这7个数据倒序为:
7-152.35119 6-6127.12376 5-m 4-x 3-35 2-192 1-81
#include
intmain(void)
{
inta1,a2,a3;
chara4,a5;
doublea6,a7;
printf("请输入7个数据(依次为3整数、2字符、2实数):
");
scanf("%d%d%d%c%c%lf%lf",&a1,&a2,&a3,&a4,&a5,&a6,&a7);
printf("\n这7个数据倒序为:
7-%.5f6-%.5f5-%c4-%c3-%d2-%d1-%d\n",a7,a6,a5,a4,a3,a2,a1);
return0;
}
第三周
1.编写一程序P111.C实现以下功能
x(x只考虑整数int且必须定义为int、但F(x)完全可能超过int的表示范围)通过键盘输入(输入前给出提示Please input x:
),然后计算并在屏幕上输出函数值。
编程可用素材:
printf("Please input x:
")、printf("\nF(…) = …。
┌ -5x+27 (x<0)
F(x)= ├ 7909 (x=0)
└ 2x-1 (x>0)
Please input x:
3F(3) = 5
#include
intmain(void)
{
intxx;
doublefx;
printf("Pleaseinputx:
");
scanf("%d",&xx);
if(xx<0)
{
fx=(-5)*(double)xx+27;
printf("\nF(%d)=%.0f\n",xx,fx);
}
if(xx==0)
{
fx=7909.0;
printf("\nF(%d)=%.0f\n",xx,fx);
}
if(xx>0)
{
fx=2*(double)xx-1;
printf("\nF(%d)=%.0f\n",xx,fx);
}
return0;
}
2.编写一程序P113.C实现以下功能
已知某银行整存整取存款不同期限的年息利率分别为:
3.15%期限一年,3.63%期限二年, 4.02%期限三年,4.69%期限五年,5.36%期限八年。
从键盘上输入存钱的本金(以元为单位,必须定义为int且应考虑金额很大的情况)和存款期限(只考虑1,2,3,5,8),求到期时能从银行得到的利息(以元为单位,应考虑有小数,不计复利)。
编程可用素材:
printf("Please input benjin,cunqi:
")、printf("\nlixi = … yuan"…。
Please input benjin,cunqi:
10000,8
lixi = 4288.00 yuan
#include
intmain(void)
{
intbj,cq;
doublemoney;
printf("Pleaseinputbenjin,cunqi:
");
scanf("%d,%d",&bj,&cq);
money=bj;
if(cq==1)
{
printf("\nlixi=%.2fyuan\n",money*0.0315);
}
else
{
if(cq==2)
{
printf("\nlixi=%.2fyuan\n",money*0.0363*2);
}
else
{
if(cq==3)
{
printf("\nlixi=%.2fyuan\n",money*0.0402*3);
}
else
{
if(cq==5)
{
printf("\nlixi=%.2fyuan\n",money*0.0469*5);
}
else
{
if(cq==8)
{
printf("\nlixi=%.2fyuan\n",money*0.0536*8);
}
}
}
}
}
return0;
}
3.编写一程序P114.C实现以下功能
编写一个简单计算器程序,输入格式为:
data1 op data2。
其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。
编程可用素材:
printf("Please input data1 op data2:
")、printf("\nError!
chu shu wei 0.\n")。
Please input data1 op data2:
3000 + 2000
3000+2000=5000
#include
intmain(void)
{
intdata1,data2;
charop;
doubleaa;
printf("Pleaseinputdata1opdata2:
");
scanf("%d%c%d",&data1,&op,&data2);
switch(op)
{
case'+':
aa=(double)data1+data2;
printf("\n%d+%d=%.0f\n",data1,data2,aa);
break;
case'-':
aa=(double)data1-data2;
printf("\n%d-%d=%.0f\n",data1,data2,aa);
break;
case'*':
aa=(double)data1*data2;
printf("\n%d*%d=%.0f\n",data1,data2,aa);
break;
case'/':
if(data2==0)
{
printf("\nError!
chushuwei0.\n");
}
else
{
aa=(double)data1/data2;
printf("\n%d/%d=%.0f\n",data1,data2,aa);
}
break;
case'%':
if(data2==0)
{
printf("\nError!
chushuwei0.\n");
}
else
{
printf("\n%d%%%d=%d\n",data1,data2,data1%data2);
}
break;
default:
printf("Invalidoperator!
\n");
}
return0;
}
4.编写一程序P270.C实现以下功能
从键盘读入3个实数,按由大到小的顺序输出这3个数。
编程可用素材:
printf("请输入3个数:
")、printf("\n这三个数由大到小为:
%.2f %.2f %.2f\n"…。
请输入3个数:
200.35 1056.1 72.132
这三个数由大到小为:
1056.10 200.35 72.13
#include
intmain(void)
{
floata1,a2,a3,temp;
printf("请输入3个数:
");
scanf("%f%f%f",&a1,&a2,&a3);
if(a1>a3&&a3>a2)
{
temp=a2;
a2=a3;
a3=temp;
}
if(a2>a1&&a1>a3)
{
temp=a2;
a2=a1;
a1=temp;
}
if(a2>a3&&a3>a1)
{
temp=a1;
a1=a2;
a2=temp;
temp=a2;
a2=a3;
a3=temp;
}
if(a3>a1&&a1>a2)
{
temp=a1;
a1=a3;
a3=temp;
temp=a3;
a3=a2;
a2=temp;
}
if(a3>a2&&a2>a1)
{
temp=a1;
a1=a3;
a3=temp;
}
printf("\n这三个数由大到小为:
%.2f%.2f%.2f\n",a1,a2,a3);
return0;
}
5.编写一程序P713.C实现以下功能
用scanf输入某年某月某日,判断这一天是这一年的第几天?
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份≥3时需考虑多加一天。
注:
判断年份是否为闰年的方法——为400的倍数为闰年,如2000年;若非100的倍数,而是4的倍数,为闰年,如1996年。
编程可用素材:
printf("Please input year-month-day:
")...、printf("\nIt is the ...th day.\n"...。
Please input year-month-day:
2000-3-1
It is the 61th day.
#include
intmain(void)
{
intyear,month,day,sum;
printf("Pleaseinputyear-month-day:
");
scanf("%d-%d-%d",&year,&month,&day);
sum=0;
switch(month-1)
{
case11:
sum=sum+30;
case10:
sum=sum+31;
case9:
sum=sum+30;
case8:
sum=sum+31;
case7:
sum=sum+31;
case6:
sum=sum+30;
case5:
sum=sum+31;
case4:
sum=sum+30;
case3:
sum=sum+31;
case2:
if(year%400==0||(year%100!
=0&&year%4==0))
{
sum=sum+29;
}
else
{
sum=sum+28;
}
case1:
sum=sum+31;
break;
default:
;
}
sum+=day;
printf("\nItisthe%dthday.\n",sum);
return0;
}
6.编写一程序P737.C实现以下功能
从键盘输入3个整数,输出绝对值最大的数。
编程可用素材:
printf("Input 3 numbers:
")、printf("\nThe number with maximum absolute value is ….\n"…。
Input 3 numbers:
1, -362, 300
The number with maximum absolute value is -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 一类 题型 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)