二级C语言-26
(总分79, 做题时间90分钟)
一、选择题
1. 
若有如下说明,则_______的叙述是正确的。
    struct st
    { int a;
      int b[2];
    }a;
A. 结构体变量a与结构体成员a同名,定义是非法的
B. 程序只在执行到该定义时才为结构体st分配存储单元
C. 程序运行时为结构体st分配6个字节存储单元
D. 类型名struct st可以通过extern关键字提前引用(即引用在前,说明在后)
A  B  C  D 
    分值: 1
答案:D
[解析] 结构体变量a与结构体成员a同名是合法的定义,引用成员a的方法是aa,变量a处于不同的“层次”上,系统完全能够分情。st是一个结构体名,不会为结构体名分配存储空间,应该是在运行时为结构体变量a分配6个字节的存储单元,故选项B和选项C错误。
2. 
下列有关数据库的描述,正确的是
A. 数据库是一个DBF文件 
B. 数据库是一个关系 
C. 数据库是一个结构化的数据集合 
D. 数据库是一组文件
A  B  C  D 
    分值: 1
答案:C
[解析] 数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”之特点。
3. 
若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为       
A. a<>0 
B. !a 
C. a=0 
D. a
A  B  C  D 
    分值: 1
答案:D
4. 
下列能正确定义一维数组的选项是   
A. int a[5]={0,1,2,3,4,5}; 
B. char a[]={0,1,2,3,4,5}; 
C. char a={'A','B','C'}; 
D. int a[5]="0123";
A  B  C  D 
    分值: 2
答案:B
[解析] 在定义数组时,如果赋给的初始值个数大于数值的长度,这样就会越界,因此选项A)错误;选项 C中定义的是一个字符变量C;选项D)中整型数组a中只能存储整型数据,而不能存储字符串常量“0123”。
5. 
函数rewind的作用是
A. 使文件位置指针重新返回文件的开始位置 
B. 将文件位置指针指向文件中所要求的特定位置 
C. 使文件位置指针指向文件的末尾 
D. 使文件位置指针自动移至下一个字符位置
A  B  C  D 
    分值: 1
答案:A
[解析] 函数rewind的功能是将文件指针重新指向一个流的开头。用法如下:
   int rewind(FILE * stream);并且无返值。
6. 
下述程序的输出结果是
    #include<stdio.h>
    void main()
    {  int a[5]={2,4,6,8,10};
    int*p=a,**q=&p;
    printf("%d,",*(p++));
    pfintf("%d",**q);}
A. 4,4 
B. 2,2 
C. 4,5 
D. 2,4
A  B  C  D 
    分值: 2
答案:D
[解析] 考查一维数组的指针和指向指针的指针两个知识点。
   [解题要点] 通过赋值,指针p和q都指向了数组a的首地址,*(p++)先引用数组元素,然后p++,所以输出结果为2,**q指向的数组元素为4。
   [考点链接] 通过建立一个指针数组来引用二维数组元素。
7. 
若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是
A. EOF 
B. -1 
C. 1 
D. NULL
A  B  C  D 
    分值: 2
答案:C
[解析] EOF是文本文件的文件结束标志,NULL是打开文件错误的时候返回值。foef(fp)用来判断文件位置指针是否在文件末尾,文本文件和二进制文件均可以使用此函数。如果遇到文件结束就返回1,否则返回0。
8. 
有以下程序:
    #include<stdio.h>
    main()
    {    char c1, c2, c3, c4, c5, c6;
    scanf("%c% c% c%c", &c1, &c2, &c3, &c4);
    c5=getchar(); c6=getchar();
    putchar(c1); putchar(c2);
    printf("%c% c\n", c5, c6);
    }
    程序运行后,若从键盘输入(从第1列开始):
    123<回车>
    45678<回车>
    则输出结果是
A. 1267 
B. 1256 
C. 1278 
D. 1245
A  B  C  D 
    分值: 2
答案:D
[解析] putchar(c1)输出1,putchar(c2)输出2,printf("%c% c\n", c5, c6)输出45。
9. 
以下程序的输出结果是   
    #include<stdio.h>
    int a[3][3]={1,2,3,4,5,6,7,8,9},*p;
    main()
    {    p=(int*)malloc(sizeof(int));
    f(p,a);
    printf("% d\n",*p);
    free(p);c语言return的用法和搭配
}
    f(int *s,int p[][3])
    *s=p[1][1];)
A. 1 
B. 4 
C. 7 
D. 5
A  B  C  D 
    分值: 2
答案:D
[解析] 本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。
10. 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。