二級C語言裡面題目,有些不明白,初學者求解答

2022-03-09 00:05:37 字數 3985 閱讀 3290

1樓:匿名使用者

1、p[i][j]指標指向當前遍歷的c的位置,每個偶數位置取過來,這是取來的值是字元格式的數字,所以和字元0相減,就是數值形式的數字了,加上已經積累的總值s,每次s乘以10,留一個空的個位數,等待下一個數加入

2、0不加引號我也不知道為什麼

3、賦的是c[i]的指標,而不是整個字串,不過實際上是等價於賦了字串,這麼理解也沒錯

2樓:匿名使用者

1,s=10*s+p[i][j]-'0' 比如我想拼出1234

我就可以這樣,s =0; s = 10 * s + 1;s = 10 * s + 2;s = 10 * s + 3; s = s * 10 + 4;然後s = 1234

另外,p陣列是個char型陣列,在字元中,0-9是**連續的,9 的**- 0 的** = 9,這是常見的獲取單個數字字元的數字值得方法(單引號代表字元,雙引號代表字元竄)

2,帶引號代表字元,在char型中,每個字數字代表的符號不同,參考ascii表,並不是編號為0的字元就為0……另外,加上雙引號代表這個值是字元,不帶雙引號代表是數字(char型可以理解為字元的編號)。

3,那是一個for迴圈啊,迴圈了兩次,就是練個賦值,兩個值都付過去了~~~~

3樓:

1,注意看s的型別,是int。這裡每找到一個符合要求的數就將它放入s中,比如,s初始化0,找到第一個,6, 0*10+6=6,找到第二個,3, 6*10+3=63,,,類似的,,每在s後追加一個數就要把s乘以10.

2.注意'0'和0是不一樣的,字元'0'的ascii值是38,c裡char型別儲存的其實是字元對應的ascii值,這個你可以查查,這個懂了其他的就好理解了

3.對的,因為*p[2]是一個儲存指向char的指標的陣列,經過p[i]=c[i]後陣列p中儲存了兩個值,第一個值也就是p[0]儲存的是字串"6934"的首字元'6'的地址,相應的,第二個值也就是p[1]儲存的是字串"8254"的首字元'8'的地址,這時候每個字串末尾會有一個隱藏字元'\0'來標示字串的結尾

4樓:天狼滅

1、10*s就是進位,比如迴圈一開始是s=10*0+6,此時6是個位,下一個迴圈通過10*s就能讓6變成十位,直到最後變成千位,你自己可以模擬一下運算過程。

2、似乎是列印錯了吧,如果0不加單引號,那就是p[i][j]不為空,按照題意應該是大於0才對,我試了下,在這題中加不加結果都一樣

3、*p[2]是指標陣列,你去看一下這部分內容,大概意思就是p[0]儲存c[0]的地址,p[1]儲存c[1]的地址

關於c語言應試,個人覺得要把基礎知識點弄懂,多做題

一道國家二級計算機c語言題目,我看不懂,求大神解釋下程式!

5樓:匿名使用者

sort函式是排序,在排序過程中,要用到交換兩個數,交換兩個數由swap函式完成。

(9) 由於swap函式定義出現呼叫之後,所以要在呼叫之前先對swap函式宣告,函式宣告是函式首行後加分號,所以選擇c。

(10) sort函式是排序,要傳過來陣列,和陣列的大小。

(11) 對swap函式進行呼叫,根據函式定義首行,需要兩個整型地址。

(12) 對sort函式進行呼叫,要傳排序的陣列名,和陣列的大小

c語言程式設計題,下面是一道c語言的二級程式題,本人是c語言初學者,這道題我實在是看不明白程式是怎麼走 20

6樓:匿名使用者

#include "stdio.h"

void fun(char * s)

7樓:匿名使用者

int i,n,k;

char c;

n=0;

for(i=0;s[i]!='\0';i++)/*判斷s[i]中的資料是否為0,

n++; 如果不為0,即為字元,所以用n存放字元個數*/

if(n%2==0) /*判斷n是否偶數,

k=n-1; /* 是偶數,則n-1=k,而k則是字串中最右邊的奇數下標值,也是上限值*/

else /*不是偶數,即為奇數,

k=n-2; /*則n-2=k,而k則是字串中最右邊的奇數下標值,n-1是字串的上限值*/

c=s[k]; /*用c儲存最右邊的奇數下標值儲存單元中的資料*/

for(i=k-2;i>=1;i=i-2) /*下標為奇數的字元

s[i+2]=s[i]; 右移到下一個奇數位置

s[1]=c;/*將最右邊被移出的字串的字元繞回到第一個奇數位置*/

8樓:匿名使用者

char s[80]="abcdefgh"; //定義陣列

fun(s); //傳的是陣列指標,所以fun函式執行完後s的值就真正的改變了。

fun()函式的執行過程如下:以"abcdefgh"為例

for(i=0;s[i]!='\0';i++)

n++;

//得到n=8

if(n%2==0)

k=n-1;

else

k=n-2;

//判斷n是否為偶數,如果是偶數,則將k賦值為n的前一個奇數

//此時k=8-1=7

c=s[k];

//先把最後這個奇數下標的值儲存到變數c中

//c=h

for(i=k-2;i>=1;i=i-2)

s[i+2]=s[i];

//開始執行迴圈體

//i=7-2=5;i滿足》=1執行s[5+2]=s[5],即s[7]=s[5]

//此時s="abcdefgf"

//執行i=i-2即i=5-2=3;i滿足》=1執行s[3+2]=s[3],即s[5]=s[3]

//此時s="abcdedgf"

//執行i=i-2即i=3-2=1;i滿足》=1執行s[1+2]=s[1],即s[3]=s[1]

//此時s="abcbedgf"

//執行i=i-2即i=1-2=-1;i不滿足》=1則跳出迴圈體

s[1]=c;

//將s[1]的值賦值為h

//此時s="ahcbedgf"

//最後返回此s

兩道c語言的簡單題目不懂~求解答~為什麼選c,d特別是第十題求詳細解題方法。謝啦~

9樓:

a a是1行4列的陣列,而賦值列表中有5個元素,是放不下的b 定義二維陣列的時候要求列數不能為空,而行數可以由後面的賦值列表決定,若沒有賦值列表那麼行數也不能為空

c b是2行3列的陣列,而賦值列表中有3行(1個{}就是一行的資料),超過陣列定義的行數

d 正確,相當於定義了一個1行3列的陣列,y[0][0]=0,y[0][1]=0,y[0][2]=0

10樓:一葉飄零海

會去把如何定義二維陣列學習下,你就明白了

一道計算機二級c語言的題!求詳細解答!!!

11樓:匿名使用者

c選項的資料型別不對,題目中定義的是字元和整形,所以應該是%c和%d

c語言一個新手問題,求解答

12樓:匿名使用者

*(pnum+count)是doulbe*型別,改為**(pnum+count)才是double。

還有scanf("%lf",pnum+count); 改為scanf("%lf",*(pnum+count));

我有一個c語言的問題不知道,求解答

13樓:匿名使用者

((-b)- sqrt(b^2-4*a*c))/(2*a)

((-b)+ sqrt(b^2-4*a*c))/(2*a)

14樓:窗外的小行星

我問你問題你只要說是或者不是,你被誰

C語言二級題,C語言二級題

p指向a首地址,x 是無符號16進位制列印,所以這裡首地址是16進位制的194,int2位元組大 明p自增跨度2,所以p 9地址值就加了18。因為是16進位制運算所以是194 12 1a6 程式要求輸出的是地址,p的地址是194,那麼p 9地址是194 18,根據16進位制相加,就變成1a6了呀。程...

請教一道二級C語言題

我給你模擬下迴圈的內容 ps char相減是轉換成整形在減的 陣列內容 12134 to int 49,50,49,51,52 第一遍 s 1 k 1 執行 a a s 1 0 a 0 50 48 結果a 2 第二遍 s 2 k 2 執行 a a s 2 0 1 a 2 49 48 1 結果a 4 ...

馬上二級C語言考試了,急急急

第一個交換的是指標變數x,y的值,這些值是出來的實參 兩個整型變數地址 的拷貝。完成的是交換拷貝的地址,就是傳值呼叫。對x y指向的內容並沒有改變。如果非要交換指標的指向,可以這樣做 字串的交換隻能這樣作,而整型等基本型別的交換就沒必要這樣做了 void fun int x,int y main 你...