还剩7页未读,继续阅读
文本内容:
c语言期末考试试题及答案
一、单项选择题(共30题,每题1分,共30分)(以下每小题均只有一个正确答案,将正确答案的序号填在括号内)C语言程序的基本执行单位是()A.语句B.函数C.程序块D.变量以下选项中,属于C语言关键字的是()A.function B.string C.int D.var表达式10%3+10/3的值为()A.6B.7C.10D.13若有定义int a=5,b=3;,则表达式a ba:b的值为()A.3B.5C.8D.0以下循环结构中,循环体至少执行一次的是()A.while a0{a++;}B.do{a++;}while a0;C.for a=0;a0;a++{a++;}D.for a=0;a0;;{a++;}以下关于数组的描述,错误的是()A.数组元素的数据类型必须相同B.数组名代表数组首元素的地址C.数组长度在定义时必须确定D.数组可以直接用=赋值函数的返回值类型是void时,表示()A.函数没有返回值B.函数返回值为0C.函数返回值为NULL D.函数返回值不确定以下函数声明正确的是()A.int funca,b{return a+b;}B.int funcint a,int b{return a+b;}第1页共9页C.funcint a,int b{return a+b;}D.int funcint a,b{return a+b;}指针变量存储的是()A.变量的值B.变量的类型C.变量的地址D.变量的大小若有定义int*p,a=10;p=a;,则*p的值为()A.10B.`a`C.`p`D.不确定以下关于结构体的描述,错误的是()A.结构体是构造数据类型B.结构体成员可以是不同类型C.结构体变量可以直接用`=`赋值D.结构体变量的大小等于各成员大小之和以下能正确定义一个包含3个字符元素的结构体数组的是()A.`struct{char name
[20];int age;}students
[3];`B.`struct student{char name
[20];int age;}students
[3];`C.`struct student{char name
[20],age;}students
[3];`D.`struct{char name
[20];int age;}students
[3]={{Tom,18},{Jerry,19}};`C语言中,scanf函数的作用是()A.输出数据B.输入数据C.存储数据D.计算数据以下关于文件操作的描述,正确的是()A.打开文件时必须指定文件路径B.关闭文件用`close`函数C.读取文件前必须先打开文件D.文件指针初始值为`NULL`若有定义char str[]=hello;,则strlenstr的值为()A.5B.6C.7D.不确定在C语言中,const关键字修饰的变量()第2页共9页A.可以被修改B.不能被修改C.必须初始化D.必须是全局变量以下关于static关键字的描述,错误的是()A.静态局部变量在函数调用结束后不释放B.静态全局变量作用域限于本文件C.静态函数作用域限于本文件D.静态变量可以多次初始化以下函数中,能对字符串进行复制的是()A.`strlen`B.`strcpy`C.`strcmp`D.`strcat`若有定义int arr
[5]={1,2,3,4,5};,则arr
[4]的值为()A.1B.5C.4D.0以下关于for循环的描述,错误的是()A.`for`循环的三个表达式都可以省略B.`for`循环只能用于循环次数确定的情况C.`for`循环可以嵌套使用D.`for`循环的执行顺序是先判断条件,再执行循环体以下关于函数参数传递的描述,正确的是()A.实参是形式参数,形参是实际参数B.传值调用时,实参和形参占用不同内存C.传址调用时,实参和形参指向同一内存D.数组作为参数传递时是传值调用若有定义int a=3,b=5;,则表达式a||b的值为()A.0B.1C.3D.5以下关于指针运算的描述,错误的是()A.指针可以进行加减运算B.指针可以进行比较运算C.两个指针可以相加D.指针可以赋值为整数第3页共9页以下能正确判断字符c是否为小写字母的表达式是()A.`c=a||c=z`B.`c=A c=Z`C.`c=a c=z`D.`c=A||c=z`若有定义int*p=int*malloc5*sizeofint;,则p指向的内存大小为()A.5字节B.20字节C.4字节D.不确定以下关于结构体指针的描述,正确的是()A.结构体指针可以直接用`=`赋值B.结构体指针访问成员用`-`运算符C.结构体指针不能作为函数参数D.结构体指针的大小为0C语言中,#include指令的作用是()A.定义宏B.包含头文件C.声明函数D.执行语句以下关于宏定义的描述,错误的是()A.宏名通常用大写字母B.宏定义后可以带参数C.宏定义在编译时替换D.宏定义可以嵌套使用若有定义inta=10;int*p=a;,则p++后p指向的地址是()A.`a`B.`a+1`C.`a-1`D.不确定以下关于C语言注释的描述,正确的是()A.单行注释以`/*`开头,以`*/`结尾B.多行注释以`//`开头C.注释可以嵌套使用D.注释不参与程序编译
二、多项选择题(共20题,每题2分,共40分)(以下每小题均有多个正确答案,将正确答案的序号填在括号内,多选、少选、错选均不得分)以下属于C语言基本数据类型的有()A.int B.float C.double D.void第4页共9页以下关于变量的描述,正确的有()A.变量必须先定义后使用B.变量定义时可以不初始化C.变量名可以包含字母、数字和下划线D.变量名区分大小写以下运算符中,属于算术运算符的有()A.+B.==C.*D.%以下控制流语句中,属于循环结构的有()A.if B.while C.do-while D.for以下关于数组的描述,正确的有()A.数组下标从1开始B.数组元素在内存中连续存储C.数组名是常量指针D.可以用sizeof计算数组长度以下关于函数的描述,正确的有()A.函数可以没有返回值B.函数参数可以有默认值(C99及以上支持)C.函数可以递归调用D.函数声明可以省略参数名以下关于指针的描述,正确的有()A.指针变量可以为NULL B.指针变量的类型决定其步长C.指针可以指向数组元素D.指针可以进行自增自减运算以下关于结构体的描述,正确的有()A.结构体可以嵌套定义B.结构体变量可以作为函数返回值C.结构体指针可以访问成员D.结构体大小等于各成员大小之和以下函数中,属于字符串处理函数的有()A.printf B.strlenC.strcpy D.strcmp以下关于文件操作的描述,正确的有()A.打开文件用`fopen`函数B.关闭文件用`fclose`函数第5页共9页C.读取文件用`fread`或`fgets`函数D.写入文件用`fwrite`或`fputs`函数以下关于const的描述,正确的有()A.`const inta`表示`a`是常量B.`int const*p`表示`p`指向的内容不可修改C.`int*const p`表示`p`本身不可修改D.`const`变量必须初始化以下关于static的描述,正确的有()A.静态局部变量在第一次调用时初始化B.静态全局变量作用域限于本文件C.静态函数只能在本文件中调用D.静态变量在程序结束时释放以下关于宏定义的描述,正确的有()A.宏定义以`#define`开头B.宏定义可以带参数C.宏定义的作用域是整个程序D.宏定义可以用于定义常量以下关于动态内存分配的描述,正确的有()A.`malloc`函数返回`void*`类型B.`calloc`函数初始化内存为0C.`realloc`函数可以调整内存大小D.动态分配的内存不需要释放以下关于C语言预处理指令的有()A.`#define`B.`#include`C.`#ifdef`D.`#endif`以下关于位运算的描述,正确的有()A.``是按位与运算符B.`|`是按位或运算符C.`^`是按位异或运算符D.`~`是按位取反运算符以下关于函数参数传递方式的有()A.传值调用B.传址调用第6页共9页C.传数组调用D.传结构体调用以下关于数组作为函数参数的描述,正确的有()A.数组名作为参数传递的是首地址B.函数内可以通过`sizeof`获取数组长度C.数组参数可以是多维数组D.传数组参数时,实参和形参共享内存以下关于枚举类型的描述,正确的有()A.枚举成员默认从0开始赋值B.枚举变量可以赋值为枚举成员C.枚举类型是构造类型D.枚举成员可以被修改以下关于C语言标准库的描述,正确的有()A.数学库需要用`#include math.h`B.字符串库需要用`#includestring.h`C.标准输入输出库需要用`#include stdio.h`D.时间库需要用`#include time.h`
三、判断题(共20题,每题1分,共20分)(对的打“√”,错的打“×”)C语言程序的入口函数是main函数()变量名可以以数字开头()inta=
10.5;是合法的变量定义()printf函数的格式控制符%d用于输出字符型数据()for循环的三个表达式都必须存在,不能省略()while循环的循环体至少执行一次()数组的下标越界不会导致程序崩溃()函数参数传递时,实参和形参占用不同的内存空间()NULL指针可以指向任意内存()第7页共9页struct是C语言的关键字()strcpy函数可以复制字符串()fopen函数打开文件时,若文件不存在会返回NULL()const变量必须在定义时初始化()静态变量在函数调用结束后会被释放()宏定义的参数可以是变量()malloc分配的内存需要手动释放()#define定义的宏在编译时会被替换()位运算表示右移运算符()结构体变量可以直接用=赋值()#include指令可以包含其他头文件中的宏定义()
四、简答题(共2题,每题5分,共10分)简述C语言中数组作为函数参数传递时的特点及注意事项什么是指针?简述指针与数组的关系,以及使用指针访问数组元素的优势参考答案
一、单项选择题(30题)1-5BCBBA6-10DABCA11-15DBBCA16-20BDBBB21-25CBCAB26-30BBDBD
二、多项选择题(20题)ABCD
2.ABCD
3.ACD
4.BCD
5.BCD
6.ACD
7.ABCD
8.ABC
9.BCD
10.ABCDABCD
12.ABC
13.ABD
14.ABC
15.ABCD
16.ABCD
17.AB
18.ACD
19.ABC
20.ABCD
三、判断题(20题)第8页共9页√
2.×
3.×
4.×
5.×
6.×
7.×
8.√
9.×
10.√√
12.√
13.√
14.×第9页共9页。
个人认证
优秀文档
获得点赞 0