《《C语言程序设计》习题集课件》由会员分享,可在线阅读,更多相关《《C语言程序设计》习题集课件(72页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计习题集,编程题,电气11003 龚名才,第1、2、3、4、5、6、7、8、10章,1.2 编写一个C程序,输入整数a,b两个值,输出两个整数之差。,#include “stdio.h” int main() int a,b,t; printf(“Please input a,b:n”); scanf(“%d%d”, ,1.3 编写一个C程序,输入a,b,c三个值,输出其中最小者。,#include “stdio.h” int min_(int x,int y,int z) return xz?(yz?z:y):y); int main() int a,b,c; printf(“p
2、lease input a,b,c:n”); scanf(“%d%d%d”, ,2.1 依次将10个数输入,要求将其中最小的数打印出来,#include “stdio.h” int mian() int a10,min; int i,j,t; printf(“Please input ten num:n”); scanf(“%d”, ,for(j=0;jai+1) t=min; min=ai+1; ai+1=t; printf(“min=%dn,min”); return 0; ,2.2 求6!。,#include “stdio.h” int main() int i,s=1; for(i=1
3、;i=6;i+) s*=i; printf(“6!=%dn”,s); return 0; ,2.3 2010-2500中属于闰年的年份。,#include “stdio.h” int main() int year; for(year=2010;year=2500;year+) if(year%4=0 ,2.4 打印出1-500之间的素数。,#include “stdio.h” int main() int n,k,i,t; for(n=1;n=k+1) printf(“%3dn”); return 0; ,2.5 输出两个数m,n的最大公约数。,#include “stdio.h” int
4、main() int m,n,r,t; printf(“Please input n,m:n); scanf(“%d%d”, ,while(m!=0) r=n%m; n=m; m=r; printf(“最大公约数:%dn”,n); return 0; ,2.6 求1+2+3+100的和。,#include “stdio.h” int main() int i=1,sum=0; do sum+=i; i+; while(i=100); printf(“sum=%dn”,sum); return 0; ,3.1 要将“Glmre”进行解密,解密的规则是:用原来的字母前面第4个字母代替原来的字母,例
5、如:字母E前面的字母是A,用A代替E。因此“Glmre”应解密为“China”。请编一程序,用赋值的方法使c1,c2,c3,c4,c5五个变量的值分别为G、l、m、r、e经过运算,使c1,c2,c3,c4c5分别变成C、h、i、n、a,并输出。,#include “stdio.h” int main() char c1=G,c2=l,c3=m,c4=r,c5=e; c1-=4;c2-=4;c3-=4;c4-=4;c5-=4; printf(“%c%c%c%c%cn”,c1,c2,c3,c4,c5); return 0; ,4.1 设圆的半径r=2.5,圆柱高h=5,求圆周长、圆面积、圆球表面积
6、、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要有必要的文字说明,取小数点后两位数字。请编程实现。,#include “stdio.h” #define PI 3.14 int main() double r,h; printf(“Please input r,h:n”); scanf(“%f%f”, ,4.2 输入一个华氏温度,要求输出摄氏温度,公式为c=5/9(F-32),输出要有文字说明,取两位小数。,#include “stdio.h” int main() float c,f; printf(“Please input c:n”); scanf(“%f”, ,5.1
7、 利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。,#include “stdio.h” int main() int score; char c1=A,c2=B,c3=C; printf(“Please input score:n”); scanf(“%d”, ,5.2 编程输出九九口诀。,#include “stdio.h” int mian() int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(“%4d”,i*j); printf(“n”); return 0; ,5.3 编程
8、实现以下功能:读入两个操作数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可以是+、-、*、/(分别用if语句和switch语句加以实现)。,#include “stdio.h” int main() float data1,data2; char op; printf(“Please input data1,op,data2:n”); scanf(“%f%c%f”, ,5.4 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?(提示:使用循环控制更容易实现),#include “stdio.h” i
9、nt main() int n,i,j; for(n=1;n1000;n+) for(i=1;i100;i+) for(j=1;j100;j+) ,if(n+100=i*i ,5.5 企业发放的奖金根据利润提成,利润用i表示,奖金用P表示。 1.当利润低于或等于10万元时,奖金可提成10%; 2.当利润在10万到20万元之间时 ,高于10万元的部分,可提成7.5%; 3.当利润在20万到40万元之间时 ,高于20万元的部分,可提成5%,其他如前; 4.当利润在40万到60万元之间时 ,高于40万元的部分,可提成3%,其他如前; 5.当利润在60万到100万元之间时 ,高于100万元的部分,可提
10、成1.5%,其他如前; 6.当利润高于100万时 ,超出100万元的部分按1%提成,其他如前; 编程实现从键盘输入当月利润i,输出应发放的奖金P。,#include “stdio.h” int mian() int i; float p; printf(“Please input i:n”); scanf(“%d”, case 4: ,case 5:p=10*0.1+10*0.075+20*0.05+(i-40)*0.03;break; case 6: case 7: case 8: case 9:10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;bre
11、ak; default :p=9:10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015+40*0.015+(i-100)*0.01; printf(“P=%fn”,p); return 0; ,6.1 求最大公约数和最小公倍数。,参见8.1,6.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。,#include “stdio.h” int main() char c; int alpha=0,space=0,digit=0,other=0; while(c=getchar()!=n) if(c=a,printf(“alpha=%dn”,
12、alpha); printf(“digit=%dn”,digit); printf(“space=%dn”,space); printf(“other=%dn”,other); return 0; ,6.3 一个三位数,其各位数字立方和等于该数本身。,#include “stdio.h” #define f(x) (x)*(x)*(x) /必须加括号 int main() int n; for(n=100;n1000;n+) if(n=f(n/100)+f(n-n/100*100)/10)+f(n%10) printf(“n=%dn”,n); return 0; ,6.4 求1!+2!+3!+
13、4!+20!(提示:数据类型设置时防止溢出,应设置合适的数据类型),#include “stdio.h” long long int f(int n) if(n=1)return 1; else return n*f(n-1); int main() int n=20; long long int sum=0; for(n=1;n=20;n+) sum+=f(n); printf(“sum=%lldn”,sum); return 0; ,6.5 有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13求出这个数列的前20项。(提示:当分子分母均为整数时,如何正确得到分式的值?),#i
14、nclude “stdio.h” int main() int i=2,j=1; float sum=2.0; for(int k=0;k=20;k+) i=i=j;j=i-j;sum=sum+1.0*i/j; printf(“sum=%fn”,sum); return 0; ,6.6 把100-200之间的不能被3整除的数输出。,#include “stdio.h” void main() int n; for(n=100;n=200;n+) if(n%3=0) continue; printf(“%d ”,n); printf(“n”); ,6.7 任意输入一个正整数,要求判断该正整数是否
15、是另一个整数的平方。,#include “stdio.h” void main() int i=1,n; printf(“Please input n:n”); scanf(“%d”, do if(n=i*i), printf(“%d=%d*%dn”,n,i,i); break; i+; while(1); ,6.8 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。,#include “stdio.h” int main() float stu76,sum=0; int i,j; for(i=1;i=6;i+) printf(“Please input stu%d:n”,i); for(j=1;j=5;j+) scanf(“%f”, ,for(i=1;i=6;i+) for(j=1;j=5;j+) sum+=stuij; printf(“aver%d=%fn”,i,sum/5); sum=0; return 0; ,7.1 编程实现将20个无序的数编程由大到小的顺序排列。,#include “stdio.h” #define N 20 void sort(int a) int I,j,temp; for(i=0;iN;i+) for(j=0;jN-1;j+) if(ajaj+1) temp=aj;aj=aj