c語言程序設計基礎自測訓練,c語言自測題

本文目錄一覽:

《C語言程序設計》練習題

一、選擇題

1、C語言規定,在一個源程序中,main()函數的位置(C )。

A) 必須在最開始 B)必須在最後

C) 可以任意 D) 必須在系統調用的庫函數後面

這題你死記就行,你看看這個

任何一個C++程序都必須定義一個main函數,它的返回類型總是int類型。這個函數由操作系統來調用,在main函

數執行完以後,程序也就終止了。 main也可以使用return向操作系統返回一個值,使用操作系統的命令可以檢測

main的返回值。一般約定在main返回0時,表示程序運行過程中沒有出現錯誤,其它非零值表示程序出現異常情況。

若沒有為main指定返回值,這樣返回值是任意的。

2、若x和y都是int 型變數,x=100,y=200,且有以下程序段,printf(「%d」,(x,y));則其輸出結果是( A)。

A) 200 B) 100 C) 100 200 D) 輸出不確定值

(x,y)這是個逗號表達式,表達式的值為最後一個逗號後面表達式的值,因為前面有一個%d,所以輸出 的是y的

3、合法的C語法字元常量是(C )。

A) 「A」 B) 65 C) 『\t』 D) A

字元都是由兩個單引號括起來的,死記, a)為字元串

4、表達式「3!=4」的值是(A )。

A) 1 B) 0 C) T D) F

!=是c語言的邏輯運算符,3!=4為真,多以得1, 3=4為假,值為0

5、 int a=1,b=2,c=3,d=4,執行下列程序後x的值為( C)。

if(ab) x=1;else if (cd) x=2;else x=3;

A) 1 B) 2 C) 3 D) 4

如果ab,12為假,不執行x=1,執行else if(cd),判斷:34為假,不執行x=2,執行=3,完

6、以下程序的輸出結果是(D)。

Int x=10,y=3,z;printf(「%d\n」,z=(x%y,x/y));

A)1 B) 0 C) 4 D) 3

逗號表達式,x%y,10%3,商3餘1,模取餘數1,x/y,10/3,商3餘1,除法取商3,逗號表達式,表達式的值為最後一

個逗號後面表達式的值

7、為表示x≥y≥z,應使用C語言表達式(A )。

A) (x=y)(y=z) B) (x=y) AND (y=z)

C) (x=y=z) D) (x=y) (y=z)

關係運算符,x=y與y=z必須是同時成立的,因此要用邏輯運算符,與的意思

8、合法的數組定義是( a )。

A) int a[ ]=」string」; B) int a[5]={0,1,2,3,4,5};

C) char a=」string」; D) char a[ ]={「01234」};

a不指定數組長度定義,正確

b數組長度為5,就是裡面有5個數組元素,多了一個數組元素

c定義a不是數組而是一個變數,素組應該是a[]

d是錯的,字元串是這樣定義的:char a[ ]={‘0′,’1′,’2′,’3′,’4′,’\0’};

[4]中數字是數組長度,說明裡面有幾個元素

9、設x和y均為int型變數,則語句「x+=y;y=x-y;x-=y;」的功能是(D)。

A) 把x和y按從小到大排列 B)把x和y按從大到小排列

C)無確定結果 D)交換x和y中的值

x+=y等同於x=x+y,把x加y的值賦給x,x現在存的是x與y的和

y=x-y把x減y的值賦給y,x現在存的是x與y的和 (x+y)-y=x,把x的值給y,y存x的值

x-=y等同於x=x-y,把x減y的值賦給x,(x+y)-y=x,現在的後面的y存的是x的值,做完後x里存的值是y,完成交換

10、若已定義x和y為double類型,則表達式「x=1,y=x+3/2」的值是(C)。

A) 1 B)2 C) 2.0 D) 1.0

逗號表達式,先讓x=1在算y=x+3/2,得2,因為是double類型,所以有小數點

11、下列條件語句中,功能與其他語句不同的是 (D)

A) if(a) printf(“%d\n”,x); else printf(“%d\n”,y);

B) if(a==0) printf(“%d\n”,y); else printf(“%d\n”,x);

C) if (a!=0) printf(“%d\n”,x); else printf(“%d\n”,y);

D) if(a==0) printf(“%d\n”,x); else printf(“%d\n”,y);

a 如果a為真輸出x,如果a為假輸出y

b 如果a==0,也就是為假,輸出y,a為真輸出x,同a

c 如果a!=0為真,輸出x,a為假輸出y同上

d 如果a為假輸出x,如果a為真輸出y,與以上的都不同

12、以下能正確定義二維數組的是 (C)

A) int a[][3]; B) int a[][3]=2{2*3};

C) int a[][3]={0}; D) int a[2][3]={{1},{2},{3,4}};

a 沒有給數組賦初值

b {}里不能有*

c 正確,記住第一個[]中可以為空,第二個[]不能為空,死記

d a[2][3] 的意思是有兩個一維數組,每個一維數組裡有3個元素,{{1},{2},{3,4}}; 她的意思是三個數組,{}中的每一個{}代表一個數組,裡邊的數為數組元素

13、用C語言編寫的代碼程序 (B)

A)可立即執行 B)是一個源程序

C)經過編譯即可執行 D)經過編譯解釋才能執行

死記

《C語言程序設計》第10章在線測試

1、單選題: D C A A D

2、多選題:

ABD ACD ACD AD BC

3、判斷題:

錯誤 正確 錯誤 正確 錯誤

《C語言程序設計》第17章在線測試

1、D 因為#define C(x) ((x)*(x))宏中需要使用完備的括弧才不會有引用錯誤

2、D 認真區分char a[]和char *p的區別,a是數組的首地址,也是指針,但是p僅僅是指向一個字元串的首地址的指針,雖然也是指針,但是你並不知道p指針具體在什麼代碼段的什麼位置,從而p+=2的位置你也無法確定。

3、C extern本來就是外部的意思嘛

4、A 僅僅在主函數中有效,這是對的。

5、B 局部變數優先,給你舉個例子:

int a=1;

int main()

{

int a=2;

couta;

return 0;

}

就是類似這樣的例子,你在main函數外定義了一個全局變數a,在main內部又定義了一個變數名也是a的局部變數,那麼你在main中用cout輸出的時候就是輸出了局部變數a的值,要輸出全局變數a的值時則要使用::a,實際上是局部變數將全局變數屏蔽了,可以看做局部變數的優先於全局變數

/**********************************************************************************/

第二題1、ABC

2、ABD

3、CD

4、AB

5 、AD

/**********************************************************************************/

第三題

正確

錯誤,可改為int *p=x

錯誤,不是指向結構體的指針,不可以用-

正確,因為數組名那可是一個指針,是數組的首地址

正確 當然可以遞歸了,網上多的是那種遞歸的小程序

如果有什麼不清楚,咱們可以後續交流哦@—@

C語言程序設計(201803)測試求大佬幫忙!

選D

選C;”my name”算上空格一共7個字元,加上結尾的’\0’為8個字元,所以如果m前沒有空格,那麼答案為C

選C;p指向a[3]=4的地址,即p及其之後地址中的數值為{4,5,6,7,8,9,10},所以其中第5個數為p[4]=8

選C

選D;A錯誤,字元串應為char型;B錯誤,數組長度不夠;C錯誤,沒有vhst類型;D正確,可看作字元數組,{}內的數值可轉為相應的ASCII字元

選C;字元數組即字元串不能直接通過”=”賦值,要使用strcpy函數

選C;函數實參可以是常量、變數或表達式,該題中逗號表達式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3個實參

選C;A錯誤,函數調用時不用指明其參數類型;B錯誤,fun函數沒有返回值,不能賦給k;C正確;D錯誤,函數調用時不用指明其返回類型

選A;n++表示先返回n的值,再對n進行自增操作,即先令k=n,再執行n=n+1

選C;if-else不是循環結構

選D;aa表示數組首地址,即aa[0],而不是aa[1]

選B

選B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5

選C;A錯誤,除非函數定義在調用語句之後的位置,才需要提前聲明;B錯誤,函數返回值不一定要顯示給出,沒有返回值類型的默認為整型;C正確;D錯誤,在類的定義中,當構造函數和析構函數不需要完成操作時可用空函數來表示,但它們又是有意義的

選B;scanf需指明讀入變數的地址,字元串名稱c就表示字元串的地址,也即字元數組首元素的地址,不用再加取地址符

選A

選D;同第6題

碼字不易,望採納~

C語言程序設計 試題

我就看了選擇 你確定你寫的都是正確答案嗎

感覺錯了好多

1.B

2.? 不知道

3.C

4.D

5.C

6.D

7.B

8.A

9.A

10.D

貌似前10題就對了2個

。。。

自求多福吧

C語言程序設計2015A卷-

一、判斷題(每小題1分,共15分)

1.標準C中,只有數值型數據才能進行4則混合運算。

2.標準C中,_a是合法的自定義標識符。

3.有定義:float f;表達式f+=(int)3.6%2」不符合C語言語法。

4.標準C中,邏輯運算的結果只有是1表示滿足條件,而結果是0表示不滿足條件。

6.以下運算符排列順序滿足按照優先順序從高到低的排列:『』、『!』、『==』、『-』。

7.語句for(;;);是非法的。

8.在C語言程序中可以由多個源文件構成,每個源文件都可以有自己的main()函數。

9.while和do-while的主要區別是後者至少無條件執行一次。

10.數組名代表數組的首地址是常量,所以將實參數組名表示地址傳給形參數組名是錯誤的。

11.當函數沒有返回值類型時,表示函數類型為void。

12.C語言中,指針變數作函數參數時,它們不是採取單向值傳遞的方式。

13.一個函數中只允許有一條return語句。

14.在C語言中,如果沒有說明變數的存儲類型是auto類型的。

15.由於指針中所存放的地址都是整數,所以整型指針和浮點型指針可以相互賦值。

二、填空題(每空1分,共15分)

1. 若a=4;b=5,c=6;則表達式c==(b=-a); 中c的值是 (1) 。

2. 計算表達式的值:

4&&-4的值: (2) ;

設int a=3,b=4,c=5,則表達式a||b+cb==c的值: (3) ;

設x=2.5, a=7, y=4.7,則表達式x+a%3*(int)(x+y)%2/4的值: (4) ;

設a=12,則表達式a*=a/5的值: (5) ;

3. 若int x = 4,y = 6,z = 0;有循環while(x = y) {z ++;y–;}

則循環語句執行完後,z值為 (6) 。

4. 變數的指針就是指該變數的 (7) 。

5. 若有定義int (*p)[4],則標識符p是 (8) ;若有定義int *p[4],則標識符p是 (9) ;

6. 已有定義:char *p[ ]={「France」,「Chinese」,「Russia」,「America」};則語句printf(「%s」,p[2]);printf(「%c」,*(p[1]+2));printf(「%c」,*(*(p+1)+1));

的輸出結果分別為: (10) 、 (11) 、 (12) 。

7. 已有定義: int x=65; 若格式化輸出結果為「A, 65」,則對應的格式化輸出語句為printf(「 (13) , (14) 」, x, x)。

8. 已定義:int a[][2]={1, 2, 3, 4, 2, 6, 7, 2};則a[3][0]= (15) 。

三、簡答題(每題4分,共12分)

1、簡述選擇語句if和else語句對與switch語句的區別。

2、簡述在循環語句中,break和continue的區別。

3、若int a[5],*p=a;簡述*p++和(*p)++的區別。

四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應正確語句(每小題4分,共16分)

五、程序填空題:下列程序中缺少若干條語句,在對應的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)

六、閱讀下列程序,寫出運行結果(第一小題4分,第二小題6分,共10分)

七、編程題(8分)

編譯程序,其功能是比較字元串的大小( 不允許 用系統提供的字元串比較函數strcmp)。要求是:

(1) 通過主函數調用一個函數strcompare來實現。

(2) 要求函數strcompare實現兩個字元的比較:如第一個字元小於第二個字元則返回一個負值;如兩個字元相等則返回0值;如第一個字元大於第二個字元則返回一個正值。

(3) 並輸出兩個字元串中相同部分的子串。

《C語言程序設計基礎》試卷參考答案

一、判斷題(每小題1分,共15分)

1~5 ; 6~10 ; 11~15

二、填空題(每空1分,共15分)

(1) 6 (2) 1 (3) 1 (4) 2.5 (5) 24 (6) 6

(7)地址 (8) 行指針,指向有四個元素的一維數組

(9)指針數組名,該數組有四個元素,每個元素都是指針

(10)Russia (11)i (12)h (13) %c (14) %d (15)7

三、簡答題(每題4分,共12分)

1、if總是判斷其後面的表達式的值是否為非零值,如是非零值則執行其後面的語句或由{}括起來的複合語句,否則執行else後面的語句。而switch語句則根據其後面表達式的可數值來判斷,執行switch語句體內與其中的一個case:常量值相等語句後面的語句。執行break語句後,跳出switch語句體。

2、break是終止整個循環過程;continue是終止本次循環。

3、*p++首先取a[0]的值,然後p指向a[1];(*p)++使得a[0]的值自增1,但p保持不變。

四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應正確語句(每小題4 分,共16分)

1、 (1)缺#include ; (2)scanf(「%f」,a); 改為 scanf(「%f」,a);

2、 (1)缺sum=0; (2)for(i=1; i=3; i++) 改為for(i=0;i3;i++)

3、 (1)p1=p2 改為 *p1=*p2 (2)swap(a, *p) 改為swap(a, p)

4、 (1)在if(m0)語句後添加else if(m==0) a=1; (2) 添加 return(a);

五、程序填空題:下列程序中缺少若干條語句,在對應的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)

1、 (1)x=0; (2)if(n==x) (3)s++;或s=s+1;

2、 (4)num[i] (5)max num[i]? (6)num[i]!=0

3、 (7)n-i-1 (8)a[j]a[j+1] (9)a[j+1]=temp

4、 (10)count=0; (11)n%10 (12)n0或n!=0或n

六、閱讀下列程序,寫出運行結果(第一小題4分,第二小題6分,共10分)

1、 #*#*#*

2、 main i=1 j=2 k=2

sub i=1 j=2 k=1 x=2

sub i=1 j=2 k=1 x=3

七、編程題(8分)

#include

main()

{

int i,j, flag=0;

char str1[90],str2[90];

gets(str1);

gets(str2);

i=0;

do{

flag=strcompare(str1[i],str2[i]);

i++;

}while(str1[i]!=』』 str2[i]!=』』 flag=0);

if(flag0)printf(「%s小於%s 」,str1,str2);

else if(flag==0) printf(「%s 等於%s 」,str1,str2);

else printf(「%s大於%s 」,str1,str2);

printf(「兩個字元串中相同的字串為:」);

j=0;

i–; 後3句可用str1[i]=』』; printf(「%s」,str1);代替//用str2也可以。

while(ji){printf(「%c」,str1[i]);j++;} span=”” /i){printf(「%c」,str1[i]);j++;}

}

int strcompare(char c1,char c2)

{

int v;

v=c1-c2;

return v;

}

原創文章,作者:RUFQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139575.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RUFQ的頭像RUFQ
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相關推薦

  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • 數據結構與演算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與演算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序演算法、字元串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • 樹莓派DIY無人機一:製作基礎

    本文將介紹如何使用樹莓派製作一個可飛行的小型無人機。本文將介紹樹莓派的選型、比例積木的使用、無線電通信以及如何控制飛行器的基本運動。 一、樹莓派的選型 在DIY無人機中,樹莓派是必…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Polyphone音頻編輯器基礎入門教程

    Polyphone是一款免費的音頻編輯器,可用於編輯.sf2和.sfz格式的音色庫。本文將詳細介紹Polyphone的基礎操作及使用方法。 一、安裝和簡介 首先,我們需要下載並安裝…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論