C语言结构体习题及答案
整理为word格式 第9章 结构体
1.定义以下结构体类型
struct s
{
int a;
char b;
float f;
};
则语句printf("%d",sizeof(struct s))的输出结果为【 】。
A) 3 B) 7 C) 6 D) 4
2.当定义一个结构体变量时,系统为它分配的内存空间是【 】
A)结构中一个成员所需的内存容量
B)结构中第一个成员所需的内存容量
C)结构体中占内存容量最大者所需的容量
D)结构中各成员所需内存容量之和
3.定义以下结构体类型
struct s
{ int x;
float f;
}a[3];
语句printf("%d",sizeof(a))的输出结果为 【 】
A) 4 B) 12 C) 18 D) 6
4.定义以下结构体数组
struct c
{ int x;
int y;
}s[2]={1,3,2,7};
语句printf("%d",s[0].x*s[1].x)的输出结果为 【 】
A) 14 B) 6 C) 2 D) 21
5.运行下列程序段,输出结果是 【 】
struct country
{ int num;
char name[10];
}x[5]={1,"China",2,"USA",3,"France",4, "England",5, "Spanish"};
struct country *p;
p=x+2;
printf("%d,%c",p->num,(*p).name[2]);
A) 3,a B) 4,g C) 2,U D) 5,S
整理为word格式
6.下面程序的运行结果是【 】。
struct KeyWord
{
char Key[20];
int ID;
}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};
main()
{
printf("%c,%d\n",kw[3].Key[0], kw[3].ID);
}
A) i,3 B) n,3 C) f,4 D) l,4
7.定义以下结构体类型
struct student
{
char name[10];
int score[50];
float average;
}stud1;
则stud1占用内存的字节数是【 】。
A) 64 B) 114 C) 228 D) 7
8.如果有下面的定义和赋值,则使用【 】不可以输出n中data的值。
struct SNode
{
unsigned id;
int data;
}n,*p;
p=&n;
A) p.data B) n.data C) p->data D) (*p).data
9.根据下面的定义,能输出Mary的语句是【】。
struct person
{
char name[9];
int age;
};
struct person class[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};
A) printf("%s\n",class[1].name);
B) printf("%s\n",class[2].name);
C) printf("%s\n",class[3].name);
整理为word格式 D) printf("%s\n",class[0].name);
10.定义以下结构体数组
struct date
{ int year;
int month;
int day; };
struct s
{ struct date birthday;
char name[20];
} x[4]={{2008, 10, 1, "guangzhou"}, {2009, 12, 25, "Tianjin"}};
语句
printf("%s,%d,%d,%d",x[0].name,x[1].birthday.year); 的输出结果为 【 】。
A) guangzhou,2009 B) guangzhou,2008
C) Tianjin,2008 D) Tianjin,2009
11.运行下列程序段,输出结果是【】。
struct country
{ int num;
char name[20];
}x[5]={1, "China", 2, "USA", 3, "France", 4, "England", 5, "Spanish"};
struct country *p;
p=x+2;
printf("%d,%s",p->num,x[0].name);
A) 2,France B) 3,France C) 4,England D) 3, China
12. 定义以下结构体数组
struct
{
int num;
char name[10];
}x[3]={1,"china",2,"USA",3,"England"};
语句printf("\n%d,%s",x[1].num,x[2].name)的输出结果为【 】
A)2,USA
B)3,England
C)1,china
D)2,England
13. 定义以下结构体数组
struct date
{
int year;
int month;
整理为word格式 };
struct s
{
struct date birth;
char name[20];
}x[4]={{2008,8,"hangzhou"},{2009,3,"Tianjin"}};
语句printf("%c,%d",x[1].name[1],x[1].birth.year);的输出结果为【 】
A)a,2008
B)hangzhou,2008
C)i,2009
D)Tianjin,2009
14. 运行下列程序,输出结果是【 】
struct contry
{
int num;
char name[20];
}x[5]={1,"China",2,"USA",3,"France",4,"Englan",5,"Spanish"};
main()
{
int i;
for (i=3;i<5;i++)
printf("%d%c",x[i].num,x[i].name[0]);
}
A)3F4E5S B)4E5S C)F4E D)c2U3F4E
友情提示:本资料代表个人观点,如有帮助请下载,谢谢您的浏览!
C语言练习题1
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)
C语言程序设计习题集(有答案)
高等教育自学考试
C语言程序设计(二)
课程代号(05772)
同步练习题
班级
学号
姓名
二O 一六 年 三 月
目录
第一章 C语言概述
第二章 基本数据类型
第三章 控制结构
第四章 运算符和表达式
第五章 函数
第六章 数组
第七章 字符与字符串
第八章 变量类别与编译预处
第九章 指针
第十章 结构体、共用体和枚举类型
第十一章 文件
1
第一章 C语言概述
一、单项选择题
1. 在计算机上可以直接运行的程序是( )。
A.高级语言程序 B.汇编语言程序
C.机器语言程序 D.C语言程序
2. 一个C语言程序是由( )
A.若干函数组成 B.若干过程组成
C.若干主程序组成 D.若干子程序组成
3. C语言不具有的特点是( )
A.具有结构化的控制语句
B.数据类型丰富
C.语法限制不太严格,程序设计自由度大
D.在可移植性上,C语言比其他语言差
4. 以下叙述不正确的是( )
A.一个C语言程序可由一个或多个函数组成
B.一个C语言程序必须包含一个主函数
C.C语言程序的基本组成单位是函数
D.在C语言程序中,注释说明只能位于一条语句的后面
5. 以下叙述正确的是( )
A.C语言比其他语言高级
B.C语言可以不用编译就能被计算机识别和执行
C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D.C语言出现的最晚,所以具有其他语言的一切优点
二、填空
1. 计算机语言的发展经过了 、 和 等阶段。
2. C语言既适合编写 ,也适合编写应用软件。
标准答案
一、单项选择题
CADDC
二、填空
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语言程序设计课后习题及答案
c语言程序设计课后习题及答案
C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。
习题1:基本数据类型
编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。
```c
#include
int main() {
int a;
float b, sum;
printf("请输入一个整数:");
scanf("%d", &a);
printf("请输入一个浮点数:");
scanf("%f", &b);
sum = a + b;
printf("它们的和是:%f\n", sum);
return 0;
}
```
习题2:条件语句
编写一个程序,根据输入的成绩判断学生的等级。
```c
#include
int main() {
float score;
printf("请输入学生的成绩:");
scanf("%f", &score);
if (score >= 90) {
printf("等级:A\n");
} else if (score >= 80) {
printf("等级:B\n");
} else if (score >= 70) {
printf("等级:C\n");
} else if (score >= 60) {
printf("等级:D\n");
} else {
printf("等级:F\n");
}
return 0;
}
```
习题3:循环结构
编写一个程序,计算1到100的整数之和。
C语言习题四选择结构程序设计
习题四 选择结构程序设计
1. 设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是______。
A、if(x++); B、if(x>y && y!=0); C、if(x>0) x-- D、if(y<0) {;}
else y++; else x++;
解析:本题考查的是if语句。if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。故本题答案选C。
2. 有以下程序
main()
{ int i;
for(i=1;i<=40;i++)
{ if(i++%5==0)
if(++i%8==0) printf ("%d",i);}
printf("\n"); }
执行后的输出结果是______。
A、5 B、24 C、32 D、40
解析:本题考查的是if语句的应用。在满足for 语句条件下,第一个if语句的条件是指i先对5取余后,再自行加1;第二个if语句的条件是指:i=i+1后,再对8取余。故本题答案选C。
3. 在嵌套使用if语句时,C语言规定else总是______。
A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对
C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对
解析:本题考查的是if语句的使用规则。在嵌套使用if语句时,C语言规定else总是和之前与其最近的且不带else的if配对。故本题答案为C。
4. 有以下程序
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
c语言程序设计第五版习题答案
习题解析与答案
第1章C语言概述
一. 简答题
1.概述C语言的主要特点。
【解答】
(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。
(5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?
【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?
【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果
1.输入下面程序并运行。
main()
{
int a1,a2,x;
a1=100;
a2=50;
x=a1-a2;
printf(″x=%d\n″,x);
}
【解答】运行结果为:x=50
2.输入下面程序并运行。
main()
{
int a1,a2,x;
a1=10;
a2=20;
x=a1*a2;
printf(″a1=%d,a2=%d\n″,a1,a2);
printf(″x=%d\n″,x);
}
【解答】运行结果为:a1=10,a2=20
x=200
2 三.编程题
1.参照本章例题,编写一个C程序,用于显示如下信息:
*************************
I love C programs!
*************************
【分析与提示】
①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。
C语言习题结构体和杂类(答案)
C语言习题结构体和杂类(答案)
第十章结构体和杂类一.选择题
1.如下说明语句,则下面叙述不正确的是(C)。
tructtu{inta;floatb;}tutype;A.truct是结构体类型的关键字B.tructtu是用户定义结构体类型
C.tutype是用户定义的结构体类型名(变量名)D.a和b都是结构体成员名
2.在16位PC机中,若有定义:tructdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是(D)。
A.1B.2C.8D.11
A.1和2B.2和3C.7和2D.7和84.以下程序的输出结果是(D)。
unionmyun{truct{int某,y,z;}u;intk;}a;main(){a.u.某=4;a.u.y=5;a.u.z=6;a.k=0;printf(\A.4B.5C.6D.05.当定义一个共用体变量时,系统分配给它的内存是(C)。
A.各成员所需内存量的总和B.结构中第一个成员所需内存量
C.成员中占内存量最大的容量D.结构中最后一个成员所需内存量
6.若有以下程序段:
uniondata{inti;charc;floatf;}a;intn;
则以下语句正确的是(C)。
A.a=5;B.a={2,’a’,1.2}C.printf(“%d”,a);D.n=a; 7.设truct{inta;charb;}Q,某p=&Q;错误的表达式是(d)。
A.Q.aB.(某p).bC.p->aD.某p.b
9.以下对C语言中共用体类型数据的叙述正确的是(c)。
A.可以对共用体变量直接赋值
B.一个共用体变量中可以同时存放其所有成员C.一个共用体变量中不能同时存放其所有成员D.共用体类型定义中不能出现结构体类型的成员
10.下面对typedef的叙述中不正确的是(b)。
A.用typedef可以定义多种类型名,但不能用来定义变量B.用typedef可以增加新类型
C语言程序设计(结构)习题与答案
一、单选题
1、设有定义:
struct complex
{
int real, unreal;
} data1={1,8},data2;
则以下赋值语句中错误的是()。
A.data2.real=data1.unreal;
B.data2=(2,6);
C.data2=data1;
D.data2.real=data1.real;
正确答案:B
2、设有定义:
struct
{char mark[12];
int num1;
double num2;} t1,t2;
若变量均已正确赋初值,则以下语句中错误的是()。
A.t2.num1=t1.num1;
B.t2.num2=t1.num2;
C.t1=t2;
D.t2.mark=t1.mark;
正确答案:D
3、有以下定义语句:
struct student
{int num;
char name[9];
}; 则不能正确定义结构体数组并赋初始值的是( )。
A.struct stu[]={{1,"zhangsan"},{2,"li si"}};
B.struct student stu[2]={{1,"zhangsan"},{2,"li si"}};
C.struct student stu[2]={1, "zhangsan",2,"li si"};
D.struct student stu[]={{1,"zhangsan"},{2,"li si"}};
正确答案:A
4、有以下程序:
#include
struct S
{ int a,b;}data[2]={10,100,20,200};
int main()
{struct S p=data[1];
printf("%d\n",++(p.a));
return 0;}
程序运行后的输出结果是()。
A.11
B.10
C.21
D.20
正确答案:C
5、有以下程序:
c语言选择结构试题带答案
1 / 18
一、 选择题
1. 以下非法的赋值语句是
A: n=(i=2,++i);
B: j++;
C: ++(i+1);
D: x=j>0;
2. 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2 的值是
A: 6
B: 0
C: 2
D: 1
3. 阅读以下程序:
main()
{ int x;
scanf(“%d”,&x);
if(x--<5) printf(“%d”,x);
else printf(“%d”,x++);
}
程序运行后,如果从键盘上输人5,则输出结果是( )。
A: 3
B: 4
C: 5
D: 6
4. 有如下程序
main0
{ int a=2,b=-1,c=2;
if(a
if(b<0) c=0;
else c++
printf("%d\n",c);
}
该程序的输出结果是
A: 0
B: 1
C: 2
D: 3
5. 有以下程序
#include
main() 2 / 18
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是( )。
A: 2,1
B: 3,2
C: 4,3
D: 2,-1
6. 两次运行下面的程序,如果从键盘上分别输入6 和4,则输出结果是
main( )
{ int x;
scanf("%d",&x);
if(x + + >5) printf("%d",x);
else printf("%d\n",x - -); }
A: 7 和5
B: 6 和3
C: 7 和4
D: 6 和4
7. 能表示x 为偶数的表达式是
A: x%2==0
B: x%2==1
C: x%2
D: x%2!=0
8. 下面的程序段中共出现了几处语法错误?
int a,b;
scanf("%d",a);
2016C语言习题全集及答案:第八单元结构体和共用体
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、 程序中有下面的说明和定义
struct abc { int x;char y;}
struct abc s1,s2;
则会发生的情况是 。
A. 编译出错
B. 程序将顺利编译、连接、执行
C. 能顺利通过编译、连接、但不能执行
D. 能顺利通过编译、但连接出错
5、 有如下定义
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);
2 B. printf(" %c\n",class[3].name[1]);
C. prinft(" %c\n",class[2].name[1]);
D. printf(" %c\n",class[2].name[0]);
