一.选择题
1.以下哪一项不属于C语言内置的数据类型 ()
A.int
B.short
C.struct Str
D.float
答案:C
解析:C语言中内置的数据类型有:int short float double long char等,并不包含C选项中的 struct Str ,故选C
2.局部变量的作用域是()
A.main()函数内部
B.整个程序
C.main()函数之前
D.局部变量所在地局部范围
答案:D
解析:全局变量的作用域是整个程序而局部变量作用域是局部变量所在的局部范围,故选D
3.下列代码输出的结果是:
#include<stdio.h>
int num = 10;
int main(void)
{
int num = 1;
printf("num=%d",num);
return 0;
}
A.输出 1
B.输出 0
C.程序代码出现问题无法完成编译操作
D.什么都不输出
答案:A
解析:这里的变量 num 是全局变量,全局变量有一个特点就是当全局变量名与局部变量名冲突时优先选择局部变量,所以我们应该尽量避免变量名重复,故选A
4.字符串结束标志是()
A. '\0'
B. EOF
C. '0'
D. Space(空格)
答案:A
解析:在C语言中字符串的结束标志是 '\0' ,EOF是End Of File 的缩写代表文件结束标志其值为 -1 ,'0' 代表着字符 0 在ASCII码中字符串 0 的ASCII码值是 48 而 '\0' 的ASCII码的值是 0 ,故选A
5.关于数组描述错误的是()
A.数组是一组相同类型的组合
B.数组的下标是从0开始的
C.数组下标是从1开始的
D.如果需要初始化数组,可以不指定数组大小
答案:C
解析:数组下标是从0开始的而不是1,当我们初始化数组的时候可以不指定数组大小,C语言会根据数组大小自动指定
6.下列代码输出的结果是()
#include<stdio.h>
#include<string.h>
int main(void)
{
printf("%d\n",strlen("c:\test\121"));
return 0;
}
A.7
B.8
C.9
D.10
答案:A
解析:字符串 c:\test\121 中 \t 与 \121 是转义字符视作一个字符,除了这两个转义字符各占用一个字符后每一个字节各占一个字节所以故选择A
7.下列哪个选项不是转义字符
A.'\n'
B.'\060'
C.'\q'
D.'\b'
答案:C
解析:
A选项是换行转义字符,B选项是\ddd的转义字符,D选项是退格转义字符,故选C
8.下列代码输出的结果是什么()
#include<stdio.h>
#include<string.h>
int main(void)
{
char arr[] = {'y','o','u'};
printf("%d",strlen(arr));
return 0;
}
A.3
B.4
C.5
D.随机值
答案:D
解析:strlen()函数计算的是字符串长度,并不能计算数组长度,这里数组中是由三个字符 y o u 组成的,并不是字符串没有字符串结束标志 '\0' 所以 strlen() 函数会一直读取下去直到读取到内存中 '\0' 才会结束,所以输出的值也是随机值,故选D
2023/10/10
王起舟