1、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( )
A
char s[10]="abcdefg";
B
char t[]="abcdefg",*s=t;
C
char s[10];s="abcdefg";
D
char s[10];strcpy(s,"abcdefg");
数组名是一个指针常量,char *const s,指针的指向是不可以修改的,指针指向的内容是可以修改的。字符串"abcdefg"代表一个地址,不能改变一个指针的指向,所以c选项错误。
2、对于代码段
1 2 3 |
|
则i和j的值分别是1和0。请问这句话是正确的吗?
A
正确
B
错误
3、sizeof函数无法访问静态区。sizeof函数是在编译时计算数据类型或变量占用的内存空间大小,它只对数据类型和变量进行静态分析,在编译阶段就已经确定了。静态区是在程序运行时分配的存储区域,sizeof函数无法获取动态分配的内存空间大小。
4、
int a=4,则对于表达式++(a++)的结果说法正确的是()
A
结果为5
B
结果为6
C
结果为7
D
以上不都是
a++的结果是4,然后进行++4是不对的,++运算只是针对于变量的,不能对常量来进行++运算。
5、
有以下程序
1 2 3 4 5 6 |
|
程序运行后的输出结果是()
A
6,1
B
2,1
C
6,0
D
2,0
逻辑与&&运算认为0为假,非0为真
6、
阅读以下程序,当输入数据的形式为25,13,10↙,正确的输出结果为()
1 2 3 4 5 |
|
A
x+y+z=48
B
x+y+z=38
C
x+y+z=35
D
无法确定
7、
"++"运算符的优先级比"+"运算符的优先低。请问这句话的说法是正确的吗?
A
正确
B
错误
++分为前置和后置,前置++比+运算优先级高,后置比+运算符优先级低。
8、
strcpy()过程能够防止字符串被拷贝到较小的内存区域中去。
A
是
B
否
strcpy 函数由于不对数组边界进行检查,而非常容易造成各种
缓冲区溢出的漏洞。这些漏洞很容易被利用,而造成严重的系统问题。在使用 strcpy 函数时,要小心谨慎。
9、
C库函数中malloc依赖下面哪个系统调用增长堆空间()
A
open
B
ioctl
C
sbrk
D
write
10.
对于 32 位机器,则下面代码输出结果为()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
A
40
B
4
C
8
D
0
data[0] 是一个柔性数组,柔性数组默认是不占用内存的,因此 desc_t 的大小即为指针大小,32 位机器上为 4 字节,无需额外对齐
11、
共同体变量所占的内存长度一定等于最长的成员的长度。请问这句话的说法是正确的吗?
A
正确
B
错误
union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点: 1.一般而言,共用体类型实际占用存储空间为其最长的成员所占的存储空间; 2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例int a[5]为4)不满足整除关系,该最大空间自动延伸;
12、
下列main()函数执行后的结果为()
1 2 3 4 5 6 7 8 9 10 11 |
|
A
-1
B
0
C
1
D
2
13、
C 语言中的文件类型只有( )
A
索引文件和文本文件两种
B
文本文件一种
C
二进制文件一种
D
ASCII码文件和二进制文件两种
从文件编码的方式来看,文件可分为ASCII码文件(文本文件)和二进制文件两种。ASCII码文件可在屏幕上按字符显示的,例如源程序文件就是ASCII码文件,由于按字符显示,可以识别;二进制文件是按二进制的编码方式来存放文件的,二进制文件虽然也可以在屏幕上显示,显示为乱码。
14、
有如下一段程序:
1 2 3 4 5 |
|
则以下不合法的是()
A
int (*p)(float) = &f1;
B
pf = &f4;
C
pf = &f2;
D
pf = f3;
函数指针变量的声明方法为:
函数指针所指向的函数,返回值类型,形参列表必须完全匹配,对函数指针赋值可以采用以下方式pf=&p1或者pf=p1
15、
9.
以下正确的说法是( )。
A
用户调用标准库函数前,必须重新定义
B
若已包含标准库头文件及相关命名空间,用户也可以重新定义标准库函数,但是该函数将失去原有含义
C
若已包含标准库头文件及相关命名空间,则系统不允许用户重新定义标准库函数
D
用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中