还剩6页未读,继续阅读
文本内容:
c语言设计试题及答案
一、单项选择题(共30题,每题1分)(以下每题只有一个正确选项,将正确选项的字母填入括号内)C语言中,以下哪个属于基本数据类型?()A.结构体B.数组C.指针D.int变量定义“char c=A;”中,变量c存储的是()A.字符A的ASCII码值B.字符串A C.字符的地址D.无符号整数以下运算符中优先级最高的是()A.+B.C.==D.!执行语句“int a=5,b=3;a%=b+2;”后,a的值为()A.1B.0C.2D.5以下循环结构中,先判断条件再执行循环体的是()A.for循环B.while循环C.do-while循环D.以上都是函数“int addintx,int y{return x+y;}”中,参数x和y的传递方式是()A.值传递B.地址传递C.引用传递D.以上都不是以下哪个语句用于结束当前循环并跳出循环体?()A.continue B.break C.return D.exit关于数组定义“int arr
[4]={1,2,3};”,以下说法正确的是()A.arr
[3]的值为0B.数组长度为4C.数组初始化不完整D.A和C都对指针变量p的定义为“int p;”,若p指向变量a,则p表示()A.指针p的地址B.变量a的值C.变量a的地址D.无意义第1页共8页以下哪个不是C语言的控制结构?()A.顺序结构B.选择结构C.循环结构D.函数结构执行“int a=10;int*p=a;*p+=5;”后,a的值为()A.5B.10C.15D.不确定以下函数调用属于哪种类型?“printf%d,func5;”()A.无参函数调用B.有参函数调用C.嵌套调用D.递归调用关于结构体,以下说法错误的是()A.结构体是构造数据类型B.结构体成员可以是不同类型C.结构体变量名可以直接作为函数返回值D.结构体数组的每个元素都是结构体以下哪个不是C语言的预处理指令?()A.#include B.#define C.#if D.printf执行“int a=3;a=a25:4;”后,a的值为()A.3B.5C.4D.2以下哪个语句会导致无限循环?()A.for;;{printf;}B.while1{printf;}C.do{printf*;}while0;D.A和B函数“void swapintx,int y”无法交换x和y的值,原因是()A.函数参数错误B.值传递导致形参不影响实参C.函数返回类型错误D.无return语句以下数组初始化正确的是()A.int arr[]={1,2,3,4};B.int arr
[4]={1,2,3,4,5};C.int arr
[4]={1,2};D.A和C都对指针变量p指向变量a,若p++,则p指向()第2页共8页A.a的下一个内存单元B.a的前一个内存单元C.原地址不变D.无变化关于const关键字,以下说法正确的是()A.const int a=5;中a可以被重新赋值B.const int*p;中p指向的变量不可变C.int*const p;中p的地址不可变D.以上都对以下哪个函数属于C语言标准库函数?()A.sum B.max C.printf D.add执行“int a=0;fora=1;a=3;a++{ifa==2continue;printf%d,a;}”的输出结果是()A.123B.13C.2D.12结构体“struct student{int id;char name
[20];};”中,sizeofstruct student的结果可能是()A.4B.20C.24D.25以下哪个不是C语言的基本数据类型?()A.int B.float C.double D.string关于数组名作为函数参数,以下说法正确的是()A.数组名作为参数时传递的是整个数组B.数组名作为参数时传递的是数组首元素地址C.数组长度在函数内可直接用sizeof计算D.函数内可修改原数组的大小执行“int a=5;int p=a;p=intchar*p+1;”后,p指向的地址是原地址的()A.1字节B.2字节C.4字节D.8字节以下哪个是C语言的关键字?()A.function B.procedure C.int D.method第3页共8页关于动态内存分配,以下说法正确的是()A.malloc函数返回void*类型,需强制转换B.calloc函数不会初始化内存C.free函数可释放任意内存块D.A和C都对执行“int a=1,b=2;a^=b;b^=a;a^=b;”后,a和b的值分别为()A.2,1B.1,2C.3,0D.0,3以下哪个不是C语言的循环语句?()A.for B.while C.do-while D.switch
二、多项选择题(共20题,每题2分)(以下每题至少有两个正确选项,多选、少选、错选均不得分)以下属于C语言控制流语句的有()A.if-else B.switch-case C.for D.break关于指针,以下说法正确的有()A.指针变量存储的是地址B.指针变量的类型决定了它指向的变量类型C.空指针的值为NULL D.指针可以进行加减运算以下函数参数传递方式中,会影响实参值的有()A.值传递B.指针传递C.数组名传递D.引用传递(C++中)关于数组,以下说法正确的有()A.数组名是常量指针B.数组的大小必须在定义时确定C.数组元素可通过下标访问D.数组名作为函数参数时,数组长度不可用sizeof计算以下哪些是C语言的基本数据类型?()A.int B.float C.double D.struct执行“int a=5;int b=3;a/=b;b%=a;”后,a和b的值可能为()第4页共8页A.a=1,b=0B.a=1,b=3C.a=0,b=3D.a=1,b=2关于结构体,以下说法正确的有()A.结构体成员可通过“.”访问B.结构体变量可作为函数参数C.结构体数组的每个元素都是结构体D.结构体指针可通过“-”访问成员以下哪些是C语言的预处理功能?()A.文件包含B.宏定义C.条件编译D.函数声明以下哪些语句会产生编译错误?()A.int a
[5]={1,2,3,4};B.int a[]={1,2,3,4};C.int a
[5]={1,2,3};D.int a
[5]={1,2,3,4,5,6};关于const指针,以下说法正确的有()A.const int*p;中p指向的变量不可变B.int*const p;中p的地址不可变C.const int*const p;中p指向的变量和p的地址都不可变D.以上都对以下属于C语言标准库头文件的有()A.stdio.h B.stdlib.h C.string.h D.math.h关于函数,以下说法正确的有()A.函数可以嵌套调用B.函数可以递归调用C.函数参数默认是值传递D.函数必须有return语句执行“int a=0;fora=1;a5;a++{ifa==3break;}”后,a的值为()A.1B.2C.3D.4以下哪些是C语言的运算符?()A.+B.-C.*D.关于动态内存分配,以下说法正确的有()第5页共8页A.mallocn分配n字节内存B.callocn,size分配n*size字节内存并初始化为0C.realloc可调整已分配内存块大小D.动态分配的内存必须手动释放以下哪些是C语言的存储类型?()A.auto B.static C.register D.extern关于结构体和联合体,以下说法正确的有()A.结构体各成员地址不重叠B.联合体所有成员共享同一块内存C.结构体大小是成员大小之和D.联合体大小是最大成员大小执行“int a=1,b=2,c=3;a=bc4:bc5:6;”后,a的值可能为()A.4B.5C.6D.3以下哪些是C语言的基本输入输出函数?()A.scanf B.printf C.getchar D.puts关于指针数组,以下说法正确的有()A.指针数组是数组,每个元素是指针B.指针数组可存储不同类型数据的地址C.指针数组名是指向数组首元素的指针D.以上都对
三、判断题(共20题,每题1分)(对的打“√”,错的打“×”)C语言中,变量必须先定义后使用()inta
[5];中,a是数组名,也是数组首元素的地址()函数参数为指针时,修改形参指针会影响实参指针的指向()C语言中,“++”和“--”运算符的优先级高于“*”和“/”()do-while循环的循环体至少执行一次()结构体变量可以直接作为函数返回值()C语言中,字符串以字符\0结尾()第6页共8页指针变量p指向int类型,p+1表示指向p的下一个int类型变量()const int*p=a;与int const*p=a;是等价的()C语言中,函数的返回类型必须与return语句返回值类型一致()数组名作为函数参数时,传递的是数组的首地址()malloc0会返回NULL()C语言中,注释只能是单行注释“//”()结构体数组的每个元素都需要单独初始化()指针变量的大小与系统位数有关,32位系统中为4字节()C语言中,“int*p
[5];”定义的是指向数组的指针()递归函数必须有终止条件,否则会导致栈溢出()C语言中,“123L”是长整型常量()联合体变量的大小等于其最大成员的大小()C语言中,“void func”表示该函数无参数且无返回值()
四、简答题(共2题,每题5分)简述C语言中数组与指针的关系说明C语言中函数参数的传递方式及各自特点参考答案
一、单项选择题D
2.A
3.D
4.A
5.D
6.A
7.B
8.D
9.B
10.DC
12.B
13.C
14.D
15.B
16.D
17.B
18.A
19.A
20.CC
22.B
23.C
24.D
25.B
26.A
27.C
28.A
29.A
30.D
二、多项选择题ABCD
2.ABCD
3.BC
4.ACD
5.ABC
6.AD
7.ABCD
8.ABC
9.BD
10.ABC第7页共8页ABCD
12.ABC
13.BC
14.ABCD
15.ABCD
16.ABCD
17.ABD
18.BC
19.ABCD
20.ABD
三、判断题√
2.√
3.×
4.×
5.√
6.√
7.√
8.√
9.√
10.√√
12.√
13.×
14.×
15.√
16.×
17.√
18.√
19.√
20.√
四、简答题数组名本质是指向数组首元素的常量指针,可通过指针运算(如p[i]=p+i)访问数组元素,数组下标访问(arr[i])与指针访问(arr+i)等价;但数组名是常量,不可修改其指向,而指针变量是变量,可动态指向不同地址C语言函数参数传递方式主要有值传递和地址传递(指针传递)值传递将实参值复制给形参,形参修改不影响实参;地址传递传递实参地址,形参为指针,通过指针间接操作可修改实参值(注试题覆盖C语言基础语法、数据类型、控制流、函数、数组、指针、结构体、预处理等核心知识点,适合初学者自测或复习使用)第8页共8页。
个人认证
优秀文档
获得点赞 0