c语言文件考试题库及一套答案_第1页
c语言文件考试题库及一套答案_第2页
c语言文件考试题库及一套答案_第3页
c语言文件考试题库及一套答案_第4页
c语言文件考试题库及一套答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

c语言文件考试题库第一部分单选题(50题)1、以下哪个数据类型用于存储单个字符?()

A.int

B.char

C.float

D.double

【答案】:答案解析:char用于存储单个字符(ASCII码),int存储整数,float/double存储浮点数,故选B。2、以下二维数组初始化正确的是?()

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。3、逻辑表达式!5的结果是?()

A.0

B.1

C.5

D.真

【答案】:答案解析:5为真,!是逻辑非,真变假(0),故选A。4、若inta[4]={1,2,3,4};则*(a+1)的值是?()

A.1

B.2

C.3

D.4

【答案】:答案解析:a是首地址,a+1是第二个元素地址,*(a+1)=a[1]=2,故选B。5、break语句不能用于以下哪种结构?()

A.for循环

B.while循环

C.do-while循环

D.if语句

【答案】:答案解析:break可用于循环(for/while/do-while)和switch语句,不能用于if语句,故选D。6、若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。7、若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。8、以下函数声明正确的是?()

A.voidfun();

B.voidfun(inta);

C.intfun(int);

D.以上都正确

【答案】:答案解析:函数声明可省略形参名(只留类型),A、B、C均符合语法,故选D。9、若inti=0;执行for(i=0;i<5;i++){if(i==2)continue;printf("%d",i);}输出结果是?()

A.0134

B.01234

C.01

D.无限循环

【答案】:答案解析:i=2时执行continue,跳过printf,输出0134,故选A。10、若floatx=3.14;则表达式(int)x的结果是?()

A.3

B.3.14

C.4

D.0

【答案】:答案解析:强制转换为int取整数部分,3.14→3,故选A。11、以下if语句中,逻辑非运算符使用正确的是?()

A.if(!x)printf("yes");

B.if(!x==0)printf("yes");

C.if(!(x>0))printf("yes");

D.A和C

【答案】:答案解析:!x表示“x为假(0)”,!(x>0)表示“x不大于0”,均正确;B中!x==0等价于x!=0,逻辑不同,故选D。12、若charstr[]="Clanguage";则字符串长度是?()

A.10

B.11

C.12

D.13

【答案】:答案解析:字符串长度以\0结束,"Clanguage"含10个字符(不含\0),故选A。13、以下for循环中,循环变量更新表达式为“i-=2”的是?()

A.for(i=10;i>0;i-=2)

B.for(i=0;i<10;i+=2)

C.for(i=10;i>0;i--)

D.for(i=0;i<10;i=2)

【答案】:答案解析:i-=2等价于i=i-2,A的更新表达式正确,故选A。14、若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。15、指针与字符串的关系,以下说法正确的是?()

A.字符串常量是字符数组,数组名是指针

B.字符串可通过指针遍历

C.字符指针可指向字符串常量

D.以上都正确

【答案】:答案解析:A、B、C均是指针与字符串的基本关系,故选D。16、以下switch语句中,break语句的位置正确的是?()

A.case后任意位置

B.必须在case代码最后

C.必须在default后

D.不能在default后

【答案】:答案解析:break可在case代码任意位置(执行到break即跳出),不一定在最后,default后也可加break,故选A。17、若inta[4]={1,2,3,4};则a[3]的值是?()

A.3

B.4

C.1

D.2

【答案】:答案解析:a[3]是第四个元素,值为4,故选B。18、二维数组a[3][4]的元素个数是?()

A.7

B.12

C.3

D.4

【答案】:答案解析:3行4列,共3×4=12个元素,故选B。19、以下关于指针的说法正确的是?()

A.野指针是指向无效地址的指针

B.空指针是野指针的一种

C.避免野指针需初始化并及时置空

D.以上都正确

【答案】:答案解析:A、B、C均是野指针的核心知识点,故选D。20、若inta=3,b=5;执行以下代码后输出结果是?()if(a>b)printf("A");elseprintf("B");

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:a=3<b=5,条件为假,执行else分支,输出B,故选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、若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。23、以下关于循环语句的说法错误的是?()

A.for循环三个表达式均可省略

B.while循环先判断后执行

C.do-while循环至少执行一次

D.continue可用于switch语句

【答案】:答案解析:continue仅用于循环语句,不能用于switch,A、B、C说法正确,故选D。24、若inta=10,*p=&a;则sizeof(p)的值是?()

A.4

B.8

C.取决于系统

D.10

【答案】:答案解析:sizeof(p)是指针大小,32位系统4字节,64位8字节,故选C。25、以下函数调用时,实参为常量的是?()

A.fun(5);

B.fun(a);

C.fun(&a);

D.fun("abc");

【答案】:答案解析:A中5是常量,B是变量,C是变量地址,D是字符串常量,题目问“常量”,A正确,故选A。26、putchar()函数的功能是?()

A.读取一个字符

B.输出一个字符

C.读取字符串

D.输出字符串

【答案】:答案解析:putchar()用于输出单个字符,getchar()读取单个字符,puts()输出字符串,故选B。27、若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。28、若inta=5,p=&a;执行p=8;后a的值是?()

A.5

B.8

C.&a

D.无定义

【答案】:答案解析:*p=8通过指针修改指向变量a的值,a变为8,故选B。29、以下循环语句中,语法正确的是?()

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。30、以下函数定义错误的是?()

A.intfun(inta,intb){returna+b;}

B.voidfun(){inta=5;printf("%d",a);}

C.intfun(){inta=3;returna;}

D.voidfun(inta){returna;}

【答案】:答案解析:D返回值类型void,不能return表达式a,语法错误,故选D。31、以下关于指针的说法正确的是?()

A.指针可用于实现多返回值函数

B.指针可提高程序效率

C.指针可用于动态内存分配

D.以上都正确

【答案】:答案解析:指针的核心用途包括多返回值、高效访问、动态内存分配,故选D。32、定义整型变量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。33、若inti=1;执行do{printf("%d",i);i++;}while(i<=0);输出结果是?()

A.1

B.无输出

C.无限循环

D.12

【答案】:答案解析:do-while先执行一次(输出1,i=2),再判断i<=0为假,循环结束,故选A。34、以下哪个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。35、函数调用时,实参的类型必须与形参的类型?()

A.完全一致

B.兼容(可自动转换)

C.无关

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

【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。36、若inta=3;执行if(++a==4)printf("A");elseprintf("B");输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:++a使a=4,条件为真,输出A,故选A。37、若inta[5];则数组a的元素个数是?()

A.4

B.5

C.6

D.不确定

【答案】:答案解析:数组a[5]定义5个元素(下标0-4),故选B。38、若inti=0,s=0;执行for(i=0;i<4;i++)s+=i;后s的值是?()

A.6

B.10

C.4

D.0

【答案】:答案解析:累加0+1+2+3=6,s=6,故选A。39、以下if语句中,赋值表达式作为条件的是?()

A.if(x==3)

B.if(x=3)

C.if(x>3)

D.if(x!=3)

【答案】:答案解析:x=3是赋值表达式,结果为3(非0,真),其余是判断表达式,故选B。40、若intx=5;则表达式++x的结果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。41、以下定义指向二维数组的指针正确的是?()

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。42、以下哪个操作会导致野指针?()

A.指针未初始化

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

C.指针越界访问

D.以上都是

【答案】:答案解析:野指针是指向无效地址的指针,A、B、C均会导致野指针,故选D。43、break语句在循环中的作用是?()

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

B.终止整个循环

C.终止当前语句

D.无作用

【答案】:答案解析:break在循环中用于终止整个循环(跳出循环体),continue是跳过本次循环,故选B。44、函数指针的作用是?()

A.存储函数的地址

B.调用函数

C.实现回调函数

D.以上都正确

【答案】:答案解析:函数指针存储函数地址,可通过指针调用函数,常用于回调函数,故选D。45、以下二维数组定义正确的是?()

A.inta[2][3];

B.inta[2][];

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

D.int

温馨提示

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

评论

0/150

提交评论