C语言程序设计案例教程实操练习题_第1页
C语言程序设计案例教程实操练习题_第2页
C语言程序设计案例教程实操练习题_第3页
C语言程序设计案例教程实操练习题_第4页
C语言程序设计案例教程实操练习题_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题1写出下列程序的运行结果。1.x=52.#include<stdio.h>main(){printf("MyNameis:YourName!\n");}二、编写程序,并上机调试。1.参照本章例题,编写一个简单的C程序,输出以下信息:******************************WelcometostudyCprogram!******************************参考程序如下:#include<stdio.h>main(){printf("******************************\n");printf("WelcometostudyCprogram!\n");printf("******************************\n");}2.模仿本章例题,编写程序,求两个整数的积。参考程序如下:#include<stdio.h>intmain(void){inta,b,c;//定义整型变量a、b、cprintf("请输入两个整数:");//输出提示信息/*从键盘输入两个整数赋值给变量a、b*/scanf("%d",&a);scanf("%d",&b);c=a*b;//把a×b的值赋给cprintf("输出:%d*%d=%d\n",a,b,c);//输出语句return0;//函数正常退出}

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题2写出下列程序的运行结果。1.x=2,y=32.x+y=53.a=3.1415934.(int)f=5,f=5.750000

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题3写出下列程序的运行结果。1.2,-22.857143,-2.8571432.i=9,j=11m=9,n=103.64.y=6,x=6

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题4一、写出下列程序的运行结果。1.a=2,c=52.AA3.2,5,1,2,3,-24.CATABc二、编写程序,并上机调试。1.编写程序,从键盘输入梯形的上下底边长度和高,计算梯形的面积。参考程序如下:#include<stdio.h>main(){ floatx,y,h,s; printf("请输入梯形上、下底边长和高:"); scanf("%f%f%f",&x,&y,&h); s=(x+y)*h/2; printf("梯形面积为%f\n",s);}2.编写程序,从键盘输入某学生的4科成绩,求出总分和平均分。参考程序如下:#include<stdio.h>main(){ floata,b,c,d,sum,average; printf("请输入4科成绩:"); scanf("%f%f%f%f",&a,&b,&c,&d); sum=a+b+c+d; average=sum/4; printf("总分为%f,平均分为%f\n",sum,average);}3.用getchar()函数读入一个字符,输出读入字符的前一个字符和后一个字符。参考程序如下:#include<stdio.h>main(){ charch; printf("请输入一个字符:"); ch=getchar();printf("前一个字符为%c,后一个字符为%c\n",ch-1,ch+1);}

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题5一、写出下列程序的运行结果。1.62.a=20,b=30,c=203.14.2,1二、编写程序,并上机调试。1.从键盘上输入一个数,判断其是否为水仙花数。参考程序如下:#include<stdio.h>main(){ intn,x,y,z; printf("请输入一个1000以内的三位数:"); scanf("%d",&n); x=n/100; y=n%100/10; z=n%10; if(n==x*x*x+y*y*y+z*z*z) printf("%d是水仙花数\n",n); else printf("%d不是水仙花数\n",n);}2.输入某年某月某日,判断这一天是这一年的第几天?参考程序如下:#include<stdio.h>main(){ intday,month,year,sum,leap; printf("请输入年月日:"); scanf("%d.%d.%d",&year,&month,&day); switch(month)/*先计算某月以前月份的总天数*/ { case1:sum=0;break; case2:sum=31;break; case3:sum=59;break; case4:sum=90;break; case5:sum=120;break; case6:sum=151;break; case7:sum=181;break; case8:sum=212;break; case9:sum=243;break; case10:sum=273;break; case11:sum=304;break; case12:sum=334;break; default:printf("dataerror");break; } sum=sum+day;/*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ leap=1; else leap=0; if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++; printf("Itisthe%dthday.\n",sum);}3.已知银行整存整取存款不同期限的月息利率分别为:月息利率期限0.315%一年0.330%二年0.345%三年0.375%五年0.420%八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。参考程序如下:#include<stdio.h>main(){ floata,b,m;intn; printf("输入本金和存期:"); scanf("%f,%d",&a,&n); switch(n) { case1:b=0.00315f;break; case2:b=0.0033f;break; case3: case4:b=0.00345f;break; case5: case6:case7:b=0.00375f;break; case8:b=0.0042f;break; default:printf("不在范围"); } m=a*(1+b)*12*n; printf("本金与利息合计为%f\n",m);}

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题6一、写出下列程序的运行结果。1.232.1233.*#*#*#$4.35.二、编写程序,并上机调试。1.求出100之内自然数中最大的能被31整除的数。参考程序如下:#include<stdio.h>voidmain(){ inti; for(i=100;i>0;i--) if(i%31==0)break; printf("%d\n",i);}2.编程求出从键盘上输入的不多于10个整型数的总和。如果不足10个数,则以0为结束。参考程序如下:#include<stdio.h>voidmain(){ inti,n,sum=0; for(i=1;i<=10;i++) { printf("Enter:"); scanf("%d",&n); if(n==0)break; sum=sum+n;}printf("sum=%d\n",sum);}3.求∑n!,即1!+2!+…+20!。参考程序如下:#include<stdio.h>main(){ intn,s=0,t=1; for(n=1;n<=20;n++){ t*=n; s+=t;} printf("s=%d\n",s);}4.求两个正整数m和n的最大公约数。提示:m存大数,当n不为0时,循环操作r=m%n;m=n;n=r;直到n为0时,m的值为所求的解。参考程序如下:#include<stdio.h>main(){intm,n,r;printf("输入两数:");scanf("%d%d",&m,&n);while(n!=0){r=m%n;m=n;n=r;}printf("最大公约数:%d\n",m);}5.若用0~9之间不同的3个数构成一个3位数,试编写程序统计出共有多少种方法。参考程序如下:#include<stdio.h>main(){inti,j,k,count=0;for(i=0;i<=9;i++) for(j=0;j<=9;j++) if(i==j)continue; else for(k=0;k<=9;k++) if(k!=i&&k!=j)count++; printf("%d",count);}6.百鸡百钱问题。用一百钱买一百只鸡,公鸡一只5钱,母鸡一只3钱,雏鸡3只1钱。问共有多少种买法。参考程序如下:#include<stdio.h>main(){inti,j,k;for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=3;k<=300;k+=3)if(i*5+j*3+k/3==100&&i+j+k==100) printf("公鸡:%d母鸡:%d雏鸡:%d\n",i,j,k);}7.编写程序,求1000至9999之间的回文数。回文数是指正读与反读都一样的数,如1221。参考程序如下:#include<stdio.h>main(){inti,a,b,c,d,n;for(i=1000;i<=9999;i++){a=i/1000;b=i/100%10;c=i/10%10;d=i%10;if(a==d&&b==c) { n=a*1000+b*100+c*10+d;printf("%5d",n); }}}

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题7一、写出下列程序的运行结果。1.123452.-404433.244.5.W*二、编写程序,并上机调试。1.编写程序将一个数组中的所有偶数存放于另一个数组中,并以每行10个数的格式输出原数组和存放偶数的数组元素值。参考程序如下:#include<stdio.h>main(){ inta[100],b[100]; inti,j=0,n; printf("Inputthelengthoftheoriginalarray:"); scanf("%d",&n); printf("Inputoriginalarray:"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) { if(!(a[i]%2)) { b[j]=a[i]; j++; } } printf("OriginalArray:\n"); for(i=0;i<n;i++) { printf("%d",a[i]); if(i%10==9) { putchar('\n'); } } printf("\nNewArray:\n"); for(i=0;i<j;i++) { printf("%d",b[i]); if(i%10==9) { putchar('\n'); } }}2.从键盘为一个3×3整型数组输入数据,并找出主对角线上元素的最大值及其所在的行号。参考程序如下:#include<stdio.h>#defineN3main(){ inta[N][N],i,j,max,maxi; for(i=0;i<N;i++)//键盘输入 for(j=0;j<N;j++) scanf("%d",&a[i][j]); max=a[0][0]; maxi=0; for(i=1;i<N;i++)//遍历判断 if(max<a[i][i]) { max=a[i][i]; maxi=i; } printf("最大值为%d,最大值行号为%d.\n",max,maxi);}3.打印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为816357492要求打印出由1~n2的自然数构成的魔方阵。参考程序如下:/*n为奇数的魔方阵*/#include<stdio.h>main(){ inta[16][16]; inti,j,k,p,n; /*初始化*/ p=1; while(p==1) { printf("请输入n.(0<n<=15,n是奇数)\n"); scanf("%d",&n); if((n!=0)&&(n<=15)&&(n%2!=0)) { printf("矩阵阶数是:%d\n",n); p=0; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=0; } /*建立魔方阵*/ j=n/2+1; a[1][j]=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; if((i<1)&&(j>n)) { i=i+2; j=j-1; } else { if(i<1)i=n; if(j>n)j=1; } if(a[i][j]==0) a[i][j]=k; else { i=i+2; j=j-1; a[i][j]=k; } } /*输出*/ for(i=1;i<=n;i++) { for(j=1;j<=n;j++) printf("%5d",a[i][j]); printf("\n"); }}4.设计一个程序统计某学校3门课(英语、数学、计算机)的考试成绩。要求能输入考生人数,并按编号从小到大的顺序依次输入考生的成绩,再统计出每门课程的全校总分、平均分以及每个考生课程的总分和平均分。参考程序如下:#include<stdio.h>main(){ floatscore[100][3]; inti,j,n; floatsum_r[100],sum_c[3]={0,0,0}; printf("输入考生人数:"); scanf("%d",&n); for(i=0;i<n;i++) { sum_r[i]=0; } for(i=0;i<n;i++) { printf("请输入第%d个学生英语、数学、计算机成绩:",i+1); for(j=0;j<3;j++) { scanf("%f",&score[i][j]); } } for(j=0;j<3;j++) { for(i=0;i<n;i++) sum_c[j]=sum_c[j]+score[i][j]; printf("课程%d总分%f平均分%f\n",j+1,sum_c[j],sum_c[j]/n); } for(i=0;i<n;i++) { for(j=0;j<3;j++) sum_r[i]=sum_r[i]+score[i][j]; printf("学号%d总分%f平均分%f\n",i+1,sum_r[i],sum_r[i]/3); }}5.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格及其他字符的个数。参考程序如下:#include<stdio.h>main(){ inti,j,upp,low,dig,spa,oth; chartext[3][80];upp=low=dig=spa=oth=0;for(i=0;i<3;i++) {printf("pleaseinputline%d:\n",i+1);gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){ if(text[i][j]>='A'&&text[i][j]<='Z') upp++; elseif(text[i][j]>='a'&&text[i][j]<='z')low++; elseif(text[i][j]>='0'&&text[i][j]<='9')dig++; elseif(text[i][j]=='') spa++; else oth++; } }printf("\nuppercase:%d\n",upp);printf("lowercase:%d\n",low);printf("digit:%d\n",dig);printf("space:%d\n",spa);printf("other:%d\n",oth);}

全国高等职业教育“十二五”规划教材C语言程序设计案例教程(ISBN978-7-121-29198-2)高玉玲王璇主编宋维君王书旺副主编上机训练题8一、写出下列程序的运行结果。1.82.163.74.g=4,g=3,d=65.x=6,y=11二、编写程序,并上机调试。1.编写程序,将十进制整数n转换为二进制数。参考程序如下:#include<stdio.h>inta[8];intmain(){ intn; voidbinary(intn); printf("pleaseinputthenumber:"); scanf("%d",&n); binary(n);}voidbinary(intn){ inti=0,j; while(n!=0) { if(n%2!=0)a[i]=1; elsea[i]=0;//除2取余运算 n=n/2; i++; } for(j=i;j>=0;j--) { printf("%d",a[j]); }}2.编一函数,计算并输出k以内最大的10个能被13或17整除的自然数之和。其中,k的值由主函数传入。参考程序如下:#include<stdio.h>intfun(intk){intm=0,mc=0;while((k>=2)&&(mc<10)){if((k%13==0)||(k%17==0)){m=m+k;mc++;} k--;}returnm;}main(){intn;scanf("%d",&n);printf("%d\n",fun(n));}3.给出年、月、日,编程计算该日是该年的第几天。参考程序如下:#include<stdio.h>intyear,month,day,team;intleap(inty){ intleapyear; if(y%4==0&&y%100!=0||y%400==0) leapyear=1; else leapyear=0; return(leapyear);}intmonthday(intm){intd; if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) d=31; if(m==4||m==6||m==9||m==11) d=30; if(m==2) { if(team==1)d=29; elsed=28; }returnd;}voidmain(){ ints,m; printf("Inputayear,month,day:"); scanf("%d,%d,%d",&year,&month,&day); team=leap(year); for(s=0,m=1;m<month;m++) s+=monthday(m); day+=s; printf("%d\n",day);}4.编写四则运算(加、减、乘、除)的训练程序,要求用函数完成。参考程序如下:#include<stdio.h>floatadd(floata,float

温馨提示

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

评论

0/150

提交评论