#include
{ char *p; int i;
p=(char*)malloc(sizeof(char)*20); strcpy(p,\;
for(i=6;i>=0;i--)putchar(*(p+i)); printf(\; free(p); }
第10章 复杂数据类型
一.选择题 1.有以下程序:
#include
{ struct STU{ char name[9]; char sex; double score[2]; }; struct STU a={\,'m',85.0,90.0},b={\,'f',95.0,92.0}; b=a;
printf(\,%c,%2.0f,%2.0f\\n\,b.name,b.sex,b.score[0],b.score[1]); }
程序的运行结果是________。 A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,f,95,92 D)Zhao,m,85,90
2.以下结构体类型说明和变量定义中正确的是。 A)typedef struct
{int n; char c;}REC; REC t1,t2; B)struct REC;
{int n; char c;}; REC t1,t2;
C)typedef struct REC ;
{int n=0; char c='A';}t1,t2; D)struct
{int n; char c;}REC; REC t1,t2;
3.若有以下语句
typedef struct S
{ int g;char h; }T; 以下叙述中正确的是
A)可用S定义结构体变量 B)可用T定义结构体变量
25
C)S是struct类型的变量 D)T是struct S类型的变量
4.下面结构体的定义语句中,错误的是________。
A)struct ord {int x;int y;int z;};struct ord a; B)struct ord {int x;int y;int z;}struct ord a; C)struct ord {int x;int y;int z;}a; D)struct {int x;int y;int z;}a;
5.有以下程序:
#include
{ int x,y;}data[2]={1,10,2,20}; main()
{ struct st *p=data;
printf(\,\,p->y); printf(\,(++p)->x); }
程序的运行结果是________。 A)10,1 B)20,1 C)10,2 D)20,2
6.设有定义:
struct complex
{int real,unreal;} datal={1,8},data2; 则以下赋值语句中错误的是
A)data2=data1; B)data2=(2,6);
C)data2.rea1=data1.real; D)data2.real=datal.unreal;
7.有以下程序
#include
{ int x,y;}dt[2]={1,2,3,4}; main() {
struct ord*p=dt;
printf(\;printf(\; }
程序运行后的输出结果是 A)1,2 B)4,l C)3,4 D)2,3
8.有以下程序
#include
26
{ int a, b; }data[2]={10,100,20,200}; main()
{ struct S p=data[1]; printf(\,++(p.a)); }
程序运行后的输出结果是 A)10 B)11 C)20 D)21
9.有以下定义和语句
struct workers
{int num;char name[20];char c; struct
{int day;int month;int year;}s; };
struct workers w,*pw; pw=&w;
能给w中year成员赋1980的语句是
A)*pw.year=1980; B)w.year=1980; C)pw->year=1980; D)w.s.year=1980;
10.假定已建立以下链表结构,且指针p和q已指向如下图所示的结点:
则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是 。 A)(*p).next=(*q).next; free(p); B)p=q->next; free(q); C)p=q; free(q);
D)p->next=q->next; free(q);
二.填空题 1.有以下程序:
#include
{ int num;double s;}REC;
void funl(REC x) {x.num=23;x.s=88.5;} main()
{ REC a={16,90.0); fun1(a);
printf(\,a.num); }
程序运行后的输出结果是______。
2.设有定义:
27
struct person
{ int ID;char name[12];}p;
请将scanf(\,_______);语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。
3.下列程序的运行结果为_______。
#include
{ int a; char b[10]; double c; }; void f(struct A *t); main()
{ struct A a={1001,\,1098.0);
f(&a);printf(\,%s,%6.1f\\n\,a.a,a.b,a.c); }
void f(struct A *t)
{ strcpy(t->b,\;}
4.以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据。请填空。
#include
{ int data;struct node *next;}; typedef struct node NODETYPE; main()
{ NODETYPE a,b,c,*h,*P;
a.data=10;b.data=20;c.data=30;h=&a; a.next=&b;b.next=&c;c.next=′\\0′; p=h;
while(p){printf(\,\,p->data);________;} printf(\; }
第11章 文件
一.选择题
1.下列关于C语言文件的叙述中正确的是________。
A)文件由一系列数据依次排列组成,只能构成二进制文件 B)文件由结构序列组成,可以构成二进制文件或文本文件 C)文件由数据序列组成,可以构成二进制文件或文本文件 D)文件由字符序列组成,其类型只能是文本文件
2.有以下程序:
#include
28