C语言02选择结构问题习题.pdf_第1页
C语言02选择结构问题习题.pdf_第2页
C语言02选择结构问题习题.pdf_第3页
C语言02选择结构问题习题.pdf_第4页
C语言02选择结构问题习题.pdf_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C语言-02选择结构问题习题答案: 输入a、b值,如果ab,那么交换a和b,使得ab #include void main() int a,b,t; scanf(%d%d, if(ab) t=a; a=b; b=t; printf(a=%d,b=%dn,a,b); 输入变量a、b和c,将它们按照从小到大的顺序排序后输出 #include void main() int a,b,c,t; scanf(%d%d%d, 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=%d,b=%d,c=%dn,a,b,c); 输入a、b值,输出其中较大的数 #include void main() int a,b,t; scanf(%d%d, if(ab) printf(max=%dn,a); else printf(max=%dn,b); 输入x,求函数 的值 #include void main() int x,y; scanf(%d, if(x=1 printf(y=%dn,y); 输入学生课程成绩mark,按照方法 给出评分等级 #include void main() int mark; char grade; scanf(%d, if(mark=90) grade=A; if(mark=80 if(mark60) grade=E; printf(grade=%cn,grade); 给定整数,判定该数能否同时被6、9和14整除 #include void main() int a; scanf(%d, if(a%6=9 else printf(non); 输入一个年号,判断该年号是否闰年。 #include void main() f int year; scanf(%d, if(year%4=0 else printf(non); 水仙花数是指一个三位整数,该数三个数位的立方和等于该数本身,输 入一个3位整数,判断该数是否水仙花数 #include void main() int m,a,b,c; scanf(%d, a=m/100;down) if(down=50) all=down*80+(up-down)*60; else all=down*90+(up-down)*60; else if(up=50) all=up*80+(down-up)*60; else all=up*90+(down-up)*60; printf(all=%dn,all); 经典C语言程序设计100例1-10 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三 位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所 有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() int i,j,k; printf(n); for(i=1;i5;i+) *以下为三重循环*/ for(j=1;j5;j+) for (k=1;k5;k+) if (i!=k 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时, 奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于 10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的 部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利 润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长 整型。 2.程序源代码: main() long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf(%ld, bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i=100000) bonus=i*0.1; else if(i=200000) bonus=bonus1+(i-100000)*0.075; else if(i=400000) bonus=bonus2+(i-200000)*0.05; else if(i=600000) bonus=bonus4+(i-400000)*0.03; else if(iy则将x与y的值进行交换, 然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最 小。 2.程序源代码: main() int x,y,z,t; scanf(%d%d%d, if (xy) t=x;x=y;y=t; /*交换x,y的值*/ if(xz) t=z;z=x;x=t;/*交换x,z的值*/ if(yz) t=y;y=z;z=t;/*交换z,y的值*/ printf(small to big: %d %d %dn,x,y,z); 【程序6】 题目:用*号输出字母C的图案。 1.程序分析:可先用*号在纸上写出字母C,再分行输出。 2.程序源代码: #include stdio.h main() printf(Hello C-world!n); printf( *n); printf( *n); printf( * n); printf( *n); 【程序7】 题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! 1.程序分析:字符共有256个。不同字符,图形不一样。 2.程序源代码: #include stdio.h main() char a=176,b=219; printf(%c%c%c%c%cn,b,a,a,a,b); printf(%c%c%c%c%cn,a,b,a,b,a); printf(%c%c%c%c%cn,a,a,b,a,a); printf(%c%c%c%c%cn,a,b,a,b,a); printf(%c%c%c%c%cn,b,a,a,a,b); 【程序8】 题目:输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2.程序源代码: #include stdio.h main() int i,j,result; printf(n); for (i=1;i10;i+) for(j=1;j10;j+) result=i*j; printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位 */ printf(n);/*每一行后换行*/ 【程序9】 题目:要求输出国际象棋棋盘。 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出 黑方格,还是白方格。 2.程序源代码: #include stdio.h main() int i,j; for(i=0;i8;i+) for(j=0;j8;j+) if(i+j)%2=0) printf(%c%c,219,219); else printf( ); printf(n); 【程序10】 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格 的个数。 2.程序源代码: #include stdio.h main() int i,j; printf(11n);/*输出两个笑脸*/ for(i=1;i11;i+) for(j=1;j=i;j+) printf(%c%c,219,219); printf(n); 输入10个数,并反序输出。 #include void main() int i,a10; for(i=0;i=0;i-) printf(%d ,ai); 输出Fibonacci数列:1、1、2、3、5、8、13、21、的前50项。 求一维数组中100个元素的最大值。 #include void main() double a50; int i; a0=1; a1=1; for(i=2;i50;i+) ai=ai-1+ai-2; for(i=0;i50;i+) printf(%.0f ,ai); 一维数组中查找满足条件(元素能被4整除)的所有元素及其个数。 #include void main() int a4,i; int num=0; for(i=0;i10;i+) scanf(%d, for(i=0;i10;i+) if(ai%4=0) printf(%dn,ai); num+; printf(num=%dn,num); 用起泡法为一维数组的n个元素按从小到大排序并输出。 #include #include #include void main( ) int i,a100,max; srand(unsigned)time(NULL); for(i=0;i100;i+) ai=rand()%100; for(i=0;i100;i+) printf(%d ,ai); max=a0; for(i=0;i100;i+) if(maxai) max=ai; printf(nmax=%dn,max); 二维数组输入数据,并按行列方式输出。 #include main() int a33; int i,j; for( i=0;i3;i+ ) for( j=0;j3;j+ ) scanf(%d, for( i=0;i3;i+ ) for( j=0;j3;j+ ) printf(%d ,aij);列号”的元素之和 #include main() int a33; int i,j; int sum=0; for( i=0;i3;i+ ) for( j=0;j3;j+ ) scanf(%d, for( i=0;i3;i+ ) for( j=0;j3;j+ ) printf(%d ,aij); printf(n); for( i=0;i3;i+ ) for( j=0;jj ) sum=sum+aij; printf(sum=%dn,sum); 杨辉三角形是如图7-27所示数列,求杨辉三角形的前10行 #include main() int a1010=0; int i,j; a00=1; for( i=1;i10;i+ ) ai0=1; for( j=1;j=i;j+ ) aij=ai-1j+ai-1j-1; for( i=0;i10;i+ ) for( j=0;j=i;j+ ) printf(%d ,aij); printf(n); 生成MM矩阵,将矩阵转置后输出 #include void main() int a33; int i,j,t; for( i=0;i3;i+ ) for( j=0;j3;j+ ) scanf(%d, printf(beforen); for( i=0;i3;i+ ) for( j=0;j3;j+ ) printf(%d ,aij); printf(n); for( i=0;i3;i+ ) for( j=i;j3;j+ ) t=aij; aij=aji; aji=t; printf(aftern); for( i=0;i3;i+ ) for( j=0;j3;j+ ) printf(%d ,aij);/P printf(n); 编写程序,生成有10个元素的一维数组,分别求和与平均值 #include #include #include void main( ) int a10; int i; int sum=0; float ave; srand(unsigned)time(NULL); for(i=0;i10;i+) ai=rand()%10; for(i=0;i10;i+) printf(%d ,ai); for(i=0;i10;i+) sum=sum+ai; ave=sum/10.0; printf(nsum=%d,ave=%fn,sum,ave); 编写程序,生成有10个元素的一维数组,求其中所有偶数的平均值。 #include #include #include void main( ) int a10; int i; int sum=0; float ave; srand(unsigned)time(NULL); for(i=0;i10;i+) ai=rand()%10; for(i=0;i10;i+) printf(%d ,ai); for(i=0;i10;i+) if( ai%2=0 ) sum=sum+ai; ave=sum/10.0; printf(nave=%fn,ave); 编写程序,生成有10个元素的一维数组,将一维数组反序并输出 #include #include #include void main( ) int a10; int i,t; srand(unsigned)time(NULL); for(i=0;i10;i+) ai=rand()%10; printf(beforen); for(i=0;i10;i+) printf(%d ,ai); for(i=0;i10/2;i+) t=ai; ai=a9-i; a9-i=t; printf(naftern); for(i=0;i10;i+) printf(%d ,ai); 编写程序,生成有100个整数元素的一维数组,统计其中奇数和偶数的个数 #include #include #include void main( ) int a100; int i; int odd=0,even=0; srand(unsigned)time(NULL); for(i=0;i100;i+) ai=rand()%10+1; for(i=0;i100;i+)/P printf(%d ,ai); for(i=0;i100;i+) if( ai%2=0 ) even+; else odd+; printf(neven=%d,odd=%dn,even,odd); 编写程序,将一维数组a的所有元素复制到一维数组b中 #include #include #include void main( ) int a10,b10; int i; int sum=0; float ave; srand(unsigned)time(NULL); for(i=0;i10;i+) ai=rand()%10; printf(A:); for(i=0;i10;i+) printf(%d ,ai); for(i=0;i10;i+) bi=ai; printf(nB:); for(i=0;i10;i+) printf(%d ,bi); 编写程序,将一维数组a的所有元素连接到一维数组b的后边 #include #include #include void main( ) int a3=1,2,3,b7=2,3,4,5; int i; printf(beforen); printf(A:); for(i=0;i3;i+) printf(%d ,ai); printf(nB:); for(i=0;i4;i+) printf(%d ,bi); for(i=0;i3;i+) b4+i=ai; printf(naftern); printf(B:); for(i=0;i7;i+) printf(%d ,bi); 有数列的定义 ,求其前20个元素并输出 #include void main() int f21,n; f1=1; f2=3; for(n=3;n=20;n+) fn=fn-1+2*n; for(n=1;n=20;n+) printf(%d ,fn); 编写程序,生成10行10列二维数组,求其中最大元素和最小元素 #include #include #include main() int a1010; int i,j; int max,min; srand(unsigned)time(NULL); for( i=0;i10;i+ ) for( j=0;j10;j+ ) aij=rand()%10; for( i=0;i10;i+ )/P for( j=0;j10;j+ ) printf(%d ,aij); printf(n); max=a00; min=a00; for( i=0;i10;i+ ) for( j=0;j10;j+ ) if( maxaij ) min=aij; printf(max=%dn,max); printf(min=%dn,

温馨提示

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

评论

0/150

提交评论