1 下面关于C语言的编译和链接说法错误的是?
A.C语言是一门编译型计算机语言
B.写出来的C语言代码直接就可以运行的
C.C语言代码需要经过编译和链接生成可执行程序才能运行的
D.C语言代码经过编译生成目标文件,目标文件和链接库通过链接生成可执行程序
答案:B
C语言是一门编译型计算机语言,代码需要经过编译和链接生成可执行程序才能运行的,C语言代码经过编译生成目标文件,目标文件和链接库通过链接生成可执行程序。
2 关于集成开发环境描述错误的是?
A.集成开发环境简称IDE
B.集成开发环境一般都是将编辑、编译、链接、调试等功能集成在一起的一个开发环境
C.集成开发环境就是编译器
D.集成开发环境使用起来方便,大大提升了开发和调试的效率
答案:C
集成开发环境中集成了编译器,如果说集成开发环境就是编译器,有些片面了
3 关于C语言中源文件和头文件说法正确的是?
A.C语言的源文件的后缀是.cpp
B.头文件没什么用,只要有源文件就行了
C.C语言中源文件的后缀是.c,头文件的后缀是.h
D.C语言的源文件可以没有后缀
答案:C
很多C语言编译器就是通过文件的后缀来区分是源文件还是头文件的,一般都是要明确的写出文件后缀的 头文件的后缀是.h,是header的意思 源文件的后缀是.c 在稍微复杂的C语言程序中,头文件是很有必要的,一般是用来函数声明、类型声明等.
4 C语言规定,在一个源程序中,main函数的位置( )
A.必须在最开始
B.必须在库函数的后面
C.可以任意
D.必须在最后
答案:C
main函数的位置可以在任意位置,但是如果在主函数之中调用了哪些函数,必须在main函数前对其所调用函数进行生命或包含其被调用函数的头文件。
因此:选择C
5关于main函数错误的是?
A.main函数是程序的入口
B.一个C语言程序中可以写多个main函数
C.main函数的名字是可以随便改的,比如:mian
D.main函数的名字是固定的,一个工程中,有且仅有一个main函数
答案:B C
一个C语言程序中的main函数,有且仅有一个 main函数的名字是固定的,编译器以main函数作为程序的入口,程序是从main函数的第一行开始执行的。
6 printf和库函数描述错误的是?
A.printf是库函数,不需要包含头文件就可以使用
B.库函数是C语言标准约定的,由各个C语言编译器的厂商实现的,所以各个编译器的库函数使用和功能是一样的,但是内部实现是有差异的。
C.printf函数是用来在标准输出上打印格式化的信息的
D.printf函数打印字符使用%c,打印整数使用%d指定格式
答案:A
printf是库函数,必须含头文件才能正确使用
7 下面哪个不是关键字:( )
A.int
B.struct
C.define
D.continue
答案:C
C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字 define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。 int、struct和continue都是C语言中包含的关键字。因此:选择C。
8 用在switch语言中的关键字不包含哪个?( )
A.continue
B.break
C.default
D.case
答案:A
switch中常用的关键字:case 、break、 default,当然case中语句比较复杂时,可能会用if进行判断。 continue是用来结束本次循环的,而switch不是循环,因此其中不能使用continue关键字。因此:选择A。
9 关于C语言关键字说法正确的是:( )
A.关键字可以自己创建
B.关键字不能自己创建
C.关键字可以做变量名
D.typedef不是关键字
答案:B
C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字 A:错误,关键字是语言自身定义的 B:正确 C:错误,关键字具有特殊含义,不能作为变量名 D:错误,typedef是用来给类型取别名的关键字 因此,选择B
10 关于字符的ASCII编码错误的是?
A.小写字母的ASCII码值+32就能得到对应的大写字母的ASCII码值
B.ASCII码值从0~31 这32个字符是非打印控制字符,在界面上不显示任何东西,比如:蜂鸣、回车、换行
C.数字字符0~9的ASCII码值是连续递增的
D.最初ASCII编码中只有128个字符的编码
答案:A
小写字母的ASCII码值-32就能得到对应的大写字母的ASCII码值 小写字母的ASCII码值比对应的大写字母的ASCII码值更大的。
11 字符串的结束标志是:( )
A.是'0'
B.是EOF
C. 是'\0'
D.是空格
答案:C
答案解析: C语言规定:以'\0'作为有效字符串的结尾标记 A:错误,是'\0'不是字符0 B:EOF一般用来作为检测文本文件的末尾 C:正确 D:明显错误 因此:选择C。
12
A.3
B.4
C.随机值
D.5
答案:C
strlen是用来获取字符串的有效长度的,结尾标记'\0'不包含在内。 strlen获取的规则非常简单:从前往后依次检测,直到遇到'\0'是就终止检测。 而上题中arr是一个字符数组,不是一个有效的字符串,因为后面没有放置'\0',因此strlen在求解时,将有效字符检测完之后,还会继续向后检测,直到遇到'\0'是才终止,因此答案为不确定,就看紧跟在't'之后的第一个'\0'在什么位置。 因此:答案选C
13 下面那个不是转义字符?
A.'\n'
B.'\060'
C.'\q'
D.'\b'
答案:C
答案解析: A:'\n' 转义字符,代表换行 B:'\060' 转义字符,060八进制数据,十进制为48,表示ASCII码为48的'0' C:'\q' 什么都不是 D:'\b' 转义字符,表示退格 因此:选择C
14
A.7
B.8
C.9
D.10
答案:A
答案解析: strlen:获取字符串的有效长度,不包括'\0' "c:\test\121": 在该字符串中,\t是转移字符,水平制表,跳到下一个tab的位置;而\121表示一个字符,是讲121看做8进制数组,转换为10进制后的81,作业为ASCII码值的字符,即:字符'Q' ,故上述字符串实际为:"c: estQ",只有7个有效字符 因此:选择A
15 关于注释说法不正确的是?
A.注释是用来解释代码的,在代码中是适当的加上注释有利于代码的阅读和多人协作
B.注释基本没啥用,主要给自己看的
C.注释是给程序员看的,编译器在预处理阶段就会删除注释的
D.注释有C++注释风格,有C语言注释风格,推荐C++注释风格
答案:B
16 关于C语言布尔类型错误的是?
A.C语言布尔类型是_Bool,使用需要包含头文件stdbool.h
B.布尔类型变量的取值是:true或者false
C.布尔类型是专门用来表示真和假的类型
D.布尔类型是C99标准之前就有的
答案:D
布尔类型是C99标准中引入的; 在早期的C语言标准(如ANSI C和C89)中,没有明确定义布尔类型。通常,程序员使用整数类型(如int)来表示布尔值,其中0表示假(false),非零值表示真(true)。 然而,在C99标准中引入了新的布尔类型(stdbool.h头文件),定义了bool类型和true/false常量。布尔类型只有两个取值:true和false,用于表示真和假。
17 下面哪个不是C语言内置的数据类型:
A.char
B.double
C.struct Stu
D.short
答案:C
18
A. 程序有问题,不能编译 B.输出1 C.输出10 D.输出0
答案:B
19 关于C语言变量说法错误的是?
A.变量是用来描述生活中经常发生变化的值
B.变量可以分为局部变量和全局变量
C.局部变量是放在内存的静态区的,全局变量是放在内存的栈区
D.当全局变量和局部变量名字相同的情况,且都可以使用的时候,局部变量优先
答案:C
局部变量是放在内存的栈区的,全局变量是放在内存的静态区
20 关于C语言算术操作符说法正确的是?
A.除号两边都是小数才能执行小数除法
B.%操作符的操作数可以是整数,也可以是小数
C.%操作符计算的结果是两个操作数整除之后的商
D.负数求模的规则是,结果的正负号由第一个运算数的正负号决定。
答案:D
A:除号两边只要有一个是小数,就执行小数除法 B:%操作符的操作数只能是整数 C:%操作符计算的结果是两个操作数整除之后的余数
21
A.3 3.500000 B.3.500000 3.500000 C.3.500000 3 D.3 3
答案:A
2个整数相除,执行的是整数除法,计算的结果也是整数 除法的2个操作数只要有一个数是浮点数,执行的就是小数除法,所以a/c是按照小数除法计算的,结果就是3.5 a/b 是按照整数除法计算的,结果是3.
22
A.a = 8 b = 23 c = 8
B.a = 9 b= 23 c = 8
C.a = 9 b = 25 c = 8
D.a = 9 b = 24 c = 8
答案:B