最新C语言概念题汇总.docx
- 文档编号:13249600
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:25
- 大小:254.10KB
最新C语言概念题汇总.docx
《最新C语言概念题汇总.docx》由会员分享,可在线阅读,更多相关《最新C语言概念题汇总.docx(25页珍藏版)》请在冰点文库上搜索。
最新C语言概念题汇总
C语言概念题
2、下列叙述中错误的是_______。
(标准答案:
A)
(A)一个C语言程序只能实现一种算法(B)一个C函数可以单独作为一个C程序文件存在
(C)C程序可以由一个或多个函数组成(D)C程序可以由多个程序文件组成
4、以下叙述中错误的是_____________。
(标准答案:
A)
(A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
(B)C语言源程序经编译后生成后缀为.obj的目标程序
(C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
(D)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
13、以下叙述中错误的是A
(A)使用三种基本结构构成的程序只能解决简单问题(B)C语言是一种结构化程序设计语言
(C)结构化程序由顺序、分支、循环三种基本结构组成(D)结构化程序设计提倡模块化的设计方法
18、以下关于结构化程序设计的叙述中正确的是
(A)一个结构化程序必须同时由顺序、分支、循环三种结构组成
(B)有三种基本结构构成的程序只能解决小规模的问题
(C)在C语言中,程序的模块化是利用函数实现的
(D)结构化程序使用goto语句会很便捷
标准答案:
C
19、对于一个正常运行的C程序,以下叙述中正确的是C
(A)程序的执行总是从main函数开始,在程序的最后一个函数中结束
(B)程序的执行总是从程序的第一个函数开始,在main函数结束
(C)程序的执行总是从main函数开始
(D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
33、以下选项中关于程序模块化的叙述错误的是
(A)把程序分成若干相对独立的模块,可便于编码和测试
(B)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
(C)把采用分成若干相对独立、功能单一的模块,可便于重复使用这些模块
(D)可采用自顶向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
标准答案:
D
34、以下叙述中正确的是
(A)C程序中的注释只能出现在程序的开始位置和语句的后面
(B)C程序书写格式严格,要求一行内只能写一个语句
(C)用C语言编写的程序只能放在一个程序文件中
(D)C程序书写格式自由,一个语句可以写在多行上
标准答案:
D
36、以下关于C语言数据类型使用的叙述中错误的是
(A)若只处理“真”和“假”两种逻辑值,应使用逻辑类型
(B)若要保存带有多位小数的数据,可使用双精度类型
(C)整数类型表示的自然数是准确无误差的
(D)若要处理“人员信息”等含有不同类型的相关数据,应自定义结构体类型
38、以下叙述中错误的是
(A)C程序在运行过程中所有计算都以二进制方式进行(B)C程序在运行过程中所有计算都以十进制方式进行
(C)C程序中字符变量存放的是字符的ASCII值 (D)所有C程序都需要编译链接无误后才能运行
标准答案:
B
39、以下关于C语言的叙述中正确的是
(A)C语言中的注释不可以夹在变量名或关键字的中间
(B)C语言中的变量可以再使用之前的任何位置定义
(C)在C语言算数表达式的书写中,运算符两侧的运算数类型必须一致
(D)C语言的数值常量中夹带空格不影响常量值的正确表示
标准答案:
A
43、下列叙述中错误的是A
(A)一个C语言程序只能实现一种算法(B)一个C函数可以单独作为一个C程序文件存在
(C)C程序可以由一个或多个函数组成(D)C程序可以由多个程序文件组成
52、我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令,关于转换以下说法错误的是D
(A)一条C语句可能会被转换成零条机器指令
(B)某种类型和格式的C语句被转换成机器指令的条数是固定的
(C)一条C语句可能会被转换成多条机器指令
(D)一条C语句对应转换成一条机器指令
标准答案:
D
53、关于C语言的符号常量,以下叙述中正确的是
(A)符号常量在整个程序中其中都不会被重新定义
(B)符号常量的符号名是标识符,但必须大写
(C)符号常量的符号名必须是常量
(D)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量
标准答案:
D
57、关于算法,以下叙述中错误的是
(A)一个算法对于某个输入的循环次数是可以事先估计出来的
(B)同一个算法对于相同的输入必须得出相同的结果
(C)某个算法可能会没有输入
(D)任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕
标准答案:
D
58、关于C语言的变量,以下叙述中错误的是(A)由三条下划线构成的符号名是合法的变量名
(B)所谓变量是指在程序运行过程中其值可以被改变的量(C)程序中用到的所有变量都必须先定义后才能使用
(D)变量所占的存储单元地址可以随时改变
74、以下叙述中正确的是
(A)空语句就是指程序中的空行
(B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
(C)复合语句在语法上包含多条语句,其中不能定义局部变量
(D)当用scanf从键盘输入数据时,每行数据在没有按下回车键(Enter键)前,可以任意修改
标准答案:
D
75、以下叙述中正确的是
(A)程序必须包含所有三种基本结构才能成为一种算法
(B)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达
(C)只有简单算法才能在有限的操作步骤之后结束
(D)我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令
标准答案:
D
76、以下叙述中正确的是
(A)在C语言程序设计中,所有函数必须保存在一个源文件中
(B)结构化程序必须包含所有的三种基本结构,缺一不可
(C)只要包含了三种基本结构的算法就是结构化程序
(D)在算法设计时,可以把复杂任务分解成一些简单的子任务
标准答案:
D
77、以下叙述中正确的是
(A)预定义的标识符是C语言关键字的一种,不能另作他用
(B)只能在函数体内定义函数,其他地方不允许定义变量
(C)常量的类型不能从字面形式上区分,需要根据类型名来决定
(D)整型常量和实型常量都是数值型常量
标准答案:
D
78、以下叙述中正确的是
(A)八进制数的开头要使用英文字母o,否则不能与十进制区分开
(B)英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符
(C)在C程序中的八进制和十进制,可以是否点数
(D)整型变量可以分为int型、short型、long型、unsigned型四种
标准答案:
D
79、以下叙述中正确的是
(A)C语言程序总是从main函数开始执行(B)C语言程序所调用的函数必须放在main函数的前面
(C)C语言程序中main函数必须放在程序开始位置(D)C语言程序总是从最前面的函数开始执行
96、以下叙述中正确的是
(A)在使用scanf函数输入整型或实数时,输入数据之间只能用空格来分隔
(B)在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
(C)使用printf函数无法输入百分号%
(D)在printf函数中,各个输出项只能是变量
标准答案:
B
97、以下叙述中正确的是
(A)复合语句也被称为语句块,它至少要包含两条语句
(B)在scanf函数的格式中,必须有与输出项一一对应的格式转换说明
(C)scanf函数中的字符串,是提示程序员的。
输入数据时不必管它
(D)只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
200、以下叙述中正确的是
A)if语句只能嵌套一层B)不能在else子句中在嵌套if语句
C)改变if-else语句的缩进格式,会改变程序的执行流程D)if子句和else子句中可以是任意合法的C语句
标准答案:
D
201、以下叙述中正确的是
A)对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能换成while
B))对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定
C)如果根据算法血药使用无限循环(即通常说的“死循环”),则只能使用while语句
D)只要适当地修改代码,就可以将do-while与while相互转换
标准答案:
D
202、以下叙述中正确的是
A)在while语句和do-while语句中无法使用continue语句
B)当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并终止循环
C)continue语句的作用是:
在执行完本次循环体中剩余语句后,终止循环
D)只能在循环体内和switch语句体内使用break语句
标准答案:
D
203、以下叙述中正确的是
A)‘\”’是非法的B)’\0’表示字符0C)”a”表示一个字符常量D)表达式:
’a’>’b’的结果是“假”
标准答案:
D
204、以下叙述中正确的是
A)字符常量可以参与任何整数运算B)转义字符用@符号开头
C)字符变量在定义时不能赋初值D)同一英文字符的大写和小写形式代表的是同一字符常量
253、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是
A)函数的实参和其对应的形参共占同一存储单元
B)形参知识形式上的存在,不占用具体存储单元
C)函数的形参和实参分别占用不同的存储单元
D)同名的实参和形参占同一存储单元
标准答案:
C
以下叙述中正确的是
Aint*p1,int**p2,int*p3;都是合法的定义指针变量语句
B语句p==NULL;与p==\0是等价的语句
Cp==NULL;执行后,指针p指向地址为0的存储单元
D指针变量只能通过求指针运算符(&)获得地址值
答案:
A
303以下叙述中正确的是
A即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同
B指针变量之间不能用关系运算符进行比较
C设置p是一个指针变量,则语句p==0;是非法的,应使用p==NULL;
D如果企图通过一个空指针来访问一个存储单元,将会得到一个错误信息
答案:
D
304以下叙述中正确的是
A在引用数据元素时,下标表达式可以使用浮点数
B数组说明符的一对方括号只能使用整型变量,不能使用表达式
C一条语句定义一个数组
D每一数组包含具有同一类型的变量,这些变量在内存中占连续的存储单元
305以下叙述中正确的是
A数组下标的下限由数组中第1个被赋值元素的位置决定
B数组下标的下限是1
C数组元素的下标下限由第一个非零元素的位置决定
Dcharc1,c2,*c3,c4[40];是合法的变量定义语句
答案:
D
306以下叙述中正确的是
A语句chara[3];a=”AB”;是合法的,因为数组有三个字符空间的容量,可以保存两个
B语句chara[2]={“A”,”B”};定义了一个包含两个字符的数组
C语句inta[]={0};是不合法的,遗漏了数组的大小
D语句inta[8]={0};是合法的
以下叙述中正确的是
A函数名允许用数字开头
B函数调用时不必区分函数名称的大小写
C函数调用时,函数名必须与被调用的函数名完全一致
D在函数体中只能出现一次return语句
答案:
C
308以下叙述中正确的是
A在对指针进行加减运算时,数字1表示1个存储单元的长度
B如果p是指针变量*p+1和*(p+1)的效果一样
C如果p是指针变量,则&p是不合法的表达式
D如果p是指针变量,则*p是变量p的地址值
309以下叙述中正确的是
A设有指针变量double*p,则p+1将指针p移动8个字节
B函数的形参类型不能使指针类型
C基类型不同的指针变量可以相互混用
D函数的类型不能是指针类型
答案:
A
310如果定义
floata[10],x;
则以下叙述中正确的是
A三个表达式a[1]、*(a+1)和*&a[1]表示的意思完全不同
B表达式*&a[1]是非法的,应该写成*(&a[1])
C表达式a+1是非法的
D表达式a=&x是非法的
311int*func(inta[10],intn);则以下叙述中正确的是
A说明中的a[10]改为a[]或*a效果完全一样
Bfunc函数中不能对a进行移动指针(如a++)的操作
C只有指向10个整数内存单元的指针,才能作为实参传递给形参
D形参a对应的实参只能是数组名
答案:
A
312以下叙述中正确的是
A语句inta[][3]={1,2,4,5};是错误的初始化形式
B在逻辑上可以把二维数组看成是一个具有行和列的矩阵或表格
C语句inta[4][3]={{1,2},{4,5}};是错误的初始化形式
D语句inta[4][3]={1,2,45,};是错误的初始化形式
361,以下选项中叙述错误的是
AC程序函数中定义的自动变量,系统不自动赋确定的初值
BC程序函数的形参不可以说明为static型变量
CC程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
D在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
标准答案C
367,以下能正确定义字符串的语句是
Acharstr[]={‘\064’};
Bcharstr=”\x43”;
Ccharstr[]=”\0”;
Dcharstr=’‘;
标准答案C
368,以下关于字符串的叙述中正确的是
A两个字符串中的字符个数相同时才能进行字符串大小的比较
BC语言中有字符串类型的常量和变量
C空串比空格打头的字符串小
D可以用关系运算符对字符串的大小进行比较
标准答案C
374,设有如下程序段
#include
chars[20]=”Beijing”,*p;
p=s;
则执行p=s;语句后,以下叙述正确的是
A数组s中的内容和指针变量p中的内容相同
Bs数组中元素的个数和p所指字符串长度相等
Cs和p都是指针变量
D可以用*p表示s[0]
标准答案D
379,以下正确的字符串常量是
A01ympicGames
B“\\\”
C‘abc’
D““
410)以下叙述中正确的是
A)字符串常量“str1”的类型是:
字符串数据类型
B)有定义语句:
charstr1[]=“str1”;数组str1将包含4个元素
C)字符数组的每个元素可存放一个字符,并且最后一个元素必须是‘\0’字符
D)下面的语句用赋初值方式来定义字符串,其中‘\0’是必须的
charstr1[]={‘s’,’t’,’r’,’1’,’\0’};
标准答案:
D
411)以下叙述中正确的是
A)char*ca[3]={“A”,”B”,”CCC”};是不合语法的
B)charca[3][5]={“A”,”B”,”CCC”};是不合语法的
C)字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组
D)charca[][5]={“A”,”B”,”CCC”};;是不合语法的
标准答案:
D
412)以下叙述中正确的是
A)函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位)
B)当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间
C)两个字符串可以用关系运算符进行大小比较
D)C语言本身没有提供对字符串进行整体操作的运算符
标准答案:
D
413)以下叙述中正确的是
A)函数体中的语句不能出现对自己的调用
B)如果函数带有参数,就不能调用自己
C)函数名代表函数的入口地址
D)所有函数均不能接受函数名作为实参传入
标准答案:
C
414)以下叙述中正确的是
A)只要是用户定义的标识符,都有一个有效的作用域
B)局部变量不能被说明为static
C)只有在函数内部定义的变量才是局部变量
D)只有全局变量才有自己的作用域,函数中的局部变量没有作用域
标准答案:
A
415)以下叙述中正确的是
A)不能用字符串常量对字符数组名进行整体赋值操作
C)char*str;str=“Hello”;与charstr[];str=“Hello”;效果是一样的
D)charstr[7]=”string!
”;在语法上是合法的,运行也是安全的
标准答案:
A
416)以下叙述中正确的是
A)对于字符串常量”string!
”;系统已自动在最后加入了‘\0’字符,表示串结尾
B)对于一维字符数组,不能使用字符串常量来赋初值
C)语句charstr[10]=”string!
”;和charstr[10]={”string!
”};并不等价
D)在语句charstr[10]=”string!
”;中,数组str的的大小等于字符串的长度
标准答案:
A
417)设有定义
charstr[]=“Hello”;
则语句
printf(“%d%d”,sizeof(str),strlen(str));的输出结果是
A)66B)65C)56D)55
标准答案:
B
418)在32位编译器上,设有定义
char*str1=“Hello”,str2[]=”Hello”;
则以下语句
printf(”%d%d”,sizeof(str1),sizeof(str2));的输出结果是
A)56B)45C)66D)55
标准答案:
B
419)以下叙述中正确的是
A)任何情况下都不能用函数名作为实参
B)简单递归不需要明确的结束递归的条件
C)函数的递归调用不需要额外开销,所以效率很高
D)函数既可以直接调用自己,也可以间接调用自己
标准答案:
D
420)以下叙述中正确的是
A)在复合语句中不能定义变量
B)对于变量而言,“定义”和“说明”这两个实际上同一个意思
C)函数的形式参数不属于局部变量
D)全局变量的存储类别可以是静态类
标准答案:
D
421)设有定义语句:
char*aa[a]={“abcd”,”ABCD”};
则以下叙述正确的是
A)aa是指针变量,它指向含有两个元素的字符型数组
B)aa数组的值分别是字符串“abcd”和“ABCD”
C)aa数组的两个元素只能存放含有4个字符的一维数组的首地址
D)aa[0]存放字符串“abcd”的首地址
标准答案:
D
435)以下叙述中正确的是
A)#include
B)C语言的预处理不能实现宏定义和条件编译的功能
C)预处理命令行必须位于C源程序的起始位置
D)在C语言中,预处理命令行都以“#”开头
标准答案:
D
485)以下叙述错误的是
A、C程序对预处理命令行的处理是在程序执行的过程中进行的
B、在程序中凡是以“#”开始的语句行都是预处理令行
C、#defineMAX是合法的宏定义命令行
D、预处理命令行的最后不能以分号表示结束
490)若程序中有宏定义行:
#definedN100
则以下叙述中正确的是
A、在运行时用100替换标识符N
B、宏定义行中定义了标识符N的值为整数100
C、上述宏定义实现将100赋值给标识符N
D、在编译程序对C源程序进行预处理时用100替换标识符N
标准答案:
D
517)下面选项中关于编译预处理的叙述正确的是
A)预处理命令行不能出现在程序的最后一行
B)凡是以#号开头的行,都被称为编译预处理命令行
C)预处理命令行必须使用分号结尾
D)预处理命令行的作用域是到最近的函数结束处
标准答案:
B
518)以下叙述中正确的是
A)使用typedef说明新类型名时,其格式是:
typedef新类型名原类型名
B)在使用typedef改变原新类型的名称后,只能使用新的类型名
C)使用typedef说明新类型名时,后面不能加分号
D)在程序中,允许用typedef来说明一种新的类型名
标准答案:
D
519)以下叙述中正确的是
A)结构体类型中各个成分的类型必须是一致的
B)在定义结构体类型时,编译程序就为它分配了内存空间
C)结构体类型中的成分只能是C语言中预先定义的基本数据类型
D)一个结构体类型可以由多个称为成员(或域)的成分组成
标准答案:
D
520)以下叙述中正确的是
A)元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
B)结构体类型中的各个成分均不能是数组或指针
C)使用typedef定义新类型名后,新类型名与原类型名实际上是等价的
D)结构体类型的变量,不能在声明结构体类型组成时一起定义
标准答案:
C
521下面选项中关于位运算叙述中正确的是
A)右移运算时,高位总是补0
B)位运算的对象只能是整型或字符型数据
C)左移运算的结果总是原操作数据2倍
D)位运算符都需要两个操作数
标准答案:
B
522)下面选项中关于“文件指针”概念的叙述正确的是
A)文件指针就是文件位置指针,表示当前读写数据的位置
B)把文件指针传给fscaf函数,就可以向文本文件中写入任意的字符
C)文件指针指向文件在计算机中的存储位置
D)文件指针是程序中用FILE定义的指针变量
标准答案:
D
523)以下叙述中正确的是
A)在包含文件中,不得再包含其他文件
B)#include命令行不能出现在程序文件的中间
C)虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接
D)在一个程序中,允许使用任意数量的#include命令行
标准答案:
D
524)以下叙述中正确的是
A)函数的返回值不能结构体类型
B)结构体数组不能作为参数传给函数
C)在调用函数时,可以将结构体变量作为实参传给函数
D)函数的返回值不能是结构体指针类型
标准答案:
C
525)以下叙述中正确的是D
A)结构体变量的地址不能作为实参传给函数
B)结构体数组名不能作为实参传给函数
C)即使是同类型的结构体变量,也不能进行整体赋值
D)结构体中可以含有指向本结构体的指针成员
标准答案:
D
526)设有如下的说明和定义
struct{
inta;
char*s;}x,*p=&x;
x,a=4;
x,s=”hello”;
以下叙述中正确的是
A)语句++p—>a;的效果是使成员a增1
B)语句*p—>s++;等价于(*p)—>s++;
C)(p++)—>a与p++—>a都是合语法的表达式,但二者不等价
D)语句++p—>a;的效果是使p增1
标准答案:
A
527)下面关于位运算符的叙述,正确的是D
A)||表示“按位或”的运算
B)~表示“按位异或”的运算
C)#表示“按位异或”的运算
D)&表示“按位与”的运算
标准答案:
D
528)下面关于“EOF”的叙述,正确的是
A)EOF的值等于0
B)EOF是在库函数文件中定义的符号常量
C)对于文本文件,fget
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 概念 汇总