华中科技大学标准C语言程序设计及应用习题答案.docx
- 文档编号:25654997
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:46
- 大小:22.46KB
华中科技大学标准C语言程序设计及应用习题答案.docx
《华中科技大学标准C语言程序设计及应用习题答案.docx》由会员分享,可在线阅读,更多相关《华中科技大学标准C语言程序设计及应用习题答案.docx(46页珍藏版)》请在冰豆网上搜索。
华中科技大学标准C语言程序设计及应用习题答案
第二章
一.选择题
1.C2.BD3.A4.A5.D
6.C7.D8.C9.A10.D
11.B12.D13.C14.D15.A
16.B17.A18.B100011001111
二.判断题
1.错
2.错
3.错
4.错
三.填空题
1.B66
2.n1=%d\nn2=%d\n
3.0
四.计算
1
(1)x|y=0x002f
(2)x^y=0x0026
(3)x&y=0x0009;
(4)~x+~y=0xffc6
(5)x<<=30x0068
(6)y>>=40x0002
2
(1)6
(2)50
(3)1
(4)–16
(5)1
(6)20
3
(1)0
(2)1
(3)1
(4)4
(5)8
(6)1
4
(1)12
(2)0
(3)1
(4)27
(5)1
(6)6
(7)24
(8)27
(9)–29
5
(1)0
(2)1
(3)1
(4)–3
(5)2
五.程序分析题
程序1
b=20a=3600
程序2
第三章
一.填空题
1.s=6
2.96
3.
(1)scanf("%c",&c);
(2)c-32更好的答案:
c-('a'-'A')
2.1
main()
{
inta,b;
printf("pleaseinputa&b:
");
scanf("%d%d",&a,&b);
printf("\nmaxis%d\n",(a>b)?
a:
b);
}
2.2
intmax(intx,inty);
main()
{
inta,b,c,max;
printf("pleaseinputa&b&c:
");
scanf("%d%d%d",&a,&b,&c);
max=a>b?
a:
b;
max=c>max?
c:
max;
printf("\nmaxis%d\n",max);
}
2.3
main()
{
inti=0,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("1+2+3+......+100=%d\n",sum);
}
2.4
main()
{
inti;
inta=10,b=-3;
intc;
printf("%6d%6d",a,b);
for(i=2;i<10;i++)
{
c=3*b+a;
printf("%6d",c);
a=b;
b=c;
}
printf("\n");
}
2.5
main()
{
inti;
while
(1)
{
printf("pleaseinputadata(0:
exit):
");
scanf("%d",&i);
if(i==0)
break;
if(i%2==0)
printf("thedata%disaevennumber.\n",i);
else
printf("thedata%disaoddnumber.\n",i);
}
}
2.6
#include
main()
{
inti;
inta=8,b=1;
intsum=0;
for(i=0;i<10;i++)
{
b+=3;
sum+=a;
a+=b;
printf("a%8db:
%8d\n",a,b);
}
printf("TheSumOfIs:
%d\n",sum);
}
2.7
#include
main()
{
floatx,y;
printf("pleaseinputx:
");
scanf("%f",&x);
if(x<1.0)
y=x;
elseif(x<10)
y=2*x-1;
else
y=3*x-11;
printf("y=%f\n",y);
}
2.8
#include
main()
{
longa,i,b,a1;
while
(1)
{
printf("pleaseinputdata(1-99999):
");
scanf("%ld",&a);
printf("a:
%ld\n",a);
if(a<=0||a>=100000)
break;
i=0;
a1=0;
while(a!
=0)
{
b=a%10;
printf("%8d",b);
a/=10;
i++;
a1=a1*10+b;
}
printf("\ni:
%lda1:
%ld\n",i,a1);
}
}
2.9
#include
#include
#include
main()
{
inta,b,i,k=0;
randomize();
a=random(1001);/*createarandomdata(0-1000)*/
for(i=0;i<20;i++)
{
printf("pleaseguessanumber:
");
scanf("%d",&b);
if(a>b)
{
k++;
printf("\n%d:
Smaller,guessagain!
\n",k);
}
elseif(a
{
k++;
printf("\n%d:
Bigger,guessagain!
\n",k);
}
else
{
printf("\nYouguessright,congraturation!
");
printf("\nYouhaveguessed%dtimes",k);
break;
}
}
if(k==20)
printf("\nsorry,youfailed!
");
}
2.10
#include
main()
{
inta,b,c;
intnum;
for(a=0;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=1;c<10;c++)
{
num=a*100+b*10+c;
if((num%3==0)&&(a==5||b==5||c==5))
printf("%8d",num);
}
}
}
printf("\n\n\n");
}
2.11
#include
main()
{
inti;
inta,b;
printf("pleaseinputa,b:
");
scanf("%d%d",&a,&b);
for(i=a
a:
b;i>0;i--)
{
if(a%i==0&&b%i==0)
{
printf("Themax=%d",i);
break;
}
}
for(i=a>b?
a:
b;i>0;i++)
{
if(i%a==0&&i%b==0)
{
printf("\nThemin=%d",i);
break;
}
}
2.12
#include
main()
{
inta,k=0;
printf("pleaseinputdata:
");
scanf("%d",&a);
while(a%2==0)
{
a=a/2;
k++;
}
printf("\nthenumberoffactor
(2)is%d",k);
}
2.13
main()
{
longi,t=1;
longsum=0;
for(i=1;i<=10;i++)
{
t*=i;
sum+=t;
printf("%ld!
=%ld\n",i,t);
}
printf("sum:
%ld\n",sum);
}
2.14
#include
voidmain()
{
inti,x=0;
for(i=9;i>=1;i--)
{
x=2*(x+1);
}
printf("Thefirstday:
%d",x);
}
2.15
#include
#definePI3.141593
main()
{
floatr,h;
floatv;
printf("pleaseinputr,h:
");
scanf("%f%f",&r,&h);
v=1.0/3*PI*r*r*h;
printf("V=%.2f",v);
}
2.16
#include
#include
main()
{
longintsn=0;
longintm=0,t=0;
inta,n,i;
printf("pleaseinputan:
");
scanf("%d%d",&a,&n);
for(i=0;i { m=m*10+a; sn+=m; } printf("a+aa+aaa+...+aa...a=%ld\n\n",sn); } 2.17 #include main() { intk; printf("pleaseinputk: "); do { scanf("%d",&k); if(k>=0&&k<=6) break; }while (1); switch(k) { case0: printf("Sunday.\n");break; case1: printf("Monday.\n");break; case2: printf("Tuesday.\n");break; case3: printf("Wednesday.\n");break; case4: printf("Thursday.\n");break; case5: printf("Friday.\n");break; case6: printf("Saturday.\n");break; } } 2.18 #include main() { inti; doublex,a,b=1,sum=1; printf("pleaseinputx: "); scanf("%lf",&x); a=x; for(i=1;a/b>=1e-6;i++) { sum=sum+a/b; a=a*x; b=(i+1)*b; } printf("\nsum=%lf",sum); } 2.19 #include #include main() { floata,x1,x2; printf("inputa: "); scanf("%f",&a); x1=1.0; while (1) { x2=1.0/2*(x1+a/x1); if(fabs(x2-x1)<1e-5) break; x1=x2; } printf("sqrt(a)=%f",x2); } 第四章 写出下列程序输出结果 1.no1a=1no1a=0no1a=1no1a=0 2. a=0b=0c=0 a=1b=0c=0 a=2b=0c=0 3. main: x=5,y=1,n=1 func: x=6,y=21,n=11 main: x=5,y=1,n=11 func: x=8,y=31,n=21 第五章 1.D 2.D 3.C 4.6 5.CDABC 6. (1)j+=2 (2)a[i] 7. (1)s[i++]! ='\0' (2)s[i-1] 8.D 9.B 10.6(同题4) 11.s[i]>='0'&&s[i]<='9' 12. (1)'\0' (2)str1[i]-str2[i] 5.1 #include intfun(); intfun() { inta[3][3],sum; inti,j; sum=0;/*error*/ for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]);/*error*/ } for(i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%d\n",sum); } voidmain() { fun(); } 5.2 #include voidmain(void) { floatNum[10]; floatInput,GetNum[11]; inti,j; floata=6; for(i=0;i<10;i++) { Num[i]=a; a=a+7.5; } Loop1: printf("PleaseinputaNumber(0-80)Input="); scanf("%f",&Input); if((Input<0)||(Input>70)==1) gotoLoop1; for(i=0;i<10;i++) { if(Input gotoLoop2; } Loop2: for(j=0;j GetNum[j]=Num[j]; GetNum[j]=Input; for(j=i;j<=10;j++,i++) GetNum[j+1]=Num[i]; for(j=0;j<11;j++) printf("%3.3f",GetNum[j]); } 5.3 #include"stdio.h" #include"stdlib.h" main() { inta1,a2,a3,a4,a5,a6,a7,a8,a9; inta[3]; inti; for(;;) { for(i=0;i<3;i++) { a[i]=rand()%3; } while((a[0]! =a[1])&&(a[0]! =a[2])&&(a[1]! =a[2]))/*getthreedifferentnumbers0,1,2*/ { a1=a[0]+1;/*divide1~9intothreegroups,a1~a3,a4~a6,a7~a9*/ a2=a[1]+1; a3=a[2]+1; a4=a1+3; a5=a2+3; a6=a3+3; a7=a1+6; a8=a2+6; a9=a3+6; /*makesurethateachlineandeachrowismadeupwiththreemembersindifferentgroup.*/ /*suchas: a9a1a5 a2a6a7 a4a8a3*/ if(((a1+a5+a9)==(a2+a6+a7))&&((a1+a5+a9)==(a3+a4+a8)) &&((a1+a6+a8)==(a5+a7+a3))&&((a1+a5+a9)==(a2+a4+a9))) { printf("%d%d%d\n%d%d%d\n%d%d%d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3); return; } } } } 5.4 #include voidmain(void) { charinput1[100],input2[100],input3[100]; inti,Eng=0,eng=0,num=0,blank=0,other=0; printf("Input3rowsofcharacter,eachrowdon'texceed80characters: \n"); gets(input1); printf("Thesecondrow: \n"); gets(input2); printf("Thethirdrow: \n"); gets(input3); /*testthefirstrow*/ for(i=0;i<100;i++) { if(input1[i]=='\0') gotoLoop1; elseif(('A'<=input1[i])&&(input1[i]<='Z')==1) Eng++; elseif(('a'<=input1[i])&&(input1[i]<='z')==1) eng++; elseif(('0'<=input1[i])&&(input1[i]<='9')==1) num++; elseif(input1[i]==32) blank++; elseother++; } /*testthesecondrow*/ Loop1: for(i=0;i<100;i++) { if(input2[i]=='\0') gotoLoop2; elseif(('A'<=input2[i])&&(input2[i]<='Z')==1) Eng++; elseif(('a'<=input2[i])&&(input2[i]<='z')==1) eng++; elseif(('0'<=input2[i])&&(input2[i]<='9')==1) num++; elseif(input2[i]==32) blank++; elseother++; } /*testthethirdrow*/ Loop2: for(i=0;i<100;i++) { if(input3[i]=='\0') gotoLoop3; elseif(('A'<=input3[i])&&(input3[i]<='Z')==1) Eng++; elseif(('a'<=input3[i])&&(input3[i]<='z')==1) eng++; elseif(('0'<=input3[i])&&(input3[i]<='9')==1) num++; elseif(input3[i]==32) blank++; elseother++; } Loop3: printf("Upperenglishcharacter: %d\nLowerenglishcharacter: %d\nNumber: %d\nBlank: %d\nOthercharacters: %d\n",Eng,eng,num,blank,other); } 5.5 #include voidmain(void) { charstr1[80],str2[40]; inti,j,k; /*Inputtwostring*/ printf("Pleaseinputthefirststring\nstr1="); gets(str1); printf("Pleaseinputthesecondstring\nstr2="); gets(str2); /*Gettheendofstr1*/ for(i=0;i<80;i++) { if(str1[i]=='\0') break; } /*Copystr2tostr1*/ for(j=i,k=0;str2[k]! ='\0';k++,j++) str1[j]=str2[k]; str1[i+k]='\0'; puts(str1); } 5.6 #include structstudent {charname[20]; intscore; }stu[5],stu1; voidmain(void) {inti,j; printf("Inputstudent'sscoreandname(5),seperateusingthecharacterof',': \n"); for(i=0;i<5;i++) scanf("%d,%s",&stu[i].score,&stu[i].name); /*sorting*/ for(i=0;i<5;i++) for(j=0;j<4-i;j++) if(stu[j].score>stu[j+1].score) {stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;} printf("Aftersotred,scoreandname: \n"); for(i=0;i<5;i++) printf("%d,%s\n",stu[i].score,stu[i].name); } 5.7 #include main() {inta[3][3],i,j,m,n,o,p; printf("Pleaseinputa3*3shuzu: \n"); for(i=0;i<=2;i++) for(j=0;j<=2;j++) scanf("%d",&a[i][j]); for(i=0;i<=2;i++) {m=(a[i][0]>a[i][1])? a[i][0]: a[i][1]; n=(m>a[i][2])? m: a[i][2]; } for(j=0;j<=2;j++) {o=(a[0][j] a[0][j]: a[1][j];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 标准 语言程序设计 应用 习题 答案