C语言概念题

更新时间:2024-01-25 05:45:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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程序都需要编译链接无误后才能运行

- 1 -

标准答案: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

- 2 -

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函数中指定输入数据占的宽度

- 3 -

- 4 -

- 5 -

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?表示字符0 C)”a”表示一个字符常量 D)表达式:?a?>?b?的结果是“假” 标准答案:D

204、以下叙述中正确的是

A)字符常量可以参与任何整数运算 B)转义字符用@符号开头 C)字符变量在定义时不能赋初值 D)同一英文字符的大写和小写形式代表的是同一字符常量 253、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是 A)函数的实参和其对应的形参共占同一存储单元

B) 形参知识形式上的存在,不占用具体存储单元 C)函数的形参和实参分别占用不同的存储单元 D) 同名的实参和形参占同一存储单元 标准答案:C

- 6 -

以下叙述中正确的是

A int *p1, int **p2, int *p3;都是合法的定义指针变量语句 B 语句p==NULL;与p==\\0是等价的语句

C p==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 数组元素的下标下限由第一个非零元素的位置决定 D char c1,c2,*c3,c4[40];是合法的变量定义语句 答案:D

- 7 -

306 以下叙述中正确的是

A 语句char a[3];a=”AB”;是合法的,因为数组有三个字符空间的容量,可以保存两个 B 语句char a[2]={“A”,”B”}; 定义了一个包含两个字符的数组 C 语句 int a[]={0};是不合法的,遗漏了数组的大小 D 语句int a[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是非法的

311 int *func(int a[10], int n);则以下叙述中正确的是

A 说明中的a[10]改为a[]或*a效果完全一样

B func函数中不能对a进行移动指针(如a++)的操作

C 只有指向10个整数内存单元的指针,才能作为实参传递给形参 D 形参a对应的实参只能是数组名 答案:A

312 以下叙述中正确的是

A 语句int a[][3]={1,2,4,5};是错误的初始化形式

B 在逻辑上可以把二维数组看成是一个具有行和列的矩阵或表格 C 语句int a[4][3]={{1,2},{4,5}};是错误的初始化形式 D 语句 int a[4][3]={1,2,45,};是错误的初始化形式

361,以下选项中叙述错误的是

A C程序函数中定义的自动变量,系统不自动赋确定的初值 B C程序函数的形参不可以说明为static型变量

C C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

- 8 -

D 在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 标准答案 C

367,以下能正确定义字符串的语句是 A char str[]={?\\064?}; B char str=”\\x43”; C char str[]=”\\0”; D char str=? ?; 标准答案 C

368,以下关于字符串的叙述中正确的是

A 两个字符串中的字符个数相同时才能进行字符串大小的比较 B C语言中有字符串类型的常量和变量 C 空串比空格打头的字符串小

D 可以用关系运算符对字符串的大小进行比较 标准答案 C

374,设有如下程序段 #include

char s[20] =”Beijing”, *p; p=s;

则执行p=s;语句后,以下叙述正确的是

A 数组s中的内容和指针变量p中的内容相同 B s数组中元素的个数和p所指字符串长度相等 C s和p都是指针变量 D 可以用*p表示s[0] 标准答案 D

379,以下正确的字符串常量是 A 01ympic Games B “\\\\\\” C ?abc? D “ “

410)以下叙述中正确的是

A)字符串常量“str1”的类型是:字符串数据类型

B)有定义语句:char str1[ ] = “str1”;数组str1将包含4个元素

C)字符数组的每个元素可存放一个字符,并且最后一个元素必须是?\\0?字符 D)下面的语句用赋初值方式来定义字符串,其中?\\0?是必须的

char str1[ ]={?s?,?t?,?r?,?1?,?\\0?}; 标准答案:D

411)以下叙述中正确的是

A)char *ca[3] = {“A ”,”B”,”CCC”};是不合语法的 B)char ca[3][5] = {“A ”,”B”,”CCC”};是不合语法的

C) 字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组 D)char ca[ ][5] = {“A ”,”B”,”CCC”};;是不合语法的

标准答案:D

412)以下叙述中正确的是

- 9 -

A)函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位) B)当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间 C)两个字符串可以用关系运算符进行大小比较

D)C语言本身没有提供对字符串进行整体操作的运算符 标准答案:D

413)以下叙述中正确的是

A)函数体中的语句不能出现对自己的调用 B)如果函数带有参数,就不能调用自己 C)函数名代表函数的入口地址

D)所有函数均不能接受函数名作为实参传入 标准答案:C

414)以下叙述中正确的是

A)只要是用户定义的标识符,都有一个有效的作用域 B)局部变量不能被说明为static

C)只有在函数内部定义的变量才是局部变量

D)只有全局变量才有自己的作用域,函数中的局部变量没有作用域 标准答案:A

415)以下叙述中正确的是

A)不能用字符串常量对字符数组名进行整体赋值操作

B)字符串常量“Hello”会被隐含处理成一个无名字符型数组,它有5个元素 C)char *str;str = “Hello”;与char str[];str = “Hello”;效果是一样的 D)char str[7] =”string!”;在语法上是合法的,运行也是安全的 标准答案:

416)以下叙述中正确的是

A)对于字符串常量”string!”;系统已自动在最后加入了?\\0?字符,表示串结尾 B)对于一维字符数组,不能使用字符串常量来赋初值

C)语句char str[10] = ”string!”;和char str[10] = {”string!”};并不等价

D)在语句char str[10] = ”string!”;中,数组str的的大小等于字符串的长度 标准答案:A 417)设有定义

char str[] = “Hello”; 则语句

printf(“%d %d”,sizeof(str),strlen(str));的输出结果是

A) 6 6 B)6 5 C)5 6 D)5 5 标准答案:B

418)在32位编译器上,设有定义

char *str1 = “Hello”,str2[]=”Hello”; 则以下语句

printf(”%d %d”,sizeof(str1),sizeof(str2));的输出结果是

A) 5 6 B) 4 5 C)6 6 D)5 5 标准答案:B

419)以下叙述中正确的是

A)任何情况下都不能用函数名作为实参 B)简单递归不需要明确的结束递归的条件

C)函数的递归调用不需要额外开销,所以效率很高

- 10 -

本文来源:https://www.bwwdw.com/article/plcw.html

Top