1. 编写一个函数find(s,c),在给定字符串s中查找字符c,返回c在s中第一次出现时所在的地址。如果找不到,返回NULL。 {{{#!cplusplus /*sample code*/ char *find(char *s, int c) { for(;*s!='\0';s++) if(*s==c) return s; return NULL; } }}} {{{ int find(char s[], int c) { int i; for(i = 0; s[i]!='\0'; i++) s[i]!=c; return i; } return 0; } find(char s[], char c) { int i; for(i=0; s[i] != '\0';) { if(s[i] = c) return c; else i++; } return NULL; } void find(s, c) { int *p; while((s=getchar())!=EOF) { for(p=0; *p!=c; p++) if *p = c return p; else return NULL; } } void find(char s[], c) { int i, j; for(i=0; i0) return i; } return NULL; } }}} 1. 写一个函数transpose(a)转置方阵a。a是一个N行N列的二维数组。N为常数。 {{{#!cplusplus /*sample code*/ int transpose(int a[N][N]) { int i, j; for(i=0; ia = c1->a + c2->a; c3->i = c1->i + c2->i; return struck complex c3; } }}} 1. 给定strfilter函数,给定main函数,请写isnotalnum函数,使得程序能够删除字符串中非数字非英文字母的字符。 {{{#!cplusplus /*sample code*/ void strfilter(char s[], int (*fun)(int) ) { int i, j; for(i=j=0; s[i]!='\0'; i++) if( !(*fun)(s[i]) ) s[j++] = s[i]; s[j] = '\0'; } main() { char str[]="Hello, 123"; strfilter(str, isnotalnum);/*Hello123*/ printf("%s\n", str); } }}} {{{#!cplusplus int isnotalnum(int c) { return !isdigit(c) && !isalpha(c); } }}} {{{ void isnotalnum(char s[]) { int i, j; for(i=j=0; s[i] != '\0'; i++) if(isalnum(s[i])) s[j++] = s[i]; s[j] = '\0'; } int isnottalnum(int c) { if(c>='0' || c=<'9') return 1; else if(c>='a' || c<='z') return 1; else if(c>='A' || c<=Z) return 1; else return -1; } }}} 1. 写一个程序,输出所有命令行参数中最大的一个。比如程序名字为max,输入命令max aa cc dd bb运行程序,程序输出dd。 {{{#!cplusplus /*sample code*/ #include int main(int argc, char *argv[]) { int i, max = 1; for(i = 2; i < argc; i++) if(strcmp(argv[i], argv[max])>0) max = i; if( max < argc) printf("%s", argv[i]); } }}} {{{ #include #include int main(int argc, char *argv[]) { int i, j; i = 1; while(i 1) qsort(v, 1, argc); printf("%s", argv[argc-1]); printf("\n"); return 0; } int main(int argc, char *argv[]) { int i; char *t; if(argc!=1) { t = argv[1]; for(i=2; i