国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C基礎(chǔ):45道練習(xí)題匯總(初學(xué)者加油)

這篇具有很好參考價(jià)值的文章主要介紹了C基礎(chǔ):45道練習(xí)題匯總(初學(xué)者加油)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、基礎(chǔ)練習(xí)

練習(xí)1:輸入兩個(gè)數(shù),實(shí)現(xiàn)兩個(gè)數(shù)的交換

?法1:三杯水交換(常規(guī)的方式)

#include <stdio.h>

int main(int argc, const char *argv[]){
    int a = 0;
    int b = 0;
    int temp = 0; //定義一個(gè)臨時(shí)變量

    printf("輸入兩個(gè)數(shù)字:");
    scanf("%d%d",&a,&b); //10  20

    temp = a;
    a = b;
    b = temp;
    printf("a = %d, b = %d\n", a, b);//20  10
    return 0;
}

法2:如何不使用額外的內(nèi)存空間,實(shí)現(xiàn)兩個(gè)交換(沒有空杯子了)

?三次異或?qū)崿F(xiàn)交換? (異或:不同為1,相同為0

#include <stdio.h>

int main(int argc, const char *argv[])
{
    int a = 0;
    int b = 0;
    printf("請輸入兩個(gè)數(shù)字:");
    scanf("%d%d",&a,&b); //10 20  --> 二進(jìn)制分別為 a: 0000 1010 b: 0001 0100 

    a = a ^ b;
#if 0 //講解
       a: 0000 1010
       b: 0001 0100
       a= 0001 1110    <--現(xiàn)在的a被賦值成這個(gè)值
#endif

    b = a ^ b;
#if 0 //講解
       a: 0001 1110
       b: 0001 0100
       b= 0000 1010    <--現(xiàn)在的b被賦值成這個(gè)值
#endif

    a = a ^ b;
#if 0 //講解
        a: 0001 1110
        b: 0000 1010
        a= 0001 0100   <--現(xiàn)在的a被賦值成這個(gè)值
#endif

    printf("a = %d b = %d\n", a, b);   //20 10   
    return 0;
}

練習(xí)2:改變燈的狀態(tài)

?燈的編號順序 8 7 6 5 4 3 2 1,進(jìn)行如下操作。

1. 有8個(gè)led燈,分別在8個(gè)不同的教室

2. 8個(gè)燈初始狀態(tài)未知

3. 點(diǎn)亮第 1 3 5 7 號燈

4. 把5號燈熄滅

5. 把4號燈點(diǎn)亮

6. 把除了4號燈的其他燈全熄滅

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{   
    unsigned char led = 0; //使用無符號char(1個(gè)字節(jié)= 8bit)類型來表示八個(gè)燈的狀態(tài)

    //點(diǎn)亮第1 3 5 7號燈
    led = led | 0x55;  //這樣不會影響2 4 6 8 原有的狀態(tài)
                       //若直接賦值,把1 3 5 7 點(diǎn)亮的同時(shí),把其他燈熄滅了

    //把5號燈熄滅
    led = led & ~(1<<4);
    printf("led = %#x\n", led);//0x55

    
    //把4號燈點(diǎn)亮
    led = led | (1<<3);
    printf("led = %#x\n", led);//0x4d

    //把除了4號燈的其他燈全熄滅
    led = led & (1<<3);
    printf("led = %#x\n", led);//0x08
             
    return 0;
}

二、分支控制語句練習(xí)題:if..else 語句

練習(xí)3:從終端輸入一個(gè)字符:

如果是大寫的 轉(zhuǎn)換成小寫,如果是小寫的 轉(zhuǎn)換成大寫,如果是 0-9 按照 %d 輸出對應(yīng)整型的 0-9,其他字符 轉(zhuǎn)換成 #,并輸出

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    printf("請輸入一個(gè)字符:");

     //法1:輸入字符方式
    char ch = getchar(); //getchar 表示在終端獲取一個(gè)字符
    getchar(); //清理垃圾字符 回車

    //法2:輸入字符方式
    char ch = 0;
    scanf("%c",&ch);

    if(ch >='A' && ch <='Z'){
        ch = ch + ('a'-'A');
        printf("%c\n",ch); 
    }else if(ch >='a' && ch <='z'){
        ch = ch -('a'-'A');
        printf("%c\n",ch); 
    }else if(ch >= '0' &&ch <= '9'){
        ch = ch - '0';
        printf("%d\n",ch); 
    }else{
        ch = '#';
        printf("%c\n",ch); 
    }
   
    return 0;
}

?練習(xí)4:輸入一個(gè)年份 判斷是平年還是閏年。

(閏年: 能被4整除且不能被100整除 或者能被400整除)提示:整除: 沒有余數(shù) year%4==0

2000 閏年、2004 閏年、2022 平年、1900 平年

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int year = 0;
    printf("輸入一個(gè)年份:");
    scanf("%d",&year);
    
    if(year%4 == 0 && year%100 != 0 || year%400 == 0){
        printf("閏年\n");
    }else{
        printf("平年\n");
    }

    return 0;
}

練習(xí)5:輸入三角形的三邊長,判斷能否構(gòu)成三角形

如果能,輸出是什么三角形(等邊、等腰、直角、普通)。如果不能,輸出不能

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int a = 0, b = 0, c = 0;
    printf("請輸入三角形的三邊長:");
    scanf("%d%d%d",&a,&b,&c);  

    if( a+b>c && b+c>a && a+c>b){   //構(gòu)成三角形:任意兩邊大于第三邊
        printf("能構(gòu)成三角形\n");
        if(a == b && b == c && a==c){
            printf("等邊三角形\n");
        }else if(a==b || b==c || a==c){
            printf("等腰三角形\n");
        }else if(a*a + b*b == c*c ||a*a + c*c == b*b || a*a + c*c == b*b ){
                          //上面判斷不能用a^2 + b^2 = c^2 ,在c語言中"^" 是異或 

        printf("直角三角形\n");  
        }else{
            printf("普通三角形\n");
        }
    }else{
        printf("不能構(gòu)成三角形\n");
    }   

    return 0;
}

練習(xí)6:求孩子身高

每個(gè)做父母的都關(guān)心自己孩子成人后的身高,據(jù)有關(guān)生理衛(wèi)生知識與數(shù)理統(tǒng)計(jì)分析表明,影響小孩成人后身高的因素有遺傳、飲食習(xí)慣與堅(jiān)持體育鍛煉等。小孩成人后身高與其父母身高和自身性別密切相關(guān)。父親、母親、孩子 身高都用double,設(shè)faHeight為其父身高,moHeight為其母身高,基礎(chǔ)身高預(yù)測公式為:

????????男性成人時(shí)身高 = (faHeight + moHeight) * 0.54(cm)

????????女性成人時(shí)身高 = (faHeight * 0.923 + moHeight) / 2(cm)

此外,如果喜愛體育鍛煉,那么可在基礎(chǔ)身高上增加身高 2%

如果有良好的衛(wèi)生飲食習(xí)慣,那么可在基礎(chǔ)身高上增加身高1.5%

程序要求:父親的身高與母親的身高、小孩的性別、是否喜愛體育鍛煉和是否有良好的衛(wèi)生飲食習(xí)慣也從鍵盤上輸入,最終輸出預(yù)測的身高。

提示:

小孩性別的輸入方式,可在屏幕給出提示“請輸入小孩的性別(男孩輸入1,女孩輸 0):”,

然后通過if語句來判斷從鍵盤輸入的字符是 1 還是 0。是否喜愛體育鍛煉也可以通過類似的方式實(shí)現(xiàn)。

測試:

????????180 160 男 體 習(xí) --->190.026? ?%.3f

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    double faHeight = 0;
    double moHeight = 0;
    double childHeight = 0;
    double dpe = 0;   //體育增量
    double dfood = 0; //習(xí)慣增量
    int sex = 0; //1 男 0 女
    int pe = 0;  //1 喜歡 0 不喜歡
    int food = 0;//1 喜歡 0 不喜歡
    printf("請輸入父親的身高與母親的身高:");
    scanf("%lf%lf", &faHeight, &moHeight);

    printf("請輸入孩子的性別(1 男, 0 女):");
    scanf("%d",&sex);

    printf("是否喜愛體育鍛煉(1 喜愛, 0 不喜愛):");
    scanf("%d",&pe);

    printf("是否有良好的衛(wèi)生飲食習(xí)慣(1 有, 0 沒有):");
    scanf("%d",&food);

    if(sex == 1){
        childHeight = (faHeight + moHeight) * 0.54;
    }else if(sex = 0){
        childHeight = (faHeight*0.923 + moHeight) / 2;
    }

    if(pe == 1){
        dpe = childHeight *0.02;  //若pe = 0時(shí),表示 dpe 還為初始值0
    }

    if(food == 1){               //若food = 0時(shí),表示 dfood 還為初始值0
        dfood = childHeight *0.015;
    }

    childHeight = childHeight + dpe + dfood; 
    printf("%.3f\n",childHeight);

    return 0;
}

?三、switch..case 語句練習(xí)題

練習(xí)7:實(shí)現(xiàn)一個(gè)簡易的計(jì)算器功能

只能操作一個(gè)運(yùn)算符即可 (+ - * / %)。輸入表達(dá)式 輸出結(jié)果

如: 5+4 = 9? ?3*4= 12 10%4 = 2

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int a = 0;
    int b = 0;
    char operator = 0;
    
    printf("請輸入:");
    scanf("%d %c%d", &a, &operator, &b);
    //在%c前加一個(gè)空格,表示清理垃圾字符。若不加必須輸入如:a+b 不能帶空格                            
    
    switch(operator){
        case '+':
            printf("%d + %d = %d\n", a, b, a+b);
            break;
        case '-':
            printf("%d - %d = %d\n", a, b, a-b);
            break;
        case '*':
            printf("%d * %d = %d\n", a, b, a*b);
            break;
        case '/':
            printf("%d / %d = %f\n", a, b, (float)a/(float)b);
    //因?yàn)閍和b本身是int類型 計(jì)算的結(jié)果會舍棄小數(shù)位,所以要轉(zhuǎn)換成float參與運(yùn)算

            break;
        case '%':
            printf("%d %% %d = %d\n", a, b, a%b);  
       //要想打印 % 必須輸入 %% 才行

            break;
    }         
    return 0;
}

練習(xí)8:學(xué)生成績管理

輸入一個(gè)學(xué)生的成績,[90,100] A 、[80,90) B? 、[70,80) C 、[60,70) D 、[0,60) 不及格 、其他 輸入錯(cuò)誤。使用switch..case 語句實(shí)現(xiàn)

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{   
    int ret = 0;
    int score = 0;
    printf("輸入一個(gè)學(xué)生的成績:");
    ret = scanf("%d",&score); 
    //scanf函數(shù)執(zhí)行成功返回值是 按指定格式輸入變量的個(gè)數(shù)
    //scanf函數(shù)未按照格式輸入時(shí),數(shù)據(jù)并沒有存到變量中,此時(shí)返回值為0,即ret = 0。
    //在本代碼中若按int格式輸入則return 1,未按格式輸入則return 0
    //輸入'+'或其他非數(shù)字時(shí),若不進(jìn)行if語句的判斷,則直接執(zhí)行case 0:輸出不及格
     
    getchar(); //清理下垃圾字符
    if(ret==1){
        switch(score / 10){
            case 10: //利用case擊穿原則
            case 9:
                printf("A\n");
                break;
            case 8:
                printf("B\n");
                break;
            case 7:
                printf("C\n");
                break;
            case 6:
                printf("D\n");
                break;
            default:
                printf("不及格\n");
                break;
        }
    }else{
         printf("輸入錯(cuò)誤\n");
    }             
    return 0;
}

四、使用goto實(shí)現(xiàn)循環(huán)

練習(xí)9:使用goto計(jì)算 1+2+3+...+99+100 的和。

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int sum = 0; //sum必須初始化為0,否則隨機(jī)值會影響計(jì)算的結(jié)果
    int i = 1; //用來控制循環(huán)次數(shù)的變量

LOOP: 
    sum += i;
    i++;
    if(i <= 100){
        goto LOOP; //goto XX; XX可以為其他的,上面跟這個(gè)相同即可。
    } 
    printf("%d\n", sum);  
            
    return 0;
}

五、while 循環(huán)

練習(xí)10:使用while循環(huán) 計(jì)算 1~100 的和?

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int sum = 0; //sum必須初始化為0,否則隨機(jī)值會影響計(jì)算的結(jié)果
    int i = 1; //用來控制循環(huán)次數(shù)的變量

    while(i <= 100){
        sum += i;
        i++;
    }
    printf("%d\n", sum);  
            
    return 0;
}

練習(xí)11、猴子吃桃問題

一個(gè)猴子第一天摘了若干個(gè)桃,當(dāng)即就吃了一半數(shù)量的桃,沒吃過癮,又多吃了一個(gè),第二天,將剩下的桃又吃了一半數(shù)量,沒吃過癮,又多吃了一個(gè),以后的每一天都吃一半數(shù)量多一個(gè),到第十天再想吃桃的時(shí)候,發(fā)現(xiàn)只剩一個(gè)桃了。問:猴子第一天摘了多少個(gè)桃。

用while循環(huán)實(shí)現(xiàn)。把每天吃之前的桃子數(shù)量 都打印出來 應(yīng)該怎么做?

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    
    int num = 1; //第十天剩一個(gè)
    int i = 0; //循環(huán)變量 控制循環(huán)次數(shù)

    while(i < 9){
        printf("猴子第%d天有%d個(gè)桃\n",10-i,num);
        num = (num+1)*2;
        i++;
    }
    printf("猴子第一天有%d個(gè)桃\n",num);
    return 0;
}

?c語言基礎(chǔ)訓(xùn)練題,c語言,c語言

六、do..while 循環(huán)

練習(xí)12: do..while說明

#include <stdio.h>

int main(int argc, const char *argv[])
{
	int i = 0;
	do{
		//不管while后面的條件為真還是為假
		//代碼塊都會先執(zhí)行一次
		printf("hello world\n");
		i++;
	}while(i<5);


	return 0;
}

七、for 循環(huán)

練習(xí)13:使用for循環(huán) 計(jì)算 1-100 的和

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int i = 0;
    int num = 0;
    for(i=1; i<101; i++){
        num += i;  // += 為復(fù)合賦值運(yùn)算符 相當(dāng)于num = num +i;
    }            
    printf("%d\n",num);
    return 0;
}

練習(xí)14:輸出 [100,999] 范圍內(nèi)所有的水仙花數(shù)

水仙花數(shù):個(gè)*個(gè)*個(gè) + 十*十*十 + 百*百*百 == 自身

例如 153:1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 == 153

所以 153 就是一個(gè)水仙花數(shù)

答:153、370 、371、?407

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int ge = 0;
    int shi = 0;
    int bai = 0;

    int i = 0;
    for(i = 100; i < 1000; i++){ 

        // 不要在循環(huán)里面定義變量 因?yàn)檠h(huán)里面定義的變量的生命周期和作用域都是循環(huán)的 
        // 循環(huán)每執(zhí)行一次 都會釋放原來的空間 然后重新分配 會有時(shí)間上的開銷 效率低
        
        ge = i % 10;
        shi = i /10 % 10;
        bai = i / 100;
        if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
            printf("%d 是一個(gè)水仙花數(shù)\n",i);
        }
    }             
    return 0;
}

練習(xí)15:輸入一個(gè)日期 輸出這個(gè)日期是這一年的第幾天

注意,得考慮平年閏年的問題。如:輸入:2021-3-24

輸出:2021年3月24日是2021年的第 83 天

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    //輸入日期的變量
    int year = 0;
    int mon = 0;
    int day = 0;

    int mon2_day = 0; //2月天數(shù)變量
    int mon_day = 0;  //月份的天數(shù)
    int sum_day = 0;  //總天數(shù)
    int i = 1;        //月份初始為1月
    printf("輸入一個(gè)日期:");
    scanf("%d-%d-%d",&year,&mon,&day);
    //判斷2月有多少天數(shù)
    if((year%4 == 0 )&& (year%100 != 0) || year%400 == 0){
        mon2_day = 29;
    }else{
        mon2_day = 28;
    }

    if(mon >= 0 && mon <= 12 ){ //判斷輸入月份是否正確
        while(i < mon ){ //若輸入為5月,循環(huán)求出前幾個(gè)月的月份天數(shù)
            switch(i){
                case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                    mon_day = 31;break;
                case 2:mon_day = mon2_day;break;
                case 4:case 6:case 9:case 11:mon_day = 30;break;
            }
            sum_day = sum_day + mon_day; //月份天數(shù)遞加
            i++;   //月份自增
        } 
    }else{
        printf("請輸入正確月份\n");
    } 

    //當(dāng)i 正好為 輸入的月份時(shí),注判斷輸入日期滿足不超過當(dāng)月的天數(shù)
    if(mon == i ){ 
        switch(i){  //求當(dāng)月的天數(shù)
            case 1:case 3:case 5:case 7:case 8:case 10:case 12: 
                mon_day = 31;break;
            case 2:mon_day = mon2_day;break;
            case 4:case 6:case 9:case 11:mon_day = 30;break;
        }
        if(day <= mon_day){  //判斷輸入日期day 是否小于等于 當(dāng)月天數(shù)
            sum_day = sum_day + day;  //若滿足 用之前滿月的天數(shù)加上輸入的 day
            printf("%d年%d月%d日是%d年的第%d天\n",year,mon,day,year,sum_day); 
        }else{
            printf("請輸入正確日期\n");
        } 
    }   
    return 0;
}

?八、控制語句綜合練習(xí)

練習(xí)16:輸出 [3,100] 范圍內(nèi)所有的偶數(shù)?

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int i = 0;
    //遍歷3-100
    for(i=3; i <= 100; i++){
        if( i%2 == 0){
            printf("偶數(shù) %d\n",i);
        }
    }
                 
    return 0;
}

練習(xí)17:輸入一個(gè)數(shù),輸出這個(gè)數(shù)的所有因子

如:輸入 12 則輸出 1 2 3 4 6 12

#include <head.h>
                 
int main(int argc, const char *argv[])
{
    int num = 0;
    int i = 0; 
    printf("輸入一個(gè)數(shù):");
    scanf("%d",&num);
    
    //遍歷1-num,尋找因子 
    for(i = 1; i <= num; i++){

    //如果整數(shù)A除B,得出結(jié)果是沒有余數(shù)的整數(shù),就稱B是A的因子。
        if(num%i == 0){
            printf("因子: %d\n", i);
        }
    }               
    return 0;
}

練習(xí)18:輸出 1000 以內(nèi)的所有完數(shù)

完數(shù):又叫完備數(shù),也叫完美數(shù)。一個(gè)數(shù)除了自身之外的所有因子和還等于自身的數(shù)。

如: 6 就是一個(gè)完數(shù) 1 + 2 + 3 == 6

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int sum = 0;
    int i = 0; 
    int j = 0;

    //遍歷1~1000 因?yàn)槊總€(gè)數(shù)都有可能是完數(shù)
    for(i = 1; i <= 1000; i++){
        sum = 0;  
        //注意:sum還保留著 上一個(gè)數(shù)的所有因子和,所有必須清0
        for(j = 1; j < i; j++){  //先獲取i所有因子的和
            if(i%j == 0){
                sum += j;
            }
        }  
        //當(dāng)for循環(huán)結(jié)束時(shí) sum是i 除了自身之外所有因子的和

        //判斷i是不是完數(shù)
        if(sum == i){ 
            printf("%d 是完數(shù)\n", i);
        }   
    }           
    return 0;
}

練習(xí)19:輸出 [3,100] 范圍內(nèi)所有的質(zhì)數(shù)

質(zhì)數(shù):因子只有1和本身的數(shù)

解法1:根據(jù)循環(huán)結(jié)束的狀態(tài)處理。

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int i = 0;
    int j = 0;
    //遍歷  3-100
    for(i = 3; i<= 100; i++){
        // [2,i-1] 范圍內(nèi) 有任何一個(gè)能把i整除的數(shù) 都說明i不是質(zhì)數(shù)
        for(j = 2; j < i; j++){
            //說明i不是質(zhì)數(shù)
            if(i % j == 0){
                break;
            }
        }
        //上面的for循環(huán)有兩種結(jié)束條件
		//1.由于 j==i 循環(huán)正常結(jié)束
		//2.由于break導(dǎo)致的退出,此種退出是  j一定是小于i的
        if(i == j){
            printf("%d 是質(zhì)數(shù)\n",i);
        }
    }             
    return 0;
}

解法2:使用標(biāo)志位來處理

#include <stdio.h>

int main(){
	int i = 0;
	int j = 0;
	int flag = 0;  //0  不是質(zhì)數(shù)   1 質(zhì)數(shù)
	//遍歷  3-100
	for(i = 3; i <= 100; i++){
		flag = 1;//每次需要重新置1
		// [2,i-1] 范圍內(nèi) 有任何一個(gè)能把i整除的數(shù) 都說明i不是質(zhì)數(shù)
		for(j = 2; j < i; j++){
			if(i%j == 0){
				//說明i不是質(zhì)數(shù)
				flag = 0;
			}
		}
		if(flag == 1){
			printf("%d 是質(zhì)數(shù)\n", i);
		}
	}
	return 0;
}

九、一維數(shù)組練習(xí)

練習(xí)20:求數(shù)組中最大值,及最大值的下標(biāo)

定義一個(gè)int類型的一維數(shù)組,長度為10,從終端給數(shù)組賦值

找出數(shù)組中最大值,及最大值的下標(biāo),并輸出。

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int i = 0;
    int s[10] = {0};
    //循環(huán)給數(shù)組成員賦值
    for(i = 0;i < 10; i++){
        scanf("%d",&s[i]);
    }  
    //找最大值及最大值下標(biāo)           
    int max_index = 0;
    for(i = 1; i < 10; i++){
        if(s[max_index] < s[i]){
            //
            max_index = i;
        }
    }
    //當(dāng)循環(huán)結(jié)束的時(shí)候 max_index 中記錄的是最大值的下標(biāo)
    //通過最大值的下標(biāo) 也就找到了最大值
    printf("最大值:%d 下標(biāo):%d\n",s[max_index],max_index);
    return 0;
}

練習(xí)21:斐波那契數(shù)列

斐波那契數(shù)列 1 1 2 3 5 8 13 21 ....? 前兩個(gè)數(shù)固定為 1 從第三個(gè)開始 依次是前兩個(gè)數(shù)的和,

要求定義一個(gè)數(shù)組 類型為int 長度為20,給數(shù)組中的成員賦斐波那契數(shù)列的值,并輸出

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int s[20] = {1,1}; //不完全初始化 沒有初始化的位 默認(rèn)用0初始化
    //循環(huán)給數(shù)組賦值 注:不要越界
    int i = 0;
    for(i = 0; i < 18; i++){
        s[i+2] = s[i] +s[i+1];
    }
    //輸出數(shù)組的值
    for(i = 0; i < 20; i++){
        printf("%d ",s[i]);
    }
    printf("\n");
    return 0;
}

練習(xí)22:使用循環(huán)打印下面的圖案

?F

_FE

__FED

___FEDC

____FEDCB

_____FEDCBA

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int i = 0;
    int j = 0;
    char ch = 0;
    //外層循環(huán)控制行數(shù)
    for(i = 0; i < 6; i++){
        ch = 'F'; 
        //若使用后不置為F,就不是從F開始打印
        //內(nèi)層循環(huán)控制每行的打印
        //打印每行的 下劃線
        for(j = 0; j < i; j++){ 
            printf("_");
        }
        //打印每行的字母
        for(j = 0; j <= i; j++){
            putchar(ch); //向終端輸出字符 也可以用printf
            ch--;
        }
        putchar(10); //換行 相當(dāng)于printf("\n");
    }              
    return 0;
}

練習(xí)23:冒泡排序

將一維數(shù)組按照上升的順序排列

c語言基礎(chǔ)訓(xùn)練題,c語言,c語言

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int i = 0;
    int j = 0;
    int s[9] = {9,5,6,8,2,7,3,4,1};
    //排序前
    for(i = 0; i < 9; i++){
        printf("%d ",s[i]);
    }
    putchar(10);

    //升序 整個(gè)排序的流程
    int temp = 0; 
    int len = sizeof(s)/sizeof(s[0]);
    //外層循環(huán)控制比較的趟數(shù) len-1 最后一趟只剩下一個(gè)元素就不用排序了
    for(i = 0; i < len-1; i++){
        //內(nèi)層循環(huán)控制一趟排序比較的次數(shù)
        //每趟都能確定一個(gè)最值,最值在下一趟中就不用再參與比較了 所有l(wèi)en-i-1
        for(j = 0; j < len-i-1; j++){
            if(s[j] > s[j+1]){
                //交換
                temp = s[j];
                s[j] = s[j+1];
                s[j+1] = temp ;
            } 
        }
    }
    //排序后
    for(i = 0; i < 9; i++){
        printf("%d ",s[i]);
    }
    printf("\n");
    return 0;
}

?十、二維數(shù)組練習(xí)

練習(xí)24:找出數(shù)組中最大值以及最大值的行號、列號,并輸出?

定義一個(gè)int類型的3行4列的二維數(shù)組,并以行為單位完全初始化,找出數(shù)組中最大值,及最大值的行號,列號 并輸出。

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int s[3][4] = {{12,32,42,11},
                    {7,4,90,6},
                    {1314,520,100,678}};
    
    int max_hang = 0;
    int max_lie = 0;
    
    int i = 0;
    int j = 0;
    for(i = 0; i < 3; i++){
        for(j = 0; j < 4; j++){
            if(s[max_hang][max_lie] < s[i][j]){
                max_hang = i;
                max_lie = j;
            }
        }
    }
    //當(dāng)循環(huán)結(jié)束時(shí)  max_hang 里存的就是最大值的行號
    //max_lie 里存的就是最大值的列號
    printf("最大值:%d 行號:%d 列號:%d\n",
                    s[max_hang][max_lie],max_hang,max_lie); 
        
    return 0;
}

十一、字符串處理函數(shù)?及字符串倒置

練習(xí)25:自己實(shí)現(xiàn)strlen函數(shù)的功能(計(jì)算字符串的長度)

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s[32] = "book";
    int len = 0;
    //一般不確定長度的時(shí)候 使用while循環(huán)比較多
    while(s[len] != '\0'){  //0 和'\0'都可以 '0'不可以
        len++;
    }
    //循環(huán)結(jié)束時(shí) len 中保存的就是字符串的長度
    printf("%d\n",len);            
    return 0;
}

練習(xí)26:自己實(shí)現(xiàn) strcpy 函數(shù)的功能(字符串的復(fù)制)

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s1[32] = "homework";
    char s2[32] = "happy";

    //要保證 s1 足夠大 否則會越界
    int i = 0;
    while(s2[i] != '\0'){
        s1[i] = s2[i];
        i++;
    } 
    //將s2的'\0'也拷貝給 s1
    s1[i] = s2[i];
    printf("s1 = %s\n", s1);  //happy
    printf("s2 = %s\n", s2);  //happy      
    return 0;
}

練習(xí)27:自己嘗試實(shí)現(xiàn) strcat 函數(shù)的功能(字符串的追加)

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s1[32] = "homework";
    char s2[32] = "happy";

    int i = 0;
    int j = 0;
    //先找到s1 的 '\0'
    while(s1[i] != '\0'){
        i++;
    }
    //當(dāng)上面循環(huán)結(jié)束的時(shí)候 i 就是s1 的 '\0' 的下標(biāo)

    //開始追加
    while(s2[j] != '\0'){
        s1[i] = s2[j];
        i++;
        j++;
    }
    //將s2的 '\0' 也追加給s1
    s1[i] = s2[j];
    
    printf("%s\n",s1);
    printf("%s\n",s2);            
    return 0;
}

練習(xí)28:將字符串倒置輸出

有一個(gè)以空格分隔的多個(gè)單詞的字符串(空格的個(gè)數(shù)不確定有幾個(gè))

"this is a book"

將這個(gè)字符串 以單詞為單位,倒置輸出

"book a is this"

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s[32] = "this   is  a book";
    
    //先將字符串整體倒置 ---> koob a  si   siht
    int i = 0;
    int j = 0;
    int temp = 0;
    //先找到字符串的最后一個(gè)字符
    while(s[j] != '\0'){
        j++;
    }
    //上面循環(huán)結(jié)束的時(shí)候, j是'\0'的下標(biāo)
    j--; //讓 j 做為 'k' 的下標(biāo)

    //開始交換前面數(shù)據(jù)和后面數(shù)據(jù)
    while(i < j){
        temp = s[i];
        s[i] = s[j];
        s[j] = temp;
        i++;
        j--;
    }
    printf("第一次處理:[%s]\n",s);

    //進(jìn)行單詞倒置 -->book a  is   this
    int k = 0; //用來控制整體單詞的循環(huán),同時(shí)當(dāng)個(gè)中間變量
    i = 0;  //控制空格
    j = 0;  //控制單詞
    while(s[k] != '\0'){
        i = k;
        //當(dāng)不是空格時(shí),不執(zhí)行
        while(s[i] == ' ' && s[i] != '\0'){ 
            i++;
        }
        //交換完所有單詞時(shí),i的下標(biāo)在'\0',跳出循環(huán)
        while(s[i] == '\0'){  
            break;
        }
        // 沒交換完單詞時(shí),i 的下標(biāo)在每個(gè)單詞的第一個(gè)字符上,將該下標(biāo)給 j
        j = i; 
        while(s[j] != ' ' && s[j] != '\0'){
            j++;
        }
        k = j; //j 的下標(biāo)在空格上,將j 的值賦給 k ,讓k 賦給i 
                //若直接賦給i,會影響下面代碼 i 的下標(biāo)
        j--;   
        // j 的下標(biāo) 在單詞的最后一個(gè)字符上,i 在單詞的第一個(gè)字符上
        while(i < j){  
            temp = s[i];
            s[i] = s[j];
            s[j] = temp;
            i++;
            j--;
        }
        
    }
    printf("第二次處理:[%s]\n",s);
    return 0;
}

?十二、指針練習(xí)題

?練習(xí)29:看代碼輸出小練習(xí)題

int *p = NULL;

printf("%d %d %d\n", p+1, p, (p+1)-p);

上面代碼會輸出什么?

#include <stdio.h>

int main(int argc, const char *argv[])
{
	int *p = NULL;
	printf("%d %d %d\n", p+1, p, (p+1)-p);//4 0 1

	//p = NULL;  NULL 就是  (void *)0
	//p+1 :   0 + 1 個(gè)int  所以p+1 是4號地址   4
	//(p+1) - p:  兩個(gè)int * 指針做差  得到的結(jié)果 相差的int的個(gè)數(shù)  1

	return 0;
}

練習(xí)30:根據(jù)要求寫程序

定義一個(gè)普通變量a 類型為 int ,里面存儲數(shù)據(jù) 9999

定義一個(gè)指針變量 p1 類型為 int *, 讓p1指向a

然后通過p1將a中的內(nèi)容修改為 0x12345678

再定義一個(gè)指針p2 類型為 char *,讓p2也指向 a

用 %#x 輸出 *p2 的值 以及 *(p2+1) *(p2+2) *(p2+3)的值

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int a = 9999;
    int *p1 = &a;
    *p1 = 0x12345678;
    char *p2 = (char *)&a;
    printf("%#x %#x %#x %#x\n",*p2,*(p2+1),*(p2+2),*(p2+3));              
    return 0;
}
//我們使用的主機(jī)是小端存儲
//所有結(jié)果:0x78 0x56 0x34 0x12

?練習(xí)31:?請你設(shè)計(jì)一個(gè)程序,判斷主機(jī)是大端存儲還是小端存儲?

?c語言基礎(chǔ)訓(xùn)練題,c語言,c語言

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    int a = 0x12345678;
    char *p = (char *)&a;
    if(0x78 == *p){
        printf("小端\n");
    }else if(0x12 == *p){
        printf("大端\n");
    }                
    return 0;
}

練習(xí)32:看代碼輸出小練習(xí)題

int x = 0x41424344;

printf("%s\n", &x);

上面的代碼會輸出什么?

c語言基礎(chǔ)訓(xùn)練題,c語言,c語言

答:小端存儲的前提下,輸出DCBA+不確定的東西。

練習(xí)33:使用指針實(shí)現(xiàn) strlen 函數(shù)的功能

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s[32] = "book";
    char *p = s;
    int count = 0;

 #if 0   // 法一
    while(*p != 0){
        count++;
        p++;
    }
#endif 

    //法二
    while(*p++){
        count++;
    }

    printf("%d\n",count);              
    return 0;
}

練習(xí)34:使用指針實(shí)現(xiàn) strcpy 函數(shù)的功能

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s1[32] = "hello world";
    char s2[32] = "book";

    char *p1 = s1;
    char *p2 = s2;
    while(*p2 != '\0'){
        *p1 = *p2;
        p1++;
        p2++;
    }
    *p1 = *p2;

    printf("%s\n", s1);
    printf("%s\n", s2);               
    return 0;
}

練習(xí)35:使用指針實(shí)現(xiàn) strcat 函數(shù)的功能

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char s1[32] = "hello world";
    char s2[32] = "book";

    char *p1 = s1; //將p1指向s1
    char *p2 = s2;

    //先將p1 下標(biāo)循環(huán)到最后一個(gè)字符
    while(*p1 != '\0'){
        p1++;
    }
    //循環(huán)結(jié)束的時(shí)候  p指向 s1 的'\0'
    //循環(huán)將s2 的字符追加到 s1 的后面
    while(*p2 != '\0'){
        *p1 = *p2;
        p1++;
        p2++;
    }
    *p1 = *p2;
    printf("%s\n",s1);
    printf("%s\n",s2);              
    return 0;
}

十三、指針和一維數(shù)組的練習(xí)

?練習(xí)36:字符串轉(zhuǎn)換及統(tǒng)計(jì)數(shù)字個(gè)數(shù)

從終端輸入一個(gè)字符串 gets,將所有的大寫轉(zhuǎn)成小寫,將所有的小寫轉(zhuǎn)成大寫,如果有數(shù)字,統(tǒng)計(jì)數(shù)字的個(gè)數(shù),其他字符全部轉(zhuǎn)換成 -,并輸出轉(zhuǎn)換后的字符串 及 數(shù)字的個(gè)數(shù)?

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char buff[128] = {0};
    gets(buff);
    printf("處理前:[%s]\n",buff);
    char *p = buff;
    int count = 0;

    while(*p != '\0'){
        if(*p >= 'A' && *p <= 'Z'){
            *p = *p + ('a'-'A');
        }else if(*p >= 'a' && *p <= 'z'){
            *p = *p - ('a'-'A');
        }else if(*p >= '0' && *p <= '9'){
            count++;
        }else{
            *p = '-';
        }
        p++;
    }
    printf("處理后:[%s] 共有數(shù)字 %d 個(gè)\n",buff,count);           
    return 0;
}

練習(xí)37:自己實(shí)現(xiàn) atoi函數(shù) 的功能

atoi 將字符串的數(shù)字 轉(zhuǎn)成整型的數(shù)

"12345678" ---> 12345678

#include <stdio.h>
                 
int main(int argc, const char *argv[])
{
    char buff[32] = "12345678";
    char *p = buff;
    int sum = 0;
    while(*p != '\0'){
        sum *= 10 ;   
        sum += (*p -'0');
        p++;
    }
    printf("%d\n",sum); 

    return 0;
}

?練習(xí)38:使用命令行傳參的方式 實(shí)現(xiàn) 簡易計(jì)算器的加減功能

如: ./a.out 10 + 20 ---> 30

./a.out 100 - 50 ---> 50

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
                 
int main(int argc, const char *argv[])
{
    int left_value = atoi(argv[1]);
    int right_value = atoi(argv[3]);
    if(0 == strcmp(argv[2],"+")){
        printf("%d+%d=%d\n",left_value,right_value,left_value + right_value);
    }else if(0 == strcmp(argv[2],"-")){
        printf("%d-%d=%d\n",left_value,right_value,left_value + right_value);
    }          
    return 0;
}

十四、函數(shù)練習(xí)題

練習(xí)39:自己封裝一個(gè) 能輸出 1~n 求和結(jié)果的函數(shù)

n由參數(shù)傳遞,并調(diào)用測試

#include <stdio.h>
#include <stdlib.h>

//函數(shù)聲明時(shí) 可以只寫類型 不寫形參名
void my_sum(int );
 
int main(int argc, const char *argv[])
{
    int num = atoi(argv[1]);
    my_sum(num);           
    return 0;
}

//定義時(shí) 必須要寫 形參名 因?yàn)楹瘮?shù)內(nèi)部要使用這個(gè)名字
void my_sum(int n){
    int i = 0;
    int sum = 0;
    for(i = 0; i <= n; i++){
        sum += i;
    }
    printf("%d\n",sum);
}

練習(xí)40:實(shí)現(xiàn) 兩個(gè)整數(shù) 加減乘除 的功能

編寫4個(gè)函數(shù),my_add, my_sub, my_mul, my_div ,分別實(shí)現(xiàn) 兩個(gè)整數(shù) 加減乘除 的功能,并調(diào)用測試。

#include <stdio.h>
#include <stdlib.h>

//函數(shù)聲明                 
int my_add(int, int);
int my_sub(int,int);
int my_mul(int,int);
float my_div(int,int);

int main(int argc, const char *argv[])
{
    int a = atoi(argv[1]);
    int b = atoi(argv[2]);
    printf("%d\n",my_add(a,b));
    printf("%d\n",my_sub(a,b));
    printf("%d\n",my_mul(a,b));
    printf("%.3f\n",my_div(a,b));                
    return 0;
}

int my_add(int x,int y){
    return x+y;
}
int my_sub(int x,int y){
    return x - y;
}
int my_mul(int x,int y){
    return x * y;
}
float my_div(int x,int y){
    return (float)x/(float) y;
}

?練習(xí)41:將前面冒泡排序的功能 封裝成函數(shù)

int sort(int *p, int len, int flag);

flag 1 升序 、 flag 0 降序?

#include <stdio.h>
//flag 1 升序  flag 0 降序
void my_sort(int *p,int len,int flag){
    int i = 0;
    int j = 0;
    int temp = 0;
    for(i = 0; i <len -1; i++){
        for(j = 0; j < len-i-1; j++){
            if(flag == 1){ //升序
                if(p[j] > p[j+1]){
                    temp = p[j];
                    p[j] = p[j+1];
                    p[j+1] = temp;
                }
            }else if(flag == 0){ //降序
                if(p[j] < p[j+1]){
                    temp = p[j];
                    p[j] = p[j+1];
                    p[j+1] = temp;
                }
            }
        }
    }
}

void my_print(int *p,int len){ //打印數(shù)組
    int i = 0;
    for(i = 0; i < len; i++){
        printf("%d ",p[i]);
    }
    printf("\n"); 
}

int main(int argc, const char *argv[])
{
    int s[10] = {2,1,8,5,4,3,7,9,6,10};
    //排序前
	my_print(s, 10);
	//升序排序
	my_sort(s, 10, 1);
	//排序后
	my_print(s, 10);
	//降序排序
	my_sort(s, 10, 0);
	//排序后
	my_print(s, 10);           
    return 0;
}

練習(xí)42:將 strlen 封裝成函數(shù)?

法一:?

#include <stdio.h>

//函數(shù)調(diào)用
void my_strlen(char *p){
    int len = 0;
    while(*p++){ //先進(jìn)行 p++ 后 *(p++)
        len++;  //統(tǒng)計(jì)字符個(gè)數(shù)
    }
    printf("%d\n",len);
} 

int main(int argc, const char *argv[])
{
    char s[32] = "book";
    my_strlen(s);                
    return 0;
}

法二:文章來源地址http://www.zghlxwxcb.cn/news/detail-715600.html

#include <stdio.h>

int my_strlen(const char *str){
	int len = 0;
	while(*str != '\0'){
		len++;
		str++;
	}
	return len;
}

int main(int argc, const char *argv[])
{
	char s[32] = "hello world";
	printf("%d\n", my_strlen(s));
	return 0;
}

練習(xí)43:將strcpy?封裝成函數(shù)?

#include <stdio.h>

int my_strcpy(char *dest, const char *str){
	while(*str != '\0'){
        *dest = *str;
        str++;
        dest++;
	}
    *dest = *str;
	return 0;
}

int main(int argc, const char *argv[])
{
	char s1[32] = "hello world";
    char s2[32] = "book";
    my_strcpy(s1,s2);
	printf("%s\n", s1);
    printf("%s\n", s2);
	return 0;
}

練習(xí)44:將 strcat 封裝成函數(shù)?

#include <stdio.h>

int my_strcat(char *dest, const char *str){
    //先讓dest 的下標(biāo)指向'\0'
    while(*dest != '\0'){
        dest++;
    }
    //讓str 的字符循環(huán)追加到 dest的后面
	while(*str != '\0'){
        *dest = *str; 
        str++;  
        dest++;
	}
    *dest = *str;  //將str 的 '\0' 賦給 dest
	return 0;
}

int main(int argc, const char *argv[])
{
	char s1[32] = "hello world";
    char s2[32] = "book";
    my_strcat(s1,s2);  
	printf("%s\n", s1);
    printf("%s\n", s2);
	return 0;
}

練習(xí)45:將 strcmp 封裝成函數(shù)?

#include <stdio.h>

int my_strcmp(char *s1, const char *s2){    
    while(*s1 == *s2 && *s1 != '\0'&& *s2 != '\0'){
        s1++;
        s2++;
    }
    //如果循環(huán)結(jié)束時(shí) *s1 == *s2  說明 *s1 和 *s2 都是 '\0'
	if(*s1 == *s2){
        return 0;
    }else{
        return *s1-*s2;
    }
}

int main(int argc, const char *argv[])
{
	char s1[32] = "hello";
	char s2[32] = "halloasdfqewr";
    int ret = my_strcmp(s1,s2);  

	if(ret == 0){
        printf("s1 == s2\n");
    }else if(ret > 0){
        printf("s1 > s2\n");
    }else if(ret < 0){
        printf("s1 < s2\n");
    }
	return 0;
}

到了這里,關(guān)于C基礎(chǔ):45道練習(xí)題匯總(初學(xué)者加油)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【USTC】verilog 習(xí)題練習(xí) 41-45

    【USTC】verilog 習(xí)題練習(xí) 41-45

    題目描述 在時(shí)序邏輯電路中,敏感變量不但可以是觸發(fā)信號的上升沿( posedge ),也可以是下降沿( negedge ),試創(chuàng)建 8bit 位寬的寄存器,所有 DFF 都應(yīng)該由 clk 的下降沿(負(fù)邊緣)觸發(fā)。同時(shí)采用高電平有效的同步復(fù)位方式,復(fù)位值為 0x34 而不是零。 輸入格式 輸入信號 clk,

    2024年01月24日
    瀏覽(14)
  • 【Java練習(xí)題匯總】《第一行代碼JAVA》綜合測試三,匯總Java練習(xí)題

    【Java練習(xí)題匯總】《第一行代碼JAVA》綜合測試三,匯總Java練習(xí)題

    線程的啟動方法是( )。 A. run() B. start() C. begin() D. accept() Thread 類提供表示線程優(yōu)先級的靜態(tài)常量,代表普通優(yōu)先級的靜態(tài)常量是( )。 A. MAX_PRIORITY B. MIN_PRIORITY C. NORMAL_PRIORITY D. NORM_PRIORITY 設(shè)置線程優(yōu)先級的方法是( )。 A. setPriority() B. getPriority() C. getName() D. setName() 下面 ( )方法是

    2024年02月14日
    瀏覽(32)
  • MySQL數(shù)據(jù)庫基礎(chǔ)初學(xué)者必備知識

    MySQL數(shù)據(jù)庫基礎(chǔ)初學(xué)者必備知識

    目錄 1.數(shù)據(jù)庫的基本操作 1.1顯示所有數(shù)據(jù)庫 1.2創(chuàng)建數(shù)據(jù)庫 1.3刪除數(shù)據(jù)庫 2.數(shù)據(jù)庫的類型 2.1數(shù)值類型 2.2字符串類型 2.3日期類型 3.表的簡單操作 3.1創(chuàng)建一個(gè)表 3.2顯示表的結(jié)構(gòu) 3.3顯示數(shù)據(jù)庫中的所有表 3.4刪除指定表 4.實(shí)戰(zhàn)練習(xí) 數(shù)據(jù)庫的基本操作為:顯示數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫

    2023年04月11日
    瀏覽(33)
  • 對于沒有任何基礎(chǔ)的初學(xué)者,云計(jì)算該怎樣學(xué)習(xí)?

    對于沒有任何基礎(chǔ)的初學(xué)者,云計(jì)算該怎樣學(xué)習(xí)?

    想學(xué)習(xí)任何一門專業(yè)技能,可以按下面這一套邏輯梳理! 1)了解基本內(nèi)容 云計(jì)算這個(gè)技術(shù)是做什么的?適用哪些場景?有什么優(yōu)點(diǎn)和缺點(diǎn)? 同時(shí)建議先找技術(shù)大綱,至少要學(xué)哪些技能點(diǎn),可以網(wǎng)上看完整的視頻,書籍。 其次是要想清楚你的學(xué)習(xí)目標(biāo)!與目標(biāo)無關(guān)的技術(shù)可

    2024年02月13日
    瀏覽(19)
  • SEO 分步教程:初學(xué)者掌握的 8 個(gè)簡單基礎(chǔ)知識

    SEO 分步教程:初學(xué)者掌握的 8 個(gè)簡單基礎(chǔ)知識

    如果您剛剛開始使用搜索引擎優(yōu)化 (SEO),那么分步 SEO 教程是有序的。在這一點(diǎn)上,你可能已經(jīng)聽說過一些基本術(shù)語,如研究和頁面優(yōu)化。但是,您如何應(yīng)用迄今為止收集的所有知識呢? 如果您剛剛開始使用搜索引擎優(yōu)化 (SEO),那么分步 SEO 教程是有序的。在這一

    2024年01月17日
    瀏覽(38)
  • QT基礎(chǔ):遍歷QListWidget,及QListWidget簡單演示,適合初學(xué)者食用

    QT基礎(chǔ):遍歷QListWidget,及QListWidget簡單演示,適合初學(xué)者食用

    QListWidget 是一個(gè)列表框,關(guān)于它的詳細(xì)介紹可以參考:Qt QListWidget詳解 初學(xué)者如果只是想在短時(shí)間內(nèi)了解 QListWidget 的話,可以參考這里 1、打開QT,創(chuàng)建一個(gè) widget 項(xiàng)目,在UI中加入?QListWidget 和一個(gè) PushButton(等會備用) 可以雙擊?QListWidget 小部件 , 點(diǎn)左下角的 + 可以在里

    2024年02月12日
    瀏覽(20)
  • 【虛幻引擎】UE4初學(xué)者系列教程基礎(chǔ)篇-全中文新手入門教程

    【虛幻引擎】UE4初學(xué)者系列教程基礎(chǔ)篇-全中文新手入門教程

    一、 創(chuàng)建工程文件 (1)虛擬項(xiàng)目瀏覽器 (2)虛擬文件夾的結(jié)構(gòu) (3)?初學(xué)者內(nèi)容包 二、虛幻引擎編輯界面介紹 (1)菜單欄 (2)關(guān)卡編輯器:工具欄 ?(3)“模式”面板 ?(4)“內(nèi)容瀏覽器”面板 (5)視口面板 (6)?世界大綱視圖 (7)細(xì)節(jié)面板 三、視口導(dǎo)航 四、

    2024年02月04日
    瀏覽(93)
  • 【虛幻4】UE4初學(xué)者系列教程基礎(chǔ)篇-全中文新手入門教程

    【虛幻4】UE4初學(xué)者系列教程基礎(chǔ)篇-全中文新手入門教程

    一、 創(chuàng)建工程文件 (1)虛擬項(xiàng)目瀏覽器 (2)虛擬文件夾的結(jié)構(gòu) (3)?初學(xué)者內(nèi)容包 二、虛幻引擎編輯界面介紹 (1)菜單欄 (2)關(guān)卡編輯器:工具欄 ?(3)“模式”面板 ?(4)“內(nèi)容瀏覽器”面板 (5)視口面板 (6)?世界大綱視圖 (7)細(xì)節(jié)面板 三、視口導(dǎo)航 四、

    2024年02月13日
    瀏覽(97)
  • 【Java練習(xí)題匯總】《第一行代碼JAVA》多線程篇,匯總Java練習(xí)題——線程及多線程概念、Thread 類及 Runnable 接口、線程狀態(tài)、synchronized同步操作...

    【Java練習(xí)題匯總】《第一行代碼JAVA》多線程篇,匯總Java練習(xí)題——線程及多線程概念、Thread 類及 Runnable 接口、線程狀態(tài)、synchronized同步操作...

    一、填空題 Java 多線程可以依靠________ 、________ 和________ 三種方式實(shí)現(xiàn)。 多個(gè)線程操作同一資源的時(shí)候需要注意________,依靠________ 實(shí)現(xiàn),實(shí)現(xiàn)手段是:________ 和________,過多的使用,則會出現(xiàn)________ 問題。 Java 程序運(yùn)行時(shí),至少啟動________ 個(gè)線程,分別是________ 和_

    2024年02月16日
    瀏覽(25)
  • 【Java練習(xí)題匯總】《第一行代碼JAVA》網(wǎng)絡(luò)編程篇&集合體系篇&JDBC篇,匯總Java練習(xí)題——Socket 與ServerSocket、List和Set、Map~

    【Java練習(xí)題匯總】《第一行代碼JAVA》網(wǎng)絡(luò)編程篇&集合體系篇&JDBC篇,匯總Java練習(xí)題——Socket 與ServerSocket、List和Set、Map~

    一、填空題 在類集中存放單值的最大父接口是___________ ,存放一對值的最大父接口是___________ 。 ___________ 接口保存的數(shù)據(jù)是不允許重復(fù)的,并且___________ 子類是可以排序的,根據(jù)___________ 排序。 Java 類集可以使用的輸出方式是___________ 、___________ 、___________ 和___________ 。 在

    2024年02月13日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包