c程序设计教程钱能课后答案.docx
- 文档编号:9113257
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:15
- 大小:18.96KB
c程序设计教程钱能课后答案.docx
《c程序设计教程钱能课后答案.docx》由会员分享,可在线阅读,更多相关《c程序设计教程钱能课后答案.docx(15页珍藏版)》请在冰豆网上搜索。
c程序设计教程钱能课后答案
c程序设计教程钱能课后答案
【篇一:
c语言程序设计教程课后习题参考答案】
t>课后习题参考答案
习题1
1.
(1)编译、链接.exe
(2)函数主函数(或main函数)
(3)编辑编译链接
2.
(1)-(5):
ddbbc(6)-(10):
abbbc
3.
(1)答:
c语言简洁、紧凑,使用方便、灵活;c语言是高级语言,同时具备了低级语言的特征;c语言是结构化程序设计语言,具有结构化的程序控制语句;c语言有各种各样的数据类型;c语言可移植性好;生成目标代码质量高,程序执行效率高。
(2)编辑、编译、链接、执行
(3)一个c程序由一或多个函数组成,一函数若干条语句构成,每条语句的末尾必须以分号结束。
(4)标识符,关键字,运算符,分隔符,常量,注释符等
4.从键盘输入一个双精度小数,打印出它的余弦值。
#includestdio.h
#includemath.h
main()
{
doublex;
scanf(“%lf”,x);
printf(“%lf\n”,cos(x));
}
第2章
1.
(1)bde、acfg
(2)d(3)c(4)c
2.
(1)错
(2)错(3)错(4)对(5)错
3.
(1)a=3,b=-27
(2)a=11,b=6,c=6
(3)3
(4)1010110
(5)-998
(6)1)202)83)704)05)06)04.
(1)
#includestdio.h
main()
{
doubler,h,v;
r=2.5;
h=3.5;
v=3.14*r*r*h;
printf(“v=%lf\n”,v);
}
(2)
#includestdio.h
main()
{
charch;
ch=getchar();
printf(“%c\n”,ch+32);
}
(3)
#includestdio.h
main()
{
printf(“*\n”);
printf(“***\n”);
printf(“*****\n”);
printf(“*******\n”);
}
(4)
#includestdio.h
main()
{
doublex;
scanf(“%lf”,x);
printf(“%d,%lf\n”,(int)x,x–(int)x);
}
(5)
#includestdio.h
main()
{
doublea=3,b=5;
doubleresult=(-2*a+(4*a–b)/(2*a+b))/((a-4*b)/(a+b));printf(“%lf\n”,result);
}
习题3
1.
(1)d
(2)ad(3)c(4)b(5)a
(6)-(10):
bdacb
2.
(1)3.141593,3.1416,3.142
(2)c=k
(3)|123.46|,|123|
(4)x=1.23,y=50.00
(5)0
3.
(1)scanf(%f”,c);改为:
scanf(“%f”,c);
f=(9/5)*c+32;改为:
f=(9.0/5)*c+32;
printf(“摄氏温度%f度相当于华氏温度%f度”,c,f);改为:
printf(“摄氏温度%f度相当于华氏温度%f度”,c,f);
(2)
补充定义:
inth;
h=500/60改为:
h=500/60;
m=500%60改为:
m=500%60;
printf(“500分钟是%d小时%d分钟,”h,m);改为:
printf(“500分钟是%d小时%d分钟”,h,m);
4.
(1)
#includestdio.h
main()
{
charx,y;
scanf(“%c%c”,x,y);
printf(“%d\n”,(x-?
0?
)+(y-?
0?
));
}
(2)
#includestdio.h
main()
{
charx,y;
chartmp;
printf(“inputtwocharacters:
”);
scanf(“%c%c”,x,y);
printf(“beforeswap:
x=%c,y=%c\n”,x,y);
tmp=x;x=y;y=tmp;printf(“afterswap:
x=%c,y=%c\n”,x,y);}
(3)
#includestdio.h
main()
{
charch;
ch=getchar();
printf(“%c\n”,ch-32);
}
第4章
1.
(1)-(5):
caaca
2.
(1)bbb
(2)aaabbbccc
(3)end
(4)d=20
(5)s=2,t=3
(6)first
third
(7)y=0y=5y=10y=5
3.
(1)yzxzxy
(2)ch=?
a?
ch=?
z?
ch=?
a?
ch=?
z?
ch=ch-32
(3)x2x=10x-1x=2
(4)t=x;x=y;y=t;
4.
(1)
#includestdio.h
main()
{
intx,y,z,t;
scanf(“%d%d%d”,x,y,z);if(xy)
{t=x;x=y;y=t;}
if(xz)
【篇二:
钱能c++程序设计教程(第二版)第三章答案[1]】
p>//3.3.2—浮点数表示
#includeiostream
usingnamespacestd;
intmain()
{
}
//3.4.2—字符操作函数相关#includeiostream
usingnamespacestd;
intmain()
{
}char*s1=hello;char*s2=123;chara[20];strcpy(a,s1);cout(strcmp(a,s1)==0?
:
not)equal.endl;coutstrcat(a,s2)endl;coutstrrev(a)endl;coutstrset(a,c)endl;cout(strstr(a,ell)?
:
not)find.endl;cout(strchr(a,c)?
:
not)findendl;floatf=19.2f;coutfendl;unsignedint*p=reinterpret_castunsignedint*(f);for(inti=31;i=0;i--)cout(*pi1)(i==31||i==23?
-:
);coutendl;
//3.4.3string函数相关
#includeiostream
#includestring
usingnamespacestd;
intmain()
{
stringa,s1=hello,s2=123;a=s1;
}cout(a==s1?
:
not)equal.endl;couta+s2endl;reverse(a.begin(),a.end());coutaendl;couta.replace(0,9,9,c)endl;cout(a.find(ell)?
:
not)findendl;cout(a.find(c)?
:
not)findendl;
//3.4.5string流+文件流
#includeiostream
#includesstream
#includefstream
usingnamespacestd;
intmain()
{
}ifstreamfin(original.txt);for(strings;getline(fin,s);){}inta,sum=0;for(istringstreamsin(s);sina;sum+=a);coutsumendl;
//3.5.2--sizeof()
#includeiostream
usingnamespacestd;
intmain()
{
}inta[]={1,15,8,3,8,48,2,64,5};for(inti=0;isizeof(a)/sizeof(a[0]);i++)couta[i];coutendl;
//3.5.3--初始化
#includeiostream
usingnamespacestd;
intarray1[5]={1,2,3};
intarray2[5];
intmain()
{
}
//3.5.4—二维数组
#includeiostream
usingnamespacestd;
intmain()
{
inta[2][3]={1,2,3,4,5};intb[2][3]={{1,2},4};coutarray1:
endl;for(inti=0;isizeof(a)/sizeof(a[0]);i++){}cout=================================endl;coutarray2:
endl;for(inti=0;isizeof(b)/sizeof(b[0]);i++){cout;for(intj=0;jsizeof(b[0])/sizeof(b[0][0]);j++)cout;for(intj=0;jsizeof(a[0])/sizeof(a[0][0]);j++)couta[i][j];coutendl;intarray3[5]={2};intarray4[5];coutarray1:
;for(inti=0;isizeof(array1)/sizeof(array1[0]);i++)coutarray1[i];coutendl;coutarray2:
;for(inti=0;isizeof(array2)/sizeof(array2[0]);i++)coutarray2[i];coutendl;coutarray3:
;for(inti=0;isizeof(array3)/sizeof(array3[0]);i++)coutarray3[i];coutendl;coutarray4:
;for(inti=0;isizeof(array4)/sizeof(array4[0]);i++)coutarray4[i];coutendl;
}}coutb[i][j];coutendl;cout=================================endl;
//3.6.2—文件流+向量
#includeiostream
#includefstream
#includevector
usingnamespacestd;
intmain()
{
}ifstreamfin(original.txt);vectorintva;for(inta;fina;)va.push_back(a);ints=0;for(vectorint:
:
iteratorp1=va.begin();p1va.end();p1++){}coutsendl;for(vectorint:
:
iteratorp2=p1+1;p2va.end();p2++)if((*p1)==(*p2))s++;
//3.6.3二维向量
#includeiostream
#includesstream
#includefstream
#includevector
usingnamespacestd;
typedefvectorvectorintmatrix;matrixinput();
voidsort(matrixa);
voidprint(matrixa);intmain(){
}
matrixinput(){
}
voidsort(matrixa){
}
voidprint(matrixa){
}for(inti=0;ia.size();i++){}for(intj=0;ja[i].size();j++)couta[i][j];coutendl;for(inti=0;ia.size();i++){}for(intj=i;ja.size();j++){}if(a[i].size()a[j].size())a[i].swap(a[j]);matrixa;ifstreamin(aa.txt);for(strings;getline(in,s);){}returna;vectorintb;for(intt;sint;)b.push_back(t);a.push_back(b);istringstreamsin(s);matrixa=input();sort(a);print(a);
【篇三:
c程序设计教程与实验第8章习题参考答案】
题1.2
2.67200c3.p[5]
4.定义p1为指向整型数据的指针变量
定义p2为指针数组,其数组元素均为指针
定义p3为指向一维数组的指针,其数组元素均为整型数5.5,36.20
7.r+b[k]*x
8.secondlifirstwang9.25
10.1212
三程序分析题1.7
2.153
3973.24
4.abcddfefdbd5.53四、编程题
1.输入2个字符串,每个字符串的长度均不超过80字符,用自己实现的cmpstr()函数完成这两个字符串的大小比较,cmpstr()函数的功能和字符串比较函数strcmp()的功能相同#includestdio.h#includestring.h
intcmpstr(char*s1,char*s2){
char*p,*q;p=s1;q=s2;
while(*p!
=\0*q!
=\0){
if(*p==*q){
p++;q++;}
elsebreak;}
return*p-*q;
}
voidmain(){
charstr1[81],str2[81];intc;
printf(请输入第1个字符串:
);gets(str1);
printf(请输入第2个字符串:
);gets(str2);
c=cmpstr(str1,str2);if(c0)
printf(字符串%s大于字符串%s\n,str1,str2);elseif(c0)
printf(字符串%s小于字符串%s\n,str1,str2);else
printf(字符串%s等于字符串%s\n,str1,str2);
}
2.定义一个函数floatreverse(intp[],intn),该函数有两个参数,第一个参数p为形参数组名,第二个参数n为该数组中的元素个数,要求使用reverse()函数将该数组中的所有元素逆序排列,并返回该数组中所有元素的平均值。
#includestdio.h
floatreverse(intp[],intn){
inti,t;
floatave=0;for(i=0;in;i++)ave=ave+*(p+i);ave=ave/n;
for(i=0;in/2;i++){
t=*(p+i);
*(p+i)=*(p+n-i-1);*(p+n-i-1)=t;}
returnave;}
voidmain(){
inta[10]={1,2,3,4,5,6,7,8,9,10};inti;
floatave;
ave=reverse(a,10);
printf(average=%.1f\n,ave);for(i=0;i10;i++)
printf(%4d,a[i]);printf(\n);}
3.定义一个函数delsubstr(),删除字符串中第k个字符开始的m个字符,例如删除字符串abcde第2个字符开始的3个字符,则删除后结果为ae;又如删除字符串abcde第4个字符开始的5个字符,则删除后结果为abc。
#includestdio.h#includestring.h
intdelsubstr(char*str,intk,intm){
char*p,*q;if(k=0||m=0)
return-1;
elseif(kstrlen(str))
return-2;
elseif(k+mstrlen(str)){
str[k-1]=\0;
return1;
}else{
p=str+k-1;q=str+k+m-1;while(*q!
=\0)*p++=*q++;*p=\0;
return1;
}}
voidmain(){
charstr[81];intk,m,state;
printf(请输入字符串:
\n);gets(str);
printf(请输入要删除的子串起始字符的序号和子串长度:
\n);scanf(%d%d,k,m);state=delsubstr(str,k,m);if(state0)
printf(要删除子串起始字符的序号或子串长度输入错误!
\n);
else
printf(删除指定子串后的字符串为:
%s\n,str);
}
4.定义一个函数delspechar(),使用字符指针删除字符串中的所有指定字符(如把字符串“iloveyou!
”中的o字符删除,得到“ilveyu!
”)。
#includestdio.h#includestring.h
voiddelspechar(char*str,charch){
char*p,*q;p=str;while(*p!
=
39;\0){
if(*p==ch){
q=p;
while(*q!
=\0){
*q=*(q+1);q++;}}
elsep++;}}
voidmain(){
charstr[81],ch;
printf(请输入一个字符串:
);gets(str);
printf(请输入要从字符串中删除的字符:
);ch=getchar();
delspechar(str,ch);
printf(删除所有指定字符后的字符串为:
%s\n,str);
}
5.求整型二维数组a[m][n]中的最大元素值及最大元素的位置(用指针法引用数组元素)。
#includestdio.h#definem3#definen4
voidmax(int(*pa)[n],int*prow,int*pcol{
inti,j;
for(i=0;im;i++)for(j=0;jn;j++)
if(pa[i][j]pa[*prow][*pcol]){
*prow=i;*pcol=j;}
}
voidmain(){
inta[m][n]={{4,2,7,9},{1,3,13,0},{-5,6,-11,10}};introw=0,col=0;max(a,row,col);
printf(二维数组中的最大元素值为a[%d][%d]=%d\n,row,col,a[row][col]);}
6.已知字符串str[80],编写函数lstrchar(),实现在数组str中查找字符ch首次出现的位置,如果字符串中找不到该字符,则返回-1。
#includestdio.h#includestring.h
intlstrchar(char*str1,charch1){
char*p,i=1;p=str1;
while(*p!
=\0){
if(*p==ch1)break;else{
p++;i++;}}
if(*p==\0)return-1;
elsereturni;}
voidmain(){
charch,str[80];intpoi;
printf(请输入字符串:
);gets(str);
printf(请输入待查找的字符:
);scanf(%c,ch);poi=lstrchar(str,ch);if(poi==-1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 教程 课后 答案