结构体与共用体
- 格式:doc
- 大小:49.50 KB
- 文档页数:6


C语言练习题1
第八章结构体与共用体1
练习题
一、c语言基础知识
1.1选择题
1.以下不是c语言的特点的就是(b)。
a.语言简洁紧凑b.能够编制出功能复杂的程序c.c语言可以直接对硬件操作d.c语言移植性好
2.以下字符序列中,不容用做c语言标识符的就是(b)。
a.abc123b.no.1c._123_d._ok3.正确的c语言标识符是(a)。
a._buy_2b.2_buyc.?_buyd.buy?4.恳请挑选出可以用做c语言用户标识符的一组标识符(b)。
a.voidb.a3_b3c.ford.2adefine_123-abcdowordifcasesizeof
5.以下符号中,不属于转义字符的就是(b)。
a.\\\\b.\\0xaac.\\td.\\06.不属于c语言关键字的是(d)。
a.intb.breakc.whiled.character7.就是c语言提供更多的合法关键字的就是(b)。
a.floatb.signedc.integerd.char8.以下不能定义为用户标示符的是(d)。
a.一个主程序和若干子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成
10.c语言程序的基本单位是(c)。
a.程序行b.语句c.函数d.字符
20.下列变量定义中合法的是a
a.short_a=1-.le-1;b.doubleb=1+5e2.5;c.longdo=0xfdal;d.float2_and=1-e-3;
9xn21.与数学式子对应的c语言表达式是(c)。 2x?1a.9*x^n/(2*x-1)b.9*x**n/(2*x-1)c.9*pow(x,n)*(1/(2*x-1))d.9*pow(n,x)/(2*x-1)
结构体与共用体
1.说明一个结构体变量时系统分配给它的内存是
A) 各成员所需要内存量的总和 B) 结构体中第一个成员所需内存量
C) 成员中占内存量最大者所需的容量 D) 结构中最后一个成员所需内存量
2.C语言结构体类型变量在程序执行期间
A) 所有成员一直驻留在内存中 B) 只有一个成员驻留在内存中
C) 部分成员驻留在在内存中 D) 没有成员驻留在内存中
3.设有以下说明语句
struct stu { int a ; float b ; } stutype ;
则下面的叙述不正确的是
A) struct 是结构体类型的关键字 B) struct stu 是用户定义的结构体类型
C) stutype 是用户定义的结构体类型名 D) a和b都是结构体成员名
4.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 【 】 。
struct stud { char num[6]; int s[4]; double ave; } a,*p;
5.程序中有下面的说明和定义
struct abc { int x;char y;}
struct abc s1,s2;
则会发生的情况是
A) 编译出错 B) 程序将顺利编译、连接、执行
C) 能顺利通过编译、连接、但不能执行 D) 能顺利通过编译、但连接出错
6.有如下定义
struct person { char name[9]; int age;};
struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam", 16};
根据上述定义,能输出字母M的语句是
A) prinft(" %c\n",class[3].name); B) printf(" %c\n",class[3].name[1]);
软件学院专业课集训营资料-结构体与共用体专项练习题
1. 设有以下说明语句:
struct ex
{ int x;
float y;
char z;
} example;
则下面的叙述中不正确...的是
A. struct是结构体类型的关键字 B. example是结构体类型名
C. x,y,z都是结构体成员名 D. struct ex是结构体类型名
2. 设有以下说明语句
typedef struct data
{ int n;
char ch[8];
} PER;
则下面叙述中正确的是
A. struct data是结构体变量名 B. PER是结构体类型名
C. typedef struct 是结构体类型 D. struct 是结构体类型名
3. 在程序VC6.0下,若有如下定义:
struct data
{ int i;
char ch;
double f;
} b;
则结构体变量b占用内存的字节数是
A. 13 B. 3 C. 8 D. 11
4. 以下程序在VC6.0下的运行结果是
#include
main()
{ struct date
{ int year,month,day; }today;
printf("%d\n",sizeof(struct date)); }
A. 6 B. 8 C. 10 D. 12
5. 设有如下定义:
struct sk
{ int a;
float b;
} data,*p;
若有p=&data,则对data中的成员a的正确引用是
A. (*p).data.a B.(*p).a C. p->data.a D. p.data.a
6. 以下对结构体变量stu1中成员age的非法..引用的是
struct student
一、 结构体
结构体是一种复合数据类型,是不同类型数据的集合,在C语言中并没有给出具体的结构图类型,但是给出了定义结构体的方法。所以通常把结构体也称为自定义类型。
1.1 结构体的定义
struct {
类型 结构体成员名;
类型 结构体成员名;
… …
};
例如:
struct student {
int sno;
int age;
char name[30];
};
在程序中用 struct student 来表示该结构体的类型。
1.2 结构体变量的定义
1.2.1 常规定义
struct student {
int sno;
char name[30];
float score;
};
struct student std1; //st1是结构体变量
1.2.2 与类型同时定义
struct student {
int sno;
char name[30];
float score;
} std2; //st2是结构体变量
1.2.3 直接定义
struct {
int sno;
char name[30];
float
score;
} std3; //st3是结构体变量
1.3 结构体变量的初始化
1.3.1 完全初始化
按照成员的先后顺序依次给每一个成员赋值。
struct student st1 = {1001,"张飞",98.9};
1.3.2 部分初始化
按照成员的先后顺序依次给前若干个成员赋值。 struct student st1 = {1001,"张飞"};
1.3.3 指定成员初始化
不按顺序给某些成员赋值
struct student st1 = {.name="关羽", .score=100};