爱迪国际C++章节测试-数及其运算

*
您的姓名:
*
1.
单选题
浮点数2E+03表示( ).
A. 2.03
B. 2.03
C. 8
D. 2000
*
2.
选题
前缀表达式+3∗2+5 12的值是( )。
A. 23
B. 25
C. 37
D. 65
*
3.
选题
一个字长为8位的整数的补码是11111001,则它的原码是( ).
A. 00000111
B. 01111001
C. 11111001
D. 10000111
*
4.
填空题
LZW编码是一种自适应词典编码。在编码的过程中,开始时只有一部基础构造元素的编码词典,如果在编码的过程中遇到一个新的词条,则该词条及一个新的编码会被追加到词典中,并用于后继信息的编码。
举例说明,考虑一个待编码的信息串:"xyx yy yy xyx"。初始词典只有3个条目,第一个为x,编码为;第二个为y,编码为2;第三个为空格,编码为3;于是串"xyx"的编码为1-2-1(其中-为编码分隔符),加上后面的一个空格就是1-2-1-3。但由于有了一个空格,我们就知道前面的"xyx"是一个单词,而由于该单词没有在词典中,我们就可以自适应的把这个词条添加到词典里,编码为4,然后按照新的词典对后继信息进行编码,以此类推。于是,最后得到编码:1-2-1-3-2-2-3-5-3-4。
现在已知初始词典的3个条目如上述,则信息串"yyxy xx yyxy xyx xx xyx"的编码是_________。
*
5.
填空题
阅读程序写结果:
#include <iostream>
#include <string>
using namespace std;

int main()
{
string s;
char m1, m2;
int i;

getline(cin, s);
m1 = ' ';
m2 = ' ';
for (i = 0; i < s.length(); i++)
if (s[i] > m1) {
m2 = m1;
m1 = s[i];
}
else if (s[i] > m2)
m2 = s[i];
cout<<int(m1)<<' '<<int(m2)<<endl;
return 0;

输入:Expo 2010 Shanghai China
输出:_________
提示:

*
6.
选题
字符’0’的ASCII码为48,则字符’9’的ASCII码为( )。
A. 39
B. 57
C. 120
D. 视具体的计算机而定
*
7.
选题
现有一段文言文,要通过二进制哈夫曼编码进行压缩。简单起见,假设这段文言文只由4个汉字“之”、“乎”、“者”、“也”组成,它们出现的次数分别为700、600、300、400。那么,“也”字的编码长度可能是( ).
A. 1
B. 2
C. 3
D. 4
*
8.
填空题
阅读程序写结果
#include<iostream>
#include<string>
using namespace std;

int main()
{
string map= "2223334445556667778889999";
string tel;
int i;
cin>>tel;
for(i=0;i<tel.length();i++)
if((tel[i]>='0') && (tel[i]<='9') )
cout<<tel[i];
else if( (tel[i]>='A') && (tel[i]<='Z'))
cout<<map[tel[i]-'A'];
cout<<endl;
return 0;
}
输入:CCF-NOIP-2011
输出:______________
*
9.
填空题
某系统自称使用了一种防窃听的方式验证用户密码。密码是n个数S1,S2,⋯,Sn,均为 0或 1。该系统每次随机生成n个数a1,a2,⋯,an,均为 0或1,请用户回答(s1a1+s2a2+⋯+snan)除以 2 的余数。如果多次的回答总是正确,即认为掌握密码。该系统认为,即使问答的过程被泄露,也无助于破解密码——因为用户并没有直接发送密码。然而,事与愿违。例如,当n=4
n=4 时,有人窃听了以下5 次问答:

就破解出了密码s1 =___ ,s2 = ___,s3 =___ ,s4 =___。
答案格式为:( )(纯数字用连接)
*
10.
填空题
阅读程序写结果:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string st;
int i, len;
getline( cin, st );
len = st.size();
for ( i = 0; i < len; i++ )
if ( st[i] >= 'a' && st[i] <= 'z' )
st[i] = st[i] - 'a' + 'A';
cout << st << endl;
return 0;
}
输入:Hello, my name is Lostmonkey.
输出:________________________________
*
11.
选题
在 8 位二进制补码中,10101011 表示的数是十进制下的( ).
A. 43
B. -85
C. -43
D. -84
*
12.
选题
表达式a∗(b+c)∗d 的后缀形式是( ).
A. a b c d ∗ + ∗
B. a b c + ∗ d ∗
C. a ∗ b c + ∗ d
D. b + c ∗ a ∗ d
*
13.
填空题
阅读程序写结果:
#include <stdio.h>
char st[100];

int main() {
scanf("%s", st);
for (int i = 0; st[i]; ++i) {
if (‘A’ <= st[i] && st[i] <= ‘Z’)
st[i] += 1;
}
printf("%s\n", st);
return 0;
}
输入:QuanGuoLianSai
输出:_____________
*
14.
选题
表达式a*(b+c)*d的后缀表达式为( ),其中“*”和“+”是运算符。
A.**a+bcd
B.abc+*d*
C.abc+d**
D.*a*+bcd
*
15.
单选题
表达式 a+(b-c)*d 的前缀表达式为( ),其中+、-、*是运算符。
A、*+a-bcd
B、+a*-bcd
C、abc-d*+
D、abc-+d
*
16.
单选题
假设字母表 {a, b, c, d, e} 在字符串出现的频率分别为 10%, 15%, 30%, 16%, 29%。若使用哈夫曼编码方式对字母进行不定长的二进制编码,字母 d 的编码长度为( )位。
A、1
B、2
C、2或3
D、3
*
17.
选题
在数据压缩编码中的哈夫曼编码方法,在本质是一种( )的策略。
A.枚举
B.贪心
C.递归
D.动态规划
*
18.
选题
后缀表达式 “ 6 2 3 + - 3 8 2 / + * 2 ^ 3 + ” 对应的中缀表达式是
A、((6-(2+3))*(3+8/2))^2+3
B、6-2+3*3+8/2^2+3
C、(6-(2+3))*((3+8/2)^2)+3
D、6-((2+3)*(3+8/2))^2+3
问卷星提供技术支持
举报