内容发布更新时间 : 2024/11/19 10:33:26星期一 下面是文章的全部内容请认真阅读。
高级语言程序设计综合练习一 学号: 姓名:
7. C语言规定结构体变量系统分配给它的存储空间是( )
A)该结构体中最后一个成员所需的存储空间 B)该结构体中所有成员所需存储空间的总和。 C)该结构体中第一个成员所需的存储空间
D)该结构体中占用最大存储空间的成员所需的存储空间
8. 当说明一个共用体变量时,系统分配给它的内存是:( )
A:各成员所需内存量的总和
B:共用体中第一个成员所需内存量
C:成员中占内存量最大者所需的内存量 D:共用体中最后一个成员所需内存量
9. 以下对C语言中共用体类型数据的叙述正确的是:( )
A:可以对共用体变量名直接赋值
B:一个共用体变量中可以同时存放所有成员 C:一个共用体变量中不能同时存放其所有成员 D:共用体类型定义中不能出现结构体类型的成员
10. 若有以下定义和语句: union data { int i; char c; float f; }a;
则以下语句正确的是:( )
A:a=5 B:printf(\ C:a={2,'a',1.2};
11. 根据以下定义,能输出字母M的语句是( ) struct person { char name[9];int age;}; struct person class[10]={ “John”,17, “Paul”,19, “Mary”,18, “Adam”,16,}; A.printf(“%c\\n”,class[3].name); B.printf(“%c\\n”,class[3].name[1]); C.printf(“%c\\n”,class[2].name[1]); D.printf(“%c\\n”,class[2].name[0]);
12.有如下定义:
struct date { int y ;
int m ; int d ;}; struct person
{ char name[20];
D:n=a 29
高级语言程序设计综合练习一 学号: 姓名:
char sex;
struct date birthday; }a;
对结构体变量a的出生年份进行赋值时,下面正确的赋值语句是( )。 A y =1958 B birthday.y=1958
C a.birthday.y =1958 D a.y =1958
13.有以下程序段
typedef struct node { int data;
struct node *next; }NODE; NODE *p;
以下叙述正确的是( )
A)NODE *p;语句出错 B)p 是指向struct node 结构体变量的指针的指针
C)p 是struct node 结构体变量 D)p 是指向struct node 结构体变量的指针
14.以下关于typedef 的叙述错误的是( )
A) typedef只是将已存在的类型用一个新的名字来代表 B) 用typedef可以增加新类型
C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D)用typedef为类型说明一个新名,通常可以增加程序的可读性
15.下面程序的运行结果是( )
union un
{ int a; int b; int c;}; main()
{ union un u;
u.a=1; u.b=2; u.c=3;
printf(“a=%d,b=%d,c=%d\\n”,u.a,u.b,u.c); }
A)a=3,b=3,c=3 B)a=1,b=2,c=3 C)a=1,b=1,c=1 D)a=2,b=2,c=2
(第9章 结构体与联合体)参考答案
一、单选题
答案: 1D 2 B 3 C 4 D 5 D 6 D 7B 8C 9 C 10 B 11 D 12 C 13D 14B 15A
二、程序填空
30
高级语言程序设计综合练习一 学号: 姓名:
已知head 指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。下面的sum函数是求出链表中所有结点数据域值的和,作为函数值返回。请填空完善程序。
struct link { int data;
struct link *next;} main() { struct link *head; int s; ┆
s=sum(head); /*head 是指向已知单向链表的头结点*/ ┆ }
int sum( 【1】 ) {
struct link *p; int s=0; p=head->next; while(p)
{ s+= 【2】 ; p= 【3】 ; } return(s); }
二、程序填空 答案:【1】struct link *head 【2】 p->data 【3】 p->next
C语言程序设计练习题7
第10章 文 件
一、单选题
1.利用C语言的文件操作,可以把数据永久保存在:( )
A.磁盘 B.内存 C.屏幕 D.键盘
2.若有程序片段 FILE *fp; fp=fopen(“a.txt”,”r”); 则以下说法中正确的是:( )
A.fp指向磁盘文件a.txt的地址
B.fp指向磁盘文件a.txt 所对应的FILE 结构 C.如果fp不为NULL,表示文件打开失败 D.可以利用fp指针对文件a.txt进行写操作
3.fopen函数的作用是:( ) A.将文件的内容读入内存 B.读出文件的大小
C.建立与文件关联的FILE结构体变量并返回该结构体变量的地址 D.向文件写数据
4.已知fp是一个指向已打开文件的指针,ch是一个字符型变量,则ch=fgetc(fp)的作用是:( )
31
高级语言程序设计综合练习一 学号: 姓名:
A.获取键盘输入的字符,并赋值给ch
B.获取fp所指向的文件的第一个字节的内容,并赋值给ch
C.获取fp所指向的文件的当前文件位置指针所指向的一个字节的内容,并赋值给ch
D.将ch的值输出到fp所指向的文件中
6、若执行fopen函数时发生错误,则函数的返回值是________________ 。
A)地址值 B)0 C)1 D)EOF
7、若要用fopen函数打开一个新的二进制文件,该文件要求既能读也能写,则打开方式字符串应是_______。
A)”ab+” B)”wb+” C)”rb+” D)”ab”
8、若以“a+”方式打开一个已存在的文件,则以下叙述正确的是______________。
A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B)文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C)文件打开时,原有文件内容删除,只可作写操作
D)以上各种说法皆不正确
9、当顺利执行了文件关闭操作时,fclose函数的返回值是_______________。
A)-1 )TURE C)0 D)1
10、已知函数的调用形式:fread (buffer,size,count,fp);其中buffer代表的是____________。
A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件
C)一个指针,指向要读入数据的存放地址
D)一个存储区,存放要读的数据项
11、fscanf函数的正确调用形式是_________________。 A)fscanf (fp,格式字符串,输出表列); B)fscanf(格式字符串,输出表列,fp); C) fscanf(格式字符串,文件指针,输出表列) D)fscanf(文件指针,格式字符串,输入表列)
12、fwrite函数的一般调用形式是______________。 A)fwrite(butter, count, size fp); B) fwrite(fp, size, count, butter);
C) fwrite(fp, count, size, butter); D) fwrite(butter, size, count, fp); 13、fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是____________。 A)只写 B)追加 C)读或读写 D)答案B和C都正确
14、若调用fputc函数输出字符成功,则其返回值是___________。
32