锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

C语言程序设计·头歌实训合集

时间:2022-08-20 01:00:01 对插式针型连接器公连接器类型1500vc重量变送器102变送器

C语言程序设计培训

C设计、编辑和调试环境

任何先进的语言源程序都必须翻译成机器语言才能在机器上运行。翻译有两种方法:一种是解释,即执行源程序;另一种是编译方法,即通过编译系统将源程序翻译为目标程序(由机器代码组成的程序),然后连接组装生成可执行文件,最终执行可执行文件。
C语言是一种编译的程序设计语言,通过编译将源程序翻译成目标程序(机器代码)。运行C程序,从输入源程序开始编辑源程序文件(.c或.cpp)、目标文件的编译和生成(.obj)、连接生成可执行文件(.exe)和执行4步。

第一关:打印输出 Hello World

任务描述
本关任务:通过操作C语言程序,您可以初步了解程序的操作方法。
相关知识(略)
编程要求
请补充Begin-End使用之间的代码printf()在屏幕上输出 Hello World 。
测试说明
平台将测试您编写的代码,如果与预期输出相同,则计算通关。
视频
输入:无
输出:Hello World
开始你的任务,祝你成功!

#include  int main(void)  { 
            /********* Begin *********/   printf("Hello World\n");    /********* End *********/        return 0;  }   

二、打印输出图形

任务描述
本关任务:参照上述调试程序,编制一个能够输出规定图形的程序。

相关知识(略)
编程要求
编写C程序,输出以下图案,并通过计算机调试。第一行开头有4个空格,第二行开头有3个空格,第三行有2个空格,第四行开头有空格,第五行开头没有空格,9个空格*。


OK
Hello!


测试说明
平台将测试您编写的代码,如果与预期输出相同,则计算通关。
输入:无
输出:


OK
Hello!


提示
通过执行多个主题printf每行函数输出,暂时不考虑使用循环。
开始你的任务,祝你成功!

#include  int main(void)  { 
             /********* Begin *********/   printf(" *\n");   printf(" ***\n");   printf(" OK\n");   printf(" Hello!\n");   printf("*********\n");    /********* End *********/        return 0;  }   

第三关:3个数的最大值

任务描述
本关任务:编写一个程序,输入a、b、c三个整数,输出最大值。
相关知识
输入
分别输入一行数据a b c。
输出
a b c最大的数字,不需要换行。
如何找到最大值
多少个数的最大值?
比较三个数,将大数存入最大值变量max;
编程要求
根据提示,编辑器在右侧Begin-End补充代码,计算并输出三个数的最大值。
测试说明
我将测试您编写的代码:
测试输入:10,30,20
预期输出:max=30

测试输入:15、78、85
预期输出:max=85
开始你的任务,祝你成功!

#include int main(void) { 
          /********* Begin *********/ int a,b,c,z; scanf("%d,%d,%d",&a,&b,&c); z=a; if(b>a) z=b; if(c>b) z=c; printf("max=%d",z); /********* End *********/ return 0; } 

第4关:熟悉C语言调试过程

任务描述
本关任务:以下程序源代码有错误,请使用C语言的调试功能,检查程序的错误并更正,使之能正确运行。
程序源代码:
#include
int main(void)
{int x;
int y=2,z=3;
scanf(“%d”,&x);
if(x=y+z);
printf("“);
else
printf(”#####" );
return 0;
}
相关知识(略)
编程要求
程序中要求
键盘输入x的值,当x的值为5时输出,否则输出#####。
输入:整数x的值。
输出:当x的值为5时输出*****,否则输出#####。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
输入:5
输出:*****
开始你的任务吧,祝你成功!

#include
int main(void)
  { 
        
	  /********* Begin *********/
      int  x;
      int y=2,z=3;
      scanf("%d",&x); 
      if(x==y+z)
          printf("*****");
      else  
          printf("#####" );
      return 0;
	  /********* End *********/
  }

顺序结构程序设计

顺序结构是最简单的一种程序结构,其它的结构可以包含顺序结构也可以作为顺序结构的组成部分,可见顺序结构无处不在,他是构成其他程序结构的基础。
C程序是由若干源程序构成的。而在大多数情况下,一个C程序只是由一个源程序构成。一个源程序中又包含编译预处理命令(预编译命令)、全局变量的定义命令和各个用户函数组成。而各函数又由说明部分和执行部分组成。说明部分主要是定义本函数中要用到的变量,执行部分是由语句组成的。

第1关:加法运算

任务描述
本关任务:写一个加法程序,输入整数a,b,输出他们的和。
相关知识(略)
编程要求
请补充Begin-End之间的代码,写一个加法程序,输入整数a,b,输出他们的和。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
输入格式:scanf(“%d,%d”,&a,&b);
输出格式:printf(“%d+%d=%d\n”,a,b,c);
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:3,4
样例输出:3+4=7
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  int a,b,c; 
      //Please input a,b:
	  /*********Begin*********/
	  
	  scanf("%d,%d",&a,&b);
	  c=a+b;
	  printf("%d+%d=%d\n",a,b,c);
		  
	  
	  /*********End**********/ 
       return 0;
	}

第2关:不使用第3个变量,实现两个数的对调

任务描述
本关任务:下列程序是不用第三个变量,实现将两个数进行对调的操作。
程序代码如下:
1 #include
2 int main(void)
3 {
4 int a,b;printf(“Enter a and b:”);
5 scanf(“%d%d”,&a,&b);
6 printf(“a=%d b=%d\n”,a,b);
7 a= ① ;b= ② ;a= ③ ;
8 printf(“a=%d b=%d\n”,a,b);
9 return 0;
10 }
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,并按照要求完成本关任务。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
输入:3 4
输出:
a=3 b=4
a=4 b=3

输入:7 85
输出:
a=7 b=85
a=85 b=7
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  int a,b;
	  //Enter a and b:
      scanf("%d%d",&a,&b); 
      printf("a=%d b=%d\n",a,b);
	  /*********Begin*********/
	  a=
	  
	  /*********End**********/
	  printf("a=%d b=%d\n",b,a);  
       return 0;
	}

第3关:用宏定义常量

任务描述
本关任务:已知某物品单价为30,数量为x。求商品的总价钱。用宏定义物品的单价。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,用宏定义物品的单价。
输入:一个整数x,代表物品的数量。
输出:输出总价格。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
5
样例输出:
150
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	  int a,b;
	  scanf("%d",&a);
	  b=30*a;
	  printf("%d\n",b);

	  
	  /*********End**********/ 
       return 0;
	}

第4关:数字分离

任务描述
输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。
输入:一个三位数
输出:输出该数字的百位,十位,个位,数字之间用一个空格隔开。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
123
样例输出:
1 2 3
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	  int a,ge,shi,bai;
	  scanf("%d",&a);
	  ge=a%10;
	  shi=(a/10)%10;
	  bai=a/100;
	  printf("%d %d %d",bai,shi,ge);
	  
	  /*********End**********/ 
       return 0;
	}

第5关:计算总成绩和平均成绩

任务描述
本关任务:编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。
相关知识(略)
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。
输入:五个整数
输出:总成绩和平均成绩,其中平均成绩保留小数点后两位。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
60 70 80 90 100
样例输出
400 80.00
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	int a, b, c, d, e, sum;
	float aver;
	scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
	sum = a + b + c + d + e;
	aver = sum / (5.0);
	printf("%d %.2f", sum, aver);
	  
	  /*********End**********/ 
       return 0;
	}

第6关:求三角形的面积

任务描述
本关任务:编程求以a、b、c为边长的三角形的面积area。
相关知识
三角形面积计算公式为:
假设三角形三条边长分别为a、b、c,其中s=(a+b+c)/2,则面积:
在这里插入图片描述
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程求以a、b、c为边长的三角形的面积area。
输入:a b c三角形的三条边,可以是小数;
输出:三角形面积,保留3位小数。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
3 4 5
样例输出:
6.000
开始你的任务吧,祝你成功!

#include
#include 
	int main(void)
	{ 
          
	  /*********Begin*********/
	  
	  

	double a, b, c;
	double s;
	double area;
	scanf("%lf %lf %lf", &a, &b, &c);
	s = (a + b + c) / 2;
	area = sqrt(s * (s - a) * (s - b) * (s - c));
	printf("%.3lf", area);
	  /*********End**********/ 
       return 0;
	}

第7关:立体几何计算题

任务描述
本关任务:设圆半径r,圆柱高h , 求圆周长C1,半径为r的圆球表面积Sb,圆半径r,圆柱高为h的圆柱体积Vb。 用scanf输入数据,输出计算结果,输出时取小数点后两位数字。请编程序。 PI=3.14
编程要求
输入:两个double型浮点数,r和h;
输出:圆周长C1、圆球表面积Sb、圆柱体积Vb。 保留两位小数,每个结果后换行。
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
1.5,3
样例输出:
C1=9.42
Sb=28.26
Vb=21.20
提示
圆球表面积计算公式为s=4πr × r ,r为球的半径。
圆柱体体积计算公式为:V=πr ×r×h,r为半径,h为高。
开始你的任务吧,祝你成功!

#include
#define PI 3.14

	int main(void)
	{ 
          
	  /*********Begin*********/
	double r, h;
	double C1, Sb, Vb;
	scanf("%lf,%lf", &r, &h);
	C1 = PI * 2 * r;
	Sb = 4 * PI * r * r;
	Vb = PI * r * r * h;
	printf("C1=%.2lf\nSb=%.2lf\nVb=%.2lf\n", C1,Sb, Vb);
	  
	  /*********End**********/ 
       return 0;
	}

第8关:计算两个正整数的最大公约数

任务描述
编程计算两个正整数的最大公约数。其中求最大公约数的函数原型已经给出,请在主函数中编程调用函数,输出最大公约数。
程序的运行示例:
12,3↙
3
####函数原型说明
求最大公约数的函数原型如下:
int MaxCommonFactor( int a, int b);
返回值:返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1。
参数:a,b是两个整型数
相关知识
本任务主要考察函数的调用方法。
####编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程计算两个正整数的最大公约数。
输入:输入格式:“%d,%d”
输出:输出格式:“%d\n”
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
467,465
样例输出:
1
开始你的任务吧,祝你成功!

#include
int MaxCommonFactor( int a, int b)
{ 
         
   int c; 
   if(a<=0||b<=0) 
      return -1; 
   while(b!=0)
   { 
         
     c=a%b; 
     a=b;
     b=c;
   } 
  return a; 
}   
int main(void)
	{ 
          
	  /*********Begin*********/
	  int a,b;
    scanf("%d,%d",&a,&b);
    printf("%d",MaxCommonFactor(a,b));
	  
	  /*********End**********/ 
    return 0;
}

选择结构程序设计

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择(分支)结构。
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序,适合带有逻辑或关系比较等条件判断的计算。编程之前,需要先分析程序中所处理的数据、构造合适的分支条件以及程序流程,再将程序流程用程序流程图绘制出来,最后根据程序流程写出源程序。这样可以把程序的分析、算法流程与程序实现分开,使得问题简单化,易于理解。

第1关:排序

任务描述
本关任务:下面的程序是从键盘输入三个整数按从小到大的顺序输出。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
相关知识
输入格式
输入格式如下:
printf(“请输入三个整数:”);
scanf(“%d%d%d”,&a,&b,&c);
输出
排序输出从小到大的三个整数。
输出格式如下:
printf(“从小到大排列为:%d,%d,%d”,a,b,c);
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写排序的小程序。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
请输入三个整数:5 7 6

样例输出:
从小到大排列为:5,6,7
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	  int a,b,c,d;
	  printf("请输入三个整数:");
	  scanf("%d %d %d",&a,&b,&c);
	  if(a>b)
	  { 
        
		  d=a;
		  a=b;
		  b=d;
	  }
	  if(a>c)
	  { 
        
		  d=a;
		  a=c;
		  c=d;
	  }
	  if(b>c)
	  { 
        
		  d=b;
		  b=c;
		  c=d;
	  }
	  printf("从小到大排列为:%d,%d,%d",a,b,c);
	  /*********End**********/ 
       return 0;
	}

第2关:选择结构-闰年判断

任务描述
编写程序,完成如下功能:从键盘输入任意年份year,判别该年份是否闰年。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
相关知识
输入
从键盘任意输入一个年份 。
输出
根据是否闰年进行输出,是输出"****是闰年!",否输出"不是闰年!",其中为当前输入的年份。
样例输入
2000

样例输出
2000 是闰年!
开始你的任务吧,祝你成功!
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写选择结构-闰年判断的小程序。

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	  int year;
	  
	  scanf("%d",&year);
	  if((year % 4 == 0 &&year % 100 != 0)|| year % 400 ==0)
	  	printf("%d 是闰年!\n",year);
	  else
	  	printf("%d 不是闰年!",year);

	  /*********End**********/ 
       return 0;
	}

第3关:选择结构-分段函数问题

任务描述
本关任务:编写程序,根据输入的值,输出函数的值。
有一个函数,定义如下

写一段程序,输入x,输出y。
相关知识
输入
从键盘任意输入一个数x
输出
一个数y,保留小数点后三位。
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写选择结构-分段函数问题的小程序。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
14
样例输出:
181.000
开始你的任务吧,祝你成功!

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	  double x,y;
	  scanf("%lf",&x);
	  if(x<0&&x!=-3)
	  y=x*x+x-6;
	  else if(x>=0&&x<10&&x!=2&&x!=3)
	  y=x*x-5*x+6;
	  else
	  y=x*x-x-1;
	  printf("%.3lf",y);
	  
	  /*********End**********/ 
       return 0;
	}

第4关:学生成绩等级换算

任务描述
本关任务:给出一百分制成绩,要求输出成绩等级A、B、C、D、E。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E,如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
相关知识
输入
从键盘输入一个成绩,成绩可以使浮点数。
输出
(1)如果输入数据在0到100范围内:一个字符,表示成绩等级。
(2)如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写学生成绩等级换算的小程序。
测试说明
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
样例输入:
90
样例输出:
A

#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	  float result;
	  int x;
	  scanf("%f",&result);
	  if(result>=0&&result<=100)
	  { 
        
		  x=result/10;
		  switch(x)
		  { 
        
			  case 10:
			  case 9:;printf("A");break;
			  case 8:printf("B");break;
			  case 7:printf("C");break;
			  case 6:printf("D");break;
			  default:printf("E");
		  }
	  }
	  else
	  printf("Score is error!");
	  
	  /*********End**********/ 
       return 0;
	}

选择结构程序设计进阶

第1关:快递费用计算

任务描述
本关任务:编写一个计算机快递费的程序。
上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域:

快递费按邮件重量计算,由起重费用、续重费用两部分构成:
(1) 起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费;
(2) 同城起重资费10元,续重3元/公斤;
(3) 寄往1区(江浙两省)的邮件,起重资费10元,续重4元;
(4) 寄往其他地区的邮件,起重资费统一为15元。而续重部分,不同区域价格不同:2区的续重5元/公斤,3区的续重6.5元/公斤,4区的续重10元/公斤。
相关知识(略)
编程要求
编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留2位小数。
提示
续重部分不足一公斤,按1公斤计算。因此,如包裹重量2.3公斤:1公斤算起重,剩余的1.3公斤算续重,不足1公斤按1公斤计算,1.3公斤折合续重为2公斤。如果重量应大于0、区域编号不能超出0-4的范围。
输入
用逗号分隔的两个数字,第一个表示区域、第二个是重量:“%d,%f”
输出
价格的输出格式:“Price: %.2f\n”
区域错误的提示信息:“Error in Area\n”
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
测试说明
样例输入:
4,4.5
样例输出:
Price: 55.00
程序运行结果示例1:
输入:4,4.5
输出:Price: 55.00
程序运行结果示例2:
输入:5,3.2
输出:
Error in Area
Price: 0.00

#include
#include
	int main(void)
	{ 
          
	  /*********Begin*********/
	    int area = 0;
  		float weight,startweight,extraweight,price = 0;
  		int areastartmoney[5] = { 
        10,10,15,15,15}; 
  		float areaextramoney[5] = { 
        3,4,5,6.5,10};
  		scanf("%d,%f",&area,&weight);
  		if(area<0 || area>4)
		  { 
        
    		printf("Error in Area\n");
    		price = 0;
  			}
  		else if(weight < 0)
		  { 
        
    		printf("Error in Weight!\n");
    		price = 0;
  			}
  		else
		  { 
        
    		startweight = 1;
    		extraweight = ceil(weight - 1);
    		price = areastartmoney[area] + extraweight * areaextramoney[area];
  			}
  		printf("Price: %.2f\n",price);
	  /*********End**********/ 
       return 0;
	}

第2关:计算一元二次方程的根

任务描述
本关任务:根据下面给出的求根公式,计算并输出一元二次方程ax2+bx+c=0的两个实根,要求精确到小数点后4位。其中a,b,c的值由

相关文章