还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
c二级考试试题及答案
一、单选题(每题1分,共10分)
1.在C语言中,用于声明枚举类型的关键字是()A.structB.unionC.enumD.define【答案】C【解析】C语言中声明枚举类型使用关键字enum
2.以下哪个不是C语言合法的标识符?()A.int32_tB.3intC._variableD.float【答案】B【解析】C语言标识符不能以数字开头
3.在C语言中,若定义了变量`inta=5;`,则表达式`a++2`的值是()A.10B.11C.12D.15【答案】A【解析】`a++`先使用a的值再自增,所以表达式为`52=10`
4.以下哪个语句在C语言中是合法的?()A.ifa==bthenc=10;B.ifa==bc=10;C.ifa==bc=10;D.ifa==bc=10elsec=20;【答案】B【解析】C语言中if语句条件后必须加分号
5.以下哪个函数用于动态分配内存?()A.freeB.mallocC.sizeofD.realloc【答案】B【解析】malloc用于动态分配内存
6.以下哪个运算符的优先级最高?()A.B.||C.D.==【答案】C【解析】关系运算符的优先级高于逻辑运算符
7.在C语言中,以下哪个是正确的循环语句?()A.fori=0;i10;i--{printf%d\n,i;}B.whilei10{printf%d\n,i;i++;}C.do{printf%d\n,i;}whilei10;D.以上都不对【答案】B【解析】选项B是正确的while循环
8.以下哪个函数用于释放动态分配的内存?()A.mallocB.freeC.reallocD.new【答案】B【解析】free用于释放动态分配的内存
9.在C语言中,以下哪个是正确的字符串定义?()A.charstr[]=Hello;B.charstr
[6]=Hello;C.charstr
[5]=Hello;D.以上都不对【答案】A【解析】选项A正确地定义了字符串
10.以下哪个是C语言中的预处理命令?()A.includeB.printfC.ifD.for【答案】A【解析】include是预处理命令
二、多选题(每题4分,共20分)
1.以下哪些是C语言的基本数据类型?()A.intB.floatC.charD.doubleE.void【答案】A、B、C、D【解析】C语言的基本数据类型包括int、float、char、double
2.以下哪些语句是合法的C语言循环语句?()A.forB.whileC.do-whileD.ifE.switch【答案】A、B、C【解析】for、while、do-while是循环语句,if和switch不是
3.以下哪些运算符在C语言中存在?()A.B.||C.!D.==E.=【答案】A、B、C、D、E【解析】C语言中存在、||、!、==、=运算符
4.以下哪些函数用于动态内存管理?()A.mallocB.freeC.sizeofD.reallocE.new【答案】A、B、D【解析】malloc、free、realloc是动态内存管理函数
5.以下哪些是C语言中的控制语句?()A.ifB.switchC.forD.whileE.do-while【答案】A、B、C、D、E【解析】if、switch、for、while、do-while都是控制语句
三、填空题(每题4分,共16分)
1.在C语言中,用于声明结构体的关键字是______【答案】struct【解析】C语言中声明结构体使用关键字struct
2.在C语言中,用于动态分配内存的函数是______【答案】malloc【解析】malloc用于动态分配内存
3.在C语言中,用于释放动态分配内存的函数是______【答案】free【解析】free用于释放动态分配的内存
4.在C语言中,用于声明枚举类型的关键字是______【答案】enum【解析】C语言中声明枚举类型使用关键字enum
四、判断题(每题2分,共10分)
1.在C语言中,变量必须先声明后使用()【答案】(√)【解析】C语言中变量必须先声明后使用
2.在C语言中,字符串常量存储在栈中()【答案】(×)【解析】字符串常量存储在常量区
3.在C语言中,`inta=5;`和`inta5;`是等价的()【答案】(×)【解析】C语言中变量声明不能带初始化值
4.在C语言中,`ifa=b`是合法的()【答案】(√)【解析】`ifa=b`是合法的,但要注意逻辑错误
5.在C语言中,`charstr[]=Hello;`和`charstr
[6]={H,e,l,l,o,\0};`是等价的()【答案】(√)【解析】两个定义都是合法的字符串定义
五、简答题(每题5分,共15分)
1.简述C语言中动态内存分配的三个步骤【答案】
1.使用`malloc`函数分配内存;
2.使用`realloc`函数调整内存大小;
3.使用`free`函数释放内存
2.简述C语言中结构体的定义和使用方法【答案】定义结构体使用关键字`struct`,格式为```cstruct结构体名{成员变量1类型成员变量1名;成员变量2类型成员变量2名;...};```使用结构体时,需要先声明结构体变量,然后通过变量名访问成员变量
3.简述C语言中枚举类型的定义和使用方法【答案】定义枚举类型使用关键字`enum`,格式为```cenum枚举类型名{枚举值1,枚举值2,...};```使用枚举类型时,需要先声明枚举变量,然后通过变量名访问枚举值
六、分析题(每题15分,共30分)
1.分析以下代码的输出结果,并说明原因```cincludestdio.hintmain{inta=5;intb=10;intptr=a;ptr=20;printfa=%d,b=%d\n,a,b;return0;}```【答案】输出结果为`a=20,b=10`原因`ptr`是一个指向变量`a`的指针,`ptr`表示`a`的值`ptr=20;`将`a`的值修改为20,因此`a`的值变为20,`b`的值保持不变
2.分析以下代码的错误,并改正```cincludestdio.hintmain{charstr[]=Hello;intlen=sizeofstr;printfLengthofstris%d\n,len;return0;}```【答案】错误`sizeofstr`计算的是字符串`Hello`加上结尾的`\0`,因此长度为6改正将`sizeofstr`改为`sizeofstr-1`改正后的代码```cincludestdio.hintmain{charstr[]=Hello;intlen=sizeofstr-1;printfLengthofstris%d\n,len;return0;}```
七、综合应用题(每题25分,共50分)
1.编写一个C语言程序,实现以下功能
1.定义一个结构体`Person`,包含姓名(char类型,长度为50)、年龄(int类型)和性别(char类型,M或F)
2.声明一个`Person`类型的数组,包含3个元素
3.通过循环输入每个`Person`的信息
4.输出所有`Person`的信息【答案】```cincludestdio.hstructPerson{charname
[50];intage;chargender;};intmain{structPersonpeople
[3];forinti=0;i3;i++{printfEnterinformationforperson%d:\n,i+1;printfName:;scanf%s,people[i].name;printfAge:;scanf%d,people[i].age;printfGenderM/F:;scanf%c,people[i].gender;//注意在%c前加空格,以忽略前一个输入的换行符}printf\nPeopleInformation:\n;forinti=0;i3;i++{printfName:%s,Age:%d,Gender:%c\n,people[i].name,people[i].age,people[i].gender;}return0;}```
2.编写一个C语言程序,实现以下功能
1.定义一个函数`factorial`,计算并返回一个整数的阶乘
2.在`main`函数中,通过用户输入一个整数,调用`factorial`函数计算其阶乘,并输出结果【答案】```cincludestdio.hlonglongfactorialintn{ifn==0return1;elsereturnnfactorialn-1;}intmain{intnum;printfEnterapositiveinteger:;scanf%d,num;ifnum0{printfFactorialofanegativenumberdoesntexist.\n;}else{printfFactorialof%dis%lld\n,num,factorialnum;}return0;}```完整标准答案
一、单选题
1.C
2.B
3.A
4.B
5.B
6.C
7.B
8.B
9.A
10.A
二、多选题
1.A、B、C、D
2.A、B、C
3.A、B、C、D、E
4.A、B、D
5.A、B、C、D、E
三、填空题
1.struct
2.malloc
3.free
4.enum
四、判断题
1.(√)
2.(×)
3.(×)
4.(√)
5.(√)
五、简答题
1.使用`malloc`函数分配内存;使用`realloc`函数调整内存大小;使用`free`函数释放内存
2.定义结构体使用关键字`struct`,格式为`struct结构体名{成员变量1类型成员变量1名;成员变量2类型成员变量2名;...};`使用结构体时,需要先声明结构体变量,然后通过变量名访问成员变量
3.定义枚举类型使用关键字`enum`,格式为`enum枚举类型名{枚举值1,枚举值2,...};`使用枚举类型时,需要先声明枚举变量,然后通过变量名访问枚举值
六、分析题
1.输出结果为`a=20,b=10`原因`ptr`是一个指向变量`a`的指针,`ptr`表示`a`的值`ptr=20;`将`a`的值修改为20,因此`a`的值变为20,`b`的值保持不变
2.错误`sizeofstr`计算的是字符串`Hello`加上结尾的`\0`,因此长度为6改正将`sizeofstr`改为`sizeofstr-1`
七、综合应用题
1.程序代码如上所示
2.程序代码如上所示。
个人认证
优秀文档
获得点赞 0