7.下列数组中定义正确的是( c)
A: int [1]a; B: float 1f[2]; C:double _arr[2];
D: fArr2 float [5];
8.以下能对一维数组a进行正确初始化的语句是(d )
A、int a[1][2]={0,0}; B、int a[10]={1}; C、int a(2)={0,1,2}; D、int a[]={1,2};
9.若用数组名作为函数调用的实参,传递给形参的是。( b)
A) 数组第一个元素的地址 B) 数组的地址
C) 组中全部元素的值 D) 数组最后一个元素的地址
10.以下程序段给数组所有的元素输入数据,请选择正确答案填入( a )
#include<stdio.h>
main()
{
int a[3],i=0;
while(i<3){
scanf("%d",___);
printf("%d\n",___);
i++;
}}
A. &a[i],a[i] B. &a[i+1],&a[i] C. a+i ,a D. &a[++i],a[i]
11.下列对选择排序描述正确的是( c)
A.只能操作整形数组 B 对所有字符数组无效
C.把最值选到对应的位置上去 D 数组元素大小必须有序
12. 若定义如下变量和数组,输出的结果是多少 ( )
int x[3][2]={1,5,4,2,1,6}; int i;
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
return 0;
A. 2 1 6 B. 4 2 1 C. 4 1 2 D. 5 4 2
13. 若有以下程序片段:
char str[ ]="ab\013\r\082\\\"";
printf("%d",strlen(str));
上面程序片段的输出结果是 (b )。( )
A. 4 B. 9 C. 10 D. 11
14.int nums[] = {9,8,6,5,1}; 假设nums[0] 的地址是:0xffc0 求nums[3]的地址是?( d)
A. 0xffc3 B. 0xffd2 C. 0xffcb D. 0xffcc
15.已知: int arr[3][4], int a = 2 则对数组元素引用错误的是( b )
A、arr[0][a*1] B、arr[1][a + 2] C、arr[4-a][0] D、arr[a*1][3]
16.以下对二维数组进行正确初始化的是(a )
A)int a[2][]={{1,2},{3,4}} B)int a[][3]={1,2,3,4,5,6};
C)int a[2][]={1,2,3,4,5,6}; D)int a[2][3]={{1,2},{3,4},{5,6};
17.若给出以下定义:
char a[ ]=”heima”;
char b[ ]={‘h',’e',’i',’m',’a’};
则正确的叙述为( d)。
A.数组a度大于数组b的长度 B. 数组a的长度小于数组b的长度
C.数组a和数组b等价 D. 数组a和数组b的长度相同
18.定义char ch[2] = {‘a’,’\0’}; char ch2[3] = {'c','d','e'};
printf("%s",ch2)输出的结果是多少?( a)
A、cde B.cde\0 C.cde\n D.cdea
19. 定义char *oldstr = "fengjie"; char newstr[20] = "aibanzhang";
如果oldStr[0]=’w’和newStr[0]=’q’的结果分别是?c
A、对 对 B.错 错
C、对 错 D.错 对
20.int *p;int a = 10;赋值正确的是?( d)
A: p = a; B:p = &NULL;C:*p = NULL D:p = &a
21. 若有说明:int *c; int a=1;int d; 以下正确的程序段是( d)。
A. c=&d; scanf("%d", &c); B. scanf("%d", &d); *c=d;
C. c=&d;*c=a;
D. c=&d;scanf("%d", *c);
22. 定义int a[2]={1,2} ,int (pa)[2]下面给pa赋值正确及获取2的值是?( b)
A.pa=&a; (*pa)[1] B. pa=&a; *pa[1] C. pa=a; (*pa)[1] D. pa=a; *pa[1]
23.如果要求定义一个不可变的变量a,那下面定义方法正确的是?(b )
A. const int const a = 6; B.const int a = 5;
C.int a; const int p = &a; D.int a; int const *p = *a;
24.定义int *p1; p1 = NULL; int a = 5; *p1 = a; printf("%p",p1);输出结果是(c )
A.NULL B.a的地址 C.空指针错误 D.野指针错误
25.char *fun(char *p){return p;},该函数的返回值为(b )
A)fun是一个char类型
B)指针变量p占用8个字节的存储空间
C)fun是一个指针类型
D)fun是一个整型
26.定义结如下结构体,sizeof(struct student) 打印的结果是多少?( d)
struct student{
char *name;
char sex;
int age;
};
A.3 B.24 C.12 D.16
27.定义 struct Student{ 结构体,下列结构体变量初始化正确的是( a )
int sno;
char name[21];
int age;
};
A.struct Student stu = {1,"fengjie",59};
B.struct Student stu1 = (struct Student)(1,"fengjie",59);
C.Student stu2 = {1,"fengjie",59};
D.Student stu3 = {struct Student}{1,"fengjie",59};
28.定义一个结构体 struct Car{
int lunzi;
int speed;
char *color;
}car1;
car1.color = “green”;
打印car1.color得到的结果是多少?a
A.运行报错 B. green C.white D.乱码
29.下列哪些类型的数据可以嵌套使用?( )
A.switch语句 B.枚举 C.结构体嵌套自身指针变量 D.宏定义
30. 定义typedef int ARRAY[5]; 使用ARRAY定义数组正确的是( b)
A. ARRAY a1={1,2,3,4,5}; B.ARRAY a1[5] = {1,2,3,4,5};
C.ARRAY[5] = {1,2,3,4,5}; D.ARRAY = {1,2,3,4,5};
31.#define M(x,y,z) x*z+y+z 输出结果是( )
main()
{
int a=2,b=1, c=4;
printf("%d\n", M(a+b,b+c, c+a));
}
A. 38 B. 19 C. 12 D. 17
32.typedef 与#define 描述正确的是什么?(a )
A.宏定义在编译之前进行替换,typedef在编译时替换
B.宏定义和typedef都是在编译之前进行替换
C.宏定义和typedef都是在编译的时候替换
D.宏定义在编译的时候替换,typedef定的新类型在编译之前替换
33.下列关于static和extern描述正确的是( d)
A. static不能修饰局部变量
B.static和extern都可以用来修饰全局变量
C.static可以修饰局部变量
D.extern修饰的函数是外部函数,static修饰的函数只能在当前文件访问
34.下列对文件操作步骤正确的是(a )
A.打开 操作 关闭。
B.操作 关闭。
C打开 操作。
D.操作
35.把a文件的数据读取,保存到B文件中 ( b)
A.a为输出,b为输入;
B.a为输入 ,b为输出;
C.a为输出 b为输出
D.为输入,b为输入;
|
|