栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

系列一:(选择结构与循环结构)含答案解析 C语言经典编程题 期末复习笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

系列一:(选择结构与循环结构)含答案解析 C语言经典编程题 期末复习笔记

清华大学出版社 C语言程序设计教程内容

如果对您有帮助,别忘了关注博主~

包含内容:选择结构,循环结构,数组,函数,结构体,共用体


目录

清华大学出版社 C语言程序设计教程内容

一、选择结构与循环结构

1.输入长方形的长、宽,求其面积。

         2.从键盘输入一个字符,如果是小写字母将其转换成大写字母输出,其他字符原样输出。

3.从键盘上输入三个整数,输出平均值。

4.输入三个整数,输出其中的最大数。

5.有分段函数,请编程实现(假设x为整型数据)

6.编写程序,从键盘输入三个数,计算以这三个数为边长的三角形的面积。

7.输入一学生成绩,输出其所在等级。

8.输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。

9.某个电力公司对其用户的收费规定如下,编写程序,对于一个输入的用电数量,计算用户的缴费额。(if...else...if语句实现)

10.计算某年某月有几天(注意要区分闰年)

11.编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。

12.数据处理。

13.求n的阶乘(n!)。

14.求5!

15.求1+1/2+1/3+1/4+……+1/n

16.求1-1/2+1/3-1/4+……1/n

17.求1-1/3+1/5-1/7+……1/n

18.求X^n。

19.输入一个正整数n,再输入n个数,输出最大值

20.从键盘上输入m,判断m是否为素数。

21.输出九九乘法表。

22.输出100~200之间所有素数。

23.若口袋里放12个球,3个红球,3个白球,6个黑球,从中任取8个,编写程序列出所有可能的取法。

24.已知鸡兔若干只,共有98个头,386只脚,请问鸡兔各多少只?

25.我国古代数学家张丘建在《算经》一书中提出的数学问题: 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

26.我国古代数学家张丘建在《算经》一书中提出的数学问题: 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

27.编写指定程序,输出下列图形

二、总结


一、选择结构与循环结构

1.输入长方形的长、宽,求其面积。
#include

int main()
{
	int a,b,s;
	scanf("%d",&a);
	scanf("%d",&b);
	s=a*b; 
	printf("S=%d",s);
	return 0;
 } 


2.从键盘输入一个字符,如果是小写字母将其转换成大写字母输出,其他字符原样输出。
#include 
main()
{
	char ch;
	ch=getchar();
	if(ch>='a'&&ch<='z') 
		ch=ch-32;
	putchar(ch);
	return 0;
}

3.从键盘上输入三个整数,输出平均值。
#include

int main()
{
	int a,b,c,sum=0;
	scanf("%d",&a);
	scanf("%d",&b);
	scanf("%d",&c);
	sum=a+b+c; 
	printf("%dn",sum/3);
	return 0;
 } 


4.输入三个整数,输出其中的最大数。
//实现方法一:if 实现
#include 
int main()
{
	int a,b,c,max;
	scanf("%d%d%d",&a,&b,&c);
	max=a;
	if(max 
//实现方式二:if else if 实现
#include 
main()
{
	int x,y;
	scanf("%d",&x);
	if(x<1)y=x+1;
	else if(x<2)y=x+2;
	else if(x<3)y=x+3;
	else y=y+4;
	printf("x=%d,y=%dn",x,y);
	return 0;
}
//实现方法三:if-else实现
#include 
main()
{
	int x,y;
	scanf("%d",&x);
	if(x<2)
	{
		if(x<1)y=x+1;
		else y=x+2;	
	}
	else
	{
		if(x<3)y=x+3;
		else y=x+4;	
	}
	printf("x=%d,y=%dn",x,y);
	return 0;
}

5.有分段函数,请编程实现(假设x为整型数据)

//if-else实现
#include 
main()
{
	int x,y;
	scanf("%d",&x);
	if(x<2)
	{
		if(x<1)y=x+1;
		else y=x+2;	
	}
	else
	{
		if(x<3)y=x+3;
		else y=x+4;	
	}
	printf("x=%d,y=%dn",x,y);
	return 0;
}
//if else if 实现
#include 
main()
{
	int x,y;
	scanf("%d",&x);
	if(x<1)y=x+1;
	else if(x<2)y=x+2;
	else if(x<3)y=x+3;
	else y=y+4;
	printf("x=%d,y=%dn",x,y);
	return 0;
}

6.编写程序,从键盘输入三个数,计算以这三个数为边长的三角形的面积。
#include 
#include
main()
{
	float a,b,c,l,s; 
	scanf("%f%f%f",&a,&b,&c);
	if(a+b>c&&a+c>b&&b+c>a)
	{

		l=(a+b+c)/2;
		s=sqrt(l*(l-a)*(l-b)*(l-c));
	}

	printf("%.2f",s);	
}

7.输入一学生成绩,输出其所在等级。

          A:90~100、 B:80~89、C:70~79、

          D:60~69、E:0~59

#include 
main()
{
	int sc;
	scanf("%d",&sc);
	if(sc>=0&&sc<=100)
	{

		switch(sc/10)
		{
			case 10:
			case 9:
				printf("An");break;
			case 8:
				printf("Bn");break;
			case 7:
				printf("Cn");break;
			case 6:
				printf("Dn");break;
			default:
				printf("En");break;
		}
	}
	else printf("error!n");
	return 0;
}

8.输入一个职工的月薪salary,输出应交的个人所得税tax(保留2位小数)。

#include 
#include 
int main()
{  
    double salary,rate,tax;
    scanf("%lf",&salary);
    if(salary<=850)rate=0;
    else if(salary<=1350)rate=0.05;
    else if(salary<=2850)rate=0.10;
    else if(salary<=5850)rate=0.15;
    else rate=0.20;
    tax = rate * (salary - 850);
    printf("tax=%.2fn",tax);
	return 0;
}

9.某个电力公司对其用户的收费规定如下,编写程序,对于一个输入的用电数量,计算用户的缴费额。(if...else...if语句实现)

#include 
#include 
int main()
{  
    int x;
    float m;
    scanf("%d",&x);
    if(x>=0)
    {
	    if(x<=200)m=x*0.5;
	    else if(x<=400)m=100+(x-200)*0.65;
	    else if(x<=600)m=230+(x-400)*0.8;
	    else m=390+(x-600)*1.0;
	    printf("m=%.2fn",m);
	}
	else printf("error!n");
	return 0;
}

10.计算某年某月有几天(注意要区分闰年)
#include 
#include 
int main()
{  
    int yy,mm,dd;
    scanf("%d%d",&yy,&mm);
    if(mm>=1&&mm<=12)
    {

	    switch(mm)
	    {
	    	case 1:case 3:case 5:case 7:
	    	case 8:case 10:case 12:
	    		dd=31;break;
	    	case 4:case 6:case 9:case 11:
	    		dd=30;break;
	    	case 2:
	    		if((yy%4==0&&yy%100!=0)||(yy%400==0))
	    			dd=29;
	    		else dd=28;
	    		break;
		}
	    printf("dd=%dn",dd);
	}
	return 0;
}

11.编写一个程序模拟袖珍计算器的加、减、乘、除四则运算。

#include 
#include 
int main()
{  
    float a,b;
    char op;
    scanf("%f%c%f",&a,&op,&b);
    switch(op)
    {
    	case '+':printf("%f+%f=%.2fn",a,b,a+b);break;
    	case '-':printf("%f-%f=%.2fn",a,b,a-b);break;
    	case '*':printf("%f*%f=%.2fn",a,b,a*b);break;
    	case '/':printf("%f/%f=%.2fn",a,b,a/b);break;
	}
	return 0;
}

12.数据处理。

①输入两个正整数m和n,求其最大公约数。

②从键盘上输入一个正整数,将其逆序输出。

//求最大公约数
#include 
#include 
int main()
{  
    int m,n,r,t;
    scanf("%d%d",&m,&n);
    if(m 
//逆序输出
#include
int main()
{
	int a,b;
	scanf("%d",&a);
	while(a!=0)
	{
		b=a%10;
		a=a/10;
		printf("%d",b);
	}
}

13.求n的阶乘(n!)。
#include
int main()
{
	int a,b=1,c;
	scanf("%d",&a);
	c=a;
	for(a=a;a>0;a--)
	{
		b=b*a;
	}
	printf("%d!=%dn",c,b);
}

14.求5!
#include 
#include 
int main()
{  
    int i,f=1;
    for(i=1;i<=5;i++)
    	f=f*i;
    printf("5!=%dn",f);
	return 0;
}

15.求1+1/2+1/3+1/4+……+1/n
#include 
#include 
int main()
{  
   int i,n;
   float s=0;
   scanf("%d",&n); 
   for(i=1;i<=n;i++)
   		s=s+1.0/i;
	printf("s=%.2fn",s);
	return 0;
}

16.求1-1/2+1/3-1/4+……1/n
#include 
#include 
int main()
{  
   int i,n,flag=1;
   float s=0;
   scanf("%d",&n); 
   for(i=1;i<=n;i++)
   {

   		s=s+flag*1.0/i;
   		flag=-flag;
   	}
	printf("s=%.2fn",s);
	return 0;
}

17.求1-1/3+1/5-1/7+……1/n
//方法一:for循环
#include 
#include 
int main()
{  
   int i,n,flag=1,t=1;
   float s=0;
   scanf("%d",&n); //n=5
   for(i=1;i<=n;i++)
   {

   		s=s+flag*1.0/t;
   		t=t+2;
   		flag=-flag;
   	}
	printf("s=%.2fn",s);
	return 0;
}
//方法二:while循环
#include 
#include 
int main()
{  
   int flag=1,t=1;
   float s=0;

   while(fabs(flag*1.0/t)>=1e-5)
   {

   		s=s+flag*1.0/t;
   		t=t+2;
   		flag=-flag;
   	}
	printf("s=%.2fn",s);
	return 0;
}

18.求X^n。
#include 
#include 
int main()
{  
   int i,n;
   double x,y=1;
   scanf("%lf%d",&x,&n);
   for(i=1;i<=n;i++)
   		y=y*x;
   printf("%fn",y);
	return 0;
}

19.输入一个正整数n,再输入n个数,输出最大值
#include 
#include 
int main()
{  
    int i,n,max,x; 
    scanf("%d",&n);
    scanf("%d",&x);
    max=x;
    for(i=1;i 

20.从键盘上输入m,判断m是否为素数。
#include 
#include 
int main()
{  
    int i,m;
    scanf("%d",&m);//m=6
    for(i=2;i=m)printf("yesn");
    else printf("non");
	return 0;
}

21.输出九九乘法表。

样式一:

#include 
#include
main()
{
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=9;j++)
			printf("%4d",i*j);
		printf("n");
	}
	return 0;
}

样式二:

#include 
#include
main()
{
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
			printf("%4d",i*j);
		printf("n");
	}
	return 0;
}

样式三:

#include 
#include
main()
{
	int i,j;
	for(i=1;i<=9;i++)
	{
		for(j=i;j<=9;j++)
			printf("%d*%d=%4d ",i,j,i*j);
		printf("n");
	}
	return 0;
}

22.输出100~200之间所有素数。
#include 
#include 
int main()
{  
    int i,m;
    for(m=100;m<=200;m++)
    {

	    for(i=2;i=m)printf("%5d",m);

	}
	return 0;
}

23.若口袋里放12个球,3个红球,3个白球,6个黑球,从中任取8个,编写程序列出所有可能的取法。
#include 
#include 
int main()
{  
    int r,w,b;
    for(r=0;r<=3;r++)
    {
    	for(w=0;w<=3;w++)
    	{
    		for(b=0;b<=6;b++)
    			if(r+w+b==8)printf("r=%d,w=%d,b=%dn",r,w,b);
		}
	}
	return 0;
}

24.已知鸡兔若干只,共有98个头,386只脚,请问鸡兔各多少只?

//二重循环解决
#include 
#include 
int main()
{  
   	int x,y;
   	for(x=1;x<98;x++)
   		for(y=1;y<98;y++)
   			if(x+y==98&&2*x+4*y==386)printf("x=%d,y=%dn",x,y);

	return 0;
}
//一重循环解决
#include 
#include 
int main()
{  
   	int x,y;
   	for(x=1;x<98;x++)
	{   

   		y=98-x;
   		if(2*x+4*y==386)printf("x=%d,y=%dn",x,y);
	}
	return 0;
}

25.我国古代数学家张丘建在《算经》一书中提出的数学问题: 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
#include 
int main()
{  
   	int x,y,z;
   	for(x=0;x<=100;x++)
   		for(y=0;y<=100;y++)
   		{
   			z=100-x-y;
   			if(5*x+3*y+z*1/3==100)printf("x=%d,y=%d,z=%dn",x,y,z);
		}
	return 0;
}

26.我国古代数学家张丘建在《算经》一书中提出的数学问题: 鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。 百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
#include 
int main()
{  
   	int x,y,z;
   	for(x=0;x<=100;x++)
   		for(y=0;y<=100;y++)
   		{
   			z=100-x-y;
   			if(5*x+3*y+z*1/3.0==100)printf("x=%d,y=%d,z=%dn",x,y,z);
		}
	return 0;
}

27.编写指定程序,输出下列图形

#include 
int main()
{  
   	int i,j;
   	char ch;
   	for(i=0;i<14;i++)
   	{
   		for(j=0;j 

二、总结

如果对您有帮助,别忘了关注博主~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/926287.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号