西安石油大学C语言作业.docx
- 文档编号:724064
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:7
- 大小:16.45KB
西安石油大学C语言作业.docx
《西安石油大学C语言作业.docx》由会员分享,可在线阅读,更多相关《西安石油大学C语言作业.docx(7页珍藏版)》请在冰豆网上搜索。
西安石油大学C语言作业
习题十一
一、选择题
11-1.下面的四个运算符中,优先级最低的是。
A()
B成员运算符.
C指针运算符->
D++
11-2.已知:
struct{
inti;
charc;
floata;
}test;
则sizeof(test)的值是。
A.4
B.5
C.6
D.7
11-3.已知:
union{
inti;
charc;
floata;
}test;
则sizeof(test)的值是。
A.4
B.5
C.6
D.7
11-4.选择出错误的函数定义。
A.structtreefuna(structtree*s)
B.int*funb(trees)
C.structtree*func(structtrees)
D.int*fund(s)
11-5.以下对C语言中联合类型数据的正确叙述是。
A.一旦定义了一个联合变量后,即可引用该变量或该变量中的任意成员
B.一个联合变量中可以同时存放其所有成员
C.一个联合变量中不能同时存放其所有成员
D.联合类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在联合类型定义中
11-6.已知函数原型为:
structtree*f(intx1,int*x2,structtreex3,structtree*x4)
其中tree为已定义过的结构,且有下列变量定义:
structtreept,*p;inti;
请选择正确的函数调用语句。
A.&pt=f(10,&i,pt,p);
B.p=f(i++,(int*)p,pt,&pt);
C.p=f(i+1,&(i+2),*p,p);
D.f(i+1,&i,p,p);
11-7.当说明一个结构变量时系统分配给它的内存是。
A.各成员所需内存量的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
11-8.以下对结构类型变量的定义中错误的是。
A.#defineSTUDENTstructstudent
B.struct{
intnum;
floatage;
}student;
structstudentstd1;
C.struct;
D.structstudent{
intnum;
floatage;
};
structstudentstd1;
11-9.设有以下说明语句:
structstu{
inta;
floatb;
}stutype;
则下面叙述中错误的是。
A.struct是结构类型的关键字
B.structstu是用户定义的结构类型
C.stutype是用户定义的结构类型名
D.a和b都是结构成员名
11-10.C语言结构类型变量在程序执行期间。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中
11-11.已知:
structsk{
inta;
floatb;
}data,*p;
若有p=&data,则对data中的成员a的正确引用是。
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
11-12.若有以下定义和语句:
structstudent
{
intnum,age;
};
structstudentstu[3]={{1001,20},{1002,19},{1003,21}};
structstudent*p=stu;
则以下错误的引用是。
A.(p++)->num
B.p++
C.(*p).num
D.p=&stu.age
11-13.以下对C语言中联合类型数据的叙述正确的是。
A.可以对联合变量名直接赋值
B.使用联合变量的目的是为了节省内存
C.对一个联合变量,可以同时引用联合中的不同成员
D.联合类型定义中不能出现结构类型的成员
11-14.已知函数定义的形式如下:
structdata*f(void)
{.......}
则函数f。
A.没有参数,返回值是一个结构
B.有一个参数void,返回值是一个结构
C.没有参数,返回值是一个结构指针
D.有一个参数void,返回值是一个结构指针
11-15.下面给出的是使用typedef定义一个新数据类型的4项工作,如果要正确定义一个新的数据类型,进行这4项工作的顺序应当是。
1.把变量名换成新类型名
2.按定义变量的方法写出定义体
3.用新类型名定义变量
4.在最前面加上关键字typedef
A.2,4,1,3
B.1,3,2,4
C.2,1,4,3
D.4,2,3,1
11-16.在对typedef的叙述中错误的是。
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
二、填空题
11-17.已知:
union{
intx;
struct{
charc1,c2;
}b;
}a;
执行语句:
a.x=0x1234之后,a.b.c1的值为(用16进制表示),a.b.c2的值为(用16进制表示)。
11-18.用typedef定义整型一维数组:
typedefintARRAY[10];
则对整型数组a[10]、b[10]、c[10]可以定义为。
11-19.已知:
struct{
intx,y;
}s[2]={{1,2},{3,4}},*p=s;
则:
表达式++p->x的值为。
表达式(++p)->x的值为。
11-20.已知:
struct{
intx;
char*y;
}tab[2]={{1,"ab"},{2,"cd"}},*p=tab;
则:
表达式*p->y的结果为。
表达式*(++p)->y的结果为。
11-21.已知:
struct{
intday;
charmouth;
intyear;
}a,*b;b=&a;
可用a.day引用结构中的成员day,请写出通过指针变量b引用成员a.day的其它两种形式,它们是和。
三、编程题
11-22.分析下列程序执行结果。
#include
main()
{
staticstructs1{
charc[4],*s;
}s1={"abc","def"};
staticstructs2{
char*cp;structs1ss1;
}s2={"ghi",{"jkl","mno"}};
printf("%c%c\n",s1.c[0],*s1.s);
printf("%s%s\n",s1.c,s1.s);
printf("%s%s\n",s2.cp,s2.ss1.s);
printf("%s%s\n",++s2.cp,++s2.ss1.s);
}
11-23.成绩排序。
按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生的名次、该名次的分数、相同名次的人数和学号;同名次的学号输出在同一行中,一行最多输出10个学号。
11-24.写出以下程序的运行结果。
#include
main()
{
union{
chars[2];
inti;
}g;
g.i=0x4142;
printf("g.i=%x\n",g.i);
printf("g.s[0]=%x\tg.s[1]=%x\n",g.s[0],g.s[1]);
g.s[0]=1;g.s[1]=0;
printf("g.i=%x\n",g.i);
}
11-25.现在有教师(姓名、单位、住址、职称)和学生(姓名、班级、住址、入学成绩)的信息。
请输入10名教师和学生的信息后,按姓名进行排序,最后按排序后的顺序进行输出,对于教师要输出姓名、单位、住址和职称,对于学生要输出姓名、班级、住址和入学成绩。
请编程实现。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安石油 大学 语言 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)