c语言中OJ对scanf!=EOF的处理

#include
int main(){
char ch;
while (scanf("%c",&ch)==1);
printf(ch%2?"ji\n":"ou\n");
return 0;
}
这是代码,判断一个超级大的数的奇偶 放到OJ上是对的 那为什么OJ输入数据后会知道怎么停下来读取而不是超时?有大神能解答一下嘛~

2个回答

EOF并不能被char读入

wingrez
wingrez 回复因爱而生灬: scanf()会对EOF做处理,返回-1,此时不满足循环条件,退出循环
2 年多之前 回复
wingrez
wingrez 回复因爱而生灬: OJ会在测试数据后面加入一个EOF。这个程序逐个读入字符,直到最后一个字符(EOF不能读入),对最后一个字符作处理。
2 年多之前 回复
hansong_yeah
因爱而生灬 嗯 我指的是上面那个代码 OJ是如何停下来的
2 年多之前 回复

while(scanf("%d", &a) != EOF)
{

}

在数据全部测试过后会给你的程序发送一个ctrl+z你的程序就停下来了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
while(scanf(" %c%c",&a)!=EOF)要打两个Ctrl+Z才会结束,怎么使它用一个Ctrl+Z结束?

这是我的代码: #include <stdio.h> #include <stdlib.h> int panduan(char input) { if(input=='"'||input=='\''||input==';'||input==','||input==':'||input=='('||input==')'||input=='['||input==']'||input=='{'||input=='}'||input=='#') return 1; else return 0; } int main() { char input; while(scanf(" %c%c",&input)!=EOF){ fflush(stdin); if(panduan(input)) printf("accept\n"); else printf("not accept\n"); } } 测试结果: ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554716276_540195.png) oj平台很严格,题目描述如下: ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554716494_122586.png)

关于while(1==scanf("%d",&a)!=EOF)

如果代码输入中去掉1==,oj可以通过,而加上则会出现超时的问题,不太明白为什么.只了解scanf的返回值是一个成功输入参数的个数。想知道为什么多出一个1==的判断就会在oj出现超时的情况

有关结构数组qsort的问题编译运行没问题,但是过不去oj,求教。

输入: 多组输入数据对于每组数据,第一个数为n(1<=n<=10000),表示共有n名同学,接下来分别为各位同学的姓名(不超过12个字符,没有空格),学号(int范围内),成绩(0<=grade<=100)。接下来一个数m,表示共有m组查询,每行只有一个学号,请输出该同学对应的信息。 输出: 每组查询输出一行,分别为该同学的姓名,学号,成绩(保留两位小数),以及该同学的排名。排名按照降序排列,即成绩高的在前,若成绩相同,则学号小的在前。如果查询的学号没有对应的同学,输出”Only god knows where he is."。请问下程序有什么错误? ``` #include<stdio.h> #include<stdlib.h> #include<math.h> struct student{ char c[13]; int number; double grade; }; //建立结构体存放名字,学号,成绩 void search(int ); int cmp(const void *,const void *); int main() { int n; while(scanf("%d",&n)!=EOF) { search(n); //查找成绩及排名 } return 0; } int cmp(const void *a,const void *b) { struct student *x = (student *)a; struct student *y = (student *)b; if(abs(x->grade - y->grade)>0.001) return (y->grade - x->grade); //学号升序 else return (x->number - y->number); //成绩降序 } void search(int n) { int i,j; struct student a[n]; for(i = 0;i < n;i++) scanf("%s %d %lf",&a[i].c,&a[i].number,&a[i].grade); qsort(a,n,sizeof(a[0]),cmp); //快排 int m,target,flag; scanf("%d",&m); while(m--) { scanf("%d",&target); //m次查找 flag = 0; for(i = 0;i < n;i++) { if(target==a[i].number) { printf("%s %d %.2f %d",a[i].c,a[i].number,a[i].grade,i+1); flag = 1; //找到输出各项信息 break; } } if(!flag) printf("Only god knows where he is."); //未找到按题意要求输出 printf("\n"); } } ```

大一新生 学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?

``` #include<stdio.h> #include<string.h> int main() { int len2,len1,i,max,n; while(scanf("%d",&n)!=EOF) { char s1[2000]={0},s2[1000]={0}; gets(s1); gets(s2); len1=strlen(s1); max=0; for(i=1;i<len1;i++)//寻找一串字符中最大的字符 { if(s1[i]>s1[max]) max=i; } len2=strlen(s2); for(i=len1-1;i>=max+1;i--)//将s1字符串中最大字符后面的字符移动len2个位置 { s1[i+len2]=s1[i]; } for(i=max+1;i<=max+len2;i++)//将s2中的字符插入到s1当中 { s1[i]=s2[i-max-1]; } puts(s1); } return 0; } ``` 问题:给定两个字符串s和t,在s字符串中的最大字符后边插入字符串t。 输入:测试数据有多组,每组包含两个字符串s和t,分别占两行,均不超过100个字符。 输出:对于每组测试数据,输出插入后的新字符串,单独占一行。若有多个最大字符,则插在第一个之后。 我试了很多组数据都对了(用的dev c++),但是在学校的oj上还是wa

杭电c入门简单问题 求指导一下

题目如下 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 Input 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 Output 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。 Sample Input 3 3 -4 2 4 0 1 2 -3 0 Sample Output -4 3 2 -3 2 1 0 Author lcy Source 我编的代码如下 ## **#include <stdio.h> ## int main() ## { ## int n; ## int a[1000]; ## int b[1000]; ## int c[1000]; ## int i; ## int h; ## int q; ## int k; ## while(scanf("%d",&n)!=EOF) ## { ## for(i=0;i<n;i++) ## { ## scanf("%d",&a[i]); ## } ## for(i=0;i<n;i++) ## { ## if(a[i]<0) ## { ## b[i]=-1*a[i]; ## } ## else ## { ## b[i]=a[i]; ## } ## } ## h=0; ## q=0; ## for(k=1;k<=n;k++) ## { ## for(i=1;i<n;i++) ## { ## if(b[h]<b[i]) ## { ## h=i; ## } ## } ## c[q]=b[h]; ## if(c[q]==a[h]) ## { ## if(q!=n) ## { ## printf("%d ",c[q]); ## ## } ## if(q==(n-1)) ## { ## printf("%d\n",c[q]); ## ## } ## } ## if(c[q]!=a[h]) ## { ## ## c[q]=-1*c[q]; ## if(q!=n) ## { ## ## printf("%d ",c[q]); ## ## ## } ## if(q==(n-1)) ## { ## printf("%d\n",c[q]); ## ## ## } ## } ## b[h]=0; ## h=0; ## q=q+1; ## } ## ## ## } ## return 0; ## }** 问题是我最后输出的时候老是多输出最后一个数字,如我输入3 -4 5 1 输出的应该是5 -4 1但是我的是5 -4 1 1 不太明白最后的1 在哪里输出的求大神帮忙看看那里的问题应该如何解决谢谢了

北大oj1001,求求路过的大佬帮我看看为什么不能ac

#include<stdio.h> #include<string.h> void multiply(int* n1,int* n2); //n1*n2,并且将结果放到n2 int main() { char r[7]; int n,i,j,point,res[250],num[5]; int len =250; while(scanf("%s%d",r,&n)!=EOF) { point = 0; while(r[point]!='.')point++; //point=小数点之前的数位 for(i=point;i<5;i++) r[i]=r[i+1]; point = 5-point; point *= n; //最终结果小数点最多有 point位 for(i=4;i>=0;i--) num[4-i] = r[i]-'0'; memset(res,0,sizeof(res)); res[0] = 1; for(i=0;i<n;i++) multiply(num,res); while(res[len]) { len--; } while(res[len] == 0) { len--; } for(i=len;i>=point;i--) printf("%d",res[i]); for(i=0;i<point;i++) if(res[i]!=0) break; if(i < point) { printf("."); for(j=point-1;j>=i;j--) printf("%d",res[j]); } printf("\n"); } return 0; } void multiply(int* n1,int* n2) { int i,j,tmp[250]; memset(tmp,0,sizeof(tmp)); for(i=0;i<5;i++) for(j=0;j<250;j++) tmp[i+j] += n1[i] * n2[j]; for(i=0;i<250;i++){ tmp[i+1] += tmp[i]/10; tmp[i] %= 10; } memcpy(n2,tmp,sizeof(tmp)); }

杭电oj2000题, c语言,我的程序不对,那应该是什么样子的

#include "stdio.h" int main() { char max,x,y,z; scanf("%c%c%c",&x,&y,&z); while( scanf(%c%c%c,&x,&y,&z)!=EOF) { if( 'x'>'y' ) if( 'y'>'z') printf("%c %c %c\n",z,y,x); else if( 'x'>'z' ) printf("%c %c %c\n",y,z,x); else printf("%c %c %c\n",y,z,x); else if( 'y'<'z' ) printf("%c %c %c\n",x,y,z); else if( 'x'>'z' ) printf("%c %c %c\n",z,x,y); else printf("%c %c %c\n",x,z,y); } return 0; }

oj快速幂取余问题,最后结果再次取余为什么判对

快速幂问题,求a的b次方与p的模: 请问为什么return b;是WA,return b%z就对了,加不加%z不都是一样的吗? ``` #include<stdio.h> long long mi(long long x,long long y,long long z); long long mi(long long x,long long y,long long z) { long long a=x; long long b=1; a=a%z; while(y!=0) {if(y%2==1) b=(b%z*a%z)%z; a=(a*a)%z; y=y/2;} return b%z } int main() { long long o,p,q; while(scanf("%lld %lld %lld",&o,&p,&q)!=EOF) {printf("%lld\n",mi(o,p,q));} return 0; } ``` (小萌新求真相)

杭电oj2012素数判定 可以运行为什么通不过

#include "stdio.h" int main() { int x,y,n,j,s; while( scanf("%d%d",&x,&y)!=EOF) { if( x==0 && y==0 ) break; else { for( n=x; n<=y; n++ ) { s=n*n+n+41; for( j=2; j<=s/2; j++ ) { if( s%j==0 ) { printf("Sorry\n"); break; } } } } printf("OK\n"); } }

菜鸟OJ, C语言数简单列求和, 感觉测试没错, 但是wrong answer, 求大神指点

Description 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13... 求出这个数列的前n项之和。 Input 多测试用例,每个测试用例一行,每行是一个正整数n Output 为每个测试用例单独输出一行:该数列的前n项之和。结果均保留小数点后10位。 Sample Input 1 2 3 Sample Output 2.0000000000 3.5000000000 5.1666666667 ====================================================================================== #include<stdio.h> int main(void){ double i, n, j, x, sum, tem, x1, x2, y1, y2, y; while(scanf("%lf", &n)!=EOF&&n>=0){ x1=2; x2=3; y1=1; y2=2; sum=0; if(n==0) sum=-3.5; else if(n==1) sum=-1.5; else if(n==2) sum=0; else for(i=1; i<=n-2; i++){ x=x1+x2; x2=x1; x1=x; y=y1+y2; y2=y1; y1=y; sum=sum+x/y; } printf("%.10f\n", sum+3.5); } return 0; } ============================================================================== OJ反馈信息:wrong answer

c语言 ACM上的现实超时了应该怎么改

#include "stdio.h" #include "conio.h" int main() { int day,month,year,sum,leap; while(scanf("%d %d %d",&year,&month,&day)!=EOF) { switch(month)//先计算某月以前月份的天数 { case 1: sum=0;break; case 2: sum=31;break; case 3: sum=59;break; case 4: sum=90;break; case 5: sum=120;break; case 6: sum=151;break; case 7: sum=181;break; case 8: sum=212;break; case 9: sum=243;break; case 10: sum=273;break; case 11: sum=304;break; case 12: sum=334;break; default: break; } sum = sum + day; if( year%400==0 || (year%4==0 && year%100==0) ) leap =1; else leap =0; if(leap ==1 && month>2) sum++; printf("%d\n",sum); } }

杭电ACM1096,一直有错误,求帮忙

![图片说明](https://img-ask.csdn.net/upload/201510/15/1444870735_573916.png) 我的代码 #include <stdio.h> int main(){ int n, i; int a, b; int x, sum; while(scanf("%d", &n) != EOF){ for (i = 0; i < n; i++){ scanf("%d", &a); for (b = 0; b < a; b++){ sum = 0; scanf("%d", &x); sum = sum + x; printf("%d", sum); printf("\n"); } } } return 0; }

请教大佬oj题目 计算职工工资问题

oj上的题,为什么过不了? ``` #include<stdio.h> struct Employee{ char name[10]; float Basic,Variable,Expenditure,Payroll; }; void Sort(struct Employee *p,int n) { struct Employee a; int i,j; for(i=0;i<n;i++) for(j=i;j<n;j++) { if(p[i].Payroll>p[j].Payroll||(p[i].Payroll==p[j].Payroll&&p[i].Basic>p[j].Basic)||(p[i].Payroll==p[j].Payroll&&p[i].Basic==p[j].Basic&&p[i].Variable>p[j].Variable)) { a=p[i]; p[i]=p[j]; p[j]=a; } } } int main() { struct Employee emp[100]; int i,n,Cas=0; while(scanf("%d",&n)!=EOF) { Cas++; for(i=0;i<n;i++) { scanf("%s%f%f%f",emp[i].name,&emp[i].Basic,&emp[i].Variable,&emp[i].Expenditure); emp[i].Payroll=emp[i].Basic+emp[i].Variable-emp[i].Expenditure; } Sort(emp,n); printf("Case #%d:\n",Cas); for(i=0;i<n;i++) printf("%10s%10.2f\n",emp[i].name,emp[i].Payroll); } return 0; } ``` 题目:给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序按照排序规则顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 排序规则:按照实发工资从小到大排序,如果实发工资相同的则按照基本工资从小到大排序,如果实发工资和基本工资都相同,则按照浮动工资从小到大排序。 注意:main函数已经给定(如下所示)。 请将程序补充完整。 提交时只需要提交自己补充的代码部分,不需要提交给定的main函数的代码部分。

有关 杭电 OJ 2093——考试排名 的问题

我的代码在本地运行“看起来”没问题(用题目中的用例测试),但是提交之后就显示 Wrong Answer。我已经折腾了大半天,但还是找不到问题出在了哪里,希望热心的大佬帮我看看,在此感激不尽。(由于没有C币,所以不能设置悬赏,请见谅。) 问题描述和输入输出说明如下: ![问题描述](https://img-ask.csdn.net/upload/202004/04/1585993172_159604.png) ![输入输出说明](https://img-ask.csdn.net/upload/202004/04/1585993212_837771.png) > [这里是题目链接](http://acm.hdu.edu.cn/showproblem.php?pid=2093) 我的代码如下: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define NAME_LENGTH 11 #define QUESTION_COUNT 13 #define STUDENT_COUNT 10000 typedef struct { char name[NAME_LENGTH]; int accepted; int time; } Student; Student students[STUDENT_COUNT]; int MyCompare(const void *q,const void *w); void PrintStudentRank(Student students[], int length); int main() { int questionCount, penalty; scanf("%d %d", &questionCount, &penalty); getchar(); // 读出回车符 int studentIdx = 0; // 读取每个学生的信息 while(scanf("%s", students[studentIdx].name) != EOF) { students[studentIdx].accepted = 0; students[studentIdx].time = 0; // 统计该学生这 questionCount 道题的解答情况 for(int i = 0; i < questionCount; i++) { int timeCost; scanf("%d", &timeCost); if(timeCost > 0) { students[studentIdx].accepted++; students[studentIdx].time += timeCost; if(getchar() == '(') { // 有括号的情况,加上惩罚时间 int faultTimes; scanf("%d", &faultTimes); students[studentIdx].time += penalty * faultTimes; getchar(); // 读出右括号 } } } // 排序后输出 qsort(students, studentIdx + 1, sizeof(Student), MyCompare); PrintStudentRank(students, studentIdx + 1); studentIdx++; getchar(); // 读出回车符 } return 0; } int MyCompare(const void *q,const void *w) { Student *s1=(Student*)q,*s2=(Student*)w; if(s1->accepted != s2->accepted) return s2->accepted - s1->accepted; if(s1->time != s2->time) return s1->time - s2->time; return strcmp(s1->name, s2->name); } void PrintStudentRank(Student students[], int length) { for(int i = 0; i < length; i++) printf("%-10s %2d %4d\n", students[i].name, students[i].accepted, students[i].time); } ```

求助,杭电ACM题求平均成绩

题目如下: **求平均成绩** 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量 。 **Input** 输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。 **Output** 对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。 每个测试实例后面跟一个空行。 **Sample Input** 2 2 5 10 10 20 **Sample Output** 7.50 15.00 7.50 15.00 1 _____ 请各位大佬帮我看一下哪里有问题,自己运行结果是正确的,但放到oj上就WA。 ```c #include<stdio.h> #include<string.h> int main(){ int n,m,i,j,ans=0; double sum=0,a[51][6],x[6]; int s[51]; memset(s,1,51); while(scanf("%d%d",&n,&m)!=EOF){ for(i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%lf",&a[i][j]); } } for(i=1;i<n;i++){ for(j=1;j<=m;j++){ sum+=a[i][j]; } printf("%.2lf ",sum/m); sum=0; } for(j=1;j<=m;j++){ sum+=a[n][j]; } printf("%.2lf\n",sum/m); sum=0; for(i=1;i<m;i++){ for(j=1;j<=n;j++){ sum+=a[j][i]; } x[i]=sum/n; printf("%.2lf ",x[i]); sum=0; } for(j=1;j<=n;j++){ sum+=a[j][m]; } x[m]=sum/n; printf("%.2lf\n",sum/n); sum=0; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(x[j]>a[i][j]){ s[i]=0; } } } for(i=1;i<=n;i++){ if(s[i]){ ans++; } } printf("%d\n\n",ans); } return 0; } ```

acm输出超限,大佬帮我看下,漂亮菱形

#include<stdio.h> int main() { int n, j, i,a[100],k=0,z=0,l=1; while (scanf("%d", &n)!=EOF) { if (n != 0) { a[k] = n; k++; } else { break; } } for (z = 0; z <= k; z++) { for (i = 1; i <= a[z] / 2 + 1; i++) { for (j = 1; j <= a[z] / 2 + i; j++) { if (j >= a[z] / 2 - i + 2) printf("*"); else printf(" "); } printf("\n"); } for (i = a[z] / 2; i >= 1; i--) { for (j = 1; j <= a[z] / 2 + i; j++) if (j >= a[z] / 2 - i + 2) printf("*"); else printf(" "); printf("\n"); } } return 0; }

小白一枚,回文串和安全密码问题在codeblock运行没啥问题,但是oj上显示答案错误,大佬们能帮忙看看吗

#include <bits/stdc++.h>///安全密码 using namespace std; int main() { char s[55]; while(scanf("%s",&s)!=EOF){ int len =strlen(s); if(len<8){ printf("NO\n"); continue; } bool low= false,up=false,sng=false,num=false; for(int i=0;i<=len;i++){ if(isdigit(s[i]))num=true; else if(islower(s[i]))low=true; else if(isupper(s[i]))up=true; else sng=true; } int cnt=0; if(low)cnt++; if(up)cnt++; if(num)cnt++; if(sng)cnt++; if(cnt>=3)printf("YES\n"); else printf("NO\n"); } return 0; } #include <bits/stdc++.h>///回文串 using namespace std; char s[103]; bool judge(){ int len=strlen(s); for(int i=0;i<len/2;i++){ if(s[i]!=s[len-i-1])return false; } return true; } int main() { int T=1; while(scanf("%s",&s)!=EOF){ if(judge())printf("case%d:yes\n",T++); else printf("case%d:no\n",T++); } }

hdu 2091输出感觉完全一样,但是却显示WA

#include <stdio.h> void sanjiao (char, int); int main(void) { int n; char ch; while (scanf("%c", &ch) != EOF) { if (ch == '@') { break; } else { scanf("%d", &n); sanjiao(ch,n); } } return 0; } void sanjiao (char ch, int n) { int i, j, k=1, x, y, z, m; char c; if (k) k=0; else putchar('\n'); for (i=1; i<=n-1; i++) putchar(' '); putchar(ch); putchar('\n'); for (z=1; z<=n-2; z++) { for (x=z; x<=n-2;x++) putchar(' '); putchar(ch); for (y=1; y<2*z; y++) putchar(' '); putchar(ch); putchar('\n'); } for (m=2*n-1;m>0; m--) putchar(ch); while (c=getchar()!='\n'); putchar('\n'); }

在线编程习题“2110: 虚张声势”总是不能拿满分,找不到问题出在哪了?

``` 题目描述 大战即将来临,杰洛特需要为自己声张声势,但是喊得太假有会被人识破 因此杰洛特决定连着喊出两句话,两句话中所有的字母数量全部相等则不会被识破 请指出杰洛特所喊的话是否会被识破 输入 一个t表示几组数据 接下来t组,每组第一行一句话,第二行一句话 每句话长度小于100000 输出 如果杰洛特没有被识破则输出"Yes" 如果被识破了则喊出"No" 样例输入 2 wj nb w jnb Iiread readii 样例输出 Yes No ``` 原题链接:[问题 2110: 虚张声势](https://www.dotcpp.com/oj/problem2110.html "") 代码如下: ```c #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100000 int cmp(char *s, char *t){return *s - *t;} // 比较函数 // 去掉t中的空白字符,升序排序后存入s static inline void trip_sort(char *s, char *t){ char *p, *delim = "\x20\t"; // 空白字符 p = strtok(t, delim); *s = 0; do{ strcat(s, p); }while((p = strtok(NULL, delim))); qsort(s, strlen(s), 1, (void*)cmp); } // 当 cs 和 ct 中字符和每个字符的个数都一样时,返回 true,否则返返回false。 char* equal(char *cs, char * ct){ static char b1[N], b2[N]; trip_sort(b1, cs); trip_sort(b2, ct); return strcmp(b1, b2) ? "No":"Yes"; } char buf1[N], buf2[N]; int main(void) { // 策略是:把两句话去掉空白字符,升序排序字符,比较字符串是否相等; scanf("%*d\n"); // 丢弃数字行 // 一次读入两行,直到EOF while (gets(buf1) && gets(buf2)) puts(equal(buf1, buf2)); return 0; } ``` PS:分别计算各个字母出现的次数,然后比较,这样可以通过全部测试用例。但我也想弄清楚上面的代码问题出在哪里?

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

Linux命令学习神器!命令看不懂直接给你解释!

大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢? 答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

史上最全的 python 基础知识汇总篇,没有比这再全面的了,建议收藏

网友们有福了,小编终于把基础篇的内容全部涉略了一遍,这是一篇关于基础知识的汇总的文章,请朋友们收下,不用客气,不过文章篇幅肯能会有点长,耐心阅读吧爬虫(七十)多进程multiproces...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

大学一路走来,学习互联网全靠这几个网站,最终拿下了一把offer

大佬原来都是这样炼成的

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

立即提问
相关内容推荐