1.下面哪个不是C语言内置的数据类型:
A .char
B .double
C .struct Stu
D .short
解析:数据类型分:(1).内置的:char、short、int、long、long long、float double
(2).自定义的:结构体、枚举等 自己创造的 都不是内置的 答案:C
2.局部变量的作用域是:
A .main函数内部
B .整个程序
C .main函数之前
D .局部变量所在的局部范围
解析:z也是局部变量,它的作用域就不再main函数内部,A是错的 答案:D
3.下面代码输出的结果是:
#include <stdio.h>
int num = 10;
int main()
{
int num = 1;
printf("num = %d\n", num);
return 0;
}
A . 程序有问题,不能编译
B .输出1
C .输出10
D .输出0
解析:局部变量和全局变量相同时,局部优先 B
4.关于数组描述错误的是:
A .数组是一组相同类型元素的集合
B .数组的下标是从1开始的
C .数组的下标是从0开始
D .数组如果初始化,可以不指定数组的大小
解析:D选型是正确的,不初始化的话,数组的大小是根据初始化内容决定的 B
5.下面代码的结果是:
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = {'b', 'i', 't'};
printf("%d\n", strlen(arr));
return 0;
}
A .3
B .4
C .随机值
D .5
解析:arr[] 没有初始化,但是放了三个字符,所以这个数组是三个元素,
strlen 求字符串的长度,它求的方式是数字符串,直到数到字符串的结束标志\0为止
这个数组的后面还有很大的空间,\0的位置不可知,所以返回值是随机值 C
6.C语言中下面哪个数组的创建错误的:
A .int arr[10] = {0}
B .int n = 10; int arr[n] ={0}
C .int arr[] = {1,2,3,4,5,6,7,8,9,0}
D .char ch[10] = "hello bit"
解析:
A:除了初始化的,其余默认元素都是0
B:这个是错误的,
int n = 10; int arr[n] ={0}
这种情况在支持C99中,也是不能够初始化的,所以B不对 B
7.下面程序的结果是:
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n", strlen("c:\test\121"));
return 0;
}
A .7
B .8
C .9
D .10
解析:\121 是\ddd 模式的 八进制数 。 \t、\121 都是1个字符
8.下面哪个不是关键字:
A.int
B.struct
C.define
D.continue
解析: define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是