贵州大学c语言期末试题(全优)_第1页
贵州大学c语言期末试题(全优)_第2页
贵州大学c语言期末试题(全优)_第3页
贵州大学c语言期末试题(全优)_第4页
贵州大学c语言期末试题(全优)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

贵州大学c语言期末试题第一部分单选题(50题)1、以下哪个条件表达式表示“x大于等于5且小于等于10”?()

A.5<=x<=10

B.x>=5&&x<=10

C.x>=5||x<=10

D.5<=x&&<=10

【答案】:答案解析:C语言中连续比较不合法,需用逻辑与连接两个判断,A语法错误,C逻辑错误,D语法错误,故选B。2、以下哪个运算符的优先级最高?()

A.+

B.*

C.=

D.==

【答案】:答案解析:算术运算符中*(乘)优先级高于+(加),赋值(=)和关系(==)优先级更低,故选B。3、若inta=2,b=4;执行if(a==b)a=0;elseb=0;后a和b的值分别是?()

A.0,4

B.2,0

C.0,0

D.2,4

【答案】:答案解析:a==b为假,执行else,b=0,a保持2,故选B。4、以下函数参数为指针的是?()

A.voidfun(int*a){}

B.voidfun(inta){}

C.voidfun(inta[]){}

D.A和C

【答案】:答案解析:A是指针参数,C数组名参数本质是指针,B是值参数,故选D。5、若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。6、若inta=4;执行if(a--<4)printf("A");elseprintf("B");输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:a--是后置自减,条件判断时a=4,4<4为假,执行else(输出B),后a变为3,故选B。7、若charstr[10];执行strcpy(str,"hello");后str的长度是?()

A.5

B.6

C.10

D.不确定

【答案】:答案解析:strcpy复制字符串"hello"(含\0),长度为5(不含\0),故选A。8、以下switch语句语法错误的是?()

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

B.switch(x){case'a':printf("a");break;}

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

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

【答案】:答案解析:case后必须是整型常量,1.5是浮点型,语法错误,故选C。9、指针与结构体的关系,以下说法正确的是?()

A.结构体指针通过->访问成员

B.结构体变量通过。访问成员

C.结构体指针可指向结构体变量

D.以上都正确

【答案】:答案解析:A、B、C均是结构体与指针的基本规则,故选D。10、以下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。11、若inta[5]={10,20,30,40,50},p=a+3;则p的值是?()

A.30

B.40

C.50

D.无定义

【答案】:答案解析:a+3指向a[3],*p=40,故选B。12、数组名作为函数参数时,函数形参的正确写法是?()

A.inta[]

B.int*a

C.inta[5]

D.以上都是

【答案】:答案解析:数组形参可写为inta[]、int*a(指针)、inta[5](长度可忽略),本质均为指针,故选D。13、若intx=2;执行switch(x){default:printf("0");case1:printf("1");break;case2:printf("2");case3:printf("3");}输出结果是?()

A.01

B.23

C.0123

D.无输出

【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出23,故选B。14、C语言中,注释的正确写法是?()

A.//单行注释

B./*多行注释/

C.--注释

D.A和B

【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。15、若intx=1;执行switch(x){case1:printf("1");case2:printf("2");break;case3:printf("3");}输出结果是?()

A.1

B.12

C.123

D.无输出

【答案】:答案解析:x=1匹配case1,无break,穿透到case2(执行后break),输出12,故选B。16、以下关于return语句的说法正确的是?()

A.函数中可有多条return语句

B.函数中必须有return语句

C.return语句必须在函数末尾

D.return语句只能返回一个值

【答案】:答案解析:A函数中可有多条return(如条件判断后返回),Bvoid函数可无return,Creturn可在任意位置,Dreturn只能返回一个值(返回多个值需用指针/数组),故选A。17、定义单精度浮点型变量y并赋值2.718的语句是?()

A.doubley=2.718;

B.floaty=2.718f;

C.floaty=2.718;

D.inty=2.718;

【答案】:答案解析:float是单精度,需加f后缀(否则默认double),double是双精度,故选B。18、以下定义指向二维数组的指针正确的是?()

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。19、若intx=1;执行switch(x){case1:printf("1");break;case1:printf("2");break;}会出现什么情况?()

A.输出1

B.输出2

C.编译错误

D.运行错误

【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。20、若inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};则a[1][2]的值是?()

A.5

B.6

C.8

D.9

【答案】:答案解析:a[1][2]是第二行第三列,值为6,故选B。21、转义字符\的作用是?()

A.表示反斜杠

B.表示换行

C.表示空格

D.表示制表符

【答案】:答案解析:\用于表示字符反斜杠(\),避免与转义字符冲突,故选A。22、函数参数为数组时,形参的写法错误的是?()

A.inta[]

B.int*a

C.inta[5]

D.inta

【答案】:答案解析:D中inta是普通变量,不能接收数组名(地址),A、B、C均正确,故选D。23、break语句在循环中的作用是?()

A.跳过本次循环,继续下一次

B.终止整个循环

C.终止当前语句

D.无作用

【答案】:答案解析:break在循环中用于终止整个循环(跳出循环体),continue是跳过本次循环,故选B。24、以下if语句的语法正确的是?()

A.if(x>0){printf("a");elseprintf("b");}

B.if(x>0)printf("a");else{printf("b");}

C.if(x>0)printf("a");elseprintf("b");}

D.if(x>0){printf("a");}elseprintf("b");}

【答案】:答案解析:A缺少},C多},D多},B语法正确(else后{}可加可不加),故选B。25、若inta[5]={1,2,3};则a[3]的值是?()

A.0

B.3

C.随机值

D.无定义

【答案】:答案解析:初始化时未赋值的元素默认为0,a[3]=0,故选A。26、数组元素的下标从______开始?()

A.0

B.1

C.-1

D.任意

【答案】:答案解析:C语言数组下标从0开始,是固定规则,故选A。27、定义整型变量x、y并均赋值10的语句是?()

A.intx=y=10;

B.intx=10,y=10;

C.intx=10;y=10;

D.intx=10;inty=10;

【答案】:答案解析:同一行定义多个变量用逗号分隔,A不能连续赋值,C缺少int,D是两行定义,故选B。28、以下switch语句中,default的执行时机是?()

A.所有case都不匹配时

B.第一个case不匹配时

C.最后一个case不匹配时

D.任何时候

【答案】:答案解析:default仅在所有case都不匹配时执行,故选A。29、若inta[3][3]={{1},{2,3},{4,5,6}};则a[1][0]的值是?()

A.2

B.3

C.4

D.5

【答案】:答案解析:a[1][0]是第二行第一列,值为2,故选A。30、以下if-else语句中,代码块正确的是?()

A.if(x>0)printf("a");printf("b");elseprintf("c");

B.if(x>0){printf("a");printf("b");}elseprintf("c");

C.if(x>0)printf("a");{printf("b");}elseprintf("c");

D.if(x>0)printf("a");printf("b");else{printf("c");}

【答案】:答案解析:else需与最近的if匹配,A、C、D中else前有独立printf,语法错误,B用{}包裹代码块正确,故选B。31、以下哪个函数用于读取字符?()

A.putchar()

B.gets()

C.getchar()

D.printf()

【答案】:答案解析:getchar()读取单个字符,puts()输出字符串,gets()读取字符串(已淘汰),故选C。32、若inta[5]={1,2,3,4,5},p=a;执行p+=2;后p的值是?()

A.2

B.3

C.4

D.5

【答案】:答案解析:p+=2使p指向a[2],*p=3,故选B。33、以下哪个for循环是无限循环?()

A.for(i=0;i<5;i++)

B.for(;;)

C.for(i=0;i<5;i--);

D.for(i=5;i>0;i--)

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

A.voidfun(int);

B.voidfun(inta);

C.voidfun(inta,intb);

D.voidfun(inta;intb);

【答案】:答案解析:函数声明中参数用逗号分隔,不能用分号,D语法错误,故选D。35、以下关于指针数组和数组指针的说法正确的是?()

A.指针数组是数组,元素为指针

B.数组指针是指针,指向数组

C.int*arr[5]是指针数组,int(*arr)[5]是数组指针

D.以上都正确

【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。36、若inta=3;执行if(++a==4)printf("A");elseprintf("B");输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:++a使a=4,条件为真,输出A,故选A。37、若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。38、函数中局部变量的作用域是?()

A.整个程序

B.函数内部

C.函数外部

D.所有函数

【答案】:答案解析:局部变量定义在函数内,仅在函数内部有效,故选B。39、函数参数传递中,值传递的特点是?()

A.形参修改影响实参

B.形参是实参的副本

C.传递的是变量地址

D.用于数组传参

【答案】:答案解析:值传递时形参是实参的拷贝,修改形参不影响实参,地址传递才影响实参,故选B。40、以下switch语句中,正确使用字符常量的是?()

A.switch(c){case'A':printf("A");break;}

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

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

D.switch(c){case'a':'b':printf("ab");break;}

【答案】:答案解析:字符常量用单引号,B是标识符,C是字符串,D语法错误(多个case需分开),故选A。41、表示“x大于5且小于10”的合法C语言表达式是?()

A.5<x<10

B.x>5||x<10

C.x>5&&x<10

D.x>5&x<10

【答案】:答案解析:逻辑与用&&,逻辑或用||,A是连续比较语法错误,&是按位与,故选C。42、若charc='A';执行c=c+32后,c的值是?()

A.'a'

B.'B'

C.65

D.97

【答案】:答案解析:大写字母ASCII码比对应小写字母小32,'A'(65)+32='a'(97),故选A。43、若inta=5,b=3;执行if(a>b){a--;b++;}后a和b的值分别是?()

A.4,4

B.5,3

C.4,3

D.5,4

【答案】:答案解析:a>b为真,执行代码块,a=5-1=4,b=3+1=4,故选A。44、若charstr[]="Clanguage";则字符串长度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:字符串长度以\0结束,"Clanguage"含10个字符(不含\0),故选A。45、以下哪个操作会导致野指针?()

A.指针未初始化

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

C.指针越界访问

D.以上都是

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论