a0y1a 发表于 2014-6-28 13:45:48

急!C语言期末考试题!求详细解答!!万分感激!

一 设typedef char STRING; STRING * s; 则 s 是() A 字符数组               B 字符变量 C 字符指针数组    D 字符指针变量 二 若某结构型指针变量p已经指向该结构型某数组,错误地引用该结构型数组元素成员的是()A (*p).成员名          B *(p+i).成员名C (p+i)->成员名      D p->成员名 三 为了存放一个人的身高、姓名和年龄,应该使用的数据类型是()A 一维数组   B 指向一维数组的指针变量C 结构型变量 D 结构型一维数组 四 以下关于结构型变量成员地址的引用方法中错误的是()A &结构型变量名.成员名B 结构型变量名.成员名C &结构型变量名D &结构型变量名.成员数组[下标 五 使用fopen(“123”, “45”)打开文件时,若1234文件不存在,则__ 六 以下程序运行后,输出结果是什么?# include <stdio.h># include <stdlib.h> int main(){    int i, n;    FILE * fp;     if((fp=fopen("d:\\temp.txt", "w+")) == NULL)    {      printf("can not set the temp file\n");      exit(0);    }     for(i=1; i<=10; i++)      fprintf(fp, "%4d", i);     for(i=0; i<5; i++)    {      fseek(fp, i*6L, SEEK_SET);      fscanf(fp, "%d", &n);      printf("%3d", n);    }     fclose(fp);}

戏++ 发表于 2014-6-28 13:45:49

1、A
2、B
3、C
4、B
5、误任何操作
6, 1 2 4 5 7

仰望天上的光 发表于 2014-6-28 18:52:32

一 . 所有答案都是错的,正确答案是:字符数组指针
二.四种写法都是对的
三 C
四 B
五 什么都不会发生
六 1245

戏++ 发表于 2014-6-28 19:33:37

第一题是   数组指针,
STRING * s;
char aa;
s=&aa;
编译通过,说明s 是只想 一个255个字符数组的指针, 勉强选D吧

a0y1a 发表于 2014-6-28 20:27:21

戏++ 发表于 2014-6-28 19:30 static/image/common/back.gif
1、A
2、B
3、C


你好,我想知道为什么输出的是1 2 4 5 7?虽然程序运行后输出的是确实是这几个数字,但是为什么?

戏++ 发表于 2014-6-29 12:34:20

a0y1a 发表于 2014-6-28 20:27 static/image/common/back.gif
你好,我想知道为什么输出的是1 2 4 5 7?虽然程序运行后输出的是确实是这几个数字,但是为什么?

   1   2   3   4   5   6   7   8   910
01234567890123456789012345678901234567890   偏移量

i=0fseek(fp, 0, SEEK_SET);    1
i=1fseek(fp, 6, SEEK_SET);    2
i=2fseek(fp, 12, SEEK_SET);   4
i=3fseek(fp, 18, SEEK_SET);   5
i=4fseek(fp, 24, SEEK_SET);   7


视频解说:
http://chinasvn.xicp.net/jt.asp?id=1


oggplay 发表于 2014-6-29 15:09:09

本帖最后由 oggplay 于 2014-6-29 15:46 编辑

#include <stdio.h>

typedef char STRING;   //为方便查看,我改成了 256

int main(void)
{
    STRING *s;
    STRING a="aaaaa",
         l[]={"hello","world"};
    printf("sizeof(a)=%lu\n",sizeof(a));
    s=&a;
    printf("s=%p\n*s=%s\n",s,*s);
    s=l;
    printf("s=%p\n*s=%s\n",s,*s);
    ++s;
    printf("s=%p\n*s=%s\n",s,*s);
    return 0;
}运行结果很明显 s 是指向 256 字节区块的指针,++s 的步进是 256 字节
第六题、
1 2 4 5 7



The fseek() function sets the file position indicator for the stream pointed to by stream.The new position, measured in bytes, is obtained by adding offset bytes to the position specified by whence.If whence is set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is relative to the start of the file, the current position indicator, or end-of-file,respectively.A successful call to the fseek() function clears the end-of-file indicator for the stream and undoes any effects of the ungetc(3)and ungetwc(3) functions on the same stream.



a0y1a 发表于 2014-6-29 15:58:18

戏++ 发表于 2014-6-29 12:34 static/image/common/back.gif
1   2   3   4   5   6   7   8   910
01234567890123456789012345678901234567890   偏移量



帅哥,视频是你录制的吗?真的是非常感谢!!!!

a0y1a 发表于 2014-6-29 15:59:35

oggplay 发表于 2014-6-29 15:09 static/image/common/back.gif
运行结果很明显 s 是指向 256 字节区块的指针,++s 的步进是 256 字节
第六题、
1 2 4 5 7


谢谢你解答!

a0y1a 发表于 2014-6-29 16:00:09

仰望天上的光 发表于 2014-6-28 18:52 static/image/common/back.gif
一 . 所有答案都是错的,正确答案是:字符数组指针
二.四种写法都是对的
三 C


非常感谢你细心的解答!!

戏++ 发表于 2014-6-29 16:53:44

a0y1a 发表于 2014-6-29 15:58 static/image/common/back.gif
帅哥,视频是你录制的吗?真的是非常感谢!!!!

哈哈是我录的啊,有帮助就行
页: [1]
查看完整版本: 急!C语言期末考试题!求详细解答!!万分感激!