1 数据结构
(1)顺序三元组
要求:实现一个顺序三元组
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
using namespace std;
void xianshi(int*T){
cout<<T[0]<<" "<<T[1]<<" "<<T[2]<<endl;
}
int tishi(){
int k;
cout<<"请输入要执行的操作:"<<endl;
cin>>k;
cout<<endl;
cout<<"1、生成三元组"<<endl;
cout<<"2、销毁三元组"<<endl;
cout<<"3、获取第i个位置的数字"<<endl;
cout<<"4、更改第i个位置的数字"<<endl;
cout<<"5、判断三元组是否升序"<<endl;
cout<<"6、判断三元组是否降序"<<endl;
cout<<"7、获取三元组中最大值"<<endl;
cout<<"8、获取三元组中最小值"<<endl;
cout<<"9、三元组求和"<<endl;
cout<<"0、退出程序"<<endl;
return k;
}
/*生成三元组*/
bool InitTriplet(int* &T,int v1,int v2, int v3){
T = NULL;
T = (int*) malloc(3*sizeof(int));
if(sizeof(T) == 0) {
return false;
}
T[0] = v1;
T[1] = v2;
T[2] = v3;
return true;
}
/*销毁三元组*/
bool DestroyTriplet(int* T){
free(T);
T = NULL;
if(T != NULL)return false;
return true;
}
/*获取第i位置元素*/
bool Get(int* T,int i,int* e){
if(i<1||i>3)return false;
*e = T[i-1];
return true;
}
/*更改第i位置元素*/
bool Put(int* &T,int i,int e){
if(i<1||i>3)return false;
T[i-1] = e;
return true;
}
/*求最大值*/
bool Max(int* T,int& e){
e = (T[0] >= T[1])?((T[0] >= T[2])?T[0]:T[2]):((T[1] >= T[2])?T[1]:T[2]);
return true;
}
/*求最小值*/
bool Min(int* T,int& e){
e = (T[0] <= T[1])?((T[0] <= T[2])?T[0]:T[2]):((T[1] <= T[2])?T[1]:T[2]);
return true;
}
/*判断是否降序*/
bool IsDescending(int* T){
return (T[0] >= T[1])&&(T[1] >= T[2]);
}
/*判断是否升序*/
bool IsAscending(int* T){
return (T[0] <= T[1])&&(T[1] <= T[2]);
}
/*求和*/
int Sum(int *T){
return T[0] + T[1] + T[2];
}
int main(){
int k = 1;
int *T = NULL;
while(k){
k = tishi();
if(k==1){
int v1,v2,v3;
cout<<"请输入三个数字:";
cin>>v1>>v2>>v3;
InitTriplet(T,v1,v2,v3);
cout<<"其元素为";
xianshi(T);
}
if(k==2){
if(DestroyTriplet(T))cout<<"销毁成功!"<<endl;
else cout<<"销毁失败"<<endl;
}
if(k==3){
int i,v;
cout<<"请输入要查询的位置:";
cin>>i;
int e;
while(!Get(T,i,&e)){
cout<<"超出范围,请重新输入:";
cin>>i;
}
cout<<"T["<<i<<"] = "<<e<<endl;
}
}
if(T != NULL)free(T);
return 0;
}
2 Ubuntu Linux
(1)编写一个Shell脚本,能够比较两个交互式输入的整数的大小。
#!/home/sun
echo "Please input x y:"
read x y
if test $x -eq $y
then
echo "$x=$y"
elif test $x -gt $y
then
echo "$x>$y"
elif test $x -lt $y
then
echo "$x<$y"
else
echo "input error!"
fi
(2)编写一个Shell脚本,删除当前路径下所有长度为0的文件
#!/home/sun
rm `find -empty`
(3)编写一个Shell脚本,统计当前路径下所有以f开头的文件
#!/home/sun
echo "当前目录下目录的个数:"
ls -lR |grep "^d"|wc -l
echo "当前目录下文件的个数:"
ls -lR |grep "^-"|wc -l
echo "当前目录下以f开头的文件的个数"
ls -lR |grep "^-"|wc -l
echo "success!"