当前位置:首页 > c语言09-6省考2C习题集
union data d; }p;
void main()
{printf(\ } A. 5 B. 6 C. 7 D. 8
218. 以下C语言共用体类型数据的描述中,正确的是( )。 A. 共用体变量占的内存大小等于所有成员所占的内存大小之和 B. 共用体类型不可以出现在结构体类型定义中
C. 在定义共用体变量的同时允许对第一个成员的值进行初始化 D. 同一共用体中各成员的首地址不相同 219. 设有如下语句: struct stu {int num; int age; };
struct stu s[3]={{101,18},{102,21},{103,19}}; struct stu *p=s;
则下面表达式的值为102的是( )。 A. (p++)->num B. (*++p).num C. (*p++).num D. *(++p)->num
220. 若有下面定义,能打印出字母'L'的语句是( )。 struct class {char name[8]; int age; };
struct class s[12]={\A. printf(\B. printf(\C. printf(\D. printf(\
221. 若有下面定义,对结构体变量成员不正确引用的语句是( )。 struct pup
-38-
{char name[20]; int age; int sex; }p[3],*q; q=p;
A. scanf(\B. scanf(\C. scanf(\D. scanf(\
222. 以下程序的输出结果是( )。
main()
{ printf( \}
fac(int n) { int s;
if(n==1) return 1; else return n*fac(n-1); } A. 120 B. 60 C. 6 D. 1
八、链表
223. 若有以下定义: struct node { int data;
struct node *next; };
struct node *p;
已建立如下图所示的链表:
┌──┬──┐ ┌──┬──┐ ┌──┬──┐ p →│data│next┼→│data│next┼→...─→│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘
指针p指向第一个结点,能输出链表所有结点的数据成员data的循环语句是(A. while(p!=NULL)
)。 -39-
{ printf(\ p++; }
B. while(p)
{ printf(\ p=p->next; }
C. for( ; p!=NULL; p++) printf(\D. for( ; p; p=p->next) printf(\224. 若有以下定义: struct node { int data;
struct node *next; }
struct node m,n,k, *head, *p; 已建立如下图所示的链表:
m n k
┌──┬──┐ ┌──┬──┐ ┌──┬──┐ head →│data│next┼→│data│NULL│ p → │data│next│ └──┴──┘ └──┴──┘ └──┴──┘ 指针head指向变量m, m.next指向变量n,p指向变量k,不能把结点k插到m和n之间形成新链表的程序段是( )。
A. m.next = p; p->next = head->next; B. (*head).next = p; (*p).next = &n;
C. head->next = &k; p->next = head->next; D. m.next = &k; k.next = &n; 225. 若有以下定义: struct node { int data;
struct node *next; }
struct node *head,*p;
已建立如下图所示的链表:
p ↓
┌──┬──┐ ┌──┬──┐ ┌──┬──┐
-40-
head →│data│next┼→│data│next┼→...─→│data│NULL│ └──┴──┘ └──┴──┘ └──┴──┘ 能删除指针p所指向结点的程序段是( )。 A. p = p->next; head->next=p->next; free(p); B. free(p); p = p->next; head->next=p->next; C. head->next = p->next; free(p); D. free(p); head->next = p->next; 226. 若有以下定义: struct node { int data;
struct node *next; } *p,*q;
已建立如下图所示的链表:
┌──┬──┐ ┌──┬──┐ ... p →│data│next┼→│data│NULL│ └──┴──┘ └──┴──┘
┌──┬──┐ q →│data│next│ └──┴──┘
不能将指针q所指结点连到上图所示链表末尾的语句是( )。 A. q->next=NULL; p=p->next; p->next=q; B. p=p->next; p->next=q; q->next=NULL; C. p=p->next; q->next=p->next; p->next=q; D. q->next=p->next; p=p->next; p->next=q; 227. 若有定义: struct node { int data;
struct node *next; };
已建立如下图所示的链表:
┌─┬─┐ ┌─┬─┐ ┌─┬─┐
head →│1 │ ┼→│3 │ ┼→ ? →│25│ ┼→NULL └─┴─┘ └─┴─┘ └─┴─┘ 指针head指向链表首结点,以下函数的功能是( )。 void fun(struct node * head) { struct node * p = head; while(p)
-41-
共分享92篇相关文档