法學全國青少年信息學競賽培訓教材_第1頁
法學全國青少年信息學競賽培訓教材_第2頁
法學全國青少年信息學競賽培訓教材_第3頁
法學全國青少年信息學競賽培訓教材_第4頁
法學全國青少年信息學競賽培訓教材_第5頁
已閱讀5頁,還剩22頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

全國青少年信息競賽培訓教材第一章計算機和計算機語言101【問題描述】求S=1-2+3-4+……-100102【問題描述】求圓面積程序,寫出程序的運行結果。#include<stdio.h>#include<stdlib.h>char*s=“Letusbegin”;intr=3;doublepi=3.14;main(){printf(“%s\n”,s);printf(“radiumis:%d\n”,r);printf(“Arreaofcircleis:%lf\n”,pi*r*r);printf(“Arreaofcircleis:%10lf\n”,pi*r*r);printf(“Arreaofcircleis:%10.3lf\n”,pi*r*r);//system(“pause”);return0;}103【問題描述】判定2000-2005年中的每一年是否閏年,輸出其中所有閏年的年份。請寫出程序的運行結果?!驹闯绦颉?include<stdio.h>#include<stdlib.h>intyear;charleap;main(){printf("Thefollowingareleapyears:\n");for(year=2000;year<=2500;++year){leap=0;if(year%4==0)if(year%100!=0)leap=1;elseif(year%400==0)leap=1;if(leap)printf("%d",year);}//system("pause");return0;}第二章順序結構程序設計201【問題描述】雞和兔子關在一個籠子里,可以看到共有12個頭、40只腳,求雞和兔子各有多少只?【源程序】#include<stdio.h>#include<stdlib.h>main(){intchick,rabbit;rabbit=(40-2*12)/2;chick=40-rabbit;printf("%d%d\n",chick,rabbit);//system("pause");return0;}202【問題描述】已知旅行的距離和汽車平均速度,每公升汽油可以行駛的公里數以及每公升汽油的價格,求駕駛汽車旅游所花費的時間和購買汽油的錢數。【源程序】#include<stdio.h>#include<stdlib.h>main(){floats,v,k,p,liter,t,total;printf("請輸入svkp\n");scanf("%f%f%f%f",&s,&v,&k,&p);t=s/v;liter=s/k;total=liter*p;printf("%.2lf%.2lf\n",t,total);//system("pause");return0;}203【問題描述】笑笑有一些糖果。第一天,他吃了總數的一半多一顆;第二天,他又吃了剩下糖果的總數的一半多一顆;第三天,他又吃了剩下糖果的總數的一半多一顆。結果發現,剩下的糖果數量恰好是他的幸運數字。你能算出笑笑原來一共有多少顆糖果嗎?【源程序】#include<stdio.h>#include<stdlib.h>main(){intn,x;printf("請輸入幸運數字:\n");scanf("%d",&n);x=(n+1)*2;x=(x+1)*2;x=(x+1)*2;printf("結果是:\n");printf("%d\n",x);//system("pause");return0;}204實例2-1日期寫法(date)【問題描述】對于年、月、日的描述,不同國家有不同的描述方式,按年、月、日的方式讀入日期,輸出中國式的寫法(年、月、日),英國式的寫法(日/月/年)和美國式的寫法(月/日/年)。輸入:從鍵盤輸入正確的年、月、日。輸出:中、英、美式的日期寫法?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){intday,month,year;printf("year,month,day=\n");scanf("%d%d%d",&year,&month,&day);printf("DateinPRCformis%d%d%d\n",year,month,day);printf("DateinUKformis%d%d%d\n",day,month,year);printf("DateinUSAformis%d%d%d\n",month,day,year);//system("pause");return0;}205實例2-2數字分離(splitnum)【問題描述】小明剛學會一位數字的加法運算,小明媽媽想考核小明的運算能力,于是每次給一個四位小數,讓小明求各位數字和。小明媽媽想讓你幫她寫一個程序,能隨機產生一個四位整數,同時給出各位數字和。這樣她能一邊做自己的事,一邊考核小明。輸入:隨機產生一個四位整數。輸出:產生的整數和各位數字和?!驹闯绦颉?/splitnum#include<stdio.h>#include<stdlib.h>main(){intnumber,a,b,c,d,s;srand(time(NULL));number=rand()%9000+1000;//隨機產生一個四位數a=number%10;//下面四行對number數進行拆分b=number/10%10;c=number/100%10;d=number/1000;s=a+b+c+d;printf("%d\n",number);printf("s=%d\n",s);//system("pause");return0;}206實例2-3時間戳(times)【問題描述】國家安全局獲得了一份珍貴的材料,上面記載了一個即將進行的恐怖活動的一切。不過,國家安全局沒法得到實施的時間!材料上的時間使用的是LINUX時間戳,即是從1970年1月1日0時0分0秒開始到該時刻總共過了多少秒。此等重大的責任終于落到你的肩上了,給你該時間戳,你要寫個程序計算出恐怖活動在哪一天實施(這里為了簡單起見,規定一年12個月,每個月固定為30天)。輸入:一個整數n(0≤n≤2147483647),表示從1970年1月1日0時0分0秒開始到該時刻過了n秒。輸出:一行:三個整數y、m、d,表示恐怖活動在y年m月d日實施?!驹闯绦颉?/times#include<stdio.h>#include<stdlib.h>main(){//初始化時間intyears=31104000;intmonths=2592000;intdays=86400;longn,ys,y,m,d;printf("n=");scanf("%d",&n);y=n/years;ys=n%years;m=ys/months+1;ys=ys%months;d=ys/days+1;printf("%d%d%d\n",1970+y,m,d);//system("pause");return0;}207練習2-1.1寫出下列程序的運行結果#include<stdio.h>main(){charch1,ch2,ch3;inti;scanf("%c",&ch1);ch2=ch1-1;ch3=ch1+1;i=ch1;printf("%d%c%c%c\n",i,ch1,ch2,ch3);return0;}運行后輸入:E208練習2-1.2寫出下列程序的運行結果#include<stdio.h>main(){intm,x,y,k1,k2;inti,j;scanf("%d%d%d",&m,&i,&j);k1=1<<i;k2=1<<j;x=m&k1;y=m&k2;printf("%d\n",(x>>i)^(y>>j));return0;}運行后輸入:eq\o\ac(○,1)25314eq\o\ac(○,2)25347209練習2-2補充完善下列程序#include<stdio.h>#include<math.h>main(){____a,b,c,p,s;scanf("%d%d%d",&a,&b,&c);p=(a+b+c)/2.0;s=____;printf(____);}提示:使用y=sqrt(x)這個語句可以全y的值為x的平方根。210練習2-3編程題從鍵盤上讀入長方形的連長a,b,計算它的面積和周長,輸出。輸入:用時、分、秒表示時間長度,把它轉換為秒數。將輸入的華氏溫度轉換為攝氏溫度。按年利率R%存入本錢X,存入P年后的本利合計為Y=X((100+R)/100)p,請根據輸入的R、X和P值輸出,求Y的值。農夫與石頭憨厚的老農夫昨天撿到了3塊小石頭,他想再去撿一塊石頭,讓這4塊石頭正好一共重20千克,請問他應該去撿一塊多少千克的石頭?要求輸入這三塊石頭的重量(千克),輸出一個數,表示農夫應該去撿一塊多少千克的石頭。第三章選擇結構程序設計問題引導301【問題描述】給定兩個整數a與b,輸出其中較小值?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){inta,b;printf("a,b=");scanf("%d%d",&a,&b);printf("Theminofaandbis:");if(a<b)printf("%d\n",a);elseprintf("%d\n",b);//system("pause");return0;}302【問題描述】已知三條線段的長度(均為正整數),判斷這三條線段是否能構成三角形;若能構成三角形,判斷所構成三角形的形狀?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){inta,b,c;printf("abc=");scanf("%d%d%d",&a,&b,&c);if((a+b<=c)||(a+c<=b)||(b+c<=a))printf("notatriangle\n");//不能構成三角形elseif((a==b)&&(b==c))printf("regulartriangle\n");//構成等邊三角形elseif((a==b)||(a==c)||(b==c))printf("isoscelestriangle\n");//構成等腰三角形elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))printf("rignttriangle\n");//構成直角三角形elseprintf("triangle\n");//構成普通三角形//system("pause");return0;}303【問題描述】為保密,QS星球使用了特殊的指令,指令以字符的形式發出,并且應用了加密策略。日前,他們加密的規則被我們獲悉,原來規則如此有趣:將每一個字母變成它的后繼,例如“A”變成“B”、“Z”變成“A”,“z”變成“a”,其他字符不變?,F在,請你破譯接收到的一個指令?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){charch;scanf("%c",&ch);switch(ch)//根據ch的值,分情況處理{case'z':printf("a\n");break;case'Z':printf("A\n");break;default:if((ch<='y'&&ch>='a')||(ch<='Y'&&ch>='A'))printf("%c\n",ch+1);elseprintf("%c\n",ch);break;}//system("pause");return0;}304【問題描述】輸入任意三個互不相等的整數,將其按從大到小的順序輸出?!驹闯绦颉拷夥?://304_1.c#include<stdio.h>#include<stdlib.h>main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);if((a>b)&&(b>c))printf("%d>%d>%d\n",a,b,c);if((a>c)&&(c>b))printf("%d>%d>%d\n",a,c,b);if((b>a)&&(a>c))printf("%d>%d>%d\n",b,a,c);if((b>c)&&(c>a))printf("%d>%d>%d\n",b,c,a);if((c>a)&&(a>b))printf("%d>%d>%d\n",c,a,b);if((c>b)&&(b>a))printf("%d>%d>%d\n",c,b,a);//system("pause");return0;}解法2:#include<stdio.h>#include<stdlib.h>main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);if(a>b)if(b>c)printf("%d>%d>%d\n",a,b,c);else//否定的是b>cif(a>c)printf("%d>%d>%d\n",a,c,b);else//否定的是a>cprintf("%d>%d>%d\n",c,a,b);else//否定的是a>bif(a>c)printf("%d>%d>%d\n",b,a,c);else//否定的是a>cif(b>c)printf("%d>%d>%d\n",b,c,a);else//否定的是b>cprintf("%d>%d>%d\n",c,b,a);//system("pause");return0;}解法3:#include<stdio.h>#include<stdlib.h>main(){inta,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b)//交換a和b的值{t=a;a=b;b=t;}if(a<c)//交換a和c的值{t=a;a=c;b=t;}if(b<c)//交換b和c的值{t=b;b=c;c=t;}printf("%d>%d>%d\n",a,b,c);//經過上面三步操作,a、b、c是有順序的了//system("pause");return0;}305【問題描述】超市為了促銷,經常打折銷售。購物超過50元,即可打折優惠:超過50元,打9.5折;超過100元,則打9折;超過200元,則打8折;超過300元,則打7折。當購物滿s元時,實際付費多少呢?【源程序】#include<stdio.h>#include<stdlib.h>main(){doubles,f;printf("Pleaseinputs=");scanf("%lf",&s);if(s<=50)f=s; //不打折elseif(s<=100)f=s*0.95;//9.5折elseif(s<=200)f=s*0.9;//9折elseif(s<=300)f=s*0.8;//8折elsef=s*0.7;//7折printf("Themoneyis%.2lfyuan.\n",f);//system("pause");return0;}306【問題描述】對給定的兩個操作數,輸入運算符,即可計算其值。這里假設運算符只有+、-、*、/,且兩個運算數均為整數。【源程序】#include<stdio.h>#include<stdlib.h>main(){inta,b;charc;scanf("%d%d\n",&a,&b);scanf("%c",&c);printf("Theresultis:");switch(c){//根據運算符的不同,進行不同的情況處理case'+':printf("%d\n",a+b);break;case'-':printf("%d\n",a-b);break;case'*':printf("%d\n",a*b);break;case'/':if(b==0)printf("Dividedbyzero!\n");elseif(a%b==0)printf("%d\n",a/b);elseprintf("%.4f\n",(double)a/b);break;default:printf("InputError!\n");break;}//system("pause");return0;}307【問題描述】給定年份和月份,求該月共有多少天?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){intyear,month;printf("Pleaseinuttheyearandthemonth:");scanf("%d%d",&year,&month);switch(month){case1:case3:case5:case7:case8:case10:case12:printf("Thereare31daysinthismonth.\n");break;case2:if((year%4!=0)||((year%100==0)&&(year%400!=0)))printf("Thereare28daysinthismonth.\n");elseprintf("Thereare29daysinthismonth.\n");break;case4:case6:case9:case11:printf("Thereare30daysinthismonth.\n");break;default:printf("Inputerror!\n");}//system("pause");return0;}308【問題描述】現在學生檔案中經常采用等級評價,于是李老師想將百分制成績轉化為等級。李老師的成績單上的成績都是整數,他約定等級與百分制之間的對應關系如下:A:90~100B:80~89C:60~79D:0~59請編程將任意給定的分數轉化為等級?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){intx;printf("Inputthescore:");scanf("%d",&x);switch(x/10)//構造表達式{case10:printf("A\n");break;case9:printf("A\n");break;case8:printf("B\n");break;case7:printf("C\n");break;case6:printf("C\n");break;default:printf("D\n");break;}//system("pause");return0;}309機器人的移動問題(robot)【問題描述】在一個平面直角坐標系上,一個機器人處于某格點(x0,y0)處,格點的縱橫坐標均為整數。有一個遙控器可以讓機器人實現9種可能的運動方式,它們依次是:向左走一個單位;向右走一個單位;向上走一個單位;向下走一個單位;走到格點(x0,y0)關于x軸的對稱點;走到格點(x0,y0)關于y軸的對稱點;走到格點(x0,y0)關于原點的對稱點;以格點(x0,y0)與原點的連線為軸,逆時針旋轉90度;以格點(x0,y0)與原點的連線為軸,順時針旋轉90度。其中,以橫坐標x值增大為向右,以縱坐標y值增大為向上。現已知機器人的初始位置(x0,y0)以及遙控器此次發出的指令編號i(1≤i≤9),問機器人執行指令后所到的位置。輸入:三個整數x0、y0、i,彼此之間用空格隔開。輸出:兩個整數x和y,表示機器人移動后所到位置的坐標為(x,y)?!驹闯绦颉?include<stdio.h>#include<stdlib.h>main(){intx0,y0,x,y,i;printf("Pleaseinputx0y0i\n");scanf("%d%d%d",&x0,&y0,&i);switch(i)//按指令編號分情況處理{case1:x=x0-1;y=y0;break;case2:x=x0+1;y=y0;break;case3:x=x0;y=y0+1;break;case4:x=x0;y=y0-1;break;case5:x=x0;y=-y0;break;case6:x=-x0;y=y0;break;case7:x=-x0;y=-y0;break;case8:x=-y0;y=x0;break;case9:x=y0;y=-x0;break;}printf("Thenewplaceis:%d%d\n",x,y);//system("pause");return0;}310解方程的困擾(equation)【問題描述】這幾天,數學課上正在學習解一元二次方程。自然,這幾天的數學作業都是解方程,里面有一元二次方程,也有一元一次方程,更有甚者,還有恒等式與矛盾式。數學老師希望同學們熟練地掌握求解方程的方法和技巧,所以留了上百道練習題。這下笑笑就慘了,他算了一下,即使他不睡覺也不可能完成那么多的作業。于是,笑笑找到了你,希望你能夠編出一個程序幫助他完成解方程的任務。舍得慶幸的是,作業中的方程都已經化成了ax2+bx+c=0的形式(其中a,b,c均為整數)。輸入:a,b,c三個整數,用空格隔開,表示所需求解的方程是ax2+bx+c=0。需要注意:a,b,c均有可能為零。輸出:解這個方程的全過程,即對于解這個方程而言,笑笑在作業中所需寫出的步驟與結果。要求最后的結果均保留小數點后4位?!驹闯绦颉?include<stdio.h>#include<stdlib.h>#include<math.h>intmain(void){intdelta,a,b,c;printf("Pleaseinputabc:\n");scanf("%d%d%d",&a,&b,&c);if(a!=0)//二次項系數非零,是一元二次方程{printf("Exponent2!\n");delta=b*b-4*a*c;printf("delta=b*b-4*a*c=%d\n",delta);if(delta<0)//一元二次方程的delta<0,無解printf("delta<0,noanswer!\n");elseif(delta==0)//一元二次方程的delta=0,有兩個重根{printf("delta=0,twoequalanswers:\n");printf("x1=x2=-b/(2a)=%.4lf\n",(double)((-b)/(2*a)));}else//一元二次方程的delta>0,有兩個不等根{printf("delta>0,twodifferentanswers:\n");printf("x1=(-b+sqrt(delta))/(2a)=%.4lf\n",\(double)((-b+sqrt(delta))/(2*a)));printf("x2=(-b-sqrt(delta))/(2a)=%.4lf\n",\(double)((-b-sqrt(delta))/(2*a)));}}else//否定的是a<>0,即二次項系數也為0if(b!=0)//一次項系數不為0{printf("Exponent1!\n");printf("Onlyoneanswer:x=-c/b=%.4lf\n",(double)(-c/b));}else//否定b<>0,即一次項系數也為0if(c!=0)//若常數項不為0,而等號右側是0,矛盾printf("Wrong!Noanswer!\n");else//若常數項為0,而等號右側也是0,恒等printf("Identity!\n");//system("pause");return0;}311數表讀數(table)【問題描述】最近柯南被卷進阿笠博士發明的一個無聊的游戲中。柯南向來對博士的游戲沒有好感,因為每一次的游戲都仿佛是給小學一年級學生準備的那樣。這一天當然也不例外。阿笠博士畫了一個9*9的靶形數表,每一個格子內都標有一個1到5之間的整數作為該格子的價值,而且,價值的頒很有規律,如圖3-6所示?,F在博士要考柯南:某行某列格子的價值是多少。于是,柯南找到了正在學習編程的你,希望用程序回答這一問題。輸入:i和j,用一個空格隔開(i和j都是1到9之間的整數)。輸出:第i行第j列格子的價值。【源程序】解法一:#include<stdio.h>#include<stdlib.h>main(){inti,j;printf("Pleaseinputij:\n");scanf("%d%d",&i,&j);switch(i)//按照行號分情況討論{case1://1、9行case9:printf("1\n");break;case2://2、8行case8:if((j==1)||(j==9))printf("1\n");elseprintf("2\n");break;case3://3、7行,還要再用嵌套的case分析每一列case7:switch(j){case1:case9:printf("1\n");break;case2:case8:printf("2\n");break;default:printf("3\n");break;};break;case4:case6:switch(j){case1:case9:printf("1\n");break;case2:case8:printf("2\n");break;case3:case7:printf("3\n");break;default:printf("4\n");break;};break;case5:switch(j){case1:case9:printf("1\n");break;case2:case8:printf("2\n");break;case3:case7:printf("3\n");break;case4:case6:printf("4\n");break;default:printf("5\n");break;};break;}//system("pause");return0;}解法二:#include<stdio.h>#include<stdlib.h>main(){inti,j;printf("Pleaseinputij:\n");scanf("%d%d",&i,&j);if(i>5)i=10-i;//找橫向對稱點if(j>5)j=10-j;//找縱向對稱點if((i==1)||(j==1))printf("1\n");elseif((i==2)||(j==2))printf("2\n");elseif((i==3)||(j==3))printf("3\n");elseif((i==4)||(j==4))printf("4\n");elseprintf("5\n");//system("pause");return0;}解法三:#include<stdio.h>#include<stdlib.h>intmain(){inti,j,ans;printf("Pleaseinputij:\n");scanf("%d%d",&i,&j);if(i<10-i)ans=i;//取i和它的對稱橫坐標的最小值作為anselseans=10-i;if(j<ans)ans=j;//與縱坐標比較,求最小值ansif(10-j<ans)ans=10-j;//與對稱縱坐標比較,最小值作為ansprintf("%d\n",ans);//system("pause");return0;}312寫出下列程序的運行結果。#include<stdio.h>intmain(){longn;scanf("%d",&n);if(n>0)printf("%d\n",n);elseprintf("%d\n",-n);return0;}運行后輸入:eq\o\ac(○,1)0eq\o\ac(○,2)-24eq\o\ac(○,3)4313寫出下列程序的運行結果。#include<stdio.h>intmain(){longn;scanf("%d",&n);switch(n%5){case0:printf("%d\n",n);n=n+1;break;case1:printf("%d\n",n);n=n+1;break;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論