違法信息舉報(bào) 客服熱線:400-118-7898
廣告
?
專接本欄目測(cè)試廣告

?2022年湖北專升本C語言結(jié)構(gòu)體與共用體模擬題

普通專升本 責(zé)任編輯:管理員 2022-02-14

摘要:本文是2022年湖北專升本C語言結(jié)構(gòu)體與共用體模擬題,共有22道選擇題和6道填空題,供大家參考。具體詳細(xì)內(nèi)容見下文。

一、單項(xiàng)選擇題

1.以下程序的輸出結(jié)果是( D )。

struct student

{char name[20];

char sex;

int age;

}stu[3]={“Li Lin”,‘M’, 18, “Zhang Fun”,‘M’, 19, “Wang Min”,‘F’, 20};

main()

{struct student *p;

p=stu;

printf(“%s, %c, %d\n”, p->name, p->sex, p->age);

}

A) Wang Min,F,20

B) Zhang Fun,M,19

C) Li Lin,F,19

D) Li Lin,M,18

2.設(shè)有以下語句:

struct st{int n; struct st *next;};

static struct st a[3]={5, &a[1], 7, &a[2], 9,‘\0’},*p;

p=&a[0];

則表達(dá)式(D)的值是 6。

A) p++ ->n

B) p->n++

C) (*p).n++

D) ++p->n

3.以下四個(gè)程序中,( C )不能對(duì)兩個(gè)整型變量的值進(jìn)行交換。

A) #include

main()

{int a=10,b=20;

swap(&a,&b);

printf(“%d %d\n”,a,b);

}

swap(int *p,int *q)

{int *t;

t=(int *)malloc(sizeof(int));

*t=*p; *p=*q; *q=*t;

}

B) main()

{int a=10,b=20;

swap(&a,&b);

printf(“%d %d\n”,a,b);

}

swap(int *p,int *q)

{int t;

t=*p; *p=*q; *q=t;

}

C) main()

{int *a,*b;

*a=10; *b=20;

swap(a,b);

printf(“%d %d\n”,*a,*b);

}

swap(int *p,int *q)

{int t;

t=*p; *p=*q; *q=t;

}

D) main()

{int a=10,b=20;

int *x=&a,*y=&b;

swap(x,y);

printf(“%d %d\n”,a,b);

}

swap(int *p,int *q)

{int t;

t=*p; *p=*q; *q=t;

}

4.下面程序的輸出結(jié)果是( C)。

struct st

{int x;

int *y;

}*p;

int dt[4]={10, 20, 30, 40};

struct st aa[4]={50, &dt[0], 60, &dt[1], 70, &dt[2], 80, &dt[3]};

main()

{p=aa;

printf(“%d”, ++p->x);

printf(“%d”, (++p)->x);

printf(“%d\n”, ++(*p->y));

}

A) 10 20 20

B) 50 60 21

C) 51 60 21

D) 60 70 31

5.若要用下面的程序片段使指針變量 p 指向一個(gè)存儲(chǔ)整型數(shù)據(jù)的動(dòng)態(tài)存儲(chǔ)單元,則應(yīng)填入( D )。

int *p;

p= malloc(sizeof(int));

A) int

B) int *

C) (* int)

D) (int *)

6.若已建立下面的鏈表結(jié)構(gòu),指針 p、s 分別指向圖中所示的結(jié)點(diǎn),則不能將 s 所指的結(jié)點(diǎn)插入到鏈表末尾的語句組是( C)。

A) s->next=NULL; p=p->next; p->next=s;

B) p=p->next; s->next=p->next; p->next=s;

C) p=p->next; s->next=p; p->next=s;

D) p=(*p).next; (*s).next=(*p).next; (*p).next=s;

7.以下程序的輸出結(jié)果是( D)。

#include

void fun(float *p1,float *p2, float *s)

{s=(float *)calloc(1, sizeof(float));

*s=*p1+*(p2++);

}

main()

{float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;

fun (a, b, s);

printf(“%f\n”, *s);

}

A) 11.100000 B) 12.100000 C) 21.100000 D) 1.100000

8.字符‘0’的 ASCII 碼的十進(jìn)制數(shù)為 48,且數(shù)組的第 0 個(gè)元素在低位,則以下程序的輸出結(jié)果是( B )。

image.png

A) 39

B) 9

C) 38

D) 8

9.若有說明:long *p, a; 則不能通過 scanf 語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是( A )。

A) *p=&a; scanf(“%ld”,p);

B) p=(long *)malloc(8); scanf(“%ld”,p);

C) scanf(“%ld”,p=&a);

D) scanf(“%ld”,&a);

10.以下選項(xiàng)中,能定義 s 為合法的結(jié)構(gòu)體變量的是(B)。

A) typedef struct abc

{double a;

char b[10];

}s;

B) struct

{double a;

char b[10];

}s;

C) struct ABC

{double a;

char b[10];

}

ABC s;

D) typedef ABC

{ double a;

char b[10];

}

ABC s;

11.設(shè)有以下定義和語句,則輸出結(jié)果是(指針變量占 2 個(gè)字節(jié))( D)。

struct date

{long *cat;(2 字節(jié))

struct date *next;(2 字節(jié))

double dog;(8 字節(jié))

}too;

printf(“%d”, sizeof(too));

A) 20

B) 16

C) 14

D) 12

12.以下程序的輸出結(jié)果是(D)。

#include

int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, *p;

main()

{p=(int *)malloc(sizeof(int));

f(p, a);

printf(“%d\n”,*p);

}

f(int *s, int p[][3])

{*s=p[1][1];}

A) 1

B) 4

C) 7

D) 5

13.設(shè)有如下定義:

struct

sk

{int a; float b;} data, *p;

若有 p=&data,則對(duì) data 中的成員 a 的正確引用是( B )。

A) (*p).data.a

B) (*p).a C) p->data.a

D) p.data.a

14.以下程序的輸出結(jié)果是( B )。

#include

struct stu

{int num;

char name[10];

int age;

};

void fun(struct stu *p)

{printf(“%s\n”, (*p).name);}

main()

{struct stu students[3]={{9801, “Zhang”, 20}, {9802, “Wang”, 19}, {9803, “Zhao”, 18}};

fun (students+2);

}

A) Zhang

B) Zhao

C) Wang

D) 18

15.以下程序運(yùn)行后,輸出結(jié)果是( C)。

fut(int **s, int p[2][3])

{**s=p[1][1];}

main()

{int a[2][3]={1, 3, 5, 7, 9, 11}, *p;

p=(int *)malloc(sizeof(int));

fut(&p, a);

printf(“%d\n”, *p);

}

A) 1

B) 7

C) 9

D) 11

16.下列程序的輸出結(jié)果是( B)。

struct abc

{ int a, b, c; };

main()

{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;

t=s[0].a + s[1].b;

printf("%d \n", t);

}

A) 5

B) 6

C) 7

D) 8

17.有以下結(jié)構(gòu)體說明和變量的定義,且如下圖所示指針 p 指向變量 a,指針 q 指向變量 b。則不能把結(jié)點(diǎn) b 連接到結(jié)點(diǎn) a 之后的語句是( B)。

image.png

struct node

{char data;

struct node *next;

} a, b, *p=&a,*q=&b;

A) a.next=q;

B) p.next=&b;

C) p->next=&b;

D) (*p).next=q;

18.變量 a 所占內(nèi)存字節(jié)數(shù)是(C)。

image.png

A) 4

B) 5

C) 6

D) 8

19.有如下定義:

struct person{char name[9]; int age;};

struct person class[10]={“Johu”, 17, “Paul”, 19 , “

Mary”, 18, “Adam”, 16};

根據(jù)上述定義,能輸出字母 M 的語句是( D)。

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]);

20.以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是( C)。

A) typedef struct aa

{int n;

float m;

}AA;

AA td1;

B) #define AA struct aa

AA{int n;

float m;

}td1;

C) struct

{ int n;

float m;

}aa;

struct aa td1;

D) struct

{ int n;

float m;

}td1;

21.設(shè)有以下說明語句:

struct ex

{int x; float y; char z;} example;

則下面的敘述中不正確的是( B )。

A) struct 是結(jié)構(gòu)體類型的關(guān)鍵字

B) example 是結(jié)構(gòu)體類型名

C) x, y, z 都是結(jié)構(gòu)體成員名

D) struct ex 是結(jié)構(gòu)體類型名

22.以下程序的輸出結(jié)果是( D)。

union myun

{ struct

{ int x, y, z; } u;

int k;

} a;

main()

{a.u.x=4; a.u.y=5; a.u.z=6;

a.k=0;

printf(%d\n", a.u.x);

}

A) 4

B) 5

C) 6

D) 0

二、填空題

1.設(shè)有以下結(jié)構(gòu)體類型說明和變量定義,則變量 a 在內(nèi)存中所占的字節(jié)數(shù)是22,變量 p 在內(nèi)存中所占的字節(jié)數(shù)是2。

struct stud

{char num[6];

int s[4];

double ave;

}a, *p;

2.若有如下結(jié)構(gòu)體說明:

struct STRU

{int a, b ; char c; double d:

struct STRU p1, p2;

};

請(qǐng)?zhí)羁眨酝瓿蓪?duì) t 數(shù)組的定義,t 數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型:struct STRU t[20];

3.以下程序段用于構(gòu)成一個(gè)簡(jiǎn)單的單向鏈表,請(qǐng)?zhí)羁铡?/p>

struct STRU

{int x, y ;

float rate;

struct STRU * p;

} a, b;

a.x=0; a.y=0; a.rate=0; a.p=&b;

b.x=0; b.y=0; b.rate=0; b.p=NULL;

4.建立并輸出 100 個(gè)同學(xué)的通訊錄,每個(gè)通訊錄包括同學(xué)的姓名、地址、郵政編碼。

#include

#define N 100

struct communication

{char name[20];

char address[80];

long int post_code;

}commun[N];

main()

{int i;

for(i=0; i<100; i++)

{set_record(commun+i);

print_record(commun+i);

}}

set_record(struct communication *p)

{printf(“Set a communication record\n”);

scanf(“%s %s %ld”, p->name, p->address, p->post-code);

}

print_record ( strut communication*p)

{printf(“Print a communication record\n”);

printf(“Name: %s\n”, p->name);

printf(“Address: %s\n”, p->address);

printf(“Post_code: %ld\n”, p->post-code);

}

5.以下函數(shù) creatlist 用來建立一個(gè)帶頭節(jié)點(diǎn)的單鏈表,新的結(jié)點(diǎn)總是插入在鏈表的末尾。鏈表的頭指針作為函數(shù)值返回,鏈表最后一個(gè)節(jié)點(diǎn)的 next 成員中放入 NULL,作為鏈表結(jié)束標(biāo)志。讀入時(shí)字符以#表示輸入結(jié)束(#不存入鏈表)。請(qǐng)?zhí)羁铡?/p>

struct node

{char data;

struct node * next;

};

struct node * creatlist( )

{struct node * h,* s,* r;char ch;

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

r=h;

ch=getchar( );

while(ch!=‘#’)

{s=(struct node *)malloc(sizeof(struct node));

s->data=ch;

r->next=s; r=s;

ch=getchar( );}

r->next=NULL;

return h;

}

6.有以下定義和語句,則 sizeof(a)的值是10,而 sizeof(a.share)的值是 4。

struct date

{int day;

int month;

int year;

union

{int share1;

float share2;

}share;

} a;

更多資料

廣東省專升本《大學(xué)語文》真題

云南專升本《高等數(shù)學(xué)》真題(2019年)

統(tǒng)招專升本《高等數(shù)學(xué)》真題回憶版(2021年)

更多課程

《市場(chǎng)營(yíng)銷學(xué)》公開課—業(yè)務(wù)成長(zhǎng)戰(zhàn)略

1節(jié)課

《基礎(chǔ)會(huì)計(jì)》公開課—會(huì)計(jì)要素-反映財(cái)務(wù)狀況的會(huì)計(jì)要素

1節(jié)課

《管理學(xué)》公開課——馬斯洛需要層次理論

1節(jié)課

溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)考生以權(quán)威部門公布的內(nèi)容為準(zhǔn)!

專升本備考資料免費(fèi)領(lǐng)取

去領(lǐng)取

資料下載
  • 統(tǒng)招專升本《大學(xué)語文》真題資料

    下載
  • 統(tǒng)招專升本《大學(xué)語文》真題回憶版(2021年)

    下載
  • 統(tǒng)招專升本《大學(xué)語文》備考資料一

    下載
  • 全國(guó)版專接本《大學(xué)語文》真題匯編

    下載