當前位置:首頁 » 編程語言 » 高中計算機奧賽c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

高中計算機奧賽c語言

發布時間: 2023-01-27 00:42:01

⑴ 我高中才接觸編程,想學習c語言一年然後參加奧賽,能夠高考加分的可能性有多少

看你有多聰明,1年用多少功,還有老師牛不牛逼。反正我高中學校老師很牛逼,什麼金牌老師,帶的計算機競賽我班裡同學高二就拿了全省第7有保送清華了,每年拿一等獎的都起碼十個。我覺得吧,看看叫你的老師怎麼樣,不行的話別報希望,你想一個省那麼多人參加,大家肯定都用功的,也都不笨,為什麼我們學校每年有十幾個,別的學校沒有。。主要就是老師要好,對歷年考題了解,講的清楚。

⑵ 高中計算機競賽要掌握一門高級語言程序,應該學哪個好學。VBC語言

我不認為語言本身有什麼可選性,樓上幾位所說「c是基礎性的東西;C#容易」之類,都不是他所關心的,
我的建議是,不選語言,只選老師,因為,這個競賽靠自學太困難,老師是關鍵,老師在那個語言上是強項,你就該學什麼。PASCAL和C選其一即可,因為C++\C#之類的,多了好多非演算法的內容,容易迷失。

⑶ 用c語言寫出n 的平方的累加和的過程。

n有范圍嗎?如果n是從1到100,程序如下:
main()
{int i,j;
j=0;
for(i=1;i<=100;i++)
{j=j+i*i;
}
printf("%d\n",j);
}

⑷ 求第十四屆信息學奧賽聯賽普及組c語言初賽試題 第三大題第2,3題的解析

2,3,1
遞歸一次,輸入參數循環左移至第一個數小於等於第二個數然後輸出
5 4 10 1 6 22 -59 -16 -11 -6
將數組中正數與負數分開排列,從數組起始開始檢測非整數數,從數組末尾檢測非負數,然後將這兩個數調換位置
最後一個遞歸沒時間分析了,下午有事要出門了

⑸ 只發高分:高一計算機奧林匹克競賽 C語言 准備

第十二屆全國青少年信息學奧林匹克聯賽初賽試題
( 普及組 C++ 語言 二小時完成 )
● ● 全部試題答案均要求寫在答卷紙上,寫在試卷紙上一律無效 ●●
一、 單項選擇題 (共20題,每題1.5分,共計30分。每題有且僅有一個正確答案.)。
1. 在下面各世界頂級的獎項中,為計算機科學與技術領域做出傑出貢獻的科學家設立的獎項是( )。
A. 沃爾夫獎 B. 諾貝爾獎 C. 菲爾茲獎 D. 圖靈獎
2. 在下列各軟體中,不屬於NOIP競賽(復賽)推薦使用的語言環境有( )。
A. gcc/g++ B. Turbo Pascal
C. RHIDE D. free pascal
3. 以下斷電之後仍能保存數據的有( )。
A. 寄存器 B. ROM C. RAM D. 高速緩存
4.Linux是一種( )。
A. 繪圖軟體 B. 程序設計語言 C. 操作系統 D. 網路瀏覽器
5. CPU是( )的簡稱。
A. 硬碟 B. 中央處理器 C. 高級程序語言 D. 核心寄存器
6. 在計算機中,防火牆的作用是( )。
A. 防止火災蔓延 B.防止網路攻擊
C. 防止計算機死機 D. 防止使用者誤刪除數據
7. 在下列關於計算機語言的說法中,不正確的是( )。
A. Pascal和C都是編譯執行的高級語言
B. 高級語言程序比匯編語言程序更容易從一種計算機移植到另一種計算機上
C. C++是歷史上的第一個支持面向對象的計算機語言
D. 與匯編語言相比,高級語言程序更容易閱讀
8. 在下列關於計算機演算法的說法中,不正確的是( )。
A. 一個正確的演算法至少要有一個輸入
B. 演算法的改進,在很大程度上推動了計算機科學與技術的進步
C. 判斷一個演算法的好壞的主要標準是演算法的時間復雜性與空間復雜性 1
D. 目前仍然存在許多涉及到國計民生的重大課題,還沒有找到能夠在計算機上實施的有效演算法
9. 在下列各種排序演算法中,不是以「比較」作為主要操作的演算法是( )。
A. 選擇排序 B. 冒泡排序 C. 插入排序 D. 基數排序
10.在編程時(使用任一種高級語言,不一定是C++),如果需要從磁碟文件中輸入一個很大的二維數組(例如1000*1000的double型數組),按行讀(即外層循環是關於行的)與按列讀(即外層循環是關於列的)相比,在輸入效率上( )。
A. 沒有區別 B. 按行讀的方式要高一些
C. 按列讀的方式要高一些 D. 取決於數組的存儲方式。
11.在C++ 中,表達式21^2的值是( )
A. 441 B. 42 C.23 D.24
12.在C++ 中,判斷a不等於0且b不等於0的正確的條件表達式是( )
A. !a==0 || !b==0 B. !((a==0)&&(b==0))
C. !(a==0&&b==0) D. a && b
13.某個車站呈狹長形,寬度只能容下一台車,並且只有一個出入口。已知某時刻該車站狀態為空,從這一時刻開始的出入記錄為:「進,出,進,進,進,出,出,進,進,進,出,出」。假設車輛入站的順序為1,2,3,……,則車輛出站的順序為( )。
A. 1, 2, 3, 4, 5 B. 1, 2, 4, 5, 7
C. 1, 4, 3, 7, 6 D. 1, 4, 3, 7, 2
14.高度為n的均衡的二叉樹是指:如果去掉葉結點及相應的樹枝,它應該是高度為n-1的滿二叉樹。在這里,樹高等於葉結點的最大深度,根結點的深度為0,如果某個均衡的二叉樹共有2381個結點,則該樹的樹高為( )。
A. 10 B. 11 C. 12 D. 13
15. 與十進制數1770 對應的八進制數是( )。
A. 3350 B. 3351 C. 3352 D. 3540
16.將5個數的序列排序,不論原先的順序如何,最少都可以通過( )次比較,完成從小到大的排序。
A. 6 B. 7 C. 8 D. 9
17. 設A=B=D=true,C=false,以下邏輯運算表達式值為真的有( )。
A. (A∧B)∨(C∧D) B. ¬¬((A∨B∨D)∧C) 2
C. A∧(B∨C∨D) D. (A∧B∧C)∨¬¬D
18. (2010)16 + (32)8的結果是( )。
A. (8234)10 B. (202B)16
C. (20056)8 D. (100000000110)2
19. 設棧S的初始狀態為空,元素a, b, c, d, e 依次入棧,以下出棧序列不可能出現的有( )。
A. a, b, c, e, d B. b, c, a, e, d
C. a, e, c, b, d D. d, c, e, b, a
20. 已知6個結點的二叉樹的先根遍歷是1 2 3 4 5 6(數字為結點的編號,以下同),後根遍歷是3 2 5 6 4 1,則該二叉樹的可能的中根遍歷是( )
A. 3 2 1 4 6 5 B. 3 2 1 5 4 6
C. 2 1 3 5 4 6 D. 2 3 1 4 6 5
二.問題求解(共2題,每題5分,共計10分)
1.(尋找假幣) 現有80枚硬幣,其中有一枚是假幣,其重量稍輕,所有真幣的重量都相同,如果使用不帶砝碼的天平稱重,最少需要稱幾次,就可以找出假幣?你還要指出第1次的稱重方法。請寫出你的結果:_________________________________________________。
2.(取石子游戲) 現有5堆石子,石子數依次為3,5,7,19,50,甲乙兩人輪流從任一堆中任取(每次只能取自一堆,不能不取), 取最後一顆石子的一方獲勝。甲先取,問甲有沒有獲勝策略(即無論乙怎樣取,甲只要不失誤,都能獲勝)?如果有,甲第一步應該在哪一堆里取多少?請寫出你的結果:
_________________________________________________。
三.閱讀程序寫結果(共4題,每題8分,共計32分)
1. #include <iostream.h>
void main()
{int i,u[4],a,b,x,y=10;
for(i=0;i<=3;i++)
cin >>u[i];
a=(u[0]+u[1]+u[2]+u[3])/7;
b=u[0]/((u[1]-u[2])/u[3]);
x=(u[0]+a+2)-u[(u[3]+3)%4];
if(x>10)
y+= (b*100-u[3])/(u[u[0]%3]*5);
3
else
y+=20+(b*100-u[3])/(u[u[0]%3]*5);
cout <<x<<","<<y<<endl;
} // 註:本例中,給定的輸入數據可以避免分母為0或下標越界。
輸入:9 3 9 4
輸出:_______________
2.#include <iostream.h>
void main()
{int i,j,m[]={2,3,5,7,13};
long t;
for (i=0;i<=4;i++)
{t=1;
for(j=1;j<m[i];j++) t*=2;
cout <<(t*2-1)*t<<" ";
}
cout <<endl;
}
輸出:____________________
3. #include "iostream.h"
#define N 7
int fun(char s[],char a,int n)
{int j;
j=n;
while(a<s[j] && j>0) j--;
return j;
}
void main()
{char s[N+1];
int k;
for(k=1;k<=N;k++)
s[k]='A'+2*k+1;
cout <<fun(s,'M',N)<<endl;
}
輸出:_____________
4. #include <iostream.h>
4
#include <iomanip.h>
void digit(long n,long m)
{if(m>0)
cout <<setw(2)<<n%10;
if(m>1)
digit(n/10,m/10);
cout <<setw(2)<<n%10;
}
void main()
{long x,x2;
cout <<"Input a number:"<<endl;
cin >>x;
x2=1;
while(x2<x) x2*=10;
x2/=10;
digit(x,x2);
cout <<endl;
}
輸入:9734526
輸出:______________________________
四.完善程序 (前4空,每空2.5分,後6空,每空3分,共28分)
1.(全排列)下面程序的功能是利用遞歸方法生成從1到n(n<10)的n個數的全部可能的排列(不一定按升序輸出)。例如,輸入3,則應該輸出(每行輸出5個排列):
123 132 213 231 321
312
程序:
#include <iostream.h>
#include <iomanip.h>
int n,a[10]; // a[1],a[2],…,a[n]構成n個數的一個排列
long count=0; // 變數count記錄不同排列的個數,這里用於控制換行
void perm(int k)
{int j,p,t;
if( ① )
{count++;
for(p=1;p<=n;p++)
cout <<setw(1)<<a[p]; 5
cout <<" ";
if( ② ) cout <<endl;
return;
}
for(j=k;j<=n;j++)
{t=a[k];a[k]=a[j];a[j]=t;
③ ;
t=a[k]; ④ ;
}
}
void main()
{int i;
cout <<"Entry n:"<<endl;
cin >>n;
for(i=1;i<=n;i++) a[i]=i;
⑤ ;
}
2. 由鍵盤輸入一個奇數 P (P<100,000,000),其個位數字不是5,求一個整數 S,使 P×S = 1111...1 ( 在給定的條件下,解 S 必存在)。要求在屏幕上依次輸出以下結果:
(1)S 的全部數字。除最後一行外,每行輸出 50 位數字。 (2) 乘積的數字位數。
例1:輸入p=13,由於13*8547=111111,則應輸出(1)8547,(2)6
例2:輸入p=147,則輸出結果應為(1)
(2)42,即等式的右端有42個1。
程序:
#include <iostream.h>
#include <iomanip.h>
void main()
{long p,a,b,c,t,n;
while (1)
{ cout <<"輸入 p, 最後一位為 1 或 3 或 7 或 9:"<<endl;
cin >>p;
if ((p%2!=0)&&(p%5!=0)) // 如果輸入的數符合要求,結束循環
⑥ ;
}
a=0; n=0;
while (a<p)
6
{a=a*10+1; n++; // 變數a存放部分右端項,n為右端項的位數
}
t=0;
do
{b=a/p;
cout <<setw(1)<<b;
t++;
if ( ⑦ )
cout <<endl;
c= ⑧ ; a= ⑨ ; n++;
} while (c>0);
cout<<endl<<"n="<< ⑩ <<endl;
}
7

答案
普及組(C++語言)參考答案與評分標准
一、單項選擇題:(每題1.5分)
1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D
11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B
二、問題求解:(每題 5分)
1. 4次 (1分),
第一步:分成3組:27,27,26,將前2組放到天平上(4分)。
2.有獲勝策略(1分),,第1次在第5堆中取32顆石子(4分),。
三、閱讀程序寫結果
1. 10,10 (對1個數給4分,無逗號扣1分)
2. 6 28 496 8128 33550336
(前2個對1個數給1分,後3個對1個數給2分)
3. 5
4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(數字之間無空格扣2分)
四、完善程序(前4空(①--④),每空2.5分,後6空(⑤--⑩),每空3分)
1.① k==n (或n==k)
② count%5==0
③ perm(k+1)
④ a[k]=a[j];a[j]=t (分號可以用逗號代替)
⑤ perm(1)
2.⑥ break
⑦ t%50==0
⑧ a-p*b (或a-b*p)
⑨ c*10+1 (或10*c+1)
⑩ --n (只寫n 給1分)

⑹ 高中計算機奧賽(c語言)怎麼考

用什麼軟體考,TURBO C ,VC++ 6.0都差不多的,你按照大綱掌握基礎就行了.
高中計算機競賽現在主要分為三塊
一個是軟體編程。

一個是這幾年興起的網站製作,就是運用各種工具去製作一個有特色的網站,這個入門簡單,學習也很快捷,但是學到後來同樣需要高深的程序來支撐,而且需要較好的美術功底

還有一個是計算機應用,又稱的機器人比賽

不管是哪一個都是需要系統的學習的。你可以先報一個入門的基礎班,比如VB基礎班啊,C++基礎班等,循序漸進,需要的網站什麼,到時候都有專業的老師給你提供。自學不是不好,但是容易走偏或者說是一知半解,基礎是一定要打好的,到後面可以自己探索 .

建議:
你去看幾本書《奧賽經典——信息學奧林匹克教程——基礎篇》,《奧賽經典——信息學奧林匹克教程——語言篇》等輔導書籍.

⑺ 高中計算機奧林匹克競賽考什麼

一、考試內容主要有:

NOI 競賽的題目以考查選手對演算法和編程能力的掌握為主。題目類型有以下三種:

1、傳統型:

傳統型題目要求選手提交答案程序的源文件。該程序從一個正文文件中讀入數據,並向指定的輸出文件中寫入計算結果。非互動式程序題的題麵包括下列內容:

(1)求解問題的描述;

(2)輸入文件名和輸出文件名(可以是標准輸入/輸出);

(3)輸入數據格式、輸出數據格式、以及輸入數據范圍;

(4)對程序使用計算資源的限制,以及其它可能的限制。

2、交互型:

交互型題目要求選手提交答案程序的源文件。該程序通過調用所提供的庫函數實現數據的輸入和輸出。互動式程序題的題麵包括下列內容:

(1)求解問題的描述;

(2)庫函數的功能、函數原型、以及獲取和鏈接方式;

(3)輸入數據格式、輸出數據格式、以及輸入數據范圍;

(4)對程序使用計算資源的限制,以及其它可能的限制。

3、提交答案型:

提交答案型題目不要求選手提交程序的源文件。選手需要按題目要求,根據給定的輸入數據文件生成一組輸出數據文件。該組數據文件既可以是由選手的程序輸出的,也可以是由選手手工構造的。當選手使用自行設計的程序生成題目答案時,其所使用的程序不應提交。答案提交題的題麵包括下列內容:

(1)求解問題的描述;

(2)輸入數據格式、輸出數據格式;

(3)輸入數據文件的獲取方法。

二、報名地:

所有省市自治區都可以報名參加。

三、編譯系統:

gcc ≥3.2.2, g++ ≥3.2.2, Free Pascal ≥2.0.1 ,主要用 C++ 和 Pascal 。

四、靠前復習應以考試內容為側重,到達熟練掌握的程度,很有可能拿到好成績。

(7)高中計算機奧賽c語言擴展閱讀:

1、競賽前的練習和標准化筆試題:

選手在正式競賽前應有不少於2個小時的練習時間,以熟悉競賽場地、設備和軟體環境、以及答案提交方式。競賽前的練習應安排在第一場競賽的前一天。在賽前練習結束後,應安排不少於30分鍾的時間進行標准化筆試題的測試。

標准化筆試題包含單選題、多選題和填空題,題目涉及的內容包括計算機和編程的基本知識、NOI競賽所使用的操作系統、編程工具等的使用方法,以及基本競賽規則。標准化筆試題的成績計入選手競賽的總成績。

2、競賽時間:

NOI 的競賽分為兩場,每場競賽的時間為5小時。兩場競賽之間應間隔一天。

⑻ 全國青少年信息學奧林匹克競賽有考C語言么 (中學的..)

可以用C
初賽的試卷有PASCAL和C兩種,但內容是一樣的,只是把語言轉了一下。
復賽PASCAL和C都可以用,反正只是看結果。

⑼ 請問給參加信息學奧賽(提高組)的學生輔導是教他們C語言還是pascal語言好呢

作為一個同樣是高中開始接觸計算機、曾經取得過分區聯賽一等獎、目前仍混跡於程序大海中的我,建議還是學pascal。理由有三點:
1、Pascal應該還是目前分區聯賽的主流語言,更重要的是,大部分的競賽輔導書、尤其是優秀的競賽輔導書,都還是用pascal寫的。
2、Turbo Pascal功能比較簡單,容易上手,可以將學生的注意力集中於演算法研究,而不是軟體的應用。而競賽考核的核心內容是演算法,不是語言。
3、Pascal雖然非常古老,而且也不是很好用,但是她的語法、邏輯都非常的嚴密,對於新手而言,有助於形成良好的編程習慣,同時更好地理解編程的內涵。

⑽ 高中信息學奧賽學什麼語言比較好

很高興能看到LZ這樣對編程感興趣的同學
建議你用C作為高中競賽編程語言
原因:
1.C目前仍是主流語言之一,以後寫演算法,做軟體用到的機會會非常大。
而Pascal作為教學編程語言,盡管其有著非常優美和易懂的語言結構,但實際應用中使用較少
2.你以前學習過Pascal,過渡到C語言比較平滑,以後學習C++也比較方便
3.做演算法用C效率較高。
4.C有很多優秀的的IDE,比如VS,這會讓你在調試代碼時如魚得水
不過話又說回來,許多信息學競賽書代碼仍可能使用的PASCAL書寫。
最後啰嗦一句,選什麼編程語言很多時候不重要,演算法才是程序的靈魂