华中科技大学标准C语言程序设计及应用习题答案.docx
《华中科技大学标准C语言程序设计及应用习题答案.docx》由会员分享,可在线阅读,更多相关《华中科技大学标准C语言程序设计及应用习题答案.docx(50页珍藏版)》请在冰豆网上搜索。
华中科技大学标准C语言程序设计及应用习题答案
第二章
一、选择题
1、C 2、B D 3、A 4、A 5、 D
6、C 7、D 8、C 9、A 10、D
11、B 12、D13、C 14、D15、A
16、B 17、A 18、B 100011001111
二、判断题
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=20 a=3600
程序2
第三章
一、填空题
1、s=6
2、96
3、
(1)scanf(”%c”,&c);
(2)c-32更好得答案:
c—('a'-'A')
2、1
main()
{
int a,b;
printf(”please inputa& b:
");
scanf(”%d%d”,&a,&b);
printf("\nmax is %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()
{
int i;
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()
{
int i;
while(1)
{
printf(”pleaseinputadata(0:
exit):
");
scanf(”%d",&i);
if(i==0)
break;
if(i%2==0)
printf(”thedata%d isaevennumber、\n”,i);
else
printf(”thedata%disaodd number、\n”,i);
}
}
2、6
#include〈stdio、h〉
main()
{
int i;
inta=8,b=1;
int sum=0;
for(i=0;i<10;i++)
{
b+=3;
sum+=a;
a+=b;
printf("a%8d b:
%8d\n",a,b);
}
printf("TheSumOfIs:
%d\n",sum);
}ﻺ
2、7
#include
main()
{
float x,y;
printf(”please inputx:
”);
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<stdio、h>
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:
%ld a1:
%ld\n”,i,a1);
}
}
2、9
#include〈stdio、h>
#include<time、h>
#include 〈stdlib、h〉
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,guess again!
\n",k);
}
else if(a〈b)
{
k++;
printf(”\n%d:
Bigger,guess again!
\n”,k);
}
else
{
printf(”\nYouguessright,congraturation!
");
printf(”\nYouhaveguessed %dtimes",k);
break;
}
}
if(k==20)
printf("\nsorry,youfailed!
");
}ﻺ
2、10
#include 〈stdio、h>
main()
{
inta,b,c;
int num;
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<stdio、h〉
main()
{
inti;
inta,b;
printf(”pleaseinputa,b:
");
scanf("%d%d",&a,&b);
for(i=a〈b?
a:
b;i>0;i—-)
{
if(a%i==0&&b%i==0)
{
printf("The max=%d",i);
break;
}
}
for(i=a>b?
a:
b;i>0;i++)
{
if(i%a==0&&i%b==0)
{
printf("\nThe min=%d",i);
break;
}
}
2、12
#include<stdio、h>
main()
{
inta,k=0;
printf("please inputdata:
");
scanf(”%d",&a);
while(a%2==0)
{
a=a/2;
k++;
}
printf("\nthenumber offactor
(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<stdio、h>
voidmain()
{
inti,x=0;
for(i=9;i>=1;i——)
{
x=2*(x+1);
}
printf("The first day:
%d",x);
}
2、15
#include 〈stdio、h>
#definePI3、141593
main()
{
floatr,h;
floatv;
printf("please inputr,h:
");
scanf(”%f%f”,&r,&h);
v=1、0/3*PI*r*r*h;
printf(”V=%、2f”,v);
}
2、16
#include〈stdio、h>
#include〈math、h〉
main()
{
longintsn=0;
longintm=0,t=0;
inta,n,i;
printf("please inputan:
");
scanf("%d%d”,&a,&n);
for(i=0;i〈n;i++)
{
m=m*10+a;
sn+=m;
}
printf("a+aa+aaa+、、、+aa、、、a=%ld\n\n",sn);
}
2、17
#includemain()
{
intk;
printf(”please inputk:
");
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;
case 5:
printf(”Friday、\n”);break;
case 6:
printf(”Saturday、\n");break;
}
}
2、18
#include<stdio、h〉
main()
{
int i;
doublex,a,b=1,sum=1;
printf("please inputx:
”);
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<stdio、h>
#include
main()
{
floata,x1,x2;
printf(”input a:
");
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、no1 a=1no1a=0no1a=1no1a=0
2、
a=0b=0c=0
a=1b=0 c=0
a=2 b=0 c=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]〈a[j]
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<stdio、h〉
intfun();
int fun()
{
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<stdio、h>
void main(void)
{
float Num[10];
floatInput,GetNum[11];
int i,j;
floata=6;
for(i=0;i〈10;i++)
{
Num[i]=a;
a=a+7、5;
}
Loop1:
printf(”Pleaseinput aNumber(0-80)Input=");
scanf("%f”,&Input);
if((Input〈0)||(Input>70)==1)
goto Loop1;
for(i=0;i<10;i++ )
{
if(Input〈Num[i])
goto Loop2;
}
Loop2:
for(j=0;j〈i;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()
{
ﻩint a1,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]))/*getthree different numbers0,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;
ﻩ/*makesurethateachline andeachrowismadeupwiththreemembersin differentgroup、*/
ﻩ/*suchas:
a9a1a5
ﻩ a2a6 a7
ﻩﻩﻩa4a8 a3*/
ﻩﻩ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<stdio、h>
voidmain(void)
{
ﻩcharinput1[100],input2[100],input3[100];
int i,Eng=0,eng=0,num=0,blank=0,other=0;
printf(”Input3rows ofcharacter,eachrowdon'texceed 80characters:
\n");
ﻩgets(input1);
printf(”Thesecondrow:
\n”);
ﻩﻩgets(input2);
printf("The thirdrow:
\n");
ﻩﻩgets(input3);
/*test thefirstrow*/
ﻩfor(i=0;i〈100; i++)
ﻩ{
ﻩif(input1[i]==’\0')
ﻩ goto Loop1;
ﻩ 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++;
else if(input1[i]==32)
ﻩﻩblank++;
else other++;
}
/*testthesecondrow*/
Loop1:
ﻩfor(i=0;i<100;i++)
ﻩ{
ﻩﻩif(input2[i]==’\0’)
ﻩgotoLoop2;
else if(('A'〈=input2[i])&&(input2[i]<=’Z’)==1)
ﻩEng++;
else if(('a’<=input2[i])&&(input2[i]〈=’z')==1)
ﻩﻩeng++;
elseif(('0'<=input2[i])&&(input2[i]<='9')==1)
ﻩﻩﻩnum++;
elseif(input2[i]==32)
blank++;
else other++;
}
/*testthethirdrow*/
Loop2:
for(i=0; i〈100; i++)
ﻩ{
if(input3[i]=='\0')
ﻩ goto Loop3;
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(”Upperenglish character:
%d\nLowerenglishcharacter:
%d\nNumber:
%d\nBlank:
%d\nOthercharacters:
%d\n”,Eng,eng,num,blank,other);
}
5、5
#include<stdio、h>
voidmain(void)
{
ﻩcharstr1[80],str2[40];
ﻩinti,j,k;
/*Inputtwostring*/
ﻩprintf("Please inputthe firststring\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<stdio、h>
structstudent
{charname[20];
int score;
}stu[5],stu1;
voidmain(void)
{ int i,j;
printf("Input student's scoreandname(5),seperateusingthe characterof ’,':
\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,score andname:
\n”);
ﻩfor(i=0; i<5;i++)
ﻩﻩprintf("%d,%s\n",stu[i]、score,stu[i]、name);
}
5、7
#includemain()
{ inta[3][3],i,j,m,n,o,p;
printf("Pleaseinputa3*3 shuzu:
\n");
for(i=0;i<=2;i+