一、选择题(共30分,每小题2分)
试题 1
假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为( )。
选择一项:
a.
struct BOOK *x=malloc(book);
回答正确
b.
struct BOOK x={"C++ Programming",27.0};
c.
struct BOOK *x=malloc(sizeof(struct BOOK));
d.
struct BOOK *x=&book;
反馈
正确答案是:struct BOOK *x=malloc(book);
试题 2
假定有“struct BOOK{char title[40]; float price;} book;”,则正确的语句为( )。
选择一项:
a.
struct BOOK x= &book;
b.
struct BOOK *x=&book;
回答正确
c.
struct BOOK x=calloc(BOOK);
d.
struct BOOK *x=BOOK;
反馈
正确答案是:struct BOOK *x=&book;
试题 3
在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是( )。
选择一项:
a.
句点
b.
冒号
c.
分号
回答正确
d.
逗号
反馈
正确答案是:分号
试题 4
假定一个结构类型的定义为 “struct A{int a,b; double c;};”,则该类型的长度为( )。
选择一项:
a.
8
b.
10
c.
12
d.
16
反馈
正确答案是:16
试题 5
假定一个结构类型的定义为 “struct D{int a; D* next;};”,则该类型的长度为( )。
选择一项:
a.
4
b.
8
回答正确
c.
12
d.
16
反馈
正确答案是:8
试题 6
假定要访问一个结构指针变量x中的数据成员a,则表示方法为( )。
选择一项:
a.
x.a
b.
x->a
回答正确
c.
x(a)
d.
x{a}
反馈
正确答案是:x->a
试题 7
与结构成员访问表达式x.name等价的表达式为( )。
选择一项:
a.
x->name
b.
&x->name
c.
(&x)->name
回答正确
d.
(*x)->name
反馈
正确答案是:(&x)->name
试题 8
假定一个链表中结点的结构类型为“struct AA{int data, struct AA *next;};”,则next数据成员的类型为( )。
选择一项:
a.
struct AA
b.
struct AA*
c.
AA
d.
int
反馈
正确答案是:struct AA*
试题 9
假定一个链表的表头指针为f,结点中包含有data和next域,则向该链表的表头插入一个地址为p的结点时,应执行的操作为( )。
选择一项:
a.
p->next=f
b.
p->next=f和f=p
回答正确
c.
f=p->next
d.
f->next=p和f=p
反馈
正确答案是:p->next=f和f=p
试题 10
标准输入设备键盘的文件流标识符是( )。
选择一项:
a.
stdin
回答正确
b.
stdout
c.
stderr
d.
stdio
反馈
正确答案是:stdin
试题 11
表示文件结束符的符号常量为( )。
选择一项:
a.
eof
b.
Eof
c.
EOF
回答正确
d.
feof
反馈
正确答案是:EOF
试题 12
C语言中打开一个数据文件的系统函数为( )。
选择一项:
a.
fgetc()
b.
fputc()
c.
fclose()
d.
fopen()
回答正确
反馈
正确答案是:fopen()
试题 13
从一个数据文件中读入以换行符结束的一行字符串的系统函数为( )。
选择一项:
a.
gets()
b.
fgets()
回答正确
c.
getc()
d.
fgetc()
反馈
正确答案是:fgets()
试题 14
向一个二进制文件中写入信息的函数fwrite()带有的参数个数为( )。
选择一项:
a.
1
b.
2
c.
3
d.
4
回答正确
反馈
正确答案是:4
试题 15
在C语言中,为只写操作打开一个文本文件的方式为( )。
选择一项:
a.
"a"
b.
"r+"
c.
"r"
d.
"w"
回答正确
反馈
正确答案是:"w"
二、判断题(共40分,每小题2分。叙述正确则回答“是”,否则回答“否”)
试题 16
在结构类型的定义中,其中的数据成员可以是本身类型的直接对象。
选择一项:
对
错
反馈
正确答案是“错”。
试题 17
在结构类型的定义中,允许出现结构类型不完整的超前定义。
选择一项:
对
错
反馈
正确答案是“对”。
试题 18
定义结构类型的变量时,不能够同时进行初始化。
选择一项:
对
错
反馈
正确答案是“错”。
试题 19
使用一个结构类型时,必须一起使用关键字struct和类型标识符。
选择一项:
对
错
反馈
正确答案是“对”。
试题 20
假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为12。
选择一项:
对
错
反馈
正确答案是“对”。
试题 21
假定一个结构类型的定义为 “struct B{int a[5]; char* b;};”,则该类型的长度为20。
选择一项:
对
错
反馈
正确答案是“错”。
试题 22
执行calloc(n,8)函数调用时,将动态分配得到8*n个字节的存储空间。
选择一项:
对
错
反馈
正确答案是“对”。
试题 23
执行malloc(sizeof(struct BB))函数调用时,得到的动态存储空间能够保存具有struct BB结构类型的一个对象。
选择一项:
对
错
反馈
正确答案是“对”。
试题 24
假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为x.a。
选择一项:
对
错
反馈
正确答案是“错”。
试题 25
假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b。
选择一项:
对
错
反馈
正确答案是“错”。
试题 26
与结构成员访问表达式(*fp).score等价的表达式是fp->score。
选择一项:
对
错
反馈
正确答案是“对”。
试题 27
在C语言中,对二进制文件的所有不同打开方式共有6种。
选择一项:
对
错
反馈
正确答案是“对”。
试题 28
C语言中的标准输入和输出设备文件都属于字符文件。
选择一项:
对
错
反馈
正确答案是“对”。
试题 29
在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。
选择一项:
对
错
反馈
正确答案是“错”。
试题 30
在数据文件打开方式字符串中,字符r、w和a具有确定的含义,分别代表读、写和追加方式。
选择一项:
对
错
反馈
正确答案是“对”。
试题 31
一个磁盘数据文件的文件名由文件主名和扩展名所组成,其中间用圆点分开。
选择一项:
对
错
反馈
正确答案是“对”。
试题 32
C语言系统中提供一个用来描述文件属性的类型标识符为FILE。
选择一项:
对
错
反馈
正确答案是“对”。
试题 33
每次只能向文本文件中写入一个字符,不能一次写入一个字符串。
选择一项:
对
错
反馈
正确答案是“错”。
试题 34
对二进制文件进行读和写操作将使用相同的系统函数。
选择一项:
对
错
反馈
正确答案是“错”。
试题 35
在C语言中,系统函数fseek()用来移动数据文件中的文件位置指针。
选择一项:
对
错
反馈
正确答案是“对”。
三、写出下列每个程序运行后的输出结果(共15分,每小题5分)
试题 36
#include<stdio.h>
struct Worker {
char name[15]; //姓名
int age; //年龄
float pay; //工资
};
void main() {
struct Worker x={"wanghua",52,4300};
struct Worker y, *p;
y=x; p=&x;
printf("%s %d %6.2f\n",x.name,y.age,p->pay);
}
wanghua 52 4300
反馈
wanghua 52 4300
试题 37
#include<stdio.h>
#include<string.h>
struct Worker {
char name[15]; //姓名
int age; //年龄
float pay; //工资
};
void main() {
struct Worker x;
char *t="liouting";
int d=38; float f=3493;
strcpy(x.name,t);
x.age=d; x.pay=f;
printf("%s %d %6.0f\n",x.name,x.age,x.pay);
}
liouting 39 2493
反馈
liouting 39 2493
试题 38
#include<stdio.h>
struct Worker {char name[15]; int age; float pay;};
int Less(struct Worker r1, struct Worker r2) {
if(r1.age<r2.age) return 1; else return 0;
}
void main() {
struct Worker a[4]={{"abc",25,2420},{"def",58,4638},
{"ghi",49,4260},{"jkl",36,3750}};
struct Worker x=a[0];
int i;
for(i=1; i<4; i++)
if(Less(x,a[i])) x=a[i];
printf("%s %d %6.0f\n",x.name,x.age,x.pay);
}
def 58 4638
反馈
def 58 4638
四、写出下列每个函数的功能(共15分,每小题5分)
试题 39
void QA(struct Worker a[], int n) {
int i;
for(i=1; i<n; i++)
scanf("%s %d %f",&a[i].name,&a[i].age,&a[i].pay);
}
假定结构类型struct Worker 的定义如下:
struct Worker { char name[15]; int age; float pay;};
从键盘输入n个worker类型的记录到一组数组a中。
反馈
从键盘输入n个Worker类型的记录到一维数组a中。
试题 40
int Count(struct IntNode *f)
{ //f为指向一个单链表的表头指针
int c=0;
while(f) {
c++;
f=f->next;
}
return c;
}
假定struct IntNode的类型定义为:
struct IntNode {int data; IntNode* next;};
Count函数可以统计单链表的结点个数,其表头指针为f
反馈
统计出以表头指针为f的链表中结点的个数。
试题 41
void xw1(char* fname) {
FILE* fout=fopen(fname,"w");
char a[20];
printf("每个字符串长度小于20,字符串end作为结束标志\n");
while(1) {
scanf("%s",a);
if(strcmp(a,"end")==0) break;
fputs(a,fout);
fputc('\n',fout);
}
fclose(fout);
}
xw1函数可以输入若干字符串保存到fname所指定的文件中,直至遇到字符串end
反馈
把从键盘上输入的若干个字符串保存到由fname参数所指定的文本文件中。
发表评论 取消回复