### C语言-1 ```c /*------------------------------------------------------------------------------ (1)【程序设计】定义一个大小为50的整型数组,将数字1~50存入该数组,利用指针将数组中的值输出,每行5个,每个数字占4个符号位,左对齐。 ------------------------------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> int main() { int i,*p,array[50]; for(i=0;i<50;i++) { array[i]=i+1; } p=array; /**********Program**********/ //p 一级指针 可以指向整型的一维数组 for(i=0;i<50;i++){//0~49 printf("%-4d ", p[i]); if((i+1)%5==0){ printf("\n"); } } /********** End **********/ } ``` ### C语言-2 ```c /*---------------------------------------------------------------------- 【程序设计】 ------------------------------------------------------------------------ 题目:要求实现一个函数,能够合并两个整数数组,合并后进行降序排序并删除重复元素。 示例1: 输入输出如下所示: 请输入第一个数组的6个元素,每个元素之间用空格隔开:1 3 5 7 10 6 请输入第二个数组的6个元素,每个元素之间用空格隔开:10 4 2 6 11 30 合并后降序排列的数组:30 11 10 7 6 5 4 3 2 1 ------------------------------------------------------------------------ 注意:请勿改动程序中的其他内容。 ----------------------------------------------------------------------*/ #include <stdio.h> int* mergeArrays(int *arr1, int size1, int *arr2, int size2,int *newLen); int main() { int size1=6; int size2=6; int arr1[6]; int arr2[6]; int i; int newLen = 0; int* mergedArray; printf("请输入第一个数组的6个元素,每个元素之间用空格隔开:"); for ( i = 0; i < size1; i++) { scanf("%d", &arr1[i]); } printf("请输入第二个数组的6个元素,每个元素之间用空格隔开:"); for ( i = 0; i < size2; i++) { scanf("%d", &arr2[i]); } mergedArray = mergeArrays(arr1, size1, arr2, size2, &newLen); printf("合并后降序排列的数组:"); for (i = 0; i < newLen; i++) { printf("%d ", mergedArray[i]); } printf("\n"); return 0; } int* mergeArrays(int *arr1,int size1,int *arr2,int size2,int *newLen) { static int mergedArray[20]; /**********Program**********/ int i, j=0, temp; //合并数组 for(i=0;i<size1;i++){ mergedArray[j++] = arr1[i]; mergedArray[j++] = arr2[i]; } //降序排序 for(i=0;i<size1*2-1;i++){//已经有序的个数 for(j=0;j<size1*2-i-1;j++){//i每+1 代表最前面已经有一个最小的元素 if(mergedArray[j] < mergedArray[j+1]){ //无序的元素两两比较小值后移 temp = mergedArray[j]; mergedArray[j] = mergedArray[j+1]; mergedArray[j+1] = temp; } } } //去重 /* 默认第一个数字不用判断,从数组中第二个元素开始判断, 是否等于前一项如果不等于则进行赋值操作,然后元素个数加一 */ *newLen = 1;//当前数组中已经过滤后的有效数字个数 for(i=1;i<size1*2;i++){//使用i变量从1下标元素开始 遍历数组中的所有数字 if(mergedArray[(*newLen) - 1] != mergedArray[i]){ //如果当前判断的元素不等于前一个元素则插入到有效数字位置 mergedArray[(*newLen)++] = mergedArray[i]; } } /********** End **********/ return mergedArray; } ``` ### MySQL-1 ```sql #1. 设置字段主键+自动增长 ALTER TABLE t_user MODIFY uid INT(11) PRIMARY KEY AUTO_INCREMENT; #只设置主键 ALTER TABLE t_user ADD PRIMARY KEY(uid); #2. 插入记录 #DEFAULT 自增/默认值/NULL INSERT INTO t_user() VALUES(DEFAULT, 'mike', 'mm123', '小明', DEFAULT); #3. 更新记录 UPDATE t_user u SET u.`password` = '888888' WHERE u.username = 'Dennis'; #4. tj11 条件查询+多表联查 SELECT u.nickname, c.mid, c.score, c.content FROM t_user u, t_comment c WHERE u.uid = c.uid AND u.nickname = '白色'; #5. tj12 分组查询+多表联查 SELECT m.mname, ROUND(AVG(c.score), 2) FROM t_movie m, t_comment c WHERE m.mid = c.mid GROUP BY m.mid; #6. tj13 分组查询+多表联查 SELECT m.mname, COUNT(*) FROM t_movie m, t_comment c WHERE m.mid = c.mid GROUP BY m.mid; #7 视图 多表联查 CREATE VIEW v_movie AS SELECT m.mname, u.nickname, c.score, c.content FROM t_user u, t_movie m , t_comment c WHERE u.uid = c.uid AND m.mid = c.mid; #8 存储过程 DELIMITER $$ DROP PROCEDURE IF EXISTS pro_getUserNumber; CREATE PROCEDURE pro_getUserNumber(IN in_uid INT, OUT out_number INT) BEGIN SET out_number = ( SELECT COUNT(*) FROM t_user u, t_comment c WHERE u.uid = c.uid AND u.uid = in_uid ); END $$ DELIMITER ; #9 触发器 DELIMITER $$ DROP TRIGGER IF EXISTS tri_userlog; CREATE TRIGGER tri_userlog AFTER INSERT ON t_user FOR EACH ROW BEGIN INSERT INTO t_log() VALUES(DEFAULT, NEW.uid, '新增用户', '2024-01-01'); END $$ DELIMITER ; ``` ### MySQL-2 ```sql #1 修改表结构 ALTER TABLE t_examinee MODIFY sex CHAR(2); DESC t_examinee;#查看表结构 #2 插入记录 INSERT INTO t_room() VALUES(DEFAULT, '202教室', '2号教学楼'); #3 删除记录 DELETE FROM t_teacher WHERE rid IS NULL; #4 更新记录 UPDATE t_examinee SET tel = '1396668888' WHERE ename = '龚致远'; #5 tj11 条件查询+多表联查 SELECT e.ename, r.rname, r.site FROM t_examinee e, t_room r WHERE e.rid = r.rid AND e.ename = '陶宇宁'; #6 tj12 SELECT r.rname, r.site, t.tname, t.tel FROM t_teacher t, t_room r WHERE t.rid = r.rid AND r.rname = '402教室'; #7 CREATE VIEW v_exam AS SELECT e.ename, e.sex, e.tel, e.examnum, r.rname, r.site FROM t_examinee e, t_room r WHERE e.rid = r.rid; #8 存储过程 DELIMITER $$ DROP PROCEDURE IF EXISTS pro_getExamNumber; CREATE PROCEDURE pro_getExamNumber(IN in_rid INT, OUT out_number INT) BEGIN SELECT COUNT(*) INTO out_number FROM t_examinee e WHERE e.rid = in_rid; END $$ DELIMITER ; #9 触发器 DELIMITER $$ DROP TRIGGER IF EXISTS tri_examlog; CREATE TRIGGER tri_examlog BEFORE INSERT ON t_examinee FOR EACH ROW BEGIN INSERT INTO t_log() VALUES(DEFAULT, NEW.eid, '新增考生', '2024-01-01'); END $$ DELIMITER ; ```