还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
全国计算机二级考试语言考试题库道及答案C100以下关于语言变量声明的说法,正确的是()
1.C变量声明后可以不赋值就使用A.变量声明时必须指定数据类型B.变量声明只能在函数开头进行C.变量声明后不能改变其数据类型D.答案B解析语言中变量声明时必须指定数据类型,选项未赋值使用可能得到随机值;选项变量C A C声明可在函数内任意位置;选项在某些情况下可通过强制类型转换改变使用时的类型,但本质D类型声明后固定若有定义则表达式的值是()
2.inta=5,b=3;a/bA.1B.
1.666667C.2D.
1.5答案A解析两个整数相除,结果为整数,舍去小数部分,结果为5/31以下哪种循环结构一定会至少执行一次循环体()
3.循环A.for循环B.while循环C.do-while以上都不是D.答案C解析循环是先执行循环体,再判断条件,所以至少执行一次do-while以下关于数组的说法错误的是()
4.数组的下标从开始A.0数组在内存中是连续存储的B.数组定义时可以不指定大小C.可以通过下标访问数组元素D.答案C解析数组定义时必须指定大小,、、选项关于数组的描述都是正确的A B D若有函数定义()以下调用方式正确的是()
5.void funcint*p,()A.int a=10;func a;()B.int a=10;func a;()C.int*p;func p;()D.int a=10;func*a;答案B解析函数参数为指针类型,调用时要传入变量的地址,传入变量值错误;指针未初始化;A C写法错误D*a.以下关于字符数组和字符串的说法,正确的是()6字符数组一定是字符串A.字符串一定是字符数组B.字符数组长度和字符串长度一定相等C.字符串结束标志是D.O答案B解加字符串是字符数组的一种特殊形式,以结尾,字符数组不一定以结尾就不是\0A YT以下关于循环的说法,正确的是()
56.for循环的初始化部分只能初始化一个变量A.for循环的条件判断部分可以省略B.for循环的循环体必须用花括号括起来C.for循环不能嵌套使用D.for答案B解析循环条件判断部分可省略,省略后条件恒为真,可初始化多个变量;循环体只有for A C一条语句时可不加花括号;循环可以嵌套D for若有定义贝的值是()
57.int*p;inta
[5]={l,2,3,4,5};p=a;U p
[3]A.1B.2C.3D.4答案D解析指向数组首元素,等价于()即数组第个元素,值为p ap
[3]*p+3,a44以下关于位左移运算符(<<)的说法,正确的是()
58.位左移运算符将操作数的二进制位向左移动指定的位数,右边补A.0位左移运算符将操作数的二进制位向左移动指定的位数,左边补B.0位左移运算符将操作数的二进制位向右移动指定的位数,右边补C.0位左移运算符将操作数的二进制位向右移动指定的位数,左边补D.0答案A解析位左移运算符将操作数二进制位左移,右边补
059.若有函数定义voidprint(int*arr,intn){for(int i=0;i<n;i++)printf(n%d”,arr[i]);}调用该函数打印数组元素,以下调用方式正确的是()()A.int a
[5]={1,2,3,4,5};print a,5;()B.int a
[5]={1,2,3,4,5};print*a,5;()C.int a
[5]={1,2,3,4,5};print a
[0],5;()D.int a
[5]={1,2,3,4,5};print a,5;答案A解析函数参数要求数组首地址和数组长度,选项传入数组名(即首地址)和长度正确,、A B传入元素值错误,传入数组的地址(二级指针相关概念)错误C D以下关于字符串处理函数的说法,正确的是()
60.strcmp函数用于比较两个字符串的长度A.strcmp函数返回值为表示两个字符串相等B.strcmp0函数返回值大于表示第一个字符串长度大于第二个字符串C.strcmp0函数返回值小于表示第一个字符串长度小于第二个字符串D.strcmp0答案B解析函数比较两个字符串的字典序,返回表示相等,大于表示第一个字符串字典strcmp00序大,小于表示第一个字符串字典序小,不是比较长度0若有定义则表达式的值是()
61.int a=2;a*=2+3A.2B.5C.10不确定D.答案C解析先计算得再计算即@=原来为结果为2+35,a*=5,@*5,a2,10以下关于语句的说法,错误的是()
62.switch语句的表达式只能是整型或字符型A.switch后面的常量表达式值必须唯一B.case语句中可以没有分支C.switch default语句中每个分支必须有语句D.switch casebreak答案D解析语句中每个分支不一定要有语句,没有会继续执行下一个分switch casebreak breakcase支,、、选项关于语句的描述正确A B C switch若有定义()贝()的值是()
63.intarr
[2]
[3]={{1,2,3},{4,5,6}};int*p
[3]=arr;1J*p
[2]A.1B.2C.3D.4答案C器析是指向包含个元素的一维数组的指针,指向•的第一行,()⑵就是第一行第p3p an*p3个元素,值为3以下关于函数的返回语句的说法,正确的是()
64.return语句只能返回一个值A.return语句可以返回多个值B.return语句后面可以不跟任何表达式C.return语句只能在函数结尾使用D.return答案A解析语句只能返回一个值,错误;无返回值函数(类型)后可不跟表达式,return Bvoid return有返回值函数必须跟,错误;语句可在函数中任意位置提前结束函数,错误C returnD若有定义则的值是()
65.int a=10;int b=a++;bA.10B.11C.9不确定D.答案A解析是后置自增运算符,先使用的值再自增,所以的值是a++a b10以下关于的说法,正确的是()
66.typedef用于定义新的数据类型A.typedef只是给已有的数据类型取别名B.typedef定义的类型名不能和已有类型名重复C.typedef不能用于结构体类型D.typedef答案B解析只是给已有数据类型取别名,不是定义新类型,错误;可以和已有类型名重复typedef A但不建议,错误;可用于结构体类型,错误C D若有定义则的值是()
67.inta
[5]={l,2,3,4,5};int*p=a
[2];p-aA.1B.2C.3D.4答案B解析指针相减得到的是两个指针之间元素的个数,指向指向相差个元素p a
[2],a a
[0],2以下关于条件判断的说法,正确的是()
68.表示假,非表示真A.00空字符串表示假,非空字符串表示真B.空指针表示假,非空指针表示真C.以上说法都正确D.答案D解析在语言中,、空字符串、空指针表示假,非、非空字符串、非空指针表示真C00若有定义则表达式的值是()
69.int a=5,b=2;a/b+a%bA.2B.3C.4D.5答案C解析先计算得得相加结果为a/b2,a%b1,3以下关于动态内存分配的说法,错误的是()
70.函数用于分配内存A.malloc函数用于释放内存B.free动态分配的内存使用完后必须释放C.动态分配的内存大小可以在程序运行时改变D.答案D解析动态分配的内存大小在分配后不能直接改变,若要改变需重新分配,、、选项关于A B C动态内存分配的描述正确若有定义;则()的值是()
71.char str[]=abc”sizeof strA.3B.4不确定C.取决于编译器D.答案B解析计算数组所占内存大小,包含字符串结束符,所以是sizeof\0,4以下关于函数参数传递的说法,正确的是()
72.函数参数传递分为值传递和地址传递A.值传递会改变实参的值B.地址传递不会改变实参的值C.函数参数传递只能是值传递D.答案A解析函数参数传递分值传递和地址传递,值传递不改变实参值,地址传递可通过指针改变实参所指内容,、、选项错误B C D若有定义则的值是()
73.int a=3;int b=++a+a++;bA.7B.8C.9D.10答案B解析先计算变为此时表达式为再计算先使用的值相加得++a,a4,4+a++,a++,a48,然后变为a5以下关于数组越界的说法,正确的是()
74.数组越界不会导致程序出错A.数组越界可能会导致程序崩溃B.数组越界只会访问到无效数据C.数组越界时编译器会报错D.答案B解析数组越界可能会访问到其他内存区域的数据,可能导致程序崩溃,、选项错误;编译A C器不一定能检测到数组越界,错误D若有定义⑵二则的值是
75.intarr
[3]={{1,2},{3,4},{5,6}};int*p arr[l][O];*p+2A.3B.4C.5D.6答案C解析:指向指向的值是p arr[l][O],p+2arr
[2]
[0],*p+25以下关于逻辑表达式短路特性的说法,正确的是
76.逻辑与表达式中,若第一个操作数为假,则不再计算第二个操作数A.逻辑或表达式中,若第一个操作数为真,则不再计算第二个操作数B.短路特性可以提高程序的执行效率C.以上说法都正确D.答案D解析逻辑与和或表达式都有短路特性,利用短路特性可提高程序执行效率若有定义则的值是
77.int a=4;int b=a«2;bA.4B.8C.16D.32答案C解析左移位相当于乘以的次方,左移位为2224216以下关于函数原型声明的说法,错误的是
78.函数原型声明可以在函数调用之前进行A.函数原型声明可以省略参数名B.函数原型声明的目的是让编译器知道函数的返回类型和参数类型C.函数原型声明只能在文件开头进行D.答案D解析函数原型声明可在函数调用前任意位置,不一定要在文件开头,、、选项关于函数A B C原型声明的描述正确若有定义则**的值是
79.int a=10;int*p=a;int**q=p;q变量的地址A.a变量的地址B.pC.10不确定D.答案C解析是指向指针的指针,是是的值q p*q p,**q a10以下关于字符输入输出函数的说法,正确的是
80.函数只能读取一个字符A.getchar函数可以输出字符串B.putchar函数不会存在缓冲区溢出问题C.gets函数输出字符串后不会自动换行D.puts答案A解析函数一次只能读取一个字符;函数只能输出单个字符,不能输出字符串;getchar putchar函数由于不检查输入长度,存在缓冲区溢出问题;函数输出字符串后会自动换行gets puts若有定义表达式的值是
81.int a
[4]={1,3,5,7};a[l]+*a+2A.6B.8C.9D.10答案B解析的值为等价于值为两者相加结果为a[l]3,*a+2a
[2],5,8以下关于复合赋值运算符的说法,错误的是
82.复合赋值运算符可以简化代码A.等价于
8.a+=2a=a+2复合赋值运算符的优先级高于算术运算符C.复合赋值运算符是右结合性D.答案C解析复合赋值运算符优先级低于算术运算符,、、选项关于复合赋值运算符的描述正确A BD若有定义则的值对应的字符是
83.char ch=E;ch+=3A.CB/DC.ED.F答案C解析的码值加后为的码值,所以结果对应的字符是E ASCII3E ASCIIE以下关于函数递归调用的终止条件,说法正确的是
84.终止条件必须在递归函数的开头判断A.终止条件可以没有B.终止条件的作用是防止递归无限进行C.终止条件只能是一个简单的表达式D.答案C解析终止条件的作用是防止递归无限进行,不一定在开头判断,必须要有终止条件,也可以是复杂的条件判断,、、选项错误A BD若有定义则的值是
85.intarr
[2]
[3]={0};arr[l]
[2]A.0B.1不确定C.取决于编译器D.答案A解析数组初始化时全部元素初始化为所以的值为0,arr[l]
[2]0以下关于循环的三个表达式,说法错误的是
86.for初始化表达式只执行一次A.条件判断表达式每次循环都要执行B.循环控制表达式每次循环结束后执行C.三个表达式都不能省略D.答案D解析循环的三个表达式都可以省略,省略条件判断表达式时条件恒为真,、、选项关for A B C于循环表达式的描述正确for若有定义表达式*的值是
87.int*p;int a=5;p=a;p+1A.5B.6变量的地址加C.a1不确定D.答案B解析*的值是的值为p a5,*p+l6以下关于结构体指针的说法,正确的是
88.结构体指针可以直接访问结构体成员A.结构体指针访问成员要用.运算符B.结构体指针需要先分配内存才能使用C.结构体指针不能作为函数参数D.答案C解析结构体指针需要先分配内存才能使用,访问成员要用->运算符,可作为函数参数,、、A B选项错误D若有函数定义调用的返回值是
89.int addint x,int y{return x+y;}add2,add3,4A.5B.7C.9D.10答案C解析:先计算得再计算得add3,47,add2,79以下关于文件读写模式的说法,错误的是
90.模式用于只读打开文件A/F模式用于只写打开文件,若文件不存在会创建B.w””展模式用于追加写打开文件,若文件不存在会报错C模式用于读写打开文件D.“r+”答案C解析”模式用于追加写打开文件,若文件不存在会创建,、、选项关于文件读写模式a”A BD的描述正确若有定义则的值是
91.int a
[5]={2,4,6,8,10};int*p=a+1;*p+3A.4B.6C.8D.10答案D解析指向指向的值是p a[l],p+3a
[4],*p+310以下关于三目运算符嵌套的说法,正确的是
92.三目运算符不能嵌套使用A.三目运算符嵌套会使代码更易读B.三目运算符嵌套时要注意运算符的优先级和结合性C.三目运算符嵌套只能嵌套一层D.答案C解析三目运算符可以嵌套使用,嵌套可能使代码不易读,可嵌套多层,使用时要注意优先级和结合性,、、选项错误A BD
93.若有定义char strl[]=nabc;char str2[]=abdn;则strcmp(strl,str2)的值()大于A.0小于B.0等于C.0不确定D.答案B解析比较两个字符串字典序,”字典序小于“,返回值小于strcmp abc”abd”0以下关于函数的嵌套调用,说法正确的是()
94.函数嵌套调用只能嵌套两层A.函数嵌套调用时内层函数先执行完再执行外层函数后续代码B.函数嵌套调用会导致程序运行效率降低C.函数嵌套调用时参数传递会混乱D.答案B解析函数嵌套调用可多层嵌套,内层函数先执行完再执行外层函数后续代码,不一定降低效率,参数传递不会混乱,、、选项错误A C D若有定义则的值是()
95.inta=7;intb=a»1;bA.3B.4C.7D.8答案A解析右移位相当于除以取整,右移位为12713以下关于数组作为函数参数传递时的特性,说法错误的是()
96.数组名传递给函数后,函数内部可以修改数组元素的值A.数组传递时不会复制整个数组内容B.函数无法通过形参数组知道数组的长度C.数组传递时会自动将数组转换为指针类型D.答案D解析数组作为函数参数传递时本质上是传递数组首元素地址,并非自动转换为指针类型,只是在函数参数接收时可以用指针形式接收,、、选项关于数组作为函数参数传递的描述正确A B C若有定义表达式的值是()
97.int a=3,b=4;ab a++:b++A.3B.4C.5不确定D.答案B解析条件为假,取冒号后面的值,此时先使用的值然后变为ab b++b4,b5以下关于枚举常量的说法,正确的是()
98.枚举常量的值可以在运行时改变A.枚举常量默认是从开始赋值B.1枚举常量可以和整数进行直接运算C.枚举常量不能作为函数的返回值D.答案C解析枚举常量的值在定义后不能改变,默认从开始赋值,可以和整数直接运算,也可作为0函数返回值,、、选项错误A BD若有定义则对数组元素⑶的错误引用形式是
99.intarr
[3]
[4];arr
[2]A.**arr+2+3B.*arr
[2]+3C.*arr+2
[3]D.an12]+3答案D解析:得到的是⑵[引的地址,不是元素的值,、、选项都是对⑵的正确引arr
[2]+3air A B Cair
[3]用形式以下关于内存泄漏的说法,正确的是
100.内存泄漏只在动态内存分配时会出现A.内存泄漏会导致程序运行速度变慢B.内存泄漏不会影响系统性能C.只要使用了动态内存分配就一定会出现内存泄漏D.答案B解析内存泄漏通常在动态内存分配后未释放时出现,但也可能有其他情况,会导致程序运行速度变慢,影响系统性能,使用动态内存分配不一定会出现内存泄漏,、、选项错误A C D字符串;字符数组长度包含可能大于字符串长度;字符串结束标志是、c XT,D,0若有则表示的是()
7.inta
[3]
[4];a[l]第行第列元素的地址A.10第行元素的首地址
8.1第行第列元素的值C.2第行元素的首地址D.2答案B解析二维数组中表示第行元素的首地址,数组下标从开始,所以是第行元素首a[i]i0a[l]1地址以下关于函数返回值的说法,错误的是()
8.函数可以没有返回值A.函数返回值类型必须与定义时一致B.函数可以返回数组C.函数可以返回指针D.答案C解析语言中函数不能直接返回数组,但可以返回指向数组的指针,、、选项说法正确C A BD若有定义执行语句八二八=八二后,和的值分别是()
9.inta=10,b=20;a b;b a;a b;a bA.10,20B.20,10C.10,10答案解析这是利用异或运算交换两个变量的值,经过三次异或操作后,和的D.20,20B ab值交换以下关于预处理指令的说法,正确的是()
10.预处理指令是在编译时执行的A.只能定义常量B.#define只能包含标准库头文件C.#include预处理指令可以出现在程序的任意位置D.答案A解析预处理指令在编译前执行,选项可定义宏;选项可包含自定义头文B#define C#include件;选项预处理指令一般放在文件开头D若有定义口=;则()的值是()
11.char strhello strlenstrA.5B.6C.7不确定D.答案A解析函数计算字符串长度,不包含长度为strlen\0,hello”5以下关于结构体的说法,错误的是()
12.结构体可以包含不同类型的成员A.结构体变量定义后可以直接使用成员B.结构体可以嵌套定义C.结构体的成员不能是数组D.答案D解析结构体的成员可以是数组,、、选项关于结构体的描述都是正确的A B C若有函数定义调用的返回值是
13.intfuncintx,inty{return xy x:y;}func3,5A.3B.5C.8D.2答案B解析函数功能是返回两个数中较大的数,和中较大,所以返回3555以下关于指针运算的说法,正确的是
14.指针可以进行加法和减法运算A.指针可以进行乘法和除法运算B.指针可以和整数进行除法运算C.指针之间可以进行除法运算D.答案A解析指针可以和整数进行加法和减法运算,用于移动指针位置,、、选项中指针的乘法、B C D除法运算一般不合法若有定义则的值是
15.inta
[5]={l,2,3,4,5};a
[3]A.IB.2C.3D.4答案D解析数组下标从开始,是数组第个元素,值为0a
[3]44以下关于循环嵌套的说法,错误的是
16.循环嵌套可以有多层A.内层循环执行次数等于外层循环执行次数乘以每层内层循环的执行次数B.外层循环和内层循环的控制变量可以相同C.循环嵌套时内层循环先执行完再执行外层循环的下一次迭代D.答案C解析外层循环和内层循环的控制变量不能相同,否则会造成混淆,、、选项关于循环嵌A BD套的描述正确若有定义则的值是
17.floatx=
3.14;intxA.3B.
3.14C.4D.
3.0答案A解加是强制类型转换,将类型转换为血类型,舍去小数部分,结果为intx float3以下关于位运算的说法,正确的是
18.位运算只能用于整数类型A.位运算的优先级都比算术运算高B.按位与运算符是|C.按位异或运算符是D.答案A解析位运算主要用于整数类型,位运算优先级不一定比算术运算高;按位或运算符是B C;按位异或运算符是八,按位与运算符是I D若有函数定义调用该函数交换两个
19.void swapint*a,int*b{int t=*a;*a=*b;*b=t;}变量的值,以下调用方式正确的是()()A.int x=10,y=20;swap x,y;()B.int x=10,y=20;swap x,y;()C.int x=10,y=20;swap*x,*y;()D.intx=10,y=20;swap x,y;答案B解析函数参数为指针类型,调用时要传入变量的地址,传入变量值错误;写法错误;AC*x参数类型不匹配D以下关于文件操作的说法,错误的是()
20.文件打开后必须关闭A.函数用于打开文件B.fopen函数用于向文件写入数据C.fread文件操作可能会出现错误,需要检查返回值D.答案C解析函数用于从文件读取数据,函数用于向文件写入数据,、、选项关于文fread fwriteA BD件操作的描述正确若有定义则数组占用的内存空间大小是()
21.intarr
[10];arr字节A.10字节B.20字节C.40字节D.80答案C解析假设血类型占字节,数组有个元素,占用内存空间为字节4arr1010*4=40以下关于条件运算符(:)的说法,正确的是()
22.条件运算符是三元运算符A.条件运算符的优先级比赋值运算符低B.条件运算符只能用于整数类型C.条件运算符的两个分支表达式类型必须相同D.答案A解析条件运算符是三元运算符,优先级比赋值运算符高;可用于多种类型;两个分支BCD表达式类型可不同,但会进行类型转换若有定义廿则的值是()
23.char chA;ch+32A.a1容A析解在码中,大写字母和小写字母相差得到宣ASCII32,TV+32以下关于递归函数的说法,错误的是()
24.递归函数必须有终止条件A.递归函数的调用会消耗大量栈空间B.递归函数可以替代所有循环结构C.递归函数在调用自身时参数会发生变化D.答案C解析递归函数不能替代所有循环结构,有些循环用递归实现可能效率低或复杂度高,、、A B选项关于递归函数的描述正确DBcDA9765M若有定义则表达式的值是()
25.inta=5;++aA.5B.6C.4不确定D.答案B解析是前置自增运算符,先将的值加再使用的值,所以结果为++a a1,a6以下关于函数重载的说法,在语言中()
26.C支持函数重载A.不支持函数重载B.部分编译器支持函数重载C.函数名相同但参数不同就是函数重载D.答案B解析语言不支持函数重载,函数名必须唯一,支持函数重载C C++若有定义⑵则⑴⑵的值是()
27.inta
[3]={{1,2,3},{4,5,6}};aA.3B.4C.5D.6答案D解析二维数组⑵表示第行第列元素(下标从开始),值为a[l]236以下关于宏定义的说法,正确的是()
28.宏定义可以带参数A.宏定义的作用域是整个程序B.宏定义在编译时进行替换C.宏定义不能嵌套D.答案A解析宏定义可以带参数,作用域从定义处到文件结束;在预处理时进行替换;宏定义BCD可以嵌套若有定义则*的值是()
29.int*p;int a=10;p=a;pA.10变量的地址B.a指针的地址C.p不确定D.答案A解析*是指针所指向变量的值,指向所以*的值是p pp a,p10以下关于语句的说法,正确的是()
30.break语句只能用于循环语句A.break语句可以用于语句B.break switch语句在循环中使用会结束本次循环C.break语句在循环嵌套中会结束所有循环D.break答案B解析语句可用于循环语句和语句,错误;在循环中使用结束整个循环,错误;break switchAC在循环嵌套中只结束当前所在循环,错误D若有定义口(^£=出口;=(血比则的值是()
31.
3.14311A.3B.
3.14C.4不确定D.答案A解析强制类型转换将类型的转换为血类型,舍去小数部分,的值为float fi3以下关于数组名作为函数参数的说法,正确的是()
32.数组名作为函数参数会传递整个数组A.数组名作为函数参数传递的是数组首元素的地址B.数组名作为函数参数时,函数内不能修改数组元素的值C.数组名作为函数参数时,函数必须知道数组的长度D.答案B解析:数组名作为函数参数传递的是数组首元素的地址,错误;函数内可修改数组元素值,A错误;函数不一定要知道数组长度,错误CD若有定义()则的值是()
33.char strl[]=hello**;char str2[10|;strcpy str2,strl;str2A.“hello”B.不确定C.空字符串D.答案A解析函数用于将字符串复制到中,所以的值是”strcpy strlstr2str2hello”以下关于逻辑运算符的说法,正确的是()
34.逻辑与运算符是||A.逻辑或运算符是B.逻辑非运算符是!C.逻辑运算符的操作数只能是整数D.答案C解加逻辑与运算符是,逻辑或运算符是||,逻辑非运算符是!,逻辑运算符操作数可为多种类型,非为真,为假00若有定义则的值是()
35.int a=10,b=20;int c=ab a:b;cA.10B.20C.30D.O答案B解析条件运算符判断为假,取冒号后面的值,所以的值是ab c20以下关于枚举类型的说法,错误的是()
36.枚举类型是一种用户自定义类型A.枚举常量默认从开始赋值B.0枚举常量可以在定义时指定值C.枚举类型的变量可以直接和整数进行比较D.答案D解加枚举类型变量和整数比较需要进行强制类型转换,、、选项关于枚举类型的描述正ABC确若有定义血则的值是()
37.a
[5]={1,2,3};a
[4]A.1B.2C.3D.0答案D解析数组初始化时未完全赋值,剩余元素自动初始化为所以的值是0,a
[4]0以下关于语句的说法,正确的是()
38.continue语句只能用于循环语句A.continue语句会结束整个循环B.continue语句在循环嵌套中会结束所有循环C.continue语句在语句中也可以使用D.continue switch答案A解析语句只能用于循环语句,作用是结束本次循环,进入下一次循环,、、选continue BCD项描述错误若有定义()(())则以下说法正确的是()
39.int*p;p=int*maHoc sizeofint;指向一个整型变量A.p指向一个整型数组B.p的值是一个随机地址C.p没有分配内存D.p答案A解析函数分配一个整型大小的内存空间,指向该内存空间,即一个整型变量,错误;malloc pB指向分配的内存地址,不是随机地址,错误;已经分配内存,错误p CD以下关于二维数组初始化的说法,正确的是()
40.二维数组初始化时可以省略第一维的大小A.二维数组初始化时可以省略第二维的大小B.二维数组初始化时必须指定所有元素的值C.二维数组初始化时不能只初始化部分元素D.答案A解析二维数组初始化时可以省略第一维的大小,但不能省略第二维的大小,可只初始化部分元素,、、选项错误BCD若有定义则表达式的值是()
41.int a=3,b=5;abA.1B.2C.3D.5答案A解析按位与运算,将和转换为二进制,的二进制是的二进制是按位与后3530011,50101,结果为即十进制的0001,1以下关于函数调用的说法,错误的是()
42.函数调用时实参和形参的类型要匹配A.函数调用可以出现在表达式中B.函数调用时可以不传递参数C.函数调用时实参和形参的个数可以不同D.答案D解析函数调用时实参和形参的个数必须相同,、、选项关于函数调用的描述正确ABC若有定义则的值是()
43.char ch=9;ch-OA.9B.9C.57不确定D.答案B解析在码中,字符是连续的,得到数字ASCII0-99-09以下关于指针数组的说法,正确的是()
44..指针数组的元素是指针A指针数组只能存储整数指针B.指针数组的大小必须在定义时确定C.指针数组不能进行初始化D.答案A莓析指针数组的元素是指针,可存储不同类型指针,错误;大小可在定义时确定也可通过B动态分配,错误;可以进行初始化,错误CD若有定义则()的值是()
45.inta
[3]={l,2,3};int*p=a;*p+2A.1B.2C.3不确定D.答案C解析指向数组的首元素,指向数组的第个元素,()就是第个元素的值p ap+2a3*p+233以下关于循环和循环的区别,正确的是()
46.while do-while循环先判断条件再执行循环体,循环先执行循环体再判断条件A.while do-while循环至少执行一次循环体,循环不一定执行循环体B.while do-while循环的循环体必须用花括号括起来,循环的循环体可以不用花括号C.while do-while循环和循环的条件判断方式不同D.while do-while答案A解析循环先判断条件,条件为真执行循环体;循环先执行循环体,再判断条件,while do-while选项说反了;选项两种循环体是否用花括号取决于语句数量;选项条件判断方式相同BCD若有定义二则后指向的地址是()
47.int a=10;int*p a;p++p变量的地址A.a变量后面一个类型大小的地址B.a int随机地址C.不确定D.答案B解析指针会让指针指向下一个类型大小的地址P++int以下关于结构体变量初始化的说法,正确的是()
48.结构体变量初始化时必须初始化所有成员A.结构体变量初始化时可以只初始化部分成员B.结构体变量初始化时成员的顺序可以任意C.结构体变量初始化时不能使用花括号D.答案B解析结构体变量初始化时可以只初始化部分成员,未初始化的成员会按默认规则初始化,A错误;成员顺序要和定义时一致,错误;初始化要用花括号,错误CD.右有函数定义调用的返回int maxintx,int y{return xy x:y;}max10,max20,30是C.30值不确定D.答案C解析先计算返回再计算返回max20,3030,max10,303049A.B1020以下关于文件指针的说法,错误的是
50.文件指针指向一个文件A.文件指针在文件打开时创建B.文件指针在文件关闭时销毁C.文件指针可以直接操作文件内容D.答案D解苏文件指针不能直接操作文件内容,需要通过相关的文件操作函数,、、选项关于文ABC件指针的描述正确若有定义则*的值是
51.int arr
[4]={1,3,5,7};int*p=arr+2;pA.1B.3C.5D.7答案C解析:指向⑵所以*的值是p arr,p5以下关于逗号运算符的说法,正确的是
52.逗号运算符的优先级是所有运算符中最低的A.逗号运算符的结果是最后一个表达式的值B.逗号运算符可以用于连接多个不同类型的表达式C.以上说法都正确D.答案D解加逗号运算符优先级最低,结果是最后一个表达式的值,可连接不同类型表达式若有定义二;贝!的值是
53.char str[]”abc\0def JstrlenstrA.3B.7C.4不确定D.答案A解析计算字符串长度遇到胆结束,所以结果是strlen3以下关于函数的存储类别,说法错误的是
54.函数默认的存储类别是A.extern修饰的函数只能在本文件中调用B.static修饰的函数可以在其他文件中调用C.extern函数不能使用存储类别D.auto答案D解析函数没有存储类别,、、选项关于函数存储类别的描述正确auto ABC若有定义则表达式的值是
55.int a=5,b=3;a%bA.1B.2C.3D.5答案B解析%是取余运算符,结果为5%32。
个人认证
优秀文档
获得点赞 0