高校c语言题库,C语言-中国大学mooc-题库零氪
第1 周 程序設計與C語言簡介
1.1 程序設計基礎隨堂測驗
1、計算機只能處理由人們編寫的、解決某些問題的、事先存儲在計算機存儲器中的二進制指令序列。
第1周單元測驗
1、通常把高級語言源程序翻譯成目標程序的程序稱為( )。
A、編輯程序
B、解釋程序
C、匯編程序
D、編譯程序
2、一個算法應該具有"確定性"等5個特性,下面對另外4個特性的描述中錯誤的是()。
A、有零個或多個輸出
B、有窮性
C、有零個或多個輸入
D、可行性
3、結構化程序由三種基本結構組成,三種基本結構組成的算法,( )。
A、只能完成一些簡單的任務
B、只能完成符合結構化的任務
C、可以完成任何復雜的任務
D、只能完成部分復雜的任務
4、C語言規定,在一個源程序中,main函數的位置()。
A、必須在系統調用的庫函數的后面
B、必須在最后
C、可以任意
D、必須在最開始
5、以下敘述正確的是()。
A、在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤
B、在C程序中,main函數必須位于程序的最前面
C、C語言本身沒有輸入輸出語句
D、C程序的每行中只能寫一條語句
6、一個C程序的執行是從()。
A、本程序的main函數開始,到main函數結束
B、本程序文件的第一個函數開始,到本程序main函數結束
C、本程序文件的第一個函數開始,到本程序文件的最后一個函數結束
D、本程序的main函數開始,到本程序文件的最后一個函數結束
7、以下敘述中正確的是 ()。
A、花括號"{"和"}"只能作為函數體的定界符
B、構成C程序的基本單位是函數,所有函數名都可以由用戶命名
C、分號是C語句之間的分隔符,不是語句的一部分
D、C程序中注釋部分可以出現在程序中任意合適的地方
8、以下敘述正確的是( )。
A、C語言允許直接訪問物理地址,可以直接對硬件進行操作
B、C語言程序不用編譯,即可被計算機識別運行
C、C語言不允許直接訪問物理地址,不可以直接對硬件進行操作
D、C語言程序只需編譯,不需連接即可被計算機運行
9、下面不是算法特征的是( )。
A、繼承性
B、有窮性
C、確定性
D、可行性
10、關于C語言,下面敘述不正確的是()。
A、既具有高級語言的特點,又具有匯編語言的特點
B、既能用來編寫不依賴計算機硬件的應用程序,又能用來編寫各種系統程序
C、語法限制不太嚴格,例如,對數組下標越界不作檢查
D、不用編譯可以直接運行
11、下面選項()不屬于結構化程序設計原則。
A、自頂向下
B、逐步求精
C、程序模塊化
D、不限制GOTO語句使用
12、下面選項中,( )不屬于程序的特性。
A、目的性
B、有序性
C、有限性
D、可操作性
E、實用性
13、計算機只能完成其能力范圍內的計算工作,超出計算機能力范圍的計算計算機將無法完成。
14、理論上計算機可以完成的計算工作,實際計算機都可以完成。
15、程序是計算機為完成某一任務所必須執行的一系列指令的有序集合。
16、高級語言是用接近自然語言的符號,按照一定的語法規則編寫程序,需要編譯程序翻譯成機器指令才能被計算機執行。
17、編譯方式下的程序當修改源程序后,需要重新編譯才能夠正確運行。
18、面向對象程序設計方法具有與人們的習慣與思維方法一致,便于解決復雜問題的特性。
19、C語言屬于面向過程的優秀程序設計語言,既可作為系統設計語言,也可作為應用程序設計語言。
20、算法可以分為數值算法和非數值算法兩大類。
21、對于同一個問題,只能有唯一的算法去解決。
22、C語言中不區分大小寫字母。
23、程序中適當地添加注釋,可以增加程序的可讀性和清晰性。
24、在VC++6.0環境下,任何一個C程序都必須包含在一個工程項目中,而且只能有一個main函數。
25、經過編譯、連接后的可執行程序可以多次運行。
26、C語言開發工具直接輸入的程序代碼是____文件,經過編譯后生成的是目標程序文件, 經過連接后生成的是可執行程序文件。
27、C語言源程序的基本組成單位是_____。
28、結構化程序設計所規定的三種基本控制結構是順序結構、_____結構和循環結構。
29、描述算法的方法主要有_____、專用工具(傳統流程圖、N-S流程圖)和偽代碼等。
30、計算機系統由硬件系統和______系統兩部分組成。
31、計算機語言分為:機器語言、匯編語言和_________語言。
32、程序的執行方式分為_________和解釋兩種方式。
第1周編程作業
1、Hello World!
2、我愛編程。
3、計算兩個整數的乘積。
第2周 變量及表達式
2.1 變量和常量隨堂測驗
1、以下不合法的變量命名是( )。
A、_123
B、xfloat
C、stu_1
D、float
2.1 變量和常量隨堂測驗
1、字符串"\\\’\054"占用的存儲空間的長度是____。
2.1 變量和常量隨堂測驗
1、下列哪些是C語言的合法的字符常量?
A、'10'
B、"a"
C、'\054'
D、'\085'
2.2 運算符和表達式隨堂測驗
1、“/”運算符,當兩個整數相除時結果取整。
2.2 運算符和表達式隨堂測驗
1、表達式 a=3*5,a*4,a+5的值為_______。
第2周單元測驗
1、關于變量定義,下面說法錯誤的是()。
A、變量的類型確定了變量占據的存儲單元的大小
B、確定了變量的名字
C、確定了變量中的內容
D、確定了變量的表數范圍
2、sizeof(float)的執行結果是()。
A、一種函數調用
B、一個浮點表達式
C、一個不合法的表達式
D、一個整型表達式
3、若有 float x=2,y=5.6; 則表達式 (int)x%(int)y將完成( )。
A、將x和y的類型轉換為整型
B、將x和y的表達式的類型轉換為整型,完成求余運算
C、不能進行求余運算
D、將x的值的類型轉換為整型
4、下列敘述正確的是( )。
A、C語言中的數據的類型不同,在內存中占據相同長度的存儲單元
B、C語言中的數據的類型不同,在內存中占據不同長度的存儲單元
C、C語言中的常量是沒有類型的
D、C語言中的數據的類型不同,但取值范圍都是相同的
5、下列關于C語言用戶標識符的敘述中正確的是( )。
A、用戶標識符中可以出現下劃線和中劃線(減號)
B、用戶標識符中不可以出現中劃線,但可以出現下劃線
C、用戶標識符中可以出現下劃線,但不可放在標識符開頭
D、用戶標識符中可以出現下劃線和數字,它們都可放在用戶標識符的開頭
6、下列轉義字符中,錯誤的是( )。
A、'\xa5'
B、'\031'
C、'\b'
D、'\"'
7、字符串 "\\\\abcd\\\\\n"在內存中占用的字節數是( )。
A、14
B、9
C、10
D、11
8、已知梯形的上底為a,下底為b,高為h,用C語言書寫的正確的面積公式是( )。
A、1/2*(a+b)*h
B、1.0/2*(a+b)*h
C、1.0/2.0(a+b)h
D、1.0\2*a+b*h
9、與k=n++完全等價的表達式是( )。
A、n=n+1, k=n
B、k+=n+1
C、k=++n
D、k=n, n=n+1
10、下面關于C語言標識符的命名規則敘述中不準確的是()。
A、只能由字母、數字和下劃線組成
B、首字符必須為字母或下劃線
C、不區分大小寫字母
D、不能使用系統的保留字
11、以下哪種運算能從變量x中取得十進制最低位的數字( )。
A、x/10
B、x%10
C、x*10
D、10/x
12、以下哪個數字占據的空間最大( )。
A、32768
B、‘3’
C、32768.0
D、32768.0F
13、以下哪個字母不能在常量數字后面表示類型( )。
A、F
B、U
C、L
D、X
14、以下哪個數字的值最大( )。
A、10
B、010
C、0x10
D、10.0
15、下列哪個不是有效的字符常量( )。
A、‘ ’
B、‘\’‘
C、'1'
D、"1"
16、C語言的關鍵字是由C語言規定的、具有特定功能的固定字母組合,也稱為保留字。
17、變量是在程序執行期間其值可以改變的量,必須先定義后使用。
18、變量被定義后沒有賦值,其單元內容不可以使用,是內存中的隨機數。
19、變量的初始化是指在定義時對其賦值。
20、變量的名字代表內存中的存儲單元;變量名和內存中的存儲單元相對應,通過變量名來存、取存儲單元的內容。
21、定義變量時的變量的類型決定變量占據存儲單元的大小和數據的表數范圍。
22、變量中只能存放指定類型的數據,程序運行過程中可以改變變量的類型。
23、當存儲單元溢出時,數據的值不會受到影響,只會丟掉超過的部分。
24、當有若干運算符同時出現在表達式中時,運算符的優先級規定了運算的先后次序。
25、當若干具有相同優先級的運算符相鄰出現在表達式中時,結合性規定了運算的先后次序。
26、在C語言中,對于整型變量采用有符號數和_________數兩種存儲形式。
27、當賦值語句右邊表達式類型與左邊變量類型不一致時,以_______類型為準。
28、若有定義:char c='\141'; 則變量C中包含的字符個數為_____個。
29、若有變量定義: char w; int x; float y; double z; 則表達式w*x+z-y的結果為_____類型。
30、設int w=5;w+=-2; 則w的值為_____。
31、已知 i=5;寫出語句 i+=012; 執行后整型變量 i 的十進制值是_____。
32、設k=a=5,b=3,a*b,則表達式的值為_____。
33、設有變量定義: int i=3,j=5; float x=2.5; double y=5.0; 則表達式 y+=i-=j*=++x;的計算結果為________。
34、設有變量定義: char a='a'; int i=3, j=5; 則表達式 a=a+i, a+j 的值為________。
35、C語言中用一個符號代表一個常量的量稱為________常量。
36、設有變量定義: float x=2.5; double y=5.0; 則表達式 (int)x / (int)y+y的值為______。
第2周編程作業
1、計算圓的面積
2、計算平方根
3、輸出逆序數
第3周 數據的輸入與輸出
3.1 數據的格式化輸出隨堂測驗
1、在調用printf函數輸出數據時,當數據的實際位寬大于printf函數中格式指定寬度時,將按照數據的實際寬度輸出數據。
3.2 數據的交互式輸入隨堂測驗
1、輸入時可以指定數據的寬度,但不允許指定精度。
3.3 單個字符的輸入輸出隨堂測驗
1、單個字符既可以以c格式符也可以以d格式符輸出,前者是輸出這個字符,后者是輸出這個字符的ASCII碼值。
第3周單元測驗
1、若變量已正確定義,執行語句scanf("%d,%d,%d ",&k1,&k2,&k3);時,正確的數據輸入方法是( )。
A、20,30,40
B、2030,40
C、20, 30 40
D、20 30 40
2、printf("a\rHappi\by");在屏幕上正確的輸出形式是( )。
A、aHappy
B、Happy
C、Happi
D、aHappi
3、若定義字符變量c1的值是'A',c2的值是'D',執行語句printf("%d,%d",c1,c2-2);后,輸出結果是( )。
A、65,66
B、65,68
C、A,68
D、A,B
4、以下程序的輸出結果是()。 int main() { float x=3.6; int i; i=(int)x; printf("x=%f,i=%d\n",x,i); return 0; }
A、x=3.600000,i=4
B、x=3 i=3.600000
C、x=3,i=3
D、x=3.600000,i=3
5、已定義double a; int i;選擇正確的輸入格式為( ) 。
A、scanf("%6.2f%3d", &a,&i);
B、scanf("%lf%s", &a,&i);
C、scanf("%6lf%3d",&a,&i);
D、scanf("%f%d", a,i);
6、已有定義char s1,s2;,下面正確的語句是( )。
A、scanf ("%s%c", s1,s2);
B、scanf ("%s%c", s1,&s2);
C、scanf ("%c%c", &s1,&s2);
D、scanf ("%c%c",s1,s2);
7、為下面的程序輸入數據,使得i=10,k='a' ,j=15,正確的鍵盤輸入方法是( )。 #include int main( ) { int i,j,k; scanf("%d%c%d",&i,&k,&j); printf("i=%d,j=%c,k=%d\n",i,k,j); return 0; }
A、10,a,15
B、10a15
C、10'a'15
D、10a15
8、運行下面的程序,正確的輸出結果是( )。 #include int main( ) { double x=68.7563, y= -789.127; printf ("%f, %10.2f\n", x,y); return 0; }
A、68.756300, □□□-789.12
B、68.756300, □□□-789.13
C、68.75, □□□-789.13
D、68.75, -789.12
9、已知float x=2.23,y=4.35;,根據下面的輸出結果,正確的程序段是( )。 x=2.230000,y=4.350000 y+x=6.58,y-x=2.12
A、printf("x=%8.2f,y=%8.2f",x,y); printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);
B、printf("x=%8.6f,y=%8.6f\n",x,y); printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);
C、printf("x=%7.2f,y=%7.2f\n",x,y); printf("y+x=%3.2f,y=%3.2f\n",y+x,y-x);
D、printf("x=%f,y=%f\n",&x,&y); printf("y+x=%f,y=%f\n",y+x,y-x);
10、C語言中本身沒有提供專門的輸入輸出語句,輸入輸出通過調用函數完成。
11、輸入數據時不能指定數據的精度。
12、輸入數據時不可以指定數據的寬度。
13、混合輸入數值型數據和字符型數據時,數據之間不能加空格。
14、使用getchar()函數可以一次接受多個字符。
15、在使用標準的輸入/輸出庫函數時,應該在程序的開頭使用編譯預處理命令“#include ”。
16、字符型數據存儲其ASCII碼值,占一個字節,在ASCII范圍內與整數通用。
17、輸入數據時可以有多種方法分隔多個輸入數據。
18、程序的順序結構是指按照解決問題的順序寫出相應的語句,程序執行順序按照自上而下,依次按順序執行。
19、若在輸入格式控制字符串中包含普通字符,則輸入時必須照原樣輸入普通字符,否則將導致輸入錯誤。
20、getchar()函數只能接收一個_____。
21、下列語句輸出的結果是_____。 char ch='b'; printf("%c,%d",ch,ch);
22、用scanf函數輸入數據,使得x=1.23, y=67.1234。 #include #include int main( ) { double x,y,z; scanf(" ", &x,&y ); z=2*x+y/sin(3.1415/4); printf("z=%6.2f",z); return 0; }
23、完善下列程序: #include < > int main( ) { char str; str=getchar(); putchar(str); return 0; }
24、根據下面的輸出結果, 完善程序。 s1=C,ASCII is 67 x=655.35,y=765.43 #include int main( ) { double x=655.3524,y=765.4271; char s1='C'; printf( , s1,s1,x,y); return 0; }
25、用scanf函數輸入數據,使得下面程序運行結果為a=2,b='x',c='z' #include int main( ) { int a, b; scanf("%d%c", &a,&b ); printf(" ",a,b,b+2); return 0; }
26、下面程序的運行結果是: 。 #include int main( ) { char str=65; printf("str=%c,ASCII=%d",str,str ); return 0; }
27、在格式說明符中,當%后邊出現______,表示要跳過相應的數據,是附加說明符。
28、若要將數據以指數形式輸出,應該選擇______格式符。
第3周編程作業
1、交換兩個變量
2、輸出字符ASCII碼
3、求一元二次方程的兩個實根
4、計算銀行存款本息
第4周 選擇結構程序設計
4.1 關系運算與邏輯運算隨堂測驗
1、算術運算符的優先級高于關系運算符。
4.2 程序分支結構—if-else語句隨堂測驗
1、寫出下列程序段的輸出結果: int a = 56; if ( a>50 ) printf("A"); if ( a>40 ) printf("B"); if ( a>30 ) printf("C");
4.3 多重分支結構-switch語句隨堂測驗
1、寫出下列程序段的輸出結果:_______。 int i=1; switch ( i%3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); }
第4周 單元測驗
1、下列運算符優先級最高的是( )。
A、&&
B、||
C、,
D、+
2、若給定條件表達式(m)?(a++):(a--),則其中表達式m()。
A、和(m==0)等價
B、和(m!=0)等價
C、和(m==1)等價
D、和(m!=1)等價
3、C語言中以下幾種運算符的優先次序()的排列是正確的。
A、由高到低為:算術運算符,關系運算符,賦值運算符,!,&&,||
B、由高到低為:!,&&,||,算術運算符,賦值運算符
C、由高到低為:算術運算符,關系運算符,!,&&,||,賦值運算符
D、由高到低為:!,算術運算符,關系運算符,&&,||,賦值運算符
4、C語言中,switch后的括號內表達式( )。
A、只能是整型和字符型
B、只能為整型
C、可以是任何類型
D、只能為整型,字符型或枚舉型
5、C語言的switch語句中case后邊( )。
A、可為任何量或表達式
B、可為常量或表達式或有確定值的變量及表達式
C、只能為常量或常量表達式
D、只能為常量
6、執行下面程序段后,k的值是:( )。 int k=2; switch(k+1) { case 3:k+=1; case 4:k--;break; case 5:k*=3; case 6:++k; }
A、10
B、2
C、28
D、27
7、執行下面程序段后,ch的值是( )。 char ch='a'; ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
A、z
B、Z
C、a
D、A
8、若在程序運行時,輸入:4 3,則執行下面程序輸出的結果是( )。 #include int main() { int a,b,s; scanf("%d%d",&a,&b); s=a; if(a>b) s=b; s=s*s; printf("%d\n", s); return 0; }
A、13
B、9
C、16
D、15
9、下列表達式中,值為0的表達式是( )。
A、3!=0
B、3!=3>4
C、3>4==0
D、6>5>4
10、下列表達式中,結果為1的表達式是( )。
A、!0==1
B、!6
C、!2>=3
D、!3!=0
11、設int a=3;,則表達式a<1&&--a>1的運算結果和a的值分別是( )。
A、0和2
B、0和3
C、1和2
D、1和3
12、設整型變量x、y、z的值分別為3、2、1,則下列程序段的輸出是( )。 if(x>y) x=y; if(x>z) x=z; printf("%d,%d,%d\n",x,y,z);
A、3,2,1
B、1,2,3
C、1,2,1
D、1,1,1
13、判斷char型變量ch是否為小寫字母的正確表達式是()。
A、('a'>=ch)||('z'<=ch)
B、'a'<=ch<='z'
C、(ch>=a)&&(ch<=z)
D、(ch>='a')&&(ch<='z')
14、能正確表達邏輯關系“0
15、所有邏輯運算符的優先級都高于關系運算符。
16、在switch語句中,switch與case后的表達式可以為任意類型。
17、在if語句中,if后面的表達式可以是關系表達式與邏輯表達式,而不能是算術表達式。
18、在邏輯表達式的求解過程中,并非所有的邏輯運算符都被執行。
19、switch語句嵌套使用時,一條break語句可用于跳出所有嵌套switch語句。
20、在a>b?a+b:a-b 表達式中,若a>b,則條件表達式的值為a+b的值,否則為a-b的值。
21、條件運算符的優先級低于算術運算符、關系運算符及邏輯運算符,高于賦值運算符和逗號運算符。
22、同一個switch語句中各個常量表達式的值必須互不相等,且只能是常量。
23、C語言沒有邏輯型數據,關系表達式的真、假是以數值“1”代表“真”,以“0”代表“假”,即非0為真(true),0為假(false)。
24、并非所有的if語句都有等價的switch語句,switch語句只能用來實現以相等關系作為選擇條件的多分支結構。
25、已知 a=10,b=15,c=1,d=2,e=0,則表達式c==b>e的值為_____。
26、int x=2,y=3,z=4; 則表達式x+y&&(x=y)的值為_____。
27、int x=4,y=4,z=2;x=y==z; 則x的值為_____。
28、假設變量a,b均為整型,表達式 (a=5,b=2,a>b?a++:b++,a+b) 的值是_____。
29、當a=1,b=2,c=3時,執行以下程序段后b的值為 _____。 if (a>c) b=a; a=c; c=b;
30、已知a=13,b=2,表達式b||++a,運算結果a的值是_____。
31、當a=3,b=2,c=1;時,執行以下程序段后,a=_____。 if(a>b) a=b; if(b>c) b=c; else c=b; c=a;
32、c語言表達式5>2>7>8的值是_____。
33、為了避免嵌套條件語句的二義性,C語言規定else與其前面最近的_____語句配對。
第4周編程作業
1、大小寫字母轉換
2、計算分段函數
3、百分制成績轉換為五級分制成績
4、輸出水仙花數
第5周 循環結構程序設計
第5周 單元測驗
1、下面程序的運行結果是 ( )。 #include int main( ) { int i=5; while(i>0); printf("%d",i--); return 0; }
A、5
B、-1
C、0
D、死循環
2、執行語句 for(i=1;i++<4;) ; 后變量 i 的值是( )。
A、3
B、4
C、5
D、不定
3、關于下面程序段,正確的是( )。 int k=10; while(!k) k--;
A、循環體執行10次
B、循環體執行1次
C、循環體一次也不執行
D、死循環
4、下面程序的運行結果是( )。 #include int main( ) { int x=3; do{ printf("%3d",x-=2); }while(!(--x)); return 0; }
A、死循環
B、1 -2
C、10
D、1
5、下面程序的運行結果是( )。 #include int main( ) { int i=0,sum=0; while(i++<6) sum+=i; printf("%d",sum); return 0; }
A、15
B、16
C、21
D、22
6、下面程序的運行結果是( )。 #include int main( ) { int i=10; while(i-->0); printf("%d ",i); return 0; }
A、10
B、0
C、10987654321
D、-1
7、已定義int j; 下面程序段的輸出結果是( )。 for(j=7;j<10;j++) printf("%d",j);
A、8910
B、789
C、91011
D、無結果
8、下面程序的輸出結果是( )。 #include int main( ) { int i,j,s=0; for(j=1,i=7;j<=i;j++,i--) s=s+i+j; printf("%d",s); return 0; }
A、32
B、28
C、死循環
D、0
9、下面程序的輸出結果是( )。 #include int main( ) { int j,s; for(j=1;j<=7;j++) s=s+j; printf("%d",s); }
A、0
B、28
C、不確定
D、死循環
10、已定義int j,s; 則下面程序段的輸出結果是( )。 int j,s; for(j=1,s=0;j<=5;j++) s*=j; printf("%d",s);
A、0
B、120
C、死循環
D、無結果
11、while循環語句至少無條件執行一次循環體。
12、for循環語句只能用于循環次數已經確定的情況。
13、do while循環語句中,根據情況可以省略關鍵字while。
14、do while循環語句至少無條件執行一次循環體。
15、for循環語句先判斷循環條件是否成立,然后再決定是否執行循環體。
16、do-while循環由do開始,while結束,在while(表達式)后面加分號。
17、for循環的三個表達式中間用逗號相分隔,并且不能省略。
18、do while循環語句的特點是先執行循環體,然后判斷循環條件是否成立。
19、while循環語句和do while循環語句在任何情況下都可以互換。
20、for循環的三個表達式中間用分號相分隔,第一個表達式執行一次。
21、下面程序用來計算自然數1-10之和,請完善程序。 #include int main( ) { int j,s; ; for(j=1;j<=10;j++) s=s+j; printf("%d",s); return 0; }
22、下面程序用來計算10!,請完善程序。 #include int main( ) { int j,s; ; for(j=1;j<=10;j++) s*=j; printf("%d",s); return 0; }
23、下面程序用來計算1+1/2!+1/3!+…1/10!,請完善程序。 #include int main( ) { int i,j; sum=0,fac; for(i=1;i<=10;i++) { fac=1; for(j=1;j<=i;j++) fac=fac*j; sum=sum+1/fac; } printf("%f",sum); return 0; }
24、下面程序計算并輸出1
100之間(包括100)能被3整除同時能被7整除余3的所有數之和,請完善程序 。 #include int main( ) { int sum=0,i; i=1; while ( ) { if (i%3==0&&i%7==3) sum=sum+i; i++; } printf("sum=%d",sum); return 0; }
25、下面程序計算并輸出500以內最大的10個能被13或17整除的自然數之和。請完善程序。 #include int main ( ) { int m=0, mc=0, k=500; while (k >= 1 && ) { if (k%13== 0 || k%17 == 0) { m=m+k; mc++; } k--; } printf("sum=%d",m); return 0; }
第5周 編程作業
1、用for語句實現判斷并求和。
2、用do while 語句實現從鍵盤輸入一組整數,求平均值。
3、用while語句實現計算圓周率 pi (3.14) 的近似值。
第6周 循環程序設計實例
第6周 單元測驗
1、從循環體內某一層跳出,繼續執行循環外的語句是( )。
A、continue語句
B、空語句
C、break語句
D、if語句
2、針對for循環語句,for(表達式1;表達式2;表達式3),下列說法正確的是( )。
A、break語句可以一次性跳出多層嵌套循環
B、break語句只能跳出所在層循環
C、continue語句可以一次性跳出多層嵌套循環
D、continue語句只能跳出所在層循環
3、以下正確的描述是( )。
A、只能在循環體內和switch語句內使用break語句。
B、continue語句的作用是終止整個循環的執行。
C、從多層嵌套的外層循環中退出時,只能使用goto語句。
D、在循環體內使用break和continue語句的作用相同。
4、下面程序的運行結果是( )。 #include int main( ) { int i,j,sum; for(i=2;i<7;i++) { sum=1; for( j=i;j<7;j++) sum=sum+j; } printf("%d",sum); return 0; }
A、48
B、49
C、1
D、7
5、下面程序的運行結果是( )。 #include int main( ) { int i=10,s=0; while(i>0) { if(i%3==0) continue; s=s+i; i--;} printf("s=%d",s); return 0; }
A、死循環
B、55
C、37
D、10
6、下面程序的運行結果是( )。 #include int main( ) { int i=10,s=0; for(i=1;i<=10;i++) { if(i%3!=0) continue; s=s+i; } printf("%d",s); return 0; }
A、死循環
B、55
C、37
D、18
7、下面程序的運行結果是( )。 #include int main( ) { int x=15; do{ x--; } while(x--); printf("%d ",x--); return 0; }
A、0
B、1
C、-1
D、-2
8、continue語句用于終止循環體的本次執行。
9、break語句能夠終止當前進行的多層循環。
10、continue語句對于while和do-while循環來說,意味著轉去計算While表達式。
11、對于for(表達式1;表達式2;表達式3)語句來說,continue語句意味著轉去執行表達式3。
12、continue語句在循環體中出現,其作用是結束本次循環,接著進行是否執行下一循環的判定。
13、goto語句和break語句都能夠實現使程序執行的流程從循環體內跳至循環體外。
14、break終止包含該語句的最內層循環。
15、在循環體內又包含一個循環語句,稱為循環嵌套。
16、for(表達式1;表達式2;表達式3),當執行循環體內的continue語句時,意味著轉去執行表達式2。
17、程序中遇到goto語句無條件跳到標號指定的位置繼續執行。
18、/*程序的功能是:求1到10的階乘的和*/ #include "stdio.h" int main () { int n,j,s=0,t; for(n=1;n<=10;n++) { ; for(j=1;j<=n;j++) t=t*j; s=s+t; } printf("s=%d\n",s); return 0; }
19、/*程序的功能是:從鍵盤輸入10個字符,輸出其中數字字符*/ #include int main( ) { int i; char c; for(i=1;i<=10;i++) { c=getchar( ); if(c< '0' ||c> '9') ; putchar(c); } return 0; }
20、/*用10元人民幣兌換角幣有多少種換法(角幣有1角、2角、5角三種)。*/ #include int main( ) { int i,j,k,m=0; for(i=0;i<=20;i++) for(j=0; ;j++) for(k=0;k<=100;k++) if(i*5+j*2+k==100) { m++;printf("i=%d,j=%d,k=%d\n",i,j,k);} printf("m=%d",m); return 0; }
21、/*程序的功能是:輸出斐波那契數列前n項(n為偶數)。*/ #include int main() { int i,n ; int a1=1,a2=1; scanf(“%d”,&n); printf( "%d %d ", a1,a2); for ( i = 1; i
22、/*編寫打印以下圖形的程序(行與行之間沒有空行,第三行與左邊界沒有空格)。*/ * *** ***** #include int main() { char c= '*',s=' '; int i,j; for(i=0;i<3;i++) { for(j= ;j>0; j--) printf("%c",s); for(j=0;j<2*i+1;j++) printf("%c",c); printf("\n"); } return 0; }
第6周 編程作業
1、求兩個整數的最大公約數。
2、找素數
3、斐波那契數列求和
第7周 一維數組及其引用
第7周 單元測試
1、若有說明int a[10],則對a數組元素的正確引用是( )。
A、a[10]
B、a[3.5]
C、a(5)
D、a[10-10]
2、在C語言中,引用數組元素時,其數組下標的數據類型不允許的是( )。
A、整型常量
B、正整型常量表達式
C、整型變量表達式
D、任何類型的表達式
3、對以下說明語句的正確理解是( )。 int a[10]={6,7,8,9,10};
A、將5個初值依次賦給a[1]至a[5]
B、將5個初值依次賦給a[0]至a[4]
C、將5個初值依次賦給a[6]至a[10]
D、因為數組長度與初值的個數不相同,所以此語句不正確
4、現有如下程序,則程序的輸出結果為( )。 #include int main( ) { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i]) { if(k[i]%2==0‖k[i]%5==0) count++; i++; } printf("%d,%d\n",count,i); return 0; }
A、7,8
B、8,8
C、7,10
D、8,10
5、以下能對一維數組a進行初始化的正確語句是( )。
A、int a[10]=(0,0,0);
B、int a[10]={ };
C、int a[]={0};
D、int a[10]={0,1,2,3,4,5,6,7,8,9,10};
6、以下對一維整型數組a的正確說明是( )。
A、int a(6);
B、int n=10,a[n];
C、int n; scanf(“%d”, &n); int a[n];
D、#define N 8 int a[N];
7、下面程序的運行結果是( )。 #include int main( ) { int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d", a[i]); } return 0; }
A、-4 0 4 0 4
B、-4 0 4 0 3
C、-4 0 4 4 3
D、-4 0 4 4 0
8、下面程序的運行結果是( )。 #include int main( ) { int x[3],i,j,k; for(i=0;i<3;i++) x[i]=0; k=3; for (i=0;i
A、2
B、0
C、1
D、3
9、下面程序的運行結果是( )。 #include int main( ) { int a[10],i,k=1; for(i=0;i<10;i++) a[i]=i; for (i=1;i<6;i++) k+=a[i]+i; printf("%d\n",k); return 0; }
A、32
B、20
C、31
D、33
10、若有以下程序段,則數值為3的表達式( )。 int x[12]={1,2,3,4,5,6,7,8,9,10}; char c=‘a’,d,f;
A、x[g-c]
B、x[3]
C、x['d'-'c']
D、x['d’-‘b']
11、數組定義int a[10];也可以寫成 int a(10)。
12、在對全部數組元素賦初值時,可以不指定數組長度。
13、數組定義int a[10]; 表示數組名為a,此數組有10個元素,首元素為a[0]。
14、如果對數組不賦初值,則數組元素取隨機值。
15、引用數組元素時,其數組下標的數據類型允許的是:整型常量或整型表達式。
16、若有int a[10]={6,7,8,9,10};,則是將5個初值依次賦給a[0]至a[4]。
17、數組名的規定與變量名不相同。
18、一個數組可以存放許多不同類型的數值。
19、數組的下標通常是float型。
20、數組可以聲明為任何數據類型。
21、下列程序的功能是輸入N個實數,然后依次輸出前l個實數和、前2個實數和、……前N個實數和。 #define N 10 #include int main() { float f[N],x=0.0; int i; for(i=0;i
22、下列程序的功能是輸出數組s中最大元素的下標。 #include int main() { int k,i; int s[]={3,-8,7,2,-1,4}; for(i=0,k=0;i<6;i++) if(s[i]>s[k]) ; printf("k=%d\n", k); return 0; }
23、以下程序以每一行輸出4個數據的形式輸出a數組。 #include int main() { int a[20],i; for(i=0;i<20;i++) scanf("%d",&a[i]); for(i=0;i<20;i++) { if ( ) printf("\n"); printf("%3d", a[i]); } printf("\n"); return 0; }
24、以下程序的功能是求數組num中小于零的數據之和。請填空。 #include int main() { int num[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20}; int sum=0,i; for(i=0;i<20;i++) { if(num[i]<0) sum= ; } printf("sum=%6d",sum); return 0; }
25、設數組a中的元素均為正整數,以下程序是求a中偶數的個數和偶數的平均值。請填空。 #include int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave; for(k=s=i=0;i<10;i++) { if(a[i]%2!=0) ; s+= a[i]; k++; } if(k!=0) { ave=s/k; printf("%d,%f\n",k,ave); } return 0; }
26、輸入10個整數,用選擇法排序后按從小到大的次序輸出。 #include #define N 10 int main( ) { int i,j,min,temp,a[N]; for(i=0;ia[j]) ; temp=a[i]; a[i]=a[min]; a[min]=temp; } for (i=0;i
第7周 編程作業
1、逆序存放數據
2、找出一維整型數組中的次最大值。
3、調整最大值的位置。
第8周 二維數組與字符數組
第8周 單元測試
1、定義如下變量和數組: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 則下面語句的輸出結果是() for(i=0;i<3;i++) printf(" %d" ,x[i][2-i]);
A、1 5 9
B、1 4 7
C、3 5 7
D、3 6 9
2、有以下程序 #include int main( ) { int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t; for(i=0;i<3;i++) for(k=i+1;k<4;k++) if(a[i][i]
總結
以上是生活随笔為你收集整理的高校c语言题库,C语言-中国大学mooc-题库零氪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卖精子多少钱啊?
- 下一篇: “纷纷覉悲盈”下一句是什么