C语言实验指导书Word文档下载推荐.docx

上传人:b****5 文档编号:17080230 上传时间:2022-11-28 格式:DOCX 页数:17 大小:20.06KB
下载 相关 举报
C语言实验指导书Word文档下载推荐.docx_第1页
第1页 / 共17页
C语言实验指导书Word文档下载推荐.docx_第2页
第2页 / 共17页
C语言实验指导书Word文档下载推荐.docx_第3页
第3页 / 共17页
C语言实验指导书Word文档下载推荐.docx_第4页
第4页 / 共17页
C语言实验指导书Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言实验指导书Word文档下载推荐.docx

《C语言实验指导书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言实验指导书Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

C语言实验指导书Word文档下载推荐.docx

,c,s,v1,v2);

4.编制程序,根据输入的x的值,计算y的值并输出。

floatx,y;

x);

if(x<

=2.5)

y=x*x+1;

elseif(x>

2.5)

y=x*x-1;

y=%5.2f\n"

y);

5.从键盘上输入三个数a,b,c,按照从小到大的顺序排序后输出。

(要求,最后数从小到大依次存放在a,b,c中)。

如:

从键盘上输入:

231245,程序处理后应该是a=12b=23c=45。

然后输出a,b,c即可。

#include<

inta,b,c,t;

%d%d%d"

a,&

b,&

c);

if(a>

b)

{t=a;

a=b;

b=t;

c)

a=c;

c=t;

if(b>

{t=b;

b=c;

a=%d\nb=%d\nc=%d\n"

a,b,c);

6.企业发放的奖金根据利润提成。

利润I低于或等于10万元的,奖金可提10%;

利润高于10万元的,低于20万元时,低于10万元的部分仍按10%提成,高于10万元的部分按7%提成;

200000<

I<

400000时,低于20万元的部分仍按上述办法提成,高于20万元的部分按5%提成;

400000<

600000时,高于40万元的部分按3%提成,600000<

1000000时,高于60万元的部分按1.5%提成;

I>

1000000时,超过100万元的部分按1%提成。

从键盘上输入当月利润I,求应发奖金总数。

要求:

(1)用if语句编程

(2)用switch语句编程。

doublei,s;

%lf"

i);

if(i<

=100000)

s=0.1*i;

elseif(100000<

i&

&

i<

=200000)

s=100000*0.1+(i-100000)*0.07;

elseif(200000<

=400000)

s=100000*0.1+100000*0.07+(i-200000)*0.05;

elseif(400000<

=600000)

s=100000*0.1+100000*0.07+200000*0.05+(i-400000)*0.03;

elseif(600000<

=1000000)

s=100000*0.1+100000*0.07+200000*0.05+200000*0.03+(i-600000)*0.015;

elseif(i>

1000000)

s=100000*0.1+100000*0.07+200000*0.05+200000*0.03+400000*0.015+(i

-1000000)*0.01;

奖金数为:

%lf\n"

s);

7.输入10个数,计算它们的和,积、平方和以及和的平方。

inti,j,a=0,b=1,c=0,d=1;

for(i=0;

10;

i++)

{scanf("

%d"

j);

a=j+a;

b=j*b;

c=j*j+c;

d=a*a;

a=%d\nb=%d\nc=%d\nd=%d\n"

a,b,c,d);

8.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。

(选子《子算经》)

inti;

for(i=1;

=500;

if(i%3==2&

i%5==3&

i%7==2)

printf("

%d\n"

i);

}}

9.求100以的所有素数。

inti,j;

for(i=2;

=100;

{

for(j=2;

j<

i;

j++)

if(i%j==0)break;

if(i==j)

%d\t"

}

10.一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如:

6的因子分别是:

1,2,3,而6=1+2+3,所以6是完数。

编程输出1000之的所有完数

inti,j,sum;

for(i=1;

=1000;

sum=0;

for(j=1;

if(i%j==0)

sum=j+sum;

if(i==sum)

sum);

11.找2-1000中的亲密数对(如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲密数对)。

voidmain()

inta,i;

for(a=2;

a<

a++)

intsum1=0,sum2=0;

a;

if(a%i==0)

sum1=sum1+i;

sum1;

if(sum1%i==0)

sum2=sum2+i;

if(sum2==a&

a!

=sum1)

%dand%d\n"

a,sum1);

12.输入一串字符,以“?

”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。

charstr[20];

intcount[10]={0};

gets(str);

inti;

for(i=0;

str[i]!

='

?

'

;

if(str[i]=='

0'

count[0]++;

1'

count[1]++;

2'

count[2]++;

3'

count[3]++;

4'

count[4]++;

if(str[5]=='

5'

count[5]++;

if(str[6]=='

6'

count[6]++;

if(str[7]=='

7'

count[7]++;

if(str[8]=='

8'

count[8]++;

if(str[9]=='

9'

count[9]++;

count[i]);

13.从键盘上输入10个数,求最大值、最小值和平均值。

intstr[10];

intmax,min,aver=0,sum=0,i,t;

str[i]);

{max=str[0];

min=str[0];

if(max<

str[i])

max=str[i];

if(min>

min=str[i];

sum=str[i]+sum;

aver=sum/10;

max=%d\nmin=%d\naver=%d\n"

max,min,aver);

14.从键盘上输入10个数,按从小到大的顺序排序输出。

inta[10];

inti,j,t;

input10numbers:

\n"

scanf("

a[i]);

for(j=0;

9;

9-j;

if(a[i]>

a[i+1])

{t=a[i];

a[i]=a[i+1];

a[i+1]=t;

thesortednumbers:

%d"

a[i]);

15.编写程序,将字符数组s2中的全部字符拷贝到字符数组s1中。

不用strcpy函数。

拷贝时,‘\0’也要拷贝进去,‘\0’后面的字符不拷贝。

charstr1[20];

charstr2[20];

inti=-1;

gets(str2);

while(str2[i]!

\0'

{i++;

str1[i]=str2[i];

%s\n"

str1);

16.计算两个矩阵的和、积。

inta[2][2],b[2][2],c[2][2]={0},d[2][2]={0},i,j,k;

2;

{for(j=0;

a[i][j]);

b[i][j]);

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

c[i][j]);

{for(k=0;

k<

k++)

{d[i][j]=a[i][k]*b[k][j];

}}}

\n%d"

d[i][j]);

17.Definineafunction:

digit(n,k),itwillreturnthekthdigitofnfromright.

forexample:

digit(15327,4)=5

digit(289,5)=0

longn,intk,m,t;

intdigit(longn,intk);

%ld%d"

n,&

k);

for(m=1;

m<

k;

m++)

n=n/10;

t=n%10;

t);

18.用递归方法求n阶勒让德多项式的值,递归公式为:

1n=0

pn(x)=xn=1

((2n-1)*x-pn-1(x)-(n-1)*pn-2(x))/nn>

=1

intn,x,m;

intp(intn,intx);

%d%d"

m=p(n,x);

p(n,x)=%d"

m);

intp(intn,intx)

if(n==0)

return1;

if(n==1)

returnx;

if(n>

=1)

return((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;

19.写几个函数:

(1)输入10个职工的和职工号;

(2)按职工号从小到大排序,也相应改变顺序;

(3)要求输入一个职工号,用折半法找出该职工的,从主函数输入要查找的职工的职工号,输出该职工的。

string.h>

voidinput(intnum[],charname[][12],intn)

n;

请输入第%d个职工的工号:

"

i+1);

num[i]);

%c"

请输入第%d个职工的:

gets(name[i]);

voidoutput(intnum[],charname[][12],intn)

工号:

num[i]);

:

name[i]);

voidsort(intnum[],charname[][12],intn)

inti,j,k;

k=i;

for(j=i+1;

if(num[k]>

num[j])

k=j;

if(k!

=i)

intt;

t=num[k];

num[k]=num[i];

num[i]=t;

chartc[12];

strcpy(tc,name[k]);

strcpy(name[k],name[i]);

strcpy(name[i],tc);

voidsearch(intnum[],charname[][12],intn)

intk,i;

if(k==num[i])break;

if(i<

n)

该职工的为:

%s"

if(i>

找不到该员工"

voidmain()

intnu[4];

intn=4;

charna[4][12];

input(nu,na,n);

sort(nu,na,n);

output(nu,na,n);

search(nu,na,n);

20.输入三个整数,按照从小到大的顺序输出。

(用函数和指针实现)

intmain()

voidexchange(int*q1,int*q2,int*q3);

inta,b,c,*p1,*p2,*p3;

pleaseenterthreenumbers:

p1=&

p2=&

b;

p3=&

c;

exchange(p1,p2,p3);

Theorderis:

%d,%d,%d\n"

return0;

voidexchange(int*q1,int*q2,int*q3)

voidswap(int*pt1,int*pt2);

if(*q1>

*q2)swap(q1,q2);

*q2)swap(q1,q3);

if(*q2>

*q3)swap(q2,q3);

voidswap(int*pt1,int*pt2)

inttemp;

temp=*pt1;

*pt1=*pt2;

*pt2=temp;

21.写几个函数:

(1)输入10个职工号;

(2)按职工号从小到大排序;

(3)要求输入一个职工号,用折半法找出来。

voidinput(int*num,char(*name)[12],intn)

22.写一个函数,将一个3X3的整形矩阵转置。

{inta[3][3],b[3][3]={0};

voidswap(inta[3][3],intb[3][3]);

inti,j;

3;

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

b[i][j]);

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

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

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