版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法与数据结构—C语言描述第一部分单选题(50题)1、以下哪个是NULL指针?()
A.void*p=0;
B.int*p=NULL;
C.charp=(char)0;
D.以上都正确
【答案】:答案解析:NULL指针是不指向任何有效地址的指针,三种写法均正确,故选D。2、若intx=6;执行if(x<5)printf("A");else{printf("B");printf("C");}输出结果是?()
A.A
B.BC
C.ABC
D.无输出
【答案】:答案解析:x=6不满足if,执行else代码块,输出BC,故选B。3、若intx=4;执行switch(x){case2:printf("2");break;default:printf("0");case4:printf("4");break;}输出结果是?()
A.04
B.4
C.204
D.无输出
【答案】:答案解析:x=4匹配case4,执行输出4,break跳出,故选B。4、C语言中,注释的正确写法是?()
A.//单行注释
B./*多行注释/
C.--注释
D.A和B
【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。5、若inta=10,*p=&a;则sizeof(p)的值是?()
A.4
B.8
C.取决于系统
D.10
【答案】:答案解析:sizeof(p)是指针大小,32位系统4字节,64位8字节,故选C。6、以下循环语句中,语法正确的是?()
A.while(i<5){printf("%d",i);i++;}
B.while(i<5)printf("%d",i);i++;
C.do{printf("%d",i);i++;}while(i<5)
D.for(i=0;i<5)printf("%d",i);
【答案】:答案解析:B中i++在循环体外(循环无限),C缺少分号,D缺少更新表达式,A语法正确,故选A。7、若inta[4]={1,2,3,4},p=a;执行p++后,*p的值是?()
A.1
B.2
C.3
D.4
【答案】:答案解析:*p++先解引用(值为1),再p自增(指向a[1]),*p=2,故选B。8、若inta=7,*p=&a;执行++*p;后a的值是?()
A.7
B.8
C.&a
D.无定义
【答案】:答案解析:++*p等价于++(*p),先解引用取a的值,再加1(a=8),故选B。9、若inta=7;执行if(a%3==1)printf("A");elseif(a%3==2)printf("B");elseprintf("C");输出结果是?()
A.A
B.B
C.C
D.无输出
【答案】:答案解析:7%3=1?7/3=2余1?不,7%3=1?7-3*2=1,条件1成立?哦7%3=1,应输出A?不对,7%3=1,第一个条件成立,输出A?重新计算:7÷3=2余1,a%3=1,执行第一个分支,输出A,故选A(原解析修正:之前误算,正确结果A)。10、以下if-else语句的语法错误是?()
A.if(x>0)printf("a");elseprintf("b");
B.if(x>0){printf("a");}else{printf("b");}
C.if(x>0)printf("a");else;printf("b");
D.if(x>0){printf("a");}elseprintf("b");
【答案】:答案解析:else后不能直接加分号(否则else无作用),C中else;后printf独立执行,故选C。11、以下switch语句语法错误的是?()
A.switch(x){case1:printf("1");break;case2:printf("2");break;}
B.switch(x){case1:printf("1");case2:printf("2");}
C.switch(x){case1:;break;case2:printf("2");}
D.switch(x){case1:printf("1");break;case1:printf("2");break;}
【答案】:答案解析:case后常量不能重复,D中case1重复,编译报错,故选D。12、若inti=0;执行while(i<5){printf("%d",i);i++;if(i==3)break;}输出结果是?()
A.012
B.0123
C.01
D.无输出
【答案】:答案解析:i=3时break,输出012,故选A。13、函数参数传递中,地址传递的特点是?()
A.形参是实参的副本
B.形参修改不影响实参
C.传递的是变量地址
D.用于简单变量传参
【答案】:答案解析:地址传递(指针)传递变量地址,形参通过地址修改实参值,值传递是副本,故选C。14、以下定义指向二维数组的指针正确的是?()
A.inta[2][3],(*p)[3]=a;
B.inta[2][3],*p=a;
C.inta[2][3],p=a[0];
D.inta[2][3],*p=&a;
【答案】:答案解析:A是指向3列数组的指针(匹配二维数组a的行),B、C、D类型不匹配,故选A。15、若inti=0;执行while(1){if(i==3)break;printf("%d",i);i++;}输出结果是?()
A.012
B.0123
C.无限循环
D.无输出
【答案】:答案解析:while(1)是无限循环,i=3时break,输出012,故选A。16、下列变量定义语法正确的是?()
A.inta=5;
B.inta=b=5;
C.int5a;
D.inta;b;
【答案】:答案解析:B不能连续赋值定义,C标识符开头错误,D分号分隔需分别定义(inta;intb;),故选A。17、指针的自增运算(p++)的含义是?()
A.指针值加1
B.指针指向的变量值加1
C.指针指向地址偏移一个类型大小
D.指针指向地址偏移1字节
【答案】:答案解析:p++使指针指向地址偏移“指向类型大小”(如int指针+4字节),故选C。18、以下函数调用正确的是?()
A.fun(5);
B.fun(3,4);
C.fun("hello");
D.取决于函数定义
【答案】:答案解析:函数调用需匹配函数定义的参数类型和个数,A、B、C是否正确取决于函数定义,故选D。19、以下哪个运算符的优先级最高?()
A.+
B.*
C.=
D.==
【答案】:答案解析:算术运算符中*(乘)优先级高于+(加),赋值(=)和关系(==)优先级更低,故选B。20、若charstr[]="helloworld";则字符串长度是?()
A.10
B.11
C.12
D.13
【答案】:答案解析:"helloworld"含11个字符(不含\0),长度为11,故选B。21、以下for循环中,循环变量初始化、条件判断、更新表达式均正确的是?()
A.for(i=0;i<5;i++)
B.for(i=5;i>0;i--)
C.for(i=0;i<5;i+=2)
D.以上都正确
【答案】:答案解析:A(递增)、B(递减)、C(步长2)的三个表达式均合法,循环逻辑正确,故选D。22、若inti=1;执行do{printf("%d",i);i++;}while(i<=0);输出结果是?()
A.1
B.无输出
C.无限循环
D.12
【答案】:答案解析:do-while先执行一次(输出1,i=2),再判断i<=0为假,循环结束,故选A。23、若inti=1;执行while(i<5){printf("%d",i);i+=2;}输出结果是?()
A.13
B.135
C.1234
D.无输出
【答案】:答案解析:i初始1,每次加2,执行2次(1、3),输出13,故选A。24、若inti=0;执行for(i=0;i<5;i++){if(i%2==0)continue;printf("%d",i);}输出结果是?()
A.13
B.024
C.01234
D.无输出
【答案】:答案解析:i为偶数(0、2、4)时continue,输出奇数1、3,故选A。25、以下函数调用错误的是?()
A.fun();
B.fun(5);
C.fun(3,4);
D.无错误(需看函数定义)
【答案】:答案解析:调用需匹配函数定义,A对应无参函数,B对应单参函数,C对应双参函数,均可能正确,故选D。26、以下二维数组初始化正确的是?()
A.inta[2][3]={{1},{2},{3}};
B.inta[2][3]={1,2,3,4,5};
C.inta[2][3]={{1,2,3},{4,5,6}};
D.inta[2][3]={1,2,3,4,5,6,7};
【答案】:答案解析:A行数超2,B元素不足6个(补0),C标准初始化,D元素超6个,故选C。27、若inta[5]={1,2,3,4,5};则*(a+4)的值是?()
A.4
B.5
C.1
D.2
【答案】:答案解析:a+4是第五个元素地址,*(a+4)=a[4]=5,故选B。28、若intx=10;则表达式x%3的结果是?()
A.1
B.2
C.3
D.0
【答案】:答案解析:%是取余运算符,10除以3商3余1,故选A。29、putchar()函数的功能是?()
A.读取一个字符
B.输出一个字符
C.读取字符串
D.输出字符串
【答案】:答案解析:putchar()用于输出单个字符,getchar()读取单个字符,puts()输出字符串,故选B。30、表达式5>3&&2<4的结果是?()
A.0
B.1
C.真
D.假
【答案】:答案解析:5>3为真(1),2<4为真(1),逻辑与&&结果为1,故选B。31、以下switch语句中,default的作用是?()
A.匹配所有case
B.匹配除case外的所有情况
C.终止switch语句
D.无实际作用
【答案】:答案解析:default用于匹配所有case未覆盖的情况,可选且位置灵活,故选B。32、以下关于数组初始化的说法正确的是?()
A.数组必须初始化
B.数组初始化时元素个数不能少于长度
C.数组初始化时可部分赋值
D.数组初始化后不能修改
【答案】:答案解析:数组可部分赋值(未赋值元素默认0),A数组可不用初始化,B可少于长度,D数组元素可修改,故选C。33、以下指针与函数的关系正确的是?()
A.函数名是函数的地址
B.函数指针可指向函数
C.可通过函数指针调用函数
D.以上都正确
【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。34、若inta[5];则数组a的元素个数是?()
A.4
B.5
C.6
D.不确定
【答案】:答案解析:数组a[5]定义5个元素(下标0-4),故选B。35、若inta[3][3]={{1,2},{3,4},{5,6}};则a[1][1]的值是?()
A.2
B.4
C.5
D.6
【答案】:答案解析:a[1][1]是第二行第二列,值为4,故选B。36、若inti=0,s=0;执行while(i<=3){s+=i2;i++;}后s的值是?()
A.12
B.6
C.8
D.10
【答案】:答案解析:累加02+12+22+3*2=0+2+4+6=12,s=12,故选A。37、以下循环中,用于计算1到10的乘积的是?()
A.s=0;for(i=1;i<=10;i++)s+=i;
B.s=1;for(i=1;i<=10;i++)s*=i;
C.s=0;while(i<=10){s*=i;i++;}
D.s=1;do{s+=i;i++;}while(i<=10);
【答案】:答案解析:乘积初始值为1,累加初始值为0,B的逻辑是12...*10,正确,故选B。38、若floatx=3.14;则表达式(int)x的结果是?()
A.3
B.3.14
C.4
D.0
【答案】:答案解析:强制转换为int取整数部分,3.14→3,故选A。39、若inta=10;执行if(a%2==0)printf("偶数");elseprintf("奇数");输出结果是?()
A.偶数
B.奇数
C.10
D.无输出
【答案】:答案解析:a=10%2=0,条件为真,输出偶数,故选A。40、数组作为函数参数时,函数形参不能是?()
A.inta[]
B.int*a
C.inta[5]
D.inta
【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均可作为数组形参,故选D。41、以下定义指向数组的指针正确的是?()
A.inta[5],*p=a;
B.inta[5],*p=&a;
C.inta[5],p=a;
D.inta[5],*p=a[0];
【答案】:答案解析:a是数组名(首元素地址),p=a等价于p=&a[0],B&a是数组地址(类型不匹配),Cp是普通变量,Dp不能赋a[0]的值,故选A。42、若intx=5;执行以下代码后输出结果是?()if(x>10)printf("A");elseif(x>6)printf("B");elseif(x>3)printf("C");elseprintf("D");
A.A
B.B
C.C
D.
【答案】:答案解析:x=5>3,执行第三个分支,输出C,故选C。43、若intx=1;执行switch(x){case1:printf("1");break;case1:printf("2");break;}会出现什么情况?()
A.输出1
B.输出2
C.编译错误
D.运行错误
【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。44、以下数组定义错误的是?()
A.inta[5];
B.inta[5]={1,2,3,4,5};
C.inta[5]={1,2,3,4,5,6};
D.inta[]={1,2,3,4,5};
【答案】:答案解析:C初始化元素超5个,编译报错,其余正确,故选C。45、若inti=0;执行for(i=1;i<=5;i++){if(i%3==0)continue;printf("%d",i);}输出结果是?()
A.1245
B.12345
C.3
D.无输出
【答案】:答案解析:i=3时continue,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河源员工膳食管理制度(3篇)
- 天梯楼梯施工方案(3篇)
- 2026山东青岛平度市事业单位招聘36人参考考试题库及答案解析
- 2026江西抚州市乐安县属建筑工程有限公司招聘2人(临聘岗)笔试参考题库及答案解析
- 2026年商洛市洛南县妇幼保健院招聘(4人)参考考试题库及答案解析
- 2026中国天津人力资源开发服务中心招聘参考考试题库及答案解析
- 肝硬化患者营养支持的护理配合
- 2026甘肃陇南市宕昌县有关单位招聘公益性岗位人员25人备考考试题库及答案解析
- 2026江苏苏州大学科研助理岗位招聘7人笔试备考试题及答案解析
- 2026厦门象屿集团有限公司冬季校园招聘备考考试题库及答案解析
- 门岗应急预案管理办法
- 幼儿阶段口才能力培养课程设计
- 职高一年级《数学》(基础模块)上册试题题库
- JG/T 367-2012建筑工程用切(扩)底机械锚栓及后切(扩)底钻头
- 国家职业标准 6-11-01-03 化工总控工S (2025年版)
- 公共安全视频监控建设联网应用(雪亮工程)运维服务方案纯方案
- 定额〔2025〕2号文-关于发布2020版电网技术改造及检修工程概预算定额2024年下半年价格
- 安全生产标准化与安全文化建设的关系
- DB31-T 1502-2024 工贸行业有限空间作业安全管理规范
- 2022版义务教育(物理)课程标准(附课标解读)
- 神经外科介入神经放射治疗技术操作规范2023版
评论
0/150
提交评论