昆尖庭擞匈情棵唱酮瓶链拴磷
第1讲 C++语言概述 第1讲 了解计算机的基本工作原理
1、 以下都可用作计算机输入设备的是:
A:键盘,鼠标,扫描仪,打印机
B:键盘,数码相机,鼠标,绘图仪
C:键盘,数码相机,扫描仪,绘图仪
D:键盘,鼠标,扫描仪,数码相机
答案: 键盘,鼠标,扫描仪,数码相机
2、 CPU中包含控制器和:
A:运算器
B:存储器
C:输入设备
D:输出设备
答案: 运算器
3、 下列语言不属于高级语言中的是:
A:C语言
B:机器语言
C:FORTRAN语言
D:C++语言
答案: 机器语言
4、 正确的C++语言标识符是:
A:3d_max
B:if
C:A&B
D:sum_2
答案: sum_2
5、 对C++语言和C语言的兼容性,描述正确的是:
A:C++兼容C
B:C++部分兼容C
C: C++不兼容C
D:C兼容C++
答案: C++兼容C
第2讲 信息的表示与存储 第2讲 了解各种进位计数制及常用数据在计算机中的存储
1、 下列数中最大的数为:
A:(101001)B
B:(52)O
C:(43)D
D:(2C)H
答案: (2C)H
2、 如果X为负数,由[X]补求[-X]补是将:
A:[X]补各值保持不变
B:[X]补符号位变反,其它各位不变
C:[X]补除符号位外,各位变反,未位加1
D:[X]补连同符号位一起各位变反,未位加1
答案: [X]补连同符号位一起各位变反,未位加1
3、 以下叙述错误的是:
A:浮点数中,阶码反映了小数点的位置
B:浮点数中,阶码的位数越长,能表示的精度越高
C:计算机中,整数一般用定点数表示
D:浮点数和整数的最高位都是符号位
答案: 浮点数中,阶码的位数越长,能表示的精度越高
4、 二进制数101101.101转换为十进制数、八进制数和十六进制数的结果分别是:
A:45.525、55.5、2D.A
B:45.625、55.5、2D.B
C:45.625、55.5、2D.A
D:45.625、55.6、2D.A
答案: 45.625、55.5、2D.A
5、 字符型数据’A’存放在计算机中:
A:存放的就是字母’A’
B:存放的是’A’的ASCII码值的补码
C:实际存放的是’A’的ASCII码值97
D:实际存放的是’A’的ASCII码值65
答案: 实际存放的是’A’的ASCII码值65
第3讲 程序中数据的表示 第3讲 掌握常量、变量的表示及基本数据类型
1、 类型修饰符unsigned不能修饰
A:char
B:int
C:long int
D:float
答案: float
2、 在C++语言的数据类型中,int,short等类型的长度是
A:固定的
B:任意的
C:用户自定义的
D:与机器字长有关的
答案: 与机器字长有关的
3、 下列选项中,均是合法的整型常量的是:
A:60-0xffff0011
B:–0xcdf01a0xe
C:–01986,0120668
D:–0x48a2e50x
答案: 60-0xffff0011
4、 下列选项中,均是合法的实型常量的是:
A:+1e+15e-9.403e2
B:-0.1012e-4-8e5
C:123e1.2e-.4+2e-1
D:–e3.8e-45.e-0
答案: -0.1012e-4-8e5
5、 下列字符串常量表示中,哪个是错误的?
A: “\”yes”or\”No\””
B: “’OK!’”
C:”abcd”
D: “ABC\0”
答案: “\”yes”or\”No\””
6、 字符串”\t\v\\0which”的长度是:
A:4
B:3
C:9
D:字符串有非法字符,输出值不确定
答案: 3
7、 以下不是C++语言支持的存储类别的是:
A:auto
B:static
C:dynamic
D:register
答案: dynamic
8、 下列不是C++语言的合法用户标识符的是:
A:a#b
B:_int
C:a_10
D:Pad
答案: a#b
9、 下列字符列中,可作为C++语言程序自定义标识符是:
A:switch
B:file
C:break
D:do
答案: file
10、 下列属于逻辑运算的一组算式是:
A:1/1=1
B:1-1=0
C:1+1=10
D:1+1=1
答案: 1+1=1
第4讲 运算符与表达式 第4讲 掌握各种表达式的表示
1、 命题“10<m<15或m>20”的C++语言表达式是
A: ((m>10)&&(m<15)||(m>20))
B: ((m>20)&&(m<15)||(m>10))
C: (m>10)||((m<15)&&(m>20))
D: ((m>10)||(m<15)||(m>20))
答案: ((m>10)&&(m<15)||(m>20))
2、 设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是:
A:2
B:-1
C:0
D:1
答案: 0
3、 若x是一个bool型变量,y是一个值为100的int型变量,则表达式 !x && y>0 的值为:
A:为true
B:为false
C:与x的值相同
D:与x的值相反
答案: 与x的值相反
4、 设变量m,n,a,b,c,d均为0,执行(m = a==b)&&(n=c==d)后,m,n的值是:
A:0,0
B:0,1
C:1,0
D:1,1
答案: 1,1
5、 设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是:
A:6.500000
B:6
C:5.500000
D:6.000000
答案: 6.000000
6、 以下非法的赋值表达式是:
A:n=(i=2,i++)
B: j++
C:++(i+1)
D:x=j>0
答案: ++(i+1)
7、 设int x=2,y=4,z=7;则执行x=y–<=x| | x+y!=z后x,y的值分别为:
A:0,3
B:1,3
C:2,3
D:2,4
答案: 1,3
8、 表达式!x等效于:
A:x==1
B:x==0
C:x!=1
D:x!=0
答案: x==0
9、 设以下变量均为int类型,则值不等于7的表达式是:
A:(x=y=6,x+y,x+1)
B:(x=y=6,x+y,y+1)
C:(x=6,x+1,y=6,x+y)
D:(y=6,y+1,x=y,x+1)
答案: (x=6,x+1,y=6,x+y)
10、 在下列成对的表达式中,运算符“+”的意义不相同的一对是:
A:5.0+2.0和5.0+2
B:5.0+2.0和5+2.0
C:5.0+2.0和5+2
D:5+2.0和5.0+2
答案: 5.0+2.0和5+2
第5讲 顺序结构的程序设计 第5讲 掌握C++输入输出的格式控制
1、 输入输出格式控制是在哪个头文件中定义的?
A:iostream.h
B:iomanip.h
C:istream.h
D:ostream.h
答案: iomanip.h
2、 对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是:
A:”cout”是一个输出流对象
B:”endl”的作用是输出回车换行
C:”x”是一个变量
D:”<<”称作提取运算符
答案: ”<<”称作提取运算符
3、 在ios中提供控制格式的标志位中,哪个是转换为十六进制形式的标志位?
A:hex
B:oct
C:dec
D:left
答案: hex
4、 定义变量:char one_char;则语句cout<<one_char;显示结果相当于C语言中的:
A:printf(one_char);
B:printf(“%c”,one_char);
C:scanf(one_char);
D:scanf(“%c”,&one_char);
答案: printf(“%c”,one_char);
5、 若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是:
A:11
B:0x11
C:21
D:021
答案: 21
6、 与C语言printf(“Hello,World\n”);语句功能相同的C++语句是:
A:cout>>”Hello,World\n”;
B:cout<<“Hello,World\n”;
C:cin>>”Hello,World\n”;
D:cin<<“Hello,World\n”;
答案: cout<<“Hello,World\n”;
7、 与语句cout<<endl;不等价的是:
A:cout<<’ \n’;
B:cout<<‘\12’;
C:cout<<’ \xA’;
D:D)cout<<’ \0’;
答案: D)cout<<’ \0’;
8、 下列程序的运行结果是:#include <iostream>using namespace std;int main(){int a=2;int b=a+1;cout<<a/b<<endl;return 0;}
A:0.66667
B:0
C:0.7
D:0.6666666…
答案: 0
9、 执行下列代码,程序的输出结果是(用下划线表示空格):int a=29,b=100;cout <<setw (3) << a << b << endl;
A:29_100
B:_29_100
C:29100
D:_29100
答案: _29100
10、 执行下列代码,程序的输出结果是:cout <<″Hex:″<< hex << 255;
A:ff
B:hex:ff
C:Hex:ff
D:f
答案: Hex:ff
第6讲 选择结构的程序设计 第6讲 掌握选择结构的程序设计
1、 流程控制语句的基本控制结构有三种,不属于这一种结构的是:
A:顺序结构
B:选择结构
C:循环结构
D:计算结构
答案: 计算结构
2、 在设计程序时,应采纳的原则之一是:
A:不限制goto语句的使用
B:减少或取消注解行
C:程序越短越好
D:程序结构应有助于读者理解
答案: 程序结构应有助于读者理解
3、 if语句的语法格式可描述为:格式1:if(<条件>)<语句>或if(<条件>)<语句1>else <语句2>关于上面的语法格式,下列表述中错误的是:
A:<条件>部分可以是一个if语句,例如if(if(a==0)……)……
B:<语句>部分可以是一个if语句,例如if(……)if(……)……
C:如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变
D:<语句>部分可以是一个循环语句,例如if(……) while(……)……
答案: <条件>部分可以是一个if语句,例如if(if(a==0)……)……
4、 在if语句中的表达式是:
A:只能是表达式
B:只能是关系表达式和逻辑表达式
C:只能是逻辑表达式
D:可以是任意表达式
答案: 可以是任意表达式
5、 执行如下语句序列,不可能出现的情况是:int x; cin>>x; if(x>250) cout<<‘A’; if(x<250) cout<<‘B’; else cout<<‘A’;
A:显示:A
B:显示:B
C:显示:AB
D:显示:AA
答案: 显示:AB
6、 阅读下面的程序,如果两次执行上述程序,且键盘输入分别是4和6,则输出结果是:#include <iostream>using namespace std;int main(){int x;cin>>x;if (x++>5)cout <<x<<endl;elsecout<<x–<<endl;return 0;}
A:4,6
B:3,6
C:4,7
D:5,7
答案: 5,7
7、 下列描述正确的是:
A:表示m>n为false或m<n为true的表达式为(m>n&&m<n)
B:switch语句结构中必须有default语句
C:if语句结构中必须有default语句
D:如果至少有一个操作数为true,则包含||运算符的表达式为true
答案: 如果至少有一个操作数为true,则包含||运算符的表达式为true
8、 执行如下语句序列,不可能出现的情况是:int n; cin>>n; switch(n){ case 1: case 2: cout<<‘A’; case 3: case 4: cout<<‘B’; break; default:cout<<‘C’; }
A:显示:A
B:显示:B
C:显示:C
D:显示:AB
答案: 显示:A
9、 关于switch语句的说明中,错误的是:
A:default语句是可缺省的
B:各个分支中的break语句起着退出switch语句的作用
C:switch结构不可以嵌套
D:每个case语句中不必用{},而整体的switch结构一定要写一对花括号{}
答案: switch结构不可以嵌套
10、 将以下程序写成三目运算表达式语句是:if (a>b) max=a;else max=b;
A:max=(a>b)?;
B:(max=a>b)?a:b;
C:c=(a>b)?a:b;
D:max=(a>b)?a:b;
答案: max=(a>b)?a:b;
第7讲 循环结构的程序设计 第7讲 掌握循环结构的程序设计
1、 while(!x)中的(!x)与下面哪个条件等价?
A:x==1
B:x!=1
C:x!=0
D:x==0
答案: x==0
2、 已知:int i=5,下列do-while循环语句的循环次数为:do{cout<<i–<<endl;i–;}while(i!=0);
A:0
B:1
C:5
D:无限
答案: 无限
3、 下面程序段:x=3; do{y=x–;if(!y) {cout<<”x”; continue;}cout<<”#”;}while(x>=1 && x<=2);
A:将输出##
B:是死循环
C:将输出###
D:含有不合法的控制表达式
答案: 将输出###
4、 for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是:
A:0
B:5
C:6
D:无限
答案: 6
5、 以下程序的输出结果是:#include <iostream>using namespace std;int main(){char s[]=”abcdefbcde”,p=s;int v1=0,v2=0,v3=0,v4=0; for (p;p;p++) switch(*p){ case ‘a’:v1++;break; case ‘b’:v3++;break; case ‘e’:v2++;break; default: v4++;}cout<<v1<<“,”<<v2<<“,”<<v3<<“,”<<v4<<endl;return 0;}
A:1,2,2,5
B:4,7,5,8
C:1,5,3,10
D:8,8,8,8
答案: 1,2,2,5
6、 下面有关for循环的正确描述是:
A:for循环只能用于循环次数已经确定的情况
B:for循环是先执行循环体语句,后判断表达式
C:在for循环中,不能用break语句跳出循环体
D:for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
答案: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
7、 C++语言的跳转语句中,对于break和continue说法正确的是:
A:break语句只应用与循环体中
B:continue语句只应用与循环体中
C:break是无条件跳转语句,continue不是
D:break和continue的跳转范围不够明确,容易产生问题
答案: continue语句只应用与循环体中
8、 下列循环语句的循环次数是:while(int i=0) i–;
A:0
B:1
C:2
D:3
答案: 0
9、 下面程序的输出结果是:#include<iostream>using namespace std;int main(){for(int i=-1;i<4;i++)cout<<(i?’0′:’‘);return 0;}
A:00
B:0000
C:000
D:0000
答案: 0*000
10、 下面程序的输出结果是:#include “iostream”using namespace std;int main() {int i=17;while(i>=10)if(–i%4==3) continue;elsecout<<“i=”<<i–<<endl;return 0;}
A:i=16i=15i=14i=13
B:i=16i=14i=12
C:i=16i=14i=12i=10
D:i=17i=15i=13i=11
答案: i=16i=14i=12i=10
第8讲 循环结构的设计 第8讲 掌握循环结构的程序设计
1、 程序填空完成功能:求出1000以内的全部素数。#include<iostream>using namespace std;int main(){ const int m=1000; int i,j,isprime; for (i=2;i<1000;i++){ isprime=1; for (j=i-1;j>1;j–) if (i%j==0) ; if (isprime) cout<<i<<‘,’; } return 0;}
答案: isprime=0
2、 程序填空完成功能:求分数序列2/1,3/2,5/3,8/5,13/8 ……的前20项之和。#include <iostream>using namespace std;int main(){ double i,n=1,m=1,t,s=0 ; for (i=1;i<=20;i++) { t = n ; n = m ; ; s = s + m/n ; } cout<<s<<endl; return 0;}
答案: (以下答案任选其一都对)m=t+m;
m=m+t;
m=t+n;
m=n+t
3、 程序填空完成功能:有一堆机器零件(零件个数小于100),3个为一组则剩下2个,5个为一组则剩下1个,7个为一组则剩下6个,求这堆零件一共有多少个?#include <iostream>using namespace std;int main(){ int i; for (i=1;i<100;i++) { if( ) cout<<i<<endl; } return 0;}
答案: (以下答案任选其一都对)i%3==2&&i%5==1&&i%7==6;
(i%3==2)&&(i%5==1)&&(i%7==6);
(i%3==2&&i%5==1&&i%7==6)
第9讲 函数的定义和使用 第9讲 掌握函数的定义和函数的调用方式
1、 下列特性中,C与C++共有的是:
A:继承
B:封装
C:多态性
D:函数定义不能嵌套
答案: 函数定义不能嵌套
2、 必须用一对大括号括起来的程序段是:
A:switch语句中的case标号语句
B:if语句的分支
C:循环语句的循环体
D:函数的函数体
答案: 函数的函数体
3、 关于C++主函数特性,下列叙述正确的是:
A:主函数在同一个C++文件中可以有两个
B:主函数类型必须是void类型
C:主函数一定有返回值
D:每个C++程序都必须有一个main()函数
答案: 每个C++程序都必须有一个main()函数
4、 在C++语言中,main函数默认返回一个( )类型的值
A:int
B:float
C:char
D:void
答案: int
5、 C++语言中规定函数的返回值的类型是由:
A:return语句中的表达式类型所决定
B:调用该函数时的主调用函数类型所决定
C:调用该函数时系统临时决定
D:在定义该函数时多指定的数据类型所决定
答案: 在定义该函数时多指定的数据类型所决定
6、 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数:
A:没有返回值
B:返回若干个系统默认值
C:有返回值,但返回一个不确定的值
D:回一个用户所希望的函数值
答案: 有返回值,但返回一个不确定的值
7、 下列叙述中错误的是:
A:一个函数中可以有多条return语句
B:调用函数必须在一条独立的语句中完成
C:函数中通过return语句传递函数值
D:主函数名main也可以带有形参
答案: 调用函数必须在一条独立的语句中完成
8、 在C++中把不返回任何类型的函数应该说明为:
A:int
B:float
C:char
D:void
答案: void
9、 在函数的定义格式中,下面各组成部分中,( )是可以省略的。
A:函数名
B:函数数据类型说明
C:函数体
D:函数参数
答案: 函数参数
10、 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为:
A:1
B:2
C:3
D:4
答案: 2
第10讲 函数的设计 第10讲 灵活运用函数重载、默认参数和函数模板
1、 指出下列对定义重载函数的要求中,( )是错误的。
A:要求参数的个数相同
B:要求参数的类型相同时,参数个数不同
C:函数的返回值可以不同
D:要求参数的个数相同时,参数类型不同
答案: 要求参数的个数相同
2、 一个函数为void x(int,char ch=’a’),另一个函数为void x(int),则它们:
A:不能在同一程序中定义
B:可以在同一程序中定义并可重载
C:可以在同一程序中定义,但不可以重载
D:以上说法均不正确
答案: 可以在同一程序中定义,但不可以重载
3、 重载函数在调用时选择的依据中,错误的是:
A:函数的参数
B:参数的类型
C:函数的名字
D:函数返回值类型
答案: 函数返回值类型
4、 下列函数原型声明中错误的是:
A:void fun(int x=0,int y=0);
B:void fun(int x,int y);
C:void fun(int x,int y=0);
D:void fun(int x=0,int y);
答案: void fun(int x=0,int y);
5、 一个函数带有参数说明时,则参数的默认值应该在( )中给出。
A:函数定义
B:函数声明
C:函数定义或声明
D:函数调用
答案: 函数定义或声明
6、 下列关于函数参数默认值的描述中,正确的是:
A:函数参数的默认值只能设置一个
B:若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值
C:若一个函数含有多个参数,则设置默认参数时可以不连续设置默认值
D:C++语言中函数都必须设有默认值
答案: 若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值
7、 模板函数的真正代码是在( )时候产生。
A:源程序中声明函数时
B:源程序中定义函数时
C:源程序中的调用函数时
D:运行执行函数时
答案: 源程序中的调用函数时
8、 以下关于函数模板叙述正确的是:
A:函数模板也是一个具体类型的函数
B:函数模板的类型参数与函数的参数是同一个概念
C:通过使用不同的类型参数,函数模板可以生成不同类型的函数
D:用函数模板定义的函数没有类型
答案: 通过使用不同的类型参数,函数模板可以生成不同类型的函数
9、 常情况下,函数模板中的类型参数个数不能是:
A:0
B:1
C:2
D:3
答案: 0
10、 实现两个相同类型数加法的函数模板的声明是:
A:add(T x,T y)
B:T add(x,y)
C:T add(T x,y)
D:T add(T x,T y)
答案: T add(T x,T y)
第11讲 函数的调用 第11讲 掌握函数的嵌套调用和递归调用
1、 在参数传递过程中,对形参和实参的要求是:
A:函数定义时,形参一直占用存储空间
B:实参可以是常量、变量或表达式
C:形参可以是常量、变量或表达式
D:形参和实参类型和个数都可以不同
答案: 实参可以是常量、变量或表达式
2、 在函数的引用调用时,实参和形参应该是使用:
A:变量值和变量
B:地址值和指针
C:地址值和引用
D:变量值和引用
答案: 变量值和引用
3、 使用值传递方式将实参传给形参,下列说法正确的是:
A:形参是实参的备份
B:实参是形参的备份
C:形参和实参是同一对象
D:形参和实参无联系
答案: 形参是实参的备份
4、 下列函数调用中对调用它的函数没有起到任何作用的是:
A:void f1(double &x){–x;}
B:double f2(double x){return x-1.5;}
C:void f3(double x){–x;}
D:double f4(double x){–x;return *x;}
答案: void f3(double x){–x;}
5、 对于某个函数调用,不给出调用函数的声明的情况是:
A:被调用函数是无参函数
B:被调用函数是无返回值的函数
C:函数的定义在调用处之前
D:函数的定义有别的程序文件中
答案: 函数的定义在调用处之前
6、 在哪种情况下适宜采用 inline 定义内联函数?
A:函数体含有循环语句
B:函数体含有递归语句
C:函数代码少、频繁调用
D:函数代码多、不常调用
答案: 函数代码少、频繁调用
7、 下列哪个类型函数不适合声明为内联函数:
A:函数体语句较多
B:函数体语句较少
C:函数执行时间较短
D:函数执行时间过长
答案: 函数体语句较多
8、 在C++中,编写一个内联函数Fsqu,使用double类型的参数,求其平方并返回,返回值为double类型,下列定义正确的是:
A:double Fsqu (double x){return xx;}
B:inline double Fsqu (double x){return xx;}
C:double inline Fsqu (double x){return xx;}
D:double Fsqu (double x){inline return xx;}
答案: inline double Fsqu (double x){return x*x;}
9、 已知递归函数f的定义如下:int f(int n){ if (n<=1) return 1; else return n*f(n-2);}则函数调用语句f(5)的返回值是:
A:14
B:15
C:16
D:17
答案: 15
10、 在一个函数体中直接或间接地调用函数本身,这种调用称为()调用。
A:嵌套
B:递归
C:直接
D:间接
答案: 递归
第12讲 作用域、生命期和程序的组织结构 第12讲 理解作用域、生命期和程序的组织结构
1、 不能实现函数之间数据传递的是:
A:全局变量
B:局部变量
C:函数接口
D:函数返回值
答案: 局部变量
2、 所有在函数中定义的变量,连同形式参数,都是:
A:全局变量
B:局部变量
C:静态变量
D:寄存器变量
答案: 局部变量
3、 内部静态变量的作用域是:
A:定义该静态变量的函数外部
B:定义该静态变量的函数内部
C:定义该静态变量的文件外部
D:定义该静态变量的文件内部
答案: 定义该静态变量的函数内部
4、 进行初始化即可自动获取初值为0的变量是:
A:任何用static修饰的变量
B:任何在函数外定义的变量
C:局部变量和用static修饰的全局变量
D:全局变量和用static修饰的局部变量
答案: 全局变量和用static修饰的局部变量
5、 在函数中,可以用auto,extern,register和static四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是:
A:auto
B:extern
C:register
D:static
答案: auto
6、 在一个C++源程序文件中定义的全局变量的有效范围是:
A:该C++程序的所有源程序文件
B:本源程序文件的全部范围
C:从定义变量的位置开始到本源程序文件结束
D:函数内部全部范围
答案: 从定义变量的位置开始到本源程序文件结束
7、 在C++中有以下4条语句:static int hot=200;int &rad=hot;hot=hot+100;cout<<rad<<endl;执行这4条语句后输出为:
A:0
B:100
C:200
D:300
答案: 300
8、 下面关于C++语言变量的叙述错误的是:
A:C++语言中变量为auto,static,extern和register四种存储类型
B:自动变量和外部变量的作用域为整个程序
C:内部静态变量的作用域是定义它的函数
D:外部静态变量的作用域是定义它的文件
答案: 自动变量和外部变量的作用域为整个程序
9、 如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,则说明这个函数为:
A:私有函数
B:内部函数
C:外部函数
D:库函数
答案: 内部函数
10、 重新定义标识符的作用域规定是外层变量被隐藏,()变量是可见的。
A:外层
B:内层
C:外层和内层
D:内部
答案: 内层
第13讲 数组的定义和使用 第13讲 掌握数组的定义和使用
1、 下列关于数组的描述正确是:
A:数组的长度是固定的,而其中元素的数据类型可以不同
B:数组的长度是固定的,而其中元素的数据类型必须相同
C:数组的长度是可变的,而其中元素的数据类型可以不同
D:数组的长度是可变的,而其中元素的数据类型必须相同
答案: 数组的长度是固定的,而其中元素的数据类型必须相同
2、 在C++语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是:
A:整型常量
B:整型表达式
C:整型常量或整型表达式
D:任何类型的表达式
答案: 任何类型的表达式
3、 要定义数组A,使得其中每个元素的数据分别依次为:3、9、4、8、0、0、0,错误的定义语句是:
A:int A[]={3,9,4,8,0,0,0};
B:int A[9]={3,9,4,8,0,0,0};
C:int A[]={3,9,4,8};
D: int A[7]={3,9,4,8};
答案: int A[]={3,9,4,8};
4、 有如下数组声明:int value[30];,下标值引用错误的是:
A:value[30]
B:value[0]
C:value[10]
D:value[20]
答案: value[30]
5、 以下叙述中错误的是:
A:对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B:数组名代表的是数组所占存储区的首地址,其值不可改变
C:当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D:可以通过赋初值的方式确定数组元素的个数
答案: 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
6、 以下正确的二维数组定义是:
A:int a[][]={1,2,3,4,5,6};
B:int a[2][]={1,2,3,4,5,6};
C:int a[][3]={1,2,3,4,5,6};
D:int a[2,3]={1,2,3,4,5,6};
答案: int a[][3]={1,2,3,4,5,6};
7、 以下对二维数组a进行初始化正确的是:
A:int a[2][]={{1,0,1},{5,2,3}} ;
B:int a[][3]={{1,2,3},{4,5,6}} ;
C:int a[2][4]={{1,2,3},{4,5},{6}} ;
D:int a[][3]={{1,0,1},{},{1,1}} ;
答案: int a[][3]={{1,2,3},{4,5,6}} ;
8、 若有定义:int a[3][4];则正确引用数组a元素的是:
A:a[2][4]
B:a[3][3]
C:a[0][0]
D:a[3][4]
答案: a[0][0]
9、 若有定义:int a[][4]={0,0};以下叙述中错误的是:
A:数组a的每个元素都可得到初值0
B:二维数组a的第一维大小为1
C:因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1
D:只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
答案: 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
10、 下面选项中等价的是:
A:int a[2][3]={1,0,2,2,4,5}与int a[2][]= {1,0,2,2,4,5};
B:int a[][3]= {1,0,2,2,4,5}与int a[2][3]= {1,0,2,2,4,5};
C:int a[2][3]={3,4,5}与int a[][3]={3,4,5};
D:int a[2][3]={0,1}与int a[2][3]={{0},{1}};
答案: int a[][3]= {1,0,2,2,4,5}与int a[2][3]= {1,0,2,2,4,5};
第14讲 数组与函数 第14讲 掌握数组作为函数参数的使用方法
1、 若用数组名作为函数调用的实参,传递给形参的是:
A:数组的首地址
B:数组中第一个元素的值
C:数组中的全部元素的值
D:数组元素的个数
答案: 数组的首地址
2、 对数组名作函数的参数,下面描述正确的是:
A:数组名作函数的参数,调用时将实参数组复制给形参数组
B:数组名作函数的参数,主调函数和被调函数共用一段存储单元
C:数组名作参数时,形参定义的数组长度不能省略
D:数组名作参数,不能改变主调函数中的数据
答案: 数组名作函数的参数,主调函数和被调函数共用一段存储单元
3、 已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是:
A:int MAT[][10]
B:int MAT[3][]
C:int MAT[10][3]
D:int MAT[][]
答案: int MAT[][10]
4、 设主调用函数为如下程序段,则函数f中对形参数组定义错误的是:int a[3][4];f(a);
A:f(int array[3][4])
B:f(int array[][4])
C:f(int array[3][])
D:f(int array[4][3])
答案: f(int array[3][])
5、 下面程序执行后的输出结果是:#include <iostream>using namespace std;int f(int b[],int m,int n){ int i,s=0; for(i=m;i<n;i++) s=s+b[i-1]; return s;}int main(){ int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); cout<<x; return 0;}
A:10
B:18
C:8
D:15
答案: 18
6、 下面程序执行后的输出结果是:#include <iostream>using namespace std;#define N 20void fun(int a[],int n,int m){ int i; for(i=m;i>=n;i–) a[i+1]=a[i];}int main(){ int i; int a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) cout<<a[i]; return 0;}
A:10234
B:12344
C:12334
D:12234
答案: 12334
7、 下面程序执行后的输出结果是:#include <iostream>using namespace std;void swap1(int c[]){ int t; t=c[0];c[0]=c[1];c[1]=t;}void swap2(int c0,int c1){ int t; t=c0;c0=c1;c1=t;}int main( ){ int a[2]={3,5},b[2]={3,5}; swap1(a) ; swap2(b[0],b[1]); cout<<a[0] <<a[1] <<b[0] <<b[1]; return 0;}
A:5353
B:5335
C:3535
D:3553
答案: 5335
8、 下面程序执行后的输出结果是:#include <iostream>using namespace std;int fun(int t[],int n){ int m; if(n>=2) { m=fun(t,n-1); return m; } return t[0];}int main(){ int a[]={11,4,6,3,8,2,3,5,9,2}; cout<<fun(a,10); return 0;}
A:10
B:11
C:12
D:13
答案: 11
第15讲 字符串的处理 第15讲 掌握C和C++的字符串处理方式
1、 字符串的长度是:
A:串中不同字符的个数
B:串中不同字母的个数
C:串中所含字符的个数且字符个数大于0
D:串中所含字符的个数
答案: 串中所含字符的个数
2、 下列说法正确的是:
A:字符型数组与整型数组可通用
B:字符型数组与字符串其实没什么区别
C:当字符串放在字符数组中,这时要求字符数组长度比字符串长1个单元,因为要放字符串终结符’\0’
D:字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别
答案: 当字符串放在字符数组中,这时要求字符数组长度比字符串长1个单元,因为要放字符串终结符’\0’
3、 下面有关字符数组的描述中错误的是:
A:字符数组可以存放字符串
B:字符串可以整体输入、输出
C:可以在赋值语句中通过赋值运算对字符数组整体赋值
D:不可以用关系运算符对字符数组中的字符串进行比较
答案: 可以在赋值语句中通过赋值运算对字符数组整体赋值
4、 给出下面定义:char a[]=”abcd”;char b[]={‘a’,’b’,’c’,’d’};则下列说法正确的是:
A:数组a与数组b等价
B:数组a和数组b的长度相同
C:数组a的长度大于数组b的长度
D:数组a的长度小于数组b的长度
答案: 数组a的长度大于数组b的长度
5、 下面程序输出结果为:#include<iostream>using namespace std;#include<string.h>int main( ){ char st[20]=”hello\0\t\”; cout<<strlen(st); cout<<sizeof(st)<<endl; cout<<st; return 0;}
A:520hello
B:1220hello\0\t
C:520hello\t
D:1120hello└┘└┘
答案: 520hello
6、 要使字符串变量str具有初值”Lucky”,正确的定义语句是:
A:char str[]={‘L’,’u’,’c’,’k’,’y’};
B:char str[5]={‘L’,’u’,’c’,’k’,’y’};
C:char str []=”Lucky”;
D:char str [5]=”Lucky”;
答案: char str []=”Lucky”;
7、 下列是为字符数组赋字符串的语句组,其中错误是:
A:char s[10]; s=”program”;
B:char s[]=”program”;
C:char s[10]=”Hello!”;
D:char s[10];strcpy(s,”hello!”);
答案: char s[10]; s=”program”;
8、 字符数组s不能作为字符串使用的是:
A:char s[]=”happy”;
B:char s[6]={‘h’,’a’,’p’,’p’,’y’,’\0′};
C:char s[]={“happy”};
D:char s[5]={‘h’,’a’,’p’,’p’,’y’};
答案: char s[5]={‘h’,’a’,’p’,’p’,’y’};
9、 下面程序段执行后的输出结果是:char c[5]={‘a’,’b’,’\0′,’c’,’\0′};cout<<c;
A:’a”b’
B:ab
C:ab c
D:abc
答案: ab
10、 下面程序执行后的输出结果是:#include <iostream>using namespace std;#include<string.h>int main(){ char str[]=” SSWLIA” , c; int k; for (k=2;(c=str[k])!=’\0′;k++) { switch (c) { case ‘I’: ++k; break ; case ‘L’: continue; default : cout<<c; continue ; } cout<<‘‘; } return 0;}
A:SSW
B:SW
C:SWA
D:SW
答案: SW
上方为免费预览版答案,如需购买完整答案,请点击下方红字
为了方便下次阅读,建议在浏览器添加书签收藏本网页
添加书签方法:
1.电脑按键盘的Ctrl键+D键即可收藏本网页
2.手机浏览器可以添加书签收藏本网页
我们的公众号
打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP
本公众号可查看各种网课答案,还可免费查看大学教材答案
谭恼称范炬庇行闲晌郸沤撤刷