c语言期末试题(达标题).docxVIP

  • 0
  • 0
  • 约6.21千字
  • 约 13页
  • 2026-02-01 发布于江苏
  • 举报

c语言期末试题

第一部分单选题(50题)

1、以下哪个操作会导致野指针?()

A.指针未初始化

B.指针指向的内存被释放后未置空

C.指针越界访问

D.以上都是

【答案】:答案解析:野指针是指向无效地址的指针,A、B、C均会导致野指针,故选D。

2、执行scanf(%d,%d,a,b);时,正确的输入格式是?()

A.23

B.2;3

C.2,3

D.2和3

【答案】:答案解析:scanf格式串中含逗号分隔符,输入需严格对应,故选C。

3、数组名作为函数参数时,函数形参的正确写法是?()

A.inta[]

B.int*a

C.inta[5]

D.以上都是

【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。

4、以下关于函数参数的说法正确的是?()

A.形参是局部变量

B.实参是局部变量

C.形参在函数调用后释放

D.实参在函数调用后释放

【答案】:答案解析:形参是函数内局部变量(调用时分配内存,调用结束释放),实参是主调函数中的变量(生命周期与主调函数一致),故选A。

5、若inti=1;执行while(i=3){printf(%d,i);i++;}输出结果是?()

A.123

B.1234

C.012

D.无输出

【答案】:答案解析:i初始1,满足i=3,执行3次,输出123,i最终4,循环结束,故选A。

6、若inta=10;执行if(a%2==0)printf(偶数);elseprintf(奇数);输出结果是?()

A.偶数

B.奇数

C.10

D.无输出

【答案】:答案解析:a=10%2=0,条件为真,输出偶数,故选A。

7、以下关于二维数组的说法正确的是?()

A.二维数组是数组的数组

B.二维数组元素在内存中按列存储

C.二维数组长度必须是常量

D.二维数组不能作为函数参数

【答案】:答案解析:二维数组本质是数组的数组,内存按行存储,可作为函数参数,长度需常量,故选A。

8、C语言中,注释的正确写法是?()

A.//单行注释

B./*多行注释/

C.--注释

D.A和B

【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。

9、数组名作为函数参数时,传递的是?()

A.数组第一个元素的值

B.数组所有元素的值

C.数组第一个元素的地址

D.数组长度

【答案】:答案解析:数组名传参本质是首元素地址(指针传递),函数中可通过指针访问数组,故选C。

10、以下关于指针数组的定义正确的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指针数组(5个int指针),B是指向数组的指针,C是普通数组,D缺少长度,故选A。

11、若inta[4]={1,2,3,4};则*(a+1)的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。

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

A.逗号

B.分号

C.冒号

D.句号

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

13、以下if-elseif语句的执行逻辑是?()if(x0)printf(负);elseif(x==0)printf(零);elseprintf(正);

A.多个条件可同时满足

B.仅执行第一个满足的条件分支

C.所有满足的条件分支都执行

D.无满足条件则不执行

【答案】:答案解析:if-elseif是互斥分支,仅执行第一个满足条件的分支,故选B。

14、若floatx=3.14;则表达式(int)x的结果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:强制转换为int取整数部分,3.14→3,故选A。

15、以下哪个for循环是无限循环?()

A.for(i=0;i5;i++)

B.for(;;)

C.for(i=0;i5;i--);

D.for(i=5;i0;i--)

【答案】:答案解析:for循环三个表达式均省略时,条件恒为真,是无限循环,A执行5次,C、D初始条件不满足(执行0次),故选B。

16、以下for循环中,循环变量更新表达式为“i-=2”的是?()

A.for(i=10;i0;i-=2)

B.for(i=0;i10;i+=2)

C.for(i=10;i0;i--)

D.for(i=0;i10;i=2)

【答案】:答案解析:i-=2等价于i=i-2,A的更新表达式正确,故选A。

17、以下f

文档评论(0)

1亿VIP精品文档

相关文档