头歌:《C语言程序设计编程实践任务》 教学团队:祁文青

该文详细介绍了C语言编程的基础实践,包括输出“HelloWorld!”、计算两数之和、格式化输入输出、处理一元二次方程、输入四位数的逆序输出以及计算三角形面积和银行存款的本利之和等任务,旨在提升初学者的编程技能。
摘要由CSDN通过智能技术生成

头歌:《C语言程序设计编程实践任务》 教学团队:祁文青

顺序结构程序设计

学习-输出 “Hello World!“

 #include <stdio.h>
    int main()
    {
        printf("Hello World!\n");
        return 0;
    }

学习-计算两数之和

第一关

任务:根据提示,在右侧编辑器 Begin-End 区间补充代码,计算 123 与 456 的和。

#include <stdio.h>
int main()
{
	/********** Begin **********/
    int a,b,sum;
    a=123,b=456;
    sum=a+b;
    printf("sum=%d\n",sum);
    
    /********** End **********/
	return 0;
}
第二关

任务:变量的输入和输出

#include <stdio.h>
int main()
{
	/********** Begin **********/
    int a,b,sum;
    sum=0;
    scanf("%d %d",&a,&b);
    printf("sum=%d",sum=a+b);
    
    /********** End **********/
	 return 0;
}
第三关

任务:根据提示,在右侧编辑器 Begin-End 区间补充代码,后台输入两个实型数据,然后将它们的和差积商输出。

预期输出:image-20230104192432116

#include <stdio.h>
int main()
{
	/********** Begin **********/
    float #a,b;
    scanf("%f %f",&a,&b);
    printf("两数之和为:%0.6f\n",a+b);
    printf("两数之差为:%0.6f\n",a-b);
    printf("两数之积为:%0.6f\n",a*b);
    printf("两数之商为:%0.6f",a/b);
    
    /********** End **********/
}

初识格式化输入

第一关

任务:在右侧编辑器中的 Begin-End 之间补充代码 。根据控制台输入的半径计算一个圆的面积。 π 已定义为符号常量 PI 。 格式要求: 输入的半径要求为整数,输出的面积要求6位精度并且在数值前添加“半径x的圆面积为:”, 其中 x 是输入的半径数值。

/*请在此处添加代码,计算圆的面积*/
#include<stdio.h>
#define PI 3.1415926     /* 定义圆周率常量  */
main(){
/********** Begin **********/
int x;
float s;
scanf("%d",&x);
printf("半径%d的圆面积为:%0.6f",x,s=PI*x*x);

/********** End **********/
}

第二关

任务:计算一个由长方形和半圆扇形组成的图形面积,格式要求 : 长方形的长和宽均为单精度浮点数 , 其值由控制台输入 ( 先输入长后输入宽 ),输入的两变量间以空格间隔。输出的面积数值要求2位精度并且在数值前添加“组合图形的面积为:”。

/*请在此处添加代码,计算组合图形的面积*/
#include<stdio.h>
#define PI 3.1415926     /* 定义圆周率常量  */
main(){
/********** Begin **********/
float a,b;
scanf("%f %f",&a,&b);
printf("组合图形的面积为:%0.2f",a*b+PI/2*b/2*b/2);

/********** End **********/
}
第三关

任务:在右侧编辑器中的 Begin-End 之间补充代码。假设一小球自足够高的地方进行自由落体运动,求 t 时刻小球距下落点的距离,忽略空气阻力。重力加速度 g 和时刻 t 从控制台输入。 格式要求: 重力加速度 g 为单精度浮点数,时刻 t 为整数。输入的两个变量间以逗号间隔,输出的距离值为单精度浮点数并要求3位精度。

/*请在此处添加代码,计算小球下落的距离*/
/********** Begin *******/
#include<stdio.h>
int main(void)
{
    int t;
    float g;
    scanf("%f,%d",&g,&t);
    printf("%0.3f",g*t*t/2);
    return 0;
}

/********** End **********/

输出三行信息:本人所在省市名称、身份证号和姓名

任务:根据提示,在右侧编辑器 Begin-End 区间补充代码,分三行输出信息:

image-20230104193029236

#include<stdio.h>
int main() 
{
	/********** Begin **********/
    printf("所在市:湖北黄石\n");
    printf("姓名:张三\n");
    printf("身份证号:420203200004293471");
    
    /********** End **********/
	return 0;
}

初识格式化输出

第一关

任务:在右侧编辑器中的 Begin-End 之间补充代码。要求输出3个不同的圆周率 PI 值。PI =3.1415926,第一个 PI 值要求5个位宽,3位精度;第二个 PI 值要求10个位宽,5位精度;第三个 PI 值要求20个位宽,10位精度(行末有回车)

/*本程序用于输出不同格式的PI值*/
/*请在此处添加代码,实现输出不同格式的PI值*/
/********** Begin **********/
#include<stdio.h>
int main(void)
{
    float PI;
    PI=3.1415925026;
    printf("%5.3f\n",PI);
    printf("%10.5f\n",PI);
    printf("%20.10f\n",PI);
    return 0;
}
/********** End **********/
第二关

任务:在右侧编辑器中的 Begin-End 之间补充代码。原样输出给定的文本流。 文本流如下:

image-20230104193535506

/*本程序输出指定的信息*/
/*请在此处添加代码,实现原样输出给定的文本流信息。*/
/********** Begin **********/
#include<stdio.h>
int main(void)
{
    printf("以下内容来自“C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.10240.0\\ucrt\\stdio.h”:\n");
    printf("#define EOF (-1)\n");
    printf("_CRTIMP int __cdecl printf(const char *, ...);\n");
    printf("#ifndef _INTERNAL_IFSTRIP_\n");
    printf("#include <cruntime.h>\n");
    printf("#endif  /* _INTERNAL_IFSTRIP_ */");
}  
    
    
/********** End **********/

注:文本流存在转义字符表示符号’/',需要用//

第三关

任务:在右侧编辑器中的 Begin-End 之间补充代码。输出摄氏-华氏温度对应表。每行输出格式要求:摄氏温度和华氏温度均为单精度浮点数,都各占8个字符位宽,精度取2;摄氏温度前一个 tab 键,摄氏温度和华氏温度间以一个 tab 键相隔(摄氏温度从−30°循环到30°)。

/*本程序输出符合格式的温度对应表*/
/*请在此处添加代码,输出符合给定格式要求的摄氏-华氏温度对应表*/
/********** Begin **********/
#include<stdio.h>
int main(void)
{
    float CS,FS;
    printf("\t摄氏温度\t华氏温度\n");
    for(CS=-30;CS<=30;CS+=5)
    {
        FS=(9.0/5.0)*CS+32;
        printf("\t%8.2f\t%8.2f\n",CS,FS);  
    }    
    return 0; 
}
    
    
/********** End **********/

注:tab键及制表符,使表格对齐,需要用到垂直制表符\t。

输入一元二次方程的三个系数求方程的实根

任务:已知一元二次方程的三个系数,编程求ax2+bx+c=0方程的根,系数abc的值由键盘输入,构建一个一元二次方程的实例,假设abc的值,使得 b2−4ac⩾0`成立。

输入格式要求 : 方程的三个系数均为双精度浮点数 , 其值由控制台输入,输入的三个实数间以逗号间隔。 输出格式要求: 要求分两行输出方程的2个实根值,要求5个位宽,2位精度。image-20230104202727233

image-20230104202309329

#include <stdio.h>
#include<math.h>
int main()
{
	/**********Bigin**********/
    double a,b,c,d,x1,x2;
    scanf("%lf,%lf,%lf",&a,&b,&c);
    d=b*b-4*a*c;
    if(a!=0&&d>=0)
    {
    x1=(-b+sqrt(d))/(2*a);
    x2=(-b-sqrt(d))/(2*a);
    printf("x1=%5.2lf\nx2=%5.2lf",x1,x2);
    }
    /**********End**********/
	return 0;
}

注意:

  • 需要判断条件,需要用到控制语句if,当然如果只是通过测试就不需要if,如
#include <stdio.h>
#include<math.h>
int main()
{
	/**********Bigin**********/
    double a,b,c,d,x1,x2;
    scanf("%lf,%lf,%lf",&a,&b,&c);
    d=b*b-4*a*c;
    x1=(-b+sqrt(d))/(2*a);
    x2=(-b-sqrt(d))/(2*a);
    printf("x1=%5.2lf\nx2=%5.2lf",x1,x2);
    
    /**********End**********/
	return 0;
}
  • 存在平方根,需要用到函数sqrt()来算平方根

输入一个四位数的整数,逆序输出其个、十、百、千位

任务:根据提示,在右侧编辑器 Begin-End 区间补充代码,将一个四位整数数字拆分,逆序输出。

示例:

image-20230104203714709

#include <stdio.h>
int main()
{
	/********** Begin **********/
    int  x , b0, b1, b2,b3;
    scanf("%d",&x);
    b0 = x % 10; 
    x  = x / 10;
    b1 = x % 10; 
    x  = x / 10;                           
    b2 = x % 10;  
    x  = x / 10;  
    b3 = x % 10;      
    printf("%d,%d,%d,%d", b0, b1, b2,b3);
    return 0;
    
    /********** End **********/
	return 0;
}

输入三角形的三边求三角形的面积

任务:输入三角形的三边,编程求三角形的面积。

image-20230104211038717

示例:

image-20230104211114245

#include <stdio.h>
#include<math.h>
int main()
{
	/********** Begin **********/
    double a,b,c,s,area;
    scanf("%lf%lf%lf",&a,&b,&c);
    s=(a+b+c)/2;
    area=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("a=%0.6lf b=%0.6lf c=%0.6lf\narea=%0.6lf",a,b,c,area);
    /********** End **********/
	return 0;
}

注:

  • 由示例可知精度为6位。
  • 这里不能用float,float精度只有6位,舍入会有误差。

计算银行本利之和

任务:设银行定期存款的年利率 rate 为 2.25%,并已知存款期为 n 年,存款本金为 capital 元,试编程计算 n 年后的本利之和 deposit。要求定期存款的年利率 rate、存款期 n 和存款本金 capital 均由键盘输入。

image-20230104214015374

示例:

image-20230104213921013

#include <stdio.h>
#include<math.h>
int main()
{
	/********** Begin **********/
  double rate,deposit,capital;
  int n;
  scanf("%lf%d%lf",&rate,&n,&capital);
  deposit=capital*pow((1+rate),n);
  printf("%d年本利之和:%0.2lf",n,deposit);
  
  /********** End **********/
  return 0;
}

注:

  • 原题没给math .h 头文件(可能漏了)
    链图片转存中…(img-n4IadoWH-1672839788442)]
#include <stdio.h>
#include<math.h>
int main()
{
	/********** Begin **********/
  double rate,deposit,capital;
  int n;
  scanf("%lf%d%lf",&rate,&n,&capital);
  deposit=capital*pow((1+rate),n);
  printf("%d年本利之和:%0.2lf",n,deposit);
  
  /********** End **********/
  return 0;
}

注:

  • 原题没给math .h 头文件(可能漏了)
  • 注意示例精度为保留两位小数
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值