C语言程序设计实验设计习题答案.docx

上传人:b****0 文档编号:18259015 上传时间:2023-08-14 格式:DOCX 页数:20 大小:19.01KB
下载 相关 举报
C语言程序设计实验设计习题答案.docx_第1页
第1页 / 共20页
C语言程序设计实验设计习题答案.docx_第2页
第2页 / 共20页
C语言程序设计实验设计习题答案.docx_第3页
第3页 / 共20页
C语言程序设计实验设计习题答案.docx_第4页
第4页 / 共20页
C语言程序设计实验设计习题答案.docx_第5页
第5页 / 共20页
C语言程序设计实验设计习题答案.docx_第6页
第6页 / 共20页
C语言程序设计实验设计习题答案.docx_第7页
第7页 / 共20页
C语言程序设计实验设计习题答案.docx_第8页
第8页 / 共20页
C语言程序设计实验设计习题答案.docx_第9页
第9页 / 共20页
C语言程序设计实验设计习题答案.docx_第10页
第10页 / 共20页
C语言程序设计实验设计习题答案.docx_第11页
第11页 / 共20页
C语言程序设计实验设计习题答案.docx_第12页
第12页 / 共20页
C语言程序设计实验设计习题答案.docx_第13页
第13页 / 共20页
C语言程序设计实验设计习题答案.docx_第14页
第14页 / 共20页
C语言程序设计实验设计习题答案.docx_第15页
第15页 / 共20页
C语言程序设计实验设计习题答案.docx_第16页
第16页 / 共20页
C语言程序设计实验设计习题答案.docx_第17页
第17页 / 共20页
C语言程序设计实验设计习题答案.docx_第18页
第18页 / 共20页
C语言程序设计实验设计习题答案.docx_第19页
第19页 / 共20页
C语言程序设计实验设计习题答案.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计实验设计习题答案.docx

《C语言程序设计实验设计习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验设计习题答案.docx(20页珍藏版)》请在冰点文库上搜索。

C语言程序设计实验设计习题答案.docx

C语言程序设计实验设计习题答案

实验三

3.4编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数输出

voidmain()

{

charc1,c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

putchar('\n');

printf("%c%c\n",c1,c2);

}

3.5把790分钟换成用小时和分钟表示,然后输出。

voidmain()

{

ints=790;

printf("%d小时",s/60);

printf("%d分钟",s%60);

}

3.6将读入三个数a,b,c,然后交换它们的值,把a的值给b,把b的值给c,把c的值给a.

main()

{

inta,b,c,t;

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

t=a;

a=b;

b=c;

c=t;

printf("%d,%d,%d",a,b,c);

3.7输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,验证处理是否真确。

#include

voidmain()

{

floatx,s,a;

intz;

scanf("%f",&x);

a=100*x+0.5;

z=(int)(a);

s=z/100.0;

printf("%.2f\n",s);

}

 

main()

{

inta,b,t;

doublec;

scanf("%lf",&c);

b=100*c;

t=1000*c;

a=t%10;

if(a>=5)b=b+1;

elseb=b+0;

c=1.0*b/100;

printf("%7.2lf/n",c);

return0;

}

voidmain()

{

intx,y;

scanf("%d",&x);

if(x<0&&x>-5)y=x;

if(x==0)y=x-1;

if(x<10&&x>0)y=x+1;

printf("%d",y);

}

实验四

4.2

不嵌套if语句

voidmain()

{

intx,y;

scanf("%d",&x);

if(x<0&&x>-5)y=x;

if(x==0)y=x-1;

if(x<10&&x>0)y=x+1;

printf("%d",y);

}

法二:

嵌套if语句

voidmain()

{

intx,y;

scanf("%d",&x);

if((x>-5)&&(x<0))y=x;

elseif(x==0)y=x-1;

elseif(x<10&&x>0)y=x+1;

printf("%d",y);

}

4.3如下程序运用条件运算符求变量的绝对值?

voidmain()

{

inta,M;

scanf("%d",&a);

M=a>0?

a:

-a;

printf("abs(a)=%d",M);

4.4某服装店经营套服,也可单件出售,若买的不少于50套,每套80元,不足50套的每套90元,只买上衣每件60元,只买裤子每条45元,(读入所买上衣C和裤子t的件数,计算应付款m。

voidmain()

{

intc,t,m;

printf("inputthenumberofcoatandtrousersyourwantbuy:

\n");;

scanf("%d%d",&c,&t);

if(t==c)

if(c>=50)m=c*80;

elsem=c*90;

else

if(c>t)

if(t>=50)m=t*80+(c-t)*60;

elsem=t*90+(c-t)*60;

else

if(c>=50)m=c*80+(t-c)*45;

elsem=c*90+(t-c)*45;

printf("%d",m);

}

4.5:

从键盘中输入三个数,分别让他们代表三条线段的长度,请编写程序,判断由这三条线段组成的三角形将是什么三角形(不等边,等腰,等边或不构成三角形)?

Include

main()

{

inta,b,c;

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

if(a+b>c&&b+c>a&&c+a>b)

{

if((a==b)&&(b==c))

printf("等边三角形");

elseif((a==b&&b!

=c)||(b==c&&c!

=a))printf("等腰三角形");

elseprintf("不等边三角形");

}

elseprintf("不构成三角形");

}

4.6:

判断输入的整数是否既是5又是7的倍数,若是,则输出yes,否则输出no

voidmain()

{

intx;

scanf("%d",&x);

if(x%5==0&&x%7==0)

printf("yes");

else

printf("no");

}

实验五

5.2输入一行字母,将字母加密输出(如“a’变成’c’,’b’变成’d’,......,’z’变成‘b’)

main()

{intc;

while((c=getchar())!

='\n')

{if(c<='X'&&c>='A'||c<='x'&&c>='a')

c+=2;

elseif(c=='y'||c=='Y'||c=='z'||c=='Z')

c=c-24;

printf("%c",c);

}

putchar('\n');

}

5.3利用for循环编写程序

法一:

#include"stdio.h"

main()

{

inti,j;

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

{

for(j=1;j<=6;j++)

{

if(i==2||i==3)

{

if(j==1||j==6)

printf("*");

elseprintf("");

}

else

printf("*");

 

}

printf("\n");

}

}

法二:

#include"stdio.h"

main()

{

inti,j;

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

{

if(i==1||i==4)

{

for(j=1;j<=6;j++)

{

printf("*");

}

printf("\n");

}

else

{

printf("*");

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

{

printf("");

}

printf("*");

printf("\n");

}

}

}

5.4利用循环语句编程,输出三角形状的九九乘法表

#include"stdio.h"

main()

{

inti,j,k;

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

{

if(i==0)

printf("*");

else

{

printf("%4d",i);

}

}

printf("\n");

for(i=1;i<=19;i++)

{

printf("_");

}

printf("\n");

for(i=1;i<=9;i++)

{

printf("%d",i);

for(j=1;j<=i;j++)

{

k=i*j;

printf("%4d",k);

}

printf("\n");

}

}

5.5:

用while语句或do-while语句编写程序,计算:

e=1+1/1!

+1/2!

+...+1/n!

.

#include

#include"math.h"

main()

{

floats=1.0,e=1.0,t;

inti=1;

while(fabs(t)>=1e-5)

{

s=s*i;

t=1/s;

e=e+1.0/s;

i++;

}

printf("%f\n",e);

printf("%d",i);

}

5.6:

如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”,例如:

6的因子为1,2,3且6=1+2+3,所以6是完数,输出完数1+完数2+...=和值。

voidmain()

{

inti,j,sum,k;

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

{

sum=0;

for(j=1;j

{if(i%j==0)sum+=j;}

if(sum==i)

{printf("%d的因子:

\n",i);

k=0;

for(j=1;j

{

if(i%j==0&&k==0)printf("%d",j);

elseif(i%j==0)printf("+%d",j);

k++;

}

printf("=%d",sum);

printf("\n");

}

}

}

实验六

6.2:

将数组xx(有n个元素)的前K个元素(k

若输入7和1234567,再输入5,则输出6712345.

#include"stdio.h"

main()

{

intn,k,xx[20];

inti,j,t;

printf("\nPleaseenteranumber");

scanf("%d",&n);

printf("\nPleaseenter%dnumbers:

",n);

for(i=0;i

printf("%\nPleaseenteranothernumber:

");

scanf("%d",&k);

for(i=0;i

{

t=xx[0];

for(j=1;j

xx[j-1]=xx[j];

xx[n-1]=t;

}

printf("\nAftermoving:

\n");

for(i=0;i

printf("\n");

}

6.3对a数组中n种商品价格进行分段统计,商品各段价格存到b数组中,其中:

价格为100到199元的个数存到b[1],价格为200到299元的个数存到b[2],价格为300到399的个数存到b[3],价格为400到499元的个数存到b[4],价格为500以上的个数存到b[5]中,例如:

a的数组为:

90,180,270,380,590,530,140,750,380,调用函数后,b中存放的数据为:

1,2,1,2,0,3

#include

main()

{

inti,a[100]={90,180,270,380,590,530,140,750,380},b[6];

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

b[i]=0;

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

{

switch(a[i]/100)

{

case0:

b[0]++;break;

case1:

b[1]++;break;

case2:

b[2]++;break;

case3:

b[3]++;break;

case4:

b[4]++;break;

default:

b[5]++;break;

}

}

 

printf("Theresultis:

");

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

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

printf("\n");

}

6.4编写程序,先读入10个整数,再把他们按从小到大的次序排列起来;最后再读入一个整数K,,并将K插入到该数列中,插入后数列仍然从小到大排列。

例如:

若输入:

6,3,42,23,35,71,98,67,56,38,最后再输入待插入数59,则输出为:

6,23,35,38,42,56,59,67,98

#include

main()

{

inti,j,t,p,q,s,n,a[11]={6,3,42,23,35,71,98,67,56,38};

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

{

for(j=i+1;j<10;j++)

if(a[i]>a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

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

}

printf("\ninputnumber:

\n");

scanf("%d",&n);

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

if(n

{for(j=9;j>=i;j--)

a[j+1]=a[j];

break;

}

a[i]=n;

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

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

printf("\n");

}

6.5统计字符串s在字符串str中出现的次数。

main()

{charstr1[255],str2[255];

intsum=0;

printf("请输入两个字符串!

\n");

gets(str1);

gets(str2);

inti=0,j=0;

while(str1[i]!

='\0')

{

while(str2[j]==str1[i+j]&&str2[j]!

='\0')

{j++;}

if(str2[j]=='\0')

{sum++;

j=0;

}

i++;

}

6.7:

a是一个M行N列的整数矩阵,编写程序求出此矩阵周边元素之和。

#defineM4

#defineN5

#include"stdio.h"

main()

{intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};

inti,j,y,sum=0;

printf("Theoriginaldatais:

\n");

for(i=0;i

{for(j=0;j

printf("\n");

}

for(i=0;i

sum+=aa[0][i]+aa[M-1][i];

for(i=1;i

sum+=aa[i][0]+aa[i][N-1];

printf("\nThesum:

%d\n",sum);

printf("\n");

}

实验七

7.2:

编写一个程序,将两个字符串连接起来,不要用strcat.

方法一

#include

voidmain()

{

constcharstr1[]={"Hello"};

constcharstr2[]={"everyone!

"};

charstr[255];

for(inti=0;str1[i]!

='\0';i++)

str[i]=str1[i];

for(intj=0;str2[j]!

='\0';j++)

str[i+j]=str2[j];

str[i+j]='\0';

printf("%s",str);

getchar();

}

方法二

#include"string.h"

#include"stdio.h"

main()

{

charstr1[50]="everyone!

";

charstr2[50]="hello";

strcpy(str2+strlen(str2),str1);

printf("%s",str2);

}

7.3:

写一个程序,能分别统计出从键盘上输入的字符串中小写字符的个数和数字字符的个数和其它字符的个数,输入字符串以!

作为结束标志

#include"stdio.h"

main()

{

intlower=0,digit=0,other=0,i=0;

chars[255];

while((s[i]=getchar())!

='!

')i++;

for(intj=0;s[j]!

='!

';j++)

{

if(s[j]<='z'&&s[j]>='a')++lower;

elseif(s[j]<='9'&&s[j]>='0')++digit;

else++other;

}

printf("小写字符:

%d\n数字字符:

%d\n其它字符:

%d\n",lower,digit,other);

getchar();

}

7.4:

设有一个字符串“Thisisaprogram”,请编程求字符“a”首次出现的位置

#include"stdio.h"

main()

{

inti,pos;

charstr[]="Thisisaprogram";

for(i=0;str[i]!

='\0';i++)

{

if(str[i]=='a'){pos=i;break;}

}

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

printf("Thepositionis%d\n",pos);

}

7.5:

把一串密码译成明文,密码以字符@表示结束。

#include"stdio.h"

main()

{

inti,j,k=0;

chars[255];

while((s[k]=getchar())!

='@')k++;

for(j=0;s[j]!

='@';j++)

{

if(s[j]<='Z'&&s[j]>='A')

{s[j]+=32;

}

if(s[j]<='w'&&s[j]>='a')

s[j]+=3;

elseif(s[j]=='x'||s[j]=='y'||s[j]=='z')

s[j]-=23;

}

printf("译码后结果:

");

for(i=0;s[i]!

='@';i++)

printf("%c",s[i]);

printf("\n");

getchar();

}

7.6:

编写一个程序,实现对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不同ASC||码之差,例如:

输入的两个字符串分别为“computer”和“compare”,则输出为-20

#include"stdio.h"

main()

{

inti=0;

charstr1[255],str2[255];

printf("\nInputstring1:

");

scanf("%s",str1);

printf("\nInputstring2:

");

scanf("%s",str2);

while

(1)

{

if(str1[i]==str2[i])

{i++;

continue;

}

else

break;

}

printf("\n%d\n",str1[i]-str2[i]);

}

 

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

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

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

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