有谁能给我今年的NOIP分区联赛的题目?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有谁能给我今年的NOIP分区联赛的题目?相关的知识,希望对你有一定的参考价值。
一.选择一个正确答案代码(A/B/C/D,填入每题的括号内(每题1.5分,多选无分,共30分)1)微型计算机的问世是由于( C ) 的出现。
A) 中小规模集成电路 B) 晶体管电路 C) (超)大规模集成电路 D) 电子管电路
2)下列说法中正确的是( B ) 。
A) 计算机体积越大,其功能就越强
B) CPU的主频越高,其运行速度越快
C) 两个显示器屏幕大小相同,则它们的分辨率必定相同
D)点阵打印机的针数越多,则能打印的汉字字体越多
3)Windows98中,通过查找命令查找文件时,若输入F*.? , 则下列文件( C ) 可以被查到。
A) F.BAS B) FABC.BAS C) F.C D) EF.
4)CPU处理数据的基本单位是字,一个字的字长( D ) 。
A) 为8个二进制位 B) 为16个二进制位
C) 为32个二进制位 D) 与芯片的型号有关
5)资源管理器的目录前图标中增加"+"号,这个符号的意思是( B ) 。
A) 该目录下的子目录已经展开 B) 该目录下还有子目录未展开
C) 该目录下没有子目录 D) 该目录为空目录,
6)下列哪一种程序设计语言是解释执行的( B ) 。
A) Pascal B) GWBASIC C) C++ D) FORTRAN
7)启动WORD的不正确方法是( C ) 。
A) 单击Office工具栏上的Word图标
B) 单击"开始"→"程序"→Word
C) 单击"开始"→"运行",并输入Word按回车
D) 双击桌面上的"Word快捷图标"
8)多媒体计算机是指( D ) 计算机。
A) 专供家庭使用的 B) 装有CDROM的
C) 连接在网络上的高级 D) 具有处理文字、图形、声音、影像等信息的
9)在树型目录结构中,不允许两个文件名相同主要是指( D ) 。
A) 同一个磁盘的不同目录下 B) 不同磁盘的同一个目录下
C) 不同磁盘的不同目录下、 D) 同一个磁盘的同一个目录下
10)用画笔(Paintbrush)绘制图形并存储在文件中,该图形文件的文件名缺省的后缀为( B ) 。
A) .jpg B) .bmp C) .gif D).tiff
11)E-ml地址中用户名和邮件所在服务器名之间的分隔符号是( B ) 。
E A) # B) @ C) & D) $
12)(0.5)10=( A ) 16.
A) 0.1 B) 0.75 C) 0.8 D) 0.25
13)IP v4地址是由( B ) 位二进制数码表示的。
A) 16 B) 32 c) 24 D) 8
14)算式(2047)10一(3FF)16+(2000)8的结果是( A ) 。
A) (2048)10 B) (2049)10 C) (3746)8 D) (1AF7)16
15)下列叙述中,错误的是(C )
A) Excel中编辑的表格可以在Word中使用
B) 用Word编辑的文本可以存成纯文本文件
C) 用记事本(Notepa)编辑文本时可以插入图片
D) 用画笔(Paintbrush)绘图时可以输入文字
16)一个向量第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是( B )
A) 110 B) 108 C) 100 D) 109
17)在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( D ) 。
A) 希尔排序 B) 起泡排序 C) 插入排序 D) 选择排序
18)在计算机网络中,Modem的功能是( C )
A) 将模拟信号转换为数字信号 B) 将数字信号转换为模拟信号
C) 实现模拟信号与数字信号的相互转换 D) 实现将模拟信号的数字信号
19)设有一个含有13个元素的Hash表(O~12),Hash函数是:H(key)=key % 13,其中%是求余数运算。用线性探查法解决冲突,则对于序列(2、8、31、20、19、18、53、27),18应放在第几号格中( B ) 。
A) 5 B) 9 C) 4 D) 0
20)要使1…8号格子的访问顺序为:82、63、73、1、4,则下图中的空格中应填人(A ) 。
1 2 3 4 5 6 7 8
4 6 1 -1 7 3 2
A) 6 B) O C) 5 D) 3
二.问题求解:
1. 如下图,有一个无穷大的的栈S,在栈的右边排列着1,2,3,4,5共五个车厢。其中每个车厢可以向左行走,也可以进入栈S让后面的车厢通过。现已知第一个到达出口的是3号车厢,请写出所有可能的到达出口的车厢排列总数(不必给出每种排列)。
1 2 3 4 5
S↓
32145 32154 32415 32451 32541 34215 34251 34521 35421
9种
2.将N个红球和M个黄球排成一行。例如:N=2,M=3可得到以下6种排法:
红红黄黄黄 红黄红黄黄 红黄黄红黄 黄红红黄黄 黄红黄红黄 黄黄黄红红
问题:当N=4,M=3时有多少种不同排法?(不用列出每种排法)
2*2*2*1*1*1*1*
三.阅读程序:
program exp1;
var i,j,k,n,,L0,L1,LK:Integer;
a :array [0..20] of integer;
begin
readln(n,k);
for i:=0 to n-1 do a[i]:=i+1;
a[n]:=a[n-1];L0:=n-1; Lk:=n-1;
for I:=1 to n-1 do
begin
L1:=L0-k; if (l1<0) then L1:=L1+n;
If (l1=Lk) then begin
A[L0]:=a[n]; Lk:=Lk-1; a[n]:=a[Lk]; l0:=lk
End;
Else
Begin
A[l0]:=a[l1];l0:=l1;
End;
End;
A[L0]:=a[n];
For I:=0 to n-1 do write(a[I]:40;
Writeln;
End.
输入:10 4
输出:
2)program exp2;
var n,jr,jw,jb:integer;
ch1:char;
ch:array[1..20]d char;
begin
readln(n);
for i:=1 to n do read(ch[i]):
jr:=1;jwz=n;jb:=n;:
while (jr<=jw)do
begin
if(ch[jw]='R')
then begin
ch1:=Ch[jr];Ch[jr]:=ch[jw];ch[jw]:=ch1:jr:=jr+13
end
else if ch[jw]='W'
then jw:=jw-1
else begin
ch1:=ch[jw];ch[jw]:=ch[jb];ch[jb]:=ch1;jw:=jw-1;jb:=jb-1;
end
end;
for i:=1 to n do write(ch[i]);
writeln;
end.
输入:10
RBRBWWRBBR
输出:
3)Pmgram exp3;
Var I,j,p,n,q,s:integer;
a :array[1..20]of integer;
begin
readln(p,n,q);j :=21;
while (n>0)do
begin
j:=j-1;a[j]:=n mod 10;n:=n div 10;
end;
s:=0;
for i:=j t0 20 do s:=s*p+a[i];
writeln(s);j :=21;
while (s>O)do
begin j:=j-1;a[j]:=s mod q;s:=s div q;end;
for i:=j to 20 do write(a[i]);readln;
end.
输入:7 3051 8
输出:
四.完善程序:
1.问题描述:将n个整数分成k组(k≤n,要求每组不能为空),显然这k个部分均可得到一个各自的和s1,s2,……sk,定义整数P为:
P=(S1-S2)2+(S1一S3)2+……+(S1-Sk)2+(s2-s3)2+……+(Sk-1-Sk)2
问题求解:求出一种分法,使P为最小(若有多种方案仅记一种〉
程序说明:
数组:a[1],a[2],...A[N]存放原数
s[1],s[2],...,s[K]存放每个部分的和
b[1],b[2],...,b[N]穷举用临时空间
d[1],d[2],...,d[N]存放最佳方案
程序:
program exp4;
Var i,j,n,k : integer;
a :array [1..100] of integer;
b,d:array [0..100] of integer;
s :array[1..30] of integer;
begin
readln(n,k);
for I:=1 to n do read(a[I]);
for I:=0 to n do b[I]:=1;
cmin:=1000000;
while (b[0]=1) do
begin
for I:=1 to k do ①
for I:=1 to n do
②
sum:=0;
for I:=1 to k-1 do
for j:= ③
sum:=sum+(s[I]-s[j])*(s[I]-s[j]);
if ④ then
begin
cmin:=sum;
for I:=1 to n do d[I]:=b[I];
end;
j:=n;
while ⑤ do j:=j-1;
b[j]:=b[j]+1;
for I:=j+1 to n do ⑥
end;
writeln(cmin);
for I:=1 to n do write(d[I]:40);
writeln;
end.
2. 问题描述:工厂在每天的生产中,需要一定数量的零件,同时也可以知道每天生产一个零件的生产单价。在N天的生产中,当天生产的零件可以满足当天的需要,若当天用不完,可以放到下一天去使用,但要收取每个零件的保管费,不同的天收取的费用也不相同。
问题求解:求得一个N天的生产计划(即N天中每天应生产零件个数),使总的费用最少。
输入:N(天数N<=29)
每天的需求量(N个整数)
每天生产零件的单价(N个整数)
每天保管零件的单价(N个整数)
输出:每天的生产零件个数(N个整数)
例如:当N=3时,其需要量与费用如下:
第一天 第二天 第三天
需要量 25 15 30
生产单价 20 30 32
保管单价 5 l0 0
生产计划的安排可以有许多方案,如下面的三种:
第一天 第二天 第三天 总的费用
25 15 30 25*2O+15*30+30*32=1910
40 0 30 40*20+15*5+30*32=1835
70 0 0 70*20+45*5+30*10=1925
程序说明:
b[n]:存放每天的需求量
c[n]:每天生产零件的单价
d[n]:每天保管零件的单价
e[n]:生产计划
程序:
Program exp5;
Var
i,j,n,yu,j0,j1,s:integer;
b,c,d,e: array[0..30]of integer; begin
readln(n);
for i:=1 to n do readln(b[[i],c[I],d[i]];
fori:=1 to n do e[i]:=0;
① :=10000;c[n+2]:=0;b[n+1]:=0;jO:=1;
while (jO<=n)do
begin
yu:=c[j0]; j1:=jO; s:=b[j0];
while ② do
begin
③ j1:=j1+1;s:=s+b[j1];
end;
④ jO:=j1+1;
end;
for i:=1 to n do ⑤
readln;
end.
2、 35
三、 读程序写结果
1、7 8 9 10 1 2 3 4 5 6
2、RRRRWWBBBB
3、1065
2051
四、 补充程序
题一:
1、 S[I]:=0;
2、 S[b[I]]:=s[bi]]+a[I];
3、 I+1 to k do
4、 (cmin> sum )
5、 (bj)=k)
6、 b[I]:=1;
题二:
1、 c[n+1]
2、 (yu+d[j1]<c[j1+1])
3、 yu:=yu+d[j1];
4、 e[j0]:=s;
5、 write(e[I]:4);
2003的:
第九届分区联赛普及组初赛试题
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分,共30分)
1.下列计算机设备中,既是输入设备,又是输出设备的是( )。
A)键盘 B)触摸屏 C)扫描仪 D)投影仪 E)数字化仪
2.下列分辨率的显示器所显示出的图像,最清晰的是( )。
A)800*600 B)1024*768 C)640*480 D)1280*1024 E)800*1000
3.下列说法中,正确的是( )。
A)在内存中,可执行程序用二进制码表示,源程序用八进制表示。
B)程序和数据在内存中都是用二进制码表示的。
C)内存中数据的存取是以二进制位为单位的。
D)中央处理器CPU执行的每条指令的长度都不同。
E)一般来说,在计算机内部,中文信息用十六进制表示,英文信息用八进制表示。
4.下列说法中,错误的是( )。
A)程序是指令的序列,它有三种结构:顺序、分支和循环。
B)地址总线决定了中央处理器CPU所能访问的最大内存空间的大小。
C)中央处理器CPU内部有寄存器组,用来存储数据。
D)不同厂家生产的CPU所能处理的指令集不一定相同。
E)数据传输过程中不可能会出错。
5.CPU访问内存的速度比访问下列哪个存储设备要慢( )。
A)寄存器 B)硬盘 C)软盘 D)磁带 E)光盘
6.下列电子邮件地址,正确的是( )。
A)wang@hotmail.com B)cai@jcc.pc.tool@rf.edu.jp
C)162.105.111.22 D)ccf.edu.cn
E)http://www.sina.com
7.数字图像文件可以用下列哪个软件来编辑( )。
A)画笔(Paintbrush) B)记事簿(Notepad) C)Recorder
D)WinRAR E)MidiSoft
8.下列哪个软件不是操作系统软件的名字( )。
A)Windows XP B)DOS C)Linux D)OS/2 E)Arch/Info
9.下列哪个不是个人计算机的硬件组成部分( )。
A)主板 B)操作系统 C)电源 D)硬盘 E)软驱
10.图灵(Alan Turing)是( )。
A)美国人 B)英国人 C)德国人 D)匈牙利人 E)法国人
11.第一个给计算机写程序的人是( )。
A)Alan Mathison Turing
B)Ada Lovelace
C)John von Neumann
D)John McCarthy
E)Edsger Wybe Dijkstra
12.十进制数2003等值于二进制数( )。
A)11111010011 B)10000011 C)110000111 D)010000011l E)1111010011
13.运算式(2008)10-(3723)8的结果是( )。
A) (-1715)10 B) (5)10 C) (-5)16 D) (111)2 E) (3263)8
14.下列关于程序语言的叙述,不正确的是( )。
A)编写机器代码不比编写汇编代码容易。
B)高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行。
C)同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序。
D)汇编代码可被CPU直接运行。
E)不同的高级语言语法略有不同。
15.假设A=true,B=false,C=true,D=true,逻辑运算表达式A∧B∨C∧D的值是( )。
A)true B)false C)0 D)1 E)NULL
16.一个高度为h的二叉树最小元素数目是( )。
A)2h+l B)h C)2h-1 D)2h E)2h-l
17.已知队列(13,2,11,34,41,77,5,7,18,26,15),第一个进入队列的元素是13,则第五个出队列的元素是( )。
A)5 B)41 C)77 D)13 E)18
18.下列关于文件的叙述,不正确的是( )。
A)一个可执行程序其实也是一个文件。
B)文件可大可小,大的文件一张软盘装不下。
C)一个文件夹下面可以有两个同名的文件,只要它们的大小不同就行了。
D)文件的创建日期和最新修改日期可以在资源管理器中看到。
E)某些文件的内容可以用记事本(Notepad)看到。
19.活动硬盘的容量比固定硬盘的容量( )。
A)大 B)小 C)相等 D)不一定大 E)大致相等
20.IP地址是一个( )位二进制码。
A)8 B)16 C)32 D)64 E)12
二.问题求解(每题5分,共10分)
1.现在市场上有一款汽车A很热销,售价是2万美元。汽车A每加仑汽油可以行驶20英里。普通汽车每年大约行驶12000英里。油价是每加仑1美元。不久我公司就要推出新款节油汽车B,汽车B每加仑汽油可以行驶30英里。现在我们要为B制定价格(它的价格略高于A):我们预计如果用户能够在两年内通过节省油钱把B高出A的价钱弥补回来,则他们就会购买B,否则就不会购买B。那么B的最高价格应为 万美元。
2.无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少有 个顶点。
三.阅读程序(每题8分,共32分)
1.program Programl;
var
a,x,y,okl,ok2:integer;
begin
a :=100:
x:=l0;
y:=20;
okl:=5:
ok2:=0;
if ((x>y) or ((y<>20) and (okl=0)) and (ok2<>0)) then
a:=1
else if ((okl<>0) and (ok2=、0)) then
a:=-1
else
a:=0;
writeln(a);
end.
输出:
2.program Program2;
var
a,t:string;
i,j:integer;
begin
a:=`morning`;
j:= l;
for i:=2 to 7 do
if (a[j]<a[i])then
j:= i;
j:= j-1;
for i:=1 to j do
write (a[i]);
end.
输出:
3.program Program3;
Var
a,b,c,d,sum:longint;
begin
read (a,b,c,d);
a:=a mod 23:
b:=b mod 28;
c:=c mod 33;
sum:=a*5544+b* 14421+c*1288-d;
sum:=sum+21252;
sum:=sum mod 21252;
if (sum=0)then
sum:=21252;
writeln(sum);
end.
输入:283 102 23 320 输出:
4.program program4;
var
a: array[0..5] of integer;
sum,n,max,i,j,k:integer;
cover:array[0..22000]of boolean;
begin
read (a[5],a[4],a[3],a[2],a[1],a[0]);
if ((a[5]=0) and (a[3]=0) and (a[1]=0)) then
begin
a[5]:=a[4];a[4]:=a[2]; a[3]:=a[0]; a[2]:=0 a[0]:=0;
end:
for i:=0 to 5 do
if (a[i]>10) then a[i]:=10+(a[i] mod 2);
sum:=0:
for i:=0 to 5 do sum:=sum+a[i]*(6-i);
if ((sum mod 2) <>0) then begin
writeln(`Can``t be divided.`);
Exit;
End;
sum:=sum div 2; max:=0; cover[0]:=True;
for i:=1 to sum*2 do cover[i]:=False;
for i:=0 to 5 do
begin
j:=0;
while (j<a[i])do
begin
for k:=max downto 0 do
begin if (cover[k]) then cover[k+6-i]:=True;end;
max:=max+6-i: j:=j+1;
end;
end;
if (cover[sum]) then writeln (`Can be divided.`)
else writeln(`can``t be divided.`);
end.
输入:4 7 9 20 56 48 输入:1000 7 101 20 55 1 输入:2000 5 l 1 0 0
输出: 输出: 输出:
四、完善程序(第l空2分,其余每空3分共28分)
1.一元二次方程
题目描述:
方程ax^2+bx+c=0,要求给出它的实数解.
输 入:
三个实数:a,b,c,是方程的三个系数(a≠0).
输 出:
如果无实数解,则输出"No solution";
如果有两个相等的实数解,则输出其中一个,四舍五入到小数点后面3位;
如果有两个不等的实数解,则解与解之间用逗号隔开,同样要四舍五入到小数点后3位。
输入样例:
l 2 1
输出样例:
-1.000
程 序:
program Program41;
var
a,b,c,m:real;
begin
read (a,b,c);
m:=b*b -4*a*c;
if ( ① )then
begin
write ( ② :0:3);
write( ` , ` );
write ((-1*b-sqrt(m))/(2*a):0: ③ );
end
else if ( ④ )then
write( ⑤ )
else begin
write (`No solution`);
end
end.
2.翻硬币
题目描述:
一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。再取3枚,取4枚……直至m枚。然后再从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。例如,m为1时,翻两次即可。m为2时,翻3次即可;m为3时,翻9次即可;m为4时,翻11次即可;m为5时,翻24次即可;…;m为30时,翻899次即可;…
输 入:
仅有的一个数字是这摞硬币的枚数m,0<m<1000。
输 出:
为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。
输入样例:
30
输出样例:
899
程 序:
program Programl;
var m:integer;
function solve (m:integer):integer;
vat i,t,d:integer;
flag:boolean;
begin
if (m=1)then
so1ve:= ①
else begin
d:=2*m+1;
t:= 2;
i:= 1;
flag:=False;
repeat
if (t=1)then
begin
solve:= ②
flag:=True;
end
else if ( ③ )then
begin
solve:=i*m-1;
flag:=True;
end
else
t:= ④ ;
i:=i+1;
until flag;
end
end;
begin
read (m);
if ((m>0) and (m<1000)) then
writeln ( ⑤ );
end.
答案:
第九届分区普及组初赛参考答案
一、 选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分,多选无分,共30分)
题号 1 2 3 4 5 6 7 8 9 10
选择 B D B E A A A E B B
题号 11 12 13 14 15 16 17 18 19 20
选择 B A B D A B B C D C
二.问题解答(每题5分,共10分)
1.答: 2.04
2.答: 11
三.阅读程序,并写出程序的正确运行结果: (每题8分,共32分)
(1)程序的运行结果是:-1
(2)程序的运行结果是;mo
(3)程序的运行结果是:8910
(4)程序的运行结果是:Can't be divided Can be divided Can't be divided
四.根据题意,将程序补充完整(第1空2分,其余每空3分 共28分)
PASCAL语言
=================
题一
① m>0
② (-l*b+sqrt(m))/(2*a);
③ 3
④ ABS(M)<0.0001
⑤ -1*b/(2*a):0:3
题二
① 2
② i*m
③ t=2*m
④ (t*2)mod d
⑤ solve(m) 参考技术A 第八届全国青少年信息学奥林匹克联赛(NOIP2002)试题
(普及组PASCAL语言二小时完成)
全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效
一.选择一个正确答案代码(A/B/C/D,填入每题的括号内(每题1.5分,多选无分,共30分)
1)微型计算机的问世是由于( ) 的出现。
A) 中小规模集成电路 B) 晶体管电路 C) (超)大规模集成电路 D) 电子管电路
2)下列说法中正确的是( ) 。
A) 计算机体积越大,其功能就越强
B) CPU的主频越高,其运行速度越快
C) 两个显示器屏幕大小相同,则它们的分辨率必定相同
D)点阵打印机的针数越多,则能打印的汉字字体越多
3)Windows98中,通过查找命令查找文件时,若输入F*.? , 则下列文件( ) 可以被查到。
A) F.BAS B) FABC.BAS C) F.C D) EF.
4)CPU处理数据的基本单位是字,一个字的字长( ) 。
A) 为8个二进制位 B) 为16个二进制位
C) 为32个二进制位 D) 与芯片的型号有关
5)资源管理器的目录前图标中增加"+"号,这个符号的意思是( ) 。
A) 该目录下的子目录已经展开 B) 该目录下还有子目录未展开
C) 该目录下没有子目录 D) 该目录为空目录,
6)下列哪一种程序设计语言是解释执行的( ) 。
A) Pascal B) GWBASIC C) C++ D) FORTRAN
7)启动WORD的不正确方法是( ) 。
A) 单击Office工具栏上的Word图标
B) 单击"开始"→"程序"→Word
C) 单击"开始"→"运行",并输入Word按回车
D) 双击桌面上的"Word快捷图标"
8)多媒体计算机是指( ) 计算机。
A) 专供家庭使用的 B) 装有CDROM的
C) 连接在网络上的高级 D) 具有处理文字、图形、声音、影像等信息的
9)在树型目录结构中,不允许两个文件名相同主要是指( ) 。
A) 同一个磁盘的不同目录下 B) 不同磁盘的同一个目录下
C) 不同磁盘的不同目录下、 D) 同一个磁盘的同一个目录下
10)用画笔(Paintbrush)绘制图形并存储在文件中,该图形文件的文件名缺省的后缀为( ) 。
A) .jpg B) .bmp C) .gif D).tiff
t11)E-ml地址中用户名和邮件所在服务器名之间的分隔符号是( ) 。
E A) # B) @ C) & D) $
12)(0.5)10=( ) 16.
A) 0.1 B) 0.75 C) 0.8 D) 0.25
13)IP v4地址是由( ) 位二进制数码表示的。
A) 16 B) 32 c) 24 D) 8
14)算式(2047)10一(3FF)16+(2000)8的结果是( ) 。
A) (2048)10 B) (2049)10 C) (3746)8 D) (1AF7)16
15)下列叙述中,错误的是( )
A) Excel中编辑的表格可以在Word中使用
B) 用Word编辑的文本可以存成纯文本文件
C) 用记事本(Notepa D) 编辑文本时可以插入图片
D) 用画笔(Paintbrush)绘图时可以输入文字
16)一个向量第一个元素的存储地址是100,每个元素的长度是2,则第5个元素的地址是( )
A) 110 B) 108 C) 100 D) 109
17)在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( ) 。
A) 希尔排序 B) 起泡排序 C) 插入排序 D) 选择排序
18)在计算机网络中,Modem的功能是( )
A) 将模拟信号转换为数字信号 B) 将数字信号转换为模拟信号
C) 实现模拟信号与数字信号的相互转换 D) 实现将模拟信号的数字信号
19)设有一个含有13个元素的Hash表(O~12),Hash函数是:H(key)=key % 13,其中%是求余数运算。用线性探查法解决冲突,则对于序列(2、8、31、20、19、18、53、27),18应放在第几号格中( ) 。
A) 5 B) 9 C) 4 D) 0
20)要使1…8号格子的访问顺序为:82、63、73、1、4,则下图中的空格中应填人( ) 。
1 2 3 4 5 6 7 8
4 6 1 -1 7 3 2
A) 6 B) O C) 5 D) 3
二.问题求解:
1. 如下图,有一个无穷大的的栈S,在栈的右边排列着1,2,3,4,5共五个车厢。其中每个车厢可以向左行走,也可以进入栈S让后面的车厢通过。现已知第一个到达出口的是3号车厢,请写出所有可能的到达出口的车厢排列总数(不必给出每种排列)。
出口← ← 1 2 3 4 5
S↓
2.将N个红球和M个黄球排成一行。例如:N=2,M=3可得到以下6种排法:
红红黄黄黄 红黄红黄黄 红黄黄红黄 黄红红黄黄 黄红黄红黄 黄黄黄红红
问题:当N=4,M=3时有多少种不同排法?(不用列出每种排法)
三.阅读程序:
program exp1;
var i,j,k,n,,L0,L1,LK:Integer;
a :array [0..20] of integer;
begin
readln(n,k);
for i:=0 to n-1 do a[i]:=i+1;
a[n]:=a[n-1];L0:=n-1; Lk:=n-1;
for I:=1 to n-1 do
begin
L1:=L0-k; if (l1<0) then L1:=L1+n;
If (l1=Lk) then begin
A[L0]:=a[n]; Lk:=Lk-1; a[n]:=a[Lk]; l0:=lk
End;
Else
Begin
A[l0]:=a[l1];l0:=l1;
End;
End;
A[L0]:=a[n];
For I:=0 to n-1 do write(a[I]:40;
Writeln;
End.
输入:10 4
输出:
2)program exp2;
var n,jr,jw,jb:integer;
ch1:char;
ch:array[1..20]d char;
begin
readln(n);
for i:=1 to n do read(ch[i]):
jr:=1;jwz=n;jb:=n;:
while (jr<=jw)do
begin
if(ch[jw]='R')
then begin
ch1:=Ch[jr];Ch[jr]:=ch[jw];ch[jw]:=ch1:jr:=jr+13
end
else if ch[jw]='W'
then jw:=jw-1
else begin
ch1:=ch[jw];ch[jw]:=ch[jb];ch[jb]:=ch1;jw:=jw-1;jb:=jb-1;
end
end;
for i:=1 to n do write(ch[i]);
writeln;
end.
输入:10
RBRBWWRBBR
输出:
3)Pmgram exp3;
Var I,j,p,n,q,s:integer;
a :array[1..20]of integer;
begin
readln(p,n,q);j :=21;
while (n>0)do
begin
j:=j-1;a[j]:=n mod 10;n:=n div 10;
end;
s:=0;
for i:=j t0 20 do s:=s*p+a[i];
writeln(s);j :=21;
while (s>O)do
begin j:=j-1;a[j]:=s mod q;s:=s div q;end;
for i:=j to 20 do write(a[i]);readln;
end.
输入:7 3051 8
输出:
四.完善程序:
1.问题描述:将n个整数分成k组(k≤n,要求每组不能为空),显然这k个部分均可得到一个各自的和s1,s2,……sk,定义整数P为:
P=(S1-S2)2+(S1一S3)2+……+(S1-Sk)2+(s2-s3)2+……+(Sk-1-Sk)2
问题求解:求出一种分法,使P为最小(若有多种方案仅记一种〉
程序说明:
数组:a[1],a[2],...A[N]存放原数
s[1],s[2],...,s[K]存放每个部分的和
b[1],b[2],...,b[N]穷举用临时空间
d[1],d[2],...,d[N]存放最佳方案
程序:
program exp4;
Var i,j,n,k : integer;
a :array [1..100] of integer;
b,d:array [0..100] of integer;
s :array[1..30] of integer;
begin
readln(n,k);
for I:=1 to n do read(a[I]);
for I:=0 to n do b[I]:=1;
cmin:=1000000;
while (b[0]=1) do
begin
for I:=1 to k do ①
for I:=1 to n do
②
sum:=0;
for I:=1 to k-1 do
for j:= ③
sum:=sum+(s[I]-s[j])*(s[I]-s[j]);
if ④ then
begin
cmin:=sum;
for I:=1 to n do d[I]:=b[I];
end;
j:=n;
while ⑤ do j:=j-1;
b[j]:=b[j]+1;
for I:=j+1 to n do ⑥
end;
writeln(cmin);
for I:=1 to n do write(d[I]:40);
writeln;
end.
2. 问题描述:工厂在每天的生产中,需要一定数量的零件,同时也可以知道每天生产一个零件的生产单价。在N天的生产中,当天生产的零件可以满足当天的需要,若当天用不完,可以放到下一天去使用,但要收取每个零件的保管费,不同的天收取的费用也不相同。
问题求解:求得一个N天的生产计划(即N天中每天应生产零件个数),使总的费用最少。
输入:N(天数N<=29)
每天的需求量(N个整数)
每天生产零件的单价(N个整数)
每天保管零件的单价(N个整数)
输出:每天的生产零件个数(N个整数)
例如:当N=3时,其需要量与费用如下:
第一天 第二天 第三天
需要量 25 15 30
生产单价 20 30 32
保管单价 5 l0 0
生产计划的安排可以有许多方案,如下面的三种:
第一天 第二天 第三天 总的费用
25 15 30 25*2O+15*30+30*32=1910
40 0 30 40*20+15*5+30*32=1835
70 0 0 70*20+45*5+30*10=1925
程序说明:
b[n]:存放每天的需求量
c[n]:每天生产零件的单价
d[n]:每天保管零件的单价
e[n]:生产计划
程序:
Program exp5;
Var
i,j,n,yu,j0,j1,s:integer;
b,c,d,e: array[0..30]of integer; begin
readln(n);
for i:=1 to n do readln(b[[i],c[I],d[i]];
fori:=1 to n do e[i]:=0;
① :=10000;c[n+2]:=0;b[n+1]:=0;jO:=1;
while (jO<=n)do
begin
yu:=c[j0]; j1:=jO; s:=b[j0];
while ② do
begin
③ j1:=j1+1;s:=s+b[j1];
end;
④ jO:=j1+1;
end;
for i:=1 to n do ⑤
readln;
end. 参考技术B 1、从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。
例如:输入:89 13
输出格式:
89
* 13
_________
267
89
_________
1157
又如:输入:16 8
输出格式:
16
* 8
_________
128
2、解数字迷: A B C A B
× A
______________________
D D D D D D
3、键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。
4、从键盘输入一长度不超过40的字符串,按要求进行删除、插入或替换操作。
例如:‘This is a book.’现对该字符串进行编辑,编辑功能有:
D:删除一个字符,命令的方式为:
D a 其中a为被删除的字符
例如:D s 表示删除字符为’s’,若字符串中有多个’s’,则删除第一次出现的。如上例中删除的结果为:‘Thi is a book.’
I:插入一个字符,命令的格式为:
I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。
例如:I s d 表示在指定字符’s’ 的前面插入字符’d’,若原串中有多个 ‘s’,则插入在最后一个字符的前面,如上例中:
原串:‘This is a book.’
插入后:‘This ids a book.’
R:替换一个字符,命令格式为:
R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。例如:
原串:‘This is a book.’
输入命令:R o e
替换后的字符串为:‘This is a beek.’
在编辑过程中,若出现被改的字符不存在时,则给出提示信息:there is no 字符 in the string.
谁能给我解释一下这个 IOCP 图?
【中文标题】谁能给我解释一下这个 IOCP 图?【英文标题】:Can anyone explain to me this IOCP diagram? 【发布时间】:2015-02-23 15:46:34 【问题描述】:在“WinSock Programming Fundamental: A Compilation”一书中,IOCP有这张图:
我了解完成通知到达完成端口,并且四个排队的线程调用GetQueuedCompletionStatus()
以获取完成数据包。但是完成端口下面显示的另外两个工作线程是做什么的,是不是这些线程也调用了GetQueuedCompletionStatus()
,但是他们已经收到了一个完成包,现在正在处理它?
【问题讨论】:
我相信是的,是的。 “活动”线程正在处理缓冲区等,而“非活动”线程仍停留在 GetQueuedCompletionStatus() 上,等待某事做,或者由于 IOCP 的一个特性对运行线程的总体上限而被挂起。跨度> 题外话:C++部分的整个首页(50+题)是SSL、IOCP和Sockets..这是什么?地球上的每个人都在同时使用高性能插座吗?哈哈。 :O 看起来很酷。 我刚刚快速浏览了您提到的那本书。就我个人而言,我会得到有关该主题的适当文本,Microsoft Windows 的网络编程仍然是了解它如何工作的最佳选择,即使它有点过时了。了解 IOCP 的运作方式后,您可以使用 MSDN 和在线资源更新您的知识。 【参考方案1】:正如马丁詹姆斯在评论中所说的那样; Queued Threads 和 Worker Threads 都是调用GetQueuedCompletionStatus()
的线程。指定为工作线程的线程已完成处理并正在执行此操作。指定为 Queued Threads 的线程正在等待更多的完成,或者由于创建它的并发值而被 IOCP 阻塞。如果是后者,那么他们将等待其中一个工作线程阻塞 IOCP API 知道的 API。如果一个工作线程完成了对当前完成的处理,那么它将进入非活动线程队列的前面(从而允许 IOCP 提供其 LIFO 功能,使活动线程保持运行,从而有助于减少上下文切换和内存错误)。
【讨论】:
以上是关于有谁能给我今年的NOIP分区联赛的题目?的主要内容,如果未能解决你的问题,请参考以下文章
有谁能给我做个京东商城右侧的那种选项卡切换的Javascript效果~