298 lines
6.3 KiB
Markdown
298 lines
6.3 KiB
Markdown
### C语言-1
|
||
|
||
```c
|
||
/*------------------------------------------------------------------------------
|
||
(1)【程序设计】下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。
|
||
例如,给字符串s输入:AAaaBBbb123CCcccd,则应输出:upper=6,lower=8。
|
||
------------------------------------------------------------------------------*/
|
||
#include <stdio.h>
|
||
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 <stdio.h>
|
||
#include <string.h>
|
||
void fun(char *str, int k, int n )
|
||
{
|
||
int i,j; char t;
|
||
for(i=k-1,j=k-1+n-1;i<j;i++,j--)
|
||
{
|
||
/**********Program**********/
|
||
t = str[i];
|
||
str[i] = str[j];
|
||
str[j] = t;
|
||
|
||
/********** End **********/
|
||
}
|
||
}
|
||
int main( )
|
||
{
|
||
char str[]="12345abcde";
|
||
unsigned int k,n;
|
||
scanf("%d,%d",&k,&n);
|
||
if(k+n-1<=strlen(str))
|
||
{ fun(str,k,n);
|
||
puts(str); }
|
||
else
|
||
printf("所输入的k,n值不合适!\n");
|
||
return 0;
|
||
}
|
||
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
### C语言-3
|
||
|
||
```c
|
||
/*------------------------------------------------------------------
|
||
功能:编程统计一个字符串中的字母、数字、空格和其它字符的个数。
|
||
---------------------------------------------------------------------*/
|
||
#include <stdio.h>
|
||
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<stdio.h>
|
||
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;
|
||
```
|
||
|