18noip普及模拟卷(重传)原创率高
一:单项选择1.5%*20=30%
1.(11100011)2+(9A)16=()10
A:351 B:379 C:380 D:381 2.堆排序根据的数据结构为:
A:队列B:二叉树C:有向图D:堆栈
3.以下文字体现了--算法:
计算:214
解:原式=(27)2
=((23)2*2)2
=(((2)2*2)2*2)2
=16384
A:二分B:递推C:广搜D:递推
4.以下语句为定义头文件的是:
A:#include
B:#define fin cin
C:using namespace std;
D:int a[100],i;
5.计算!((0)&&((1%3)||(1*2*3*4*5*6*7*8*9*0))||(3))=
A:0 B:1C:2 D:-1
6.计算机的第三代为:
A:大规模集成电路B:晶体管C:电子管D:集成电路
7.以下程序段出现编译错误,请指出编译错误的行:
int i,j=0;……A
cin>>j;……B
for (i=1;i<=sqrt(j);i++)……C
cout<
8.4EB=
A:1024KB B:1024*4MB C:4*10242TB D:4*10003GB
9.对于一个空栈,所有入栈操作均以字母表顺序进行。操作为:进进出进出出进进进进出。试问下一个出栈字母为:
A:D B:F C:H D:I
https://www.360docs.net/doc/7e9322791.html,f noip系列比赛有三个数值:初赛成绩,复赛成绩和总分。
将初赛、复赛成绩转化为总分时有一个比例,这个比例是:
A:1:1 B:0:1 C:3:7 D:4:6
11.计算机应用的最早领域是()
A. 数值计算
B. 人工智能
C. 机器人
D. 过程控制
12.表达式a*(b+c)*d的后缀形式是()
A. abcd*+*
B. abc+*d*
C. a*bc+*d
D. b+c*a*d
13.冒泡排序的最坏时间复杂度为:
A:O(nlogn) B:O(n) C:O(n2) D:O(logn)
14.若串S=“copyright”,其子串的个数是()
A. 72
B. 45
C. 46
D. 36
15.换行符的ASCII码为:
A:1 B:9 C:10 D:32
16.c++中等效于repeat……until ……的是:
A:for(i=1;i<=……;i++)B:switch ( ) {case ^ :……;……}
C:while (……)……D:do{…………} while ……
17.以下语言面向过程的是:
A:pascal B:汇编语言C:机器语言D:c++
18.以下定义文件正确的是:
A:freopen(”1.in”,’r’,cstin);
B:freopen(’1.in’,’r’,stdin);
C:freopen(“1.in”,”r”,cstin);
D:freopen(“1.in”,”r”,stdin);
19.以下语句不能计算a+b的是:
A:c=a+b B:c+=a+b;C:for (i=1;ib)c=a+b;else c=b+a;
20.以下c++版本不支持万能头文件的是:
A:Dev c++5.6.1 B:dev c++ 5.9.2 C:dev c++ 6.1.0 D:dev c++ 4.9.9.2 二:问题求解5%*2=10%
1.0,1,1,2,3,5,8所属的数列的第18项与第19项之和为----------4181
2.等差数列10 13 16 19 22 25 28 ……310之和为16160
三:读程序写结果8%*4=32%
1.
#include
using namespace std;
int main()
{
int a=1,b=2;
int c=a*b;
int d=a*c+b*b;
a=a+d+c*2;
b=a*(a+b);
double e;
e=(double)b+2;
if (b%3==0)
printf("%0.2f",e); else cout<}
输出11
2.
#include using namespace std; int a,i,n1,n2,n3,x;
int zs(int x)
{
for (i=2;i<=sqrt(x);i++) if (x%i==0) return 1; return 0;
}
int main()
{
cin>>a;
for (n1=2;n1<=a-4;n1++)
for (n2=2;n2<=a-4;n2++)
{
n3=a-n1-n2;
if (zs(n1)+zs(n2)+zs(n3)!=0)
continue;
cout<return 0;
}
}
输入2009 输出3 3 2003
3.
#include
#include
#include
#include
using namespace std;
long long num,a[1001],p,m,n,len,i,ans[2001];
string s;
int main()
{
cin>>n>>s>>m;
len=s.length();
for (i=1; i<=len; i++)
if (isalpha(s[i-1])) a[i]=s[i-1]-55;
else if (isdigit(s[i-1])) a[i]=s[i-1]-48; for (i=len,p=1; i>=1; i--,p*=n)
num+=a[i]*p;
for (len=1;num>0;num/=m,len++) ans[len]=num%m;
for (i=len-1;i>=1;i--)
if (ans[i]>=10) printf("%c",ans[i]+55); else printf("%c",ans[i]+48);
return 0;
}
输入:16
FF
2
输出11111111
4. #include
using namespacestd;
int main() {
string ch;
int a[200];
int b[200];
int n, i, t, res;
cin >> ch;
n = ch.length();
for (i = 0; i < 200; i++)
b[i] = 0;
for (i = 1; i <= n; i++) {
a[i] = ch[i - 1] - '0';
b[i] = b[i - 1] + a[i];
}
res = b[n];
t = 0;
for (i = n; i > 0; i--) {
if (a[i] == 0)
t++;
if (b[i - 1] + t < res)
res = b[i - 1] + t;
}
cout << res << endl;
return 0;
}
输入 1001101011001101101011110001 输出11
四:完善程序共28%
1.圆周率
我们知道,当下较为认可的圆周率π计算公式为
π/4=1-1/3+1/5-1/7+1/9-……
现根据此公式编辑c++程序,要求计算的圆周率准确度随输入n增加而增大。试完善程序。3%+3%+3%+3%+2%
#include
using namespace std;
int main()
{
int i,n;
double pi=0,a=1,b=1;
cin>>n;
for (i=1;i<=n;i++)
{
if (⑴b>0) pi+=1/a;
else pi-=1/a;
⑵a+=2;
⑶b=-b;
}
printf("%e",⑷4*pi);
return 0;
}
其中控制1/x的加减的变量为⑸b,当此变量为正时加,负时减。
2.(排列数)输入两个正整数n,m(1输入:3 2
输出:1 2
1 3
2 1
2 3
3 1
3 2
#include
#include
using namespace std;
const int SIZE =25;
bool used[SIZE];
int data[SIZE];
int n,m,i,j,k;
bool flag;
int main()
{
cin>>n>>m;
memset(used,false,sizeof(used));
for(i=1;i<=m;i++)
{
data[i]=i;
used[i]=true;
}
flag=true;
while(flag)
{
for(i=1;i<=m-1;i++) cout<cout<flag=①false;
for(i=m;i>=1;i--)
{
②used[data[i]]=false;
for(j=data[i]+1;j<=n;j++)
if(!used[j])
{
used[j]=true;
data[i]=③j;
flag=true;
break;
}
if(flag)
GB6017.1-20起重机械安全规程-第1部分{
for(k=i+1;k<=m;k++)
for(j=1;j<=④n;j++)
if(!used[j])
{
data[k]=j;
used[j]=true;
break;
}
⑤break;
}
}
}
return 0;
}
4%+4%+2%+1%+3%
班前教育记录