C语言作业题总结Word文件下载.docx

上传人:b****6 文档编号:18931549 上传时间:2023-01-02 格式:DOCX 页数:14 大小:18.79KB
下载 相关 举报
C语言作业题总结Word文件下载.docx_第1页
第1页 / 共14页
C语言作业题总结Word文件下载.docx_第2页
第2页 / 共14页
C语言作业题总结Word文件下载.docx_第3页
第3页 / 共14页
C语言作业题总结Word文件下载.docx_第4页
第4页 / 共14页
C语言作业题总结Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言作业题总结Word文件下载.docx

《C语言作业题总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言作业题总结Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

C语言作业题总结Word文件下载.docx

C1=%.2f\nS1=%.2f\nS2=%.2f\nV1=%.2f\nV2=%.2f\n"

C1,S1,S2,V1,V2);

编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

#include<

charc1,c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar('

\n'

);

%c\n"

c2);

(1).给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。

90-100分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。

①事先编好程序,要求分别用if语句和switch语句实现。

运行程序,并检查结果是否正确。

②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。

修改程序,使之能正确处理任何数据。

当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。

floatscore;

scanf("

%f"

score);

if(score>

100||score<

0)

{

printf("

输入数据错\n"

return;

}

elseif(score>

=90)printf("

A\n"

=80)printf("

B\n"

=70)printf("

C\n"

=60)printf("

D\n"

elseprintf("

E\n"

 

return0;

switch((int)score/10)

case10:

case9:

printf("

break;

case8:

case7:

case6:

default:

return0;

(2).给一个不多于6位的正整数,要求:

①求出它是几位数;

②分别打印出每一位数字;

③按逆序打印出各位数字,例如原数为321,应输出123。

应准备以下测试数据:

要处理的数为1位正整数;

要处理的数为2位正整数;

要处理的数为3位正整数;

要处理的数为4位正整数;

要处理的数为5位正整数。

要处理的数为6位正整数。

除此之外,程序还应当对不合法的输入作必要的处理。

例如:

输入负数;

输入的数超过6位(如123456)。

(2)#include<

longintx;

inty,z=0,i=0;

请输入一个不超过1000000的整数:

"

%ld"

x);

if(x>

999999||x<

1)

if(x>

999999)printf("

输入的数超过6位\n"

elseif(x<

1)printf("

输入为负数\n"

else{

while(x!

=0)

{

y=x%10;

printf("

%d\t"

y);

x=x/10;

i=i+1;

}

\n这个数共有%d位\n"

i);

(3).输入4个整数,要求按由小到大顺序输出。

得到正确结果后,修改程序使之按由大到小顺序输出。

#include<

floata,b,c,d,t;

%f,%f,%f,%f"

a,&

b,&

c,&

d);

if(a>

b)

{t=a;

a=b;

b=t;

c)

a=c;

c=t;

d)

a=d;

d=t;

if(b>

{t=b;

b=c;

b=d;

if(c>

{t=c;

c=d;

%5.2f,%5.2f,%5.2f,%5.2f\n"

a,b,c,d);

(4).根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。

inta,b,c,s,area;

请输入三角形三条边:

%d,%d,%d"

c);

if(a+b>

c||a+c>

b||b+c>

a)

if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)printf("

直角三角形"

elseif(a*a+b*b>

c*c||a*a+c*c>

b*b||b*b+c*c>

a*a)printf("

锐角三角形"

elseif(a*a+b*b<

c*c||a*a+c*c<

b*b||b*b+c*c<

钝角三角形"

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

area=%d\n"

area);

不能组成三角形"

输入两个正整数m和n,求它们的最大公约数和最小公倍数。

在运行时,输入的值m>

n,观察结果是否正确。

再输入时,使m<

修改程序,不论m和n为何值(包括负整数),都能得到正确结果。

intm,n,t,a,f;

请输入两个正整数m,n:

\n"

%d,%d"

m,&

n);

if(m<

n){t=m;

m=n;

n=t;

};

f=m*n;

for(;

a=m%n;

m=n,n=a)

{if(a==0)break;

if(a!

=0)continue;

最大公约数为%d\n"

n);

最小公倍数为%d\n"

f/n);

intm,n,t,a,p;

请输入两个正整数:

n)

t=m;

m=n;

n=t;

};

P=m*n;

while(n!

m=n;

n=a;

p/a);

(2).输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。

charc;

intl=0,i=0,j=0,k=0;

请输入一行字符:

while((c=getchar())!

='

0'

&

c<

9'

)i++;

elseif((c>

a'

z'

)||(c>

A'

Z'

))j++;

elseif(c=='

'

)k++;

elsel++;

数字个数为:

%d\n,英文字母个数为:

%d\n,空格个数为:

%d\n,其他字符为:

%d\n"

i,j,k,l);

(3).用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。

在得到正确结果后,请修改程序使所设的x初值由1.5改变为100、1000、10000,再运行,观察结果,分析不同的x初值对结果有没有影响,为什么?

修改程序,使之能输出迭代的次数和每次迭代的结果,分析不同的x初始值对迭代的次数有无影响。

floatx,x0,y,y1;

inti=0;

请输入x:

do

x0=x;

y=2*x0*x0*x0-4*x0*x0+3*x0-6;

y1=6*x0*x0-8*x0+3;

x=x0-y/y1;

i++;

x=%5.2f\n"

x);

while

(fabs(y)>

1e-5);

x=%f\n"

i=%d\n"

(1).写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。

本程序应当准备以下测试数据:

17、34、2,1、0。

分别输入数据,运行程序并检查结果是否正确

inta,b;

intprime(inta);

请输入一个数:

%d"

a);

b=prime(a);

if(b)printf("

%d是一个素数"

a);

%d不是一个素数"

intprime(inta)

inti,flag=1;

for(i=2;

i<

sqrt(a);

i++)

if(a%i==0){flag=0;

returnflag;

(2).用一个函数来实现将一行字符串的内容按反序存放,在主函数中输入和输出字符串.

把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

string.h>

chara[100];

voidconver(charstr[100]);

gets(a);

conver(a);

puts(a);

voidconver(charstr[100])

inti,j;

chart;

i=0;

j=strlen(str)-1;

for(;

j;

i++,j--)

t=str[i];

str[i]=str[j];

str[j]=t;

(1).用递归法将一个整数n转换成字符串。

例如,输入483,应输出字符串“483”。

n的位数不确定,可以是任意的整数。

intn;

请输入整数:

voidtochar(intn);

tochar(n);

return(0);

voidtochar(intn)

{

if(n<

10)putchar(n+'

tochar(n/10);

putchar(n%10+'

(2).求两个整数的最大公约数和最小公倍数。

用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。

intMaximum(intn,intm);

intMinimum(intn,intm);

inta,b,c,d;

请输入两个整数\n"

scanf("

%d%d"

b);

c=Maximum(a,b);

d=Minimum(a,b);

最大公约数是%d\n最小公倍数是%d\n"

c,d);

intMaximum(intn,intm)

intr,t;

if(m>

n)

{t=n;

n=m;

m=t;

r=n%m;

while(r!

{n=m;

m=r;

r=n%m;

returnm;

intMinimum(intn,intm)

{returnn*m/Maximum(n,m);

(1).输入三个整数,按由小到大的顺序输出,然后将程序改为:

输入三个字符串,按由小到大顺序输出。

#include<

voidmsort(int*a,int*b,int*c);

inta,b,c;

%d%d%d"

msort(&

%d%d%d\n"

a,b,c);

voidmsort(int*a,int*b,int*c)

intt;

if(*a>

*b)

t=*a;

*a=*b;

*b=t;

*c)

*a=*c;

*c=t;

if(*b>

t=*b;

*b=*c;

(2).用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:

intstrcmp(char*p1,char*p2);

设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回值为0,如果sl≠s2,则返回它们二者第一个不相同字符的ASCII码差值(如“BADY”与“BAD”的第二个字母不相同,“O”与“A”之差为79—65=14);

如果sl>

s2,则输出正值;

如果sl<

s2则输出负值。

两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。

intmstrcmp(char*p1,char*p2);

chars1[20],s2[20];

gets(s1);

gets(s2);

mstrcmp(s1,s2));

intmstrcmp(char*p1,char*p2)

*p1==*p2&

*p1&

*p2;

p1++,p2++);

if(*p1>

*p2)return

(1);

if(*p1<

*p2)return(-1);

elsereturn(0);

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1