- 0
- 0
- 约6.72千字
- 约 13页
- 2026-01-27 发布于河南
- 举报
算法与数据结构—C语言描述
第一部分单选题(50题)
1、数组名作为函数参数时,传递的是?()
A.数组第一个元素的值
B.数组所有元素的值
C.数组第一个元素的地址
D.数组长度
【答案】:答案解析:数组名传参本质是首元素地址(指针传递),函数中可通过指针访问数组,故选C。
2、以下关于数组初始化的说法正确的是?()
A.数组必须初始化
B.数组初始化时元素个数不能少于长度
C.数组初始化时可部分赋值
D.数组初始化后不能修改
【答案】:答案解析:数组可部分赋值(未赋值元素默认0),A数组可不用初始化,B可少于长度,D数组元素可修改,故选C。
3、以下if语句中,条件表达式正确的是?()
A.if(x=5)printf(yes);
B.if(x==5)printf(yes);
C.if(x=5;)printf(yes);
D.if(x==5;)printf(yes);
【答案】:答案解析:if条件需是判断表达式(==),A是赋值,C、D多加分号,故选B。
4、以下哪个运算符的优先级最高?()
A.+
B.*
C.=
D.==
【答案】:答案解析:算术运算符中*(乘)优先级高于+(加),赋值(=)和关系(==)优先级更低,故选B。
5、若intx=4;执行if(x++4)printf(A);elseprintf(B);输出结果是?()
A.A
B.B
C.AB
D.无输出
【答案】:答案解析:x++是后置自增,条件判断时x=4,44为假,执行else(输出B),后x变为5,故选B。
6、若inta=10,b=20,*p=a,q=b;执行p=q;后p的值是?()
A.10
B.20
C.a
D.b
【答案】:答案解析:p=q使p指向b,*p=b=20,故选B。
7、指针变量的大小取决于?()
A.指向变量的类型
B.编译器和系统(32位4字节,64位8字节)
C.指针变量的名称
D.变量的值
【答案】:答案解析:指针大小与指向类型无关,取决于系统位数(32位4B,64位8B),故选B。
8、指针变量的作用是存储?()
A.变量的值
B.变量的地址
C.函数的地址
D.数组的元素
【答案】:答案解析:指针变量专门存储其他变量的内存地址,故选B。
9、以下函数调用时,实参为常量的是?()
A.fun(5);
B.fun(a);
C.fun(a);
D.fun(abc);
【答案】:答案解析:A中5是常量,B是变量,C是变量地址,D是字符串常量,题目问“常量”,A正确,故选A。
10、若inti=0;执行for(i=0;i5;i++){if(i%2==0)continue;printf(%d,i);}输出结果是?()
A.13
B.024
C.01234
D.无输出
【答案】:答案解析:i为偶数(0、2、4)时continue,输出奇数1、3,故选A。
11、以下函数声明正确的是?()
A.voidfun();
B.voidfun(inta);
C.intfun(int);
D.以上都正确
【答案】:答案解析:函数声明可省略形参名(只留类型),A、B、C均符合语法,故选D。
12、以下if-else语句中,代码块执行顺序正确的是?()
A.先执行if条件,满足则执行if代码块,否则执行else代码块
B.先执行else代码块,再执行if条件
C.同时执行if和else代码块
D.仅执行else代码块
【答案】:答案解析:if-else逻辑为“条件判断→满足执行if,否则执行else”,互斥执行,故选A。
13、以下函数声明错误的是?()
A.voidfun(int);
B.voidfun(inta);
C.voidfun(inta,intb);
D.voidfun(inta;intb);
【答案】:答案解析:函数声明中参数用逗号分隔,不能用分号,D语法错误,故选D。
14、以下switch语句中,default的作用是?()
A.匹配所有case
B.匹配除case外的所有情况
C.终止switch语句
D.无实际作用
【答案】:答案解析:default用于匹配所有case未覆盖的情况,可选且位置灵活,故选B。
15、若inta[5]={10,20,30,40,50};则a[2]的值是?()
A.10
B.20
C.30
D.40
【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。
16、以下关于指针数组和数组指针的说法正确的是?()
A.指针数组是数组,元素为指针
B.数组指针是指针,指向数组
C.int*arr[5]是指针数组,int(*arr)[5]是数组指针
D.以上都正确
【
原创力文档

文档评论(0)