首页 > 编程语言 >实验2 C语言控制语句应用编程

实验2 C语言控制语句应用编程

时间:2022-11-02 13:11:33浏览次数:55  
标签:语句 return int 编程 long C语言 char func include

实验任务一:

task1.c

 1 #include <stdio.h>
 2 #include <time.h>
 3 #include <windows.h>
 4 #include <stdlib.h>
 5 #define N 30
 6 void print_spaces(int);
 7 void print_blank_lines(int);
 8 void print_text(int, int, char);
 9 int main() {
10     int line, col;
11     int i;
12     char text[N] = "hello November";
13     srand(time(0));
14     for (i = 1; i <= 10; i++) {
15         line = rand() % 25;
16         col = rand() % 80;
17         print_text(line, col, text);
18         Sleep(1000);
19     }
20     return 0;
21 }
22 
23 void print_spaces(int n) {
24     for (int i = 0; i < n; i++) {
25         printf(" ");
26     }
27 
28 }
29 void print_blank_lines(int n) {
30     for (int i = 0; i < n; i++)
31         printf("\n");
32 
33 }
34 void print_text(int line, int col, char text[]) {
35     print_blank_lines(line - 1);
36     print_spaces(col - 1);
37     printf("%s", text);
38 }

文字描述:以当前系统时间作为随机种子,行为0~24的随机数,列为0~79的随机数,打印文档的函数里嵌套了打印空白行和打印空格的函数,将产生随机数的行和列和输入的文档作为实参传入函数,实现在某一随机区域打印文档的效果。

 

实验任务二:

task2_1.c

 1 #include <stdio.h>
 2 long long fac(int);
 3 int main() {
 4     int n;
 5     scanf("%d", &n);
 6     int i;
 7     for (i = 1; i <= n; i++) {
 8         printf("%3d的阶乘 = %lld\n", i, fac(i));
 9     }
10     return 0;
11 }
12 long long fac(int x) {
13     static long long  p = 1;
14     printf("p = %d\n", p);
15     p *= x;
16     return p;
17 }

运行截图:

task2_2.c

 1 #include <stdio.h>
 2 int func(int, int); // 函数声明
 3 int main() {
 4     int k = 4, m = 1, p1, p2;
 5     p1 = func(k, m); // 函数调用
 6     p2 = func(k, m); // 函数调用
 7     printf("%d, %d\n", p1, p2);
 8     return 0;
 9 }
10 // 函数定义
11 int func(int a, int b) {
12     static int m = 0, i = 2;
13     i += m + 1;
14     m = i + a + b;
15     return m;
16 }

程序运行截图:

static 变量特性:

static改变了变量的声明周期,这里变量在函数中,函数调用结束后,m和i并不会被释放,他们的值还保留着。等到整个程序运行结束才会释放变量。

 

 

实验任务三:

task3.c

 1 #include <stdio.h>
 2 long long func(int n); // 函数声明
 3 int main() {
 4     int n;
 5     long long f;
 6     while (scanf("%d", &n) != EOF) {
 7         f = func(n); // 函数调用
 8         printf("n = %d, f = %lld\n", n, f - 1);
 9     }
10     return 0;
11 }
12 long long func(int n) {
13     if (n == 1)
14         return 2;
15     return func(n - 1) * 2;
16 }

运行截图:

 

 

实验任务四:

task4.c

 1 #include <stdio.h>
 2 int func(int n, int m);
 3 int main() {
 4     int n, m;
 5     while (scanf("%d%d", &n, &m) != EOF)
 6         printf("n = %d, m = %d, ans = %d\n", n, m, func(n, m));
 7     return 0;
 8 }
 9 int func(int n, int m) {
10     if ((n < m)) {
11         return 0;
12     }
13     else if ((n == m) || (m == 0)) {
14         return 1;
15     }
16     else if (m == 1) {
17         return n;
18     }
19     return func(n - 1, m) + func(n - 1, m - 1);
20 }

程序运行截图:

 

 

实验任务五:

task5.c

 1 #include <stdio.h>
 2 int mul(int n, int m);
 3 int main() {
 4     int n, m;
 5     while (scanf("%d%d", &n, &m) != EOF)
 6         printf("%d * %d = %d\n", n, m, mul(n, m));
 7 
 8     return 0;
 9 }
10 int mul(int n, int m) {
11     if (m == 1) {
12         return n;
13     }
14     else if ((m == 0) || (n == 0)) {
15         return 0;
16     }
17     return mul(n, m - 1) + n;
18 
19 }

程序运行截图:

 

 

 

 

实验任务六:

task6.c

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int hanoi(int n, char source, char temp, char dest);
 4 void move(int m,char a, char b);
 5 int main() {
 6     int m;
 7     scanf("%d", &m);
 8 
 9     int n =hanoi(m, 'A', 'B', 'C');
10     printf("一共移动了%d次", n);
11     return 0;
12 }
13 void move(int m, char a, char b) {
14 
15     printf("%d:%c-->%c\n", m, a, b);
16 }
17 int hanoi(int n, char source, char temp, char dest) {
18     static int count = 0;
19     if (n == 1) {
20         move(n, source, dest);
21         count++;
22     }
23     else {
24         hanoi(n - 1, source, dest, temp);
25         move(n, source, dest);
26         count++;
27         hanoi(n - 1, temp, source, dest);
28     }
29     return count;
30 }

运行截图:

 

 

 

实验任务七:

task7.c

 1 #include <stdio.h>
 2 #include <math.h>
 3 int is_prime(int a) {
 4     int i;
 5     if (a < 2)
 6         return 0;
 7     for (i = 2; i <= sqrt(a); i++) {
 8         if (a % i == 0)
 9             return 0;
10     }
11     return 1;
12 
13 }
14 int main() {
15     int m;
16     int i, j;
17     printf("输入一个偶数:");
18     while ((scanf("%d", &m) != EOF)) {
19         for (i = 1; i < m; i++) {
20             for (j = 1; j < m; j++) {
21                 if (is_prime(i) && is_prime(j) && (i + j == m)) {
22                     printf("%d = %d + %d\n", m, i, j);
23                 }
24 
25             }
26         }
27         printf("输入一个偶数:");
28 
29         }
30         return 0;
31 }

运行截图:

 

标签:语句,return,int,编程,long,C语言,char,func,include
From: https://www.cnblogs.com/abcdefg-gaoyuan/p/16849969.html

相关文章

  • 使用VBA编程自动化处理数据透视表,距离你一步之遥
    前面内容介绍的都是在Excel界面中通过手动执行命令来创建和设置数据透视表。如果想要以更加自动的方式操作数据透视表,那么可以编写VBA代码。虽然在使用VBA编程处理数据透视......
  • python编程基础
    1、python数制转换```方法一:a,b=eval(input())print(int(str(a),b))方法二:a,b=input().split(',')print(int(str(a),int(b)))......
  • 2022年4月第十三届蓝桥杯省赛C组C语言 习题解析(每日一道)
    试题B:特殊时间   【问题描述】           2022年2月22日22:20是一个很有意义的时间,年份为2022,由3个2和1个0组   成,如果将月和日......
  • 网络编程
    网络编程三次握手和四次挥手三次握手:A;你瞅啥?B:瞅你咋地?A:干一架!四次挥手:A:我要走了!B:你真的要走了吗?B:你真的真的要走了吗?A:......
  • 初始C语言 (2)
    ‘\0’,0,'0'的区分intmain(){//字符串结束的标志:'\0'//'abcdef'//’\0‘-转义字符-->ASCII码值为0//0-->数字0//’0‘-数字字符0-->ASCII码值......
  • javascript异步编程之generator(生成器函数)与asnyc/await语法糖
    Generator异步方案相比于传统回调函数的方式处理异步调用,​​Promise​​最大的优势就是可以链式调用解决回调嵌套的问题。但是这样写依然会有大量的回调函数,虽然他们之间......
  • javascript异步编程之generator(生成器函数)与asnyc/await语法糖
    Generator异步方案相比于传统回调函数的方式处理异步调用,Promise最大的优势就是可以链式调用解决回调嵌套的问题。但是这样写依然会有大量的回调函数,虽然他们之间没有嵌......
  • shell脚本:条件语句
    导图1.条件测试1.1test命令测试格式1:test条件表达式格式2:[条件表达式]1.2test操作符-d:测试是否为目录(Directory)-e:测试目录或文件是否存在(Exist)-a:测试目录......
  • 防御式编程
    保护程序免造非法数据的破坏检查所有来源于外部数据的值这里需要注意的是数据值的范围,检查数据值在允许的范围内。如字符串,要确保其不超长。注意企图令缓冲区溢出的数......
  • 嵌入式-C语言基础:实现字符串拷贝函数
    自己实现一个字符串的拷贝函数#include<stdio.h>#include<stdlib.h>#include<string.h>char*mystrcpy(char*dest,char*src){if(dest==NULL||src==NULL)......