c考试题库及答案
一、单项选择题(每题2分,共10题)
1.以下哪个是C语言合法的标识符?()
A.@abcB.123abcC.abc_1D.int
答案:C
解析:标识符只能由字母、数字和下划线组成,且不能以数字开头,A选项包含@非法,B以数字开头非法,D是关键字非法,C符合要求。
2.若有定义inta=5;则执行a+=a-=aa;后,a的值是()
A.0B.-40C.40D.-15
答案:B
解析:先算aa=25,再算a-=25即a=5-25=-20,最后算a+=-20即a=-20+(-20)=-40。
3.以下关于C语言数据类型的说法,正确的是()
A.char类型只能存储单个字符B.float类型比double类型精度高
C.int类型不能表示负数D.short类型和long类型占用字节数一样
答案:A
解析:char用于存储单个字符,A正确;double精度比float高,B错误;int能表示负数,C错误;short占2字节,long占4字节(32位系统)或8字节(64位系统),D错误。
4.以下语句中能正确输出字符A的是()
A.printf(%c,65);B.printf(%d,A);C.printf(%f,A);D.printf(%s,A);
答案:A
解析:65是字符A的ASCII码值,%c用于输出字符,所以A能正确输出字符A;B用%d输出字符会输出其ASCII码值;C用%f不能输出字符;D用%s输出的是字符串。
5.以下循环结构中,循环体一定会执行一次的是()
A.for循环B.while循环C.do-while循环D.以上都不对
答案:C
解析:do-while循环是先执行一次循环体,再判断条件,所以循环体一定会执行一次;for和while可能一次都不执行。
6.若有定义inta[3][4];则a[1][2]表示的是数组中的第几个元素?()
A.6B.7C.8D.9
答案:B
解析:二维数组a[3][4],按行存储,a[1][2]是第二行第三列元素,前面有14+2=6个元素,所以是第7个。
7.以下函数返回值类型是int的是()
A.voidfun()B.floatfun()C.intfun()D.以上都不对
答案:C
解析:函数定义时返回值类型为int,返回值类型就是int;A是无返回值函数,返回void;B返回值类型是float。
8.若有定义intp;则p是()
A.整型变量B.指向整型数据的指针变量C.整型常量D.以上都不对
答案:B
解析:intp定义了一个指向整型数据的指针变量,p中存储的是整型数据的地址。
9.以下运算符优先级最高的是()
A.+B.C.()D.=
答案:C
解析:括号运算符优先级最高,改变运算顺序;乘法和加法优先级低于括号,赋值运算符优先级最低。
10.以下预处理命令正确的是()
A.definea=5B.includea.hC.definePI3.14D.ifdefa
答案:C
解析:define定义常量形式为define标识符常量值,C正确;A多了=;include后文件名要用或括起来,B错误;ifdef后面需跟标识符,D错误。
二、多项选择题(每题2分,共10题)
1.以下哪些是C语言的关键字?()
A.mainB.ifC.whileD.switch
答案:BCD
解析:if、while、switch都是C语言关键字,用于控制程序流程等;main是函数名,不是关键字。
2.以下能正确定义并初始化整型变量的有()
A.inta=10;B.inta,b=10;C.inta=b=10;D.inta;a=10;
答案:ABD
解析:A直接定义并初始化a为10;B定义a和b,同时初始化b为10;D先定义a,再赋值10;C不能连续赋值,应分开定义初始化变量。
3.以下关于scanf函数的说法,正确的是()
A.可以从键盘读取数据B.格式控制字符串可以包含