欢迎来访! |
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
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
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<
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<
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<
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<
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
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
77、【填空题】下面程序三次调用同一函数sum,在下划线处填上适当内容,使输出结果为: s=2 5=5 s=9 #include
78、【填空题】在下面程序下划线处填上适当内容,使程序执行结果为: 200________100 #include
79、【填空题】在下划线处填上适当字句,完成求最大值函数模板的定义。 #include
80、【填空题】请写出程序的运行结果。 include
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
83、【填空题】阅读下列程序,并写出输出结果。 #include
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
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<
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<
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<
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
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
a、18
b、19
c、20
d、21
51、【单选题】下面程序执行后的输出结果是 。 #include< iostream> #include
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
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
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
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
81、【填空题】下面程序的功能是求矩阵a和b的乘积,结果存放在矩阵c中并按矩阵形式输出。请填空使程序完整、正确。 #include
82、【填空题】下面程序的功能是用“两路合并法”把两个已按升序(由小到大)排列的数组合并成一个新的升序数组。请填空使程序完整、正确。 #include
83、【填空题】下面程序的功能是将十进制整数n转换成base进制。请填空使程序完整、正确。 #include
84、【填空题】下面程序的功能是输入10个整数,统计其中正数(neg)、负数(pos)和o(zero)的个数并将三者输出。请填空使程序完整、正确。 #include
85、【填空题】写出下面程序执行后的运行结果 #include
86、【填空题】写出下面程序执行后的运行结果: #include
87、【填空题】写出下面程序执行后的运行结果: #include
88、【填空题】写出下面程序执行后的运行结果: #include
89、【填空题】写出下面程序执行后的运行结果: #include
90、【填空题】写出下面程序执行后的运行结果: #include
91、【填空题】阅读下面程序,则程序段的功能是什么? #include
92、【填空题】写出下面程序执行后的运行结果。 #include
93、【填空题】读程序写运行结果。 #include
94、【填空题】写出下面程序执行后的运行结果。 #include
95、【简答题】下列程序的功能是读取10个实数,然后依次输出前1个实数和前2个实数和…前9个实数和、前10个实数和。请填写程序中缺少的语句。 #include
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<
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]<<','<
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<
27、【单选题】下面程序执行后的输出结果是 。 #include
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<猜你喜欢