清华c语言期末测试题及答案(网校专用)_第1页
清华c语言期末测试题及答案(网校专用)_第2页
清华c语言期末测试题及答案(网校专用)_第3页
清华c语言期末测试题及答案(网校专用)_第4页
清华c语言期末测试题及答案(网校专用)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

清华c语言期末测试题第一部分单选题(50题)1、以下指针运算中,结果为值的是?()

A.*p

B.p+1

C.&a

D.p-2

【答案】:答案解析:*p是解引用,获取指针指向变量的值,B、C、D结果均为指针,故选A。2、以下定义指向二维数组的指针正确的是?()

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。3、若inta=6;执行a/=3;后a的值是?()

A.2

B.3

C.6

D.18

【答案】:答案解析:a/=3等价于a=a/3=6/3=2,故选A。4、continue语句在循环中的作用是?()

A.终止整个循环

B.跳过本次循环剩余部分,继续下一次

C.暂停循环

D.无作用

【答案】:答案解析:continue跳过本次循环剩余代码,直接进入下一次循环条件判断,故选B。5、若inta=2;执行a*=a+3;后a的值是?()

A.7

B.10

C.14

D.5

【答案】:答案解析:a*=a+3等价于a=a*(a+3)=2*(2+3)=10,故选B。6、若inta=5,p=&a;则&p的值是?()

A.5

B.&a

C.p

D.无定义

【答案】:答案解析:*&p等价于p,即指针p自身的值(a的地址),故选C。7、若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,跳过printf,输出1、2、4、5,故选A。8、表示“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。9、以下关于数组初始化的说法正确的是?()

A.数组必须初始化

B.数组初始化时元素个数不能少于长度

C.数组初始化时可部分赋值

D.数组初始化后不能修改

【答案】:答案解析:数组可部分赋值(未赋值元素默认0),A数组可不用初始化,B可少于长度,D数组元素可修改,故选C。10、以下if语句中,赋值语句和判断语句混淆的是?()

A.if(x==5)

B.if(x=5)

C.if(x!=5)

D.if(x>5)

【答案】:答案解析:x=5是赋值(将5赋给x),x==5是判断(x是否等于5),B混淆了两者,故选B。11、若inti=0;执行for(i=0;i<5;i++){printf("%d",i);if(i==2)break;}输出结果是?()

A.012

B.01

C.01234

D.无输出

【答案】:答案解析:i=2时break,输出012,故选A。12、若intx=5;则表达式++x的结果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。13、若intx=1;执行switch(x){case1:printf("1");break;case1:printf("2");break;}会出现什么情况?()

A.输出1

B.输出2

C.编译错误

D.运行错误

【答案】:答案解析:case后常量不能重复,编译时会报错,故选C。14、以下定义函数指针正确的是?()

A.int(*fp)(int);

B.int*fp(int);

C.intfp(int);

D.int(fp)[];

【答案】:答案解析:A是指向int返回值、int参数的函数指针,B是返回int的函数,C是普通函数,D是指向数组的指针,故选A。15、以下关于二维数组的说法正确的是?()

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

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

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

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

【答案】:答案解析:二维数组本质是数组的数组,内存按行存储,可作为函数参数,长度需常量,故选A。16、若inta[3][2]={{1,2},{3,4},{5,6}};则a[2][1]的值是?()

A.5

B.6

C.3

D.4

【答案】:答案解析:a[2][1]是第三行第二列,值为6,故选B。17、以下关于函数参数的说法正确的是?()

A.形参是局部变量

B.实参是局部变量

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

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

【答案】:答案解析:形参是函数内局部变量(调用时分配内存,调用结束释放),实参是主调函数中的变量(生命周期与主调函数一致),故选A。18、函数定义在main函数之后时,必须先?()

A.调用函数

B.声明函数

C.定义函数

D.无要求

【答案】:答案解析:main函数调用其他函数时,若函数定义在main之后,需先声明(否则编译器找不到函数),故选B。19、若floatx=3.14;则表达式(int)x的结果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:强制转换为int取整数部分,3.14→3,故选A。20、C语言中,语句结束的标志是?()

A.逗号

B.分号

C.冒号

D.句号

【答案】:答案解析:C语言单条语句以分号(;)结尾,复合语句用{}包裹,故选B。21、若intx=3,y=5;则表达式x>y?x:y的结果是?()

A.3

B.5

C.true

D.false

【答案】:答案解析:三元运算符格式“条件?值1:值2”,x>y为假,取y=5,故选B。22、函数参数传递中,值传递适用于?()

A.简单变量,无需修改实参

B.数组,需修改元素

C.指针,需修改实参

D.结构体,需修改成员

【答案】:答案解析:值传递用于简单变量(不修改实参),地址传递用于需修改实参的场景,故选A。23、以下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。24、以下指针的算术运算中,单位是?()

A.1字节

B.指针指向类型的大小

C.4字节

D.8字节

【答案】:答案解析:指针算术运算(如p++)偏移量是指向类型的大小(如int指针+1偏移4字节),故选B。25、若floatf=5.9;强制转换为整型的表达式是?()

A.int(f)

B.(int)f

C.intf

D.(float)f

【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。26、C语言中,注释的正确写法是?()

A.//单行注释

B./*多行注释/

C.--注释

D.A和B

【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。27、以下转义字符表示换行的是?()

A.\t

B.\n

C.\

D.\r

【答案】:答案解析:\t是制表符,\n是换行符,\是反斜杠,\r是回车符,故选B。28、以下数组初始化中,未赋值元素默认为0的是?()

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

B.charstr[5];

C.inta[5];

D.以上都是

【答案】:答案解析:全局数组未初始化默认为0,局部数组未初始化是随机值,A初始化部分元素,未赋值默认为0,故选A。29、以下函数定义中,参数为两个int类型的是?()

A.voidfun(inta,floatb){}

B.voidfun(inta,intb){}

C.voidfun(floata,intb){}

D.voidfun(inta,charb){}

【答案】:答案解析:B中两个参数均为int类型,其余选项参数类型不匹配,故选B。30、以下定义指向字符串的指针正确的是?()

A.char*str="hello";

B.charstr[]="hello";

C.char(*str)[]="hello";

D.charstr[5]="hello";

【答案】:答案解析:A是指向字符串常量的指针,B是字符数组,C是数组指针(类型不匹配),D长度不足(含\0需6字节),故选A。31、指针作为函数返回值时,不能返回?()

A.静态局部变量的地址

B.全局变量的地址

C.动态分配内存的地址

D.局部变量的地址

【答案】:答案解析:局部变量在函数调用结束后释放,返回其地址会导致野指针,故选D。32、若inta[4]={1,2,3,4};则a[3]的值是?()

A.3

B.4

C.1

D.2

【答案】:答案解析:a[3]是第四个元素,值为4,故选B。33、函数调用时,实参和形参的个数必须?()

A.相等

B.实参多于形参

C.形参多于实参

D.无要求

【答案】:答案解析:函数调用时实参和形参个数、类型需匹配,否则编译错误,故选A。34、若intx=2;执行switch(x){case1:printf("a");case2:printf("b");case3:printf("c");}输出结果是?()

A.b

B.bc

C.abc

D.无输出

【答案】:答案解析:x=2匹配case2,无break,穿透到case3,输出bc,故选B。35、C语言程序的基本单位是?()

A.语句

B.函数

C.变量

D.表达式

【答案】:答案解析:C程序由函数构成,main是入口函数,其他函数实现功能,故选B。36、若intx=0;执行if(x)printf("A");elseprintf("B");输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:x=0为假,执行else分支,输出B,故选B。37、以下关于指针数组的定义正确的是?()

A.int*arr[5];

B.int(*arr)[5];

C.intarr[5];

D.intarr[];

【答案】:答案解析:A是指针数组(5个int指针),B是指向数组的指针,C是普通数组,D缺少长度,故选A。38、若intx=3,y=5;执行if(x>y)printf("x大");elseif(x==y)printf("相等");elseprintf("y大");输出结果是?()

A.x大

B.相等

C.y大

D.无输出

【答案】:答案解析:x=3<y=5,执行else,输出y大,故选C。39、若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。40、以下switch语句中,default的作用是?()

A.匹配所有case

B.匹配除case外的所有情况

C.终止switch语句

D.无实际作用

【答案】:答案解析:default用于匹配所有case未覆盖的情况,可选且位置灵活,故选B。41、若inta=1,b=2;则表达式(a==b)的结果是?()

A.1

B.0

C.2

D.真

【答案】:答案解析:==是等于判断,a==b为假,C语言中假用0表示,故选B。42、逻辑表达式!0的结果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:C语言中非0为真,!是逻辑非,!0(假)结果为1(真),故选B。43、以下关于指针数组和数组指针的说法正确的是?()

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

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

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

D.以上都正确

【答案】:答案解析:A、B、C均准确区分了指针数组和数组指针,故选D。44、以下哪个条件表达式表示“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。45、以下哪个是C语言中的赋值运算符?()

A.==

B.=

C.+=

D.!=

【答案】:答案解析:=是赋值运算符,==是等于判断,+=是复合赋值,

温馨提示

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

评论

0/150

提交评论