1.C程序由函数所组成。(对)
2.main
函数是C程序的主函数。(对)
3.所有的C程序都有且只有一个main
函数。(对)
4.C程序是从main
函数开始执行的。(对)
5.不同类型的变量,在内存中占用相同大小的空间。(错)
6.在 C 程序中,APH 和 aph 代表不同的变量。(对)
7.程序设计语言必须具备数据表达和流程控制的功能。(对)
8.C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。(对)
9.在 C 程序中,9ab
是非法的用户标识符。(对)
10.在C程序中,用户自定义标识符的第一个字符可以是数字。(错)
11.任何表达式语句都是表达式加分号组成的。(对)
12.增1减1运算符的前缀运算和后缀运算的表达式值是相同的。(错)
13.语句printf("%.2f",1.0/3);
输出为0.33
。(对)
14.C语言中,当int型与double型数据进行算术运算时,数据类型由double型向int型转换。(错)
15.C 语言中的变量名不区分大小写。(错)
16.在程序中插入适当的注释,用来说明程序的功能,可以使程序容易被人理解。(对)
17.程序编译时,将对程序的注释进行处理。(错)
18.调用printf
函数前,应使用编译预处理命令#include <stdio.h>
。(对)
19.除了复合语句,C语言中的所有语句都必须以分号结束。(对)
20.C语言中不能用printf
函数输出字符。(错)
21.程序与数据一样,共同存储在存储器中。当程序要运行时,当前准备运行的指令从内存被调入CPU中,由CPU处理这条指令。这种将程序与数据共同存储的思想就是目前绝大多数计算机采用的( )模型的存储程序概念。
冯•诺伊曼
22.C 风格的注释,也称块注释或多行注释,以 ▁▁▁ 开始,以 ▁▁▁ 结束。/* 和 */
23.C语言的编译预处理功能包括()。
文件包含。宏定义。条件编译。
24.return 语句可以出现在函数的任何地方(对)
25.函数定义可以在主函数前面也可以在主函数后面。(对)
26.函数应该以它们调用的顺序来定义。(错)
27.函数总是返回一个整型数据。(错)
28.C语言程序是从源文件的第一条语句开始执行的。(错)
29.C语言中的基本数据类型包括( )。
整型。字符型。浮点型
30.在for(表达式1;表达式2;表达式3)中,如果表达式2为空,表示循环条件默认为真。(对)
31.C语言中的字符常量指单个字符,用一对单引号及其所括起的字符来表示。(对)
32.在C语言中转义字符可以算是多个字符,如'\101’。(错)
33.可以使用圆括号改变运算符的运算次序。(对)
34.表达式的值只能是1或者0。(错)
35.在C语言中,"A"和'A'等价。(错)
36.数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。(对)
37.字符串常量在内存中的存放位置由系统自动安排。(对)
38.如果函数的返回类型是指针,则可以返回函数内部任意变量的地址。(错)
39.数组定义后,数组名的值是一个地址,可以被修改。(错)
40.C语言里数组元素的下标是从1开始的。(错)
41.字符串常量实质上是一个指向该字符串首字符的指针常量。(对)
42.数组的下标可以是一个表达式,但是表达式计算得到的值必须是一个整数。(对)
43.在C语言中,数组名是一个常量,不能被赋值。(对)
44.在switch语句中必须要有default语句。(错)
45.break语句可以用在循环体和switch语句中,但continue语句只可以用在循环体中。(对)
46.函数调用strcat(strcpy(str1,str2),str3)的功能是将字符串str2复制到str1中,然后再将字符串str3连接到str1之后。
47.字符串一定要记得给‘\0’留个位置
48.函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。(对)
49.语句int *p, q, r;
定义了3个指针变量。(错)
50.如果函数的返回类型是指针,则可以返回函数内部任意变量的地址。(错)
51.对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。(对)
52.数组定义 char a[10]; 占内存10个字节.(对)
53.语句int *p;
和printf("%d",*p);
中的*p含义相同。(错)
54.专门存放地址的变量,称为指针变量(对)
55.数组定义 int a(10);是正确的.(错)
56.在C语言中,如果我们声明了一个指针变量但没有给它赋值,那么它将自动指向程序的开始部分。(错)
57.指针变量可以用来存储数组的地址,通过指针变量可以访问和操作数组元素。(对)
58.数组说明 int a[3][]={1,2,3,4,5}; 是正确的.(错)
59.宏名必须用大写字母表示。(错)
60.在switch语句中,不一定使用break语句。(对)
61.用链表代替数组进行数据操作时,查询更加方便。(错)
62.在switch语句中,必须使用default。(错)
63.数组定义后,数组名的值是一个地址,可以被修改。(错)
64.c语言中三种循环语句可以相互嵌套。(对)
65.C语言中的预处理命令都以“#”开头。(对)
66.结构体类型本身不占用内存空间,结构体变量占用内存空间。(对)
67.C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。(对)
68.定义指针函数变量后,将一个函数名赋值该指针变量,要求函数的参数个数、类型一致。(对)
69.while和for语句的循环体至少执行一次。(错)
70.C程序中的注释部分不会参与程序的编译和执行。(对)
71.对于一维数组,例如:int arr[3]; 则arr[3]表示数组的第3个元素。(错)
72.当一个C语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。(错)
73.函数的嵌套就是在一个函数中定义另外一个函数。(错)
74.结构体中的成员变量可以是数组。(对)
75.指针所占内存的大小由其指向的数据类型的大小决定。(错)
76.设有数组定义: char array [ ]="hello"; 则数组 array所占的空间为5.(错)
77.数组说明 int a[3][]={1,2,3,4,5}; 是正确的.(错)
78.数组说明 int a[3,3]={1,2,3,4,5,6}, 是正确的.(错)
79.两个字符串中的字符个数相同时才能进行字符串大小的比较(错)
80.continue语句不只用于循环语句中.(错)
81.循环嵌套中,内外层循环控制变量可以使用相同名,不会造成混乱.(错)
82.开关语句switch最多可形成三个分支.(错)
83.在C语言中,逻辑"真"等价于不等于0的数.(对)
84.一个C程序必须由一个或一个以上的函数组成.(对)
85.只能函数的外面定义函数,不能在函数内部嵌套定义函数。(对)
86.指向结构体变量的指针可以作函数参数,实现传址调用。(对)
87.对于结构数组s,可以引用数组的元素s[i],但不可以引用s[i]中的结构成员。(错)
88.将一个函数说明为static后,该函数将 ( )。
只能被同一源文件中的函数调用,不能被其他源文件中的函数调用
89.结构化程序设计的3种结构是( )。
顺序结构,选择结构,循环结构
90.C语言的简单数据类型包括整型、浮点型、字符型。
91.关于变量的生存期和作用域,下列说法正确的是:变量生命周期是指变量从定义开始分配存储单元到运行结束存储单元被回收的整个过程。
92.用链表代替数组进行数据操作时,查询更加方便。(错)
93.结构体变量可以作数组元素。(对)
94.结构体类型本身不占用内存空间,结构体变量占用内存空间。(对)
95.在定义结构类型时,关键字struct
和它后面的结构名共同组成一个新的数据类型名。(对)
96.以“a”方式打开一个文件时,文件指针指向文件首。(错)
97.C系统的标准输出文件stdout是指显示器。(对)
98.指向数组元素的指针只可指向数组的首元素。(错)
99.一般不能用任何一个文本编辑器打开二进制文件进行阅读。(对)
100.二进制文件名不能用.txt
作为扩展名,否则二进制文件读写函数fread和fwrite将出错。(错)
101.当fopen函数打开文件失败时,返回给文件指针的值是NULL。(对)
102.对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同。(对)
103.二维数组定义的一般形式如下,其中的类型名指定数组中每个元素的类型。
类型名 数组名[行长度][列长度];
(对)
104.对二维数组初始化时,也可以采用如下顺序赋初值的方式,即在定义数组时,根据数组元素在内存中的存放顺序,把初值表中的数据依次赋给元素。
类型名 数组名[行长度][列长度] = {初值表};
(对)
105.若有定义char* p="computer";则表示p的值是字符串" computer "。(错)
106.C语言中的移位运算符(如<<
、>>
)只能用于整型(如int
、short
、long
、char
等),不能用于浮点型(如double
、float
)。(对)
107.
若要用下面的程序片段使指针变量p
指向一个存储浮点型变量的动态存储单元:
float *p;
p=____(float *)______ malloc( sizeof(float));
108.若有函数max(a,b)
,并且已使函数指针变量p
指向函数max
,当调用函数时,正确的调用方法是(*p)(a,b);
109.函数调用不可以做一个函数的形参。
110. C语言程序是从源文件的第一条语句开始执行的。(错)
111.C语言源代码可以不经过编译而被计算机直接运行。( )。(错)
112.C语言中以 %x
开头的数是十六进制整数。(错)(是格式化说明符,并不是数字的开头)
113.C语言中018
是合法的八进制整数。(错)
114.十六进制数0x11
的十进制数是17。(对)
115.C语言中 0xe
是合法的十六进制整数。(对)
116.八进制数011
的十进制数是9。(对)
117.执行以下初始化后,bi的值是0x5678
。(对)
short bi = 0x12345678L;
118.字符‘\0’的ASCII码值是0。(对)
119.表达式0195是一个八进制整数。(错)
120.若有定义:char ch='\105’;则变量ch中包含4个字符。(错)(一个字符)
121. 空语句不是一条合法的语句,因为它没有作用。(错)
122.在 C 程序中, 常量10.0
是单精度浮点类型的数据。(错)
123.double a = 5E-3;
是非法语句。(错)
124.在C语言中,长整型、短整型数据在内存中都占2个字节。(错)
125.C程序中的main函数必须放在整个程序的最前头。(错)
126."a"是合法的字符常量。(错)
127.C语言中的转义字符‘\n’表示的功能是换行。(对)
128.C语言标识符中,大小写字母没有区别。(错)
129.在C语言中,单精度的浮点类型用double表示。(错)
130.C语言中的转义字符‘\t’表示的功能是换行。(错)
131.printf函数输出数据时会根据格式控制符自动进行数据类型转换。(错)
132.sizeof( )
不是函数。(对)
133.在C语言中,"A"和'A'等价。(错)
134.C语言中,字符型数据可以和整型数据进行相互转换。(对)
135.C语言的头文件的扩展名是.c(错)
136.C语言中,一个程序文件中只能有一个main函数(对)
137.C语言程序中的注释必须位于语句之后(错)
138.C语言每行只能写一条语句。(错)
139.C语言中的预处理命令都以“#”开头。(对)
140.调用输入输出库函数时,编译预处理命令为#include <stdio.h>
。(对)
141.在程序中使用头文件stdio.h时,#include <stdio.h>
是正确的预处理指令,而#include “stdio.h”
不是正确的预处理指令。(错)
142.系统默认的C语言源程序扩展名为.c,需经过_____编译、连接_____后,生成.exe文件,才能运行。
143.C语言的简单数据类型包括整型、浮点型、字符型
144.字符常量:
145.字符 char 类型的变量占用 ▁▁▁1▁▁ 字节内存空间。
146.单精度实数 float 类型的变量占用 ▁▁4▁▁▁ 字节内存空间。
147.八进制数011
的十进制数是9。(对)
148.表达式(x == 0)
与表达式(!x)
等价。(对)
149.表达式 (3==x==3)
的值恒为0。(对)
150.表达式(a^a)
的值恒为0(对)因为对于 a
的每一位,与自身进行异或操作,相同位异或结果必然为 0。
151.表达式 ( (ch = getchar() ) != '\n')
是关系表达式。(对)
152.在C 语言中,常量和变量都有数据类型。(对)
153.运算符“+”不能作为单目运算符。(错)
154.C语言中的移位运算符(如<<
、>>
)只能用于整型(如int
、short
、long
、char
等),不能用于浮点型(如double
、float
)。(对)
155.C语言中的变量名属于标识符。(对)
156.'a’和“a”是完全等价的常量。(错)
157.C语言中变量名r和R表示同一个变量。(错)
158.c语言中运算符%的优先级高于&&。(对)
159.在C语言中一个字符型变量中可以存放多个字符。(错)
160.在C语言中转义字符可以算是多个字符,如'\101’。(错)
161.实型数据可以进行求余数运算%(错)
162.可以使用getchar函数输入一个字符串。(错)getchar
函数每次只能读取一个字符
163.在逻辑运算符中,逻辑非(!)的优先级别最高。(对)
164.
▁▁main▁▁▁ 不是C关键字(保留字)。
int extern break main
165.
下面对C语言特点,不正确的描述是(C )。
A.C语言兼有高级语言和低级语言的双重特点,执行效率高
B.C语言既可以用来编写应用程序,又可以用来编写系统软件
C.C语言的可移植性较差
D.C语言是一种结构式模块化程序设计语言
166.若表达式sizeof(int)
的值为2,则int
类型数据可以表示的最大整数为()。
因为字节数是2,一个字节占八位,2*8=16,所以是2的15次方-1.
167.完成C源程序编辑后,到生成执行文件,C语言处理系统必须执行的步骤依次为( 编译、连接)
168.以下运算符优先级按从高到低排列正确的是算术运算、关系运算、赋值运算
169.C/C++语言中,要求运算对象只能为整数的运算符是%
170.在C语言中,数字029是一个非法数
171.scanf()函数在读不到数据时返回EOF
172.字符串 "ABCD" 长度为4个字符,
占用内存 5个字节,
这些字节的值依次是65,66,67,68,0。
注:请填十进制数,以西文逗号间隔,不留空格。大写字母 A 的 ASCII 码为 65。
173.在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(对)
174.if(a=5) 是允许的。(对)
175.break语句只能用于循环语句中。(错)
176.在switch语句中,可以根据需要使用或不使用break语句。(对)
177.在switch语句中,不一定使用break语句。(对)
178.在switch语句中,case后若没有break,则顺序向下执行。(对)
179.在if语句中,必须出现else。(错)
180.switch语句中default语句是必须的。(错)
181.switch语句中多个case标号可以共用一组语句。(对)
182.判断字符串a和b是否相等的表达式为if (a==b)。(错)
183.else 总是与它上面最近的且尚未配对的 if 配对。(对)
184.在c程序中,else的个数不能多于if的个数。(对)
185.switch语句中,每一个case的冒号后面都允许跟有多条语句。(对)
186.switch(x)中的x可以是整型、字符型或者浮点型变量(错)
187.continue 不是结束本次循环,而是终止整个循环的执行。(错)
188.do-while循环的while后的分号可以省略。(错)
189.do-while循环至少要执行一次循环语句。(对)
190.C语言的三种循环不可以互相嵌套。(错)
191.continue 只能用于循环体中。(对)
192.在多层循环中, 一个break语句只向外跳一层。(对)
193.循环体如包括有一个以上的语句,则必须用一对大括号{}括起来,组成复合语句,复合语句在语法上被认为是一条语句。(对)
194.执行以下while语句,将出现死循环。(对)
s = 0;
i = 1;
while(1){
if(i > 10){
continue;
}
s = s + i;
i++;
}
195. do-while循环的while后的分号可以省略。(错)
196.对for(表达式1;;表达式3)可理解为for(表达式1;1;表达式3)。(对)
197.在C语言的嵌套循环结构中,任何一层循环中的brea语句都可以结束整个嵌套循环的执行。(错)
198.for语句循环体可能一次也不执行。(对)
199.在循环结构中使用break语句或者continue语句,其作用是相同的。(错)
200.在定义c语言的变量时,不能用关键字作为自定义的标识符(对)
201.如果要求在if
后一对括号中的表达式在表示a
不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为a.
202.switch 语句的case 后面只能是常量表达式
203.C语言中while和do-while循环的主要区别是do-while的循环体至少无条件执行一次
204.要求通过 while 循环不断输出字符,当读入字母 N 时结束循环。若变量已正确定义,下列程序段正确的是
while ( (ch = getchar( )) != 'N')
printf("%c", ch);
205.可以这样写:case 9:case 10:k=5;break;
206.C语言中要实现多分支结构, 除了用嵌套的if语句实现外, 还可以用if-else | if else语句和switch-case | switch case | switch | if-switch | if switch语句实现。
207.while语句的一般形式如下,当表达式的值为“真”时,循环执行,直到表达式的值为“假”,循环中止并继续执行while的下一条语句。(对)
while (表达式)
循环体语句
208.case语句后如没有break,顺序向下执行。(对)
209.for语句的一般形式如下,若表达式2的值为“假”,则结束循环。(对)
for (表达式1; 表达式2; 表达式3)
循环体语句
210. continue 只能用于循环体中。(对)
211.int x; 计算(double)x后,x的类型为double。(错)
212.在 C 程序中,APH 和 aph 代表不同的变量。(对)
213.假设某段C语言程序中定义了三个变量a
、b
和c
并且三个变量都不为0,则表达式a / b * c
和a * c / b
是等价的,其值相同。(错)
214.default 在switch选择结构中是必须的。(错)
215.在嵌套循环语句中,里层的循环语句里有break语句,那执行该语句时,是跳出全部循环。(错)
216.若变量已正确定义并赋值,符合C语言语法的表达式是 a=3,5
a=2++(++和别的符号不能放在一起)a=a+1=3(不能连等)12.3%4(%
取模运算符只能用于整数类型)
217.在一个函数内部调用另一个函数的调用方式称为嵌套调用。(对)
218.局部变量如果没有指定初值,则其初值不确定。(对)
219.寄存器类变量的作用域和寿命与自动类变量的相同。(对)
220.静态变量的作用域是整个文件。(错)
221.当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区。(错)
222.函数的形参都属于全局变量。(错)
223.实参向形参进行数值传递时,数值传递的方向是单向的,即形参变量值的改变不影响实参变量的值。(对)
224.C语言程序中,在函数内定义的变量称为局部变量。(对)
225.可以在一个函数中定义另一个函数 。(错)
226.按照C语言的规定,实参和形参的命名不得重复。(错)
227.C 语言程序中可以有多个函数 , 但只能有一个主函数。(对)
228.自动变量如果没有赋值,其值被自动赋为0。(错)
229.静态局部变量如果没有赋值,其存储单元中将是随机值。(错)
230.递归调用算法与相同功能的非递归算法相比,主要问题在于重复计算太多,而且调用本身需要分配额外的空间、传递数据和控制,所以时间和空间开销通常都比较大。(对)
231.递归的执行速度并不快,但递归代码比较紧凑,并且比相应的非递归代码更易于编写与理解。(对)
232.函数一次可以返回两个以上的值。(错)
233.在调用一个函数的过程中又出现直接或间接地调用该函数本身,这称为函数的递归调用。(对)
234.函数声明时,可以不声明形参的变量名,但不能不声明类型。(对)
235.全局变量不可以和函数内的局部变量同名。(错)
236.函数定义时,括号中的参数是形式参数;而函数调用时括号中的参数是实际参数。(对)
237.在C程序中,main函数必须位于源程序的最前面(错)
238.在C程序中,函数可以嵌套调用,但不可以嵌套定义。(对)
239.如果函数定义出现在函数调用之前,可以不必加函数原型声明。(对)
240.C语言函数返回类型的默认定义类型是void。(错)
241.函数形参的存储单元是动态分配的。(对)
242.函数的实参可以是常量,变量或表达式。(对)
243.函数返回值的类型是由在定义函数时所指定的函数类型。(对)
244.C语言中函数返回值的类型是由(定义函数时所指定的函数类型 )决定的。
245.函数调用结束后,形式参数释放内存
246.C语言中有两种类型的函数,分别是标准库函数与自定义函数
247.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是单向值传递
248.下面函数调用语句含有实参的个数为( 2)
func((a,b,c,d),(e,f,g));
249. 如果在一个函数的复合语句中定义了一个变量,则该变量只在该复合语句中有效,在该复合语句外无效
250.递归函数的两个要素是边界条件、递归方程
251.从变量的存储类型来看,不能对变量进行初始化的是extern
252.在C语言中,表示静态存储类别的关键字是: static
253.一个C程序的执行是从main函数开始,到main函数结束。
254.C语言的全局变量的初始化是在以下哪个阶段完成的:main()
函数开始前
255.在一个C源程序文件中,如要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的类型修饰是:static
256.如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为:静态变量
257.C语言中函数返回值的类型是由以下( 函数定义时指定的类型)决定的。
258.以下描述错误的是( D)。
A.函数调用可以出现在执行语句中
B.函数调用可以出现在一个表达式中
C.函数调用可以作为一个函数的实参
D.函数调用可以作为一个函数的形参
259.凡是函数中未指定存储类别的局部变量,其隐含的存储类型为自动(auto)
260.将一个函数说明为static后,该函数将只能被同一源文件中的函数调用,不能被其他源文件中的函数调用
261.在一个源文件中定义的全局变量的作用域是从定义该变量的位置开始到本文件结束。
262.在对数组全部元素赋初值时,不可以省略行数,但能省略列数。(错)
263.数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。(对)
264.如果strcmp(s1,s2)返回的结果为0,表示字符串s1和s2不相同。(错)
265.数组定义后,数组名的值是一个地址,可以被修改。(错)
266.字符串常量就是用一对双引号括起来的字符序列,它有一个结束标志 '\0'
。(对)
267.数组的长度可以是变量。(错)
268.C语言中字符串常量是用双引号括起来的。(对)
269.c语言的数组下标从0开始。(对)
270.数组初始化时,初始值个数小于数组元素的个数,C语言自动将剩余的元素初始化为初始化列表中的最后一个初始值。(错)
271.对于定义int a[5];可以通过语句scanf("%d",a);输入全部元素的值。(错)
272.char s[80]; s="hello";这样赋值是可以的。(错)
273.char s1[80],s2[80];s1=s2;这样赋值是正确的。(错)
274.若字符数组s1和s2中均已正确存储字符串,则可以使用 if(s1>s2) 进行两字符串大小的比较。(错)
275.数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址,是一个常量,不能被修改。(对)
276.字符串比较的规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。(对)
277.在对全部数组元素赋初值时,可以不指定数组长度。(对)
278.有定义:int a[3]; 则定义了a[1]、a[2]、a[3]三个数组元素。(错)
279.一个数组中的每个成员都必须具有相同的数据类型,用数组名加不同的序号即下标来区分数组中的各元素。(对)
280.对于定义 char str[] = "abc\000def\n"
(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是:3 ,9
281.下述对C语言字符型数组的描述中正确的是( B)
A.任何一个一维数组的元素在引用时,其下标可以是整型、实型或字符型常量
B.一维数组的元素实质上就是一个变量,代表内存中的一个存储单元
C.如果要引用数组中的每一个元素,则直接使用该数组名称即可
D.以上都不对
282.若用数组名作为函数调用的实参,传递给形参的是数组的首地址
283.若使用一维数组名作函数实参,则以下正确的说法是在被调函数中,与该实参相对应的形参必须是指针型变量
284.设char cs[20]="\ta\017bc";则函数strlen(cs)的返回值为(5 )
285.设有数组定义:char carray[]="hello";则数组carray所占的空间为( 6个字节)
286.在C/C++语言中引用数组元素时,数组下标的要求,下列选项中最合适的是( 整型表达式) 。
287.
以下对字符数组进行初始化,错误的是(B )。
A.char c1[3]={'1','2','3'};
B.char c2[3]="123";而这里定义的字符数组 c2
长度为 3
,字符串 "123"
加上末尾的 '\0'
实际需要 4
个字符的存储空间
C.char c3[ ]={ '1','2','3','\0'};
D.char c4[ ]="123";
288.设有定义语句“char s[12] = "string" ;”,则语句“printf("%d\n",strlen(s));”的输出是( 6)。
289.
有定义语句“char s[10];”可以把字符串常量"123456"赋值给字符数组s的语句正确的是 ( C)。
A.s[]="123456";
B.s="123456";
C.strcpy(s,"123456");
D.strcmp(s,"123456");
290.如果有声明 int a[] = {2, 4, 6, 8, 10},*p = a;a 的值是数组的首地址,那么 *(p++) 的值是 4。(错)
291.语句int *p, q, r;
定义了3个指针变量。(错)
292.语句int *p;
和printf("%d",*p);
中的*p含义相同。(错)
293.可以将一个整型数据赋给一个指针变量,如p=3000。(错)
294.指针变量中保存的肯定是一个地址。(对)
295.指针变量的使用方法与普通变量一致,都可以进行赋值和取值操作。(对)
296.指针变量可以用来存储数组的地址,通过指针变量可以访问和操作数组元素。(对)
297."a" 和 'a'是等价的。(错)
298.语句printf("%d",strlen("China")); 的输出结果为6(错)
299.c语言对数组下标越界不作检查。(对)
300.在C语言中,数组名是一个常量,不能被赋值。(对)
301.在C语言中,函数的参数可以是数组名,表示在函数中新建一个数组,并完成值的传递。(错)
302.下列关于指针的用法中错误的是int i = 5,*p; *p = &i;
303.对于基类型相同的两个指针变量,不能进行的运算是+
304.执行语句“char c[10]={"abcd"},pc=c;”后,表达式“(pc+4)”的值是'd'
305.若有以下定义和语句,则表达式“p2-p1”的值是5
int a[10], *p1,*p2;
p1=a;
p2=&a[5];
306.
如果有函数char *func(char *p, char ch),则下面说法错误的是( C)
A.
函数返回一个字符指针
B.
可以通过语句"return NULL;"返回函数结果
C.
可以通过语句"return -1;"返回函数结果
D.
可以通过语句"return p;"返回函数结果
307.若有说明int a[10], *p=a;,则对数组元素引用不正确的是p + 2
308.对于下面代码,*p 是什么?5
int a[5] = {2, 3, 4, 5, 6}, *p = &a[2] + 1;
309.若有以下变量定义
double x, *y;
x 是 实型变量,y 是 实型指针.
340.
设有定义:
int a[3]={1,2,3},*p,b;
p=a;
(*p)++;
p++;
b=*p;
a[0]的值为 2
b的值为 2
p+1指向元素a[2]
341.p[i]还可以用*(p+i)指针形式来表示(对)
342.指针数组的每个元素都是一个指针变量。(对)
343.对于定义int a[5],*p=a;
后,*(p+1)
和*(a+1)
的值是相同的。(对)
344.若有定义char* p="computer";则表示p的值是字符串" computer "。(错)
345.int (p)[4]它表示p是一个指针数组,它包含4个指针变量元素。(错)
346.char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。(对)
347.int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。(错)
348.数组的基地址是在内存中存储数组的起始位置,数组名本身就是一个地址即指针值。(对)
349.字符串常量实质上是一个指向该字符串首字符的指针常量。(对)
350.语句 int *p[5];
定义了一个指针数组p
,用于指向一个有5个元素的数组。(错)
351.定义一个指针数组并初始化赋值若干个字符串常量,则指针数组并不存放这些字符串,而仅仅指向各个字符串。(对)
352.调用printf函数,%s的格式输出字符串时,字符数组名、字符指针和字符串常量都可以作为输出参数。(对)
353.判断字符串a是否大于b,可以表示为 if (strcmp(a,b)>0)(对)
354.以数组名作函数参数时,实参数组与形参数组都不必定义长度,因为实参与形参的结合方式是地址结合,与数组长度无关。(对)
355.
以下哪个定义中的p
不是指针,请选择恰当的选项:C
A.char **p;
B.char (*p)[10];
C.char *p[6];
D.给出的三项中,p
都是指针
356.设有变量定义:int a[5]={5,4,3,2,1}, ∗p=a; 则执行语句 p+=2;后,∗p的结果是3
357.变量的指针是指变量的( 地址)。
358.若有语句“int a[3][4]={{1,3,5,7},{2,4,6,8}};”,则 *(*a+1)
的值为( 3) 。
359.若有语句int a[3][4], *p=&a[0][0];
则与*(*(a+1)+2)
等价的是 ( a[1][2])。
360.若有语句“int a[3][4];”,则与*(a+1)+2等价的是 (&a[1][2] )。
361.执行语句char a[10]={"abcd"}, *p=a;
后,*(p+4)
的值是( '\0')。
362.若变量已正确定义并且指针p
已经指向变量x
,则*&x
相当于(x )。
363.若有定义int a[2][3];
则对a
数组的第i
行第j
列元素值的正确引用是( *(*(a+i)+j))
364.若有定义int (*p)[4];
则标识符p
(是一个指针,它指向一个含有四个整型元素的一维数组 )
365.若有定义int a[4][5];
下列语句中(++a )是存在语法错误的。
366.若有定义int s[4][5],(*ps)[5]=s;
则对s数组元素的正确引用是( ps[0][2])。
367.char s[6] ; s="ABCDE";是错误的
s
是一个数组名,它在 C 语言中代表的是数组的首地址,并且是一个常量,不能作为左值进行赋值操作。
数组名本身是一个不可修改的常量,它在程序的编译阶段就已经被确定了地址,不能被重新赋值为另一个地址。
368.若有定义char *cc[2]={"1234","5678"};
以下叙述中正确的是( A)。
A.cc数组的两个元素中各自存放了字符串"1234"和"5678"的首地址
B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
C.cc是指针变量,它指向含有两个数组元素的一维字符数组
D.cc数组元素的值分别是"1234"和"5678"
369.根据声明int (*p)[10]
, p
是一个指针
370.下面程序段中,for循环的执行次数是( 6)。
char *s = "\ta\018bc";
for (; *s != '\0'; s++ )
printf( "*" );
八进制转义字符必须是 \0
后跟 0-7 的数字。
371.若有定义“int k[ 2][3], * pk[ 3];”, 则下列语句中正确的是(B)。
A.pk =k;
B.pk[0] =&k[1][2];
C.pk= k[0];
D.pk[1]=k;
372.若有定义int a[2][3]={2,4,6,8,10,12};
则*(&a[0][0]+2*2+1)
的值是12,*(a[1]+2)
的值是12。
373.函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。(对)
374.定义指针函数变量后,将一个函数名赋值该指针变量,要求函数的参数个数、类型一致。(对)
375.char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。(对)
376.直接访问就是直接利用变量的地址直接进行访问。(对)
377.关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。(错)
378.可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。(对)
379.变量定义:int **pp;中,定义了整型变量**pp。(错)
380.语句int *p; *p = 50;
执行时,不会有任何错误。(错)
381.要通过函数调用来改变主调函数中某个变量的值,可以把指针作为函数的参数。(对)
382.字符串常量实质上是一个指向该字符串首字符的指针常量。(对)
383.调用printf函数,%s的格式输出字符串时,字符数组名、字符指针和字符串常量都可以作为输出参数。(对)
384.调用strcmp函数比较字符串大小时,通常较长的字符串会较大。(错)
385.对于 int
型的二级指针变量,它既可以指向同类型的一级指针变量,也可以指向同类型的普通(非指针)变量。(错)
386.如果函数的返回类型是指针,则可以返回函数内部任意变量的地址。(错)
387.对于定义int a[5],*p=a;
后,*(p+1)
和*(a+1)
的值是相同的。(对)
388.在用数组名作函数参数时,下面两种函数声明是有区别的。
①void fun(int arr[], int n);
②void fun(int *arr, int n) ;(错)
389.语句int *pa[6];
定义了含有6个元素的一维数组pa
,每个元素是一个指向整型对象的指针变量。(对)
390.语句int (*pb) [6];
定义了一个指针变量pb
,它是一个指向数组的指针,指向的是长度为6的int
型数组。(对)
391.定义一个指针数组并初始化赋值若干个字符串常量,则指针数组并不存放这些字符串,而仅仅指向各个字符串。(对)
392.字符串常量实质上是一个指向该字符串首字符的指针常量。(对)
393.在C程序中,变量须遵循先定义后使用的原则,使用指针变量前,必须先对它们进行定义。(对)
394.枚举类型中的元素都具有一个整型值。(对)
395.调试就是在程序中查找错误并修改错误的过程。(对)
396.设置断点并观察变量,是程序调试的常用方法之一。(对)
397.单步跟踪(Trace Step by Step)是常用的程序调试方法,即一步一步跟踪程序的执行过程,同时观察变量的变化情况。(对)
398.结构体类型本身不占用内存空间,结构体变量占用内存空间。(对)
399.结构体变量可以作数组元素。(对)
400.指向结构体变量的指针可以作函数参数,实现传址调用。(对)
401.结构是变量的集合,可以按照对同类型变量的操作方法单独使用其成员变量。(对)
402.C语言中的结构体类型属于一种构造类型。(对)
403.一个结构体类型中的各个成员的类型必须是相同的。(错)
404.在定义结构类型时,关键字struct
和它后面的结构名共同组成一个新的数据类型名。(对)
405.在对结构变量操作时,.
被称为成员或者分量运算符。(对)
406.在使用结构指针时,->
被称为指向运算符。(对)
407.在说明语句“ int *f( );”中,标识符 f 代表是(一个返回值为指针型的函数名 )
408.若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用函数时,正确的调用方法是((*p)(a,b);)。
409.若有函数max(a,b)
,为了让函数指针变量p指向函数max,正确的赋值方法是( p=max;)。
410.在基类型相同的两个指针变量之间,不能进行的运算是( +)。
411.若有以下说明: int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w; 则数值为4的表达式是p[1][1]
412.若有定义int a[2][3];
则对a
数组的第i
行第j
列元素地址的正确引用是(a[i]+j)。
413.若有定义int(*p)();
标识符p可以( 指向函数的入口地址)
414.若有定义“int k[ 2][3], * pk[ 3];”, 则下列语句中正确的是(pk[0] =&k[1][2];)
415.已知有声明“char a[]="program",*p=a+1;”,则执行以下语句不会输出字符a的是 putchar(*p+4);
416.如有语句“int x,y=0,z,*p[3]; p[0]=&x; p[1]=&y; p[2]=&z;”,以下表达式中有语法错误的是 p++
417.设有如下定义,则对data中的a成员的正确引用是( B)。
struct sk { int a; float b; } data, p = &data;
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
418.在条件表达式(exp)?a:b中,表达式(exp)与表达式(exp!=0)完全等价。(对)
419.一个C语言程序中可以有多个main函数(主函数)。(错)
420.在计算机内部,一切信息(包括数值、字符、指令等)的存储、处理与传送均采用二进制的形式。(对)
421.typedef
可以简化声明:比如定义typedef unsigned long long* ulp_t;
之后unsigned long long* a, b;
可以简写成ulp_t a, b;(错)
422.
语句int (*pb) [6];
定义了一个指针变量pb
,它是一个指向数组的指针,指向的是长度为6的int
型数组。(对)
423.break和continue都可以用在循环体中和switch 语句中。(错)
424.for循环是先执行一次循环体,再进行循环条件判断的。(错)
425.在嵌套循环语句中,里层的循环语句里有break语句,那执行该语句时,是跳出全部循环。(错)
426.char* str;一定是表示定义一个字符串。(错)
427.结构体成员的类型可以不是基本数据类型。(对)
428.break语句不能与以下哪个语句配对使用if…else
429.double 类型变量的字长为 ▁8▁▁▁▁ 字节。
430.下叙述中不正确的是(B)。
A.一个结构体类型可以由多个称为成员(或域) 的成分组成
B.在定义结构体类型时,编译程序就为它分配了内存空间
C.结构体类型中的成员可以是C语言中预先定义的基本数据类型,也可以是数组和结构。
D.结构体类型中各个成员的类型可以是不一致的
431.若有定义char *str[]={“Python”, “SQL”, “JAVA”, “PHP”, “C++”}; 则表达式*str[1] > *str[3]比较的是:字符S和字符P
432.以下关于switch分支语句的说法,正确的是D
A.switch分支语句中的case标签必须是连续的整数。
B.switch分支语句中的case标签可以是字符串。
C.switch分支语句中,case标签可以是浮点型。
D.D. switch分支语句中,case分支如果没有break语句,代码易出现错误。
433.若有语句 int a[][3]={1,2,3,4,5,6,7}; ,则a数组高维的大小是3
434.关于return的说法,错误的是?B
A.函数执行时遇到return,不管其内是否还有未执行的代码,都会结束函数调用;
B.函数执行时遇到return,会先执行剩余的代码后再结束函数调用;
C.函数中可以使用多个return;
D.一个函数只能return一个值;