实验1

任务1

  • 源代码task1_1.c
//打印一个字符小人

#include <stdio.h>
int main()
{
	printf(" O \n");
	printf("<H>\n");
	printf("I I\n");
	printf(" O \n");
	printf("<H>\n");
	printf("I I\n");
	
	return 0;
 } 
  • 运行测试截图

屏幕截图 2026-10-17 111009

  • 源代码task1_2.c
//打印一个字符小人

#include <stdio.h>
int main()
{
	printf(" O     O \n");
	printf("<H>   <H>\n");
	printf("I I   I I\n");
	 
	
	return 0;
 } 
  • 运行测试截图

image

任务2

  • 源代码task2.c
点击查看代码
int main()
{
	double a,b,c;
	
	//输入三边边长
	scanf("%lf&lf%lf",&a,&b,&c);
	
	//判断是否构成三角形
	if(a+b>c&&a+c>b&&b+c>a)
	    printf("能构成三角形\n");
	else
		printf("不能构成三角形\n");
		
		return 0;	 
 } 
  • 运行测试截图

屏幕截图 2026-10-17 111728

屏幕截图 2026-10-17 111708

屏幕截图 2026-10-17 111655

任务3

  • 源代码task3.c
点击查看代码
#include <stdio.h>
int main()
{
	char ans1, ans2;//保存用户输入的答案
	
	printf("每次课及时预习/复习了没?(是-输入y或Y,否-输入n或N):  ");
	ans1 = getchar();//从键盘输入一个字符,赋值给ans1
	
	getchar();//手动去掉,观察结果
	
	printf("\n动手敲代码实践了没?(是-输入y或Y,否-输入n或N):");
	ans2 = getchar();
	
	if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y')) 
		printf("\n罗马不是一天建成的,继续保持哦:\n");
	else
		printf("\n罗马不是一天毁灭的,我们来建设吧:\n");
		
		return 0; 
}
  • 运行测试截图

屏幕截图 2026-10-17 112206

屏幕截图 2026-10-17 112233

屏幕截图 2026-10-17 112253

屏幕截图 2026-10-17 112314

  • 回答问题
    去掉line9后运行结果如图

屏幕截图 2026-10-17 113231
getchar() 会读取包括空格、回车、Tab在内的所有字符,回车\n也是一个合法字符,不会自动忽略。有 getchar(); 的时候,ans1=getchar() 读取y,单独这行 getchar() 把缓冲区剩下的 \n 读取、扔掉,缓冲区清空,ans2 = getchar() 缓冲区空了,程序暂停,等待敲第二个字符。没有第9行 getchar() 的时候,ans1 = getchar(); 拿走缓冲区第一个字符 'y',赋值给ans1,缓冲区还剩下:'\n',程序直接跑到 ans2 = getchar();,直接读取缓冲区剩下的 \n 给到ans2。

任务4

  • 源代码task4.c
点击查看代码
// 计算10亿秒约等于多少年,并打印输出
#include <stdio.h>
#include <math.h>

int main() 
{
    int year;

    // 补足代码
    year=round(1000000000.0/60/60/24/365);

    printf("10亿秒约等于%d年\n", year);
    return 0;
}
  • 运行测试截图

屏幕截图 2026-10-17 114622

任务5

  • 源代码task5.c
点击查看代码
#include <stdio.h>

int main() 
{
    double c, f;

    scanf("%lf", &c);

    // 待补足: 摄氏温度-> 华氏温度
    f=9/5*c+32;
    
    printf("摄氏度c = %.2f时, 华氏温度f = %.2f\n\n", c, f);

    return 0;
}
  • 运行测试截图

屏幕截图 2026-10-17 115726

任务6

  • 源代码task6
点击查看代码
#include <stdio.h>
#include <math.h>

int main()
{
	double a,b,c;
	double 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=%.0f,b=%.0f,c=%.0f,area=%.3f",a,b,c,area);
	
	return 0;
}
  • 运行测试截图

屏幕截图 2026-10-17 120008

实验总结

实验4中输入1000000000时,实验5中输入9时运行结果如图

屏幕截图 2026-10-17 120457

屏幕截图 2026-10-17 115703

因为1000000000,60,9,5 都是整数,C语言里整数除法 / 直接取其整数部分,所以要把数字由整型形式输入为浮点型形式代入进行运算

posted @ 2026-10-17 12:15  羊羊羊三只羊  阅读(14)  评论(4)    收藏  举报