C語言中的幾道練習題(三)

時隔一月,我又回來了。

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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章