- C程序設計語言
- 魏東平 朱連章 于廣斌編著
- 1055字
- 2018-12-29 14:37:36
習題2
2.1 對給定的一個年份,判斷是不是閏年。要求用N-S圖描述該算法。提示:能被4整除但不能被100整除的年份或能被400整除的年份是閏年。
2.2 用N-S圖描述求n!的算法。
2.3 判斷一個正整數n是否為素數。要求用N-S圖描述該算法。提示:所謂素數就是除了1和本身之外,不能被任何數整除的數。
2.4 用N-S圖描述求100個數中的最小的數的算法。
2.5 用N-S圖描述將3個數按從小到大的順序排列的算法。
2.6 找出10~1000內各位非零數字之積為12的所有整數,如26,62,206,340,430,621,…。要求用N-S圖描述該算法。
2.7 找出10~1000之間所有的對稱數。所謂對稱數就是正序讀和逆序讀的值相等,如33、151、313等。要求用N-S圖描述該算法。
2.8 百錢買百雞。雞翁一值錢五,雞母一值錢三,雞雛三值錢一,百錢買百雞,問雞翁、雞母、雞雛各多少。要求用自頂向下、逐步細化的方法設計該算法,并用N-S圖描述。
2.9 根據實際問題設計應用程序大致要經過哪幾個步驟?
2.10 判斷下列常量的正誤,并指出正確的常量的數據類型:
32.01
'0'
0
"012"
"0"
-0123
0876
-0.1e-2
'123'
ABF
0xef87
'\n'
0x12gf
5-3
2.11 判斷下列變量名是否正確:
Aaa
abc o-3
if
+y
_sss
*x
A#3
f.3
a/b
main
-test
t3
e_2
2.12 選擇題
(1)下面不正確的字符常量是( )。
A."c"
B.'\\'
C.'\567'
D.'K'
(2)下列4組選項中,均是不合法的用戶標識符的選項是( )。
A.W P_0 do
B.b-a goto int
C.float la0 _A
D.-123 abc TEMP
(3)設C語言中,一個int型數據在內存中占2個字節,則unsigned int型數據的取值范圍為( )。
A.0~255
B.0~32767
C.0~65535
D.0~2147483647
(4)若x、i、j、k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為( )。
A.4
B.16
C.32
D.52
(5)設以下變量均為int類型,則值不等于7的表達式是( )。
A.(x=y=6, x+y, x+1)
B.(x=y=6, x+y, y+1)
C.(x=6, x+1, y=6, x+y)
D.(y=6, y+1, x=y, x+1)
2.13 填空題
(1)若有定義int m=5,y=20;,則計算表達式y+=y-=m*=y后,y的值是_____。
(2)若一個int型數據在內存中占2個字節,則int型數據的取值范圍為_____。
(3)若s是int型變量,且s=6,則表達式s%2+(s+1)%2的值為_____。
(4)若a是int型變量,則表達式(a=4*5,a*2),a+6的值為_____。
(5)若x和a均是int型變量,則計算表達式x=(a=4,6*2)后的x值為_____,計算表達式x=a=4,6*2后的x值為_____。
(6)若x和n均是int型變量,且x和n的初值均為5,則計算表達式x+=n++后x的值為_____,n的值為_____。
(7)若有定義int x=3,y=2;float a=2.5,b=3.5;,則表達式(x+y)%2+(int)a/(int)b的值為_____。
2.14 字符型常量和字符串常量有什么區別?
2.15 將下列數學算式轉換為C語言表達式:
(1)
(2)
(3)
(4)
2.16 已知a=5,b=3,x=3.5,y=2.6,求下列表達式的值:
(1)x+a%3*(int)(x+y)%2/4
(2)(float)(a+b)/2+(int)x%(int)y
(3)a/b+x/y-(int)x%3*(float)a/b
2.17 設變量c是char型,i是int型,j是long型,f和r是float型,d是double型,請寫出下列表達式類型轉換的過程:
r=(c*i)+(f/d)-(i+f)+(i/j)
2.18 寫出下列程序的執行結果。
(1)
#include <stdio.h> void main() { int m=1,n=2; int k=++m; printf("k=%d",k); k=m+n++; printf("m=%d,n=%d,k=%d\n",m,n,k); k=--n-m; printf("m=%d,n=%d,k=%d\n",m,n,k); k=(m>=n); printf("k=%d\n",k); }
(2)
#include <stdio.h> void main() { int a=4,b=3,c=2,d=1; printf("%d\n",(a+b,b+c,c+d)); }
(3)
#include <stdio.h> void main() { int a=1,b=2,c=0; printf("%d\n",a++-1); printf("%d\n",b/++a); }
(4)
#include <stdio.h> void main() { int a=-5,b=10; float x=1.75,y=2.34e-03; printf("a+b=%d\n",a+b); a++;b--; printf("a*b=%d\n",a*b); printf("x+y=%f\n",x+y); }