C语言答案文档格式.docx
- 文档编号:22976863
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:84
- 大小:106.90KB
C语言答案文档格式.docx
《C语言答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言答案文档格式.docx(84页珍藏版)》请在冰豆网上搜索。
(2)1+0=1
(3)0
3
n=m%10+m/10%10*100+m/100*10/*n为bac,m为abc*/
4
(1):
1
(2):
(3):
(4):
(5):
(6):
(7):
(8):
6
5
(C>
=65&
C<
=90)?
(C=C):
(C=C+32)
第三章
1.
floatpi,r,l,s;
pi=3.14;
/*定义PI的值*/
printf("
Pleaseinputthe\'
r\'
:
\n"
);
scanf("
%f"
&
r);
l=2*pi*r;
/*计算周长*/
s=pi*r*r;
/*计算面积*/
周长=%.2f\n面积=%.2f\n"
l,s);
运行结果:
Pleaseinputthe'
r'
周长=31.40
面积=78.50
2.
conio.h>
inti=0;
charc;
输入一串字符"
while((c=getchar())!
='
\n'
)
/*利用getchar的特性
进行对c的逐个赋值*/
{
i++;
putchar(c);
}
\n位数为:
%d\n"
i);
输入一串字符china
china
位数:
3.
inta,b,x,y;
请输入头数脚数:
%d%d"
a,&
b);
if(b%2==0&
b>
=2*a)
x=(b-2*a)/2;
y=a-x;
printf("
鸡数:
%d\n兔数:
y,x);
else
Dataiserror"
请输入头数脚数:
2464
鸡数:
16
兔数:
8
4.
#include<
chara,b,c;
正序输入为:
"
a=getche();
b=getche();
c=getche();
/*顺序读入三个字符*/
\n逆序输出为:
putchar(c);
putchar(b);
putchar(a);
/*倒序输出三个字符*/
第四章
算术运算是有加,减,乘,除组成的表达式;
关系运算是有>
<
=,>
=,==,!
=等关系运算符组成的表达式;
逻辑运算有与(&
),或(||),非(!
)等逻辑运算符组成的表达式!
111001
0101
C语言中用'
1'
表示“真”,用'
0'
表示“假”
当遇到非零数时,系统判断为真;
遇到零时,为假
5.
intx;
printf("
Pleaseinput\'
x\'
scanf("
%d"
x);
if(x>
=0)
x=x;
else
x=-x;
Absolutelyis%d\n"
x);
Pleaseinput'
x'
-359
Absolutelyis359
正序输入为:
956
逆序输出为:
659
math.h>
floata,b,c,s,area;
Pleaseinput:
%f%f%f"
b,&
c);
if(a+b<
=c||a+b<
=b||
b+c<
=a||a<
=0||b<
=0||c<
=0)
/*满足三角形边长条件*/
Dataiserror\n"
s=0.5*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
Areais%.2f\n"
area);
457
Areais9.80
6.
inta,b,c;
Pleaseinput3numbers\n"
%d%d%d"
if(a<
b)
if(b<
c)
printf("
Max=%d\n"
c);
else
b);
elseif(a<
a);
Pleaseinput3numbers
73-5482
Max=82
7.
floata,b,c,delta;
doublex;
&
a,&
b,&
delta=b*b-4*a*c;
/*进行delta判断*/
if(delta<
0)
printf("
Norealroot\n"
elseif(delta==0)
Onlyoneroot=%f\n"
-b/(2*a));
else
x=-b+sqrt(delta)/(2*a);
Onerootis:
%f\n"
x);
x=-b-sqrt(delta)/(2*a);
Theotherrootis:
1-1-30
6.500000
-4.500000
8.
floatx,y;
请输入x\n"
if(x<
1)
y=x;
elseif(x>
=1&
3)
y=2*x-1;
y=3*x*x-10;
y=%.2f\n"
y);
请输入x
2.5
y=4.00
10.
intvalue1,value2;
floatvalue3;
charoperate;
Inputyourexprssion:
%d%c%d"
value1,&
operate,&
value2);
switch(operate)
case'
+'
printf("
%d%c%d=%d\n"
value1,
operate,value2,value1+value2);
break;
case'
-'
%d%c%d=%d\n"
value1,operate,value2,value1-value2);
break;
*'
value1,operate,value2,value1*value2);
case'
/'
if(value2==0)
Divishionbyzero.\n"
value3=(float)value1/value2;
%d%c%d=%.2f\n"
value1,operate,value2,value3);
break;
default:
Unknownoperate.\n"
Inputyourexprssion
9/5
9/5=1.80
9.
intscore;
请输入成绩:
score);
if((score>
100)||(score<
0))
Inputerror\n"
score=score/10;
switch(score)
{
case10:
A\n"
case9:
case8:
B\n"
case7:
C\n"
case6:
D\n"
default:
E\n"
}
请输入成绩:
B
第五章
1.满足条件与不满足条件,与分支表达式完全相同。
都是对表达式值进行非零判断。
2.循环变量是指在循环程序中随着循环的进行而改变的变量,例如i++中的i是常见的循环变量。
当循环中出现break语句是有可能结束整个循环,而当循环中出现continue时,有可能结束一次循环。
while与do-while都是循环语句,while执行是先判断是否满足括号内的条件,而do-while先进行一次do的运算,再判断。
一般情况下,两语句处理同一问题时若二者的循环题部分是一样的,它们的结果也一样。
但是如果while后面的表达式一开始就为假,两种循环的结果是不同的:
while语句不会执行,而do-while语句会执行一次。
continue语句只是结束本次循环,而不是终止整个循环的执行。
而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
(1)
{
intsum=0,i=1;
while(sum<
1000)
sum+=i;
i=%d\n"
i=46
(2)
floatsum=0;
intn=1;
while(sum<
2)
sum+=(float)1/(n++);
n=%d\n"
n);
n=5
inta,b,x,y,u;
Pleaseinput2numbers:
x,&
y);
for(k=0;
k<
=4-2*i;
k++)
printf("
*"
*
***
*****
*******
8.略
9.#include<
chari,j,k;
/*i是a的对手;
j是b的对手;
k是c的对手*/
for(i='
;
i<
z'
i++)
for(j='
j<
j++)
if(i!
=j)
for(k='
k<
k++)
if(i!
=k&
j!
=k)
if(i!
&
k!
Theorderis:
\na--%c\nb--%c\nc--%c\n"
i,j,k);
if(x>
y)
u=x;
x=y;
y=u;
/*保证x>
y*/
a=x,b=y;
while(b!
u=a%b;
a=b;
b=u;
}/*辗转相除法求最大公约数*/printf("
最大公约:
%d\n最小公倍:
a,x*y/a);
6480
最小公倍:
320
7.
#include"
stdio.h"
inti,k,j;
/*根据星星排列的规律找出公式*/
for(i=0;
i<
=3;
i++)
for(j=0;
j<
=2-i;
j++)
"
/*根据行数算出空格数*/
for(k=0;
=2*i;
/*根据行数算出星星数*/
=2;
=i;
a--z
b--x
c--y
10.
intx,y,z,s1,s2;
/*此题用的是穷举法,
就是每个数都去试一遍,直到得出结果*/
for(x=0;
x<
=40;
x++)
for(y=x;
y<
=40;
y++)
for(z=y;
z<
z++)
s1=x+y+z;
s2=x*x+y*y+z*z;
if(s1==40&
s2==600)
方程解为:
x=%dy=%dz=%d\n"
x,y,z);
方程的解为:
x=10y=10z=20
11.
intmain()
floata;
/*被开方数*/
floatx0,x1;
/*分别代表前一项和后一项*/
Inputapositivenumber:
a);
x0=a/2;
/*任取初值*/
x1=(x0+a/x0)/2;
while(fabs(x1-x0)>
=1e-5)
x0=x1;
Thesquarerootof%5.2fis%8.5f\n"
a,x1);
return0;
2
Thesquarerootof2.00is1.41421
12.
intcow(intx);
voidmain(void)
inti=1;
intsum=1;
for(i;
=20;
i++)
{
sum+=cow(i);
}
有%d头牛\n"
sum);
}
intcow(intn)
intm=n-4;
intsum=0;
if(n<
=4)
return1;
for(m;
m>
=1;
m--)
{
sum+=cow(m);
}
returnsum;
有658头牛
inta[4][4],i,j,s1;
输入矩阵\n"
for(j=0;
a[i][j]);
/*搜索矩阵对角线*/
for(i=0,s1=0;
s1+=a[i][i];
s1+=a[3-i][i];
对角元素之和是%d\n"
s1);
运算结果:
输入矩阵
22374598
44759612
22375586
79463815
对角线元素之和是477
inta[10],b[9],i;
请输入a数组的内容"
=9;
scanf("
a[i]);
/*顺次计算b数组的内容*/
for(i=1;
b[i-1]=a[i]/a[i-1];
for(i=1;
%d"
b[i-1]);
if(i%3==0)
第六章
(1)、
(2)
均为错
错在:
C语言不允许定义动态数组,即数组的长度不能依赖于程序运行过程中变化着的量。
(3)
错
错在地址符的输入错误,应将"
a"
改为"
a[i]"
其中i为小于5的数
(4)
对
inti,j,p,a[10];
输入十个整数"
10;
/*用冒泡排序算法*/
=8;
=9-j;
if(a[i]>
a[i+1])
/*大的就沉下去,即交换*/
{p=a[i];
a[i]=a[i+1];
a[i+1]=p;
排序之后:
a[i]);
输入十个整数5789634721
排序之后:
1234567789
charstr[100];
intn;
请输入字符串"
%s"
str);
n=0;
while(str[n]!
='
\0'
)n++;
n--;
/*减掉最后的一位*/'
倒序输出的是:
while(n>
=0)
%c"
str[n]);
n--;
请输入字符串:
abcdefg
倒序输出的是:
gfedcba
inti=0,j=0;
chara[100],b[100];
请输入字符串a,b\n"
/*求出a字符串的长度*/
while(a[i]!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 答案