請幫忙解說一下一道c語言的解題思路,謝謝

2021-03-29 02:04:17 字數 3158 閱讀 6890

1樓:veket的小號

知識點:

static 型別變數的特點

遞迴函式

main 調

printletter

進入 printletter c是57 >48 輸出 c(ascii碼為57的字元是9) c--變為 56

再去調printletter

進入printletter c 是 56>48 輸出 c(ascii碼為56的字元是8) c--變為 55

再去調printletter

...............

進入printletter c 是 48==48 輸出 c(ascii碼為48的字元是0) c--變為 47

再去調printletter

進入printletter c 是 47<48返回 printletter (static為 48 的那個)再返回 .........

一直返回到 (static為 57 的那個)返回main

2樓:鄒靖

1.進入main函式,呼叫函式printletter();,c初值是57,滿足條件c≥48,輸出ascii碼值等於c的字元,c自減;

2.c的值為56,還是滿足條件,繼續輸出,自減;

...n.一直到c的值為47的時候,退出函式printletter();,同時,程式結束。

其實就是一個迴圈,用遞迴的方式實現,估計是lz對遞迴和關鍵字static不太理解。

3樓:匿名使用者

c 為靜態變數,函式結束也不會催毀,初始化為57 ,對應為數字9,然後自身呼叫, c-1=56 ,對應為數字8... 再呼叫時,c=48了,對應數字0,... 再呼叫自身時,條件為假,結速執行.

4樓:wo是隻小菜鳥

首先你得明白數字與字元的關係,他們之間是一個「48「的差值。 c定義為int 但是輸出的時候是以字元的形式輸出。 所以 在這個函式自呼叫中,整數 57本身代表的字元是57-48=9,所以在自呼叫10次的過程中,c不斷的減小,意味著在9的基礎上依次減小。

這裡面主要是一個自呼叫關係和數字與字元之間的關係。

5樓:匿名使用者

這是個遞迴函式,只要c >= 48,就繼續遞迴下去,並把該ascii碼的字元列印出來

void printletter()}

6樓:匿名使用者

你的問題是什麼?這個程式的功能的讓變數c每次遞迴呼叫

printletter()都減一。直到c<48。

7樓:匿名使用者

遞迴函式,列印出ascii數值為57到48對應的字元

8樓:匿名使用者

定義在函式內部是區域性變數,生存期是整個程式執行到結束(對於static),而作用域只是函式被呼叫的這個過程。也就是說不能在函式外呼叫它。

函式內部遞迴呼叫 連續輸出從ascii碼值為57到48的字元

一道c語言的題目請各位幫幫忙了,謝謝!! 20

9樓:匿名使用者

int main()

s[i] = 0;

getchar();

j = 0;

k = 0;

for(i = 0;i <= n;i++)else if(s[i - 1] <= 'z' && s[i - 1] >= 'a' && (s[i] <= 'z' && s[i] >= 'a' || i == n))

} for(i = 0;i < j;i++)printf("%d\n",max);

} return 0;}

有一道c語言的題,大家來幫忙看看,謝謝!!!

10樓:匿名使用者

使用c語言遍

歷某一目錄下所有的檔案

struct ffblk file;

int flag;

while(flag==0)

哪位大神幫我講解一下這道c語言練習解題思路呀!小弟萬分感謝π_π,用for或者while語句 10

11樓:

供參考……

//#include "stdafx.h"//if the vc++6.0, with this line.

#include "stdio.h"

int main(void){

int n,i,k;

printf("input n(0

12樓:匿名使用者

就輸入 一個數,for的話,就定一個變數,執行一次迴圈加一次,迴圈條件小於25,這個變數初始值為0,再定義個變數,初始值為1,執行一次迴圈,輸出一次,再加1,if判斷,如果大於9,就讓它變為1

c語言選擇題,求大神幫忙**解答一下,寫出解題過程和解題思路,謝謝了,**等。

13樓:

1 解釋如下 問題關鍵 變數的作用域

2 結束在註釋行

#include

int main()

這個大括號內

a *= 4; // a = a*4 = 40

printf("%d %d\n",a,b);// 40 35}printf("%d %d\n", a, b); // a發生改變 40 b未變 20

getchar();

return 0;}

一道c語言題,跪求大神解答,我需要的是思路,謝謝! 10

14樓:匿名使用者

#define n 6

int find(int a);

int arrange(int a,int i);

int main()

;position=find(a);

if(position==-1)

retuen -1;

value=a[position+1];

for(i=position;iif(a[i]>a[position]&&a[i]=0;i--)

return 0;}

一道c語言程式設計題請高手幫忙,一道C語言程式設計題,請高手幫忙!

很簡單啊。仔細看這點for for i 3 i 1 i sum 0 不論第一個for迴圈執行多少次,sum都被重新賦值為0,當i 1做最後一次迴圈時,在進入第二個for迴圈之前sum 0進入第二個for迴圈後,for j 1 j i j 等價於 for j 1 j 1 j 所以只執行一次迴圈,所以此...

一道C語言習題!?大家幫幫忙一道c語言的題目請各位幫幫忙,急得很,先謝謝大家了!!!

an x x bai2 x du3 x 4 1 n 1 x n an 1 x x 2 x 3 x 4 1 n 1 x n 1 n x n 1 x 1 an 所以第一個空zhi是 x 第二dao 個是 1 px x,n 1 求 baix x 2 x 3 x 4 1 n 1 x n x提出後du 就是 ...

C語言中的一道例題,誰能幫忙詳細解釋一下每一步的含義

輸出為 bcdefgha 解釋 char ss char s 函式ss 返回一個指向字串的指標 專函式引數 s 是一個指向字串的指標 這樣,在 屬main 中呼叫 ss str 後,s指向了str的首元素,也就是 abcdefgh 中的 a char p,t 定義一個char 指標 p 和一個cha...