本文目錄一覽:
- 1、《C語言程序設計》練習題
- 2、《C語言程序設計》第10章在線測試
- 3、《C語言程序設計》第17章在線測試
- 4、C語言程序設計(201803)測試求大佬幫忙!
- 5、C語言程序設計 試題
- 6、C語言程序設計2015A卷-
《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