2026年c语言期末测试题(夺冠).docxVIP

  • 0
  • 0
  • 约6.52千字
  • 约 13页
  • 2026-01-31 发布于河南
  • 举报

2026年c语言期末测试题

第一部分单选题(50题)

1、以下指针运算中,结果为值的是?()

A.*p

B.p+1

C.a

D.p-2

【答案】:答案解析:*p是解引用,获取指针指向变量的值,B、C、D结果均为指针,故选A。

2、以下函数调用错误的是?()

A.fun();

B.fun(5);

C.fun(3,4);

D.无错误(需看函数定义)

【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。

3、shortint类型的有符号取值范围是?()

A.0~65535

B.-32768~32767

C.-2147483648~2147483647

D.无固定范围

【答案】:答案解析:16位shortint有符号取值标准为-32768~32767,无符号为0~65535,故选B。

4、以下哪个数据类型用于存储单个字符?()

A.int

B.char

C.float

D.double

【答案】:答案解析:char用于存储单个字符(ASCII码),int存储整数,float/double存储浮点数,故选B。

5、以下函数参数为指针的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。

6、指针与数组的关系,以下说法正确的是?()

A.数组名是常量指针,不能自增

B.指针可指向数组元素,通过指针遍历数组

C.p[i]等价于*(p+i)

D.以上都正确

【答案】:答案解析:数组名是首元素地址(常量,不可自增),指针可遍历数组,p[i]与*(p+i)等价,故选D。

7、C语言中,语句结束的标志是?()

A.逗号

B.分号

C.冒号

D.句号

【答案】:答案解析:C语言单条语句以分号(;)结尾,复合语句用{}包裹,故选B。

8、以下switch语句语法错误的是?()

A.switch(x){case1:printf(1);break;}

B.switch(x){casea:printf(a);break;}

C.switch(x){case1.5:printf(1.5);break;}

D.switch(x){default:printf(0);}

【答案】:答案解析:case后必须是整型常量,1.5是浮点型,语法错误,故选C。

9、以下哪个是C语言的循环语句?()

A.if

B.for

C.else

D.switch

【答案】:答案解析:C语言循环语句包括for、while、do-while,if/else是选择语句,switch是多分支选择语句,故选B。

10、若inta[3][4]={{1,2},{3,4,5},{6}};则a[0][1]的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a[0][1]是第一行第二列,值为2,故选B。

11、函数参数的默认值在______指定?()

A.函数定义时

B.函数声明时

C.函数调用时

D.C语言不支持默认参数

【答案】:答案解析:标准C语言不支持函数参数默认值(C++支持),故选D。

12、若inta=2;执行a*=a+3;后a的值是?()

A.7

B.10

C.14

D.5

【答案】:答案解析:a*=a+3等价于a=a*(a+3)=2*(2+3)=10,故选B。

13、以下定义函数指针正确的是?()

A.int(*fp)(int);

B.int*fp(int);

C.intfp(int);

D.int(fp)[];

【答案】:答案解析:A是指向int返回值、int参数的函数指针,B是返回int的函数,C是普通函数,D是指向数组的指针,故选A。

14、若intx=3,y=5;则表达式xy?x:y的结果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元运算符格式“条件?值1:值2”,xy为假,取y=5,故选B。

15、若inta=5,p=a;则p的值是?()

A.5

B.a

C.p

D.无定义

【答案】:答案解析:*p等价于p,即指针p自身的值(a的地址),故选C。

16、若intx=0;执行if(x)printf(A);elseprintf(B);输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:x=0为假,执行else分支,输出B,故选B。

17、若intx=6;执行以下代码后输出结果是?()if(x5){printf(A);}elseif(x8){printf(B);}

文档评论(0)

1亿VIP精品文档

相关文档