1、现有文件test.c\test1.c\main.c,编写Makkefile
代码:
CC=gcc
EXE=a.out
OBJS=$(patsubst %.c,%.o,$(wildcard *.c))
CFLAGS=-c -oall:$(EXE)$(EXE):$(OBJS)$(CC) $^ -o $@%.o:%.c$(CC) $(CFLAGS) $@ $^.PHONY:cleanclean:@rm $(OBJS) $(EXE)
运行结果:
2、C编程实现:输入一个字符串,计算单词个数
例如:"this is a boy"
输出单词个数:4个
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main(int argc, const char *argv[])
{char str[30]="";printf("please enter str:");gets(str);int num=0;char c;for(int i=0;str[i]!='\0';i++){if(str[i]==' '){num++;}}printf("len=%d\n",num+1);return 0;
}
运行结果:
3、在终端输入一个文件名,判断文件的类型
代码:
#!/bin/bashread -p "please enter file:" file #提示输入文件名if [ -b ./$file ] #判断是否是块设备文件
thenecho block
elif [ -c ./$file ] #判断是否是字符设备文件
thenecho character
elif [ -d ./$file ] #判断是否是目录文件
thenecho directory
elif [ -f ./$file ] #判断是否是普通设备文件
thenecho file
elif [ -L ./$file ] #判断是否是软链接文件
thenecho line
elif [ -S ./$file ] #判断是否是套接字文件
thenecho socket
elif [ -p ./$file ] #判断是否是管道文件
thenecho pipe
elseecho unexist #若文件不存在输出不存在
fi
运行结果:
4.字符串倒置:(注意:是倒置,而不是直接倒置输出)
原字符串为:char *str =“Iam Chinese
倒置后为:“Chinese am I”
附加要求:删除原本字符串中多余的空格
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{char str[30]="";printf("please enter str:");gets(str);puts(str);//整体逆置int i=0,j=strlen(str)-1;while(i<j){char t=str[i];str[i]=str[j];str[j]=t;i++;j--;}//单词逆置i=j=0;while(str[i]!='\0'){while(str[j]!=' ' && str[j]!='\0')//循环到一个单词结束{j++;}int k=j-1;//用k存储j-1的下标while(i<k)//字符串逆置{char t=str[i];str[i]=str[k];str[k]=t;i++;k--;}while(str[j]==' ')//j跨过空格,找到下一个单词{j++;}i=j;}i=j=0;while(str[i]!='\0'){if(str[i]!=' ')printf("%c",str[i]);i++;}puts("");return 0;
}