C语言实验指导书.docx
《C语言实验指导书.docx》由会员分享,可在线阅读,更多相关《C语言实验指导书.docx(17页珍藏版)》请在冰豆网上搜索。
C语言实验指导书
1.假设公民的个人所得税为工资总额的5%,编程输入一个公民的工资总额,计算其应缴纳的个人所得税和其扣除所得税后的实际工资,并输出。
#include
voidmain()
{
floata,b,c;
scanf("%f",&a);
b=a*0.05;
c=a-b;
printf("b=%5.2f\nc=%5.2f",b,c);
}
2.利用格式控制符输出以下图形。
*
***
*****
*******
*********
printf("*\n***\n*****\n*******\n*********\n");
3.从键盘上输入圆的半径,圆柱的高,求圆的周长,圆球的表面积、圆球的体积、圆柱体积。
用scanf输入,用printf输出。
输出时有文字说明,取小数点后2位数字。
请编程序。
floatr,h,c,s,v1,v2;
scanf("%f%f",&r,&h);
c=2*3.14*r;
s=4*3.14*r*r;
v1=4/3*3.14*r*r*r;
v2=s*h;
printf("圆的周长:
%5.2f\n圆球的表面积:
%5.2f\n圆球的体积:
%5.2f\n圆柱体积:
%5.2f\n",c,s,v1,v2);
4.编制程序,根据输入的x的值,计算y的值并输出。
floatx,y;
scanf("%f",&x);
if(x<=2.5)
y=x*x+1;
elseif(x>2.5)
y=x*x-1;
printf("y=%5.2f\n",y);
5.从键盘上输入三个数a,b,c,按照从小到大的顺序排序后输出。
(要求,最后数从小到大依次存放在a,b,c中)。
如:
从键盘上输入:
231245,程序处理后应该是a=12b=23c=45。
然后输出a,b,c即可。
inta,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{t=a;
a=b;
b=t;}
if(a>c)
a=c;
c=t;
if(b>c)
{t=b;
b=c;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
6.企业发放的奖金根据利润提成。
利润I低于或等于10万元的,奖金可提10%;利润高于10万元的,低于20万元时,低于10万元的部分仍按10%提成,高于10万元的部分按7%提成;2000001000000时,超过100万元的部分按1%提成。
从键盘上输入当月利润I,求应发奖金总数。
要求:
(1)用if语句编程
(2)用switch语句编程。
doublei,s;
scanf("%lf",&i);
if(i<=100000)
s=0.1*i;
elseif(100000
s=100000*0.1+(i-100000)*0.07;
elseif(200000
s=100000*0.1+100000*0.07+(i-200000)*0.05;
elseif(400000
s=100000*0.1+100000*0.07+200000*0.05+(i-400000)*0.03;
elseif(600000
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;
printf("奖金数为:
%lf\n",s);
7.输入10个数,计算它们的和,积、平方和以及和的平方。
inti,j,a=0,b=1,c=0,d=1;
for(i=0;i<10;i++)
{scanf("%d",&j);
a=j+a;
b=j*b;
c=j*j+c;
d=a*a;
printf("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;i<=500;i++)
if(i%3==2&&i%5==3&&i%7==2)
printf("%d\n",i);
}}
9.求100以的所有素数。
inti,j;
for(i=2;i<=100;i++)
for(j=2;j
if(i%j==0)break;
if(i==j)
printf("%d\t",i);
10.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如:
6的因子分别是:
1,2,3,而6=1+2+3,所以6是完数。
编程输出1000之的所有完数
inti,j,sum;
for(i=1;i<=1000;i++)
sum=0;
for(j=1;j
if(i%j==0)
sum=j+sum;
if(i==sum)
printf("%d\t",sum);}
11.找2-1000中的亲密数对(如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲密数对)。
inta,i;
for(a=2;a<=1000;a++)
intsum1=0,sum2=0;
for(i=1;i{if(a%i==0)sum1=sum1+i;}for(i=1;i{if(sum1%i==0)sum2=sum2+i;}if(sum2==a&&a!=sum1)printf("%dand%d\n",a,sum1);}}12.输入一串字符,以“?”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。#includevoidmain(){charstr[20];intcount[10]={0};gets(str);inti;for(i=0;str[i]!='?';i++){if(str[i]=='0')count[0]++;if(str[i]=='1')count[1]++;if(str[i]=='2')count[2]++;if(str[i]=='3')count[3]++;if(str[i]=='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]++;}for(i=0;i<10;i++)printf("%d\t",count[i]);}13.从键盘上输入10个数,求最大值、最小值和平均值。#includevoidmain(){intstr[10];intmax,min,aver=0,sum=0,i,t;for(i=0;i<10;i++)scanf("%d",&str[i]);for(i=0;i<10;i++){max=str[0];min=str[0];if(maxmax=str[i];if(min>str[i])min=str[i];}for(i=0;i<10;i++)sum=str[i]+sum;aver=sum/10;printf("max=%d\nmin=%d\naver=%d\n",max,min,aver);}14.从键盘上输入10个数,按从小到大的顺序排序输出。#includevoidmain(){inta[10];inti,j,t;printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}15.编写程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,‘\0’也要拷贝进去,‘\0’后面的字符不拷贝。#includevoidmain(){charstr1[20];charstr2[20];inti=-1;gets(str2);while(str2[i]!='\0'){i++;str1[i]=str2[i];}printf("%s\n",str1);}16.计算两个矩阵的和、积。#includevoidmain(){inta[2][2],b[2][2],c[2][2]={0},d[2][2]={0},i,j,k;for(i=0;i<2;i++){for(j=0;j<2;j++){scanf("%d",&a[i][j]);scanf("%d",&b[i][j]);c[i][j]=a[i][j]+b[i][j];printf("%d",c[i][j]);}}printf("\n");for(i=0;i<2;i++){for(j=0;j<2;j++){for(k=0;k<2;k++){d[i][j]=a[i][k]*b[k][j];}}}for(i=0;i<2;i++){for(j=0;j<2;j++){printf("\n%d",d[i][j]);}}}17.Definineafunction:digit(n,k),itwillreturnthekthdigitofnfromright.forexample:digit(15327,4)=5digit(289,5)=0#includevoidmain(){longn,intk,m,t;intdigit(longn,intk);scanf("%ld%d",&n,&k);for(m=1;mn=n/10;t=n%10;printf("%d\n",t);}18.用递归方法求n阶勒让德多项式的值,递归公式为:1n=0pn(x)=xn=1((2n-1)*x-pn-1(x)-(n-1)*pn-2(x))/nn>=1#includevoidmain(){intn,x,m;intp(intn,intx);scanf("%d%d",&n,&x);m=p(n,x);printf("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)要求输入一个职工号,用折半法找出该职工的,从主函数输入要查找的职工的职工号,输出该职工的。#include#includevoidinput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
if(a%i==0)
sum1=sum1+i;
for(i=1;i{if(sum1%i==0)sum2=sum2+i;}if(sum2==a&&a!=sum1)printf("%dand%d\n",a,sum1);}}12.输入一串字符,以“?”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。#includevoidmain(){charstr[20];intcount[10]={0};gets(str);inti;for(i=0;str[i]!='?';i++){if(str[i]=='0')count[0]++;if(str[i]=='1')count[1]++;if(str[i]=='2')count[2]++;if(str[i]=='3')count[3]++;if(str[i]=='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]++;}for(i=0;i<10;i++)printf("%d\t",count[i]);}13.从键盘上输入10个数,求最大值、最小值和平均值。#includevoidmain(){intstr[10];intmax,min,aver=0,sum=0,i,t;for(i=0;i<10;i++)scanf("%d",&str[i]);for(i=0;i<10;i++){max=str[0];min=str[0];if(maxmax=str[i];if(min>str[i])min=str[i];}for(i=0;i<10;i++)sum=str[i]+sum;aver=sum/10;printf("max=%d\nmin=%d\naver=%d\n",max,min,aver);}14.从键盘上输入10个数,按从小到大的顺序排序输出。#includevoidmain(){inta[10];inti,j,t;printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}15.编写程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,‘\0’也要拷贝进去,‘\0’后面的字符不拷贝。#includevoidmain(){charstr1[20];charstr2[20];inti=-1;gets(str2);while(str2[i]!='\0'){i++;str1[i]=str2[i];}printf("%s\n",str1);}16.计算两个矩阵的和、积。#includevoidmain(){inta[2][2],b[2][2],c[2][2]={0},d[2][2]={0},i,j,k;for(i=0;i<2;i++){for(j=0;j<2;j++){scanf("%d",&a[i][j]);scanf("%d",&b[i][j]);c[i][j]=a[i][j]+b[i][j];printf("%d",c[i][j]);}}printf("\n");for(i=0;i<2;i++){for(j=0;j<2;j++){for(k=0;k<2;k++){d[i][j]=a[i][k]*b[k][j];}}}for(i=0;i<2;i++){for(j=0;j<2;j++){printf("\n%d",d[i][j]);}}}17.Definineafunction:digit(n,k),itwillreturnthekthdigitofnfromright.forexample:digit(15327,4)=5digit(289,5)=0#includevoidmain(){longn,intk,m,t;intdigit(longn,intk);scanf("%ld%d",&n,&k);for(m=1;mn=n/10;t=n%10;printf("%d\n",t);}18.用递归方法求n阶勒让德多项式的值,递归公式为:1n=0pn(x)=xn=1((2n-1)*x-pn-1(x)-(n-1)*pn-2(x))/nn>=1#includevoidmain(){intn,x,m;intp(intn,intx);scanf("%d%d",&n,&x);m=p(n,x);printf("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)要求输入一个职工号,用折半法找出该职工的,从主函数输入要查找的职工的职工号,输出该职工的。#include#includevoidinput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
if(sum1%i==0)
sum2=sum2+i;
if(sum2==a&&a!
=sum1)
printf("%dand%d\n",a,sum1);
12.输入一串字符,以“?
”结束,分别统计其中每个数字字符0,1,2,….9出现的次数。
charstr[20];
intcount[10]={0};
gets(str);
for(i=0;str[i]!
='?
';i++)
if(str[i]=='0')
count[0]++;
if(str[i]=='1')
count[1]++;
if(str[i]=='2')
count[2]++;
if(str[i]=='3')
count[3]++;
if(str[i]=='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]++;
printf("%d\t",count[i]);
13.从键盘上输入10个数,求最大值、最小值和平均值。
intstr[10];
intmax,min,aver=0,sum=0,i,t;
scanf("%d",&str[i]);
{max=str[0];min=str[0];
if(maxmax=str[i];if(min>str[i])min=str[i];}for(i=0;i<10;i++)sum=str[i]+sum;aver=sum/10;printf("max=%d\nmin=%d\naver=%d\n",max,min,aver);}14.从键盘上输入10个数,按从小到大的顺序排序输出。#includevoidmain(){inta[10];inti,j,t;printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}15.编写程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,‘\0’也要拷贝进去,‘\0’后面的字符不拷贝。#includevoidmain(){charstr1[20];charstr2[20];inti=-1;gets(str2);while(str2[i]!='\0'){i++;str1[i]=str2[i];}printf("%s\n",str1);}16.计算两个矩阵的和、积。#includevoidmain(){inta[2][2],b[2][2],c[2][2]={0},d[2][2]={0},i,j,k;for(i=0;i<2;i++){for(j=0;j<2;j++){scanf("%d",&a[i][j]);scanf("%d",&b[i][j]);c[i][j]=a[i][j]+b[i][j];printf("%d",c[i][j]);}}printf("\n");for(i=0;i<2;i++){for(j=0;j<2;j++){for(k=0;k<2;k++){d[i][j]=a[i][k]*b[k][j];}}}for(i=0;i<2;i++){for(j=0;j<2;j++){printf("\n%d",d[i][j]);}}}17.Definineafunction:digit(n,k),itwillreturnthekthdigitofnfromright.forexample:digit(15327,4)=5digit(289,5)=0#includevoidmain(){longn,intk,m,t;intdigit(longn,intk);scanf("%ld%d",&n,&k);for(m=1;mn=n/10;t=n%10;printf("%d\n",t);}18.用递归方法求n阶勒让德多项式的值,递归公式为:1n=0pn(x)=xn=1((2n-1)*x-pn-1(x)-(n-1)*pn-2(x))/nn>=1#includevoidmain(){intn,x,m;intp(intn,intx);scanf("%d%d",&n,&x);m=p(n,x);printf("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)要求输入一个职工号,用折半法找出该职工的,从主函数输入要查找的职工的职工号,输出该职工的。#include#includevoidinput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
max=str[i];
if(min>str[i])
min=str[i];}
sum=str[i]+sum;
aver=sum/10;
printf("max=%d\nmin=%d\naver=%d\n",max,min,aver);
14.从键盘上输入10个数,按从小到大的顺序排序输出。
inta[10];
inti,j,t;
printf("input10numbers:
\n");
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("thesortednumbers:
printf("%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];
printf("%s\n",str1);}
16.计算两个矩阵的和、积。
inta[2][2],b[2][2],c[2][2]={0},d[2][2]={0},i,j,k;
for(i=0;i<2;i++)
{for(j=0;j<2;j++)
{scanf("%d",&a[i][j]);
scanf("%d",&b[i][j]);
c[i][j]=a[i][j]+b[i][j];
printf("%d",c[i][j]);}}
{for(k=0;k<2;k++)
{d[i][j]=a[i][k]*b[k][j];}}}
printf("\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);
scanf("%ld%d",&n,&k);
for(m=1;mn=n/10;t=n%10;printf("%d\n",t);}18.用递归方法求n阶勒让德多项式的值,递归公式为:1n=0pn(x)=xn=1((2n-1)*x-pn-1(x)-(n-1)*pn-2(x))/nn>=1#includevoidmain(){intn,x,m;intp(intn,intx);scanf("%d%d",&n,&x);m=p(n,x);printf("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)要求输入一个职工号,用折半法找出该职工的,从主函数输入要查找的职工的职工号,输出该职工的。#include#includevoidinput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
n=n/10;
t=n%10;
printf("%d\n",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);
scanf("%d%d",&n,&x);
m=p(n,x);
printf("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)要求输入一个职工号,用折半法找出该职工的,从主函数输入要查找的职工的职工号,输出该职工的。
voidinput(intnum[],charname[][12],intn)
for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
printf("请输入第%d个职工的工号:
",i+1);
scanf("%d",&num[i]);
scanf("%c");
printf("请输入第%d个职工的:
gets(name[i]);
voidoutput(intnum[],charname[][12],intn)
for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
printf("工号:
%d",num[i]);
printf(":
%s\n",name[i]);
voidsort(intnum[],charname[][12],intn)
inti,j,k;
for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
k=i;
for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
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;
scanf("%d",&k);
for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
if(k==num[i])break;
if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}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.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeintmain(){voidexchange(int*q1,int*q2,int*q3);inta,b,c,*p1,*p2,*p3;printf("pleaseenterthreenumbers:");scanf("%d%d%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf("Theorderis:%d,%d,%d\n",a,b,c);return0;}voidexchange(int*q1,int*q2,int*q3){voidswap(int*pt1,int*pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*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)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoidinput(int*num,char(*name)[12],intn){inti;for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
printf("该职工的为:
%s",name[i]);
if(i>n)
printf("找不到该员工");
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;
printf("pleaseenterthreenumbers:
");
p1=&a;p2=&b;p3=&c;
exchange(p1,p2,p3);
printf("Theorderis:
%d,%d,%d\n",a,b,c);
return0;
voidexchange(int*q1,int*q2,int*q3)
voidswap(int*pt1,int*pt2);
if(*q1>*q2)swap(q1,q2);
if(*q1>*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)
for(i=0;i{printf("请输入第%d个职工的工号:",i+1);scanf("%d",&num[i]);scanf("%c");printf("请输入第%d个职工的:",i+1);gets(name[i]);}}voidoutput(intnum[],charname[][12],intn){inti;for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
for(i=0;i{printf("工号:%d",num[i]);printf(":%s\n",name[i]);}}voidsort(intnum[],charname[][12],intn){inti,j,k;for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
for(i=0;i{k=i;for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
for(j=i+1;jif(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;scanf("%d",&k);for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
for(i=0;iif(k==num[i])break;if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
if(iprintf("该职工的为:%s",name[i]);if(i>n)printf("找不到该员工");}voidmain(){intnu[4];intn=4;charna[4][12];input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);}22.写一个函数,将一个3X3的整形矩阵转置。#includevoidmain(){inta[3][3],b[3][3]={0};voidswap(inta[3][3],intb[3][3]);inti,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)b[i][j]=a[j][i];for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%d",b[i][j]);printf("\n");}}
22.写一个函数,将一个3X3的整形矩阵转置。
{inta[3][3],b[3][3]={0};
voidswap(inta[3][3],intb[3][3]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
b[i][j]=a[j][i];
{for(j=0;j<3;j++)
printf("%d",b[i][j]);
printf("\n");}
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1