还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
国家计算机二级语言考试真题道及答案C100若有定义则表达式的值是()
1.inta=5,b=3;a%bA.1B.2C.3D.O答案A解析“%”是取余运算符,除以商余所以的结果是5312,5%32o以下关于语言中函数的说法,正确的是()
2.C函数必须有返回值A.函数可以没有参数B.函数名可以和变量名相同C.函数定义可以嵌套D.答案B解析函数可以没有返回值,用类型;函数名和变量名不能相同,会产生命名冲突;void函数定义不能嵌套,但函数调用可以嵌套;函数可以没有参数已知执行语句+二-二后,的值是()
3.int x=10;x xx*x;xA.-180B.180C.0D,-100答案A解析先计算得然后此时变为再最终为x*x100,x-=100,x-90,x+=-90,x-180以下哪个是语言合法的标识符()
4.CA.2abcB.intC._abcD.ab-c答案C解析标识符只能由字母、数字和下划线组成,且不能以数字开头,是关键字不能作为标识int符,中有非法字符-ab-co若有定义二则执行语句后,的值是()
5.char chA;ch=ch+32;chA.aB.WCBD.b答案A解析在码中,大写字母和小写字母相差加得到宣ASCII32,A32下面关于数组的说法,错误的是()
6.数组元素的下标从开始A.0数组名代表数组首元素的地址B.数组定义时可以不指定大小C.可以通过数组名和下标访问数组元素D.答案C解析数组定义时必须指定大小,除非同时进行初始化若有定义则的值是
7.intarr
[5]={l,2,3,4,5};arr
[3]B.swapa,b;C.swap*a,*b;D.swap*a,*b;答案B解析函数参数是指针类型,需要传递变量的地址,所以用叩sw a,b以下关于字符输入输出函数的说法,正确的是
56.函数只能接收一个字符A.getchar函数可以输出字符串B.putchar函数不能输入字符C.scanf函数不能输出字符D.printf答案A解析函数一次只能接收一个字符;只能输出一个字符;可以输入字符;getchar putcharscanf可以输出字符printf若有定义输入后,的值是
57.char ch;ch=getchar;‘A chA.AB.65区C.不确定D.答案A解析接收输入的字符,输入的值就是getchar A,ch TV下面关于宏定义的说法,错误的是
58.宏定义是在编译时进行替换的A.宏定义可以带参数B.宏定义的作用域是整个文件C.宏定义可以嵌套使用D.答案C解析宏定义在编译时替换;可以带参数;能嵌套使用;宏定义作用域从定义处到文件结束,可通过提前结束作用域#undef若有宏定义则执行语句后,的值是
59.#define SQUARExx*x int a=SQUARE2+3;aA.25B.11C.10不确定D.答案B解析宏替换后为先乘后加,结果为2+3*2+3,11以下关于动态数组的说法,正确的是
60.动态数组的大小在编译时确定A.动态数组使用完后不需要释放内存B.可以用函数创建动态数组C.malloc动态数组只能是一维的D.答案C解析动态数组大小在运行时确定;使用完要释放内存;可用函数创建;可以是多维的malloc若有定义则指向的内存空间可以存储个整型数据
61.int*p=int*malloc5*sizeofint;pA.1B.5C.10不确定D.答案B解析分配了个整型大小的内存空间,所以可存储个整型数据malloc55下面关于结构体数组的说法,正确的是
62.结构体数组的元素只能是结构体A.结构体数组不能初始化B.结构体数组的大小必须在定义时确定C.结构体数组的元素不能通过下标访问D.答案A解析:结构体数组元素是结构体;可以初始化;大小可在定义时确定或通过初始化隐式确定;可通过下标访问元素若有定义则的值是
63.struct Point{int x;int y;}points
[2]={{1,2},{3,4}};points|1|.xA.1B.2C.3D.4答案C解析:是数组第二个元素,的值是points[l]points[l].x3以下关于文件读写模式的说法,正确的是
64.模式只能读取文本文件A.r”模式打开文件时,如果文件不存在会报错B.”w”模式打开文件时,文件指针指向文件开头模式用于以二进制形式读取文件D.“rb”答案D解析『模式可读取文本或二进制文件;模式文件不存在会创建;模式文件指针指向“w”“a”文件末尾;“由”是以二进制形式读取文件若要以追加模式打开一个二进制文件,正确的打开方式是
65.“data.bin”A.fopen,data.binn,nrn;B.fopenMdata.binn,nwH;C.fopenndata.binn,nan;D.fopendata.binn,uabn;答案D解苏是以追加模式打开二进制文件“ab”下面关于指针和数组的关系,说法错误的是
66.数组名可以看作是一个常量指针A.指针可以指向数组的元素B.可以用指针遍历数组C.数组和指针是完全相同的概念D.答案D而析数组名可看作常量指针;指针能指向数组元素;可用指针遍历数组;数组和指针有区别,数组有自己的存储空间等若有定义则等价于
67.int arr
[5]={1,2,3,4,5};int*p=art;p
[3]A.*p+3B.*p+3printfnthreen;}当x为1时,输出结果是A.oneB.one twoC.one twothree不确定D.答案B解析为时,执行后的语句,由于没有继续执行后的语句,遇到x1case1break,case2break跳出,所以输出one two下面关于字符处理函数的说法,正确的是
86.函数可以判断字符是否为数字A.isdigit函数可以判断字符是否为大写字母B.isalpha函数可以将大写字母转换为小写字母,对小写字母无效C.tolower函数可以将小写字母转换为大写字母,对大写字母无效D.toupper答案A解析函数用于判断字符是否为数字;函数判断字符是否为字母包括大小写;isdigit isalpha函数对大写字母转换为小写,对小写字母不变;函数对小写字母转换为大写,对tolower toupper大写字母不变若有字符使用⑹后得到的字符是
87.A,owerAA.A区B.C.B不确定D.答案B解析函数将大写字母转换为小写字母区tolower A以下关于动态内存分配函数的说法,正确的是
88.calloc分配的内存空间不会初始化为A.calloc0函数的参数和函数相同B.calloc malloc分配的内存空间比更安全C.calloc malloc只能分配一维数组的内存D.calloc答案C解析分配的内存空间会初始化为;参数和不同,有两个参数;由于初始calloc0malloc calloc化为相对更安全;可以分配多维数组的内存0,若有定义则指向的内存空间初始值都为
89.int*p=int*canoc3,sizeofint;p随机值A.B.0C.1不确定D.答案B解析会将分配的内存空间初始化为calloc0o下面关于函数指针的说法,正确的是
90.函数指针不能作为函数参数A.函数指针只能指向一个函数B.函数指针的类型由函数的返回值和参数决定C.函数指针不能调用函数D.答案C解析函数指针可以作为函数参数;可以指向不同的同类型函数;其类型由函数的返回值和参数决定;可以通过函数指针调用函数若有函数定义定义一个指向该函数的指针,正确的是
91.intaddinta,intb{returna+b;}A.int*pint,int=add;B.int*pint,int=add;C.int pint,int=add;D.*int pint,int=add;答案A解析定义函数指针的格式是返回值类型*指针名参数类型列表,所以正确A以下关于文件操作函数的说法,正确的是
92.fread只能读取文本文件A.fread的返回值是实际读取的元素个数B.fread的参数不需要指定读取的元素大小C.fread读取文件时文件指针不会移动D.fread答案B解析可读取二进制文件;返回值是实际读取的元素个数;参数需要指定读取的元素大小;fread读取时文件指针会移动若有文件指针和数组要从文件中读取个整型数据到数组,正确的调
93.FILE*fp;int arr
[5];5arr用方式是A.freadarr,sizeofint,5,fp;B.freadarr,sizeofint,5,fp;C.freadarr,5,sizeofint,fp;D.freadarr,5,sizeofint,fp;答案A解析的参数依次是存储数据的地址、每个元素大小、元素个数、文件指针,本身就是fread arr数组首地址,所以正确A下面关于结构体和共用体的区别,说法错误的是
94.结构体的成员共享内存空间A.共用体的成员共享内存空间B.结构体的大小是所有成员大小之和C.共用体的大小是最大成员的大小D.答案A解析结构体的成员有各自独立的内存空间,大小是所有成员大小之和;共用体的成员共享内存空间,大小是最大成员的大小若有定义则该共用体的大小是
95.union Data{int i;float f;char c;};字节A.1字节B.4字节C.5不确定D.答案B解苏在常见系统中,类型占字节,是最大成员,所以共用体大小是字节float44以下关于位段的说法,正确的是
96.位段成员必须是整型A.位段成员的长度可以任意指定B.位段可以提高内存利用率C位段只能用于结构体,不能用于共用体D.答案C解析位段成员通常是整型;位段成员长度不能任意指定,要受系统和类型限制;位段可将一个字节或多个字节按位划分使用,提高内存利用率;位段可用于结构体和共用体若有定义则占用的内存空间是()
97.struct{unsigned int a:2;unsigned intb:3;}s;s字节A.1字节B.2字节C.3字节D.4答案A莓析位段占位,占位,总共位,不足字节,按字节存储a2b3511下面关于和的区别,说法正确的是()
98.typedef#define是编译时处理,是预处理时处理A.typedef#define可以定义常量,不能B.typedef#define定义的别名有作用域限制,没有C.typedef#define比更灵活,可以定义更复杂的类型别名D.typedef#define答案A解析是编译时处理,是预处理时处理;可定义常量,不能;typedef#define#define typedeftypedef和定义的都有作用域限制;更灵活,可进行简单的文本替换#define#define若有和下面说法正确的是()
99.typedef intINT;#define INTint;两者作用完全相同A.定义的是一个新的数据类型,只是简单替换B.typedef INT#define定义的可以进行类型检查,不能C.typedef INT#define比执行效率高D.typedef#define答案C解析定义的本质还是血类型,不是新数据类型;是简单文本替换,typedef INT#deflne typedef可进行类型检查;两者执行效率无明显差异以下关于语言程序的编译和链接,说法错误的是()
100.C编译是将源文件转换为目标文件A.链接是将多个目标文件和库文件组合成可执行文件B.编译过程会检查语法错误,链接过程不会C.编译和链接都可以发现逻辑错误D.答案D解加编译将源文件转换为目标文件,会检查语法错误;链接将多个目标文件和库文件组合成可执行文件;编译和链接主要发现语法和链接错误,逻辑错误需要在程序运行时发现A.1B.3C.4D.5答案C解析数组下标从开始,是数组的第个元素,值为0arr
[3]44以下关于指针的说法,正确的是()
8.指针只能指向变量A.指针变量可以不初始化B.指针的类型和它所指向变量的类型必须一致C.指针不能进行算术运算D.答案C解析指针可以指向变量、数组等;指针变量不初始化会是野指针,很危险;指针可以进行算术运算;指针的类型和它所指向变量的类型必须一致若有定义则的值是()
9.int*p,a=10;p=a;*p变量的地址A.a指针的地址B.pC.10不确定的值D.答案C解析指向变量表示取所指向地址的值,即的值p a,*p p a10下面哪个是语言的逻辑与运算符()
10.CA.HB.A答案B解析是逻辑或运算符,“!”是逻辑非运算符,“八”是按位异或运算符,“”是逻辑“II”与运算符若有定义则表达式()的值是()
11.inta=2,b=3;aba:bA.2B.3C.5D.O答案A解加这是三目运算符,条件成立,取冒号前的值,即的值ab a2o以下关于循环结构的说法,正确的是()
12.循环只能用于已知循环次数的情况A.for循环的循环体至少执行一次B.while循环的循环体至少执行一次C.do-while三种循环结构不能相互嵌套D.答案C解析循环也可用于未知循环次数的情况;循环先判断条件,条件不成立循环体一次for while都不执行;循环先执行循环体再判断条件,循环体至少执行一次;三种循环结构可以do-while相互嵌套若有定义循环结束后的值是
13.int i;for i=0;i5;i++{if i==3break;}iA.2B.3C.4D.5答案B解析当等于时,执行语句跳出循环,此时的值为i3break i3下面关于函数调用的说法,错误的是()
14.函数调用时实参和形参可以类型不同A.函数调用可以作为另一个函数的参数B.函数调用可以出现在表达式中C.函数调用时实参和形参的个数必须相同D.答案A解析函数调用时实参和形参类型必须一致,或者可以进行隐式类型转换;函数调用可以作为另一个函数的参数,也可以出现在表达式中,实参和形参个数必须相同若有函数定义()调用该函数时,下面说法正确的是()
15.void funint x{x=x+1;}可以改变实参的值A.不能改变实参的值B.实参和形参共用一个内存单元C.形参是实参的别名D.答案B解析语言中函数参数传递是值传递,形参是实参的副本,改变形参的值不会影响实参的值C以下关于字符串的说法,正确的是()
16.字符串以结尾A.字符串可以用字符数组存储,但不能用指针存储B.字符串的长度不包括C.可以用赋值语句直接给字符数组赋值字符串D.答案A解析字符串以结尾,字符串既可以用字符数组存储,也可以用指针存储;字符串长度不*\0,包括不能用赋值语句直接给字符数组赋值字符串‘\0;
17.若有定义:char str[]=nhellon;则strlen(str)的值是()A.5B.6C.7不确定D.答案A解析函数计算字符串长度,不包括长度为strlen t\0\hello”5下面关于结构体的说法,正确的是()
18.结构体成员只能是基本数据类型A.结构体变量不能整体赋值B.结构体定义时必须初始化C.结构体可以嵌套定义D.答案D解苏:结构体成员可以是基本数据类型,也可以是其他结构体等;结构体变量可以整体赋值;结构体定义时不一定要初始化;结构体可以嵌套定义若有定义则访问的成员的正确方式是()
19.struct Student{int id;char name
[20];}stu;stu idA.Student.idB.stu.idC.stu-idD.stu.id答案B解析当使用结构体变量访问成员时,用运算符,是结构体变量,所以用访问成员stu stu.id id以下关于文件操作的说法,错误的是()
20.文件打开后必须关闭A.可以用函数打开文件B.fopen可以用函数向文件中写入数据C.fwrite文件操作时不需要判断文件是否打开成功D.答案D解析文件操作时必须判断文件是否打开成功,否则后续操作可能会出错;文件打开后要关闭;用于打开文件,用于向文件写入数据fopen fwrite若有定义则是数组的第()个元素
21.inta
[3]
[4];a[l]
[2]A.6B.7C.8D.9答案B解析二维数组按行存储,是第行第个元素,前面有个元素,所以是第个元231*4+2=67素下面关于预编译指令的说法,正确的是()
22.预编译指令必须以开头A.预编译指令可以出现在程序的任何位置B.预编译指令是在程序运行时处理的C.预编译指令只能定义常量D.答案A褊析预编译指令必须以“#开头,它在编译前处理,通常放在程序开头;可以定义常量、宏等;预编译指令有一定的语法规则,不是可以出现在任何位置
23.若有定义inta=10,b=20;则执行语句a A=b;b A=a;a A=b;后,a和b的值分别是()A.20,10B.10,20C.10,10D.20,20答案A解析通过异或运算可以实现两个变量值的交换,最终的值为的值为a20,b10以下关于函数递归调用的说法,错误的是()
24.递归函数必须有终止条件A.递归调用会增加系统开销B.递归函数可以没有返回值C.递归调用不能嵌套D.答案D解析递归函数必须有终止条件,否则会无限递归;递归调用会使用栈空间,增加系统开销;递归函数可以没有返回值;递归调用可以嵌套若有定义义则()的值是()
25.t*p,air
[5]={1,2,3,4,5};p=arr;*p+2A.1B.2C.3D.4答案C解析指向数组的首地址,指向数组的第个元素,()就是第个元素的值p arrp+23*p+233o下面关于语句的说法,正确的是()
26.switch后面的表达式只能是整型或字符型A.switch后面的常量表达式可以重复B.case语句中必须有分支C.switch default语句只能嵌套一层D.switch答案A解析后面的表达式只能是整型或字符型;后面的常量表达式不能重复;分支switch casedefault不是必须的;语句可以多层嵌套switch若有定义则执行语句后,的值是()
27.inta=5;a«=2;aA.10B.20C.5D.2答案B解析“二是左移赋值运算符,相当于左移位,相当于乘以的次方,«=2a=a2,5222a结果为20o以下关于动态内存分配的说法,正确的是()
28.可以用函数分配任意大小的内存A.malloc动态分配的内存不需要释放B.用函数分配的内存初始值为C.malloc0可以用函数释放静态分配的内存D.free答案A解析函数可以根据需要分配任意大小的内存;动态分配的内存使用完后必须用函malloc free数释放;用函数分配的内存初始值是不确定的;函数只能释放动态分配的内存malloc free若有定义;则存储的是()
29.char*str=world”str字符A.W字符串B.“word字符串的首地址C.“world”字符串的长度D.“world”答案C解析是一个字符指针,它存储的是字符串的首地址str“world”下面关于函数重载的说法,正确的是()
30.语言支持函数重载A.C函数重载是指函数名相同但参数不同B.函数重载只和返回值类型有关C.函数重载的函数必须在不同的文件中定义D.答案B解析语言不支持函数重载;函数重载是指函数名相同但参数不同,和返回值类型无关;C函数重载的函数在同一文件中定义若有定义则表达式的值是()
31.inta=3,b=4;aba++:b++A.3B.4C.5D.6答案B解加条件不成立,取冒号后的值,即的值然后自增ab b4,b以下关于语句的说法,正确的是()
32.continue语句只能用于循环A.continue for语句会终止整个循环B.continue语句会跳过本次循环剩余的语句C.continue语句可以出现在循环体外D.continue答案C解析语句可用于、、循环;它不会终止整个循环,而是跳过本次continue forwhile do-while循环剩余的语句;它只能出现在循环体内若有定义则的值是()
33.intarr
[3]
[3]={{1,2,3},{4,5,6},{7,8,9}};arr[l][l]A.1B.5C.6D.8答案B解析是二维数组第行第个元素,值为225下面关于枚举类型的说法,正确的是()
34.枚举类型的常量值必须从开始A.0枚举类型的常量可以重复B.枚举类型的常量可以是任意整数C.枚举类型是一种用户自定义的数据类型D.答案D解析枚举类型的常量值默认从开始,但可以指定;常量不能重复;常量是整数,但不是任意整数;枚举类型是用户自定义的数据类型若有定义贝」的值是()
35.enum Color{RED,GREEN,BLUE};enum Colorc=GREEN;I cA.OB.1C.2D.3答案B解析枚举常量默认值为为为所以的值为RED0,GREEN1,BLUE2,c1以下关于指针数组的说法,正确的是()
36.指针数组的元素只能是指针A.指针数组不能存储字符串B.指针数组的大小必须在定义时确定C.指针数组的元素不能指向同一类型的变量D.答案A解析指针数组的元素是指针;可以用指针数组存储字符串;指针数组大小可以在定义时确定,也可以通过初始化来隐式确定;指针数组的元素可以指向同一类型的变量若有定义则是()
37.int*p
[3];p一个指向整型变量的指针A.一个整型数组B.一个指针数组,每个元素是指向整型变量的指针C.一个指向指针的指针D.答案C解析定义了一个指针数组,数组有个元素,每个元素是指向整型变量的指针int*p
[3]3下面关于位运算的说法,错误的是()
38.位运算只能用于整型数据A.按位与运算符可以用于清某些位390按位或运算符可以用于置某些位C.1位运算的优先级比算术运算高D.答案D解析位运算只能用于整型数据;按位与可以清某些位,按位或可以置某些位;位运算优01先级比算术运算低若有定义则执行语句后,的值是()
39.int a=0x5;a=0x3;aA.0x1B.0x2C.0x3D.0x5答案A解析将十六进制数转换为二进制进行按位与运算,的二进制是的二进制是0x50101,0x30011,按位与后结果为即0001,0x1o以下关于函数参数传递方式的说法,正确的是()
40.语言只有值传递一种参数传递方式A.C地址传递可以改变实参的值B.值传递时实参和形参占用同一内存单元C.地址传递时实参和形参是不同类型D.答案B解析语言有值传递和地址传递;地址传递时形参是实参地址的副本,可通过地址改变实参C的值;值传递时实参和形参占用不同内存单元;地址传递时实参和形参类型要匹配若有定义则使用()后,的值是()
41.charsl
[10]=abc\s2
[10]=deF;strcat sl,s2;siA.nabcnB.def”C.abcdeFD.ndefabcn答案C解析函数是将连接到后面,所以变为strcat s2si siabcdefo下面关于的说法,正确的是()
42.typedef可以用来定义新的数据类型A.typedef只能为基本数据类型定义别名B.typedef定义的别名和原类型完全等价C.typedef语句必须放在文件开头D.typedef答案C解析是为已有的数据类型定义别名,不是定义新的数据类型;可以为基本数据类型、typedef结构体等定义别名;定义的别名和原类型完全等价;语句不一定要放在文件开typedef头若有定义贝的类型是()
43.typedef intINTEGER;INTEGER a=10;U aA.intB.INTEGER自定义类型C.不确定D.答案A解析为定义了别名所以的类型本质还是typedef intINTEGER,a into以下关于多维数组的初始化,错误的是()
44.⑵A.inta
[3]={{1,2},{3,4}};⑵
2.1nta
[3]={1,2,3,4};C.inta[]
[3]={{l,2},{3,4}};D.inta
[2][]={{l,2},{3,4}};答案D解析多维数组初始化时,行可以省略,但列不能省略,选项列省略了,所以错误D若有定义则的值是()
45.inta
[5]={l,2,3,4,5};int*p=a+2;*pA.1B.2C.3D.4答案C解析指向的地址,*就是的值p a
[2]pa
[2]3下面关于字符数组和字符串的区别,说法错误的是()
46.A.字符数组不一定以\(y结尾字符串一定以结尾B.字符数组可以存储非字符串数据C.字符数组和字符串的操作完全相同D.答案D解析字符数组不一定以结尾,字符串一定以结尾,字符数组可存储非字符串数据;字‘\0‘\0‘符数组和字符串操作有不同,如字符串有专门函数处理
47.若有定义char str[]=nabc\0def则strlen(str)的值是()A.3B.7C.6D.0答案A解析遇到就结束计算长度,所以结果是strlen3o以下关于文件指针的说法,正确的是()
48.文件指针可以指向任意类型的文件A.文件指针只能在文件打开后使用B.文件指针的值是文件的内容C.文件指针可以进行算术运算D.答案B解析文件指针在文件打开后才有意义,指向特定的文件;它不是指向任意类型文件;其值是文件的操作位置信息,不是文件内容;一般不进行算术运算若有定义则的值
49.struct Date{int year;int month;int day;}d={2024,10,1};d.month是()A.2024B.10C.1不确定D.答案B解析通过结构体变量名和成员访问运算符可访问成员,的值是d.month10下面关于函数的返回值,说法错误的是()
50.函数可以没有返回值A.函数返回值的类型可以和定义的类型不同B.函数返回值可以是指针类型C.函数可以返回多个值D.答案B解析函数可以没有返回值,用类型;返回值类型必须和定义的类型一致;可以返回指针void类型;语言函数不能直接返回多个值C若有定义则表达式的值是()
51.inta=7,b=3;a/bA.2B.
2.
333...C.3D.0答案A解析两个整型相除,结果为整型,除以商所以结果是732,2o以下关于逻辑运算符的优先级,从高到低排列正确的是()
52.答案A解析逻辑非、”优先级最高,其次是逻辑与“”,最后是逻辑或若有定义则执行语句()后,的值是()
53.intx=5;if x3x++;else x-;xA.4B.5C.6D.7答案C解析〉条件成立,执行的值变为x3x++,x6o下面关于数组作为函数参数的说法,正确的是()
54.数组作为函数参数时,传递的是数组的副本A.数组作为函数参数时,函数内不能修改数组元素的值B.数组作为函数参数时,必须指定数组的大小C.数组作为函数参数时,传递的是数组首元素的地址D.答案D解析数组作为函数参数传递的是首元素地址,不是副本;函数内可通过地址修改数组元素值;不一定要指定数组大小若有函数定义:()调用该函数交换两个变
55.void swapint*a,int*b{int t=*a;*a=*b;*b=t;}量的值,正确的调用方式是()()A.swap a,b;。
个人认证
优秀文档
获得点赞 0