亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

培訓(xùn)考試

藍(lán)橋杯c語(yǔ)言試題

時(shí)間:2024-08-19 19:11:06 培訓(xùn)考試 我要投稿

藍(lán)橋杯c語(yǔ)言試題2015

  第一題:

藍(lán)橋杯c語(yǔ)言試題2015

  假設(shè)有兩種微生物 X 和 Y

  X出生后每隔3分鐘分裂一次(數(shù)目加倍),Y出生后每隔2分鐘分裂一次(數(shù)目加倍)。

  一個(gè)新出生的X,半分鐘之后吃掉1個(gè)Y,并且,從此開(kāi)始,每隔1分鐘吃1個(gè)Y。

  現(xiàn)在已知有新出生的 X=10, Y=89,求60分鐘后Y的數(shù)目。

  如果X=10,Y=90 呢?

  本題的要求就是寫(xiě)出這兩種初始條件下,60分鐘后Y的數(shù)目。

  第二題:

  ABCDE * ? = EDCBA

  “ABCDE代表不同的數(shù)字,問(wèn)號(hào)也代表某個(gè)數(shù)字!”

  第三題:

  有一群海盜(不多于20人),在船上比拼酒量。過(guò)程如下:打開(kāi)一瓶酒,所有在場(chǎng)的人平分喝下,有幾個(gè)人倒下了。再打開(kāi)一瓶酒平分,又有倒下的,再次重復(fù)…… 直到開(kāi)了第4瓶酒,坐著的已經(jīng)所剩無(wú)幾,海盜船長(zhǎng)也在其中。當(dāng)?shù)?瓶酒平分喝下后,大家都倒下了。

  等船長(zhǎng)醒來(lái),發(fā)現(xiàn)海盜船擱淺了。他在航海日志中寫(xiě)到:“……昨天,我正好喝了一瓶…….奉勸大家,開(kāi)船不喝酒,喝酒別開(kāi)船……”

  請(qǐng)你根據(jù)這些信息,推斷開(kāi)始有多少人,每一輪喝下來(lái)還剩多少人。

  如果有多個(gè)可能的答案,請(qǐng)列出所有答案,每個(gè)答案占一行。

  格式是:人數(shù),人數(shù),…

  例如,有一種可能是:20,5,4,2,0

  第四題:

  某電視臺(tái)舉辦了低碳生活大獎(jiǎng)賽。題目的計(jì)分規(guī)則相當(dāng)奇怪:

  每位選手需要回答10個(gè)問(wèn)題(其編號(hào)為1到10),越后面越有難度。答對(duì)的,當(dāng)前分?jǐn)?shù)翻倍;答錯(cuò)了則扣掉與題號(hào)相同的分?jǐn)?shù)(選手必須回答問(wèn)題,不回答按錯(cuò)誤處理)。

  每位選手都有一個(gè)起步的分?jǐn)?shù)為10分。

  某獲勝選手最終得分剛好是100分,如果不讓你看比賽過(guò)程,你能推斷出他(她)哪個(gè)題目答對(duì)了,哪個(gè)題目答錯(cuò)了嗎?

  如果把答對(duì)的記為1,答錯(cuò)的記為0,則10個(gè)題目的回答情況可以用僅含有1和0的串來(lái)表示。例如:0010110011 就是可能的情況。

  你的任務(wù)是算出所有可能情況。每個(gè)答案占一行。

  第五題:

  這道題是代碼填空題,目的是把一個(gè)矩陣順時(shí)針旋轉(zhuǎn)。

  1 2 3 4 13 9 5 1

  5 6 7 8 –> 14 10 6 2

  9 10 11 12 15 11 7 3

  13 14 15 16 16 12 8 4

  題目附帶的不完整代碼:

  01

  void rotate(int* x, int rank)

  02

  {

  03

  int* y = (int*)malloc(___________________); // 填空

  04

  05

  for(int i=0; i

  06

  {

  07

  y[_________________________] = x[i]; // 填空

  08

  }

  09

  10

  for(i=0; i

  11

  {

  12

  x[i] = y[i];

  13

  }

  14

  15

  free(y);

  16

  }

  17

  18

  int main(int argc, char* argv[])

  19

  {

  20

  int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

  21

  int rank = 4;

  22

  23

  rotate(&x[0][0], rank);

  24

  25

  for(int i=0; i

  26

  {

  27

  for(int j=0; j

  28

  {

  29

  printf("%4d", x[i][j]);

  30

  }

  31

  printf("\n");

  32

  }

  33

  34

  return 0;

  35

  }

  第六題:

  依舊是補(bǔ)全代碼,大數(shù)乘法,本來(lái)還算比較繁雜的,但是題目當(dāng)時(shí)附了圖,變的很簡(jiǎn)單了

  題目附帶的不完整代碼:

  01

  void bigmul(int x, int y, int r[])

  02

  {

  03

  int base = 10000;

  04

  int x2 = x / base;

  05

  int x1 = x % base;

  06

  int y2 = y / base;

  07

  int y1 = y % base;

  08

  09

  int n1 = x1 * y1;

  10

  int n2 = x1 * y2;

  11

  int n3 = x2 * y1;

  12

  int n4 = x2 * y2;

  13

  14

  r[3] = n1 % base;

  15

  r[2] = n1 / base + n2 % base + n3 % base;

  16

  r[1] = ____________________________________________; // 填空

  17

  r[0] = n4 / base;

  18

  19

  r[1] += _______________________; // 填空

  20

  r[2] = r[2] % base;

  21

  r[0] += r[1] / base;

  22

  r[1] = r[1] % base;

  23

  }

  24

  25

  int main(int argc, char* argv[])

  26

  {

  27

  int x[] = {0,0,0,0};

  28

  29

  bigmul(87654321, 12345678, x);

  30

  31

  printf("%d%d%d%d\n", x[0],x[1],x[2],x[3]);

  32

  33

  return 0;

  34

  }

  第七題:

  補(bǔ)全代碼,有個(gè)6*6的棋盤(pán),預(yù)先已經(jīng)放置了一部分棋子,現(xiàn)在要再補(bǔ)充棋子使得每行每列都有3個(gè)棋子

  題目附帶的不完整代碼:

  001

  int N = 0;

  002

  003

  bool CheckStoneNum(int x[][6])

  004

  {

  005

  for(int k=0; k<6; k++)

  006

  {

  007

  int NumRow = 0;

  008

  int NumCol = 0;

  009

  for(int i=0; i<6; i++)

  010

  {

  011

  if(x[k][i]) NumRow++;

  012

  if(x[i][k]) NumCol++;

  013

  }

  014

  if(_____________________) return false; // 填空

  015

  }

  016

  return true;

  017

  }

  018

  019

  int GetRowStoneNum(int x[][6], int r)

  020

  {

  021

  int sum = 0;

  022

  for(int i=0; i<6; i++) if(x[r][i]) sum++;

  023

  return sum;

  024

  }

  025

  026

  int GetColStoneNum(int x[][6], int c)

  027

  {

  028

  int sum = 0;

  029

  for(int i=0; i<6; i++) if(x[i][c]) sum++;

  030

  return sum;

  031

  }

  032

  033

  void show(int x[][6])

  034

  {

  035

  for(int i=0; i<6; i++)

  036

  {

  037

  for(int j=0; j<6; j++) printf("%2d", x[i][j]);

  038

  printf("\n");

  039

  }

  040

  printf("\n");

  041

  }

  042

  043

  void f(int x[][6], int r, int c);

  044

  045

  void GoNext(int x[][6], int r, int c)

  046

  {

  047

  if(c<6)

  048

  _______________________; // 填空

  049

  else

  050

  f(x, r+1, 0);

  051

  }

  052

  053

  void f(int x[][6], int r, int c)

  054

  {

  055

  if(r==6)

  056

  {

  057

  if(CheckStoneNum(x))

  058

  {

  059

  N++;

  060

  show(x);

  061

  }

  062

  return;

  063

  }

  064

  065

  if(______________) // 已經(jīng)放有了棋子

  066

  {

  067

  GoNext(x,r,c);

  068

  return;

  069

  }

  070

  071

  int rr = GetRowStoneNum(x,r);

  072

  int cc = GetColStoneNum(x,c);

  073

  074

  if(cc>=3) // 本列已滿(mǎn)

  075

  GoNext(x,r,c);

  076

  else if(rr>=3) // 本行已滿(mǎn)

  077

  f(x, r+1, 0);

  078

  else

  079

  {

  080

  x[r][c] = 1;

  081

  GoNext(x,r,c);

  082

  x[r][c] = 0;

  083

  084

  if(!(3-rr >= 6-c || 3-cc >= 6-r)) // 本行或本列嚴(yán)重缺子,則本格不能空著!

  085

  GoNext(x,r,c);

  086

  }

  087

  }

  088

  089

  int main(int argc, char* argv[])

  090

  {

  091

  int x[6][6] = {

  092

  {1,0,0,0,0,0},

  093

  {0,0,1,0,1,0},

  094

  {0,0,1,1,0,1},

  095

  {0,1,0,0,1,0},

  096

  {0,0,0,1,0,0},

  097

  {1,0,1,0,0,1}

  098

  };

  099

  100

  f(x, 0, 0);

  101

  102

  printf("%d\n", N);

  103

  104

  return 0;

  105

  }

  第八題:

  編程題:這個(gè)程序的任務(wù)就是把一串拼音字母轉(zhuǎn)換為6位數(shù)字(密碼)。我們可以使用任何好記的拼音串(比如名字,王喜明,就寫(xiě):wangximing)作為輸入,程序輸出6位數(shù)字。

  變換的過(guò)程如下:

  第一步. 把字符串6個(gè)一組折疊起來(lái),比如wangximing則變?yōu)椋?/p>

  wangxi

  ming

  第二步. 把所有垂直在同一個(gè)位置的字符的ascii碼值相加,得出6個(gè)數(shù)字,如上面的例子,則得出:

  228 202 220 206 120 105

  第三步. 再把每個(gè)數(shù)字“縮位”處理:就是把每個(gè)位的數(shù)字相加,得出的數(shù)字如果不是一位數(shù)字,就再縮位,直到變成一位數(shù)字為止。例如: 228 => 2+2+8=12 => 1+2=3

  上面的數(shù)字縮位后變?yōu)椋?44836, 這就是程序最終的輸出結(jié)果!

  要求程序從標(biāo)準(zhǔn)輸入接收數(shù)據(jù),在標(biāo)準(zhǔn)輸出上輸出結(jié)果。

  輸入格式為:第一行是一個(gè)整數(shù)n(<100),表示下邊有多少輸入行,接下來(lái)是n行字符串,就是等待變換的字符串。

  輸出格式為:n行變換后的6位密碼。

  第九題:

  足球比賽具有一定程度的偶然性,弱隊(duì)也有戰(zhàn)勝?gòu)?qiáng)隊(duì)的可能。

  假設(shè)有甲、乙、丙、丁四個(gè)球隊(duì)。根據(jù)他們過(guò)去比賽的成績(jī),得出每個(gè)隊(duì)與另一個(gè)隊(duì)對(duì)陣時(shí)取勝的概率表:

  甲 乙 丙 丁

  甲 – 0.1 0.3 0.5

  乙 0.9 – 0.7 0.4

  丙 0.7 0.3 – 0.2

  丁 0.5 0.6 0.8 –

  數(shù)據(jù)含義:甲對(duì)乙的取勝概率為0.1,丙對(duì)乙的勝率為0.3,…

  現(xiàn)在要舉行一次錦標(biāo)賽。雙方抽簽,分兩個(gè)組比,獲勝的兩個(gè)隊(duì)再爭(zhēng)奪冠軍。(參見(jiàn)【1.jpg】)

  請(qǐng)你進(jìn)行10萬(wàn)次模擬,計(jì)算出甲隊(duì)奪冠的概率。

  第十題:

  串“abcd”每個(gè)字符都向右移位,最右的移動(dòng)到第一個(gè)字符的位置,就變?yōu)?ldquo;dabc”。這稱(chēng)為對(duì)串進(jìn)行位移=1的輪換。同理,“abcd”變?yōu)?“cdab”則稱(chēng)為位移=2的輪換。

  下面的代碼實(shí)現(xiàn)了對(duì)串s進(jìn)行位移為n的輪換。請(qǐng)補(bǔ)全缺失的代碼。

  void shift(char* s, int n)

  {

  char* p;

  char* q;

  int len = strlen(s);

  if(len==0) return;

  if(n<=0 || n>=len) return;

  char* s2 = (char*)malloc(_________);

  p = s;

  q = s2 + n % len;

  while(*p)

  {

  *q++ = *p++;

  if(q-s2>=len)

  {

  *q = ___________;

  q = s2;

  }

  }

  strcpy(s,s2);

  free(s2);

  }

【藍(lán)橋杯c語(yǔ)言試題】相關(guān)文章:

2014年藍(lán)橋杯c語(yǔ)言試題及答案09-16

C語(yǔ)言試題08-02

C語(yǔ)言試題11-01

C語(yǔ)言試題及答案07-26

C語(yǔ)言程序試題04-26

C語(yǔ)言模擬試題練習(xí)08-11

C語(yǔ)言考前模擬試題09-11

標(biāo)準(zhǔn)c語(yǔ)言筆試題09-07

C語(yǔ)言模擬試題及答案09-19

C語(yǔ)言測(cè)試試題及答案08-02