作为开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个 我的iOS交流群:761407670,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
以下基本上以C语言实现为主
1.不用中间变量,用两种方法交换A和B的值?
2.求最大公约数?
3.模拟栈操作?
4.排序算法?
选择排序、冒泡排序、插入排序三种排序算法可以总结为如下:
都将数组分为已排序部分和未排序部分。
- 选择排序将已排序部分定义在左端,然后选择未排序部分的最小元素和未排序部分的第一个元素交换。
- 冒泡排序将已排序部分定义在右端,在遍历未排序部分的过程执行交换,将最大元素交换到最右端。
- 插入排序将已排序部分定义在左端,将未排序部分元的第一个元素插入到已排序部分合适的位置。
选择排序
冒泡排序
5.折半查找(二分查找)
6.9*9乘法表?
main(){
int x,y,z;
for(x=1;x<=9;x++){
for(y=1;y<=x;y++) {
z=x*y;
printf("%d*%d=%d ",y,x,z);
}
printf("n");
}
}
6.设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10?
int main(){
int n = 123456;
int unitPlace = n / 1 % 10;
int tenPlace = n / 10 % 10;
int hundredPlace = n / 100 % 10;
int thousandPlace = n / 1000 % 10;
printf("个位:%dn十位:%dn百位:%dn千位:%dn", unitPlace, tenPlace, hundredPlace, thousandPlace);
getchar();
return 0;
}
7.把一个int数组的第一个元素和最后一个元素的值互换?
int[] a={2,3,4,5,7};
int temp=a[0];
a[0]=a[a.length-1];
a[a.length-1]=temp;
8. 从键盘输入一个整数n,请输入1,2,……,n的所有排列如n=3,则输出为
1 2 3
1 3 2
2 1 3
2 3 1
void perm(int* data, int n, int curr){
if (curr==n-1){
for (int i = 0; i < n; ++i)
printf("%d", data[i]);
printf("n");
}else{
for (int i = curr; i < n; ++i){
int t;
t = data[curr], data[curr] = data[i], data[i] = t;
perm(data, n, curr+1);
t = data[curr], data[curr] = data[i], data[i] = t;
}
}
}
int main(){
int array[128] = {0};
int n = 0, i = 0;
scanf("%d", &n);
9.输入一个正整数,将其逆序输出。例如,输入12345,输出54321?
void main(){
long n,m;
printf("输入一个正整数");
scanf("%d",&n);
while(n!=0){
m=n%10;
n=n/10;
printf("%d",m);
}
}
10.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, 60分以下的用C表示。
void main(){
int grade;
printf("Inter grade:");
scanf("%d",&grade);
if(grade>=90&&grade<100)
printf("Grade is:An");
else if(grade>=60&&grade<=89)
printf("Grade is:Bn");
else if(grade<60&&grade>=0)
printf("Grade is:Cn");
else printf("errorn");
11.判断素数
12.编程求1+(1+2)+…+(1+2+…+n),n的值由键盘输入。要求使用for语句实现
void main(){
int j,k,i,sum=0,n=1,m,a=0;
printf("输入累加到几:");
scanf("%d",&j);
for(i=1;i<=j;i++){
sum=sum+n;
n++;
for(m=1;m<=1;m++){
a=a+sum;
}
}
printf("该数为%dn",a);
}