1樓:鷹弈
1、有定義:int n=0,*p=&n,**q=&p;,則以下選項中,正確的賦值語句是(d)
a.p=1; b.*q=2; c.q=p; d.*p=5;
解:*p為一級指標,其中p為指標的地址,**q為二級指標,其中*q為指標的地址,只能給變數或指標變數賦值,不能給地址賦值,所謂地址,就是由acs碼構成,簡單的說,就是每個人都有一個名字(地址)一樣,目的是要區分每個人(地址中儲存的值)。
2、若有說明:int n=2,*p=&n,*q=p;,則一下其非法的賦值語句是(d)
a.p=q; b.*p=*q; c.n=*q; d.p=n;
解:同上。
3、有以下程式:
void fun(char *a, char *b)
main()
( char c1='a',c2='a',*p1,*p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf("%c%c\n",c1,c2);
}程式執行後的輸出結果是(a)
a. ab b. aa c. aa d. bb
解:這是指標傳值(地址傳值),實參傳給形參,其實就是p1(實參地址)與a(形參地址)共用一個地址,p2與b共用一個地址,a=b並沒有改變地址a中儲存的『a』,而是讓*a指向地址b,進而改變或控制地址b中存放的值,所以c1=『a』不變,而(*a)++,就是字元『a'的asc碼加1,也就是字元『b'那麼地址b中的值就變成了字元『b'。
4、以下程式執行後的輸出結果是___1_1_1_1___
main()
}解:上面的q等於1吧,
當i=1;n[1]+q=n[0]*2+1=0*2+1=1;
i=2;n[2]+q=n[1]*2+1=0*2+1=1;
i=3;n[3]+q=n[2]*2+1=1;
i=4;n[4]+q=1;
5、有如下程式:
#include
main()
若文字檔案f1.txt中原有內容為:good,則執行以上程式後檔案f1.txt中的內容為(c)
a.goodabc b.abcd c.abc d.abcgood
解:簡單的說就是以「w(寫生成)」開啟的檔案,檔案內的原始資料將被刪除。這東西不是一兩句就能解釋清楚。
同學,你的c要好好加油啊,這都是些很基本的問題。
2樓:匿名使用者
1. *p表示指標所指向的變數。因此可以可以直接賦值。
對於a,p表示指標,不能直接對一個指標賦值一個變數值。
對於b,*q表示指標同a
對於c,兩者型別不同,一個二級指標一個一級指標,不能直接賦值。
2。p表示指標 *p表示指標指向的值,不能直接對指標賦變數值。
3。對於x而言,函式沒有地方改它的值因此結果為為原來的值a,函式的功能把y地址傳給a,並且把值加1,因此a+1=b;
4.n[i]=n[i-1]*2不管怎麼運算元組中的數全是0因此輸出其實是q值。
5.fopen("f1.txt","w")的時候如果檔案不存在那麼就會建立檔案,如果檔案存在就會把內容清空。
3樓:匿名使用者
1 2題其實就看他們相互之間型別相不相同
4樓:匿名使用者
int n=0;其中n是整型資料,*p=&n,其中p是指向整型資料的指標變數,而**q=&p;其中q是二次指標所以選擇d
第三題,p1,p2是分別指向c1和c2的指標變數,然後呼叫fun函式,a=b,含義是p1和p2都指向了c2,(*a)++是將c2加一
c語言報錯的問題?
5樓:匿名使用者
你的程式錯誤,是在
cout << 「enter the temperature in celsius:」;
cout << 「fahrenheit value is:」;中用了中文狀態下的雙引號。
#include
#include
#include
using namespace std;
int main(int nnumberofargs, char* pszargs)
以上程式正確,可以執行。
如果還不行,那就是編譯器的問題。建議:用vc2008,c-free或vc2010.
微軟已停止對vc6.0進行更新了。(開始不習慣很正常,成為高手後會喜歡例如vc2010的)。
問關於c語言指標的問題,問一個關於C語言指標的問題
常玉標 cannot convert from const int to double 編譯器 會出現這樣的錯誤.應為不能把const int 賦值給 double 型別的變數.希望你能懂 首先我鄙視下樓上的回答,答非所問。你這肯定錯誤的啊,首先 double p 是定義了一個指標變數p,p只能存放...
關於c語言的程式設計,關於C語言的程式設計問題?
執行示例 原始碼如下 include stdio.h int main printf n return 0 望採納。int用來定義整型變數 整數 float用來定義浮點型變數 實數 float和int一樣是用來定義變數的,它不是函式.賦值語句value 700 weight 14.5833之所以不在...
關於c語言的問題,一個關於c語言的問題
彬彬有禮 對於你的疑問,我一個一個幫你解決 1.因為5 9 代表整除取商,即結果為0 而 5.0 9 代表5除以9,即結果為0.555556 所以兩者結果完全不一樣。再比如 3 2 1,而3.0 2 1.5 2.double b 2這是對的,沒有必要寫成double b 2.0,因為系統會自動幫你轉...