期末c语言考试题(各地真题)_第1页
期末c语言考试题(各地真题)_第2页
期末c语言考试题(各地真题)_第3页
期末c语言考试题(各地真题)_第4页
期末c语言考试题(各地真题)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

期末c语言考试题第一部分单选题(50题)1、以下字符串常量定义正确的是?()

A.charstr[]="C";

B.charstr[1]='C';

C.charstr[]={'C'};

D.charstr[2]={'C','\0'};

【答案】:答案解析:A用双引号定义字符串(自动加\0),B单引号用于字符常量,C无\0,D长度2正确但A更简洁,故选A。2、以下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。3、若intx=5;执行if(x>3&&x<7)printf("yes");elseprintf("no");输出结果是?()

A.yes

B.no

C.yesno

D.无输出

【答案】:答案解析:x=5>3且<7,条件为真,输出yes,故选A。4、以下关于数组的说法正确的是?()

A.数组下标从1开始

B.数组名可作为左值赋值

C.数组长度定义后不可修改

D.数组元素类型可不同

【答案】:答案解析:数组下标从0开始,数组名是常量(不可赋值),元素类型必须相同,长度定义后固定,故选C。5、若intx=3;执行以下代码后a的值是?()inta;if(x>5)a=10;elseif(x>2)a=20;elsea=30;

A.10

B.20

C.30

D.无定义

【答案】:答案解析:x=3>2,执行第二个分支,a=20,故选B。6、函数调用时,实参的类型必须与形参的类型?()

A.完全一致

B.兼容(可自动转换)

C.无关

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

【答案】:答案解析:实参和形参类型可兼容(如int→float),编译器自动转换,不兼容则编译错误,故选B。7、以下数组初始化正确的是?()

A.charstr[]="hello";

B.charstr[5]="hello";

C.charstr[]={'h','e','l','l','o'};

D.charstr[5]={'h','e','l','l','o','\0'};

【答案】:答案解析:A字符串自动加\0,B长度5不足以存hello(含\0共6个字符),C无\0(字符串不完整),D长度5超,故选A。8、若inta=1,b=2;则表达式(a==b)的结果是?()

A.1

B.0

C.2

D.真

【答案】:答案解析:==是等于判断,a==b为假,C语言中假用0表示,故选B。9、若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。10、C语言程序编译的正确顺序是?()

A.预处理→编译→汇编→链接

B.编译→预处理→汇编→链接

C.预处理→汇编→编译→链接

D.链接→编译→汇编→预处理

【答案】:答案解析:C程序编译流程为预处理(处理#命令)→编译(生成汇编代码)→汇编(生成目标文件)→链接(生成可执行文件),故选A。11、C语言中,语句结束的标志是?()

A.逗号

B.分号

C.冒号

D.句号

【答案】:答案解析:C语言单条语句以分号(;)结尾,复合语句用{}包裹,故选B。12、若inta=3;执行if(++a==4)printf("A");elseprintf("B");输出结果是?()

A.A

B.B

C.AB

D.无输出

【答案】:答案解析:++a使a=4,条件为真,输出A,故选A。13、若inti=1,s=0;执行while(i<=5){s+=i;i++;}后s的值是?()

A.15

B.10

C.5

D.0

【答案】:答案解析:循环累加1+2+3+4+5=15,s=15,故选A。14、以下关于函数递归的说法错误的是?()

A.必须有终止条件

B.可能导致栈溢出

C.效率比循环高

D.代码简洁

【答案】:答案解析:递归调用会创建栈帧,效率低于循环,A、B、D正确,C错误,故选C。15、以下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。16、以下switch语句中,case后的常量可以是?()

A.整数

B.字符

C.枚举常量

D.以上都可以

【答案】:答案解析:switch的case后必须是整型常量(整数、字符、枚举常量,字符本质是ASCII码整数),故选D。17、若inta[5]={10,20,30,40,50};则a[2]的值是?()

A.10

B.20

C.30

D.40

【答案】:答案解析:数组下标从0开始,a[2]是第三个元素30,故选C。18、以下关于指针的说法错误的是?()

A.指针可指向变量、数组、函数

B.指针可进行算术运算(如++、--)

C.指针可指向自身

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

【答案】:答案解析:指针不能指向自身(类型不匹配),A、B、D说法正确,故选C。19、以下哪个赋值语句是正确的?()

A.inta=5;

B.a=5;

C.inta=b=5;

D.a=b=5;

【答案】:答案解析:B、D未定义变量,C不能连续赋值定义,A定义并赋值正确,故选A。20、do-while循环中,循环体至少执行几次?()

A.0次

B.1次

C.2次

D.不确定

【答案】:答案解析:do-while“先执行后判断”,无论条件是否满足,循环体至少执行一次,故选B。21、以下数组定义中,长度为5的是?()

A.inta[5];

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

C.charstr[]="abcd";

D.以上都是

【答案】:答案解析:A长度5,B长度5,C字符串"abcd"含\0共5个字符,故选D。22、以下循环中,用于计算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。23、指针与数组的关系,以下说法正确的是?()

A.数组名是常量指针,不能自增

B.指针可指向数组元素,通过指针遍历数组

C.p[i]等价于*(p+i)

D.以上都正确

【答案】:答案解析:数组名是首元素地址(常量,不可自增),指针可遍历数组,p[i]与*(p+i)等价,故选D。24、以下关于数组的说法错误的是?()

A.数组元素必须是同一类型

B.数组长度必须是常量

C.数组可在函数内定义

D.数组可整体赋值

【答案】:答案解析:数组不能用“=”整体赋值,需逐个元素或循环赋值,A、B、C正确,故选D。25、以下for循环的循环变量初始化表达式为“i=5”的是?()

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

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

C.for(i=2;i<=5;i++)

D.for(i=5;i<10;i+=2)

【答案】:答案解析:初始化表达式是for循环第一个部分,B中i=5符合,其余初始化非5,故选B。26、若inta[5];执行a[0]=1;a[1]=2;则a[2]的值是?()

A.0

B.3

C.随机值

D.无定义

【答案】:答案解析:全局数组默认0,局部数组未初始化是随机值?题目未说明存储类别,通常默认全局,a[2]=0,故选A。27、若floatf=5.9;强制转换为整型的表达式是?()

A.int(f)

B.(int)f

C.intf

D.(float)f

【答案】:答案解析:强制类型转换格式为(目标类型)变量,(int)f结果为5(取整数部分),故选B。28、以下哪个函数用于输出字符串?()

A.putchar()

B.printf()

C.gets()

D.scanf()

【答案】:答案解析:printf()可输出字符串(如printf("hello");),putchar()输出单个字符,故选B。29、以下函数无返回值的是?()

A.intfun(){return0;}

B.voidfun(){printf("hello");}

C.floatfun(){return3.14;}

D.charfun(){return'b';}

【答案】:答案解析:void类型函数无返回值,A、C、D均有返回值,故选B。30、逻辑表达式!0的结果是?()

A.0

B.1

C.真

D.假

【答案】:答案解析:C语言中非0为真,!是逻辑非,!0(假)结果为1(真),故选B。31、若inta=5,*p=&a;则&*p的值是?()

A.5

B.&a

C.p

D.无定义

【答案】:答案解析:&*p等价于p,即&a(a的地址),故选B。32、以下哪个是合法的字符常量?()

A."a"

B.'ab'

C.'a'

D.a

【答案】:答案解析:字符常量用单引号包裹单个字符,A是字符串,B是两个字符(错误),D是标识符,故选C。33、以下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。34、以下指针与函数的关系正确的是?()

A.函数名是函数的地址

B.函数指针可指向函数

C.可通过函数指针调用函数

D.以上都正确

【答案】:答案解析:A、B、C均是函数与指针的基本关系,故选D。35、以下函数声明错误的是?()

A.voidfun(int);

B.voidfun(inta);

C.voidfun(inta,intb);

D.voidfun(inta;intb);

【答案】:答案解析:函数声明中参数用逗号分隔,不能用分号,D语法错误,故选D。36、若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。37、若inta[3]={1,2,3},p=a;则(p+2)的值是?()

A.1

B.2

C.3

D.无定义

【答案】:答案解析:p+2指向a[2],解引用*(p+2)=a[2]=3,故选C。38、C语言中,注释的正确写法是?()

A.//单行注释

B./*多行注释/

C.--注释

D.A和B

【答案】:答案解析:C语言支持//单行注释和/...*/多行注释,--不是注释符号,故选D。39、C语言中基本数据类型不包括以下哪项?()

A.char

B.int

C.float

D.array

【答案】:答案解析:基本数据类型为char、int、float、double,array是数组(构造类型),故选D。40、以下for循环的语法错误是?()

A.for(inti=0;i<5;i++)printf("%d",i);

B.for(i=0;i<5;i++)printf("%d",i);

C.for(;i<5;i++)printf("%d",i);

D.for(i=0;;i++)printf("%d",i);

【答案】:答案解析:B中i未定义(需先声明inti;),A(C99标准允许循环内定义)、C(初始化省略)、D(条件省略,无限循环)语法均正确,故选B。41、函数指针的作用是?()

A.存储函数的地址

B.调用函数

C.实现回调函数

D.以上都正确

【答案】:答案解析:函数指针存储函数地址,可通过指针调用函数,常用于回调函数,故选D。42、若intx=5;则表达式++x的结果是?()

A.5

B.6

C.4

D.7

【答案】:答案解析:++x是前置自增,先自增(x变为6)再参与运算,结果为6,故选B。43、若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。44、若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,

温馨提示

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

评论

0/150

提交评论