C語言程序設計

2023-01-13 13:30:02 字數 2642 閱讀 1770

1.有以下程式

main()

執行後輸出結果是_5,6_____。

解析函式strlen()用於計算字串的長度,所給的字串s中,'\n'是轉義字元,代表乙個"換行"符,'\\'表示乙個反斜槓字元'\',所以字串s的長度為5;sizeof()函式是用來計算字串所佔記憶體的位元組數,5個字元在記憶體中佔5個位元組,由於c規定,在每乙個字串末尾加乙個字元結束標誌'\0'以便系統判斷字串是否結束,所以該字串s所佔記憶體的位元組數為6,最終列印輸出5,6。:

2.若有說明:int n=2,*p=&n,*q=p;,則以下非法的賦值語句是___p=n___。

指標變數不同於整型變數和其它型別的變數,它是用來存放位址(指標)的,不能將乙個整型量(或任何其它非位址型別的資料)賦給乙個指標變數,這樣的賦值是不合法的。本題中的答案d就屬於這種情況,所以p=n;是非法的賦值語句。

3.若有定義:char *x="abcdefghi";,以下選項中正確運用了strcpy函式的是___char y[10],*s; strcpy(s=y+1, x+1);___。

選項a中x [4]是取字元e,也就是將字元複製到y中,strcpy實現的是位址的複製所以選項a錯誤;選項b中++y是錯誤的,不允許對常量進行自加運算(y是乙個確定的位址值),所以選項b 錯誤;選項c指標變數s指向了y向後的第5位,則存放x時會出現越界問題,所以選項c錯誤;選項d中,指標變數s指向了y向後的第一位,此時s可存放資料的長度為9,而位址"x+1"起的字串的位址長度也剛好為9(包括"\0"),所以開始複製不會出現位址越界問題。

4. 若fp是指向某檔案的指標,且已讀到此檔案末尾,則庫函式feof(fp)的返回值是__非零值____。

5. 若有以下程式段

int m=0xabc,n=0xabc;

m-=n;

printf("%x\n",m);

執行後輸出結果是___0___。

printf()函式的一般格式如下所示:

printf("格式控制字串",輸出項清單)

格式控制字串中包括:

1、格式轉換說明符:以"%"開頭後跟乙個格式字元,它用於輸出資料格式的轉換與控制;

2、轉義字元:以"\"開頭後跟乙個字元,用於輸出某些特殊意義的字元和不可顯示字元;

3、其他字元:用於照原樣顯示的字元。printf()格式轉換說明符:

'%x'按實際位數輸出十六進製制整數。因為m,n都定義為十六進製制整數,且m=n,m-=n;的意思是將m與n的差值重新賦給m,所以m為0。

6. 設有

static char str="beijing";

則執行 printf("%d\n",strlen(strcpy(str,"china") ) );

後的輸出結果為__5____。

解析;在執行printf()函式前,陣列str的長度是7,但是使用strcpy()函式將新的值賦給str後,strlen()函式返回的應當是現在的str字串的字元個數,即是5。

7. 若有一些定義和語句

#include <>

int a=4,b=3,*p,*q,*w;

p=&a;q=&b;w=q;q=null;

則以下選項中錯誤的語句是__*q=0____。

由於指標變數q賦值為null,即空位址,如果給空位址所指向的儲存空間賦值的話,系統會出錯,提示為:null point assignment!。

8. 設int a=12,則執行完語句a+=a-=a*a後,a的值是_-264_____。

第一步:a*a=144 ;(此時a=12)

第二步:a-=144相當於a=a-144,a=a-144=-132; (此時a=-132)

第三步:a+=a相當於a=a+a,a=a+a=-264;

所以該表示式最後的值應當為-264。

9. 若有如下程式段,其中s、a、b、c均已定義為整型變數,且a、c均已賦值(c大於0)。

s=a;

for(b=1;b<=c;b++) s=s+1;

則與上述程式段功能等價的賦值語句是_s=a+c;_____。

本題s的初值是a,然後b從1迴圈到c,每迴圈一次,s都加1,也就是到了c,加了1*c,所以程式所實現的功能實際上是s=a+c。

10. 以下敘述中正確的是__用c程式實現的演算法可以沒有輸入但必須要有輸出____。

演算法的特性中包括"有零個或多個輸入"及"有乙個或多個輸出"這兩個特性。輸入是指執行演算法時從外界取得必要的資訊。乙個演算法可以有兩個或多個輸入,但也可以沒有輸入;乙個演算法得到的結果就是演算法的輸出,沒有輸出的演算法是沒有意義的,所以乙個演算法必須至少有乙個輸出。

11. 演算法的特性中包括"有零個或多個輸入"及"有乙個或多個輸出"這兩個特性。輸入是指執行演算法時從外界取得必要的資訊。

乙個演算法可以有兩個或多個輸入,但也可以沒有輸入;乙個演算法得到的結果就是演算法的輸出,沒有輸出的演算法是沒有意義的,所以乙個演算法必須至少有乙個輸出。

#include <>

float fun ( int n )

main( )

題中第一空填"1":此句是定義變數並為變數賦初值,根據題中的公式將變數a定義為float型變數並賦值為1。

題中第二個空填"n":由題意可知,程式要求出an的值,迴圈的終止值應為n,所以此迴圈語句應該為"for (i=2;i<=n;i++)"。

題中第三個空填"return a":通過return語句將被呼叫函式中乙個確定值帶回主調函式中去。

C語言程序設計

題目 本學期作業以附件形式完成 1.完成乙個大小寫字母自動轉換的程式,輸入大寫字母,程式可以輸出小寫字母,輸入小寫字母,可以輸出大寫字母 include int main puts str return 0 2.用三種迴圈方式實現1 100的和計算 提示 do.while,while,for for...

C語言程序

1 請編寫函式fun,對長度為7個字元的字串,除首 尾字元外,將其餘5個字元按降序排列。例如,原來的字串為ceaedca,排序後輸出為cedceaa。參考 include include include int fun char s,int num main 2 請編一函式void fun int ...

3C語言程序設計

課程中文名稱 c語言程式設計 課程英文名稱 c language programming課程編碼 04t1032080 總學時 60 學分 3.0 先修課程 無 課程簡介 c 語言程式設計 是全校各專業本科教學中的一門重要公共技術基礎課,在全校各專業的本科教學計畫中占有重要地位和作用。在計算機教育方...