C语言期末考试复习资料(选择题)
1、以下敘述正確的是( B )
A)C語言的源程序不必通過編譯就可以直接運行。
B)C語言中的每條可執行語句最終都將被轉換成二進制的機器指令。
C)C語言源程序經編譯形成的二進制代碼可以直接運行。
D)C語言中的函數不可以單獨進行編譯。
2. main( )函數的位置____B_____。
A.?必須在自定義函數前面?? B. 可以在自定義函數后面
C.必須位于程序的最前面??? D.必須在自定義函數后面
3、設 a 和 b 均為 double 型變量,且 a=5.5 、b=2.5 ,則表達式(int)a+b/b
的值是( D)
A、 6.500000?? B、 6??? C、 5.500000?? D、 6.000000
4、switch (表達式)語句中的“表達式”,允許的類型是( C)。
A. float,int?? B. float, int, char?? C. int, char?D. char, double
5. C語言的基本構成單位是(? A ?)。
A.?函數?????? B. 函數和過程? ? C. 超文本過程???? D. 子程序
6.下列字符串是標識符的是___D______。
A. 5_pro??? B.case??? C.else??? D.pro_5
7、設 int x=1, y=1; 表達式 (!x ||y--) 的值是( B)。
A、0?? B 、1?? C 、2?? D 、-1
8、對兩個字符數組a 和 b 進行初始化 char[]="ABCDEF";char b[ ]={'A','B','C','D','E','F'}; 則以下敘述正確的是 (D)。
A、a 與 b 數組完全相同???? B、a 與 b 長度相同
C、a 和 b 中都存放字符串?? D 、a 數組比 b 數組長度長
9、為了避免在嵌套的條件語句if ―― else 中產生二義性, c語言規定:else 子句總是與 (B) 配對。
A、縮排位置相同的if???? B、其之前最近的if
C、其之后最近的if?????? D、同一行上的 if
10、正確的變量定義是( A)。
A.unsigned long d=1000;? B.float m1=m2=10.0;
C.char c1= ’A’,c2=A;???? D.doublex=0.618,x=3.14;
11、程序 char c[5]={ ‘a’,’b’,’\0’,’c’,’\0’}; printf( “%s”,c);} 的運行結果是 ( D )。
A?、'a''b'?? B、 ab?? C、ab c?? D、ab
12、一個 C語言的源程序中(?A)
A)必須有一個主函數??? B)可能有多個主函數
C)必須有除主函數外其它函數? D)可以沒有主函數
13、C?語言中最簡單的數據類型包括( B)
A、整型、實型、邏輯型????? B、整型、實型、字符型
C、整型、字符型、邏輯型??? D 、整型、實型、邏輯型、字符型
14.以下不正確的C語言標識符是( D ? )。
A. ABC?????????????B. abc????????????? C. a_bc???????? D. ab.c
15. C語言的基本數據類型包括___A______。
A.?整型、實型、字符型???? B. 整型、實型、空類型
C.整型、字符型、指針型??? D.整型、實型、邏輯型
16.?在C語言中,合法的字符串常量是____B_____。
A.?‘\078’ B. “asd” C. ‘ab’ D. ‘\0’
17、下面不正確的字符串常量是(A)
A、 'abc'???? B、 "12'12"??? C、 "0"????? D 、 " "
18、設 int a=1,b=2;, 則執行 a=b+2,a++,a+b ;后 a 和 b 的值分別是( D)。
A.1 和 2??B.3 和 2? C.4 和 7? D.5 和 2
19、下述表達式中 ,( A )可以正確表示 x≤0 或 x≥1 的關系。?
A?、(x>=1) || (x<=0)? B 、x>=1 | x<=0? C 、x>=1 && x<=0? D 、 (x>=1) && (x<=0)
20?設:int a=1,b=2,c=3,d=4,m=2,n=2; 執行 (m=a>b)&& (n=c>d) 后 n 的值為 (B) 。
A?、1? B、2?? C、3?? D、4
21.若有定義:int a=7; float x=2.5 , y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是( A ? )。
A. 2.500000??? B.2.750000?? C. 3.500000?? D. 0.000000
22.?結構化程序設計的三種基本結構是____C_____。
A.函數結構、選擇結構、判斷結構?? B.函數結構、嵌套結構、平行結構
C.順序結構、選擇結構、循環結構?? D.選擇結構、循環結構、嵌套結構
23、以下錯誤的 if 語句是 (C) 。
A、 if(x>y) z=x;?? B、 if(x= =y) z=0;
C、 if(x!=y) printf("%d",x) else printf("%d",y);
D、 if(x<y) { x++;y--;}
24、設 int a=2,b=3,c=4;, 則表達式a>b&&b<c||b 的值是(C )。
A.-1? B.0? C.1?? D.2
25、下面是對數組a 的初始化,其中不正確的是( D )。
A?、a[5]={"ABCD"}?? B 、a[5]={'A' ,'B','C', 'D'}
C?、 a[5]= ""??????? D 、a[5]="ABCDE"
26、程序 char c[5]={‘a’, ’b’, ’\0 ’, ’c’ , ’\0 ’}; printf(“%s”,c);} 的運行結果是 ( D) 。
A、'a''b'? B、ab? C 、ab c? D 、 ab
27、若變量已正確定義,以下非法的表達式是( B)
A、a/=b+c? B、 a%(4.0)?? C、 a=1/2*(x=y=20,x*3)?? D、a=b=c
28、以下關于運算符優先順序的描述中正確的是(C) 。
A、關系運算符 <算術運算符 <賦值運算符<邏輯與運算符
B、邏輯與運算符 <關系運算符 <算術運算符<賦值運算符
C、賦值運算符 <邏輯與運算符 <關系運算符 <算術運算符
D、算術運算符 <關系運算符 <賦值運算符<邏輯與運算符
29.若有定義double x=1,y;則以下的語句執行的結果是(? C ?)。
y=x+3/2; printf(“%f”,y);
A.2.500000??????B.2.5?????? C.2.000000??????? D.2?
30.?若已定義:int ?a=7;float b=60.3;則以下語句能正確輸出值的是___D______。
A. printf(“%d%d”,&a,&b);?????? B.printf(“%d%f”,&a,&b);????
?C.?printf(“%f%d”,&a,&b);?????? D.?printf(“%d%f”, a, b);
31、使用語句 scanf( “a=%f,b=%d”,&a,&b);輸入數據時,正確的數據輸入是:(A)
A、a=2.2,b=3??? B、a=2.2 b=3??? C、2.2 3??? D、2.2,3
32、表示關系 12<=x<=y 的 C語言表達式為:(B)
A、(12<=x)&(x<=y)?? B、 (12<=x)&&(x<=y)
C、 (12<=x)|(x<=y)?? D、(12<=x)||(x<=y)
33、以下正確的敘述是( D)?
A?、 在 C 程序中,每行中只能寫一條語句
B、 若 a 是實型變量, C 程序中允許賦值a=10,因此實型變量中允許存放整型數
C、 在 C 程序中,無論是整數還是實數,都能被準確無誤地表示
D、 在 C 程序中, %是只能用于整數運算的運算符
34.若x=0,y=3,z=3,以下表達式值為0的是(? C ?)。?
A. !x???B.x<y? 1:0??????? C.x%2&&y==z?????? D. y=x||z/3
35、以下對一維數組正確初始化的是____D____。
A.int?a[5]=(0,0,0);???????????B.int? a[5]={};
C.?int? a[5]={1,2,3,4,5,6};?????D. int? a[5]={1,2,3,4,5}
36.設i和x都是int類型,則for循環語句___A_____。
for(i=0,x=0;i<=9&&x!=876;i++)scanf("%d",&x);
?? A.?最多執行10次????????????????????? B. 最多執行9次
C.?是無限循環???????????????????????? D. 循環體一次也不執行
37、語句 for (a=0,b=0;b!=100&&a<5;a++)scanf( “%d”,&b);scanf最多可執行次數為:(C)
A、4???? B 、6?? ?C 、5???? D 、1
38、執行下列語句int a;printf("%d\n",(a=3*5,a*4,a+5));后,a 的值是( B)?
A?、 65??? B、 20??? C、 15???? D、 10
39、下列程序的輸出結果是(C)。
main( )
{ inta=7,b=5;
printf("%d\n",b=b/a);
}
A?、 5??? B、1? C、0?? D、不確定值
40.分析以下程序, 下列說法正確的是(? D ?) 。
main()
? { int x=5,a=0,b=0;
if(x=a+b) printf("* * * *\n");
else??printf("# # # #\n");
??? }
?? A.?有語法錯,不能通過編譯???????????? B. 通過編譯,但不能連接
?? C.?輸出** * *??????????????????????? D. 輸出# # # #
41、若以下選項中的變量已正確定義,則正確的賦值語句是(C )
A)x1=26.8%3;?? B)1+2=x2;?? C)x3=0x12;?? D)x4=1+2=3;
42、若有說明:int a[3][4]; 則對 a 數組元素的非法引用是( D )。?
A?、a[0][2*1]?? B 、a[1][3]?? C 、a[4-2][0]?? D 、a[0][4]
43、以下關于運算符優先順序的描述中正確的是( C )。
A?、關系運算符 <算術運算符 <賦值運算符<邏輯與運算符
B、邏輯與運算符 <關系運算符 <算術運算符<賦值運算符
C、賦值運算符 <邏輯與運算符 < 關系運算符 <算術運算符
D、算術運算符 <關系運算符 <賦值運算符<邏輯與運算符
44、下列運算符中,結合性為自左向右的是( B)
A?、?:??? B、,??? C、+=???? D 、 ++
45、程序段 char a[7]= ”abcdef”;char b[4]= ”ABC ”; strcpy(a,b);printf( “%c”,a[5]); 輸出結果是 ( D )。
A?、一個空格? B、\0?? C、e?? D、f
46、在 C 語言中,一位數組的定義方式為:類型說明符 數組名 (C )。
A?、[常量表達 ] B、整型表達式 C、[整型常量 ]或 [整型表達式 ]? D、[整型常量 ]
47.程序段如下:則以下說法中正確的是( D ? ) 。
int k=5;
do{??k--;}while(k<=0);
?? A.?循環執行5次?????????????????????? B. 循環是無限循環
?? C.?循環體語句一次也不執行???????????? D. 循環體語句執行一次
48.設有語句int ?x=2,y=3;則表達式x=(y= =3)的值是__B______。
?? A. 0??????B. 1?? ??????? C. 2???????? D. 3
49、設有定義:float a=2,b=4,h=3;以下 C 語言表達式中與代數式(a+b)*h 的計算結果不相符的是( B)
A)(a+b)*h/2??? B)(1/2)*(a+b)*h??? C)(a+b)*h*1/2??D)h/2*(a+b)
50.下列程序段執行后k值為(? A ?)。
int k=0,i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
????? k=k+1 ;
A.?15????? B.3?? C. 5?????????? D.?8
51.?下列關于C語言函數的描述中,錯誤的是__A______。
A.?函數的定義可以嵌套,但函數的調用不可以嵌套??
B.?凡不加類型說明的函數,其返回值默認為整型
C.函數的返回值可以通過函數中的return語句獲得??
D.可以定義有參函數,也可以定義無參函數
52.在執行int a[][3]={1,2,3,4,5,6};語句后,a[1][0]的值是( A ?)。
A. 4????????? B.1???????????? C. 2??????? D. 5
53.在 while(!x)語句中的 !x 與下面條件表達式等價的是( D)
A) x!=0?? B) x==1??C) x!=1?? D) x==0
54.在C語言程序中,以下描述正確的是(? B ?) 。
A.?函數的定義可以嵌套,但函數的調用不可以嵌套
B.?函數的定義不可以嵌套,但函數的調用可以嵌套
C.?函數的定義和函數的調用均不可以嵌套
D.?函數的定義和函數的調用均可以嵌套
55、有以下程序:
#include<stdio.h>
void main(){
inti=1,j=1,k=2;
if((j++||k++)&&i++ )
printf(“%d,%d,%d\n”,i,j,k);}
執行后的輸出結果是(C )
A)1,1,2?? B)2,2,1??C)2,2,2? D)2,2,3
56.一個C語言程序總是從___B______開始執行。
A.?主過程??? B. 主函數??? C. 子程序?? D.主程序
57、有以下程序:
#include<stdio.h>
void main(){
int i,s=0;
for(i=1;i<10;i+=2)
s+=i+1;
printf(“%d\n”,s);}
程序執行后的輸出結果是(D? )
A)自然數 1~9 的累加和?? B)自然數 1~10 的累加和
C)自然數 1~9 中奇數之和? D)自然數 1~10 中偶數之和
58、有以下函數定義:
void fun(intn,double x){……}
若以下選項中的變量都已經正確定義并賦值,則對函數fun 的正確調用語句是( C? )
A)fun(int y,double m);?? B)k=fun(10,12.5);
C)fun(x,n);????? D)void fun(n,x);
59.下列字符串是標識符的是___A______。
A. _HJ???????? B.9_student??????? C. long?????? D. LINE 1
60、已知各變量的類型說明如下:
int k,a,b=1;unsigned long w=5;?則以下不符合 C 語言語法的表達式是( A )
A?、 k=b+2=w?? B、 w+= -2??? C、 k=(a=2,b=3,a+b)? D 、a+=a-=(b=4)*(a=3)
61.在C語言中,字符型數據在內存中以___D______形式存放。
A.?原碼???? B. BCD碼??? C. 反碼????? D. ASCII碼
62、設 char s[10]=〞abcde〞,t[]=〞 12345〞 ; , 則 s 和 t 在內存中分配的字節數分別是(B )。
A.6 和 5??B.6 和 6?? C.10 和 5? D .10 和 6
63、 c 語言中 ( D )。?
A?、不能使用 do-while 語句構成的循環
B、do-while 語句構成的循環必須用break 語句才能退出
C、do—whiLe 語句構成的循環,當while語句中的表達式值為非零時結束循環
D、do—while 語句構成的循環,當while語句中的表達式值為零時結束循環
64.使用字符串處理函數時,應該包含的頭文件是____C_____。
A、stdio.h???? B、math.h???? C、string.h D、不用包含頭文件
65.C語言中運算對象必須是整型的運算符是___D______。
A、*???? B、=????? C、+?????? D、%
66、以下選項中 ,不合法常量的是(B)
A、1.234e04?? B、 1.234e0.4? C、1.234e+4 D、 1.234e0
67.C語言允許函數值類型缺省定義,此時該函數值隱含的類型是__B_______。
A. float型?????? B. int型????? C. long型????? D. double型
68、設 a 和 b 均為 double 型變量,且 a=5.5、b=2.5,則表達式(int)a+b/b 的值是( D)
A、 6.500000?? B、 6??? C、 5.500000??? D、 6.000000
69、x、y、z 被定義為 int 型變量,若從鍵盤給x、y、z 輸入數據,正確的輸入語句是(B)
A、 INPUT x 、y、z;??????? B、scanf("%d%d%d",&x,&y,&z);
C、 scanf("%d%d%d",x,y,z);?D、 read("%d%d%d",&x,&y,&z);
70、函數調用結束后,形式參數(C )。
A?、繼續占用相同大小的內存?? B、占用的內存減小
C、釋放內存??????????? D、不確定
71、以下數組定義中,正確的是__D______。
A、inta[2][3]={1,2,3,4,5,6,7};
B、inta[][]={{1,2,3},{4,5,6},{7,8,9}};
C、inta[2][]= {1,2,3,4,5,6};
D、inta[][4]= {6};
72、設 char ch='A'; 則ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是 ( B )。
A、A??? B 、a?? C、Z???? D 、z
73、若有以下類型說明語句:
char w; intx; float y; double z;?則表達式 w*x+z-y 的結果類型是(D)
A?、float??? B、char??? C、int??? D、double
74.設i和x都是int類型,則for循環語句__A______。
for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x);
?? A.?最多執行10次????????????????????? B. 最多執行9次
C.?是無限循環???????????????????????? D. 循環體一次也不執行
75、執行程序段 int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“ %d %d %d\n ”,k,a,b);后的輸出結果是 ( D ) 。
A、1 0 4?? B、 1 0 3? C、0 0 3??? D、 0 0 4
76、設 x,y 為浮點型變量,合法賦值語句是( A)
A?、x=8+y;?? B、(float)3 ;?? C、y=(x%2)/10 ;?? D、*x=10;
77、下面不正確的字符串常量是( A)
A?、 'abc'??? B、 "12'12"?? C、 "0"? D、 " "
78.分析以下程序, 下列說法正確的是__C______。
main()
? { intx=0,a=0,b=0;
if(x==a+b) printf("* * * *\n");
else??printf("# # # #\n");
????? ? }
?? A.?有語法錯,不能通過編譯???????????? B. 通過編譯,但不能連接
?? C.?輸出** * *??????????????????????? D. 輸出# # # #
79、設 int x=1, y=1; 表達式 (!x||y--) 的值是( B )。?
A、0?? B、1?? C、2?? D、 -1
80、以下對二維整形數組a 的正確說明是 (C)。
A、int a[3][];?? B 、float a(3,4);? C、double a[1][4]; D 、float a(3)(4)
81、 C 語言中 , 下列字符常量合法的是(A)?
A?、'\t'??? B、"A"?? C、65??? D、A
82.下列關于do_while語句和while語句的敘述中錯誤的是___B_____。
A、do_while先執行循環語句后判斷循環條件
B、while語句至少執行一次循環語句?
C、while語句是先進行條件判斷,滿足條件才去執行循環語句
D、do_while語句至少執行一次循環語句
83、對兩個字符數組 a 和 b 進行初始化 char a[]="ABCDEF"; char
b[]={'A','B','C','D','E','F'};?則以下敘述正確的是 (D ) 。
A、a 與 b 數組完全相同???? B、a 與 b 長度相同
C、a 和 b 中都存放字符串? D、a 數組比 b 數組長度長
84、在 C 語言中 ,若需一變量只在本文件中所有函數使用,則該變量的存儲類別是
( D )?。
A、extern?? B、register??? C、 auto???? D、static
85、以下敘述中正確的是(C)
A?、用 C 語言實現的算法必須要有輸入和輸出操作
B、用 C 語言實現的算法可以沒有輸出但必須要有輸入
C、用 C 程序實現的算法可以沒有輸入但必須要有輸出
D、用 C 程序實現的算法可以既沒有輸入也沒有輸出
86、設有?int k=10;while (k=0) k=k-1;?則下面描述中正確的是( C )。?
A?、while循環執行?10?次??????B、循環是無限循環
C、循環體語句一次也不執行 ???D、循環體語句執行一次
87、下列循環語句會進入死循環的是?( C )。?
A?、i=0;do { i++; }while(i = =100)?;
B、for(i=0;i<100; i+=3.14);
C、for(i=0;; i+=2);
D、k=1;do { k--;} while(k);
88、以下選項中,與k=n++?完全等價的表達式是(?A?)
A?、?k=n,n=n+1 ????B、?n=n+1,k=n
C、?k=++n??????????D、?k+=n+1
89、以下錯誤的?if?語句是?( C )。(?2?分)
A?、if(x>y)z=x; ???B、if(x==y)z=0;
C、if(x!=y)printf("%d",x) else printf("%d",y); ??D、if(x<y){ x++;y--;}
90、執行程序段int k=4,a=3,b=2,c=1; printf(?“\n%d\n”,k<a?k:c<b? c:a);后的輸出結果是
( D )。
A?、0 ??B、3 ???C、2??? D、1
91、對以說明語句int a[10]={6,7,8,9,10};?的正確理解是?( B )。?
A?、將?5?個初值依次賦給a[1]?至?a[5]
B、將?5?個初值依次賦給a[0]?至?a[4]
C、將?5?個初值依次賦給a[6]?至?a[10]
D、因為數組長度與初值的個數不同,所以此語句不正確
92、執行下列語句int x=10,y=10;printf("%d %d\n",x--,--y);?后的輸出是(?D)
A?、10 10????B、9 9 ????C、9 10 ???D、10 9
93、執行下列語句int k=2, i=2, m;m=(k+=i*=k); printf("%d,%d\n",m,i);后的輸出結果是(?C)
A?、8,6 ????B、8,3 ????C、6,4 ????D、7,4
94、能正確表示“當?x?的取值在?[1,10]和[200,210]范圍內為真, 否則為假”的表達式是?(
C )。
A、(x>=1)&& (x<=10) && (x>=200) && (x<=210)
B?、?(x>=1) || (x<=10) || (x>=200) || (x<=210)
C、(x>=1)&& (x<=10) || (x>=200) && (x<=210)
D?、?(x>=1) || (x<=10) && (x>=200) ||(x<=210)
95、語句?int a,b; printf("%d",(a=2)&&(b= -2));?的輸出結果是?( D )。?
A?、無輸出 ???B、結果不確定 ???C、-1 ????D、1
96、下列說法中正確的是(?C) ?
A、C?語言程序書寫時,不區分大小寫字母
B、C?語言程序書寫時,一行只能夠寫一個語句
C、C?語言程序書寫時,一個語句可分成幾行書寫
D、C?語言程序書寫時,每行必須有分號
97、判斷字符串?a?是否大于?b,應當使用?( D )。?
A?、if(a>b)
B、if(strcmp(a,b))
C、if(strcmp(b,a)>0)
D、if(strcmp(a,b)>0)
98、下列關于賦值運算符的表述中,錯誤的是(?B)
A?、賦值運算符優先級高于逗號運算符
B、賦值運算符的結合性是從左至右
C、賦值運算符是雙目運算符
D、賦值運算符可在表達式中連用
99、實際參數不能是?(D )。
A?、常量 ??B、變量 ??C、表達式 ????D、不確定值
100、下面的函數是無參函數的是?( A )。
A?、main()??B、intmax(int x, int y) ??C、return(z)???D、scanf("%d",&a)
總結
以上是生活随笔為你收集整理的C语言期末考试复习资料(选择题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于51单片机的简易抢答器设计
- 下一篇: 拒绝“安逸”的成都,选择拥抱人工智能