构造型数据类型练习题.docx

上传人:b****3 文档编号:6551535 上传时间:2023-05-10 格式:DOCX 页数:11 大小:18.02KB
下载 相关 举报
构造型数据类型练习题.docx_第1页
第1页 / 共11页
构造型数据类型练习题.docx_第2页
第2页 / 共11页
构造型数据类型练习题.docx_第3页
第3页 / 共11页
构造型数据类型练习题.docx_第4页
第4页 / 共11页
构造型数据类型练习题.docx_第5页
第5页 / 共11页
构造型数据类型练习题.docx_第6页
第6页 / 共11页
构造型数据类型练习题.docx_第7页
第7页 / 共11页
构造型数据类型练习题.docx_第8页
第8页 / 共11页
构造型数据类型练习题.docx_第9页
第9页 / 共11页
构造型数据类型练习题.docx_第10页
第10页 / 共11页
构造型数据类型练习题.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

构造型数据类型练习题.docx

《构造型数据类型练习题.docx》由会员分享,可在线阅读,更多相关《构造型数据类型练习题.docx(11页珍藏版)》请在冰点文库上搜索。

构造型数据类型练习题.docx

构造型数据类型练习题

构造型数据类型练习题

 

 

(一)选择题

1.下面程序段的运行结果是_________.

chara[7]="abcdef";

charb[4]="ABC";

strcpy(a,b);

printf("%c",a[5]);

a)空格b)\0c)ed)f

2.判断字符串s1是否大于字符串s2,应当使用_______.

a)if(s1>s2)b)if(strcmp(s1,s2))

c)if(strcmp(s2,s1)>0)d)if(strcmp(s1,s2)>0)

3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.

(假设a[0][0]位于数组的第一个位置上。

a)i*m+jb)j*m+ic)i*m+j-1d)i*m+j+1

4.若二维数组a有m列,则在a[i][j]前的元素个数为________.

a)j*m+ib)i*m+jc)i*m+j-1d)i*m+j+1

5.25.若有以下程序段:

inta[]={4,0,2,3,1},i,j,t;

for(i=1;i<5;i++)

{t=a[i];j=i-1;

while(j>=0&&t>a[j])

{a[j+1]=a[j];j--;}

a[j+1]=t;}

......

则该程序段的功能是_________.

a)对数组a进行插入排序(升序)

b)对数组a进行插入排序(降序)

c)对数组a进行选择排序(升序)

d)对数组a进行选择排序(降序) 

6.有两个字符数组a、b,则以下正确的输入语句是_______.

a)gets(a,b);b)scanf("%s%s",a,b);

c)scanf("%s%s",&a,&b);d)gets("a"),gets("b");

7.以下为一维整型数组a的正确说明是_________.

a)inta(10);b)intn=10,a[n];

c)intn;d)#defineSIZE10;

scanf("%d",&n);inta[SIZE];

inta[n];

 8.以下对二维数组a的正确说明是________.

a)inta[3][];b)floata(3,4);

c)doublea[1][4]d)floata(3)(4);

9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用

空格分隔,请选择填空。

#include

main()

{

chars[80],c1,c2='';

inti=0,num=0;

gets(s);

while(s[i]!

='\0')

{c1=s[i];

if(i==0)c2='';

elsec2=s[i-1];

if(___)num++

i++;

}

printf("Thereare%dwords.\n",num);

}

a)c1==''&&c2==''b)c1!

=''&&c2==''

c)c1==''&&c2!

=''d)c1!

=''&&c2!

=''

10.下面程序的运行结果是________.

#include

main()

{charstr[]="SSSWLIA",c;

intk;

for(k=2;(c=str[k])!

='\0';k++)

{switch(c)

{case'I':

++k;break;

case'L':

continue;

default:

putchar(c);continue;

}

putchar('*');

}

}

a)SSW*b)SW*c)SW*Ad)SW

11.C语言结构体类型变量在程序执行期间_________.

a)所有成员一直驻留在内存中

b)只有一个成员驻留在内存中

c)部分成员驻留在内存中

d)没有成员驻留在内存中

12.下面程序的运行结果是___________.

main()

{

structcmplx{intx;

inty;

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

printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);

}

a)0b)1c)3d)6

13.设有如下定义:

structsk

{intn;

floatx;

}data,*p;

若要使p指向data中的n域,正确的赋值语句是_______.

a)p=&data.n;

b)*p=data.n;

c)p=(structsk*)&data.n;

d)p=(structsk*)data.n;

14.以下对结构体变量stu1中成员age的非法引用是________.

structstudent

{intage;

intnum;

}stu1,*p;

p=&stu1;

a)stu1.ageb)student.age

c)p->aged)(*p).age

15.下面对typedef的叙述中不正确的是______.

a)用typedef可以定义各种类型名,但不能用来定义变量

b)用typedef可以增加新类型

c)用typedef只是将已存在的类型用一个新的标识符来代表

d)使用typedef有利于程序的通用和移植

16.以下scanf函数调用语句中对结构体变量成员的不正确引用是________.

structpupil

{charname[20];

intage;

intsex;

}pup[5],*p;

p=pup;

a)scanf("%s",pup[0].name);

b)scanf("%d",&pup[0].age);

c)scanf("%d",&(p->sex));

d)scanf("%d",p->age);

 

(二)填空题

1.若有定义:

doublex[3][5];则x数组中行下标的下限为_________,列下标的上限为_________。

2.下面程序以每行4个数据的形式输出a数组,请填空。

#defineN20

main()

{inta[N],i;

for(i=0;i

for(i=0i

{if(_____________)_____________

printf("%3d",a[i]);

}

printf("\n");

}

 

3.下面程序可求出矩阵a的主对角线上的元素之和,请填空。

main()

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

for(j=0;j<3;j++)

if(_____)sum=sum+_______;

printf("sum=%d\n",sum);

}

 

4.当从键盘输入18并回车后,下面程序的运行结果是________.

main()

{intx,y,i,a[8],j,u,v;

scanf("%d",&x);

y=x;i=0;

do

{u=y/2;

a[i]=y%2;

i++;y=u;

}while(y>=1)

for(j=i-1;j>=0;j--)

printf("%d",a[j]);

}

 

5.下面程序用插入法对数组a进行降序排序。

请填空。

main()

{inta[5]={4,7,2,5,1};

inti,j,m;

for(i=1;i<5;i++)

{m=a[i];

j=____;

while(j>=0&&m>a[j])

{_______;

j--;

}

_______=m;

}

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

printf("%d",a[i]);

printf("\n");

}

 

6.下面程序的功能是在三个字符串中找出最小的,请填空。

#include

#include

main()

{chars[20],str[3][20];

inti;

for(i=0;i<3;i++)gets(str[i]);

strcpy(s,_______);

if(strcmp(str[2],s)<0)strcpy(s,str[2]);

printf("%s\n",_______);

}

 

7.下面程序的运行结果是________.

#include

main()

{chars[]="ABCCDA";

intk;charc;

for(k=1;(c=s[k])!

='\0';k++)

{switch(c)

{case'A':

putchar('%');continue;

case'B':

++k;break;

default:

putchar('*');

case'C':

putchar('&');continue;

}

putchar('#');

}

}

8.以下程序的运行结果是________.

structn{

intx;

charc;

};

main()

{structna={10,'x'};

func(a);

printf("%d,%c",a.x,a.c);

}

func(structnb)

{

b.x=20;

b.c='y';

}

 

9.若有定义:

structnum

{inta;

intb;

floatf;

}n={1,3,5.0};

structnum*pn=&n;

则表达式pn->b/n.a*++pn->b的值是________,表达式(*pn).a+pn->f的值是________.

 

10.以下程序的运行结果是________.

structks

{inta;

int*b;

}s[4],*p;

main()

{

intn=1;

printf("\n");

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

{

s[i].a=n;

s[i].b=&s[i].a;

n=n+2;

}

p=&s[0];

p++;

printf("%d,%d\n",(++p)->a,(p++)->a);

}

 

11.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名

和年龄。

请在_______内填入正确内容。

statistructman{

charname[20];

intage;

}person[]={"li=ming",18,

"wang-hua",19,

"zhang-ping",20

};

 

main()

{structman*p,*q;

intold=0

p=person;

for(;p_____;p++)

if(oldage)

{q=p;______;}

printf("%s%d",______);

}

 

12.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点

的指针(链表不带头结点)。

请在______内填入正确内容。

structlink

{chardata;

structlink*next;

};

 

....

structlink*p,*first;

intc=0;

p=first;

while(_____)

{_______;

p=_______;

}

 

(三)程序设计题

1.输入10个整数存入数组中,找出其中最小数和次小数。

2.有10个数围成一圈,求相邻三个数之和的最小值。

3.对数组A中的N(1

例如:

若A数组为{5,3,4,7,3,5,6},则输出为3,1,2,5,1,3,4。

4.将一个数组中的数值按逆序重新存放。

例如,原来顺序为8,6,5,4,1。

要求改为1,4,5,6,8。

5.利用结构体类型编制一程序,实现输入三个学生的学号,数学、语文、英语成绩,然后计算每位学生的总成绩以及平均成绩并按总分由大到小输出成绩表。

6.定义一个包括年月日成员的结构体变量,将其转换成这一年的第几天并输出。

注意闰年问题。

7.定义枚举类型money,用枚举元素代表人民币的面值。

人民币面值包括1、2、5分,1、2、5角,1、2、5、10、20、50、100元。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2