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

 

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