### C语言-1 ```c /*------------------------------------------------------------------------------ (1)【程序设计】下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,给字符串s输入:AAaaBBbb123CCcccd,则应输出:upper=6,lower=8。 ------------------------------------------------------------------------------*/ #include void fun ( char *s, int *a, int *b) { /**********Program**********/ while(*s != '\0'){ if(*s >= 'A' && *s <= 'Z'){ (*a)++; } if(*s >= 'a' && *s <= 'z'){ (*b)++; } s++; } /********** End **********/ } main( ) { char s[100]; int upper=0, lower=0; printf( "\nPlease a string : " ); gets(s); fun(s,&upper,&lower); printf("\n upper=%d lower=%d\n",upper,lower ); } ``` ### C语言-2 ```c /*------------------------------------------------------------------------ 题目:函数fun的功能:将字符串str中第k个字符开始的n个字符逆序重排, 例如:输入1,5 输出54321abcde 输入3,6 输出12cba543de 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在 Program-End之间填入若干语句。不要删除标志否则不得分。 ----------------------------------------------------------------------*/ #include #include void fun(char *str, int k, int n ) { int i,j; char t; for(i=k-1,j=k-1+n-1;i void fun(char s[],int b[]) { int i; /**********Program**********/ i=0; while(s[i] != '\0'){ if(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z'){ b[0]++; }else if(s[i] >= '0' && s[i] <= '9'){ b[1]++; }else if(s[i] == ' '){ b[2]++; }else{ b[3]++; } i++; } /********** End **********/ } main () { char s1[80];int a[4]={0}; int k; void fun(char s[],int b[]) ; gets(s1); fun(s1,a); puts(s1); for(k=0;k<4;k++) printf("%4d",a[k]); } ``` ### C语言-4 ```c /*------------------------------------------------------------------------ 程序功能:从键盘输入三个整数,比较三个数并显示相应信息,具体如下: (1)如果三个数都相等,显示"***"; (2)如果三个数中只有某两个数相等,显示"@@"; (3)如果三个数互不相等,则显示"&"。 (输出要换行) ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在 Program-End之间删除【?】填入若干语句。不要删除标志否则不得分。 ----------------------------------------------------------------------*/ #include int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a==b && b==c) printf("***\n"); /**********Program**********/ else if(a==b || b==c || a==c) /********** End **********/ printf("@@\n"); else printf("&\n"); return 0; } ``` ### MySQL-1 ```sql #1 CREATE TABLE t_hotel_manager( mid INT PRIMARY KEY, hid INT NOT NULL, mname VARCHAR(10) NOT NULL, mage INT NOT NULL, mgender ENUM('男', '女', '未知'), telephone VARCHAR(11) ); #2 #使用MODIFY添加主键字段为自动增长 ALTER TABLE t_hotel_manager MODIFY mid INT AUTO_INCREMENT; #设置自增起始值 ALTER TABLE t_hotel_manager AUTO_INCREMENT = 1000; #3 INSERT INTO t_hotel_manager() VALUES(DEFAULT, 10001, '王璐', 32, '女', NULL); #4 CREATE TABLE t_hotel_bak AS SELECT * FROM t_hotel; #5 UPDATE t_client c SET c.integral = c.integral + 100 WHERE c.cname LIKE '姚%'; #6 tj11 SELECT c.cname, SUM(r.price) FROM t_booking b, t_client c, t_room r WHERE b.cid = c.cid AND b.rid = r.rid GROUP BY c.cid ORDER BY 2 DESC LIMIT 9, 1; #7 tj12 SELECT h.hname, r.price FROM t_hotel h, t_room r WHERE h.hid = r.hid AND r.rname = '大床房' AND r.price = ( SELECT MAX(price) FROM t_room WHERE rname = '大床房' ); #8 tj13 SELECT h.hname, r.rname, r.price FROM t_room r LEFT JOIN t_booking b ON r.rid = b.rid INNER JOIN t_hotel h ON r.hid = h.hid WHERE b.bid IS NULL; #9 视图 CREATE VIEW v_tongji AS SELECT h.hname, SUM(r.price) FROM t_hotel h, t_booking b, t_room r WHERE h.hid = r.hid AND b.rid = r.rid GROUP BY h.hid; ``` ### MySQL-2 ```sql #1添加主键 ALTER TABLE tb_student ADD PRIMARY KEY(student_id); #2设置默认值 ALTER TABLE tb_student ALTER gender SET DEFAULT '男'; #3 插入记录 INSERT INTO tb_student() VALUES(10025, '张三', DEFAULT, '2012-10-01', 1001); #4 更新记录 UPDATE tb_teacher t SET t.teacher_age = 36 WHERE t.teacher_name = '王老师'; #5 tj11 SELECT MAX(t.teacher_age) FROM tb_teacher t; #6 tj12 SELECT c.class_name, s.student_name, s.gender FROM tb_teacher t, tb_student s, tb_class C where s.class_id = c.class_id AND c.teacher_id = t.teacher_id; #7 视图 CREATE VIEW v_teacher AS SELECT c.class_name, t.teacher_name, COUNT(*) FROM tb_teacher t, tb_student s, tb_class C WHERE s.class_id = c.class_id AND c.teacher_id = t.teacher_id GROUP BY c.class_id, t.teacher_name; #8 DELIMITER $$ DROP TRIGGER IF EXISTS tri_updateTeacherAge; CREATE TRIGGER tri_updateTeacherAge BEFORE UPDATE ON tb_teacher FOR EACH ROW BEGIN IF NEW.teacher_age < 30 THEN SET NEW.age = '青年'; ELSEIF NEW.teacher_age < 50 THEN SET NEW.age = '中年'; ELSE SET NEW.age = '老年'; END IF; END $$ DELIMITER ; #9 DELIMITER $$ DROP PROCEDURE IF EXISTS Pro_GetOldClassStudent; CREATE PROCEDURE Pro_GetOldClassStudent(IN in_class_id INT, OUT out_student_name VARCHAR(50)) BEGIN SELECT s.student_name INTO out_student_name FROM tb_student s, tb_class c WHERE s.class_id = c.class_id AND c.class_id = in_class_id ORDER BY s.birthday LIMIT 1; END $$ DELIMITER ; CALL Pro_GetOldClassStudent(1001, @result); SELECT @result; ```