C考试系统题库含答案程序题 下载本文

内容发布更新时间 : 2024/12/23 6:47:07星期一 下面是文章的全部内容请认真阅读。

}

main ( )

{static struct complx za = {3,4}; static struct copmlx zb = {5,6}; struct complx z, x, y; z=cmult(); cpr (za, zb, z); }

F3以下程序的输出结果为“4,2”,请将程序补充完整。 #include main()

{enum color {Red, White=<3>, Blue, Green=1, Yellow}; enum color p;

=&c1; c1=Blue; c2=Yellow;

printf(\}

F4 以下程序中,main函数调用add函数能求出单向链表中所有节点数据域的和并存放在sum中。请将程序补充完整。 #include \struct link {int data; stuct link *next; };

int add(struct link *head) {struct link *p; int s=0; p=; while(p)

{s+=; p=p++; }

return(s); }

main ( )

{struct link *head; ...... /* 创建链表的程序段,省略 */ sum=; printf(\ }

N5 以下output函数输出链表上数据大于n的所有节点。请将函数补充完整。 #include struct Ai {

21

int a;

struct Ai *next; };

void output(struct Ai *head) {int i=0; struct Ai *p;

if(head==NULL)

{printf(\} else

{ p=; do {i++;

if(p.a大于n)

printf(\指向) p=p指向next;

}while(p.next!=NULL); } }

F6 下面函数delete的功能是,删除单向链表中数据值为num的第一个节点。请将程序补充完整。 #include \struct Ai {int a;

struct Ai *next; };

< struct Ai > *delete (struct Ai *head) {struct Ai *p1, *p2; if(head==NULL)

{printf(\ return(head); }

p1=head;

while(p1.next!=NULL) {p2=p1;

p1=p1指向; }

if(num==p1指向) {if(p1==head)

head==NULL; else p2=p1; free(p1);

printf(\}

22

else

printf(\return(head); }

F7.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。 #include struct node { char data;

struct node *next;}

CreatList(char *s) { struct node *h,*p,*q;

h = (struct node *)malloc(sizeof(struct node)); p=q=h;

while(*s!=NULL)

{ p=(struct node *)malloc(sizeof(struct node)); p指向data =<*s>;

q指向next = p;q=p;s++;} p指向next = NULL;return h; }

void main()

{ char str[] =\struct node *head;

head = CreatList(str);.......} F8、以下程序的运行结果: #include struct NODE

{int num; struct NODE *next; } main()

{ *p,*q,*r;

p=(struct NODE *)malloc(sizeof(struct NODE)); q=(struct NODE *)malloc(sizeof(struct NODE)); r=(struct NODE *)malloc(sizeof(struct NODE)); p->num=10; q->num=20; r->num=30; p->next=q; q->next=;

printf(\}

R9、选择程序的运行结果。 #include \ struct cmplx

23

{ int x; int y;

} cnum[2] = { 1, 3, 2, 7 }; main( ) {

printf(\运行结果<2>*/ printf(\运行结果<3>*/ }

F10、以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾。单向链表的头指针作为函数值返回。请填空: #include struct list { char data;

struct list * next; };

struct list * creat( ) { struct list * h,*p,*q; char ch;

h= *malloc(sizeof(struct list)); p=q=h;

ch=getchar( ); while (ch! ='?')

{p= struct list *malloc(sizeof(struct list)); p指向data=ch; q指向next=p; q=p;

ch=getchar( ); }

p指向next='\\0'; return(); }

第七章 文件

程序填空题

R1以下程序把从键盘输入的字符存放到一个文件中,用“#”作为结束符。请按

24