面試考題

 

  1. 用您熟悉的程式語言(任何開發語言都可以), 輸出以下的圖形

   *

  ***

 *****

*******

 *****

  ***

   *



star = '*'

space = ' '


def printRawStyle(centerIndex, r):

totalWidht = (centerIndex-1)*2 +1

startStarIndex = centerIndex - r

endStarIndex = centerIndex + r


for i in range(1,totalWidht+1):

if i < startStarIndex or i > endStarIndex:

print(space,end='')

else:

print(star,end='')


print("")


printRawStyle(4, 0)

printRawStyle(4, 1)

printRawStyle(4, 2)

printRawStyle(4, 3)

printRawStyle(4, 2)

printRawStyle(4, 1)

printRawStyle(4, 0)



  1. 用您熟悉的程式語言, 撰寫一程式,讓使用者輸入一個整數x,並將x傳遞給名為compute()的函式,此函式將回傳x是否為質數(Prime number)的布林值,接著再將判斷結果輸出。如輸入值為質數顯示【Prime】,否則顯示【Not Prime】。


using System;

public class Program

{

public static void Main()

{

CheckPrime(1);

}

public static void CheckPrime(int number)

{

if(number < 2)

{

Console.WriteLine("Not Prime");

return;

}

int remainder= -1;

for(int i = 2 ; i< number ; i++)

{

remainder = number%i;

if(remainder == 0)

{

break;

}

}

if(remainder == 0)

{

Console.WriteLine("Not Prime");

} else

{

Console.WriteLine("Prime");

}

}

}



  1. 請回答以下程式的輸出結果:_________________________


int s = 1; // 全域變數

void add (int a) {

int s = 6;

for( ; a>=0; a=a-1) {

printf("%d,", s);

s++;

printf("%d,", s);

}

}

int main () {

printf("%d,", s);

add(s);

printf("%d,", s);

s = 9;

printf("%d", s);

return 0;

}


1,6,7,7,8,1,9


  1. 以下資料庫表格

Table : Score

學號

科目代碼

成績

1

EN

90

1

MATH

65

1

CH

33

2

EN

22

2

MATH

11

2

CH

33

3

EN

55

3

MATH

66

4

EN

66

4

MATH

77

4

CH

88

Table: Student

學號

姓名

1

張三

2

李四

3

萬五

4

李白

5

杜甫


  1. SQL 找出總成績最高學生

select (select s.姓名 from Student s where s.學號 =i.學號), i.學號 , sum(i.成績) 總成績 from Score i

group by i.學號

order by 總成績 desc

limit 1;


  1. SQL找出每個科目最高成績的學生姓名, 科目及成績

select (select s.姓名 from Student s where s.學號 =i.學號), i.學號 ,i.科目代碼, MAX(i.成績) 成績 from Score i

group by i.科目代碼 ;


  1. SQL 找出各科目的平均成績

select i.科目代碼, avg(i.成績) 平均成績 from Score i

group by i.科目代碼 ;


  1. SQL 找出那個學生缺考那一科

select v.學號 , v.姓名 , v.科目代碼, s.成績 from

(select st.學號 , st.姓名 , c.科目代碼 from (select distinct i.科目代碼 from Score i) c , Student st) v

left join Score s on s.學號 =v.學號 and s.科目代碼 =v.科目代碼

where s.成績 is NULL




  1. SQL找出ALL PASS的學生資料

select * from

(

select v.姓名 , count(v.科目代碼) passCount from

(select st.學號 , st.姓名 , c.科目代碼 from (select distinct i.科目代碼 from Score i) c , Student st) v

left join Score s on s.學號 =v.學號 and s.科目代碼 =v.科目代碼

where s.成績 >= 60

group by v.姓名

) v2 where v2.passCount >=3

;



  1. 60分及格, SQL列出需補考學生清單

學生姓名 科目 成績

select v.姓名 , v.科目代碼, s.成績 from

(select st.學號 , st.姓名 , c.科目代碼 from (select distinct i.科目代碼 from Score i) c , Student st) v

left join Score s on s.學號 =v.學號 and s.科目代碼 =v.科目代碼

where s.成績 is NULL or s.成績 < 60

;


  1. SQL找出那個學生完全缺考

select * from Student s

where s.學號 not in (select distinct i.學號 from Score i);

留言

熱門文章