软件技术C语言基础知识练习题精编.docxVIP

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

软件技术C语言基础知识练习题

第一部分单选题(50题)

1、若inti=1,s=0;执行while(i=5){s+=i;i++;}后s的值是?()

A.15

B.10

C.5

D.0

【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。

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

A.5

B.a

C.p

D.无定义

【答案】:答案解析:*p等价于p,即a(a的地址),故选B。

3、若intx=1;执行switch(x){case1:printf(1);break;case1:printf(2);break;}会出现什么情况?()

A.输出1

B.输出2

C.编译错误

D.运行错误

【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。

4、若inta=7,b=3;执行if(a%b==1)a=0;elseb=0;后a和b的值分别是?()

A.0,3

B.7,0

C.0,0

D.7,3

【答案】:答案解析:7%3=1,条件为真,a=0,b保持3,故选A。

5、以下switch语句中,正确使用字符常量的是?()

A.switch(c){caseA:printf(A);break;}

B.switch(c){caseA:printf(A);break;}

C.switch(c){caseA:printf(A);break;}

D.switch(c){casea:b:printf(ab);break;}

【答案】:答案解析:字符常量用单引号,B是标识符,C是字符串,D语法错误(多个case需分开),故选A。

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

A.数组第一个元素的值

B.数组所有元素的值

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

D.数组长度

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

7、若inta=3;执行if(++a3)printf(A);elseprintf(B);输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:++a是前置自增,a变为43,条件为真,输出A,故选A。

8、以下哪个是C语言中的赋值运算符?()

A.==

B.=

C.+=

D.!=

【答案】:答案解析:=是赋值运算符,==是等于判断,+=是复合赋值,!=是不等于判断,故选B。

9、函数调用时,实参的类型必须与形参的类型?()

A.完全一致

B.兼容(可自动转换)

C.无关

D.实参类型大于形参类型

【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。

10、数组在内存中的存储方式是?()

A.随机存储

B.连续存储

C.链式存储

D.散列存储

【答案】:答案解析:数组元素在内存中连续存放,便于通过下标访问,故选B。

11、以下指针运算错误的是?()

A.inta=5,*p=a;p++;

B.inta=5,*p=a;*p++;

C.inta=5,*p=a;p=a+1;

D.inta=5,*p=a;p=p+2;

【答案】:答案解析:a是地址常量,不能进行算术运算(a+1错误),A、B、D均正确,故选C。

12、以下指针运算正确的是?()

A.inta=10,*p=a;p++;

B.inta=10,*p=a;p=a;

C.inta=10,*p=a;p=5;

D.inta=10,*p=a;*p=a;

【答案】:答案解析:A指针p自增(指向a的下一个地址),B不能将int值赋给指针,C不能取常量地址,D不能将地址赋给int变量,故选A。

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

A.int*p;

B.char*q;

C.float*r;

D.以上都正确

【答案】:答案解析:A指向int,B指向char,C指向float,均符合指针定义语法,故选D。

14、表示“x大于5且小于10”的合法C语言表达式是?()

A.5x10

B.x5||x10

C.x5x10

D.x5x10

【答案】:答案解析:逻辑与用,逻辑或用||,A是连续比较语法错误,是按位与,故选C。

15、以下二维数组定义中,行数为2的是?()

A.inta[2][3];

B.inta[][3]={1,2,3,4,5,6};

C.inta[2][3]={1,2,3,4,5};

D.以上都是

【答案】:答案解析:A行数2,B初始化6个元素(3列×2行),C行数2,故选D。

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

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

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

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

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

【答案

文档评论(0)

1亿VIP精品文档

相关文档