蓝莓题库

c 面向对象程序设计-k8凯发

欢迎来访!

k8凯发-凯发官网入口初中答案 正文

作者2023-02-27 00:38:19初中答案 78 ℃0 评论
1.3章节测验

1、【单选题】一个c 程序的执行是从_____。
    a、本程序的main函数开始,到main函数结束
    b、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
    c、本程序的main函数开始,到本程序文件的最后一个函数结束
    d、本程序文件的第一个函数开始,到本程序main函数结束

2、【单选题】以下叙述正确的是_____。
    a、在c 程序中main函数必须位于程序的最前面
    b、c 程序的每行中只能写一条语句
    c、c 语言本身没有输入输出语句
    d、在对一个c 程序进行编译的过程中,可发现注释中的拼写错误

3、【单选题】以下叙述不正确的是_____。
    a、一个c 源程序可由一个或多个函数组成
    b、一个c 源程序必须包含一个main函数
    c、c 程序的基本组成单位是函数
    d、在c 程序中,注释说明只能位于一条语句的后面

4、【单选题】c 语言规定:在一个源程序中,main函数的位置_____。
    a、必须在最开始
    b、必须在系统调用的库函数的后面
    c、可以任意
    d、必须在最后

5、【单选题】以下叙述中正确的是_____。
    a、c 语言的源程序不必通过编译就可以直接运行
    b、c 语言中的每条可执行语句最终都将被转换成二进制的机器指令
    c、c 源程序经编译形成的二进制代码可以直接运行
    d、c 语言中的函数不可以单独进行编译

6、【单选题】以下叙述中正确的是_____。
    a、c 语言是低级语言
    b、c 语言可以不用编译就能被计算机识别执行
    c、c 语言以接近英语国家的自然语言和数学语言作为语言的表达形式
    d、c 语言出现得最晚,具有其他语言的一切优点

7、【单选题】要把高级语言编写的源程序转换为目标程序,需要使用_____。
    a、编辑程序
    b、驱动程序
    c、连接程序
    d、编译程序

8、【单选题】一个c 程序是由_____个源程序文件(.cpp)组成。
    a、0
    b、1
    c、多
    d、1或多

9、【填空题】c 源程序文件的扩展名是____ 。

10、【填空题】每个程序都有且只有一个主函数,它的名称应写为____ 。

11、【填空题】c 语言源程序经____后生成后缀为obj的目标程序。

12、【填空题】c 程序经过编译、____步骤之后才能形成一个真正可执行的二进制机器指令文件。

13、【填空题】用c 语言编写的程序称为____,它以ascii代码形式存放在一个文本文件中。

14、【填空题】在c 语言中,每个语句必须以____结束。

15、【填空题】行注释语句以____开头。

16、【填空题】当使用关键字____作为main函数返回类型时,该函数不返回任何值。

17、【填空题】机器语言是低级语言,c 语言是____。

18、【填空题】c 程序执行时,总是从名为____的函数开始的。

19、【简答题】一个c 程序是由_____。

20、【简答题】用c 语言编写的代码程序_____。

21、【简答题】为什么需要计算机语言?高级语言有哪些特点?

22、【简答题】请根据你的了解,叙述c  的特点。c  对c有哪些发展?

23、【简答题】一个c 的程序是由哪几部分构成的?其中的每一部分起什么作用?

24、【简答题】请说明编辑、编译、连接的作用。在编译后得到的目标文件为什么不能直接运行?

25、【简答题】#分析下面程序运行的结果。 #include using namespace std; int main( ) { cout<<" this "<<" is "; cout<<" a "<<" c "; cout<<"program. " << endl; return 0; }#

26、【简答题】编程输出: 超星尔雅慕课答案***** how are you! 超星尔雅慕课答案*****

27、【简答题】编程输出: 超星尔雅慕课答案**** 超星尔雅慕课答案**** 超星尔雅慕课答案**** 超星尔雅慕课答案****

2.6章节测验

1、【单选题】c 语言基本类型包括_____。
    a、整型、实型、逻辑型
    b、整型、实型、字符型、逻辑型
    c、整型、字符型、逻辑型
    d、整型、实型、字符型

2、【单选题】c 语言中的标识符只能由字母、数字、下划线三种字符组成,且第一个字符_____。
    a、必须为字母
    b、必须为下划线
    c、必须为字母或下划线
    d、可以是字母、数字、下划线中任意一种字符

3、【单选题】c 语言中最简单的数据类型包括_____。
    a、整型、实型、逻辑型
    b、整型、实型、字符型
    c、整型、字符型、逻辑型
    d、整型、实型、逻辑型、字符型

4、【单选题】若a为int类型,且其值为3,则执行完表达式a =a-=a*a后,a的值是_____。
    a、-3
    b、9
    c、-12
    d、6

5、【单选题】若t为double类型,表达式t=1,t 5,t 的值是_____。
    a、1
    b、6.0
    c、2.0
    d、1.0

6、【单选题】若已定义x和y为double类型,则表达式:x=1,y=x 3/2的值是_____。
    a、1
    b、2
    c、2.0
    d、2.5

7、【单选题】设a为5,执行下列语句后,b的值不为2的是_____。
    a、b=a/2
    b、b=6-(--a)
    c、b=a%2
    d、b=a>3?2:1

8、【单选题】下列四组选项中,均是不合法的用户标识符的选项是_____。
    a、ap _0 do
    b、float goto _a
    c、b-a goto int
    d、_123 temp int

9、【单选题】下列选项中,合法的c 语言关键字是_____。
    a、var
    b、cher
    c、integer
    d、default

10、【单选题】下面不正确的字符串常量是_____。
    a、'abc'
    b、"12\'12"
    c、"0"
    d、" "

11、【单选题】下面不正确的字符常量是 _____。
    a、"c"
    b、'\''
    c、'w'
    d、' '

12、【单选题】下述程序段的输出结果是_____。 int x=10; int y=x ; cout<<(x ,y)<< ","<    a、11,10
    b、11,11
    c、10,10
    d、10,11

13、【单选题】已知各变量的类型说明如下:int k,a,b; unsigned long w=5; double x=1.42; 则以下不符合c 语言语法的表达式_____。
    a、x%(-3)
    b、w =-2
    c、k=(a=2,b=3,a b)
    d、a =a-=(b=d) *(a=3)

14、【单选题】已知字母a的ascii编码为10进制数65,且c2为字符型,则执行语句c2='a' '6'-'3'后,c2中的值为_____。
    a、d
    b、68
    c、不确定的值
    d、c

15、【单选题】以下所列的c 语言常量中,错误的是_____。
    a、0xff
    b、1.2e0.5
    c、2l
    d、'\72'

16、【单选题】以下叙述正确的是_____。
    a、在c 程序中main函数必须位于程序的最前面
    b、c 程序的每行中只能写一条语句
    c、c 语言本身没有输入输出语
    d、在对一个c 程序进行编译的过程中,可发现注释中的错误

17、【单选题】以下运算符中,运算对象必须是整型的是_____。
    a、/
    b、%=
    c、!=
    d、〈=

18、【单选题】正确的标识符是_____。
    a、?a
    b、a=2
    c、a.3
    d、a_3

19、【单选题】在c 语言中(以16位pc机为例),5种基本数据类型的存储空间长度的排列顺序为_____。
    a、char    b、char=int    c、char    d、char=int=long int<=float
20、【单选题】假设所有变量均为整型,则表达式(a=2,b=5,b ,a b)的值是_____。
    a、7
    b、8
    c、6
    d、2

21、【单选题】以下不正确的叙述是_____。
    a、在c 程序中,逗号运算符的优先级最低
    b、在c 程序中,apa和apa是两个不同的变量
    c、如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值保持
    d、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

22、【单选题】若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为_____。
    a、4
    b、16
    c、32
    d、52

23、【单选题】下列四组选项中,均不是c 语言关键字的选项是_____。
    a、define if type
    b、getc char printf
    c、include scanf case
    d、while go pow

24、【单选题】下面四个选项中,均是c 语言关键字的选项是_____。
    a、auto enum include
    b、switch typedef continue
    c、signed union scanf
    d、if struct type

25、【单选题】下面四个选项中,均是合法整型常量的选项是_____。
    a、160 -0xffff 011
    b、-0xcdf 01a 0xe
    c、-01 986.012 0668
    d、-0x48a 3e5 0x

26、【单选题】下面四个选项中,均是合法转义字符的选项是_____。
    a、'\'' '\\' '\n'
    b、'\' '017' '\;;'
    c、'018' 'f' 'xab'
    d、'\\0' '\101' 'xlf'

27、【单选题】下面四个选项中,均是正确的八进制数或十六进制数的选项是_____。
    a、-10 0x8f -011
    b、0abc -017 0xc
    c、0010 -0x11 0xf1
    d、0a12 -0x123 -0xa

28、【单选题】己知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5; double x=1.42,y=5.2; 则以下符合c 语法的表达式是_____。
    a、a =a-=(b=4)*(a=3)
    b、a=a*3=2
    c、x%(-3)
    d、y=float(i)

29、【单选题】写出下面赋值表达式运算后a的值_____,设原来a=12。 a =a-=a*=a;
    a、24
    b、10
    c、4
    d、0

30、【单选题】已定义c为字符型变量,则下列语句中正确的是_____。
    a、c='97';
    b、c="97";
    c、c=97;
    d、c="a";

31、【单选题】已知大写字母a的ascii码是65,小写字母a的ascii码是97,则用八进制表示的字符常量'\101'是_____。
    a、字符a
    b、字符a
    c、字符e
    d、非法的常量

32、【单选题】以下程序运行后的输出结果是_____。#include using namespace std;void main(){ char m; m='b' 32; cout<    a、b
    b、b
    c、66
    d、98

33、【单选题】ascii码(含扩展ascii码)可以用一个字节表示,则可以表示的ascii码值个数为_____。
    a、1024
    b、256
    c、128
    d、80

34、【单选题】以下选项中合法的字符常量是_____。
    a、"b"
    b、'\010'
    c、68
    d、d

35、【单选题】若变量a是int类型,并执行了语句:a='a' 1.6; 则正确的叙述是_____。
    a、a的值是字符c
    b、a的值是浮点型
    c、不允许字符型和浮点型相加
    d、a的值是字符'a'的ascii值加上1

36、【单选题】英文小写字母d的ascii码为100,英文大写字母d的ascii码为_____。
    a、50
    b、66
    c、52
    d、68

37、【单选题】下列属于合法的无符号短整型常数的选项是_____。
    a、-2
    b、65536
    c、123l
    d、50000

38、【单选题】有以下程序段:int m=0,n=0; char c='a'; cin>>m>>c>>n; cout<,则输出结果是_____。
    a、10a10
    b、10a10
    c、10a0
    d、10a0

39、【单选题】有以下程序: #include using namespace std; void main() { char a='a',b; cout<< a; cout<<(b=a )<    a、bb
    b、bc
    c、ab
    d、ac

40、【单选题】若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为_____。
    a、a<>0
    b、!a
    c、a=0
    d、a

41、【单选题】若变量c为char类型,能正确判断出c为小写字母的表达式是_____。
    a、'a'<=c<= 'z'
    b、(c>='a')||(c<= 'z')
    c、('a'<=c)and ('z'>=c)
    d、(c>='a')&&(c<='z')

42、【单选题】下列程序执行后的输出结果是_____。 #include using namespace std; void main() { int x='f'; cout<    a、g
    b、h
    c、i
    d、j

43、【单选题】设有说明语句:char a='\72';则变量a _____。
    a、包含1个字符
    b、包含2个字符
    c、包含3个字符
    d、说明不合法

44、【单选题】以下选项中,非法的字符常量是_____。
    a、'\t'
    b、'\17'
    c、"n"
    d、'\xaa'

45、【单选题】下列运算符中,不属于关系运算符的是_____。
    a、<
    b、>=
    c、==
    d、!

46、【单选题】已定义ch为字符型变量,以下赋值语句中错误的是_____。
    a、ch='\';
    b、ch=62 3;
    c、ch=null;
    d、ch='\xaa';

47、【单选题】以下程序的输出结果是_____。 #include using namespace std; void main() { char c='z'; cout<    a、a
    b、z
    c、z-25
    d、y

48、【单选题】语句”cout<< "a\bre\'hi\'y\\\bou\n";”的输出结果是_____。(说明:'\b'是退格符)
    a、a\bre\'hi\'y\\\bou
    b、a\bre\'hi\'y\bou
    c、re'hi'you
    d、abre'hi'y\bou

49、【单选题】有以下定义语句,编译时会出现编译错误的是_____。
    a、char a= 'a';
    b、char a='\n';
    c、char a='aa';
    d、char a='\x2d';

50、【单选题】有如下程序 #include using namespace std; void main( ) { int y=3,x=3,z=1; cout<<( x,y )<<" "<    a、3 4
    b、4 2
    c、4 3
    d、3 3

51、【单选题】请读程序段:short int i=65536; cout<    a、65536
    b、0
    c、有语法错误,无输出结果
    d、-1

52、【单选题】若x和y都是int型变量,x=100,y=200,且有下面的程序段: cout<<(x,y); 上述程序段的输出结果是_____。
    a、200
    b、100
    c、100 200
    d、输出不确定的值

53、【单选题】以下程序的输出结果是_____。 #include #include using namespace std; void main( ) { int a=1,b=4,c=2; float x=10.5 , y=4.0 , z; z=a b/c sqrt((double)y)*1.2/c x; cout<    a、14.0
    b、15.4
    c、14.7
    d、14.9

54、【单选题】以下不正确的叙述是_____。
    a、在c 程序中,逗号运算符的优先级最低
    b、在c 程序中,apa和apa是两个不同的变量
    c、如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值保持不变
    d、当从键盘输入数据时,对于整型变量只能输入整型数值,实型变量只能输入实型数

55、【单选题】语句cout<<"s\\t"的输出结果为_____。
    a、s\\t
    b、s\t
    c、s\
    d、s

56、【单选题】逻辑运算符两侧运算对象的数据类型_____。
    a、只能是0或l
    b、只能是0或非0正数
    c、只能是整型或字符型数据
    d、可以是任何类型的数据

57、【单选题】以下关于运算符优先顺序的描述中正确的是_____。
    a、关系运算符<算术运算符<赋值运算符<逻辑与运算符
    b、逻辑与运算符<关系运算符<算术运算符<赋值运算符
    c、赋值运算符<逻辑与运算符<关系运算符<算术运算符
    d、算术运算符<关系运算符<赋值运算符<逻辑与运算符

58、【单选题】下列运算符中优先级别最高的是_____。
    a、<
    b、
    c、&&
    d、!=

59、【单选题】能正确表示”当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是_____。
    a、(x>=1)&&(x<=10&&(x>=200)&&(x<=210)
    b、(x>=1)||(x<=10)||(x>=200)||(x<=210)
    c、(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
    d、(x>=1)||(x<=10)&&(x>=200)||(x<=210)

3.4章节测验

1、【单选题】执行以下程序段时______。 int x=-1; do { x=x*x; } while(! x);
    a、循环体将执行一次
    b、循环体将执行两次
    c、循环体将执行无限次
    d、系统将提示有语法错误

2、【单选题】以下程序的输出结果是______。 #include using namespace std; void main( ) { int n=4; while(n--) cout<<(--n)<<" "; }
    a、2 0
    b、3 1
    c、3 2 1
    d、2 1 0

3、【单选题】在下列选项中,没有构成死循环的程序段是______。
    a、int i=100; while(1) { i=i0 1; if(i>100)break; }
    b、for( ; ;) ;
    c、int k=1000; do{ k;} while(k>=10000);
    d、int s=36; while(s);--s;

4、【单选题】以下程序的输出结果是______。 #include using namespace std; void main() { int i,j,x=0; for(i=0;i<2;i ) { x ; for(j=0;j<=3;j ) { if(j%2)continue; x ; } x ; } cout<<"x="<    a、x=4
    b、x=8
    c、x=6
    d、x=12

5、【单选题】假定a和b为int型变量,则执行以下语句后b的值为______。 a=1; b=10; do { b-=a; a ; } while (b--<0) ;
    a、9
    b、-2
    c、-1
    d、8

4.7章节测验

1、【单选题】正确的函数定义形式为 。
    a、void fun(void)
    b、double fun(int x;int y)
    c、int fun(int=0,int);
    d、double fun(int x,y)

2、【单选题】若有函数调用语句:fun(a b,(x,y),(x,y,z));此调用语句中的实参个数为 。
    a、3
    b、4
    c、5
    d、6

3、【单选题】必须用一对大括号括起来的程序段是 。
    a、switch 语句中的case标号语句
    b、if语句的分支
    c、循环语句的循环体
    d、函数的函数体

4、【单选题】c 中,关于默认形参值,正确的描述是 。
    a、设置默认形参值时,形参名不能缺省
    b、只能在函数定义时设置默认形参值
    c、应该先从右边的形参开始向左边依次设置
    d、应该全部设置

5、【单选题】关于c 主函数特性,下列叙述正确的是 。
    a、主函数在同一个c 文件中可以有两个
    b、主函数类型必须是void类型
    c、主函数一定有返回值
    d、每个c 程序都必须有一个main函数

6、【单选题】在c 语言中,main函数默认返回一个 类型的值。
    a、int
    b、float
    c、char
    d、void

7、【单选题】若同时定义了如下函数,fun(8,3.1)调用的是下列哪个函数 。
    a、void fun(float,int)
    b、void fun(double,int)
    c、void fun(char,float)
    d、void fun(double,double)

8、【单选题】在“文件包含”预处理命令形式中,当#include后面的文件名用< >(尖括号)括起时,寻找被包含文件的方式是 。
    a、直接按系统设定的标准方式搜索目录
    b、先在源程序所在目录中搜索,再按系统设定的标准方式搜索
    c、仅仅搜索源程序所在目录
    d、仅仅搜索当前目录

9、【单选题】c 语言中规定函数的返回值类型是由 。
    a、return 语句中的表达式类型所决定
    b、调用该函数时的主调用函数类型所决定
    c、调用该函数时系统临时决定
    d、在定义该函数时指定的数据类型所决定

10、【单选题】有函数原型void fun4(int &);下面选项中,正确的调用是 。
    a、int x=2.17; fun4(&x);
    b、int a=15:fun4(a*3.14);
    c、int b=100; fun4(b).;
    d、fun4(256):

11、【单选题】下面程序执行后的输出结果是 。 #include using namespace std; #define max(x,y) x>y?x:y void main() { int a=5,b=2,c=3,d=3,t; t=max(a b,c d)*10; cout<    a、9
    b、8
    c、7
    d、6

12、【单选题】下列的描述中 是错误的。
    a、使用全局变量可以从被调用函数中获取多个操作结果
    b、局部变量可以初始化,若不初始化,则系统默认它的值为0
    c、当函数调用完后,静态局部变量的值不会消失
    d、全局变量若不初始化,则系统默认它的值为0

13、【单选题】以下叙述中不正确的是 。
    a、函数中的自动变量可以赋初值,每调用一次,赋一次初值
    b、在调用函数时,实参和对应形参在类型上只需赋值兼容
    c、外部变量的隐含类别是自动存储类别
    d、函数形参可以说明为register变量

14、【单选题】下列选项中, 具有文件作用域。
    a、函数形参
    b、局部变量
    c、全局变量
    d、静态变量

15、【单选题】以下有关宏替换的叙述中错误的是 。
    a、宏替换不占用运行时间
    b、宏名无类型
    c、宏替换只是字符替换
    d、宏名必须用须用大写字母表示

16、【单选题】在任何情况下计算平方都不会引起二义性的宏定义是 。
    a、#define power(x) ((x)*(x))
    b、#define power(x)(x)*(x)
    c、# define power(x) (x* x)
    d、#define power(x) x* x

17、【单选题】设#define p(x) x/x,执行语句cout <    a、1
    b、25
    c、0
    d、15

18、【单选题】下列不是函数重载所要求的条件是 。
    a、函数名相同
    b、参数个数不同
    c、参数类型不同
    d、函数返回值类型不同

19、【单选题】如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一程序的其他文件中的函数调用,则说明这个函数是 。
    a、私有函数
    b、内部函数
    c、外部函数
    d、库函数

20、【单选题】在c 中把不返回任何类型的函数说明为 。
    a、int
    b、float
    c、char
    d、void

21、【单选题】假定n=2,下列程序的运行结果是 。 #include using namespace std; int fun(int m); void main() { cout << "please input a number :"; int n, s = 0; cin >> n; s = fun(n); cout << s << endl; } int fun(int m) { int p =1, s = 0; for (int i = 1; i <= m; i ) { p *= i; s = p; } return s; }
    a、1
    b、3
    c、5
    d、7

22、【单选题】在编译指令中,宏定义使用 指令。
    a、# include
    b、#if
    c、#define
    d、#else

23、【单选题】在参数传递过程中,对形参和实参的要求是 。
    a、参数定义时,形参一直占用存储空间
    b、实参可以是常量、变量或表达式
    c、形参可以是常量、变量或表达式
    d、形参和实参类型和个数都可以不同

24、【单选题】在c 中所有的函数名称后面都紧跟着一对括号,其中既可以没有内容,也可以包含函数的参数,这对括号是 。
    a、()
    b、<>
    c、[]
    d、{}

25、【单选题】在函数中,可以用auto,extern,register和static这4个关键字中的一个来说明变量的存储类型。如果不说明存储类型则默认的存储类型是 。
    a、auto
    b、extern
    c、register
    d、static

26、【单选题】在函数的定义格式中,下面各组成部分中, 是可以省略的。
    a、函数名
    b、函数数据类型说明
    c、函数体
    d、函数参数

27、【单选题】下面程序执行后的输出结果是 。 #include using namespace std; #define add(x) x x void main() { int m = 1, n = 2, k=3, sum; sum = add(m n)*k; cout << sum; }
    a、9
    b、18
    c、12
    d、10

28、【单选题】使用值传递方式将实参传给形参,下列说法正确的是 。
    a、形参是实参的备份
    b、实参是形参的备份
    c、形参和实参是同一对象
    d、形参和实参无联系

29、【单选题】下列函数调用中,对调用它的函数没有起到任何作用的是 。
    a、void fl(double &.x){--x;}
    b、double f2(double x){return x-1.5;}
    c、void f3(double x){--x;}
    d、double 14(double * x){--*x;return * x;}

30、【单选题】内部静态变量的作用域是 。
    a、定义该静态变量的函数外部
    b、定义该静态变量的函数内部
    c、定义该静态变量的文件外部
    d、定义该静态变量的文件内部

31、【单选题】以下正确的说法是 。
    a、用户若需要调用标准函数,调用前必须重新定义
    b、用户可以直接调用所有标准库函数
    c、用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数
    d、用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数

32、【单选题】在 的情况下适宜采用inline 定义内联函数。
    a、函数体含有循环语句
    b、函数体含有递归语句
    c、函数代码少、频繁调用
    d、函数代码多、不常调用

33、【单选题】不能实现函数之间数据传递的是 。
    a、全局变量
    b、局部变量
    c、函数接口
    d、函数返回值

34、【单选题】在c 中编写一个内联函数fsqu,使用double类型的参数,求其平方并返回,返回值为double类型,下列定义正确的是 。
    a、double fsqu(double x){returnx*x;}
    b、inline double fsqu(double x){returnx*x;}
    c、double inline fsqu(double x)(returnx*x;)
    d、double fsqu (double x){inine return x*x;}

35、【单选题】下列对定义重载函数的要求中, 是错误的提法。
    a、要求参数的个数相同
    b、要求参数的类型相同时,参数个数不同
    c、函数的返回值可以不同
    d、要求参数的个数相同时,参数类型不同

36、【单选题】下面程序执行后的輸出结果是 。 #include < iostream > using namespace std; #define ma(x) x*x-1 void main() { int a=1,b=2; cout<    a、12
    b、10
    c、8
    d、6

37、【单选题】重载函数在调用时选择的依据中,错误的是 。
    a、函数的参数
    b、参数的类型
    c、函数的名字
    d、函数返回值类型

38、【单选题】下面程序执行后的输出结果是 。 #include < iostream > using namespace std; # define double (r) r*r void main() { int x=1,y=2,t; t = double(x y) ; cout<< t; }
    a、5
    b、5.0
    c、4
    d、9.0

39、【单选题】下面程序执行后的输出结果是 。 #include < iostream > using namespace std; #define r 0.5 #define area(x) r*x*x void main() { int a=1, b=2; cout<    a、0.0
    b、0.5
    c、3.5
    d、4.5

40、【单选题】下列关于函数参数默认值的描述中,正确的是 。
    a、函数参数的默认值只能设置一个
    b、若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值
    c、若一个函数含有多个参数,则设置默认参数时可以不连续设置默认值
    d、c 语言中函数都必须设有默认值

41、【单选题】若有宏定义#define mod(x,y) x%y,下面程序段的结果是 。 int z,a=15; float b= 100; z= mod(b,a); cout<    a、语法错误
    b、11
    c、10
    d、6

42、【单选题】若调用一个函数,且此函数中没有return语句,则正确的说法是该函数 。
    a、没有返回值
    b、返回若千个系统默认值
    c、有返回值,但返回一个不确定的值
    d、返回一个用户所希望的函数值

43、【单选题】下面程序执行后的输出结果是 。 #include < iostream > using namespace std; #define
    a、3 #define
    b、2* a #define
    c、b a void main() { int a=b; cout<    d、9_3

44、【单选题】下列函数原型声明中错误的是 。
    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);

45、【单选题】若有宏定义: #define n 3 #define y(n) ((n 1) *n) 则表达式2* (n y(5 1))的值是 。
    a、48
    b、42
    c、54
    d、出错

46、【单选题】一个函数为void x(int,char ch='a'),另一个函数为void x(int),则它们 。
    a、不能在同程序中定义
    b、可以在同一程序中定义并可重载
    c、可以在同程序中定义,但不可以重载
    d、以上说法均不正确

47、【单选题】设存在函数int min(int,int)返回两参数中较小值,若求10,55,78 三者中最小值,下列表达式不正确的是 。
    a、int m= min(10, min(55,78));
    b、int m=( min(10,55),78);
    c、int m= min(10,55,78);
    d、int m= min(55,min(10,78));

48、【单选题】下列 类型函数不适合声明为内联函数。
    a、函数体语句较多
    b、函数体语句较少
    c、函数执行时间较短
    d、函数执行时间过长

49、【单选题】进行初始化即可自动获取初值为0的变量包括 。
    a、任何用static 修饰的变量
    b、任何在函数外定义的变量
    c、局部变量和用static修饰的全局变量
    d、全局变量和用static修饰的局部变量

50、【单选题】对于某个函数调用,不给出调用函数的声明的情况是 。
    a、被调用函数是无参函数
    b、被调用函数是无返回值的函数
    c、函数的定义在调用处之前
    d、函数的定义在别的程序文件中

51、【单选题】所有在函数中定义的变量,连同形式参数都是 。
    a、全局变量
    b、局部变量
    c、静态变量
    d、寄存器变量

52、【单选题】下列叙述中错误的是 。
    a、一个函数中可以有多条return语句
    b、调用函数必须在一条独立的语句中完成
    c、函数中通过return语句传递函数值
    d、主函数名main也可以带有形参

53、【单选题】在一个c 源程序文件中定义的全局变量的有效范围是 。
    a、该c 程序的所有源程序文件
    b、本源程序文件的全部范围
    c、从定义变量的位置开始到本源程序文件结束
    d、函数内部全部范圈

54、【单选题】不合法的main函数命令行参数表示形式是 。
    a、main(int a,char * c[1])
    b、main(int arc,char **arv)
    c、main(int argc,char * argv)
    d、main(int argy,char *argc[])

55、【单选题】下面关于c 语言变量的叙述错误的是 。
    a、c 语言中分为auto、static、extern和registr这4种存储类型
    b、自动变量和外部变量的作用城为整个程序
    c、内部静态变量的作用城是定义它的函数
    d、外部静态变量的作用城是定义它的文件

56、【单选题】下面程序执行后的输出结果是 。 #include < iostream > using namespace std; #define f(x) (x) * (x) void main() { int i1,i2; i1=f(8)/f(4); i2=f(4 4)/f(2 2); cout<    a、64,28
    b、4,4
    c、4,3
    d、64, 64

57、【单选题】定义宏将两个float类型变量的数据交换,下列写法中最好的是 。
    a、#define jh(a,b) t=a;a= b;b=t;
    b、#define jh(a,b) {float t;t=a;a=b;b=t;}
    c、#define jh(a,b) a=b;b=a;
    d、# define jh(a,b,t) t-a;a=b;b=t;

58、【单选题】已知宏定义#define p(x,y,z) x=y*z;,则宏替换p(a,x 5,y-3.1)应为 。
    a、a=x 5* y-3,1;
    b、a=(x 5) * (y-3.1); b. a=x 5*y-3.1 d. a-(x 5)* (y-3.1)

59、【单选题】在函数的返回值类型与返回值表达式类型的描述中,错误的是 。
    a、函数返回值的类型是在定义函数时确定的,在函数调用时不能改变
    b、函数返回值的类型就是返回值表达式的类型
    c、函数返回值的类型与返回值表达式类型不同时,函数表达式类型应转换成返回值类型
    d、函数返回值的类型决定了返回值表达式的类型

60、【单选题】以下叙述中错误的是 。
    a、预处理命令行都必须以#开始
    b、在程序中凡是以#开始的语句行都是预处理命令行
    c、c 程序在执行过程中对预处理命令行进行处理
    d、预处理命令行可以出现在c 程序中任意一行上

61、【单选题】在下划线处填上求两个浮点数之差的cha函数的原型声明、调用方法. #include using namespace std; void main() { float a, b; (1_____________) //函数cha的原型声明;
    a、= 12, 5;
    b、= 6.5; float
    c、= (2___________); //调用函数cha cout << c << endl; }
    d、float cha(float x, float y) {
    e、float w; w = x - y;
    f、return w;}

62、【填空题】当函数参数表用____保留字表示时,表示该参数表为空。

63、【填空题】在c 程序中,所有函数在使用前都要使用相应的函数原型语句加以声明,但____函数不需要声明。

64、【填空题】用预处理指令#define声明一个常数,用来表明1年中有多少秒(忽略闰年问题),应该写成____。

65、【填空题】在c 中函数原型不但能标识函数的____,而且能标识函数参数的____。

66、【填空题】____可以删除由#define定义的宏,使之不再起作用。

67、【填空题】在调用一个函数的过程中可以直接或间接地调用该所数,这种调用称为___调用,该函数称为____函数。

68、【填空题】c 提供的预处理命令有嵌入指令、条件编译指令和____。

69、【填空题】重新定义标识符的作用域规定是外层变量被隐藏,____变量是可见的。

70、【填空题】已知递归函数f的定义如下: int f(int n){ f (n<=1) return 1; //递归结束情况 else return n* f(n-2);} //递归 则函数调用语句f(5)的返回值是____。

71、【填空题】关键字static有三个明显作用:____,____和____。

72、【填空题】写一个”标准”宏min,这个宏输入两个参数并返回较小的一个:____。

73、【填空题】在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是____定义的头文件。

74、【填空题】函数调用func( (exp1 ,exp2),(exp3,exp4 ,exp5))中所含实参的个数为____。

75、【填空题】一个函数带有参数说明时,参数的默认值应该在____中给出。

76、【填空题】在下划线处填上适当字句,完成求最大值函数模板的定义。 #include using namespace std; template t max(t x, t y) { return(x>y ? x : y); } (1____) t max(t x, t y, t z) { t t=max(x,y); return((2____)); } void main() { int x; double y; x = max(5, 6); y = max(12.3, 3.4, 7.8); cout << "x=" << x<"y="
77、【填空题】下面程序三次调用同一函数sum,在下划线处填上适当内容,使输出结果为: s=2 5=5 s=9 #include using namespace std; void sum(int i) { static int s; (1____); cout << "s=" << s << end; } void main(void) { int 1; for (1 = 0; (2____)) sum(i); }

78、【填空题】在下面程序下划线处填上适当内容,使程序执行结果为: 200________100 #include using namespace std; template(1____) t f(t x, t y){ if (sizeof(t) == (2____)) return x y; else return x*y; } void main() { cout << f(10, 20) << "--" << (45.5, 54.5) << endl; }

79、【填空题】在下划线处填上适当字句,完成求最大值函数模板的定义。 #include using namespace std; template t max(t x, t y) { return(x>y ? x : y); } (1____)); } void main() { int x; double y; x = max(5, 6); y = max(12.3, 3.4, 7.8); cout << "x=" << x<"y="
80、【填空题】请写出程序的运行结果。 include using namespace std; int f____ { int c; if ____ c = l; else if ____ c = 0; else c = -1; return ____; } void main____ { int i = 2, j = 3; int p = f____; cout << p << endl; }

81、【填空题】请写出程序的输出结果。 #include < iostream> using namespace std; void f2____ { int z = x; x = y; y = z; } void main____ { int x = 10, y = 26; cout << "x, y=" << x << "," << y << endl; f2____; cout << "x, y=" << x << "," << y << endl; x ; y--; f2____; cout << "x, y=" << x << "," << y << endl; }

82、【填空题】阅读下列程序,并写出输出结果。 #include using namespace std; int f(int); void main(){ int i; for (i = 0; i<3; i ) cout << f(i) << "____"; cout << endl; } int f(int a) { int b = 0; static int c = 3; b ; c ; return(a b c); }

83、【填空题】阅读下列程序,并写出输出结果。 #include using namespace std; int min____{ return a
84、【填空题】写出下面程序执行后的运行结果。 #include< iostream> using namespace std; #define n 1 #define mn 2 #define num 3*m 1 void main____ { int i; for ____ cout<
85、【填空题】写出下面程序执行后的运行结果。 #include< iostream> using namespace std; # include #define round____ ____ ____*pow ____ 0. 5) /pow ____) void main____ cout<
86、【填空题】写出下面程序执行后的运行结果。 #include< iostream> using namespace std; #define release 0 void main____ { int i;char str[20]="northwest",c; for ____!='\0';i ) { #ifdef release if ____ c=c-32; #else if ____ c=c 32; #endif cout<
87、【填空题】写出下面程序执行后的运行结果。 #include< iostream> using namespace std; void main____ { int b = 5, y = 3; #define b 2 #define f____ b*x cout << f____; #undef b cout << f____; #define b 3 cout << f____; }

88、【填空题】写出下面程序执行后的运行结果。 #include< iostream> using namespace std; #define debug void main____ { int a = 20, b =10, c; c = a / b; #ifdef debug cout << a << "/" << b << "="; #endif cout << c; }

89、【填空题】编写求n!____,然后编写函数原型为double cmk____,调用阶乘函数计算ckm,计算公式为ckm=m!/____!),在主函数中输入m、k,调用这两个函数计算c83的结果。

90、【填空题】用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入、输出;递归公式为: 其中n和x为任意正整数,计算当x=10时的p1____,p2____,…p30____。在主函数中输入数据并调用函数得到结果。

91、【填空题】编写递归函数getpower____,计算x的y次幂,在主程序中实现输入输出。

92、【填空题】汉诺____塔问题是一个经典问题。有三根细柱a,b,c, 柱a上套有n个从小到大的圆盘,小的在上,大的在下,要求把这n个盘移到c柱上,在移动的过程中可以借助b柱,每次只许动一个盘,且在移动过程中在三根柱上总是保持大盘在下,小盘在上。编写程序来完成盘子的移动,打印出移动的步骤。

93、【填空题】三角形的面积为area= ,其中s=____ /2, a,b,c为三角形的三边。定义两个带参数的宏,一个用来求s,另一个用来求area。编写程序在主函数中用带实参的宏名来求三角形的面积。

94、【填空题】我国最新的个人所得税(工资所得)缴纳方法为:每月取得工资收入后,先减去个人承担的基本养老保险金、医疗保险金、失业保险金,以及按省级政府规定标准缴纳的住房公积金及专项附加扣除项目,再减去费用扣除额60000元/年,为应纳税所得额,按3%~45%的7级超额(下表所示)累进税率计算缴纳个人所得税。计算公式为:应纳个人所得税税额=应纳税所得额×适用税率 - 速算扣除数。 级数 全年应纳税所得额 税率(%) 速算因子 1 不超过36000元的 3 0 2 超过36000元至144000元的部分 10 210 3 超过144000元至300000元的部分 20 1410 4 超过300000元至420000元的部分 25 2660 5 超过420000元至660000元的部分 30 4410 6 超过660000元至960000元的部分 35 7160 7 超过960000元的部分 45 15160 将上述个人所得税缴纳计算用带参数宏定义出来,使用这个宏定义,编写程序计算应缴纳所得税金额。

95、【填空题】使用模板函数实现swap____,函数功能为交换x,y的值

96、【填空题】编写程序,在主程序中输入两个数opl、op2以及一个字符com,然后根据com的值____,选择4个函数调用并显示结果。这4个函数的原型为: int add____:计算a,b的加法。 int sub____:计算a,b的减法。 int mul____:计算a,b的乘法。 int div____:计算a,b的除法。

97、【简答题】指令指示编译器将一个源文件嵌入到带该指令的源文件之中。

98、【简答题】给定一个十进制正整数n,判断其是否为完数。所谓完数是指不包括其本身的所有因数之和恰好等于其本身的数。例如,6是一个完数,因为6的因数有1.2.3.6,不包含6本身的因数和为1 2 3,恰好为6.请写一个函数来判断一个数是否为完数。

99、【简答题】我国最新的个人所得税(工资所得)缴纳方法为:每月取得工资收入后,先减去个人承担的基本养老保险金、医疗保险金、失业保险金,以及按省级政府规定标准缴纳的住房公积金及专项附加扣除项目,再减去费用扣除额60000元/年,为应纳税所得额,按3%~45%的7级超额(如下表所示)累进税率计算缴纳个人所得税。计算公式为:应纳个人所得税税额=应纳税所得额×适用税率 - 速算扣除数。 将上述个人所得税缴纳计算用带参数宏定义出来,使用这个宏定义,编写程序计算应缴纳所得税金额。

100、【简答题】空

101、【简答题】空

102、【简答题】空

103、【简答题】空

104、【简答题】空

105、【简答题】空

5.4章节测验

1、【单选题】在c 语言中,引用数组元素时,其数组下标的数据类型允许是 。
    a、整型常量
    b、整型表达式
    c、整型常量或整型表达式
    d、任何类型的表达式

2、【单选题】在c 语言中引用数组元素时,关于数组下标数据类型的说法错误的是 。
    a、整型常量
    b、整型表达式
    c、整型常量或整型表达式
    d、任何类型的表达式

3、【单选题】若有说明:int a[10];则对a数组元素的正确引用是 。
    a、a[10]
    b、a[3.5]
    c、a(5)
    d、a[10-10]

4、【单选题】下列关于数组的描述正确的是 。
    a、数组的长度是固定的,而其中元素的数据类型可以不同
    b、数组的长度是固定的,而其中元素的数据类型必须相同
    c、数组的长度是可变的,而其中元素的数据类型可以不同
    d、数组的长度是可变的,而其中元素的数据类型必须相同

5、【单选题】以下对一维整型数组a的正确说明是 。
    a、int a(10);
    b、int n=10,a[n];
    c、int n; cin>>n; int a[n];
    d、#define size 10 int a[size];

6、【单选题】以下叙述中错误的是 。
    a、对于double类型的数组,不可以直接用数组名对数组进行整体输入或输出
    b、数组名代表的是数组所占存储区的首地址,其值不可改变
    c、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
    d、可以通过赋初值的方式确定数组元素的个数

7、【单选题】要定义数组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};

8、【单选题】对以下说明语句的正确理解是 。 int a[10]={6,7,8,9,10};
    a、将5个初值依次赋给a[1]至a[5]
    b、将5个初值依次赋给a[0]至a[4]
    c、将5个初值依次赋给a[6]至a[10]
    d、因为数组长度与初值的个数不相同,所以此语句不正确。

9、【单选题】有数组声明int value[30];下标值引用错误的是 。
    a、value[30]
    b、value[0]
    c、value[l0]
    d、value[20]

10、【单选题】下列一维数组定义正确的是 。
    a、x=6;int num[x];
    b、const int x= 6; float a[x];
    c、const float x= 6; int b[x];
    d、const int x; int c[x];

11、【单选题】下面的二维数组定义中正确的是 。
    a、int a[][]={l,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};

12、【单选题】若二维数组a 有m 列,则计算任一元素a[i][j]在数组中位置的公式为: 。(假设a[0][0]位于数组的第一个位置上。)
    a、i*m j
    b、j*m i
    c、i*m j-1
    d、i*m j 1

13、【单选题】以下对二维数组a进行初始化正确的是 。
    a、int a[2][]={{l,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}};

14、【单选题】若有定义int a[3][4]; 则正确引用数组a元素的是 。
    a、a[2][4]
    b、a[3][3]
    c、a[0][0]
    d、a[3][4]

15、【单选题】若定义了int b[][3] = { 1, 2, 3, 4, 5, 6, 7}; 则b数组第一维的长度是 。
    a、2
    b、3
    c、4
    d、无确定值

16、【单选题】若有定义int a[][4]={0,0}; 以下叙述中错误的是 。
    a、数组a的每个元素都可得到初值0
    b、二维数组a的第一维大小为1
    c、因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1
    d、只有元素a[0][0]和a[0][l]可得到初值0,其余元素均得不到初值0

17、【单选题】下面程序 void main() { float a[3]=; inti; for(i=0;i<3;i )cin>>a[i]; for(i=1;i<4;i ) a[0]=a[0] a[i]; cout<    a、没有错误
    b、第3行有错误
    c、第5行有错误
    d、第6行有错误

18、【单选题】若二维数组a有m列,则计算元素a[i][j]在数组中相对位置的公式为 。
    a、i*m j
    b、j*m i
    c、i*m j-1
    d、i*m十j l

19、【单选题】下面选项中等价的是 。
    a、int a[2][3]={1,0,2,2,4,5}与int a[2][]={1,0,2,2,4,5};
    b、int a[][3]= {l,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,l}与int a[2][3]= {{0},{l}};

20、【单选题】以下不能正确定义二维数组的选项是 。
    a、int a[2][2]= {{l},{2}};
    b、int a[][2]={l,2,3,4};
    c、int a[2][2]={{1},2,3};
    d、int a[2][]={{1,2},{3,4}};

21、【单选题】下面程序中有错误的行是 。 void main() { float a[3]={1}; int i; cin>>a; for(i=1;i<3;i ) a[0]=a[0] a[i]; cout<<" a*0 =" <    a、3
    b、6
    c、7
    d、5

22、【单选题】下面程序的输出结果是 。 #include< iostream> using namespace std; void main() { int n[2],i,j, k = 2; for(i=0; i < k; i ) for (j = 0; j < k; j ) n[j] = n[i] 1; cout << n[j - 2]; }
    a、不确定的值
    b、3
    c、2
    d、1

23、【单选题】串的长度是 。
    a、串中不同字符的个数
    b、串中不同字母的个数
    c、串中所含字符的个数且字符个数大于0
    d、串中所含字符的个数

24、【单选题】下列说法正确的是 。
    a、字符型数组与整型数组可通用
    b、字符型数组与字符串其实没什么区别
    c、当字符串放在字符数组中,这时要求字符数组长度比字符串长一个单元,因为要放字符串终结符'\0' 。
    d、字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别

25、【单选题】下面有关字符数组的描述中错误的是 。
    a、字符数组可以存放字符串
    b、字符串可以整体输入、输出
    c、可以在赋值语句中通过赋值运算对字符数组整体赋值
    d、不可以用关系运算符对字符数组中的字符串进行比较

26、【单选题】给出下面定义: char a []="abed"; char b[]= {'a','b','c','d'}; 则下列说法正确的是 。
    a、数组a与数组b等价
    b、数组a和数组b的长度相同
    c、数组a的长度大于数组b的长度
    d、数组a的长度小于数组b的长度

27、【单选题】若有说明:int a[3][4];则对a 数组元素的非法引用是 :
    a、a[0][2*1]
    b、a[1][3]
    c、a[4-2][0]
    d、a[0][4]

28、【单选题】要使字符串变量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";

29、【单选题】下面程序的输出结果是 。 #include< iostream> using namespace std; #include "string.h" void main() { char a[] = "welcome", b[] = "well "; strcpy(a, b); cout << a << endl; }
    a、wellome
    b、well om
    c、well
    d、well we

30、【单选题】在c 语言中,一维数组的定义方式为:<类型说明符> 数组名 ;
    a、[整型常量表达式]
    b、[整型表达式]
    c、[常量]
    d、[整型常量] 或[整型表达式]

31、【单选题】下列是为字符数组赋字符串的语句组,其中错误的是 。
    a、char s[l0]; s="program";
    b、char s[]=" program";
    c、char s[l0]="hello!";
    d、char s[l0];strcpy(s,"hello !");

32、【单选题】若己知char str[20]; 有语句cin>>str; 当输入为this is a c program时,str所得结果是 。
    a、this is a c program
    b、this
    c、this is
    d、this is a c

33、【单选题】若有说明:int a[3][4];则对a 数组元素的正确引用是 。
    a、a[2][4]
    b、a[1,3]
    c、a[1 1][0]
    d、a(2)(1)

34、【单选题】若有以下定义: char s[l0]=" program",t[]=" test"; 则对字符串的操作错误的是 。
    a、strcpy( s, t) ;
    b、cout<    c、strcat("this",t);
    d、cin>>t;

35、【单选题】若有以下定义: int a[]={l,2,3,4,5,6,7}; char c= 'b', c2 = '2'; 则表达式值不为2的是 。
    a、a[1]
    b、(int) c2
    c、a['3'-c2]
    d、c2-'0'

36、【单选题】以下对二维数组a 的正确说明是 。
    a、int a[3][];
    b、float a(3,4);
    c、double a[1][4];
    d、float a(3)(4);

37、【单选题】字符数组s不能作为字符串使用的是 。
    a、char s[]="happy";
    b、char s[6]={'h','a','p','p','y',''};
    c、char s[] = {"happy"};
    d、char s[5]={'h','a','p','p','y'};

38、【单选题】下面程序段执行后的输出结果是 。 int k,a[3] [3]={1,2,3,4,5,6,7,8,9}; for (k=0;k<3;k ) cout<    a、3 5 7
    b、3 6 9
    c、1 5 9
    d、1 4 7

39、【单选题】下面程序段执行后的输出结果是 。 char c [5]= {'a','b','','c',''}; cout<    a、'a’’b’
    b、ab
    c、ab c
    d、abc

40、【单选题】以下不能对二维数组a 进行正确初始化的语句是 。
    a、int a[2][3]=;
    b、int a[2][3]={{1,2},{3,4},{5,6}};
    c、int a[][3]={{1,2},};
    d、int a[][3]={1,2,3,4,5,6}

41、【单选题】有两个字符数组a, b,则以下 是正确的输入语句。
    a、gets(a, b);
    b、cin>>a;cin>>b;
    c、cin>>&a>>&b;
    d、gets("a") ; gets("b");

42、【单选题】表达式strcmp("3. 14","3.278")的值是 。
    a、非零整数
    b、浮点数
    c、0
    d、字符

43、【单选题】程序段执行后的输出结果是 。 char c[] = "\t\b\\\0will\n"; cout<    a、14
    b、3
    c、9
    d、6

44、【单选题】下面程序 。 void main() { float a[10]={0.0}; int i; for(i=0;i<3;i ) cin>>a[i]; for(i=1;i<10;i ) a[0]=a[0] a[i]; cout<    a、没有错误
    b、第3行有错误
    c、第5行有错误
    d、第7行有错误

45、【单选题】以下叙述中正确的是 。
    a、两个字符串所包含的字符个数相同时,才能比较字符串
    b、字符个数多的字符串比字符个数少的字符串大
    c、字符串"stop "与"stop"相等
    d、字符串"that"小于字符串"the"

46、【单选题】下面程序执行后的输出结果是 。 #include< iostream> using namespace std; #include "string" void main() { char ch[7] = "12ab56"; int i, s = 0; for (i = 0; ch[i] > '0'&&ch[i] <= '9'; i = 2) s = 10 * s ch[i] - '0'; cout << s; }
    a、1
    b、1256
    c、12ab56
    d、ab

47、【单选题】以下各组选项中,均能正确定义二维实型数组a 的选项是 。
    a、float a[3][4]; float a[][4]; float a[3][]={{1},};
    b、float a(3,4); float a[3][4]; float a[][]={{0};};
    c、float a[3][4]; float a[][4]={{0},}; float a[][4]={{1},{2},{3}};
    d、float a[3][4]; float a[3][]; float a[][4];

48、【单选题】下面程序执行后的输出结果是 。 #include< iostream> #include using namespace std; void main() { char str[]="sswlia",c; int k; for (k =1;(c=str[k])!='\0';k ) { switch (c) { case 'i': k; break; case 'l':continue; default: cout << c; continue; } cout << '*'; } }
    a、ssw
    b、sw*
    c、sw*a
    d、sw

49、【单选题】以下能对一维数组a进行正确初始化的语句是 。
    a、int a[10]=(0,0,0,0,0);
    b、int a[10]={};
    c、int a[]=;
    d、int a*10 =“10*1”;

50、【单选题】下面程序执行后的输出结果是 。 #include< iostream> #include using namespace std; void main() { int a[3][3] = { { 1, 2 }, { 3, 4 }, { 5, 6 } }, i, j, s = 0; for (i = 1; i < 3; i ) for (j = 0; j <= i; j ) s = a[i][j]; cout << s; }
    a、18
    b、19
    c、20
    d、21

51、【单选题】下面程序执行后的输出结果是 。 #include< iostream> #include using namespace std; void main() { char w[][10] = { "abcd", "efgh", "ijkl", "mnop" }, k; for (k = 1; k < 3; k ) cout << w[k]; }
    a、abcdfghkl
    b、abcdefgijm
    c、efgjko
    d、efghijkl

52、【单选题】若有说明:int a[][4]={0,0};则下面不正确的叙述是 。
    a、数组a 的每个元素都可得到初值0
    b、二维数组a 的第一维大小为1
    c、因为二维数组a 中第二维大小的值除以初值个数的商为1,故数组a 的行数为1
    d、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

53、【单选题】设有数组a[i][j],数组的每个元素长度为3字节,i的值为1~8,j的值为1~10, 数组从内存首地址ba开始顺序存放,当以列为主存放时,元素a[5][8]的存储首地址为 。
    a、ba 141
    b、ba l80
    c、ba 222
    d、ba 225

54、【单选题】若有说明:int a[3][4]=;则下面正确的叙述是 。
    a、只有元素a[0][0]可得到初值0
    b、此说明语句不正确
    c、数组a 中各元素都可得到初值,但其值不一定为0
    d、数组a 中每个元素均可得到初值0

55、【单选题】下面程序执行后的输出结果是 。 #include< iostream> using namespace std; void swapl(int c[]) { int t; t = c[0]; c[0] = c[1]; c[1] = t; } void swap2(int c0, int cl) { int t; t = c0; c0 = cl; cl = t; } void main() { int a[2] = { 3, 5 }, b[2] = { 3, 5 }; swapl(a); swap2(b[0], b[1]); cout << a[0] << a[1] << b[0] << b[1]; }
    a、5353
    b、5335
    c、3535
    d、3553

56、【单选题】己知某函数的一个形式参数被说明为mat[3][10],在下列说明中,与此等效的形参说明是 。
    a、int mat[][10]
    b、int mat[3][]
    c、int mat[l0][3]
    d、int mat[][]

57、【单选题】设主调函数为如下程序段,则函数f中对形参数组定义错误的是 。 int a[3][4]; f(a);
    a、f(int array[3][4])
    b、f(int array[][4])
    c、f(int array[3][])
    d、int array[4][3]

58、【单选题】下面程序执行后的输出结果是 。 #include< iostream> #include using namespace std; # define n 20 void fun(int a[], int n, int m) { int i; for (i = m; i >= n; i--) a[i 1] = a[i]; } void 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]; }
    a、10234
    b、12344
    c、12334
    d、12234

59、【填空题】字符串是以____为结束标志的一维字符数组。若有定义char a[]=" "; 则a数组的长度是 ____。

60、【填空题】c 语言数组的下标总是从____开始,不可以为负数。数组的各个元素具有相同的____。

61、【填空题】若有定义double x[3][5]; 则x数组中行下标的上限为____,列下标的上限为____

62、【填空题】在c 语言中,二维数组的元素在内存中的存放顺序是____。

63、【填空题】若有定义char a[]="windows",b[]="9x"; 则执行语句cout<
64、【填空题】如果在程序中调用了strcat函数,则需要预处理命令____。

65、【填空题】在c 语言中,一个二维数组可以看成若干个____数组。

66、【填空题】程序中使用了字符运算函数(如isupper),则需要预处理命令____。

67、【填空题】要将字符串s1复制到字符串s2中,其语句是____。

68、【填空题】下面程序执行后的输出结果是____。 #include< iostream> #include using namespace std; void main() { int p[8] = { 11, 12, 13, 14, 15, 16, 17, 18 }, i = 0, j =0; while (i < 7) if (p[i] % 2) j = p[i]; cout << j; }

69、【填空题】若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是____。

70、【填空题】设有数组定义: char array[]="china"; 则数组 array所占的空间为____个字节。

71、【填空题】假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是____。

72、【填空题】已知:char a[20]= "abc",b[20]= "defghi";则执行cout<
73、【填空题】有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为____。

74、【填空题】若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第一个位置上) ____。

75、【填空题】定义如下变量和数组: int k; int a[3][3]={9,8,7,6,5,4,3,2,1}; 则语句for(k=0;k<3;k ) cout<
76、【填空题】已知:char a[15],b[15]={"i love china"};则在程序中能将字符串i love china赋给数组a的语句是____。

77、【填空题】下面rotate函数的作用是将n行n列的矩阵a转置为a’。请填空使程序完整、正确。 #define n 4 void rotate(int a[n][n]) { int i, j, t; for (i = 0; i < n; i ) for (j = 0; (1____); j ){ t = a[i][j]; (2____); a[j][i] = t; } }

78、【填空题】在下面程序的下划线处填上适当字句,以使该程序的执行结果为: 5____4____3____2____1 0____5.5____4.4____3.3____2.2-1.l #include using namespace std; void f((1____)){ (2____) for (int i = 0;i
79、【填空题】下面函数用“折半查找法”在有10个数的a数组中对关键字m查找,若找到,返回其下标值;否则返回-1。请填空使程序完整、正确。 提示:折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新设定为大于中间点元素的范围,反之则设定为小于中间点元素的范围。 int search(int a[10], int m) { int xl = 0, x2 = 9, mid; while (xl <= x2) { mid = (xl x2) / 2; if (m < a[mid]) (1____); else if (m > a[mid]) (2____); else return (mid); } return (-1); }

80、【填空题】下面程序的功能是将数组输入数据,逆序置换后输出。逆序置换是指数组的首元素和末元素置换,第二个元素和倒数第二个元素置换,……。请填空使程序完整、正确。 #include using namespace std; #define n 8 void main() { int i, j, t, a[n]; for (i = 0; i < n; i ) cin >> a[i]; i = 0; j = n - 1; while (i < j) { t = a[i], (1____), a[i] = t; i , (2____); } for (i = 0; i < n; i ) cout << a[i]; }

81、【填空题】下面程序的功能是求矩阵a和b的乘积,结果存放在矩阵c中并按矩阵形式输出。请填空使程序完整、正确。 #include #include using namespace std; void main() { int a[3][2] = { 2, 10, 9, 4, 5, 119 }, b[2][2] = { -1, -2, -3, -4 }; int i, j, k, s, c[3][2]; for (i = 0; i < 3; i ) for (j = 0; j < 2; j ){ (1____); for (k = 0; k < 2; k ) s = (2____); c[i][j] = s; } for (i = 0; i < 3; i ) { for (j = 0; j < 2; j ){ cout << setw(6) << c[i][j]; (3____); } } }

82、【填空题】下面程序的功能是用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数组。请填空使程序完整、正确。 #include using namespace std; void main() { int c[10], i = 0, j = 0, k = 0; int a[3] = { 5, 9, 10 }; int b[5] = { 12, 24, 26, 37, 48 }; while (i < 3 && j < 5) if ((1____)){ c[k] = b[j]; k ; j ; } else{ c[k] = a[i]; k ; i ; } while ((2____)){ c[k] = a[i]; i ; k ; } while ((3____)){ c[k] = b[j]; j ; k ; } for (i = 0; i < k; i ) cout << c[i] << " "; }

83、【填空题】下面程序的功能是将十进制整数n转换成base进制。请填空使程序完整、正确。 #include using namespace std; void main() { int i = 0, base, n, j, num[20]; cin >> n; cin >> base; do { i ; num[i] = (1____); n = (2____); } while (n! = 0); for ((3____)); cout << num[j]; }

84、【填空题】下面程序的功能是输入10个整数,统计其中正数(neg)、负数(pos)和o(zero)的个数并将三者输出。请填空使程序完整、正确。 #include using namespace std; int neg = 0, pos = 0, zero = 0; void self(int num) { if (num> 0) neg ; else if (num = 0)pos ; else (1____); } void main() { int i, a[10]; for (i =0; i<10; i ) { cin >> a[i]; self((2____)); } cout <<"neg=" << (3____) << ",pos="<< (4____) <<",zero=" << (5____); }

85、【填空题】写出下面程序执行后的运行结果 #include using namespace std; int main____ { char arr[2][4]; strcpy____; strcpy____; arr[0][3]='&'; cout<
86、【填空题】写出下面程序执行后的运行结果: #include using namespace std; int main____ { char a[]={'a', 'b', 'c', 'd', 'e', 'f', 'g','h',''}; int i,j; i=sizeof____; j=strlen____; cout<< i <<","<
87、【填空题】写出下面程序执行后的运行结果: #include using namespace std; int main____ { int i; int a[3][3]={1,2,3,4,5,6,7,8,9}; for____ cout<
88、【填空题】写出下面程序执行后的运行结果: #include using namespace std; int main____ { char a[30]="nice to meet you!"; strcpy____/2,"you"); cout<
89、【填空题】写出下面程序执行后的运行结果: #include using namespace std; int main____ { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while____ { if____ count ; i ; } cout<< count <<","<
90、【填空题】写出下面程序执行后的运行结果: #include using namespace std; int main____ { char a[30],b[30]; int k; gets____; gets____; k=strcmp____; if____ puts____; else if____ puts____; return 0; } 输入love china 输出结果是什么?

91、【填空题】阅读下面程序,则程序段的功能是什么? #include using namespace std; int main____ { int c[]={23,1,56,234,7,0,34},i,j,t; for____ { t=c[i];j=i-1; while____ {c[j 1]=c[j];j--;} c[j 1]=t; } for____ cout<
92、【填空题】写出下面程序执行后的运行结果。 #include using namespace std; #define release 0 void main____ { int i; char str[20] = "northwest", c; for ____ != '\0'; i ) { #ifdef release if ____ c = c - 32; #else if ____ c = c 32; #endif cout.put____; } }

93、【填空题】读程序写运行结果。 #include using namespace std; template void f____{ for ____ for ____ { c[i][j] = ____0; for____ c[i][j] =a[i][k]*b[j][k]; } } void main____ { int a[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7 } }, b[3][3], c[3][3] = { { 2 }, { 0, 2 }, { 0, 0, 2 } }; f____; for ____{ for (int j = 0; j < 3; j cout << b[i][j] << ““; cout << endl; } }

94、【填空题】写出下面程序执行后的运行结果。 #include #include using namespace std; void f____ { char t[20]; int i, j; for ____ for ____ if ____ < 0) { strcpy____; strcpy____; strcpy____; } } void main____ { char p[][10] = { "abc", "aabdfg", "abbd", "dcdbe", "cd" }; f____; cout << strlen____; }

95、【简答题】下列程序的功能是读取10个实数,然后依次输出前1个实数和前2个实数和…前9个实数和、前10个实数和。请填写程序中缺少的语句。 #include using namespace std; int main() { float f[10], x = 0.0; int i; for (i = 0; i < 10; i ) cin >> f[i]; for (i = 0; i <= 9; i ) { cout << "前" << i 1 << "个实数的和是" << x << endl; } return 0; }

96、【简答题】编程实现功能:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是:

97、【简答题】6 7 7 8 9 9 10 10 10 删除后,数组中的内容应该是:

98、【简答题】

99、【简答题】编程实现功能:从键盘上输入若干个学生的成绩,当输入负数时表示输入结束,计算学生的平均成绩,并输出低于平均分的学生成绩。

100、【简答题】编程实现功能:对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ascii码值之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。

101、【简答题】编程实现功能:求二维数组周边元素之和。

102、【简答题】编程求出3阶方阵的两条对角线上元素之和。

103、【简答题】编程序求fibonacci数列的前10项,并按每行3个数的格式输出该数列。fibonacci数列的定义为:

104、【简答题】已知两个矩阵ab,求a与b的乘积矩阵c并输出,其中c中的元素c[i][j]等于a[i][k]*b[k][j]。

105、【简答题】输入一个字符串,假定该字符串的长度不超过256,分别统计出每一种英文字符的个数,不区分大小写。

106、【简答题】有n个整数,已经按照从小到大的顺序排列好,再输入一个数,把它插入到原有的数列中,而且仍保持有序,同时输出新数列。

107、【简答题】下面是一个5*5的螺旋方阵。按照逆时针方向旋进n*n螺旋方阵,编程输出。 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 9

6.6章节测验

1、【单选题】有定义如下:int a[5], *p; 则下列描述错误的是 。
    a、表达式p=p 1是合法的
    b、表达式a=a 1是合法的
    c、表达式p-a是合法的
    d、表达式a 2是合法的

2、【单选题】函数定义为fun(int &i),变量定义n=100,则下面调用该函数正确的是 。
    a、fun(20)
    b、fun(20 n)
    c、fun(n)
    d、fun(&n)

3、【单选题】已知int a,*pa=&a; 输出指针pa 十进制的地址值的方法是 。
    a、cout<    b、cout<< * pa;
    c、cout<<&pa;
    d、cout<
4、【单选题】3.若有说明int i,j=2,*p=&i;则能完成i=j赋值功能的语句是 。
    a、i=*p;
    b、*p=*&j;
    c、i=&j;
    d、i=**p;

5、【单选题】已有定义int k=2;int * ptr1,* ptr2;且ptr 1和ptr2均已指向变量k,下面不能正确执行的赋值是 。
    a、k= * ptr1 * ptr2
    b、ptr2 = k
    c、ptr1=ptr2
    d、k= * ptr1 *( * ptr2)

6、【单选题】设已有定义char *st = "how are you";下列程序中正确的是 。
    a、char a[11],*p;strcpy(p=a 1,&st[4]);
    b、char a[11];strcpy( a,st);
    c、char a[11];strcpy(a,st);
    d、char a[],*p;strcpy(p=a[1],st 2);

7、【单选题】若变量已正确定义并且指针p已经指向变量x,则 *&x相当于 。
    a、x
    b、p
    c、& x
    d、&*p

8、【单选题】设有数组int array[3][4],下列引用数组元素的方法中错误的是 。
    a、array[i][j]
    b、*(*(array i) j)
    c、*(array[i] j)
    d、*(array i*4 j)

9、【单选题】假如指针p已经指向整型变量x,则(* p) 相当于 。
    a、x
    b、p
    c、*(p )
    d、&x

10、【单选题】对于基类型相同的两个指针变量之间不能进行的运算是 。
    a、<
    b、=
    c、
    d、-

11、【单选题】有定义int s[4][5],(*ps)[5];ps=s;则对数组s中元素引用正确的是 。
    a、ps 1
    b、*(ps 3)
    c、ps[0][2]
    d、*(ps 1) 3

12、【单选题】要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为 。
    a、const char * p="abcd";
    b、char const * p= "abcd";
    c、char * const p="abcd";
    d、const char * const p= "abcd";

13、【单选题】下列语句中错误的是 。
    a、const int buffer= 256;
    b、const double * point;
    c、int const buffer= 256;
    d、double * const point;

14、【单选题】下列指针用法中错误的是 。
    a、int i;int * ptr=&i;
    b、int i;int * ptr;i= * ptr;
    c、int * ptr;ptr=0;
    d、int i=5;int * ptr; ptr=&i;

15、【单选题】设语句char *s[]={"student","teacher","father","mother"},*ps=s[2];,执行语句cout<<*s[1]<<','<    a、t,father,f
    b、teacher,f,father
    c、teacher,father,father
    d、语法错无输出

16、【单选题】以下4种说法中,正确的一项是 。
    a、c 允许在字符串上进行整体操作
    b、语句char vn[ ] ="brown";将vn定义成一个有5个元素的数组,因为"brown"中含有5个字符
    c、对指针只要赋给一个地址值就可以了
    d、一维的指针数组实际上是一个二维数组

17、【单选题】下面语句中错误的是 。
    a、int a=5;int x[a];
    b、const int a= 5;int x[a];
    c、int n=5;int * p=new int[n];
    d、const int n=5;int * p= new int [a];

18、【单选题】定义一维数组int a[5],* p;则下面描述错误的是 。
    a、表达式p=p 1是合法的
    b、表达式a=a 1是合法的
    c、表达式p-a是合法的
    d、表达式a 2是合法的

19、【单选题】若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},* p=a;则 不是对a数组元素的正确引用(其中0≤i<10)。
    a、p[i]
    b、*(*(a i))
    c、a[p-a]
    d、*(&a[i])

20、【单选题】设有说明int b[4][4],以下不能等价表示元素b[3][3]的是 。
    a、*&b[3][3]
    b、(*(*(b 3)) 3)
    c、*(b[3] 3)
    d、*(*(b 3) 3)

21、【单选题】若有定义char s[10];则在下面表达式中不表示s[1]的地址的是 。
    a、s 1
    b、s
    c、&s[0] 1
    d、&s[1]

22、【单选题】若要对a进行合法的自减运算,则之前应有下面 的说明。
    a、int p[3];
    b、int k; int * a=p; int * a=&k;
    c、char * a[3]
    d、int a[10]; int * a=b 1;

23、【单选题】以下选项中, 对指针变量p操作是正确的。
    a、int a[3],* p;
    b、int a[5],* p; p=&a; p=a;
    c、int a[5];
    d、int a[5],* p1,* p2=a; int * p=a=100; * p2=* p1;

24、【单选题】若有定义int x[10]={0,1,2,3,4,5,6,7,8,9},* p1; 则数值不为3的表达式是 。
    a、x[3]
    b、p1=x 3,* p1
    c、p1=x 2,*(p1 )
    d、p1=x 2,* p1

25、【单选题】设double * p[6];则p是 。
    a、指向double型变量的指针
    b、double型数组
    c、指针数组,其元素是指向double型变量的指针
    d、数组指针,指向double型数组

26、【单选题】若有定义int x[6]={2,4,6,8,5,7},* p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是 。
    a、for(i=0;i<6;i )cout<    b、for(i=0;i<6;i )cout<    c、for(i=0;i<6;i )cout<    d、for(i=0;i<6;i )cout<
27、【单选题】下面程序执行后的输出结果是 。 #include using namespace std; void sum(int * a) { a[0] = a[1]; } void main() { int aa[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, i; for (i = 2; i >= 0; i--) sum(&aa[i]); cout << aa[0]; }
    a、1
    b、2
    c、3
    d、4 b. 答案:d c. 难易程度:中 d. 答案解析:
    e、题型:单选题

28、【单选题】下面程序执行后的输出结果是 。 #include< iostream > using namespace std; void main() { int a[10]={l,2,3,4,5,6,7,8,9,10},* p= &a[3],* q=p 2; cout<< * p * q; }
    a、16
    b、10
    c、8
    d、6 b. 答案:b c. 难易程度:中 d. 答案解析:
    e、题型:单选题

29、【单选题】若有说明char *s[]={"234","5678","9012","3456","7890"}; 则表达式*s[1]>*s[3]比较的是 。
    a、"1234"和"9012"
    b、'5'和'3'
    c、'1'和'9'
    d、"5678"和"3456"

30、【单选题】在下列表达式中,与下标引用a[i][j]不等效的是 。
    a、*(a i j)
    b、*(a[i] j)
    c、*(*(a i) j)
    d、(*(a i))[j]

31、【单选题】若有定义int a[2][3]; 则对a数组的第i行第j列元素值的正确引用是 。
    a、*(*(a i) j)
    b、(a i)[j]
    c、*(a i j)
    d、*(a i) j

32、【单选题】若有定义int a[3][4];则与元素a[0][0]不等价的表达式是 。
    a、* a
    b、**a
    c、* a[0]
    d、*(*(a 0) 0)

33、【单选题】若有定义int s[4][5],(* ps)[5]=s; 则对s数组元素的正确引用是 。
    a、ps 1
    b、*(ps 3)
    c、ps[0][2]
    d、*(ps 1) 3

34、【单选题】下面程序执行后的输出结果是 。 #include < iostream> using namespace std; void main () { int a[3] [3], * p,i; p=&a [0] [0]; for(i=0; i<9; i ) p[i]=i 1; cout<

猜你喜欢

  • 2023-02-27 01:18
  • 2023-02-27 01:12
  • 2023-02-27 01:04
  • 2023-02-27 00:52
  • 2023-02-26 23:45
  • 2023-02-26 23:25
  • 2023-02-26 23:10
  • 2023-02-26 23:05
  • 2023-02-26 22:54
  • 2023-02-26 22:50
网站地图