实验1
任务一:
程序源码1:
//打印一个字符小人 #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; }
运行截图1:
程序源码2:
//打印一个字符小人 #include <stdio.h> int main() { printf("o o\n"); printf("<H> <H>\n"); printf("I I I I\n"); return 0; }
运行截图2:
任务二:
程序源码:
// 1+2+3+...+n (设n的数值在100以内) //用数学归纳法 (求和公式计算) #include <stdio.h> int main() { int n, sum; // 从键盘上输入一个十进制整数n scanf("%d", &n); sum = (n+1)*n/2 //打印输出求和结果 printf("sum = %d\n", sum); return 0; }
运行结果:
回答问题:
写法1、2可以实现题目要求;因为乘法运算和除法运算会严格按照自左向右的运算顺序,导致奇数无法除尽2。
任务三:
程序源码:
#include <stdio.h> int main() { int a, b, t; a = 3; b = 4; printf("a = %d, b = %d\n", a, b); t = a; a = b; b = t; printf("a = %d, b = %d\n", a, b); return 0; }
运行截图:
回答问题:功能是 通过赋值运算结合方向为从右向左的特点,交换原本的 a 和 b 的值。
任务四:
程序源码:
#include <stdio.h> int main() { int x, t, m; x = 123; printf("x = %d\n", x); t = 0; m = x % 10; t = t * 10 + m; x = x / 10; m = x % 10; t = t * 10 + m; x = x / 10; m = x % 10; t = t * 10 + m; x = x / 10; printf("t = %d\n", t); return 0; }
运行结果:
回答问题:功能为 将原数字逆序排成一个新的数字。
任务五:
程序源码:
#include <stdio.h> int main() { float a, b, c; // 输入三边边长 scanf("%f%f%f", &a, &b, &c); // 判断能否构成三角形 if(a+b>c && a+c>b && b+c>a) printf("能构成三角形\n"); else printf ("不能构成三角形\n"); return 0; }
运行结果:
任务六:
#include <stdio.h> int main() { int year; year = 1000000000 / 60 / 60 / 24 / 365; printf("10亿秒约等于%d年\n", year); return 0; }
运行截图:
任务七:
#include <stdio.h> int main() { int n; // 补足代码 // printf("n = %d\n",n); return 0; }
运行截图:
任务八:
#include <stdio.h> int main() { char ans1, ans2; printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有) : " ); ans1 = getchar(); getchar(); printf("\n动手敲代码实践了没?(输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if((ans1=='y')&&(ans2=='y')) printf("\n罗马不是一天建成的, 继续保持哦:)\n"); else printf("\n罗马不是一天毁灭的,我们来建设吧\n"); return 0; }
运行截图: