华中科技大学标准C语言程序设计及应用习题答案.docx

上传人:b****1 文档编号:210657 上传时间:2023-04-28 格式:DOCX 页数:48 大小:22.92KB
下载 相关 举报
华中科技大学标准C语言程序设计及应用习题答案.docx_第1页
第1页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第2页
第2页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第3页
第3页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第4页
第4页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第5页
第5页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第6页
第6页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第7页
第7页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第8页
第8页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第9页
第9页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第10页
第10页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第11页
第11页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第12页
第12页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第13页
第13页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第14页
第14页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第15页
第15页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第16页
第16页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第17页
第17页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第18页
第18页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第19页
第19页 / 共48页
华中科技大学标准C语言程序设计及应用习题答案.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华中科技大学标准C语言程序设计及应用习题答案.docx

《华中科技大学标准C语言程序设计及应用习题答案.docx》由会员分享,可在线阅读,更多相关《华中科技大学标准C语言程序设计及应用习题答案.docx(48页珍藏版)》请在冰点文库上搜索。

华中科技大学标准C语言程序设计及应用习题答案.docx

华中科技大学标准C语言程序设计及应用习题答案

结构体

2.

#include

#defineN3

structa

{

longnum;

charname[20];

intold;//工龄

charps[20];//职务

intwage;

};

main()

{

structab[N];

inti,sum=0,ave=0;

for(i=0;i

{

scanf("%ld%s%d%s%d",&b[i].num,b[i].name,&b[i].old,b[i].ps,&b[i].wage);

sum=sum+b[i].wage;

}

ave=sum/N;

printf("工作证号姓名工龄职务工资\n");

printf("-----------------------------\n");

for(i=0;i<3;i++)

printf("%-9ld%-5s%-5d%-5s%-5d\n",b[i].num,b[i].name,b[i].old,b[i].ps,b[i].wage);

printf("总工资=%d\t平均工资=%d\n",sum,ave);

}

7.

#include

structDate

{

intday;

intmonth;

intyear;

intyearday;

charmonth_name[4];

};

Intday_of_year(structDatepd)

{

Intday_tab[2][13]=

{{0,31,28,31,30,31,30,31,31,30,31,30,31}

{0,31,29,31,30,31,30,31,31,30,31,30,31}};

Inti,day,leap;

day=pd.day;

Leap=pd.year%4==0&&pd.year%100!

=0||pd->year%400==0;//闰年二月29天

For(i=0;i

Day+=day_tab[leap][i];

Returnday;

}

main()

{

intts;

structDated1,d2;

d1.day=12;d1.month=2;d1.year=2001;

d2.day=6;d2.month=7;d2.year=2001;

day_of_year(d1);

day_of_year(d2);

ts=d2.yearday-d1.yearday;

printf("%d\t",d1.yearday);

printf("%d\t",d2.yearday);

printf("%d\n",ts);

}

程序流程

2.8输入5位数整数,倒序输出

#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.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整数含有几个2的因子

#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.14猴子吃桃

#include

voidmain()

{

inti,x=1;

for(i=9;i>=1;i--)

{

x=2*(x+1);

}

printf("Thefirstday:

%d",x);

}

2.18计算e

#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迭代法求x

#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);

}

 

数组

5.1矩阵对角线元素之和

#include

intfun();

intfun()

{

inta[3][3],sum;

inti,j;

sum=0;

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

}

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.5字符串相连

#include

main()

{

chara[80],b[80];

inti=0,j=0;

gets(a);

gets(b);

while(a[i]!

='\0')

i++;

while(b[j]!

='\0')

a[i++]=b[j++];

a[i]='\0';

puts(a);

}

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];

 

p=(o

o:

a[2][j];

}

if(n==p)

 

printf("Andianis%d\\n",p);

 

else

 

printf("Thereisnoandian.\\n");

}

5.8矩阵转置

#include

voidmain(void)

{inta[4][3],b[3][4],i,j;

for(i=0;i<4;i++)

{for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

}

for(i=0;i<4;i++)

{

printf("\n");

for(j=0;j<3;j++)

printf("%5d",a[i][j]);

}

for(i=0;i<4;i++)

{

for(j=0;j<3;j++)

b[j][i]=a[i][j];

}

printf("\n");

for(i=0;i<3;i++)

{

printf("\n");

for(j=0;j<4;j++)

printf("%5d",b[i][j]);

}

}

5.9八进制转换成十进制

#include

#include

voidmain(void)

{charstr[6];

inti,j=0,m=0,n=0;

 

gets(str);

 

while(str[j]!

='\0')j++;

for(i=j-1;i>=0;i--)

{

m=(str[i]-'0')*(pow(8,j-i-1));

n+=m;

}

printf("shijinzhi%d",n);

 

}统计字符串字母空格出现次数

5.10#include

voidmain(void)

{

charstr[256];

inti;

Intz,s,k,ot;

printf("Pleaseinputarowcharacter:

\n");

gets(str);

Z=s=k=ot=0;

for(i=0;str[i]!

=’\0’;i++)

{

if(('A'<=str[i])&&(str[i]<='Z')==1))||((str[i]>=’a’&&(str[i]<=’z’)))

Z++;

elseif((str[i]>=’0’)&&(str[i]<=’9’)

s++;

Elseif(str[i]==’‘)

K++;

Else

{ot++;}

}

 

printf(“字母个数:

%d\n数字个数:

%d\n空格个数、其他",num,blank);

}

指针

4.1统计两个字符串相同字符个数

#include

#include

main()

{

intcount=0;

charstr1[100],str2[100];

char*p1,*p2;

printf("pleaseenterstring1:

");

gets(str1);

printf("pleaseenterstring2:

");

gets(str2);

printf("str1:

%s\n",str1);

printf("str2:

%s\n",str2);

p1=str1;

p2=str2;

while(*p1!

='\0'&&*p2!

='\0')

{

if(*p1++==*p2++)

count++;

}

printf("count:

%d\n",count);

}

4.3从m个字符开始复制字符串

#include

#include

#defineN100

main()

{

chars1[N],s2[N],*p;

intm;

printf("pleaseenterstring1:

");

gets(s1);

p=s1;

printf("enterm:

");

scanf("%d",&m);

strcpy(s2,p+m);

printf("string2:

%s\n",s2);

}

4.4统计字符串中有多少个整数并输出

#include

#include

main()

{

chars[100],*p;

chardata[100][100]={{0}};

intcount=0;

inti;

p=s;

/*

printf("pleaseenterastring:

");

gets(p);

*/

printf("sssss:

%s\n",s);

while(*p!

='\0')

{

i=0;

while(*p>='0'&&*p<='9')

{

data[count][i]=*p;

i++;

p++;

}

if(i!

=0)

count++;

p++;

}

printf("count:

%d\n",count);

for(i=0;i

printf("%s\n",data[i]);

}

4.6

#include

#include

main()

{

char*p[]={"test","capital","index","large","small"};

char**pstr=p;

inta,b,n=5;

char*temp;

for(a=0;a

{

for(b=a+1;b

{

if(strcmp(pstr[a],pstr[b])>0)

{

temp=pstr[a];

pstr[a]=pstr[b];

pstr[b]=temp;

}

}

}

for(a=0;a

printf("%s\n",pstr[a]);

}

4.7求字符串长度,逆序输出

#include

voidmain(void)

{

char*p,temp,a[20];

inti,n=0;

gets(a);

while(a[n]!

='\0')//求长度

n++;

p=a;

for(i=0;i

{

temp=*(p+i);

*(p+i)=*(p+n-1-i);

*(p+n-1-i)=temp;

}

puts(a);

}

函数

1.3个字符串排序

#include

#include

voidswap(char*pstr1,char*pstr2)

{

charp[80];

strcpy(p,pstr1);//改变数组内容

strcpy(pstr1,pstr2);

strcpy(pstr2,p);

}

voidmain(void)

{

chara[80],b[80],c[80];

scanf("%s%s%s",&a,&b,&c);

if(strcmp(a,b)>0)swap(a,b);

if(strcmp(b,c)>0)swap(b,c);

if(strcmp(a,b)>0)swap(a,b);

printf("%s\n%s\n%s\n",a,b,c);

}

7.4.2公约数公倍数函数

#include

intGongYueShu(int,int);

intGongBeiShu(int,int);

main()

{

inta,b;

intgbs,gys;

printf("enter2integer:

");

scanf("%d%d",&a,&b);

gys=GongYueShu(a,b);

gbs=GongBeiShu(a,b);

if(gys<0)

printf("Therehasnotgongyueshu!

!

!

!

!

!

\n");

else

printf("maxgongyueshu:

%d\n",gys);

printf("mingongbeishu:

%d\n",gbs);

}

intGongYueShu(intx,inty)

{

inti,gys=-1,min;

min=x;

if(x>y)

min=y;

for(i=2;i<=min;i++)

{

if((x%i==0)&&(y%i==0))

gys=i;

}

returngys;

}

intGongBeiShu(intx,inty)

{

inti,gbs,max;

max=x;

if(y>x)

max=y;

for(i=max;i<=x*y;i++)

{

if((i%x==0)&&(i%y==0))

{

gbs=i;

break;

}

}

returngbs;

}

7.4.4删除字符串中制定字符

#include

#include

voidDelete_Ch(char*,char);

main()

{

charstr[80],ch;

printf("pleaseastring:

");

gets(str);

printf("pleaseachar:

");

scanf("%c",&ch);

Delete_Ch(str,ch);

printf("%s\n\n",str);

}

voidDelete_Ch(char*p,charch)

{

while(*p)

{

if(*p==ch)

{

strcpy(p,p+1);

}

else

p++;

}

}

7.4.5

#include

intIs_ShuShu(int);

main()

{

inta,ret;

printf("plsenterainteger:

");

scanf("%d",&a);

ret=Is_ShuShu(a);

if(ret==0)

printf("%disashushu!

!

!

\n",a);

else

printf("%disnotashushu\n",a);

}

intIs_ShuShu(intx)

{

inti;

for(i=2;i

{

if(x%i==0)

return-1;

}

if(i>=x/2)

return0;

}

7.4.6字符串连接

#include

#include

voidStrCat(char*s1,char*s2)

{

while(*s1!

='\0')

s1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2