【计算机类职业资格】国家二级C++机试(基本控制结构、数组、指针与引用)模拟试卷5及答案解析.doc
《【计算机类职业资格】国家二级C++机试(基本控制结构、数组、指针与引用)模拟试卷5及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C++机试(基本控制结构、数组、指针与引用)模拟试卷5及答案解析.doc(12页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(基本控制结构、数组、指针与引用)模拟试卷5 及答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:34,分数:68.00)1.有如下程序: #inc1udeiostream using namespace std; int main() char str100,*p; cout“Please input a string:“; cin;str; p=str; for(int i=0; *p!=0; p+,i+); cout“i“end1; retum 0; 运行这个程序时,若输入字符串为: abcdefg abcd 则输出结果是( )。(分数:2.00)A
2、.7B.12C.13D.1002.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1 else语句 2 关于上面的语法格式,下列表述中错误的是( )。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0)B.语句部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()3.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是( )。(分数:2.00)A.if(x=0)y=1;els
3、e y=2;B.if(x=0)theny=l else y=2;C.if (x=0)y=1 else y=2;D.if(x=0)y=1;else y=2;4.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是( )。(分数:2.00)A.if(a=b)n=0;B.if(ab)|(bc)n=1; else n=0;C.if(ab)if(bc)n=1; else n=0; else n=0,D.if(ab)n=1;else if(b=c)n=i; else if(bc)n=1; else n=0;5.有如下程序 #inc1udeiostream using namespace
4、 std; int main() char a; cina; if(a=*)cout“*“end1, eLse cout“#“end1; retum 0; 输入字符+时,程序的运行结果是( )。(分数:2.00)A.*B.#C.*#D.无输出6.执行语句序列 int i=0; while(i25)i+=3; couti; 输出结果是( )。(分数:2.00)A.24B.25C.27D.287.有如下程序: int x=3; do x=2; coutx, while(!(x); 执行这个程序的输出结果是( )。(分数:2.00)A.1B.30C.12D.死循环8.执行下列语句段后,输出字符“*”
5、的个数是( )。 for(int i=50;i1:i)cout*;(分数:2.00)A.48B.49C.50D.519.执行下列语句段后,输出字符“*”的个数是( )。 for (int i=50; 11;I 一=2)cout*;(分数:2.00)A.24B.25C.26D.5010.有如下程序: #inc1udeiostream using namespace std; int main() int sum; for(int i=0; i6; i+=3) sum=i; for(int j=i;j6; j+)sum+=j; coutsumend1; retum 0; 运行时的输出结果是( )。
6、(分数:2.00)A.3B.10C.12D.1511.有如下程序段: int i=5; while (int i=0)cout*;i,) 运行时输出“*”的个数是( )。(分数:2.00)A.。B.1C.5D.无穷12.有如下程序段: int i=1, while(1) i+; if(i=10) break; if(i2=0) couK*; 执行这个程序段输出字符*的个数是( )。(分数:2.00)A.10B.3C.4D.513.下列循环语句中有语法错误的是( )。(分数:2.00)A.int i;for(i=1; i10, 1+)cout*;B.int i,j; for(i=l,j=0; 1
7、10; i+,j+)cout*;C.int i=0; for(; i10; 1+)cout*;D.for(1)cout*;14.有如下程序: #inc1ude iostream using namespace std; int main() int f,f1=0,f2=1; for (int i=3;i=6;i+) f=f1+f2; f1=f2;f2=f; coutfend1; return 0; 运行时的输出结果是( )。(分数:2.00)A.2B.3C.5D.815.有如下程序: #inc1ude iostream using namespace std; int main() int a
8、6=23,15,64,33,40,58; int s1,s2; s1=s2=a0; for(int*p=a+1;pa+6;p+) if(sl*p)s1=*p; if(s2*p)s2=*p; couts1+s2end1; retum 0; 运行时的输出结果是( )。(分数:2.00)A.23B.58C.64D.7916.有如下程序: #inc1udeiostream using namespace std; int main0 int i,s=0; for(i=l;s20;i+=2)s+=i*i; coutiend1; retum 0; 运行这个程序的输出结果是( )。(分数:2.00)A.3B
9、.5C.7D.917.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30, 50, 88,0 和 0,则下列定义语句中错误的是( )。(分数:2.00)A.int vect=30,50,88;B.int vectl=30,50,88,0,0;C.int vect5=30,50,88;D.int vect5=30,50,88,0,0;18.已知有数组定义 char a34;下列表达式中错误的是( )。(分数:2.00)A.a2=“WIN“B.strcpy(a2, “WIN“)C.a23=WD.a01=a0119.已知数组 arr 的定义如下: int arr5=1,2
10、,3,4,5; 下列语句中输出结果不是 2 的是( )。(分数:2.00)A.cout*arr+1end1;B.cout*(arr+1)end1;C.coutarr1end1;D.cout*artend1;20.有如下类定义: ciass A char *a; public: A():a(0) A(char*aa)/ 把 aa 所指字符串拷贝到a 所指向的存储空间 a=_; strcpy(a,aa); A()(deletea; ; 横线处应填写的表达式是( )。(分数:2.00)A.new charstrlen(aa)+1B.charstrlen(aa)+1C.charstrlen(aa)D.
11、new charsizeof(aa)121.要定义整型数组 x,使之包括初值为 0 的三个元素,下列语句中错误的是( )。(分数:2.00)A.m x3=0,0,0);B.int x=0;C.static int x3=0);D.int x=0,0,;22.有如下语句序列: char str10; cinstr; 当从键盘输入“I love this game“时,str 中的字符串是( )。(分数:2.00)A.I love this gameB.I love thiC.I loveD.I23.字符串“a+b=12/n/t”的长度为( )。(分数:2.00)A.12B.10C.8D.624.
12、下列有一维数组 a 的定义中,语法正确的是( )。(分数:2.00)A.int a(10);B.int n=7,an;C.int n,cinn,int an;D.const int size=10,int asize,25.有如下程序: #inc1ude iostream using namespace std; int main() int *p; *p=9; cout“The value at p:“*p; return 0; 编译运行程序将出现的情况是( )。(分数:2.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出
13、:The value at p:*9D.运行时有可能出错26.下列语句中,错误的是( )。(分数:2.00)A.const int buffeF256;B.const double *point;C.int const buffer=256;D.double*const point;27.有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是( )。(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+828.语句 int*p=p=B.int *p;p=k;C.int*p;*p=k;D.int *p;*p=k29.有如下定义:
14、int a5=1,3,5,7,9,*p=a; 下列表达式中不能得到数值 5 的是( )。(分数:2.00)A.a2B.a3C.*(p+2)D.*p+430.下列语句中,正确的是( )。(分数:2.00)A.char*myString=“HelloWorld!“;B.charmyString=“HelloWorld!“;C.charmyString11=“HelloWorld!“;D.charmyString12=“HelloWorld!“;31.下列定义语句中,错误的是( )。(分数:2.00)A.intpx*;B.char*acp10;C.char(*pac)10;D.int(*p)();3
15、2.有如下语句序列: int x=100,r=x, countxrend 1: 己知其中变量 x 的地址为 0012FF7C,则执行该语句序列的输出结果为( )。(分数:2.00)A.100100B.1000012FF7CC.0012FF7C100D.0012FF7C0012FF7C33.若字符指针 p 所指向的字符串为“abcdefg“,在执行语句 char*ap=new charstrlen(p)+1; 之后,ap指向的字符数组的元素个数为( )。(分数:2.00)A.9B.8C.7D.634.有如下程序段: int i=0,j=1; int / *p= int main() char s
16、tr100,*p; cout“Please input a string:“; cin;str; p=str; for(int i=0; *p!=0; p+,i+); cout“i“end1; retum 0; 运行这个程序时,若输入字符串为: abcdefg abcd 则输出结果是( )。(分数:2.00)A.7 B.12C.13D.100解析:解析:此题考查的是默认输入格式。本题输入数据类型为 char,因此输入的数据是“从第个非空白字符开始到下一个空白字符结束”,而输入数据为 abcdefg abcd,其中 abcdefg 后有空格。所以输入后 str 中的字符串为“abcdefg”;主
17、函数中接下来 for 语句的作用是计算字符串 p 的长度,故最终输出字符串“abcdefg”的长度 7。2.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1 else语句 2 关于上面的语法格式,下列表述中错误的是( )。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0) B.语句部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()解析:解析:此题考查的是 if 语句。If 语句的条件
18、部分是一个表达式而不是语句,因此选项 A 叙述错误。3.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是( )。(分数:2.00)A.if(x=0)y=1;else y=2; B.if(x=0)theny=l else y=2;C.if (x=0)y=1 else y=2;D.if(x=0)y=1;else y=2;解析:解析:if else 语句的形式为:if(条件)语句 1 else语句 2所符合以上形式的 if else 语句为选项 A)。4.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是( )。(分数:2.00)A.if(a=b)n=0;B
19、.if(ab)|(bc)n=1; else n=0;C.if(ab)if(bc)n=1; else n=0; else n=0, D.if(ab)n=1;else if(b=c)n=i; else if(bc)n=1; else n=0;解析:解析:条件表达式(ab?(bc?1:0):0)的含义是,如果 ab 成立,则此表达式的值等于条件表达式(bc?1:0)的值,否则其值等于 0。而条件表达式(bc?1:0)的含义是,如果 bc 成立,其值等于 1,否则其值等于 0。5.有如下程序 #inc1udeiostream using namespace std; int main() char a
20、; cina; if(a=*)cout“*“end1, eLse cout“#“end1; retum 0; 输入字符+时,程序的运行结果是( )。(分数:2.00)A.* B.#C.*#D.无输出解析:解析:本题的考点是双分支选择语句的执行流程,答题的关键点在于选择条件的判定。双分支选择语句的执行流程是首先计算 if 后表达式的值,如果表达式的值为非零,则执行 if 后面的分支,否则执行与其匹配的 else 后面的分支。本题执行时虽然输入变量 a 的值为+,但是在执行 if 后括号内表达式(a=*)的时,由于此表达式为赋值表达式,因此表达式的值为赋值号右边的值*,其 ASCII 码的值非零,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 机试 基本 控制 结构 数组 指针 引用 模拟 试卷 答案 解析 DOC
