=10)y=2*x+3;elseif(x>=0)y=4*x;elsey=5*x-6;printf("y=%.2f\n",y);}2.编程将从键盘输入的百"/> =10)y=2*x+3;elseif(x>=0)y=4*x;elsey=5*x-6;printf("y=%.2f\n",y);}2.编程将从键盘输入的百"/>
首页 C语言程序设计部分习题及例题参考程序Word版

C语言程序设计部分习题及例题参考程序Word版

举报
开通vip

C语言程序设计部分习题及例题参考程序Word版传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!《C语言程序设计》部分例题及课后习题参考程序1.编程计算如下分段函数:[参考程序]#includeintmain(){floatx,y;printf("inputx:");scanf("%f",&x);if(x>=10)y=2*x+3;elseif(x>=0)y=4*x;elsey=5*x-6;printf("y=%.2f\n",y);}2.编程将从键盘输入的百...

C语言程序设计部分习题及例题参考程序Word版
传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!传播优秀Word版文档,希望对您有帮助,可双击去除!《C语言程序设计》部分例 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 及课后习题参考程序1.编程计算如下分段函数:[参考程序]#includeintmain(){floatx,y;printf("inputx:");scanf("%f",&x);if(x>=10)y=2*x+3;elseif(x>=0)y=4*x;elsey=5*x-6;printf("y=%.2f\n",y);}2.编程将从键盘输入的百分制成绩转换为等级分,转换方法如下:90以上(大于或等于90,下同)为A,80分以上为B,70分以上为C,60分以上为D,60分以下,即低于60分为E。[参考程序]#includeintmain(){floatscore;charrank;printf("inputascore:");scanf("%f",&score);if(score>100||score<0){printf("invalidscoreinput\n");exit(-1);}switch((int)score/10){case10:case9:rank='A';break;case8:rank='B';break;case7:rank='C';break;case6:rank='D';break;default:rank='E';}printf("%.2f:%c\n",score,rank);return0;}3.编程判断以从键盘输入的三个数为边长,是否能构成三角形。[参考程序]#includeintmain(){floata,b,c;printf("inputa,b,c:");scanf("%f%f%f",&a,&b,&c);if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)printf("(%.2f,%.2f,%.2f)能围成三角形\n",a,b,c);elseprintf("(%.2f,%2.2f,%.2f)不能围成三角形\n",a,b,c);}4.编程实现将从键盘输入的一个正整数逆序输出,如输入1234,输出3421[参考程序]#includeintmain(){intn;printf("inputanumber:");scanf("%d",&n);do{printf("%d",n%10);n/=10;}while(n!=0);return0;}5.输入一个1~10范围内的整数,计算该数的阶乘。[参考程序]#includeintmain(){intn,s=1,i;printf("inputanumber(1~10):");scanf("%d",&n);for(i=2;i<=n;i++)s*=i;printf("%d!=%d\n",n,s);return0;}6.从键盘输入的一行字符,统计其含有多少个字符。【参考程序】#includeintmain(){charch;intcnt=0;printf("inputacharline:");ch=getchar();while(ch!='\n'){cnt++;ch=getchar();}printf("%d\n",cnt);return0;}7.打印乘法口诀 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 。【参考程序】#includeintmain(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%-3d",j,i,i*j);printf("\n");}return0;}8.在屏幕上打印如下规律的图形,具体行数由键盘输入。************************************【参考程序】#includeintmain(){inti,j,n;printf("请输入打印图形的行数:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf("");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}return0;}9.从键盘输入一个正整数,编程判断其是否为素数(质数).【参考程序】#includeintmain(){inti,n;printf("请输入一个正整数:");scanf("%d",&n);for(i=2;i*i<=n;i++){if(n%i==0)break;}if(i*i<=n||n==1)printf("%d不是一个素数.\n",n);elseprintf("%d是一个素数.\n",n);return0;}10.从键盘输入100个整数,求其中正整数的和。【参考程序】#include#defineN100intmain(){intn,s=0,i;for(i=1;i<=N;i++){printf("请输入第%d个整数:",i);scanf("%d",&n);if(n<0)continue;s+=n;}printf("%d\n",s);return0;}11.从键盘输入1000个学生某门课程的百分制成绩,分别统计其中80分以上(即大于或等于80)、60分以上及低于60分的人数。【参考程序】#include#defineN1000intmain(){intm,n,k,i;floatscore;m=n=k=0;for(i=1;i<=N;i++){printf("请输入第%d个成绩:",i);scanf("%f",&score);if(score>100||score<0){printf("输入的成绩不符合百分制成绩要求,本成绩输入作废,请重新输入第%d个成绩:",i);i--;continue;}if(score>=80)m++;elseif(score>=60)n++;elsek++;}printf("%d:%d:%d\n",m,n,k);return0;}12.运用如下公式计算圆周率的近似值,当最后一项的绝对值小于10-6时,停止计算。【参考程序】#includeintmain(){doublepi=0.0,t=1.0;intsgn=1;while(t<1000000){pi+=sgn/t;sgn=-sgn;t+=2;}printf("Pi=%.6lf\n",4*pi);return0;}13.古代某工地需要搬运砖块,已知男人每人每次搬3块,女人每人每次搬2块,小孩两人每次抬一块,现有45人一次正好搬完全部砖块,请问男人、女人、小孩各几人?【参考程序】#includeintmain(){intw,m,c;for(m=0;m<=15;m++)for(w=0;w<=22;w++){c=45-m-w;if(m*3+w*2+c*.5==45)printf("%d:%d:%d\n",m,w,c);}return0;}14.从键盘输入两个正整数到m、n中,求它们的最大公约数和最小公倍数。【参考程序】#includeintmain(){intm,n,m1,n1,r;printf("请输入两个正整数:");scanf("%d%d",&m,&n);m1=m;n1=n;r=m%n;while(r!=0){m=n;n=r;r=m%n;}printf("gcd(%d,%d)=%d\n",m1,n1,n);printf("lcm(%d,%d)=%d\n",m1,n1,m1*n1/n);return0;}14.编程计算如下式子的值,直到n等于100。【参考程序】#includeintmain(){doubles=0.0,t=1.0;intsgn=1;while(t<=100){s+=sgn/t;sgn=-sgn;t+=1;}printf("s=%.6lf\n",s);return0;}15.计算如下规律式子的值。其中a与n的值都是由键盘输入确定。如当a为2,n为3时,该式子表示的含义为2+22+222,故结果为246。【参考程序】#includeintmain(){inta,n,s=0,t;printf("inputa,n:");scanf("%d%d",&a,&n);t=a;while(n>0){s+=t;t=t*10+a;n--;}printf("%d\n",s);return0;}16.计算如下式子的值。【参考程序】#includeintmain(){intn;floats=0.0;for(n=2;n<=100;n+=2){s+=(float)(n+1)/n;}printf("%.6f\n",s);return0;}17.如数列第1项为2,此后各项的值均为其前一项的2倍再加3,编程计算该数列的前10项之和。【参考程序】#includeintmain(){intn,s=0,i;n=2;for(i=1;i<=3;i++){s+=n;n=n*2+3;}printf("%d\n",s);return0;}18.现要求将1角钱换成1分、2分或5分的硬币,请问有多少种换法,并输出每一种换法。【参考程序】#includeintmain(){intone,two,five,cnt=0;for(five=0;five<=2;five++)for(two=0;two<=5;two++){one=10-five*5-two*2;if(one>=0){printf("%d:%d:%d\n",one,two,five);cnt++;}}printf("一共有%d种换法\n",cnt);return0;}20.编程统计并输出200到300以内的全部素数。【参考程序】#includeintmain(){intm,i,k=0;for(m=201;m<300;m+=2){for(i=3;i*i<=m;i+=2)if(m%i==0)break;if(i*i>m){k++;printf("%8d",m);if(k%5==0)printf("\n");}}printf("\n200到300之间一共有%d个素数\n",k);return0;}21.打印所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数自身。如153【参考程序】#includeintmain(){intm,n,k;for(m=1;m<=9;m++)for(n=0;n<=9;n++)for(k=0;k<=9;k++)if(m*m*m+n*n*n+k*k*k==m*100+n*10+k)printf("%5d",m*100+n*10+k);printf("\n");return0;}22.输出200到300之间满足如下条件的数,即各位数字之和为12,数字之积为42.【参考程序】#includeintmain(){intm,n;for(m=0;m<=9;m++)for(n=0;n<=9;n++)if(m+n==10&&m*n==21)printf("%5d",200+m*10+n);printf("\n");return0;}23.编程将一个正整数进行质因数分解,例如输入90,须在屏幕上打印出90=2*3*3*5【参考程序】#includeintmain(){intm,n;scanf("%d",&m);printf("%d=",m);n=2;while(m!=1){while(m%n==0){printf("%d",n);if(m!=n)printf("*");m/=n;}n++;}printf("\n");return0;}24.输入一行字符,分别统计其中英文字母、空格、数字及其他字符的个数。【参考程序】#includeintmain(){charch;intletter,space,digit,other;letter=space=digit=other=0;printf("inputacharline:");ch=getchar();while(ch!='\n'){if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')letter++;elseif(ch>='0'&&ch<='9')digit++;elseif(ch=='')space++;elseother++;ch=getchar();}printf("%d:%d:%d:%d\n",letter,digit,space,other);return0;}25.编程输出1000以内的全部完数。所谓完数,是指该数恰好等于他的全部真因子的和。如6=1+2+3【参考程序】#includeintmain(){intm,i,t;for(m=2;m<=1000;m++){t=1;for(i=2;i*i<=m;i++)if(m%i==0){t+=i;if(i*i!=m)t+=m/i;}if(t==m)printf("%d\n",m);}return0;}26.从键盘输入10个整数,求这些整数的总和及平均值,并统计不低于平均值的元素个数。【参考程序】#include#defineN5intmain(){inta[N],i,cnt=0;floataver;printf("请输入%d个整数:",N);aver=0.0;for(i=0;i=aver/N)cnt++;}printf("这%d个整数的和是%.0f,平均值是%.2f\n",N,aver,aver/10);printf("不低于平均值的数有%d个\n",cnt);return0;}27.设有存放于数组中一组整数,现从键盘输入一个整数,在数组中查找该数,如果数组中含有该数,则输出其全部出现位置,否则输出“**不存在”,**代表该数值。【参考程序】#include#defineN10intmain(){inta[N]={16,35,48,29,56,43,93,64,90,48};intn,sgn,i;printf("请输入待查找的整数:");scanf("%d",&n);sgn=0;for(i=0;i#include#include#defineN10intmain(){inta[N],i,k;srand(time(NULL));for(i=0;ia[k]){k=i;}}printf("\n最大值是%d,它是数组的第%d个数\n",a[k],k+1);return0;}29.现有一未排序的整型数组,要求用选择法将该数组按由大到小的顺序排序。【参考程序】#include#defineN10intmain(){inta[N],i,k,j,t;printf("请输入%d个整数:",N);for(i=0;ia[k])k=i;t=a[j];a[j]=a[k];a[k]=t;}printf("排序后的数组:\n");for(i=0;i#defineN10intmain(){inta[N+1]={98,96,87,78,72,64,56,51,43,36};intn,i;printf("插入前的数组:\n");for(i=0;i=0;i--)if(a[i]#defineN10intmain(){inta[N]={93,90,64,56,50,48,43,35,29,16};intn,sgn,top,bott,mid;printf("请输入待查找的整数:");scanf("%d",&n);sgn=0;top=0;bott=N-1;while(top<=bott){mid=(top+bott)/2;if(a[mid]==n){sgn=1;break;}elseif(a[mid]>n)top=mid+1;elsebott=mid-1;}if(sgn==0)printf("%d不存在\n",n);elseprintf("%d在第%d个数位置被发现.\n",n,mid+1);return0;}32.按如下格式打印杨辉三角形,具体行数由键盘输入。11112113311464115101051【参考程序】#include#defineN20intmain(){intyang[N][N],n,i,j;printf("请输入要打印的的行数:");scanf("%d",&n);for(i=0;i#defineN80intmain(){charstr[N],ch,i,j=0;printf("请输入一个字符串:");gets(str);printf("请输入待删除的字符:");ch=getchar();for(i=0;str[i]!='\0';i++)if(str[i]!=ch)str[j++]=str[i];str[j]='\0';printf("删除指定字符后的字符串:%s\n",str);return0;}34.现有若干字符串存放于一个二维数组中,每行存放一个字符串,现要求用冒泡法将这些字符串按由小到大排序,即按字符母顺排序。【参考程序】#include#include#defineN80#defineM6intmain(){charstr[M][N],temp[N],i,j;printf("请输入%d个字符串:",M);for(i=0;i0){strcpy(temp,str[j]);strcpy(str[j],str[j+1]);strcpy(str[j+1],temp);}printf("排序后的字符串:\n");for(i=0;i 单词 英语单词 下载七年级上册英语单词表下载英语单词表下载深圳小学英语单词表 下载高中英语单词 下载 数,已知单词之间用空格分隔(空格数大于等于1),不考虑单词是否为合法 英语单词 七年级上册英语单词表高考英语单词3500记忆高中3500个英语单词表七年级下册英语单词表小学六年级英语单词表 ,特别提醒,第一单词之前也可能有若干空格。【参考程序】#include#defineN80intmain(){charstr[N],i,cnt;printf("请输入一个英文句子,以回车结束:");gets(str);if(str[0]==''||str[0]=='\0')cnt=0;elsecnt=1;for(i=0;str[i]!='\0';i++){if(str[i]==''&&str[i+1]!=''&&str[i+1]!='\0')cnt++;}printf("该句子一共含有%d个单词\n",cnt);return0;}36.现有一实型一维数组,请编程分别找出其中的最大值和最小值,并将最大值与数组的最后一个元素交换,最小值与数组的第一个元素交换。【参考程序】#include#defineN10intmain(){floata[N],t;intma,mi,i;printf("请输入%d个实数:");for(i=0;ia[ma])ma=i;if(a[i]#defineN5intmain(){inta[N][N],i,j,s=0;printf("请输入一个方阵:\n");for(i=0;i#defineN10intmain(){inta[N],i,t;printf("请输入%d个整数:",N);for(i=0;i#defineN100intmain(){inta[N],i,j;for(i=0;i#defineN81intmain(){charstr[N],i;printf("请输入一个英文句子:");gets(str);for(i=0;str[i]!='\0';i++)if(str[i]=='')str[i]='*';printf("替换后的字符串:");puts(str);return0;}41.请写一个函数用于统计在一个一维数组中出现指定数值的次数,要求一维数组及指定数值都是由主函数通过参数传递。【参考程序】#include#defineN10intmyseek(inta[],intlen,intn){inti,cnt=0;for(i=0;iintisprime(intn){inti;for(i=2;i*i<=n;i++)if(n%i==0)return0;return1;}intmain(){inti;for(i=3;i<100;i+=2)if(isprime(i)==1)printf("%5d",i);printf("\n");return0;}43.编写了递归函数求Fibonacci数列的第n项,其中n由参数传递,并在主函数中调用该函数输出数列的前20项。【参考程序】#includelongfib(intn){if(n==1||n==2)return1;returnfib(n-1)+fib(n-2);}intmain(){inti;for(i=1;i<21;i++)printf("%l8d",fib(i));printf("\n");return0;}44.编写一函数,实现用冒泡法将数组元素按由大到小排列,其中排序的数组及参与排序的元素个数由参数传递。【参考程序】#include#defineN10voidbubble_sort(intarr[],intn){inti,j,t;for(i=0;i#defineN10voidselect_sort(intarr[],intn){inti,j,t,k;for(i=0;i#defineN81voiddelete_char(charstr[],charch){inti,j=0;for(i=0;str[i]!='\0';i++)if(str[i]!=ch)str[j++]=str[i];str[j]='\0';}intmain(){chars[N],ch;printf("请输入一个字符串:");gets(s);printf("请输入待删除字符:");ch=getchar();delete_char(s,ch);printf("删除指定字符后的字符串:%s\n",s);return0;}47.输入3个数,判断能否构成三角形【参考程序】#includeintmain(){floata,b,c;scanf("%f%f%f",&a,&b,&c);if(a<0||b<0||c<0){printf("边长为%f,%f,%f的三条边不能构三角形.\n",a,b,c);return-1;}if(a+b>c&&a+c>b&&b+c>a)printf("边长为%f,%f,%f的三条边能构三角形.\n",a,b,c);elseprintf("边长为%f,%f,%f的三条边不能构三角形.\n",a,b,c);return0;}48.从键盘输入若干整数(数量不定),求其中所有非负数的各,直到和大于1000,程序结束。【参考程序】#includeintmain(){intn,s;s=0;do{printf("请输入一个整数:");scanf("%d",&n);if(n>0)s+=n;printf("s=%d\n",s);}while(s<=1000);return0;}49.编程求某个整数的位数以及各数位之和。【参考程序】#includeintmain(){intcount,in,s=0;scanf("%d",&in);printf("%d是一个",in);count=0;if(in<0)in=-in;do{count++;s+=in%10;in=in/10;}while(in!=0);printf("%d位数,各数位之和为%d\n",count,s);}50.分别写一个递归和非递归函数用于求字符串的长度,字符串结束符不统计在内,递归函数原型为:intrec_strlen(charstr[]),非递归函数原型为:intnon_rec_strlen(charstr[]).#include#defineN81intrec_strlen(charstr[]){if(str[0]=='\0')return0;returnrec_strlen(&str[1])+1;}intnon_rec_strlen(charstr[]){inti;for(i=0;str[i]!='\0';i++);returni;}intmain(){chars[N];printf("请输入一个字符串:");gets(s);printf("递归函数:该字符串长度为%d\n",rec_strlen(s));printf("非递归函数:该字符串长度为%d\n",non_rec_strlen(s));return0;}
本文档为【C语言程序设计部分习题及例题参考程序Word版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
夕夕资料
拥有专业强大的教研实力和完善的师资团队,专注为用户提供合同简历、论文写作、PPT设计、计划书、策划案、各类模板等,同时素材和资料部分来自网络,仅供参考.
格式:doc
大小:119KB
软件:Word
页数:0
分类:高中其他
上传时间:2021-03-26
浏览量:4