時隔一月,我又回來了。
1.首先來看一道面試題.....
請問以下這段代碼可以循環多少次?
#include<stdio.h>
int main(){
int i=0;
int k=0;
for(i=0,k=0;k=0;i++,k++)
k++;
return 0;
}
答案:循環執行0次,因爲for語句的執行條件爲k=0,這是一條賦值語句,在c語言中,0表示false,所以直接跳出循環,代碼執行0次。
2.設計一段代碼,讓字符串由兩邊向中間逐步出現。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
int main(){
//先定義好字符串
char str1[]="welcome to bit!";
char str2[]="###############";
printf("%d\n",sizeof(str[1])); //字符串1的長度爲16
int left=0; //這個下標指向的元素是 w
int right=strlen(str1)-1; //該下標指向的元素是 !14 要減去結尾處的 \0
while(left<=right){
Sleep(1000);
str2[left]=str1[left];
str2[right]=str1[right];
printf("%s\n",str2);
left++;
right--;
}
system("pause");
return 0;
}
3.交換兩個數組中的所有元素(數組一樣長)。
#include<stdio.h>
#include<stdlib.h>
int main(){
int a[]={1,2,3,4,5};
int b[]={4,3,2,1,0};
int i=0;
for(i=0;i<sizeof(a)/sizeof(a[0]);++i){
int tmp=a[i];
a[i]=b[i];
b[i]=tmp;
}
for(i=0;i<sizeof(a)/sizeof(a[0]);i++){
printf("%d ",a[i]);
}
for(i=0;i<sizeof(b)/sizeof(b[0]);i++){
printf("%d ",b[i]);
}
system("pause");
return 0;
}