第1讲 函数程序设计简介

单元测验:Haskell解释器

1、单选题:
‏Haskell脚本扩展名为 ​
选项:
A: .txt
B: .doc
C: .java
D: .hs
答案: 【 .hs

2、填空题:

‏在解释器中计算下列表达式的值,结果是____(保留2位小数)

‏提示:使用exp函数。

​答案: 【 1.65

3、填空题:
​在解释器中计算半径为5的圆面积(保留2位小数)‍
答案: 【 78.54

4、填空题:

‌利用牛顿-拉森迭代公式

‌在解释器中计算3的第3次迭代结果是________(保留3位小数)。

‌答案: 【 1.732

5、填空题:
‍根据Haskell主页primes表达式,计算21世纪有多少个素数年份。(提示:参见习题1.5).‏
答案: 【 14

随堂测验1

1、单选题:
‏退出解释器的命令是‍
选项:
A: quit
B: exit
C: :exit
D: :quit
答案: 【 :quit

2、判断题:
‌2021是素数。‌
选项:
A: 正确
B: 错误
答案: 【 错误

3、填空题:
‎在解释器中用mod计算1234567被1243除的余数是___‎
答案: 【 268

4、填空题:
‎在解释器中计算 123的3次方结果是_____。​
答案: 【 1860867

5、填空题:
​在解释器中计算以2为底3的对数结果是____(保留两位小数)。‌
答案: 【 1.58

6、填空题:
​在解释器中计算 123的平方根结果是_____(保留2位小数)。​
答案: 【 11.09

7、填空题:
‏在解释器中用gcd计算123456789和987654321的最大公因子是___‎
答案: 【 9

8、填空题:
‌在解释器中用sin计算sin(pi/4)的结果是___(四舍五入保留两位小数)‍
答案: 【 0.71

第2讲 函数、数据和类型

数据、类型和Haskell语法单元测验

1、单选题:
‍如果某个同学姓名是Bob Gates,那么在程序设计中表达该同学姓名的数据是‍
选项:
A: Bob Gates
B: "Bob Gates"
C: 姓名:Bob Gates
D: 姓名 = Bob Gates
答案: 【 "Bob Gates"

2、单选题:
‌下面哪个说法是正确的?​
选项:
A: 3.14和314是不同类型的数据。
B: “hello"和"Hello"是不同类型的数据。
C: "Male"和"Female"是不同类型的数据。
D: 123和"123"是不同类型的数据。
答案: 【 123和"123"是不同类型的数据。

3、单选题:
‍下面哪个说法是错误的?‏
选项:
A: (1,2)和(3,4)是相同类型的数据。
B: (1,2)和(3,4,5)是相同类型的数据。
C: ("Bob", 23)和("Alice", 100)是相同类型的数据。
D: 3.14和314是相同类型的数据。
答案: 【 (1,2)和(3,4,5)是相同类型的数据。

4、单选题:
‌下面哪个是合于语法的f (x) = 3x+1的定义,其中x是实数。(可以选择不同的函数名)‌
选项:
A: f Float -> Float
f (x) = 3x+1
B: f :: Float -> Float
f (x) = 3x+1
C: F :: Float -> Float
F (x) = 3x+1
D: f :: Float -> Float
f X = 3*X+1
E: myf :: Float -> Float
myf x = 3*x + 1
答案: 【 myf :: Float -> Float
myf x = 3*x + 1

5、单选题:
​g :: Float -> Float
g x = 3*x +1‌​对于以上定义,在Haskell解释器中计算g应用于某个实数的结果,哪个表达式不合乎语法?‌
选项:
A: g 1.23
B: g 123
C: g -3.14
D: g (3.14*5)
答案: 【 g -3.14

6、单选题:
​下面哪个表达式的计算结果是True?‏
选项:
A: mod 126 2 
B: mod 126 2 = 0
C: mod 126 2 == 0
D: mod 126 2 == 1
答案: 【 mod 126 2 == 0

7、单选题:
‏下面哪个表达式在n是偶数时,计算结果是True?​
选项:
A: mod n 2
B: mod n 2 = 0
C: n `mod` 2 == 0
D: mod 2 n == 0
答案: 【 n `mod` 2 == 0

8、多选题:
​在程序设计语义中,表达一个人的姓名、性别和电话的数据可以是‏
选项:
A: 高兴,男,234588
B: ("高兴",”Male", 234588)
C: (高兴,男,234588)
D: ("高兴",”男", 234588)
E: ("高兴",”M", 234588)
F: 姓名:高兴,性别:男,电话:234588
答案: 【 ("高兴",”Male", 234588);
("高兴",”男", 234588);
("高兴",”M", 234588)

9、多选题:
‎下面哪些数据具有类型Float?‎
选项:
A: 3.14
B: 1024
C: "hello"
D: "3.14"
E: 3.14*2^2
答案: 【 3.14;
1024;
3.14*2^2

10、多选题:
‎下面哪个是计算BMI的合乎语法的程序(函数)?​
选项:
A: BMI :: Float -> Float -> Float
BMI h m = m / h^2
B: bmi :: Float -> Float -> Float
bmi h m = m / h^2
C: bmi :: Float -> Float -> Float
bmi height mass = mass / height^2
D: bmi :: Float -> Float -> Float
        bmi h m = m / h^2
E: bmi :: float -> float -> float
bmi h m = m / h^2
F: bmi :: Float -> Float -> Float
bmi x y = y / x^2
G: bmi :: Float -> Float -> Float
bmi 1h 2m = 2m / 1h^2
H: bmi :: Float -> Float -> Float
bmi Height Mass = Mass / Height^2
答案: 【 bmi :: Float -> Float -> Float
bmi h m = m / h^2;
bmi :: Float -> Float -> Float
bmi height mass = mass / height^2;
bmi :: Float -> Float -> Float
bmi x y = y / x^2

11、多选题:
​下面哪些可以做函数名?‍
选项:
A: function
B: Function
C: f1
D: data
E: "f"
F: 3f
G: f_
答案: 【 function;
f1;
f_

12、多选题:
‍下面哪些可以做函数的输入参数(变量)名?‍
选项:
A: x
B: xs
C: x0
D: 0x
E: X
F: "xy"
G: xy_
H: _x
I: data
J: if
答案: 【 x;
xs;
x0;
xy_;
_x

13、多选题:
‏下面哪些可以做函数的输入参数(变量)名?‏
选项:
A: x+y
B: x_y
C: height
D: Height
E: type
F: Int
G: function
H: where
I: let
J: import
K: aha
答案: 【 x_y;
height;
function;
aha

14、判断题:
‎123和“123”是具有不同属性的数据。‎
选项:
A: 正确
B: 错误
答案: 【 正确

15、判断题:
‍数据就是类似3.14这样的数。‎
选项:
A: 正确
B: 错误
答案: 【 错误

16、填空题:
​将下列代码写在一个脚本中,如命名为Foo.hs:‏​foo :: Int -> Int
foo = \n ->  length [x | x <- [1..n], n `mod` x ==0]将该脚本加载到Haskell解释器,然后计算表达式的值:‏​foo 56789‏
答案: 【 4

17、填空题:
将下列代码写在一个脚本中,如命名为Foo.hs:‎foo :: Int -> Int
foo = \n ->  length [x | x <- [1..n], n `mod` x ==0]将该脚本加载到Haskell解释器,然后计算表达式的值:‎foo 456789‎
答案: 【 8

18、填空题:
将下列代码写在一个脚本中,如命名为Foo.hs:‎foo :: Int -> Int
foo = \n ->  length [x | x <- [1..n], n `mod` x ==0]将该脚本加载到Haskell解释器,然后计算表达式的值:‎foo 3456789‎​‎
答案: 【 16

随堂测验1

1、单选题:

​令集合A={a,b,c},B = {0,1},则 集合 有多少个元素?

‏选项:
A: 4
B: 5
C: 6
D: 9
答案: 【 6

2、单选题:
‌令 A = {a,b,c},  B = {0,1},则A到B有多少个不同的函数?‌
选项:
A: 2
B: 4
C: 6
D: 8
答案: 【 8

3、多选题:

‏令 A = {a,b,c},  B = {0,1},下面哪些元素属于笛卡儿积 ?

‏选项:
A: (0,1)
B: (a,b)
C: (a,0)
D: (a,1)
答案: 【 (a,0);
(a,1)

随堂测验2

1、单选题:

‌给定实数集R上的数学函数, 对应的Haskell定义是

‏选项:
A: g :: Integer -> Integerg x = if x < 0 then -2*x-1 else 2*x
B: g :: Float -> Floatg x = if x < 0 then -2x-1 else 2x
C: g :: Float -> Floatg x = if x < 0 then -2*x-1 else 2*x
D: g :: R  -> Rg x = if x < 0 then -2x-1 else 2x
答案: 【 g :: Float -> Floatg x = if x < 0 then -2*x-1 else 2*x

2、单选题:
‍在Haskell脚本中给出定义:​‍bmi :: (Float, Float) --> Float​‍bmi (h, m) = m / h^2​‍那么在解释器中使用函数bmi的方法是​
选项:
A: Prelude>bmi (1.8, 78)
B: Prelude>bmi 1.8 78
C: Prelude>bmi (1.9 78)
D: Prelude>BMI (1.9, 79)
答案: 【 Prelude>bmi (1.8, 78)

3、单选题:
‍bmi :: Float --> Float --> Float‎‍bmi h m = m / h^2‎‍在解释器中正确使用以上Haskell函数定义的方法是‎
选项:
A: Prelude>bmi (1.8, 78)
B: Prelude>bmi 1.8 + 78
C: Prelude>bmi 1.8 78
D: Prelude>Bmi 1.8 78
答案: 【 Prelude>bmi 1.8 78

4、多选题:

​给定整数集Z上的数学函数, 在Haskell中的定义为

‌选项:
A: f : Z -> Zf (x) = x^2
B: f :: Integer -> Integerf x = x * x
C: f :: Integer -> Integerf x  = x^2
D: F ::  Integer -> IntegerF x = x * x
答案: 【 f :: Integer -> Integerf x = x * x;
f :: Integer -> Integerf x  = x^2

5、多选题:

‌给定实数集笛卡尔集上的数学函数

,

‌Haskell定义可以写成

‎选项:
A: f :: (R, R) -> Rf (x,y) = sqrt(x*2 + y*2)
B: f :: (Float, Float) -> Floatf (x, y) = sqrt(x*x + y*y)
C: f :: R R -> Rf x y = sqrt(x*x + y*y)
D: f :: Float -> Float -> Floatf x y = sqrt(x*x + y*y)
答案: 【 f :: (Float, Float) -> Floatf (x, y) = sqrt(x*x + y*y);
f :: Float -> Float -> Floatf x y = sqrt(x*x + y*y)

随堂测验3

1、单选题:
‏在Haskell中表示多个整数的合法形式是‏
选项:
A: 1,2,3,4
B: [1,2,3,4]
C: "1,2,3,4"
D: 1 2 3 4
答案: 【 [1,2,3,4]

2、多选题:
‌在Haskell中表示某个姓名及其电话的合法数据是‏
选项:
A: 高兴,12345678
B: ("高兴",12345678)
C: (高兴,12345678)
D: ("高兴",“12345678”)
答案: 【 ("高兴",12345678);
("高兴",“12345678”)

3、多选题:
‍在Haskell中表示一个人身高的合法数据是‎
选项:
A: 1.98m
B: 198cm
C: 1.98
D: 198
答案: 【 1.98;
198

4、多选题:
​在Haskell中表示一个人的姓名的合法数据是​
选项:
A: 高兴
B: 姓名:高兴
C: “Gao Xing”
D: "高兴"
答案: 【 “Gao Xing”;
"高兴"

5、判断题:
‏123和"123"类型不同的数据,前者是数字,后者是字符串。‎
选项:
A: 正确
B: 错误
答案: 【 正确

6、判断题:
‏123和"123"表示相同的数据。​
选项:
A: 正确
B: 错误
答案: 【 错误

7、判断题:
‏“1.76”的类型是Float。‌
选项:
A: 正确
B: 错误
答案: 【 错误

8、判断题:
‏1.76的类型是Float。‌
选项:
A: 正确
B: 错误
答案: 【 正确

第3讲 基本数据类型

数据和类型单元测验

1、单选题:
​(1, True)的类型是‍
选项:
A: [Bool]
B: [Int, Bool]
C: (Int, Bool)
D: [Int]
答案: 【 (Int, Bool)

2、单选题:
‎"Hello, 123"的类型是‍
选项:
A: (String, Int)
B: [String, Int]
C: String
D: String -> Int
答案: 【 String

3、单选题:

的类型是

‌选项:
A: Int
B: [Int]
C: "Int"
D: String
答案: 【 String

4、单选题:
‌下面哪些是函数max的正确类型​
选项:
A: (Int, Int) -> Int
B: Int -> (Int , Int)
C: Int Int -> Int
D: Int -> Int -> Int
答案: 【 Int -> Int -> Int

5、单选题:
​max 2 的类型是‏
选项:
A: (2, Int) -> Int
B: Int -> Int
C: [Int-> Int]
D: Int
答案: 【 Int -> Int

6、单选题:

的类型是

‏选项:
A: (Int, Int)
B:  [(Int, Int)]
C:  ([Int], [Int])
D: (Int, [Int])
答案: 【 (Int, [Int])

7、单选题:
‌表示一个同学的数据("Bob Gates", 'M', 20) 的类型是​
选项:
A: [String]
B: (String, Char, Int)
C: (String, String, Int)
D: [String, Char, Int]
答案: 【 (String, Char, Int)

8、单选题:
‏[(False, ‘0’), (True, ‘1’)]的类型是‎
选项:
A: (Bool, Int)
B: [(Bool, Int)]
C: [(Bool, Char)]
D: [Bool, Char]
答案: 【 [(Bool, Char)]

9、单选题:
‌([True, False], [‘1’,’0’])的类型是​
选项:
A: (Bool, [Int])
B: (Bool,  [Char])
C: ([Bool, Char])
D: ([Bool], [Char])
答案: 【 ([Bool], [Char])

10、单选题:
‎[[‘a’,’d’], [‘d’,’a’,’4’]]的类型是‎
选项:
A: [String.String]
B: [Char, Int]
C: [String]
D: (String, String)
答案: 【 [String]

11、单选题:
‍下面哪个定义具有类型Bool -> Bool​
选项:
A: foo x = x + y
B: foo x y = x == y
C: foo x = x/= x
D: foo x = (x,x) 
答案: 【 foo x = x/= x

12、单选题:
​下面哪个定义具有类型Bool -> Bool -> Bool‌
选项:
A: foo (x , y) = x == y 
B: foo x y = True
C: fool True x = 1fool False x = 2
D: foo x = y
答案: 【 foo x y = True

13、单选题:
​下面哪个定义具有类型(Bool, Bool ) -> Bool​
选项:
A: f x y = x
B: f (x, y) = x + y
C: f (x, y) = x || y
D: f x y = if x == True then y
答案: 【 f (x, y) = x || y

14、单选题:
​下面哪个定义具有类型Bool -> (Bool, Bool ) ​
选项:
A: f x y = (x,y)
B: f x = (x,x)
C: f x = x
D: f x = if x then (True, True) else False
答案: 【 f x = (x,x)

15、单选题:
实平面上任意一点到原点的距离函数可以定义为‏distance :: Float -> Float -> Float
distance x y = ...‏distance x y 表示坐标点(x,y)到原点(0, 0)的距离。请判断下面哪些表达式是类型错误的。‏‎‏
选项:
A: distance (1,2)
B: distance (1+2)
C: distance (1+2) 5
D: distance (1+2) (2+3)
答案: 【 distance (1,2)

16、单选题:
实平面上任意一点到原点的距离函数可以定义为‎distance :: Float -> Float -> Float
distance x y = ...‎distance x y 表示坐标点(x,y)到原点(0, 0)的距离。请判断下面表达式distance (1+2)的类型。‎​‎
选项:
A: Float -> Float
B: Integer -> Float
C: Float -> Float -> Float
D: Float
答案: 【 Float -> Float

17、多选题:
‍如果函数foo具有类型Bool-> Bool -> Bool,下面哪些表达式是类型不正确的‏
选项:
A: foo 1 True
B: foo True (1==2)
C: fool True True False
D: foo (1==2) (1/=2)
答案: 【 foo 1 True;
fool True True False

18、多选题:
​if x == 1 then True else False上面的if表达式 和哪个表达式有相同的值?‍
选项:
A: True
B: False
C: x == 1
D: 1 == x
E: x = 1
答案: 【 x == 1;
1 == x

19、多选题:
‎if s !! 0 >= 'H' && s!!0 <= 'K' then True else False‎​假定s是一个字符串,以上表达式与哪个表达式有相同的值?​
选项:
A: True
B: False
C: s !! 0 >= "H" && s !! 0 <= "K"
D: s !! 0 >= 'H' && s !! 0 <= 'K'
E: s !! 0 == 'H' || s !! 0 <= 'I' || s !! 0 == 'J' || s !! 0 == 'K'
答案: 【 s !! 0 >= 'H' && s !! 0 <= 'K';
s !! 0 == 'H' || s !! 0 <= 'I' || s !! 0 == 'J' || s !! 0 == 'K'

20、多选题:
实平面上任意一点到原点的距离函数可以定义为‎distance :: Float -> Float -> Float
distance x y = ...‎‍distance x y 表示坐标点(x,y)到原点(0, 0)的距离。请判断下面哪些表达式是类型正确的。‎
选项:
A: distance 2 3
B: distance (2,3)
C: distance 2
D: distance (2+3) 3
答案: 【 distance 2 3;
distance 2;
distance (2+3) 3

随堂测验1

1、单选题:
‎如果定义​‎double :: Integer -> Integer​‎double x = 2*x​‎那么,在解释器中计算​‎Prelude>double 1.2​‎结果是​
选项:
A: 2
B: 2.4
C: error
D: 以上都不正确
答案: 【 error

2、单选题:
如果mymax的类型声明为​mymax :: Integer -> Integer -> Integer​​那么 mymax 12的类型是​
选项:
A: (Integer, Integer)
B: Integer
C: Integer -> Integer
D: 类型错误
答案: 【 Integer -> Integer

3、单选题:
如果定义​double :: Integer -> Integer​double x = 2*x​​那么计算double 1 + 2的结果是​​​
选项:
A: 3
B: 4
C: 6
D: 类型错误
答案: 【 4

4、多选题:
如果定义‎double :: Integer -> Integer‎double x = 2*x‎‍那么下面哪些表达式是类型正确的?‎
选项:
A: double True
B: double 1 + 2
C: double (1+2)
D: double "1"
答案: 【 double 1 + 2;
double (1+2)

5、多选题:
f :: Integer -> Integer -> Float​f x y  = (fromInteger x) / (fromInteger y)​‎对于以上定义,下面哪些表达式是类型正确的?​
选项:
A: f (2, 3)
B: f 2 3
C: f 2 + 3
D: f 2 3 + 1
答案: 【 f 2 3;
f 2 3 + 1

随堂测验2

1、单选题:
‌mymax :: Integer -> Integer -> Integer
mymax x y = if x < y then y else x给定以上定义,计算mymax 5 4 + 3的结果是‏
选项:
A: 类型错误
B: 5
C: 7
D: 8
答案: 【 8

2、多选题:
‏下面哪些是合法的前缀表达式?​
选项:
A: + 1  2
B: (+) 1  2
C: (>=) 2  3
D: > 2 3
答案: 【 (+) 1  2;
(>=) 2  3

3、多选题:
‏下面哪些是合法的中缀表达式?‌
选项:
A: 1 + 3
B: 1 (+) 3
C: 2 < 3
D: 2 (<) 3
答案: 【 1 + 3;
2 < 3

4、多选题:
‏下面哪些表达式是合法的?​
选项:
A: mod 3 2
B: `mod` 3 2
C: 3 `mod` 2
D: 3 `div` 2
答案: 【 mod 3 2;
3 `mod` 2;
3 `div` 2

5、多选题:
‍下面哪些叙述是正确的?​
选项:
A: 2和"2"都表示同样的数据,称2是重载的符号。
B: 2:: Integer, 而且 2:: Float,称2是重载的符号。
C: ‘+’既可以用于表示1+2,也可用于表示1.2+3.4,称'+'是重载的运算符。
D: '>'既可以用于比较数值之间的先后,也可用于表示字符串之间的先后,因此'>'是重载的运算符。
答案: 【 2:: Integer, 而且 2:: Float,称2是重载的符号。;
‘+’既可以用于表示1+2,也可用于表示1.2+3.4,称'+'是重载的运算符。;
'>'既可以用于比较数值之间的先后,也可用于表示字符串之间的先后,因此'>'是重载的运算符。

随堂测验3

1、单选题:
‌2 + 3 * 4 ^ 5 等价于‏
选项:
A: 2 + ((3 * 4) ^ 5)
B: (2 + 3) * (4 ^ 5)
C: 2 + (3 * (4 ^ 5))
D: (2 + (3 * 4)) ^ 5
答案: 【 2 + (3 * (4 ^ 5))

2、单选题:
"Hello, 123"的类型是‌‍String‌
选项:
A: String + Int
B: (String, Int)
C: [String, Int]
D: String
答案: 【 String

3、单选题:
‍"123"的类型是​‍​
选项:
A: String
B: “Int"
C: Int
D: [Int]
答案: 【 String

4、单选题:
‍True || 2 的类型是‎
选项:
A: Bool
B: Bool || Int
C: Bool -> Int
D: 类型错误
答案: 【 类型错误

5、单选题:
‏如果f的类型是 Bool  -> Bool  -> Bool,那么下面哪些表达式是类型错误的?​
选项:
A: f 1 0
B: f True True
C: f (True || False) True
D: f (1==1) (1/=2)
答案: 【 f 1 0

6、多选题:
‏如果f的类型是Int -> Int -> Int,那么下面哪些表达式是类型正确的?‍
选项:
A: f 12 (1+2)
B: f 12 13
C: f True 0
D: f "0" "1"
答案: 【 f 12 (1+2);
f 12 13

7、多选题:
‎下面哪些表达式的类型是Bool?‏
选项:
A: 1 = 2
B: 1 == 2
C: 1 /= 2
D: (2 < 0) || (2 >= 0)
答案: 【 1 == 2;
1 /= 2;
(2 < 0) || (2 >= 0)

8、判断题:
​2 ^ 3 * 4 相当于2 ^ (3 * 4), 结果是2^12 = 4096.​
选项:
A: 正确
B: 错误
答案: 【 错误

9、判断题:
‎2 ^ 3 * 4 相当于(2 ^ 3) * 4, 结果是8*4=32.‌
选项:
A: 正确
B: 错误
答案: 【 正确

10、填空题:
​let a = 1 in let b = 2 in a^2 + b^2上式的值是‌
答案: 【 5

随堂测验4

1、单选题:
​以下哪些是类型正确的?​
选项:
A: ("Gao Xing", 'M', 23) :: (String, String, Int)
B: ("Gao Xing", 'M', 23) :: [String, Char, Int]
C: ("Gao Xing", 'M', 23) :: (String, Char, Int)
D: ["Gao Xing", 'M', 23] :: (String, Char, Int)
答案: 【 ("Gao Xing", 'M', 23) :: (String, Char, Int)

2、单选题:
‌['a', 'b', '2']的类型是​
选项:
A: (Char, Char, Char)
B: [Char]
C: (Char, Char, Int)
D: [Char, Char, Char]
答案: 【 [Char]

3、单选题:
‌[(False, '0'), (True, '1')]的类型是‏
选项:
A: [(False, Char)]
B: [[Bool, Char]]
C: (Bool, Char)
D: [(Bool, Char)]
答案: 【 [(Bool, Char)]

4、单选题:
‎类型(Bool, Bool)由多少个不同的二元组?‍
选项:
A: 2
B: 4
C: 8
D: 16
答案: 【 4

5、单选题:
‏类型[Bool]有多少个不同的元素?‏
选项:
A: 2
B: 4
C: 8
D: 无穷多个
答案: 【 无穷多个

6、多选题:
‏以下哪些是正确的?‏
选项:
A: 1,2,3 :: [Int]
B: [1,2,3] :: [Int]
C: [1,2,.., 10] :: [Int]
D: [1, 2..10] ::[Int]
答案: 【 [1,2,3] :: [Int];
[1, 2..10] ::[Int]

7、多选题:
‌以下哪些是正确的?​
选项:
A: [Char] :: [String]
B: ['a','b'] :: String
C: ['a','b'] :: [Char]
D: ["hello", "there"] :: [Char]
答案: 【 ['a','b'] :: String;
['a','b'] :: [Char]

8、多选题:
‍下面哪些是类型正确的?‍
选项:
A: fst ("Qiao", 'M')
B: fst ("Gao Xing", 'M', 23)
C: head  ("Gao Xing", 'M', 23)
D: head "Hello"
答案: 【 fst ("Qiao", 'M');
head "Hello"

9、多选题:
f :: (Integer , Integer) -> Float​f (x, y)  = (fromInteger x) / (fromInteger y)​对于以上定义,下面哪些表达式是类型正确的?​‎​‎​
选项:
A: f (2,3)
B: f 2 3
C: f (2,3) + 1
D: f 2 + 3
答案: 【 f (2,3);
f (2,3) + 1

10、多选题:
f :: Integer -> Integer -> Float‏f x y  = (fromInteger x) / (fromInteger y)‏对于以上定义,下面哪些表达式是类型正确的?‏‎‏
选项:
A: f (2, 3)
B: f 2 3
C: f 2 + 3
D: f 2 3 + 1
答案: 【 f 2 3;
f 2 3 + 1

11、多选题:
‍下面哪些定义是类型正确的?‎
选项:
A: f :: (Integer, Integer) -> Floatf (x,y) = x / y
B: f :: (Integer, Integer) -> Floatf (x,y) =  (fromInteger x) / (fromInteger y)
C: f :: (Integer, Integer) -> Floatf (x,y) = 3*x + y
D: f :: (Integer, Integer) -> Integerf (x, y) =  3*x + y
答案: 【 f :: (Integer, Integer) -> Floatf (x,y) =  (fromInteger x) / (fromInteger y);
f :: (Integer, Integer) -> Integerf (x, y) =  3*x + y

第4讲 递归函数

递归函数单元测验

1、单选题:

如果定义函数

foo :: Int -> Intfoo n 表示 ,那么如何用foo表示 

​选项:
A: foo n -1 
B: foo (1+2+...+n-1)
C: foo 1 + foo 2 + ... + foo (n-1)
D: foo (n-1)
答案: 【 foo (n-1)

2、单选题:
‏如果定义解决汉诺塔问题的函数:‏‏hanoi :: Int -> Int -> I

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注