实验1 C语言开发环境使用和数据类型、运算符、表达式 .

 

1.实验1 task1_1

 

 1 //打印一个字符小人
 2 #include <stdio.h>
 3 int main()
 4 {
 5     printf(" o \n");
 6     printf("<H>\n");
 7     printf("I I\n");
 8     return 0;
 9 
10 }

 

 

实验1 task1_2

 

1 //打印两个字符小人
2 #include <stdio.h>
3 int main()
4 {
5     printf(" o       o \n");
6     printf("<H>     <H>\n");
7     printf("I I     I I\n");
8     return 0;
9 }

 

2.实验1 task2

 

 1 //1+2+3+4...+n(设n的取值在100以内)
 2 //用数学归纳法(求和公式计算)
 3 
 4 #include <stdio.h>
 5 
 6 int main()
 7 {
 8     int n,sum;
 9 
10     //从键盘上输入一个十进制整数给n
11     scanf("%d",&n);
12     sum=n*(n+1)/2;
13     //sum=(n+1)*n/2;
14     //sum=n/2*(n+1);
15     //sum=(n+1)/2*n;
16 
17 
18     //打印输出求和结果
19     printf("sum=%d\n",sum);
20 
21     return 0;
22 }

写法1 sum=n*(n+1)/2:n=50,sum=1275;n=51,sum=1326

写法2 sum=(n+1)*n/2:n=50,sum=1275;n=51,sum=1326

写法3 sum=n/2*(n+1):n=50,sum=1275;n=51,sum=1300

写法4 sum=(n+1)/2*n:n=50,sum=1250;n=51,sum=1326

写法1和写法2可以实现题目要求,写法3和写法4不可以。写法3:n=51时,n/2为整数除法,结果为25,25*52=1300;写法4:n=50时,(n+1)/2为整数除法,结果为25,25*50=1250。

 

3.实验1 task3

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int a,b,t;
 6     a=3;
 7     b=4;
 8     printf("a=%d,b=%d\n",a,b);
 9 
10     t=a;
11     a=b;
12     b=t;
13     printf("a=%d,b=%d",a,b);
14     return 0;
15 }

图中代码10-12的功能是实现a和b的值的交换。

 

4.实验1 task4

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int x,t,m;
 5     x=123;
 6     printf("x=%d\n",x);
 7 
 8     t=0;
 9     m=x%10;
10     t=t*10+m;
11     x=x/10;
12 
13     m=x%10;
14     t=t*10+m;
15     x=x/10;
16 
17     m=x%10;
18     t=t*10+m;
19     x=x/10;
20 
21     printf("t=%d\n",t);
22     return 0;
23 
24 }

(1)把x的值改成456,结果是654.

(2)代码8-19的功能是得到一个数的逆序。

 

5.实验1 task5

 1 //从键盘上输入三个数据作为三角形边长:从键盘上输入三角形三边,判断它能否构成三角形
 2 //构成三角形的条件:任意两边之和大于第三边
 3 #include <stdio.h>
 4 int main()
 5 {
 6     float a,b,c;
 7     // 输入三角形三边之长
 8 
 9     scanf("%f%f%f", &a, &b, &c);
10 
11     //判断能否构成三角形
12     
13     if (((a+b)>c)&&((a+c)>b)&&((b+c)>a))
14         printf("能构成三角形\n");
15     else
16         printf("不能构成三角形\n");
17     return 0;
18 }

 

6.实验1 task6

1 //计算10亿秒等于多少年,并打印输出
2 #include<stdio.h>
3 int main()
4 {
5     int year;
6     year=int(((1.0e+9)/60/60/24/365)+0.5);
7     printf("10亿年约等于%d年\n",year);
8     return 0;
9 }

 

 

7.实验1 task7

 1 //生成一个[60,100]之间的随机整数,并打印输出
 2 #include <stdio.h>
 3 #include<stdlib.h>
 4 #include<time.h>
 5 int main()
 6 {
 7     int n;
 8     srand((unsigned)time(NULL));
 9     n=rand()%41+60;
10     printf("n=%d\n",n);
11     return 0;
12 }

按原代码运行后生成的随机数都相同,都是60。在第8行添加srand((unsigned)time(NULL));后每次生成的随机数都不相同。

 

8.实验1 task8

 1 #include <stdio.h>
 2 int main()
 3 {
 4     char ans1,ans2;
 5     printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有):");
 6     ans1=getchar();//从键盘输入一个字符,赋值给ans1
 7 
 8     getchar();//思考这里为什么要加这一行,删去是否有影响
 9 
10     printf("\n动手敲代码实践了没?(输入y或Y表示敲了,输入n或N表示木有敲):");
11     ans2=getchar();
12 
13     if (((ans1=='y')||(ans1=='Y'))&&((ans2=='y')||(ans2=='Y')))
14         printf("罗马不是一天建成的,继续保持哦:)\n");
15     else
16         printf("罗马不是一天毁灭的,我们来建设吧\n");
17     return 0;
18 }

若删去getchar();,则结果为

 

实验总结:代码最后要加";"。if 语句跟的内容要加括号。小黑窗闪退可以用Ctrl+Fn+F5解决。

 

posted @ 2023-03-02 18:19  202113020120张艳  阅读(110)  评论(1编辑  收藏  举报