C语言经典题目
回顾一下吧:
一、
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
解析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
常规写法:
#include<stdio.h> int main()
{
int i,j,k;
printf("\n");
for(i=;i<;i++) { // 以下为三重循环
for(j=;j<;j++) {
for (k=;k<;k++) { // 确保i、j、k三位互不相同
if (i!=k&&i!=j&&j!=k) {
printf("%d,%d,%d\n",i,j,k);
}
}
}
}
}
避免一些不必要的循环,下面是优化写法:
#include<stdio.h>
int main()
{
int i,j,k;
for(i=;i<;i++)
{
for(j=;j<;j++)
{
if(i==j)//百位与十位重复,跳过当前十位
continue;
for(k=;k<;k++)
{
if(i==k||j==k)//百位与个位重复,或十位与个位重复
continue;
printf("%d %d %d\n",i,j,k);
}
}
}
return ;
}
二、
企业发放的奖金根据利润提成。
- 利润(I)低于或等于10万元时,奖金可提10%;
- 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
- 20万到40万之间时,高于20万元的部分,可提成5%;
- 40万到60万之间时高于40万元的部分,可提成3%;
- 60万到100万之间时,高于60万元的部分,可提成1.5%;
- 高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润I,求应发放奖金总数?
#include<stdio.h>
int main()
{
double i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
printf("您好,请输入您的净利润:\n");
scanf("%lf",&i);
bonus1=*0.1;
bonus2=bonus1+*0.75;
bonus4=bonus2+*0.05;
bonus6=bonus4+*0.03;
bonus10=bonus6+*0.015;
if(i<)
{
bonus=i*0.1;
}
else if(i<=)
{
bonus=bonus1+(i-)*0.075;
}
else if(i<=)
{
bonus=bonus2+(i-)*0.05;
}
else if(i<=)
{
bonus=bonus4+(i-)*0.03;
}
else if(i<=)
{
bonus=bonus6+(i-)*0.015;
}
else if(i>)
{
bonus=bonus10+(i-)*0.001;
}
printf("您获得的提成为:bonus=%lf.\n",bonus); return ;
}
用循环优化:
#include<stdio.h>
int main()
{
int i;
double lirun;
double jiangjin = ;
float fanwei[] = {, , , , };
float ticheng[] = {0.1, 0.075, 0.05, 0.03, 0.015, 0.01};
printf("您好,请问您的净利润是多少?\n");
scanf("%lf", &lirun);
for (i=;i<;i++)
{
if (lirun < fanwei[i])
{
jiangjin += lirun * ticheng[i];
break;
}
else
{
jiangjin += fanwei[i] * ticheng[i];
lirun -= fanwei[i];
}
}
printf("提成是%.2lf\n", jiangjin); return ;
}
三、
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:
假设该数为 x。
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
/*一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?*/
#include<stdio.h>
int main()
{
int i,j,m,n,x;
for(i=;i</+;i++)
{
if(%i==)
{
j=/i;
if(i>j&&(i+j)%==&&(i-j)%==)
{
m=(i+j)/;
n=(i-j)/;
x=n*n-;
printf("%d+100=%d*%d\n",x,n,n);
printf("%d+100+168=%d*%d\n",x,m,m);
}
} }
return ;
}
四、
古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
分析(及其易懂了):
说明:δ1表示出生第一个月的兔子数量,δ2表示出生第二个的兔子数量,δ3表示出生第三个月即成熟的兔子数量(单位:对)。也就是只有标注为δ3的兔子对才能生出新的一对δ1。下面分析中我们直接以δ出现的个数表示现存的兔子对数。
第一个月:δ1 (1只)
第二个月:δ2 (1只)
第三个月:δ3+ δ1 (2只)
第四个月:δ3+ δ1+ δ2 (3只)
第五个月:δ3+ δ1+ δ2+ δ3+ δ1 (5只)
第六个月:δ3+ δ1+δ2+ δ3+ δ1+δ3+ δ1+δ2 (8只)
第七个月:δ3+δ1+δ2+δ3+δ1+δ3+δ1+δ2+δ3+δ1+δ2+δ3+δ1 (13只)
以此类推。。。(为便于观察理解,上述分析中,上下能对应的是同一只兔子的生长状态,纵向观察一下这些可爱的δ,有没有发现更容易理解了呢)
用数组:
#include <stdio.h> int main()
{
int n[],i; //i表示月份 n[]=; //赋值
n[]=;
n[]=; for(i=;i<;i++)//计算从第三个月开始的兔子数量,i=3
{
n[i]=n[i-]+n[i-];
} printf("month\tnumber\n"); //输出 for(i=;i<;i++)//输出自第一个月开始的兔子数量,i=1
{
printf("%d\t%d\n",i,n[i]);
}
return ;
}
下面是递归方式,运行一下你会发现,时间复杂度较大,运算效率很低:
//斐波那契数列 #include<stdio.h> int fibonaci(int i)
{
if(i == )
{
return ;
}
if(i == )
{
return ;
}
return fibonaci(i-) + fibonaci(i-);
} int main()
{
int i;
printf("month\tnumber\n");
for (i = ; i < ; i++)
{
printf("%d\t%d\n", i,fibonaci(i));
} return ;
}
五、
判断101到200之间的素数。
分析:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
#include<stdio.h>
#include<math.h> int main()
{
int i,j,k;
for(i=;i<;i++)
{
k=sqrt(i); //如果i不能被2~√i间任一整数整除,i必定是素数
for(j=;j<=k;j++) if(i%j==) break;
if(j>k) printf("%d\n",i);
}
}
六、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
#include<stdio.h> int main()
{
int i,x,y,z;
for(i=;i<;i++)
{
x=i%;//个位数
y=i/%;//十位数
z=i/%;//百位数 if(i==(x*x*x+y*y*y+z*z*z))
printf("%d\n",i);
}
return ;
}
七、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
- (1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。
- (2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
- (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
#include<stdio.h>
int main()
{
int n,i;
printf("请输入整数:");
scanf("%d",&n);
printf("%d=",n);
for(i=;i<=n;i++)
{
while(n%i==)
{
printf("%d",i);
n/=i;
if(n!=) printf("*");
}
} printf("\n");
return ;
}
八、输入两个正整数m和n,求其最大公约数和最小公倍数。
程序分析:
(1)最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数;
(2)求最大公约数用辗转相除法(又名欧几里德算法)
1)证明:设c是a和b的最大公约数,记为c=gcd(a,b),a>=b,
令r=a mod b
设a=kc,b=jc,则k,j互素,否则c不是最大公约数
据上,r=a-mb=kc-mjc=(k-mj)c
可知r也是c的倍数,且k-mj与j互素,否则与前述k,j互素矛盾,
由此可知,b与r的最大公约数也是c,即gcd(a,b)=gcd(b,a mod b),得证。
2)算法描述:
第一步:a ÷ b,令r为所得余数(0≤r<b);
第二步:互换:置 a←b,b←r,并返回第一步。
附:辗转相除法
有两整数a和b:
① a%b得余数c
② 若c=0,则b即为两数的最大公约数
③ 若c≠0,则a=b,b=c,再回去执行①
例如求27和15的最大公约数过程为:
27÷15 余1215÷12余312÷3余0因此,3即为最大公约数
#include<stdio.h>
int main()
{
int a,b,t,r;
printf("请输入两个数字:\n");
scanf("%d %d",&a,&b);
if(a<b)
{
t=b;
b=a;
a=t;
}
r=a%b;
int n=a*b;
while(r!=)//辗转相除法
{
a=b;
b=r;
r=a%b;
}
printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b);
return ;
}
九、打印出杨辉三角形(要求打印出10行)。
#include <stdio.h> int main()
{
int i,j;
int a[][];
printf("\n");
for(i=;i<;i++) {
a[i][]=;
a[i][i]=;
}
for(i=;i<;i++)
for(j=;j<i;j++)
a[i][j]=a[i-][j-]+a[i-][j];
for(i=;i<;i++) {
for(j=;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
结构如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
十、创建一个链表。
分析:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node *next;
}node,*Linklist; Linklist CreateList(int n)
{
int i = ;
Linklist L,rear,s;
L = (node*)malloc(sizeof(node));
if(!L)
return ;
L->next = NULL;
rear = L;
while(n)
{
s = (Linklist)malloc(sizeof(node));
printf("请输入第%d个数:",i++);
scanf("%d",&(s->data));
rear->next = s;
rear = s;
n--;
}
rear->next = NULL;
return L;
}
void Print(Linklist L)
{
Linklist p = L->next;
while(p)
{
printf("%d ",p->data);
p = p->next;
}
} int main(void)
{
Linklist L = NULL;
int n;
printf("请输入数据个数:\n");
scanf("%d",&n);
L = CreateList(n);
Print(L);
printf("\n");
return ;
}
十一、反向输出一个链表。
#include <stdio.h>
#include <stdlib.h> struct list
{
int data;
struct list *next;
}; typedef struct list node;
typedef node *link; void main()
{
link ptr, head, tail;
int num, i;
tail=(link)malloc(sizeof(node));
tail->next=NULL;
ptr=tail;
printf("Please enter 5 data ==>\n");
for(i=; i <= ; i++)
{
scanf("%d", &num);
ptr->data=num;
head=(link)malloc(sizeof(node));
head->next=ptr;
ptr=head;
}
ptr=ptr->next;
while(ptr != NULL)
{
printf("The value is ==>%d\n", ptr->data);
ptr=ptr->next;
}
}
十二、连接两个链表。
#include <stdlib.h>
#include <stdio.h>
struct list
{
int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{
if (tmp==NULL) /*delete first node*/
return pointer->next;
else
{
if(tmp->next->next==NULL)/*delete last node*/
tmp->next=NULL;
else /*delete the other node*/
tmp->next=tmp->next->next;
return pointer;
}
}
void selection_sort(link pointer,int num)
{
link tmp,btmp;
int i,min;
for(i=;i<num;i++)
{
tmp=pointer;
min=tmp->data;
btmp=NULL;
while(tmp->next)
{
if(min>tmp->next->data)
{
min=tmp->next->data;
btmp=tmp;
}
tmp=tmp->next;
}
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
}
}
link create_list(int array[],int num)
{
link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[];
tmp1=pointer;
for(i=;i<num;i++)
{
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer1,link pointer2)
{
link tmp;
tmp=pointer1;
while(tmp->next)
tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
int main(void)
{
int arr1[]={,,,,};
link ptr;
ptr=create_list(arr1,);
selection_sort(ptr,);
}
十三、输入一个整数,并将其反转后输出。
#include <stdio.h>
int main()
{
int n,reverseNumber=,remainder; printf("请输入一个整数:");
scanf("%d",&n); while(n!=)
{
remainder=n%;
reverseNumber=reverseNumber*+remainder;
n/=;
}
printf("反转后的整数是:%d\n",reverseNumber);
return ;
}
十四、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)。
#include<stdio.h>
#include<stdlib.h>
double evenumber(int n);
double oddnumber(int n); int main()
{
int n;
double r;
double (*pfunc)(int);
printf("请输入一个数字:");
scanf("%d",&n);
if(n%==) pfunc=evenumber;//偶数
else pfunc=oddnumber;//奇数 r=(*pfunc)(n);
printf("%lf\n",r); system("pause");
return ;
}
double evenumber(int n)//偶数时,执行1/2+1/4+...+1/n
{
double s=,a=;
int i;
for(i=;i<=n;i+=)
{
a=(double)/i;
s+=a;
}
return s;
}
double oddnumber(int n)//奇数时,执行1/1+1/3+...+1/n
{
double s=,a=;
int i;
for(i=;i<=n;i+=)
{
a=(double)/i;
s+=a;
}
return s;
}
十五、填空练习(指向指针的指针)。
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *s[]={"man","woman","girl","boy","sister"};
char **q;
int k;
for(k=;k<;k++)
{
q=&s[k]; /*在这里填入内容*/
printf("%s\n",*q);
}
return ;
}
十六、八进制转换为十进制
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n=,i=;
char s[];
printf("请输入一个8进制数:\n");
gets(s);
while(s[i]!='\0'){
n=n*+s[i]-'';
i++;
}
printf("刚输入的8进制数转化为十进制为\n%d\n",n); return ;
}
十七、求0—7所能组成的奇数个数。
程序分析:
这个问题其实是一个排列组合的问题,设这个数为 sun=a1a2a3a4a5a6a7a8,a1-a8 表示这个数的某位的数值,当一个数的最后一位为奇数时,那么这个数一定为奇数,不管前面几位是什么数字。如果最后一位数为偶数,则这个数一定为偶数。
a1-a8可以取 0-7 这个八个数字,首位数字不为 0。
从该数为一位数到该数为8位数开始统计奇数的个数:
- 1.当只有一位数时也就是该数的最后一位,奇数个数为4
- 2.当该数为两位数时,奇数个数为4*7=28
- 3.当该数为三位数时,奇数个数为:4*8*7=224
- ...
- 8.当该数为八位数时,奇数个数为:4*8*8*8*8*8*8*7(依次为最后一位到第一位)
#include<stdio.h>
int main(int agrc, char*agrv[])
{
long sum = , s = ;//sum的初始值为4表示,只有一位数字组成的奇数个数为4个
int j;
for (j = ; j <= ; j++)
{
printf("%d位数为奇数的个数%ld\n", j-, s);
if (j <= )
s *= ;
else
s *= ;
sum += s;
}
printf("%d位数为奇数的个数%ld\n", j-, s);
printf("奇数的总个数为:%ld\n", sum);
// system("pause");
return ;
}
十八、一个偶数总能表示为两个素数之和。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int Isprimer(unsigned int n);
int main()
{
unsigned int n,i;
do{
printf("请输入一个偶数:\n");
scanf("%d",&n);
}while(n%!=);
for(i=;i<n;i++)
if(Isprimer(i)&&Isprimer(n-i))
break;
printf("偶数%d可以分解成%d和%d两个素数的和\n",n,i,n-i); return ;
}
int Isprimer(unsigned int n)
{
int i;
if(n<)return ;
else if(n%==)return ;
else
for(i=;i<sqrt(n)+;i++)
if(n%i==)return ; return ;
}
十九、判断一个素数能被几个9整除。
分析:这道题的意思应该是判断一个数能被含有且只含有若干个9的数字整除。素数是不能被除1和自身之外的数整除的
#include<stdio.h>
#include<stdlib.h>
int main()
{
int p,i;
long int sum=;
printf("请输入一个素数:\n");
scanf("%d",&p);
for(i=;;i++)
if(sum%p==)break;
else sum=sum*+; printf("素数%d能整除%d个9组成的数%ld\n",p,i,sum);
return ;
}
二十、将两个字符串连接。
#include <stdio.h>
#include<stdlib.h>
#include<string.h> char* strconnect(char *str1,char *str2); int main()
{
char str1[],str2[];
char *str;
puts("请输入两个字符串,用回车分开:");
scanf("%s%s", str1, str2);
str=strconnect(str1,str2);
puts("连接后的字符串为:");
puts(str);
return ;
}
char* strconnect(char *str1,char *str2)
{
char*str;
str=(char*)malloc(strlen(str1)+strlen(str2)+);
str[]='\0';
strcat(str,str1);
strcat(str,str2);
return str;
}
二十一、
读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的 *。
#include <stdio.h>
void Print(int n)
{
for(int i=;i<n;i++)
printf("*");
printf("\n");
}
int main()
{
int n;
for(int i=;i<;i++)//7:每轮只能输出7次,之后程序退出
{
printf("你想输出几颗星:",n);
scanf("%d",&n);
Print(n);
}
return ;
}
二十二、猜谜游戏。
#include <stdio.h>
#include <stdlib.h>
#include <time.h> void caizi(void)
{
int n;
char begin;
int count = ;
srand((int)time(NULL));
int m = (rand() % ) + ;
puts("游戏开始,请输入数字:");
while ()
{
scanf("%d", &n);
if (n == m)
{
printf("猜中了,使用了 %d 次!\n", count);
if (count == )
{
printf("你是神级人物了!膜拜\n");
getchar();
printf("你已经达到最高级别,还需要玩吗?Y/N \n");
scanf("%c", &begin);
if (begin == 'Y' || begin == 'y') //重复玩的一个嵌套循环
{
caizi();
}
else
{
printf("谢谢,再见!\n");
}
}
else if (count <= )
{
printf("你是王级人物了!非常赞\n");
getchar();
printf("需要挑战最高级别不?Y/N \n");
scanf("%c", &begin);
if (begin == 'Y' || begin == 'y')
{
caizi();
}
else
{
printf("谢谢,再见!\n");
}
}
else if (count <= )
{
printf("你是大师级人物了!狂赞\n");
getchar();
printf("需要挑战最高级别不?Y/N \n");
scanf("%c", &begin);
if (begin == 'Y' || begin == 'y')
{
caizi();
}
else
{
printf("谢谢,再见!\n");
}
}
else if (count <= )
{
printf("你是钻石级人物了!怒赞\n");
getchar();
printf("需要挑战最高级别不?Y/N \n");
scanf("%c", &begin);
if (begin == 'Y' || begin == 'y')
{
caizi();
}
else
{
printf("谢谢,再见!\n");
}
}
else
{
getchar();
printf("你的技术还有待提高哦!重玩? Y/N\n");
scanf("%c",&begin);
if (begin == 'Y' || begin == 'y')
{
caizi();
}
else
{
printf("谢谢,再见!\n");
}
}
break;
}
else if (n < m)
{
puts("太小了!");
puts("重新输入:");
}
else
{
puts("太大了!");
puts("重新输入:");
}
count++;//计数器 }
} int main(void)
{ caizi();
system("pause");
return ;
}
二十三、简单的结构体应用实例。
#include <stdio.h> struct programming
{
float constant;
char *pointer;
}; int main()
{
struct programming variable;
char string[] = "https://home.cnblogs.com/u/ariel-dreamland/"; variable.constant = 1.23;
variable.pointer = string; printf("%f\n", variable.constant);
printf("%s\n", variable.pointer); return ;
}
二十四、计算字符串中子串出现的次数 。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,k,TLen,PLen,count=;
char T[],P[];
printf("请输入两个字符串,以回车隔开,母串在前,子串在后:\n");
gets(T);
gets(P);
TLen=strlen(T);
PLen=strlen(P);
for(i=;i<=TLen-PLen;i++)
{
for(j=,k=i;j<PLen&&P[j]==T[k];j++,k++)
;
if(j==PLen)count++;
}
printf("%d\n",count);
system("pause");
return ;
}
C语言经典题目的更多相关文章
- C#部分---语言经典题目——兔子生兔子
根据本月成兔=上月成兔+上月小兔:本月小兔=上月幼兔:本月幼兔=本月成兔 利用while循环: Console.WriteLine("请输入月份:"); //int m = int ...
- C语言经典例题100
C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...
- C语言经典100例(51-100)
[程序51] 题目:学习使用按位与 & . 分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 #include "stdio.h" ...
- C语言经典100例(1-50)
[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去掉不满足条件的排列. main ...
- 嵌入式软件工程师C语言经典笔试1
一. 预处理器(Preprocessor) 1.1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 6 ...
- C语言经典100例-ex002
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- C语言经典100例-ex001
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- C语言经典88案例,我文科妹妹说她都学会了!
案例ex01: 将字符串转换为一个整数 1 题目 函数:fun() 功能:将字符串转换为一个整数 描述: [不能使用C语言提供的字符串函数] 输入:字符串"-1234" 输出:整型 ...
- 学习心得:《十个利用矩阵乘法解决的经典题目》from Matrix67
本文来自:http://www.matrix67.com/blog/archives/tag/poj大牛的博文学习学习 节选如下部分:矩阵乘法的两个重要性质:一,矩阵乘法不满足交换律:二,矩阵乘法满足 ...
随机推荐
- ORM框架SQLAlchemy
SQLAlchemy orm英文全称object relational mapping,就是对象映射关系程序,简单来说就是类似python这种面向对象的程序来说一切皆对象,但是使用的数据库却都是关系型 ...
- Spring 简单使用IoC与DI——XML配置
目录 Spring简介 导入jar包 Spring配置文件 Spring的IoC IoC简介 快速使用IoC Spring创建对象的三种方式 使用构造方法 使用实例工厂 使用静态静态工厂 Spring ...
- c语言提高篇 第一天
一.听课标准 1.选择法排序 2.会简单封装函数 3.数组做函数参数会退化为一级指针 a.数组做函数参数时,应该吧数组元素个数也传递给函数 b.形参中的数组,编译器把它仿作指针处理,c语言特色 c.实 ...
- Comparable vs Comparator
Comparable interface can be used to provide single way of sorting whereas Comparator interface is us ...
- 17.kubernete的dashboard
部署dashboard kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/depl ...
- 数据分析---《Python for Data Analysis》学习笔记【04】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- Django admin组件源码流程
admin 组件 Django 自带的用户后台组件 用于用户便携的操作 admin 组件核心 启动 注册 设计url 启动核心代码 每个app 通过 apps.py 扫描 admin.py 文件 并执 ...
- css经常使用的六种文本样式
css当中经常使用的六种文本样式 css 文本样式是相对于内容进行的样式修饰,下面来说下几种常见的文本样式. 首行缩进 首行缩进是将段落的第一行缩进,这是常用的文本格式化效果.一般地,中文写作时开头空 ...
- centos7关闭ipv6
方法一: 编辑文件 /etc/sysctl.conf ,新增以下两行 net.ipv6.conf.all.disable_ipv6 = net.ipv6.conf.default.disable_ip ...
- <三>企业级开源仓库nexus3实战应用–使用nexus3配置maven私有仓库
一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...