西安石油大学C语言作业.doc_第1页
西安石油大学C语言作业.doc_第2页
西安石油大学C语言作业.doc_第3页
西安石油大学C语言作业.doc_第4页
西安石油大学C语言作业.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题十一一、选择题11-1. 下面的四个运算符中,优先级最低的是 。A ( ) B 成员运算符. C 指针运算符- D +11-2. 已知:struct int i;char c;float a; test;则sizeof(test)的值是 。A4 B5 C6 D711-3. 已知:union int i;char c;float a; test;则sizeof(test)的值是 。A4 B5 C6 D711-4. 选择出错误的函数定义 。Astruct tree funa(struct tree *s) Bint *funb(tree s)Cstruct tree *func(struct tree s) Dint *fund(s)11-5. 以下对C语言中联合类型数据的正确叙述是 。A一旦定义了一个联合变量后,即可引用该变量或该变量中的任意成员B一个联合变量中可以同时存放其所有成员C一个联合变量中不能同时存放其所有成员D联合类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在联合类型定义中11-6. 已知函数原型为:struct tree *f (int x1, int *x2, struct tree x3, struct tree *x4)其中tree为已定义过的结构,且有下列变量定义:struct tree pt, *p; int i;请选择正确的函数调用语句 。A&pt=f(10,&i,pt,p); Bp=f(i+, (int *)p, pt, &pt);Cp=f(i+1, &(i+2), *p, p); Df(i+1, &i, p, p);11-7. 当说明一个结构变量时系统分配给它的内存是 。A各成员所需内存量的总和 B结构中第一个成员所需内存量C成员中占内存量最大者所需的容量D结构中最后一个成员所需内存量11-8. 以下对结构类型变量的定义中错误的是 。A#define STUDENT struct student Bstruct int num; float age; student;struct student std1;Cstruct; Dstruct student int num; float age; ;struct student std1;11-9. 设有以下说明语句:struct stuint a;float b; stutype;则下面叙述中错误的是 。Astruct是结构类型的关键字Bstruct stu是用户定义的结构类型Cstutype是用户定义的结构类型名Da和b都是结构成员名11-10.C语言结构类型变量在程序执行期间 。A所有成员一直驻留在内存中 B只有一个成员驻留在内存中C部分成员驻留在内存中 D没有成员驻留在内存中11-11. 已知:struct sk int a; float b; data, *p;若有p=&data,则对data中的成员a的正确引用是 。A(*p).data.a B(*p).a Cp-data.a Dp.data.a11-12. 若有以下定义和语句:struct student int num, age;struct student stu3 = 1001,20, 1002,19, 1003,21 ;struct student *p=stu;则以下错误的引用是 。A(p+)-num Bp+ C(*p).num Dp=&stu.age11-13. 以下对C语言中联合类型数据的叙述正确的是 。A可以对联合变量名直接赋值B使用联合变量的目的是为了节省内存C对一个联合变量,可以同时引用联合中的不同成员D联合类型定义中不能出现结构类型的成员11-14. 已知函数定义的形式如下:struct data * f ( void ) . 则函数f 。A没有参数,返回值是一个结构 B有一个参数void,返回值是一个结构C没有参数,返回值是一个结构指针D有一个参数void,返回值是一个结构指针11-15. 下面给出的是使用typedef定义一个新数据类型的4项工作,如果要正确定义一个新的数据类型,进行这4项工作的顺序应当是 。1. 把变量名换成新类型名2. 按定义变量的方法写出定义体3. 用新类型名定义变量4. 在最前面加上关键字typedefA2,4,1,3 B1,3,2,4 C2,1,4,3 D4,2,3,111-16. 在对typedef的叙述中错误的是 。A用typedef可以定义各种类型名,但不能用来定义变量B用typedef可以增加新类型C用typedef只是将已存在的类型用一个新的标识符来代表 D使用typedef有利于程序的通用和移植二、填空题11-17. 已知:union int x;struct char c1, c2; b; a;执行语句:a.x=0x1234之后,a.b.c1的值为 (用16进制表示),a.b.c2的值为 (用16进制表示)。11-18. 用typedef定义整型一维数组:typedef int ARRAY10;则对整型数组a10、b10、c10可以定义为 。11-19已知:struct int x, y; s2= 1,2, 3,4 , *p=s;则:表达式+p-x的值为 。表达式(+p)-x的值为 。11-20已知:struct int x; char *y; tab2 = 1,ab, 2,cd , *p=tab;则:表达式*p-y的结果为 。表达式*(+p)-y的结果为 。11-21已知:struct int day; char mouth;int year; a, *b; b=&a;可用a.day引用结构中的成员day,请写出通过指针变量b引用成员a.day的其它两种形式,它们是 和 。三、编程题11-22分析下列程序执行结果。#include main ( ) static struct s1 char c4, *s; s1=abc, def;static struct s2 char *cp; struct s1 ss1; s2=ghi, jkl, mno;printf (%c%cn, s1.c0, *s1.s);printf (%s%sn, s1.c, s1.s);printf (%s%sn, s2.cp, s2.ss1.s);printf (%s%sn, +s2.cp, +s2.ss1.s);11-23成绩排序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生的名次、该名次的分数、相同名次的人数和学号;同名次的学号输出在同一行中,一行最多输出10个学号。11-24写出以下程序的运行结果。#include main ( ) union char s2;int i; g;g.i=0x4142;printf (g.i=%xn, g.i);printf (g.s0=%xt g.s1=%xn, g.s0, g.s1);g.s0=1; g.s1=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论