C语言实验指导书

上传人:jun****875 文档编号:17803102 上传时间:2020-12-06 格式:DOC 页数:11 大小:144.91KB
收藏 版权申诉 举报 下载
C语言实验指导书_第1页
第1页 / 共11页
C语言实验指导书_第2页
第2页 / 共11页
C语言实验指导书_第3页
第3页 / 共11页
资源描述:

《C语言实验指导书》由会员分享,可在线阅读,更多相关《C语言实验指导书(11页珍藏版)》请在装配图网上搜索。

1、1. 假设公民的个人所得税为工资总额的5%,编程输入一个公民的工资总额,计算其应缴纳的个人所得税和其扣除所得税后的实际工资,并输出。#includevoid main()float a,b,c;scanf(%f,&a);b=a*0.05;c=a-b;printf(b=%5.2fnc=%5.2f,b,c);2.利用格式控制符输出以下图形。* *#includevoid main()printf( *n *n *n *n*n);3.从键盘上输入圆的半径,圆柱的高,求圆的周长,圆球的表面积、圆球的体积、圆柱体积。用scanf输入,用printf输出。输出时有文字说明,取小数点后2位数字。请编程序。#

2、includevoid main()float r,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.2fn圆球的表面积:%5.2fn圆球的体积:%5.2fn圆柱体积:%5.2fn,c,s,v1,v2);4.编制程序,根据输入的x的值,计算y的值并输出。 #includevoid main()float x,y;scanf(%f,&x);if(x2.5) y=x*x-1;printf(y=%5.2fn,y);5.从键盘上输入三个数a,b,c,按照从小到大的顺

3、序排序后输出。(要求,最后数从小到大依次存放在a,b,c中)。如:从键盘上输入:23 12 45,程序处理后应该是a=12 b=23 c=45。然后输出a,b,c即可。#include void main()int a,b,c,t;scanf(%d%d%d,&a,&b,&c);if (ab)t=a; a=b; b=t;if (ac)t=a; a=c; c=t;if (bc)t=b; b=c; c=t;printf(a=%dnb=%dnc=%dn,a,b,c);6.企业发放的奖金根据利润提成。利润I低于或等于10万元的,奖金可提10%;利润高于10万元的,低于20万元时,低于10万元的部分仍按1

4、0%提成,高于10万元的部分按7%提成;200000I400000时,低于20万元的部分仍按上述办法提成,高于20万元的部分按5%提成;400000I600000时,高于40万元的部分按3%提成,600000I1000000时,超过100万元的部分按1%提成。从键盘上输入当月利润I,求应发奖金总数。要求:(1)用if语句编程 (2)用switch语句编程。#include void main()double i,s;scanf(%lf,&i);if (i=100000) s=0.1*i;else if(100000i&i=200000) s=100000*0.1+(i-100000)*0.07

5、;else if(200000i&i=400000) s=100000*0.1+100000*0.07+(i-200000)*0.05;else if(400000i&i=600000) s=100000*0.1+100000*0.07+200000*0.05+(i-400000)*0.03;else if(600000i&i1000000) s=100000*0.1+100000*0.07+200000*0.05+200000*0.03+400000*0.015+(i -1000000)*0.01;printf(奖金数为:%lfn,s);7.输入10个数,计算它们的和,积、平方和以及和的平方

6、。#include void main()int i,j,a=0,b=1,c=0,d=1;for(i=0;i10;i+)scanf(%d,&j);a=j+a;b=j*b;c=j*j+c;d=a*a;printf(a=%dnb=%dnc=%dnd=%dn,a,b,c,d);8.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。(选子孙子算经)#include void main()int i;for(i=1;i=500;i+) if (i%3=2&i%5=3&i%7=2) printf(%dn,i);9.求100以内的所有素数。#include void main()

7、int i,j; for(i=2;i=100;i+) for(j=2;ji;j+)if (i%j=0) break;if(i=j) printf(%dt,i); 10.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6的因子分别是:1,2,3,而6=1+2+3,所以6是完数。编程输出1000之内的所有完数#include void main() int i,j,sum; for(i=1;i=1000;i+) sum=0; for(j=1;ji;j+) if(i%j=0) sum=j+sum; if(i=sum) printf(%dt,sum); 11. 找2-1000中的亲密数对(

8、如果a的因子和等于b,b的因子和等于a,且ab,则称a,b为亲密数对)。#include void main () int a,i; for(a=2;a=1000;a+) int sum1=0,sum2=0; for(i=1;ia;i+) if (a%i=0) sum1=sum1+i; for(i=1;isum1;i+) if (sum1%i=0) sum2=sum2+i; if (sum2=a&a!=sum1) printf(%d and %dn,a,sum1); 12. 输入一串字符,以“ ?”结束,分别统计其中每个数字字符0,1,2,.9出现的次数。#include void main

9、() char str20; int count10=0; gets(str); int i; for(i=0;stri!=?;i+) if (stri=0)count0+;if (stri=1)count1+; if (stri=2)count2+; if (stri=3)count3+; if (stri=4)count4+; if (str5=5)count5+; if (str6=6)count6+; if (str7=7)count7+; if (str8=8)count8+; if (str9=9)count9+; for(i=0;i10;i+) printf(%dt,counti

10、);13. 从键盘上输入10个数,求最大值、最小值和平均值。#includevoid main()int str10;int max,min,aver=0,sum=0,i,t;for(i=0;i10;i+)scanf(%d,&stri);for(i=0;i10;i+)max=str0;min=str0;if (maxstri)min=stri;for(i=0;i10;i+)sum=stri+sum;aver=sum/10;printf(max=%dnmin=%dnaver=%dn,max,min,aver);14. 从键盘上输入10个数,按从小到大的顺序排序输出。#include void m

11、ain()int a10;int i,j,t;printf(input 10 numbers:n);for(i=0;i10;i+) scanf(%d,&ai);printf(n);for(j=0;j9;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;printf(the sorted numbers:n);for(i=0;i10;i+)printf(%d ,ai);printf(n);15. 编写程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,0也要拷贝进去,0后面的字符不拷贝。#include void main()char st

12、r120;char str220;int i=-1;gets(str2);while(str2i!=0)i+;str1i=str2i;printf(%sn,str1);16. 计算两个矩阵的和、积。#include void main()int a22,b22,c22=0,d22=0,i,j,k;for(i=0;i2;i+)for(j=0;j2;j+)scanf(%d,&aij);scanf(%d,&bij);cij=aij+bij;printf(%d ,cij);printf(n);for(i=0;i2;i+)for(j=0;j2;j+)for(k=0;k2;k+)dij=aik*bkj;f

13、or(i=0;i2;i+)for(j=0;j2;j+)printf(n %d ,dij);17.Definine a function: digit(n,k),it will return the kth digit of n from right.for example: digit(15327,4)=5 digit(289,5)=0#include void main()long n,int k,m,t;int digit(long n,int k);scanf(%ld%d,&n,&k);for(m=1;m=1#include void main()int n,x,m;int p(int

14、n,int x);scanf(%d%d,&n,&x);m=p(n,x);printf(p(n,x)=%d,m);int p(int n,int x)if(n=0)return 1;if(n=1)return x;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#includevoid input(int num,char

15、name12,int n)int i;for(i=0;in;i+)printf(请输入第%d个职工的工号:,i+1);scanf(%d,&numi);scanf(%c);printf(请输入第%d个职工的姓名:,i+1);gets(namei); void output(int num,char name12,int n) int i; for(i=0;in;i+) printf(工号:%d,numi); printf(姓名:%sn,namei); void sort(int num,char name12,int n)int i,j,k; for(i=0;in;i+) k=i;for(j=i

16、+1;jnumj)k=j;if(k!=i)int t;t=numk;numk=numi;numi=t;char tc12;strcpy(tc,namek);strcpy(namek,namei);strcpy(namei,tc); void search(int num,char name12,int n)int k,i;scanf(%d,&k);for(i=0;in;i+)if(k=numi) break;if(in)printf(找不到该员工); void main()int nu4; int n=4;char na412;input(nu,na,n);sort(nu,na,n);outp

17、ut(nu,na,n);search(nu,na,n);20.输入三个整数,按照从小到大的顺序输出。(用函数和指针实现)#includeint main()void exchange(int *q1,int *q2,int *q3);int a,b,c,*p1,*p2,*p3;printf(please enter three numbers:);scanf(%d%d%d,&a,&b,&c);p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);printf(The order is:%d,%d,%dn,a,b,c);return 0;void exchange(int *

18、q1,int *q2,int *q3)void swap(int *pt1,int *pt2);if(*q1*q2) swap(q1,q2);if(*q1*q2) swap(q1,q3);if(*q2*q3) swap(q2,q3);void swap(int *pt1,int *pt2)int temp;temp=*pt1;*pt1=*pt2;*pt2=temp;21. 写几个函数:(1)输入10个职工号;(2)按职工号从小到大排序;(3)要求输入一个职工号,用折半法找出来。(用函数和指针实现)#include#includevoid input(int *num,char (*name)1

19、2,int n)int i;for(i=0;in;i+)printf(请输入第%d个职工的工号:,i+1);scanf(%d,&numi);scanf(%c);printf(请输入第%d个职工的姓名:,i+1);gets(namei); void output(int num,char name12,int n) int i; for(i=0;in;i+) printf(工号:%d,numi); printf(姓名:%sn,namei); void sort(int num,char name12,int n)int i,j,k; for(i=0;in;i+) k=i;for(j=i+1;jn

20、umj)k=j;if(k!=i)int t;t=numk;numk=numi;numi=t;char tc12;strcpy(tc,namek);strcpy(namek,namei);strcpy(namei,tc); void search(int num,char name12,int n)int k,i;scanf(%d,&k);for(i=0;in;i+)if(k=numi) break;if(in)printf(找不到该员工); void main()int nu4; int n=4;char na412;input(nu,na,n);sort(nu,na,n);output(nu,na,n);search(nu,na,n);22.写一个函数,将一个3 X 3的整形矩阵转置。#includevoid main()int a33,b33=0;void swap(int a33 ,int b33);int i,j;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);for(i=0;i3;i+)for(j=0;j3;j+)bij=aji;for(i=0;i3;i+)for(j=0;j3;j+)printf(%d ,bij);printf(n);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!