/*解法一: 头文件*/#include<stdio.h>#include<limits.h>#include<float.h>intmain(){/*signed type*/printf("signed char: max=%d, min=%d\n", SCHAR_MAX, SCHAR_MIN);printf("signed short int: max=%d, min=%d\n", SHRT_MAX, SHRT_MIN);printf("signed int: max=%d, min=%d\n", INT_MAX, INT_MIN);printf("signed long int: max=%ld, min=%ld\n", LONG_MAX, LONG_MIN);/*unsigned type*/printf("unsigned char: max=%u, min=%u\n", UCHAR_MAX,0);printf("unsigned short int: max=%u, min=%u\n", USHRT_MAX,0);printf("unsigned int: max=%u, min=%u\n", UINT_MAX,0);printf("unsigned long int: max=%lu, min=%u\n", ULONG_MAX,0);}/*解法二: 小技巧*/#include<stdio.h>intmain(){/*signed type*/printf("singned char min = %d, max = %d\n",-1-(char)((unsignedchar)~0>>1), \
(char)((unsignedchar)~0>>1));printf("signed short min = %d, max = %d\n",-1-(short)((unsignedshort)~0>>1),(short)((unsignedshort)~0>>1));printf("singned int min = %d, max = %d\n",-1-(int)((unsignedint)~0>>1),(int)((unsignedint)~0));printf("signed long min = %ld, max = %ld\n",-1-(long)((unsignedlong)~0>>1),(long)((unsignedlong)~0>>1));/*unsigned type*/printf("unsigned char max = %u, min = %u\n",(unsignedchar)~0,0);printf("unsigned short max = %u, min = %u\n",(unsignedshort)~0,0);printf("unsigned int max = %u, min = %u\n",(unsignedint)~0,0);printf("unsigned long max = %lu, min = %u\n",(unsignedlong)~0,0);return0;}
2.3
#include<stdio.h>inthtoi(char s[]){int result =0;while(*s){switch(*s){case'A':case'a':
result = result *16+10;break;case'B':case'b':
result = result *16+11;break;case'C':case'c':
result = result *16+12;break;case'D':case'd':
result = result *16+13;break;case'E':case'e':
result = result *16+14;break;case'F':case'f':
result = result *16+15;break;case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':
result = result *16+*s -'0';default:break;}
s++;}return result;}intmain(){char s[128];printf("Please a string of hex: ");scanf("%s", s);int result =htoi(s);printf("The result is %d\n", result);return0;}
2.4
#include<stdio.h>voidnewSqueeze(char s1[],char s2[]){int i =0, j =0, k =0;for(i =0; s1[i]!='\0'; i++){for(j =0; s2[j]!='\0'&& s1[i]!= s2[j]; j++);if(s2[j]=='\0'){
s1[k++]= s1[i];}}
s1[k]='\0';}intmain(){char s1[128];char s2[128];printf("Please input the first string: ");fgets(s1,127,stdin);printf("Please input the second string: ");fgets(s2,127,stdin);newSqueeze(s1, s2);printf("The deleted string: %s\n", s1);return0;}
2.5
#include<stdio.h>intany(char s1[],char s2[]){int i =0;int j =0;for(i; s1[i]!='\0'; i++){for(j=0; s2[j]!='\0'; j++){if(s1[i]== s2[j]){return i;}}}return-1;}intmain(){char s1[128];char s2[128];printf("Please input the first string: ");fgets(s1,127,stdin);printf("Please input the second string: ");fgets(s2,127,stdin);int pos =any(s1, s2);printf("The first character of s2 in the location of s1 \
is %d\n", pos+1);return0;}
2.3#include &amp;lt;stdio.h&amp;gt;int htoi(char s[]){ int result = 0; while(*s){ switch(*s){ case 'A': case 'a': result = result * 16 + 10; ...