1.字符反转

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void swap(char *a,char *b)
{if(a==NULL&&b==NULL){printf("The ginseng error");exit(EXIT_SUCCESS);//若为初学者此处用return ;也是可以的,不影响使用;//exit 为退出这个进程}int temp=0;while(a<b){temp=*a;*a=*b;*b=temp;a++;b--;}}void change_word(char *a)
{char *p,*q;p=a;q=a+strlen(a)-1;swap(p,q);q=p;//这个还能使用while实现,但是while会增加时间复杂度,能少用尽量少用while(*p!=0){if(*p!=' '){p++;if(*p!=0){continue;}}swap(q,p-1);if(*p==0){break;}q=(++p);}
}int main(int argc, char const *argv[])
{char buff[128]={0};printf("请输入你要输入的内容");fgets(buff,sizeof(buff),stdin);//若为初学者此处用gets(buff)也是可以的,不影响使用;buff[strlen(buff)-1]='\0';change_word(buff);printf("%s\n",buff);return 0;
}

2.输出所有小于100的质数

#include <stdio.h>>int main(int argc, char const *argv[])
{int n=100;int i=0;int j=0;int a=0;for(i=1;i<n;i++){a=0;for(j=1;j<=i;j++){if(i%j==0){a++;}}if(a==2){printf("%d ",i);}}puts("");return 0;
}

3交换的方式三种

3.1第一种三杯水交换

#include <stdio.h>int main(int argc, char const *argv[])
{int a=10;int b=20;int temp=0;temp=a;a=b;b=temp;printf("a=%d b=%d\n",a,b);return 0;
}

3.2第二种异或交换

#include <stdio.h>int main(int argc, char const *argv[])
{int a=10;int b=20;int temp=0;a=a^b;b=a^b;a=a^b;printf("a=%d b=%d\n",a,b);return 0;
}

3.3第三种交换//注意越界数值不能太大

#include <stdio.h>int main(int argc, char const *argv[])
{int a=10;int b=20;int temp=0;b=a+b;a=b-a;b=b-a;printf("a=%d b=%d\n",a,b);

4.练习: 1.设计一个程序,实现功能: 输入一个字符, 如果是大写的,就转换成小写的输出 如果是小写的,就转换成大写输出 如果是数字,就 * 10 输出 如果是其他字符,都输出 # a --> A B --> b 2 --> 20 ( --> #

#include<stdio.h>int main(int argc, const char *argv[])
{char v = 0;scanf("%c", &v);getchar();if (v >= 'A' && v <= 'Z'){v += 32;printf("%c\n", v);}else if (v >= 'a' && v <= 'z'){v -= 32;printf("%c\n", v);}else if (v >= '0' && v <= '9'){v -= '0'; v *= 10;printf("%d\n", v);}else{printf("%c\n", '#');}return 0;
}

5ifelse语句使用

练习: 编写程序计算身高 每个做父母的都关心自己孩子成人后的身高, 据有关生理卫生知识与数理统计分析表明, 影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。 小孩成人后身高与其父母身高和自身性别密切相关。 设faHeight为其父身高,moHeight为其母身高,身高预测公式为: 男性成人时身高 = (faHeight + moHeight) * 0.54(cm) 女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)此外,如果喜爱体育锻炼,那么在原基础上可增加身高2% 如果有良好的卫生饮食习惯,那么在原基础上可增加身高1.5% 程序要求:父亲的身高与母亲的身高、小孩的性别、是否喜爱体育锻 炼 和是否有良好的卫生饮食习惯也从键盘上输入,最终输出预测的 身高。 提示:小孩性别的输入方式,可在屏幕给出提示“请输入小孩的性别 (男孩输入1,女孩输入0):”, 然后通过if语句来判断从键盘输入的字符是1还是0。 是否喜爱体育锻炼也可以通过类似的方式实现。

#include <stdio.h>int main(int argc, const char *argv[]){double faHeight = 0;double moHeight = 0;double childHeight = 0;double pe_temp = 0,food_temp = 0;//用来记录身高的曾量int sex = 0; //性别 1男 0女int PE = 0; //体育运动 1喜欢 0不喜欢int FOOD = 0;//饮食习惯 1好习惯 0不好习惯printf("请输入父亲的身高:");scanf("%lf", &faHeight);printf("请输入母亲的身高:");scanf("%lf", &moHeight);printf("请输入孩子的性别(1男生 0女生):");scanf("%d", &sex);if(1 == sex){childHeight = (faHeight + moHeight) * 0.54;}else{childHeight = (faHeight * 0.923 + moHeight) / 2;}printf("请输入是否喜欢体育运动(1喜欢 0不喜欢):");scanf("%d", &PE);printf("请输入是否有好习惯(1有 0没有):");scanf("%d", &FOOD);if(1 == PE){pe_temp = childHeight * 0.02;}if(1 == FOOD){food_temp = childHeight * 0.015;}childHeight = childHeight + pe_temp + food_temp;printf("预测的孩子的身高为:%.3lf\n",childHeight);return 0;}

6.简易计算器实现

.编写代码,实现简易计算器功能(操作数 是整数即可 + - * / %): scanf("%d %c %d",); 输入:5 + 2 输出:7 输入:10 % 3 输出:1

 #include <stdio.h>int main(int argc, const char *argv[]){int num1 = 0, num2 = 0;char operator = 0;scanf("%d %c %d", &num1, &operator, &num2);switch(operator){case '+':printf("%d + %d = %d\n", num1, num2, num1+num2);break;case '-':printf("%d ‐ %d = %d\n", num1, num2, num1-num2);break;case '*':printf("%d * %d = %d\n", num1, num2, num1*num2);break;case '%':printf("%d %% %d = %d\n", num1, num2, num1%num2);break;case '/':printf("%d + %d = %.3lf\n", num1, num2, (double)num1/(double)num2);break;default:printf("我仅支持 + ‐ * / %%\n");break;}return 0;}

7学生成绩等级管理

#include <stdio.h>int main(int argc, const char *argv[]){int score = 0;scanf("%d", &score);getchar();switch(score/10){case 10:case 9:printf("A\n");break;case 8:printf("B\n");break;case 7:printf("C\n");break;default:printf("不及格\n");break;}return 0;}

8.使用while循环,实现 1~100 求和。

#include <stdio.h>int main(){int i = 1, sum = 0;while(i<=100){sum += i;i++;}printf("sum = %d\n",sum);return 0;}

9..猴子吃桃

#include <stdio.h>int main(){int sum = 1;int i = 0;while(i<9){printf("第 %d 天,有 %d 个桃\n", 10-i, sum);sum = (sum+1)*2;i++;}printf("第 %d 天,有 %d 个桃\n", 10-i, sum);return 0;
}

10.水仙花

#include <stdio.h>int main(int argc, const char *argv[]){int i = 0;int ge = 0;int shi = 0;int bai = 0;for(i = 100; i < 1000; i++){ge = i % 10;shi = i / 10 % 10;bai = i / 100;if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){printf("%d\n", i);}}return 0;}

11排版打出下面这种结果

#include <stdio.h>int main(int argc, char const *argv[])
{char ch='A';int i=0;int j=0;int a=0;for(i=0;i<8;i++){for(j=0;j<i-1;j++){printf("_");}for(a=0;a<i;a++){printf("%c",ch+a);}puts("");}return 0;
}

12.输入一个数,输出这个数的所有因子。

#include <stdio.h>int main(int argc, const char *argv[]){int num = 0;scanf("%d", &num);getchar();for(int i= 1; i <= num; i++){if(num%i == 0){printf("%d\n", i);}}return 0;}

13完美数

#include <stdio.h>int main(int argc, const char *argv[]){int i = 0;int j = 0;int sum = 0;for(i = 1; i < 1000; i++){sum = 0;for(j = 1; j < i; j++){if(i%j == 0){       sum += j;}}       if(sum == i){printf("%d\n", i);}}return 0;}

13练习: 1.定义一个10个长度的int数组,并全部初始化成0, 循环给数组成员赋值,赋的值来自键盘输入; 输出数组中最大的元素及最大元素的下标。

 #include <stdio.h>int main(){int arr[10] = {0};int i = 0;int max_index = 0;for(i = 0; i < 10; i++){scanf("%d", &arr[i]);}for(i = 1; i < 10; i++){if(arr[i] > arr[max_index]){max_index = i;}}printf("max_value = %d , max_index = %d\n",arr[max_index],max_index);return 0;}

14冒泡排序

#include <stdio.h>int main(int argc, const char *argv[])
{int s[10] = {23,45,65,78,90,55,33,17,96,54};int i = 0;int j = 0;int temp = 0;int flags=0;int len = sizeof(s)/sizeof(int);for(i = 0; i < len; i++){printf("%d ", s[i]);}printf("\n");for(j = 0; j < len-1; j++){flags=0;for(i = 0; i < len-1-j; i++){if(s[i] > s[i+1]){temp = s[i];s[i] = s[i+1];s[i+1] = temp;flags=1;}}if(flags==0){break;}        }for(i = 0; i < len; i++){printf("%d ", s[i]);}printf("\n");return 0;}

15strlen函数

#include <stdio.h>
int mystrlen(char *num)
{int i=0;while(*num){i++;num++;}return i;
}int main(int argc, char const *argv[])
{char num[20]="i love china";int length=0;length=mystrlen(num);printf("%d\n",length);return 0;
}

16strcat

#include <stdio.h>
void  mystrcat(char *dest, char *src)
{//1.判断地址是否是空,如果是空就退出if(dest == NULL || src == NULL){return ;}   //2.找到dest的'\0'                                           while(*dest){dest++;}   //3.拷贝数据while(*src){*dest++ = *src++;}   //4.给dest赋结束符号*dest  = '\0';}int main(int argc, const char *argv[])
{char arr[50] = {0};char brr[100] = {0};printf("input string (arr) > ");gets(arr);printf("input string (brr) > ");gets(brr);mystrcat(brr,arr);printf("brr = %s\n",brr);return 0;
}

16strcpy

#include <stdio.h>
#include <string.h>
#include <stdlib.h>char* mystrcpy(char* arr, char* brr)
{if (NULL == arr || NULL == brr){printf("传参错误\n");exit(-1);}char* cp = arr;while (*cp++ = *brr++);return arr;
}int main(int argc, char const *argv[])
{char arr[100] = "asdasd";char brr[200] = "112321312";mystrcpy(arr, brr);printf("%s\n",arr);return 0;
}

17strcmp

#include <stdio.h>int mystrcmp(char *a,char *b)
{while(*a&&*b&&*a==*b){a++;b++;}if((*a-*b)>0){return (*a - *b);}else if((*a-*b)<0){return (*a - *b);}else{return 0;}
}int main(int argc, char const *argv[])
{char a[20]={0};char b[20]={0};int flag=0;printf("Please enter the value of a >");gets(a);printf("Please enter the value of b >");gets(b);flag=mystrcmp(a,b);if(flag>0){printf("a>b\n");}else if(flag<0){printf("a<b\n");}else{printf("a=b\n");}return 0;
}

18编写atoi函数

#include <stdio.h>void my_gets(char *a,int n)
{int i=0;while(i<n){if((a[i]=getchar())=='\n'){i++;break;}i++;}a[i]=0;
}int my_atoi(char *s)
{int num=0;int sig=1;if(*s=='-'){sig=-1;}if(*s=='-'||*s=='+'){s++;}while((*s)>='0'&&(*s)<='9'){num=num*10+*s-'0';s++;}return sig*num;
}int main(int argc, const char *argv[]){char array[50]={0};my_gets(array,100);printf("%d\n",my_atoi(array));return 0;
}

19斐波那契数列

#include <stdio.h>int main(int argc, const char *argv[]){int s[20]={1,1};int i=0;for(i=2;i<20;i++){s[i]=s[i-1]+s[i-2];}for(i=0;i<20;i++){printf("%d  ",s[i]);}puts("");return 0;
}
#include <stdio.h>int feibo(int n)
{if (n <= 2){return 1;}return feibo(n - 2) + feibo(n - 1);
}int main(int argc, char const *argv[])
{printf("%d\n", feibo(8));return 0;
}

20数组中找最大值

#include <stdio.h>int main(int argc, const char *argv[]){int arr[10]={0};int i=0;for(i=0;i<10;i++){scanf("%d",&arr[i]);}int max=0;for(i=0;i<10;i++){if(arr[i]>arr[max]){max=i;}}printf("%d %d\n",max,arr[max]);return 0;
}

21九九乘法表

#include <stdio.h>int main(int argc, char const *argv[])
{int i=0;int j=0;for(i=1;i<10;i++){for(j=1;j<=i;j++){printf("%d*%d=%d ",j,i,i*j);}puts("");}return 0;
}

22输出一个二进制:

#include <stdio.h>int main(int argc, char const *argv[])
{int num;int flag;printf("请输入你的数字:");scanf("%d", &num);int i=0;int sum[128] = {0};while (num!=0){flag = num % 2;sum[i] = flag;num/=2;i++;}for (i = i-1; i>=0; i--){printf("%d ",sum[i]);}puts("");return 0;
}

23输入小写的字符,统计每个小写字符的个数:

#include <stdio.h>int get_index(char ch)
{return ch - 'a';
}int main(int argc, char const *argv[])
{char s[128] = {0};int i=0;int index;unsigned int count[32] = {0};printf("请输入您的字符串>>");scanf("%s", s);while (0 != s[i]){index = get_index(s[i]);count[index]++;i++;}for (i = 0; i<26; i++){printf("[%c] [%d]\n",i + 'a', count[i] );}return 0;
}

24万年历

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>int main (){int year = 0, month = 0, day = 0;int hour = 0, min = 0, sec = 0;scanf("%d%d%d%d%d%d", &year, &month, &day, &hour, &min, &sec);//输入时 以空格分隔
while(1){system("clear");//调用clear命令清屏,实现单行显示printf("%4d-%02d-%02d %02d:%02d:%02d\n",year, month, day, hour, min, sec);//%02d 是格式化输出  后面讲sec++;if(60 == sec){sec = 0;min++;if(60 == min){min = 0;hour++;if(24 == hour){hour = 0;day++;//31天的月if(1 == month || 3 == month || 5 == month || 7 == month || 8 == month|| 10 == month || 12 == month){if(32 == day){day = 1;month++;}//30天的月}else if(4 == month || 6 == month || 9 == month || 11 == month || 8 == month){if(31 == day){day = 1;month++;}//闰年的2月}else if((year%4==0 && year%100!=0) || year%400==0){if(30 == day){day = 1;month++;}//平年的2月}else{if(29 == day){day = 1;month++;}}if(13 == month){month = 1;year++;}}}}sleep(1);//休眠1秒
}return 0;
}

25比较两个字符串最长有多少个连续字符相等

#include <stdio.h>
#include <string.h>int compare(char* arr, char* brr)
{int i,j;int len = 0;int max = 0;int temp = 0;for (i = 0; i < strlen(arr); i = temp, i++){temp = i;for (j = 0, len = 0; j < strlen(brr); j++){while (arr[i] == brr[j] && arr[i] != '\0' && brr[j] != '\0'){len++;i++;j++;max = max > len ? max : len;      }}}return max;
}int main(int argc, char const *argv[])
{char arr[128] = "abcdefgddd";char brr[128] = "ooooabcdefgdd";printf("%d\n", compare(arr, brr));return 0;
}

26统计一个字符串中不重复的字符串的最大长度:

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <unistd.h>int get_maxlen(char *s)
{int hash[128] = {0};int right = 0,left = 0;int max = 0;while(right < strlen(s)){if (hash[s[right]] > 0){hash[s[left]] = 0;left++;}else {hash[s[right]] = 1;right++;max = (right - left) > max ? (right - left) : max;}}return max;
}int main(int argc, char const *argv[])
{char arr[128] = {0};printf("input >>");scanf("%s", arr);printf("%d\n", get_maxlen(arr));return 0;
}

27打出下划线加字母

F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
#include <stdio.h>int main(int argc, char const *argv[])
{int i, j, a;char ch = 'F';for ( i = 0; i < 6; i++){for (j = 1; j <= i; j++){printf("_");}for (a = 0, ch = 'F'; a <= i; a++){printf("%c", ch--);}puts("");}return 0;
}

28将char类型转换为int类型

#include <stdio.h>int main(int argc, char const *argv[])
{char arr[12] = "123456";int i = 0;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    int sum = 0;while (arr[i] != 0){sum = sum*10 + arr[i] - '0';i++;}printf("%d\n", sum);return 0;
}

29将int类型转换为char类型

#include <stdio.h>
#include <string.h>
#include <string.h>int main(int argc, char const *argv[])
{int data = 1234567;char str[10] = {0};char ch[10] = {0};int i = 0;while (data){str[i] = data % 10 + '0';i++;data = data / 10;}while (i){printf("%c", str[--i]);}puts("");return 0;
}

30二分查找

#include <stdio.h>int binary_search(int *arr, int p, int q, int ele)
{int mid = 0;if (p > q){return 0;}mid = p + (q - p) / 2;if (ele == arr[mid]){return mid;} if (ele < arr[mid]){return binary_search(arr, p, mid - 1, ele);}else {return binary_search(arr, mid + 1,  q, ele);}
}int main(int argc, char const *argv[])
{int arr[10] = {10, 14, 19, 26, 27, 31, 33, 35, 42, 44};printf("%d\n", binary_search(arr, 0, 9, 31));return 0;
}

31选择排序

#include <stdio.h>
#include <stdlib.h>void choose_sort(int *arr)
{   if (NULL == arr){printf("传参错误\n");exit(-1);}int i;int j;int max = 0;int temp;for (i = 0; i < 4; i++){max = i;for (j = i + 1; j < 5; j++){if (arr[j] > arr[max]) max = j;}if (max != i){temp = arr[max];arr[max] = arr[i];arr[i] = temp;}}return;
}int main(int argc, char const *argv[])
{int arr[5] = {11, 1, 20, 2, 300};choose_sort(arr);for (int i = 0; i < 5; i ++){printf("%d ", arr[i]);}puts("");return 0;
}

32实现memcpy

#include <stdio.h>void* memcpy(void* dest, const void* src, size_t num)
{if (NULL == dest || NULL == src){return NULL;}char* pDest = (char*)dest;char* pSrc = (char*)src;for (int i = 0; i < num; i++){*(pDest + i) = *(pSrc + i);}return dest;
}int main(){int arr[4] = { 4, 6, 8, 7 };int arr2[4] = { 0 };memcpy(arr2, arr, 16);                //调用  16是字节数for (int i = 0; i < 4; i++){      //数组循环输出printf("%d ", arr2[i]);}return 0;
}

33十六进制转10进制

#include <stdio.h>int main(int argc, char const *argv[])
{char a[100] = {0};int i =0, re = 0;printf("Enter a string:");fgets(a, 100, stdin);while (a[i]){if (a[i] >= '0' && a[i] <= '9'){re = re * 16 + a[i] - '0';}else if(a[i] >= 'a' && a[i] <= 'f'){re = re * 16 + a[i] + 10 -'a';}else if(a[i] >= 'A' && a[i] <= 'F'){re = re * 16 + a[i] + 10 - 'A';}i++;}printf("number=%d\n", re);return 0;
}

34十进制转十六进制

#include <stdio.h>int main(int argc, char const *argv[])
{char a[32] = "0123456789ABCDEF";char b[100];int n;int cnt = 0;;scanf("%d", &n);if (n == 0){printf("0\n");}while (n){b[++cnt] = a[n % 16];n = n / 16;}for (int i = cnt; i > 0; i--){printf("%c", b[i]);}puts("");return 0;
}

C语言基础练习题初学者可参考相关推荐

  1. c语言中的字符变量用什么保留字来说明,第1、2章C语言基础练习题

    第1章 C语言基础 第2章 顺序结构 练习题 学号: 姓名: 45. 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是[1]. 46. 已知 i=5.6;写出语句 a=(int ...

  2. C语言的叙述大小写字母e1相同,第1、2章C语言基础练习题

    第1章 C语言基础 第2章 顺序结构 练习题 学号: 姓名: 单选: 1. 当代电子计算机能够自动地处理指定的问题是因 为( ). A. 计算机是电动的 B. 有解决该问题的计算机程序 C. 事先存储 ...

  3. a=10a=0C语言,C语言基础练习题(含答案)

    第一章 C语言基础知识 ·5· A.2.500000 B.2.750000 C.3.500000 D.0.000000 29.在C语言中,char型数据在内存中的存储形式是( ). A.补码 B.反码 ...

  4. c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小

    PTA上C语言程序设计练习题,包含查找书籍.字符串排序.主要用到字符串输入scanf/gets 字符串赋值.比大小等知识. 1.查找书籍 习题9-4 查找书籍 (20 分) 给定n本书的名称和定价,本 ...

  5. C语言-基础练习题详解

    目录 前言 一.模拟用户登录情景 1.要求 2.代码 二.求两数的最大公约数 1.方法简介 2.代码 三.打印闰年 1.要求与概念 2.代码 四.打印100-200之间的素数 1.方法与概念 2.代码 ...

  6. Go语言基础练习题系列2

    1.练习1 生成一个随机数,让一个用户去猜这个数是多少? 代码示例如下: package mainimport ("fmt""math/rand" //math ...

  7. mypow等于1什么意思c语言,C语言基础练习题总结

    1.     从源代码helloworld.c经历 预编译,汇编,编译,连接四个过程到可执行文件helloworld.并写出使用gcc编译器对应每个过程的语句.连接的时候 -l gcc –o  a.i ...

  8. c语言自学考1课后答案,C语言理论练习题(1)及参考答案

    单选题 (1) 下列 C语言表达式能正确表达数学计算式1÷2?× 2x y A. 1.0/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2?)*2*x**y C. 1.0/sq ...

  9. c语言基础练习题及答案,C语言基础练习题(含答案)

    1 A.12 B.34 C.12345 D.提示出错.无结果 41.若x和y均定义为int 型,z定义为double型,以下不合法的scanf()函数调用语句为 ( ). A.scanf(" ...

  10. Go语言基础练习题系列1

    1.练习1 题目:使用fmt分别打印字符串.二进制.十进制.十六进制.浮点数. package mainimport ("fmt" )func main() {var a = &q ...

最新文章

  1. 宜人贷YEP技术、数据沉淀背后:金融科技迎来开放赋能时代
  2. node 跨域请求设置
  3. jsmodern_jQuery视频播放插件jsModern(修改版)
  4. 信息系统项目管理师-信息化与信息系统考点笔记(下)
  5. 英语语法---分词短语详解
  6. kafka的SASL的适用业务场景
  7. php直播pk规则,直播源码中的主播PK功能是如何实现的
  8. 使用BetterZip结合自动操作工具和预设设置创建电影解压程序
  9. 中国最后的江湖客:有3000万人,叫卡车司机
  10. java list stream 去除 null_Stream流的这些操作,你得知道,对你工作有很大帮助
  11. sqlite3数据库报错:“打不开数据库文件”
  12. HeadFirstJava——10_数字与静态
  13. oracle 10g下载百度云地址
  14. 《钻哥学管理之现代管理学》(Yanlz+Unity+SteamVR+云技术+5G+AI=VR云游戏=技术+业务+管理+现代管理学+决策+组织+人事+领导+激励+协调+控制+系统分析+立钻哥哥+==)
  15. 用Multisim高频小信号谐振放大器
  16. 二分查找和三分求单峰函数极值
  17. 鹏业安装算量软件识别电气系统图(表格式)
  18. uniapp返回上一页,刷新列表
  19. 投资理财启蒙之《小狗钱钱》拆读
  20. 华为鸿蒙研发团队负责人,走进华为北研所:EMUI 11 背后的“人因研究”到底是什么?...

热门文章

  1. IE、FF CSS 兼容性、兼容浏览器的技巧 2
  2. 防范项目中人员频繁变动的风险
  3. DeepDream网络
  4. cvFloodFill() 漫水填充算法
  5. opencv访问图像中每个像素的值
  6. qt结合arcgis进行开发
  7. Qt的信号槽基本用法总结
  8. 2020 dns排名_2020年度DNS年度全球直销排名
  9. MFC中.和-的区别
  10. ssm+安卓APP校园学生疫情防范监控系统毕业设计源码281444