C题库--自定义数据类型(精)
C 题库
![C 题库](https://img.taocdn.com/s3/m/0c5c8cc26137ee06eff9185d.png)
30. 在C语言中,用关键字[<char>]定义字符型变量。
31. 在Turbo C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是[<.exe>]。
32. 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为[<1>].
printf("%d%c",a,b);
}
35. 若有定义:int a=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是[<1>]。
c=(a-=(b-5));
c=(a%3)+(b=1);
36. 复合语句在语法上被认为是[<一条语句>]。
37. 执行下列程序时,输入1234567<CR>,则输出结果是[<12 34>]。
87. 执行语句int i=2; int *p; p=&i;后,*p的值为[<2>]。
88. 设有char *a="ABCD",则printf("%c", *a)的输出是[<A>]。
89. 若d是已定义的双精度变量,再定义一个指向d的指针变量p的代码是[<double *p
= &d>]。
43. 以下程序段的输出结果是[<死循环>]
int k,n,m;
n=10;m=1;k=1;
while(k<=n) m*=2;
printf("%d\n",m);
44. 已有定义:char c='';int a=1,b;执行b!=c&&a;后b的值为[<0>]。
7、用户自定义数据类型
![7、用户自定义数据类型](https://img.taocdn.com/s3/m/bdc735df0408763231126edb6f1aff00bed570d0.png)
7、⽤户⾃定义数据类型1、结构体 1.1、结构体的定义 在实际的处理对象中,有许多信息是由多个不同类型的数据组合在⼀起进⾏描述,⽽且这些不同类型的数据是互相联系组成了⼀个有机的整体。
此时,就要⽤到⼀种新的构造类型数据-----结构体,简称结构。
结构体的使⽤为处理复杂的数据结构(如动态数据结构等)提供了有效的⼿段,⽽且,它们为函数间传递不同类型的数据提供了⽅便。
结构体和数组⼀样,也是⼀种构造型数据类型,是⽤户⾃定义的新数据类型,在结构体中可以包含若⼲个不同数据类型和不同意义的数据项(当然也可以相同),从⽽使这些数据项组合起来反映某⼀个信息。
结构体是⼀种构造数据类型,结构体的语法如下:Struct 结构体名{数据类型成员名1;数据类型成员名2;数据类型成员名3;….数据类型成员名n;}; 在花括号中的内容也称为“成员列表”或“域表”。
其中每个成员的命名规则与变量名相同,成员之间⽤“;”作为结束符,整个结构的定义也⽤“;”作为结束符,数据类型可以是基本变量类型、数组类型、结构体类型、联合体类型或枚举类型等。
先定义结构体类型,再定义结构体变量。
结构体中的成员名可以与程序中的变量名相同,⼆者并不代表同⼀对象,编译程序可以⾃动对它们进⾏区分。
定义结构体类型时不会分配空间,只有⽤结构体类型定义变量时才会分配空间。
总结⼀下结构体类型的特点: (1)、结构体类型是⽤户⾃⾏构造的 (2)、它由若⼲不同的基本数据类型的数据构成 (3)、它属于C语⾔的⼀种数据类型,与整形、浮点型相当。
因此,定义它是不分配空间,只有⽤它定义变量时才分配空间。
1.2、结构体变量的声明、使⽤及初始化 1.2.1、结构体变量的声明 在定义了结构体类型后,就可以声明结构体类型的变量。
有下⾯⼏种形式: (1)、先定义结构体类型,再定义变量名Struct 结构体名{类型成员名;类型成员名;};Struct 结构体名变量名1,变量名2…;这⾥的结构体名是结构体的标识符,不是变量名。
自定义数据类型习题及答案(C语言)
![自定义数据类型习题及答案(C语言)](https://img.taocdn.com/s3/m/168b50c4aa00b52acfc7ca4d.png)
A)y=1976;B)birthday.y=1976;
C)p.birthday.y=1976;D)p.y=1976;
9.若有以下说明语句:
structp
{ char name[20];
intage;
char sex;
}a={“liming”,20,‘m’},p=&a;
则对字符串“liming”的错误引用方式是【】。
{
structdate birth;
char name[20];
} x[4]={{1977,8,"hangzhou"},{1975,9,"Tianjin"}};
语句printf("%S,%d",x[0].name,x[1].birth.year);的输出结果为【】。
A) a,1977B)hangzhou,1975
A)Beijing,8B) Nanjin,9
C) Beijing,2010 D) Nanjin,1999
16.运行下列程序段,输出结果是【】。
structcountry
{
intnum;
char name[20];
}x[5]={1,”china”,2,”USA”,3,”France”,4,”England”,5,”Spanish”};
structcountry *p;
p=x+3:
printf(“%d,%c",*p.num,(*p)name[2]);
A)3,aB)4,gC)2,UD)5,S
17.在以下程序段中,已知int型数据占两个字节,则输出结果是【】。
union un
{
intI;
double y;
C程序设计题库及答案(精简)
![C程序设计题库及答案(精简)](https://img.taocdn.com/s3/m/c8273211eefdc8d376ee3223.png)
【章节】第1章 C++基础知识【知识点】1、 C++程序的构成与书写形式;2、基本数据类型,常量、变量和表达式3、 C++的标准输入输出【单选题】1、在C++中,源程序变为可执行程序的正确顺序应该是( ) 。
A. 编辑、链接、编译、执行B. 编辑、编译、链接、执行C. 编译、编辑、链接、执行D. 编译、链接、编辑、执行答案:B2、要把高级语言编写的源程序转换为目标程序,需要使用( ) 。
A. 编辑程序B. 驱动程序C. 调试程序D. 编译程序答案:D3、下列关于C++与C语言的关系描述中,错误的是( ) 。
A. C语言是C++语言的一个子集B. C++与C语言是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的答案:D4、下面为使用面向对象语言的正确理由是( ) 。
A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构B. 程序语句比面向过程语言简单C. 面向对象程序设计可以设计为自行修改错误D. 面向对象程序很容易概念化答案:D5、以下选项中,合法的用户标识符是( ) 。
A. longB. _2TestC. 3DmaxD. A.dat答案:B6、下列描述中正确的是( ) 。
A. 不是每个C++程序都必须包含预处理命令#includeB. C++程序必须有return 语句C. C++程序中的变量必须定义在主程序内部D. C++程序中所使用的符号常量可以不进行定义答案:A7、C++源程序文件的扩展名为( ) 。
B. .CC. .DLLD. .EXE答案:A8、cout是I0流库预定义的( ) 。
A. 类B. 对象C. 包含文件D. 常量答案:B9、 C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D10、下列选项中,( ) 是不合法的标识符.A. ProgramB. Obj23C. doubleD. B_C_D答案:C11、下列标识符中,不合法的用户标识符为( ) 。
C语言-基本数据类型
![C语言-基本数据类型](https://img.taocdn.com/s3/m/bf48a713581b6bd97f19eab8.png)
C语言-基本数据类型在我们玩游戏的时候,游戏中的角色是有类型的,有敏捷型、力量型、法术型等等。
同样C语言中的数据也是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。
如图所示:这里我们先给大家讲解基本数据类型中最简单也是最常用的整型、实型与字符型。
整型数据是指不带小数的数字。
生活中有很多信息适合使用整型数据来表示,比如:人的年龄、班级的人数、书的总页数等等。
因此整型的类型比较多:注:int、short int、long int是根据编译环境的不同,所取范围不同。
而其中short int和long int至少是表中所写范围,但是in t在表中是以16位编译环境写的取值范围。
另外c语言int的取值范围在于他占用的字节数,不同的编译器,规定是不一样。
ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。
但是在VC里,一个int是占4个字节的。
浮点数据是指带小数的数字。
生活中有很多信息适合使用浮点型数据来表示,比如:人的体重(单位:公斤)、商品价格、圆周率等等。
因为精度的不同又分为3种:注:C语言中不存在字符串变量,字符串只能存在字符数组中,这个后面会讲。
任务小明今年15岁,身高只有162CM,可是体重已经有82.5公斤了,小明是否属于肥胖儿童呢?我们如何用程序描述这个情形呢?在右边编辑器中在第4、5、6行中将变量的类型补全运行结果:不会了怎么办年龄和身高可以使用int类型,体重带有小数,可以使用float或d ouble类型;是否属于肥胖儿童,可以使用’y’或者’n’字符类型来表示。
C语言 第八章.用户自定义数据类型
![C语言 第八章.用户自定义数据类型](https://img.taocdn.com/s3/m/41ca1500581b6bd97f19ea2f.png)
u2占2个字节
例:以下程序输出结果是?
union example { struct { int x,y; e.b e.a e.in.x }in; e.in int a; e.in.y int b; }e; void main() { e.a=1;e.b=2; e.in.x=e.a*e.b; e.in.y=e.a+e.b; printf("%d,%d",e.in.x,e.in.y); }
内存低地址 01100001 00001010
字符变量c占1个字节
整型变量i占2个字节 单精度实型变量f占4个字节
u1.i=10;
例:以下程序输出结果是?
union u_type { char c[2]; u1
p
内存高地址 内存低地址 ‘a’ ‘b’ c1 c2 c[1] c[0] u1占2个字节 内存高地址 内存低地址 ‘A’ ‘B’ ‘a’ ‘b’ c1 c2 c[1] c[0]
{"0208103322","lisi",19,'M'},{"0208103323","lili",20,'F'}, {"0208103324","xulin",21,'M'}};
学号(number) 姓名(name) 年龄(age) 性别(sex)
stu[0] stu[1] stu[2] stu[3]
char name[8];
int age; char sex;
定义结构体类 sizeof(stu) 型的同时创建 =? 结构体数组
Hadoop基础(习题卷18)
![Hadoop基础(习题卷18)](https://img.taocdn.com/s3/m/bf5e7f723868011ca300a6c30c2259010202f3fe.png)
Hadoop基础(习题卷18)第1部分:单项选择题,共53题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]下列不属于Python中Flask框架特点的是?A)内置开发服务器和调试器B)与Python单元测试功能无缝衔接C)使用Jinja2模板D)端口号固定为5000,且无法修改答案:D解析:2.[单选题]在Java中,方法resume( )负责重新开始▁▁线程的执行A)被stop( )方法停止B)被sleep( )方法停止C)被wait( )方法停止D)被suspend( )方法停止答案:D解析:3.[单选题]在Java中,假如电脑上E盘没有xxx目录,则下面程序功能描述正确是_x000D_File file1=new File("e:\\xxx\\yyy"); file1.mkdir()A)在当前目录下生成子目录:\xxx\yyyB)在E盘自动创建xxx/yyy目录C)在当前目录下生成文件xxx.yyyD)代码执行后E盘不会产生任何目录答案:D解析:4.[单选题]在Hadoop上提交Job时不涉及哪个实体()A)客户端B)HDFSC)SecondaryNodeD)JobTracker答案:C解析:5.[单选题]下面哪些不是引起 Spark 负载不均的原因?( )A)Spark 读入的数据源是倾斜的B)Shuffle 阶段 Key 值过于集中C)在数据过滤阶段需要处理的数据量差异D)Spark 的运行方式差异答案:D解析:6.[单选题]配置Hadoop时,JAVA_HOME包含在哪一个配置文件中?A)hadoop-default.xmlC)hadoop-site.xmlD)configuration.xml答案:B解析:7.[单选题]在 hadoop 配置中 yarn-site.xml 作用是( )A)用于定义系统级别的参数B)用于名称节点和数据节点的存放位置C)用于配置 JobHistory Server 和应用程序参数D)配置 ResourceManager,NodeManager 的通信端口答案:D解析:8.[单选题]HDFS中的block默认保存____份。
C题库(全)
![C题库(全)](https://img.taocdn.com/s3/m/9c999979a45177232f60a2c6.png)
知识点编号题型题干选项A 1-1单选____是中央处理器的简称CPU1-1单选"Intel® Core™ i7-3537U Processor (4M Cache, up to3.10 GHz)"中"i7-3537U"是指____CPU的型号1-1单选Intel® Core™ i7-3537U Processor (4M Cache, up to3.10 GHz)中"3.10 GHz"是指____CPU的型号1-1单选在微型计算机中,微处理器的主要功能是进行____逻辑运算1-1单选计算机硬件系统主要包括存储器、输入设备、输出设备和____中央处理器1-1单选多核CPU各内核之间通过____共享数据内存1-1单选运算器虽由许多部件组成,但核心部分是____.数据总线1-1单选CPU主要包括____.控制器1-1单选“冯•诺依曼计算机”的体系结构主要分为____五大组成外部存储器、内部存储器、CPU、显示、打印1-2单选下列____属于应用软件。
操作系统1-2单选计算机中的指令执行过程分为取出指令、____和执行指令三个阶段。
显示指令1-2单选一条计算机指令中规定其执行功能的部分称为____。
源地址码1-2单选下列描述中正确的是程序就是软件1-3单选计算机的应用领域可大致分为6个方面,下列选项中属于这几项的是____。
计算机辅助教学、专家系统、人工智能1-3单选CAI是____的缩写。
计算机辅助设计1-3单选CAM是____的缩写。
计算机辅助设计1-3单选在信息时代,计算机的应用非常广泛,主要有如下几大领域:科学计算、信息处理、过程控制、计算机辅助工程、家庭生活和军事应用1-3单选当前气象预报已广泛采用数值预报方法,这种预报方法会涉及计算机应用中的____。
科学计算和信息处理1-3单选计算机的应用原则上分为____两大类。
C语言考试题库 含答案
![C语言考试题库 含答案](https://img.taocdn.com/s3/m/c5881156647d27284b735184.png)
cC语言程序的基本单位是__________ A) 程序行 B) 语句 C) 函数 D) 字符C C语言程序的三种基本结构是__________ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构AC语言规定,程序中各函数之间A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用A C语言中可处理的文件类型是( )A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件B C语言可执行程序的开始执行点是( ) A) 程序中第-条可执行语句 B) 程序中第-个函数 C) 程序中的main函数 D) 包含文件中的第-个函数C不是C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char C C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *A C语言中函数返回值的类型是由( )决定。
A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型D C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为___________。
A .该数组的长度 B.该数组的元素个数 C. 该数组中各元素的值 D.该数组的首地址D C语言中数组下标的下限是___________ A、1 B、0 C、视具体情况 D、无固定下限B C语言中提供的合法关键字是__________ A、swith B、cher C、cese D、default D C语言中文件的存取方式是____________________。
A.顺序存取 B.随机存取 C.顺序存取、随机存取均可 D.顺序存取、随机存取均不可C C语言中最简单的数据类型包括A) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型B sizeof(float)是( )A.-种函数调用B.-个不合法的表示形式C.-个整型表达式D.-个浮点表达式C x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);B 表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1D 表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)A 程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是__________ A) 65536 B) 0 C) 有语法错误,无输出结果 D) -1B 当调用函数时,实参是-个数组名,则向函数传送的是__________ A.数组的长度 B.数组的首地址 C.数组每-个元素的地址 D.数组每个元素中的值B对嵌套子程序调用说法正确的是__________。
C语言题库数组(2021年整理精品文档)
![C语言题库数组(2021年整理精品文档)](https://img.taocdn.com/s3/m/ecead589561252d380eb6ee3.png)
(完整版)C语言题库数组编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)C语言题库数组)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)C语言题库数组的全部内容。
数组一、选择题1、假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组X在内存中所占字节数是(B).A 3B 6C 10D 202、执行下面的程序段后,变量k 中的值为(A).int k=3, s[2];s[0]=k; k=s[1]*10;A 不定值B 33C 30D 103、设有数组定义: char array []="China”; 则数组array 所占的空间为(C)。
A 4 个字节B 5 个字节C 6 个字节有0/的结束标志D 7 个字节4、下列描述中不正确的是 CA 字符型数组中可以存放字符串B 可以对字符型数组进行整体输入、输出C 可以对整型数组进行整体输入、输出D 不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值5、给出以下定义char x[]=”abcdefg”;char y[ ]={’a’,'b’,’c','d’,'e','f’,’g'};则正确的叙述为 CA 数组X 和数组Y 等价B 数组x 和数组Y 的长度相同C 数组X 的长度大于数组Y 的长度D 数组X 的长度小于数组Y 的长度6、下述对C 语言字符数组的描术中错误的是 CA 字符数组可以存放字符串B 字符数组中的字符串可以整体输入、输出C 可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值D 不可以用关系运算符对字符数组中的字符串进行比较7、定义如下变量和数组int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 Cfor(i=0;i<3;i++) printf(”%d",x[i][2—i]);A 1 5 9B 1 4 7C 3 5 7D 3 6 98、以下一维数组a 的正确定义是(D)A int a(10);B float n=10,a[n];C int n;scanf(”%d”,&n);float a[n];D #define size 10; long a[size];9、合法的数组定义是 DA int a[]="string";B int a[5]={0,1,2,3,4,5};C vhst s="string";D char a[]={0,1,2,3,4,5};10、以下关于数组的描述正确的是CA 数组的大小是固定的,但可以有不同的类型的数组元素;B 数组的大小是可变的,但所有数组元素的类型必须相同;C 数组的大小是固定的,但所有数组元素的类型必须相同;D 数组的大小是可变的,但可以有不同的类型的数组元素;11、在定义int a[10];之后,对a 的引用正确的是 AA a[9]B a[6.3]C a(6)D a[10]12、以下对一维数组a 进行不正确初始化的是 AA int a[10]=(0,0,0,0);B int a[10]={};C int a[]={0};D int a[10]={10*2};13、以下对二维数组a 进行正确初始化的是 BA int a[2][3]={{1,2},{3,4},{5,6}};B int a[][3]={1,2,3,4,5,6};C int a[2][]={1,2,3,4,5,6};D int a[2][]={{1,2},{3,4}};14、以下对字符数组进行不正确初始化的是 AA static char word[]=’cool\0’;B static char word[]={‘c’,’o’,’o’,’l’};C static char word[]={“cool\0”};D static char word[]="cool\0”;15、在定义int a[5][4];之后,对数组元素的引用正确的是 CA a[2][4]B a[5][0]C a[0][0]D a[0,0]16、下列选项中,能正确定义数组的语句是 DA int num[0。
C语言程序设计第2章 数据类型与运算练习题及解答
![C语言程序设计第2章 数据类型与运算练习题及解答](https://img.taocdn.com/s3/m/a74d9123f524ccbff12184de.png)
第2章数据类型和运算符习题及解答一.选择题。
1.下列是用户自定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int 是C语言的关键字。
语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语言的数据类型。
在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表示只给前面的3个成员赋值,后7个元素的值为0,所以,一共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。
6.下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。
C语言期末考试题库(第一章 c语言基础知识)
![C语言期末考试题库(第一章 c语言基础知识)](https://img.taocdn.com/s3/m/e87585f8011ca300a6c390dd.png)
C语言考研题库(第一章c语言基础知识)一、单项选择1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为().A、关系运算,赋值运算,算术运算B、算术运算,关系运算,赋值运算C、算术运算,赋值运算,关系运算D、关系运算,算术运算,赋值运算答案:B2.下述正确的C语言常量是:().A、E2B、3e-3C、1.5E2.5D、5.0E答案:B3.使用共用体变量,不可以().A、进行动态管理B、节省存储空间C、同时访问所有成员D、简化程序设计答案:C4.为表示关系x>=y>=z,应使用C语言表达式为:()A、(x>=y)&(y>=z)B、(x>=y>=z)C、(x>=y)&&(y>=z)D、(x>=y)AND(y>=z)答案:C5.以下程序的输出结果是().main(){char str[]="ABCD",*p=str;printf("%s\n",p);}A、68B、ABCDC、不确定的值D、字符D的地址答案:B6.char a[10];不能将字符串"abc"存储在数组中的是().A、a="abc";B、a[0]=0;strcat(a,"abc");C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;D、strcpy(a,"abc");答案:A7.fscanf函数的正确调用形式是().A、fscanf(文件指针,格式字符串,输入表列);B、fscanf(格式字符串,文件指针,输出表列);C、fscanf(fp,格式字符串,输出表列);D、fscanf(格式字符串,输出表列,fp);答案:A8.下列数组说明中正确的是().A、int array[][]={1,2,3,4,5,6,7,8,9,10};B、int array[][][5]={1,2,3,4,5,6,7,8,9,10};C、int array[][4]={1,2,3,4,5,6,7,8,9,10};D、int array[3][]={1,2,3,4,5,6,7,8,9,10};答案:C9.以下选项中,与k=n++完全等价的表达式是().A、n=n+1,k=nB、k+=n+1C、k=++nD、k=n,n=n+1答案:D10.针对下列程序段回答问题().for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%3d",t);}A、printf函数永远也不执行B、当x<0时整个循环结束C、x>=0时什么也不输出D、最多允许输出100个非负整数答案:D11.以下正确的字符串常量是()A、"\\\"B、'A'C、'abc'D、OlympicGames答案:A12.如下说法不正确的是().A、若a为真b为假,则a||b为真B、若a为真b为假,则a&&b为假C、若a为真b为假,则! a-1&&b为真D、若a为真,则! a为假答案:C13.C语言中,用于结构化程序设计的三种基本结构是().A、for,while ,do-whileB、顺序结构,选择结构,循环结构C、if,switch,breakD、if,for,continue答案:B14.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是().A、t[3]B、t[2]C、&t[3][2]D、&t[1]答案:B15. 下列运算符中优先级最高的是().A、<B、&&C、+D、!=答案:C16.C语言程序中,必须有的函数是().A、main()B、#include"stdio.h"C、scanfD、printf答案:A17.已定义char a[10];和char *p=a;,下面的赋值语句中正确的是().A、*p="Turbo c";B、p="Turbo c";C、a[10]="Turbo c";D、a="Turbo c";答案:B18.以下叙述正确的是().A、可以把if定义为用户标识符,但不能把define定义为用户标识符B、define和if 都不能定义为用户标识符C、可以把define和if定义为用户标识符D、可以把define定义为用户标识符,但不能把if定义为用户标识符答案:D19.若已定义x为int类型变量,下列语句中,说明指针变量p的正确语句是().A、*p=*x;B、int *p=x;C、int *p=&x;D、int p=&x;答案:C20.以下叙述中,正确的是().A、花括号"{"和"}"只能作为函数体的定界符B、构成C程序的基本单位是函数,所有函数名都可以由用户命名C、分号是C语句之间的分隔符,不是语句的一部分D、C程序中,注释部分可以出现在程序中,任意合适的地方答案:D21.以下能对二维数组a进行正确初始化的语句是().A、int a[][3]={{1,2,3},{4,5,6}};B、int a[2][]={{1,0,1},{5,2,3}};C、int a[2][4]={{1,2,3},{4,5},{6}};D、int a[][3]={{1,0,1}{},{1,1}};答案:A22.C语言中,double 类型数据占().A、8个字节B、4个字节C、2个字节D、1个字节答案:A23.经过下列的语句int j,a[10],*p=a;定义后,下列语句中,合法的是().A、p=a[5];B、p=a[2]+2;C、p=p+2;D、p=&(j+2);答案:C24.定义char s[10],*p=s;,则下面编译不能通过的语句是().A、s=p+s;B、s[2]=p[4];C、p=s+5;D、*p=s[0];答案:A25.以下函数调用语句中,实参的个数是().exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6答案:A26.若x=2,y=3,则x||y的结果是()A、0B、3C、2D、1答案:D27.已知x=43,ch='A',y=0;,则表达式(x>=y&&ch<'B'&&!y)的值是().A、"假"B、语法错C、0D、128.下面四个选项中均是不合法的浮点数的选项是().A、-e3.234 1e3B、123 2e4.2.e5C、-.18 123e4 0.0D、160.0.12 e3答案:B29.以下函数调用语句中,实参的个数是().fun c((e1,e2),(e3,e4,e5));A、3B、5C、语法错误D、2答案:D30.已定义:float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().y+x=4.62,y-x=2.12A、printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);B、printf("y+x=%f,y-x=%f\n",y+x,y-x);C、printf("y+x=%6f,y=%6f\n",y+x,y-x);D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);答案:A31.执行下面程序段后,ch的值是().char ch='a';ch=(ch>='A'&&ch<='Z')?(ch+32):ch;A、AB、zC、ZD、a32.在C语言的函数中,下列正确的说法是().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案:B33.以下正确的描述是().A、在循环中,break语句不能独立出现B、只能用continue语句来终止本次循环C、goto语句只能用于退出多层循环D、switch语句中,不能出现continue语句答案:B34.C语言中,运算对象必须是整型的运算符是().A、〈=B、%=C、=D、/答案:B35.下面不正确的字符串常量是().A、"0"B、""C、"12'12"D、'abc'答案:D36. fwrite函数的一般调用形式是().A、fwrite(buffer,count,size,fp);B、fwrite(fp,count,size,buffer);C、fwrite(fp,size,count,buffer);D、fwrite(buffer,size,count,fp);答案:D37.以下定义语句中错误的是().A、int a[]={1,2};B、int n=5,a[n];C、char *a[3];D、char s[10]="test";答案:B38.下列正确的标识符是().A、%yB、a+bC、6aD、_do答案:D39.C语言源程序的基本单位是().A、子程序B、过程C、标识符D、函数答案:D40. 若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时, ()是正确的输入A、20 30 40B、2030,40C、20,30,40D、20,30 40答案:C41.设有如下程序,请选择正确答案().#include<stdio.h>main(){int **k,*j,i=100;j=&i,k=&j;printf("%d\n",**k);}A、100B、i的地址C、j的地址D、运行错误答案:A42.若定义:int a=511,*b=&a;,则printf("%d\n",*b);的输出结果为().A、a的地址B、无确定值C、511D、512答案:C43.以下叙述中,不正确的是().A、C程序中的#include和#define 均不是C语句B、在C程序中,赋值运算符的优先级最低C、在C程序中,j++;是一条赋值语句D、一个好的程序应该有详尽的注释答案:B44.下面叙述中错误的是().A、若一个函数没有return语句,则什么值也不会返回B、一般来说,函数的形参和实参的类型要一致C、函数的形式参数,在函数未被调用时就不被分配存储空间D、若函数的定义出现在主调函数之前,则可以不必再加说明答案:A45.设有如下程序段:int k=10;while(k==0)k--;,则下述说明中正确的是().A、循环体执行一次B、死循环C、循环体一次也不执行D、循环体执行10次答案:C46.表示关系x>0且y<=10的C语言表达式为().A、(x<=0)AND(y<=10)B、(x>0)&&(y<=10)C、x>0,y<=10D、(x<=0)&(y<=10)答案:B47.以下叙述不正确的是().A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序可由一个或多个函数组成D、一个C源程序必须包含一个main()函数答案:B48.C语言提供的合法的数据类型关键字是().A、floatB、unsignedC、charD、int eger答案:B49.所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:().A、6B、7C、8D、2答案:C50.以下符合C语言语法的赋值表达式是().A、d=9+e+f=d+9B、d=9+e,e++,d+9C、d=9+eD、d=9+e++=d+7答案:C51.下面对函数的叙述,正确的是().A、函数中无论是否有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套定义D、函数的返回值是通过return语句获得的答案:C52.整型变量x=1,y=3,经下列计算后,x的值不等于6的是().A、x=(x=1+2,x*2)B、x=9-(--y)-(--y)C、x=y*4/2D、x=y>2?6:5答案:B53.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:() x=y=z=1;t=++x||++y&&++z;A、1B、不定值C、2D、0答案:A54.下列字符序列中不可用作C语言标识符的是().A、a_1B、#abC、symbolD、b70答案:B55.C语言执行程序的开始执行点是().A、包含文件中的第一个函数B、程序中,第一个函数C、程序中的main()函数D、程序中,第一条可以执行语言答案:C56.下列运算符优先级最低的是().A、&&B、+C、=D、!答案:C57.下面所列的语句行中能正确进行赋字符串操作的语句行是().A、char st[4][5]={"ABCDE"};B、char s[5]={'A','B','C','D','E'};C、char *s;scanf("%c",s);D、char *s;s="ABCDE";答案:D58.以下正确的函数定义形式是().A、double fun(int x,int y)B、double fun(int x;int y)C、double fun(int x,y);D、double fun(int x,int y);答案:A59.下列变量中合法的是().A、$ABCB、B.C.TomC、3a6bD、_6a7b答案:D60.以下标识符中可以作为用户函数名的是().A、unionB、intC、structD、go_to答案:D61.判断两个字符串是否相等,正确的表达方式是().A、while(strcmp(s1,s2)=0)B、while(strcmp(s1,s2)==0)C、while(s1==s2)D、while(s1=s2)答案:B62.下面各语句中能正确进行赋字符串操作的语句是().A、char st[][]={"ABCDE"};B、char s2[6]={'A','B','C','D','E'};C、char s1[5][]={"ABCDE"};D、char s[5]={'A','B','C','D','E'};答案:B63.下列数据中属于"字符串常量"的是().A、'ABC'B、ABCC、"ABC"D、'A'答案:C64.C语言中的文件的存储方式有().A、可以顺序存取,也可随机存取B、只能随机存取(或直接存取)C、只能顺序存取D、只能从文件的开头进行存取答案:A65.putchar函数可以向终端输出一个().A、字符或字符型变量值B、整型变量表达式值C、实型变量值D、字符串答案:A66.下面叙述中正确的是().A、声明函数时必须明确其参数类型和返回类型B、函数可以返回一个值,也可以什么值也不返回C、空函数在不完成任何操作,所以在程序设计中没有用处D、对于用户自己定义的函数,在使用前必须加以声明答案:B67.以下标识符中不能作为合法的C用户定义标识符的是().A、_123B、voidC、ifD、a3_b3答案:B68.将字符串Turbo赋给字符数组word,则下面错误的说明语句是().A、char word[]={"Turbo\0"};B、char word[]="Turbo\0";C、char word[]={'T','u','r','b','o','\0'};D、char word[]='Turbo\0';答案:D69.用下面的scanf函数输入数据,使得i=10,j=15,选择正确的键盘输入方法:().(用[CR]表示回车)main(){int i,j;scanf("i=%d,j=%d",&i,&j);}A、i=10,j=15[CR]B、i=10Uj=15[CR]C、10U15[CR]D、10,15[CR]答案:A70.跳过当前循环体内容,继续执行下一次循环的语句是()A、continue语句B、return语句C、break语句D、空语句答案:A71.设有以下定义:int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;,则数值为6的表达式是().A、p+5B、*p+6C、*p+=5D、*(p+6)答案:C72.以下程序段执行后输出的结果是().char str[]="ABCD",*p=str;printf("%d\n",*(p+4));A、不确定的值B、字符'D'的地址C、68D、0答案:D73.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法().(用"[CR]"表示回车,U表示空格)main(){int i,k;scanf("i=%d,k=%d",&i,&k);}A、10U15[CR]B、i=10,k=15[CR]C、i=10[CR]k=15[CR]D、10,15[CR]答案:B74.设有如下的程序段:char str[]="Hello";char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为().A、'\0'B、'o'C、'o'的地址D、不确定的值答案:A75.定义int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中,0≤i≤9,则对a数组元素的引用不正确的是().A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))答案:D76.以下字符中,不是转义字符的是().A、'\b'B、'\\'C、'\c'D、'\a'答案:C77.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、10<a<15B、!(a<=10)&&!(a>=15)C、a>10&&a<15D、a==11||a==12||a==13||a==14答案:A78.在C语言中,存储类型为()的变量只在使用它们时才占用存储空间.A、static 和autoB、register和autoC、register和externD、static 和register答案:B79.已知键盘输入a=4,b=3,下面程序输出的结果是().main(){int a,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}A、13B、9C、16D、15答案:C80.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是().A、"ab"B、"wb+"C、"rb+"D、"ab++"答案:B81.设有如下说明和语句,请选出哪个是对c数组元素的正确引用(). int c[4][5],(*cp)[5];cp=c;A、*(*cp+2)B、*(cp+3)C、cp+1D、*(cp+1)+3答案:A82.以下标识符中不能作为合法的C用户定义标识符的是().A、forB、printfC、sizeofD、WORD答案:C83.在定义构造数据类型时,不能().A、末尾不写分号B、说明变量C、初始化D、说明存储类型答案:A84.以下叙述中,错误的是().A、用户所定义的标识符应尽量做到"见名知意"B、用户所定义的标识符必须以字母或下划线开头C、用户所定义的标识符允许使用关键字D、用户定义的标识符中,大,小写字母代表不同标识答案:C85.选择正确的输入语句().:(其中:char string[20];)使得string的内容为"I am student".A、scanf("%s",string);B、scanf("%c",&string);C、scanf("%s",&string);D、gets(string);答案:D86.以下选项中,合法的实型常数是().A、.2E0B、1.3EC、E-3D、5E2.0答案:A87.若int a=2,则执行完表达式a -=a+=a*a后,a的值是().A、-4B、0C、-8D、-2答案:B88.设a,b和c都是int型变量,且a=3,b=4,c=5,下面表达式中值为0的表达式是().A、a<=bB、'a'&&'b'C、!((a<b)&&!c||1)D、a||b+a&&b-c答案:C89.定义char b[5],*p=b;,则能正确赋值的语句是().A、*p="abcd";B、p="abcd";C、*b="abcd";D、b="abcd";答案:B90.能正确表示a>=10或a<=0的关系表达式是:()A、a>=10||a<=0B、A>=10 or a<=0C、a>=10&a<=0D、a>=10|a<=0答案:A91.设有如下定义:struct sk{int a;float b;}data,*p;若要使p指向data中的a域,正确的赋值语句是().A、p=(struct sk*)data.a;B、p=&data.a;C、*p=data.a;D、p=(struct sk*)&data.a;答案:D92.若变量已正确定义且k 的值是4,计算表达式(j=4,k--)后,j和k的值为().A、j=3,k=3B、j=3,k=4C、j=4,k=4D、j=4,k=3答案:D93.当说明一个结构体变量时系统分配给它的内存是().A、结构中,第一个成员所需内存量B、成员中,占内存量最大者所需的容量C、结构中,最后一个成员所需内存量D、各成员所需内存量的总和答案:D94.int(*p)[6];它的含义为().A、具有6个元素的一维数组B、定义了一个指向具有6个元素的一维数组的指针变量C、指向整型指针变量D、指向6个整数中的一个的地址答案:B95.若有说明语句:char c='\72';,则变量c().A、包含1个字符B、说明不合法,c的值不确定C、包含2个字符D、包含3个字符答案:A96.以下表述中正确的是().A、do-while 循环中while 语句不能省略B、在do-while 循环中while 表达式的值不能为"假"C、除了for 循环,其他循环中都不能使用复合语句D、do-while 循环中while(表达式)后面不能加分号答案:A97.能正确表示a和b同时为正或同时为负的逻辑表达式是:()A、(a+b>0)&&(a+b<=0)B、(a>=0||b>=0)&&(a<0||b<0)C、a*b>0D、(a>=0&&b>=0)&&(a<0&&b<0)答案:C98.下面错误的说明语句是().A、int(*a)[10];B、int a[][];C、int a['a'];D、int *a[10];答案:B99.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是().A、65,66B、A,BC、A,68D、65,68答案:A100. 在C语言中,要求参加运算的数必须是整数的运算符是:().A、/B、!C、==D、%答案:D101.已定义:float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().x=1.250000,y=3.370000A、printf("x=%f,y=%f\n",x,y);B、printf("x=%8.2f,y=%8.2f",x,y);C、printf("x=%7f,y=%7f\n",x,y);D、printf("x=%-8.2f,y=%-8.2f\n",x,y);答案:A102.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为().A、fread()B、fwriteC、fclose()D、close()答案:C103.若有以下说明,则对结构体变量stud1中成员age的不正确引用是(). struct student{int age;int num;}stud1,*p;p=&stud1;A、(*p).ageB、student.ageC、p->ageD、stud1.age答案:B104.C语言中,以下几种运算符的优先次序()的排列是正确的.A、由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符B、由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||C、由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符D、由高到低为:!,&&,||,算术运算符,赋值运算符答案:C105.以下程序的输出结果是().main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、3B、1C、2D、4答案:A106.在C语言中,char型数据在内存中的存储形式是().A、补码B、ASCII码C、反码D、原码答案:B。
大一期末C语言程序设计基础题库与总结复习资料
![大一期末C语言程序设计基础题库与总结复习资料](https://img.taocdn.com/s3/m/5ba57659f12d2af90242e6b6.png)
C语言题库第一章计算机语言经历发展阶段:机器语言、符号语言、高级语言程序结构有3种:顺序结构,选择结构,循环结构C语言的特点:允许直接访问物理地址。
【C语言中含有的位和指针运算,能够直接对内存地址进行访问。
】不是C语言的特点的是:能够编制出功能复杂的程序【所有程序都可以,不算特点】Main:主函数,是所有程序运行的入口、起点。
一个C语言程序必须只有一个main函数。
程序总是从main函数开始执行,main函数可以放任何位置,到main函数结束。
函数体由花括号括起来结束标志:returnreturn 0的作用是:当main函数执行结束前将整数0作为函数值返回到调用函数处return(z)的作用是:将z的值作为max的函数值返回给调用max 函数的函数。
只有通过return(z)才能把求出的z值作为函数值并返回调用它的main函数中C语言程序的结构:由一个或多个源程序(C语言编写的程序,也可以叫编译单位)文件组成(源程序文件中包含:预处理指令、全局声明、函数定义)函数是C程序的主要组成部分(也是基本单位),C语言由函数组成。
函数包括两部分:函数首部、函数体C语言本身不提供输入输出语句,输入输出的操作是有库函数scanf 和printf等函数来完成的。
程序应包含注释#define和printf都不是C语句C语言程序的运行经过:编辑(edit)、编译(compile)、连接(link)【C语言中是build】、执行(execute)。
C语言源程序文件的后缀是.cpp,经过编译之后,生成后缀为.obj 的目标文件,经连接生成后缀.exe的可执行文件C语言的储存类型包括register、extern、statis和auto基础知识6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件运算优先级:!(非)>算数(如%)>关系>逻辑>赋值运算符(低)空语句:只有分号组成的语句,即一个分号。
C语言习题二数据类型及运算
![C语言习题二数据类型及运算](https://img.taocdn.com/s3/m/18ebaf8c52ea551811a6877d.png)
习题二数据类型及其运算1.已定义c为字符型变量,则下列语句中正确的是______。
A、c='97'B、c="97";C、c=97;D、c="a";解析:本题的考查点是字符型变量。
C语言中,字符型数据和整型数据之间可以通用。
一个字符数据既可以以字符形式输出,也可以以整数形式输出。
所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C正确。
2.以下选项中可作为C语言合法整数的是______。
A、10110BB、0386C、0XffaD、x2a2解析:本题的考查点是C语言中的整型常数。
整型常数可以用十进制、八进制或十六进制表示,并分为有符号数、无符号数和长整数。
由此可知选项A错;选项B,用0386表示八进制错误,因为八进制数为0-7八个数字,含有8是不对的;选项D,数字前加“0x”表示十六进制数,所以D也不对。
故本题答案为C。
3. 以下选项中不能作为合法常量的是______。
A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0解析:本题考查的是常量表示法。
本题选项中的几个常量都属于指数形式的实型常量。
此种类型的常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。
故本题答案为B。
4.与十进制数200等值的十六进制数为______。
A、A8B、A4C、C8D、C4解析:本题考查的是进制之间的转换。
用十--十六进制转换法,除16,由下而上取余法。
故本题答案为C。
5. 若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。
A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))解析:本题考查的是基本函数应用。
C++自定义数据类型
![C++自定义数据类型](https://img.taocdn.com/s3/m/bf25091d650e52ea5518986c.png)
3.二维数组的初始化 对二维数组变量的初始化可以采用以下的格式。 (1) 分行初始化。如: int a[2][3] = {{3,4,5}, {7,8,9}} 这种方式比较直观,用第一个括号{3,4,5}对第0行进行初始化,因为a[0]代表 的是一个有3个元素的一维数组,用{7,8,9}对第1行a[1]进行初始化,…,依 次类推。每个括号内的初始值列表都按照一维数组的方式对二维数组的对应 行进行初始化。
11
2. 一维数组元素的访问 一个一维数组包含n多个相同类型的元素,每个元素都可以单独访问,访问 一维数组元素的格式为:
<一维数组变量名>[<下标>] 其中<下标>为一个整型表达式,它的值表示访问一维数组的第几个元素。 C++中,一维数组的第一个元素的下标是0。例如,对于下面定义的一个一维 数组变量d: double d[10]; d[0]表示该数组的第一个元素,d[1]表示第二个元素,d[9]表示最后一个元素 。一维数组的最后一个元素的下标是数组的<元素个数>-1。d[0]、d[1]、d[2] 、…、d[9]都是double 型的变量.
第5章 自定义数据类型
1
本章学习要求:
自定义数据类型与基本数据类型的区别 自定义数据类型变量的定义与使用 参数传递的两种方式 指针类型的使用 链表的操作
2
5.1 自定义数据类型概述
除了基本数据类型的数据外,程序还经常需要描述一些复杂的概念,如 线性表、员工等,一个员工有多个属性需要描述,如姓名、工作部门、工资、职 务等。因此仅仅使用一个基本数据类型的变量不能描述,必须要由多个基本数据 类型变量一起才能描述一个较复杂的员工的概念。C++除了提供基本数据类型( int、char、float、double、bool)外,还提供了用基本数据类型构造自定义的数 据类型的机制,使得程序能够对复杂数据如,员工等进行描述与处理。 本章将对C++提供的自定义类型的构造机制进行分别介绍,他们包括:枚举、数 组、结构、联合以及指针与引用。
C语言自定义数据类型
![C语言自定义数据类型](https://img.taocdn.com/s3/m/183333781711cc7931b71623.png)
自定义数据类型结构体结构体是程序员在程序中自定义的一种数据类型,在说明和使用之前必须先定义它,也就是构造它。
定义一个结构体的语法格式如下:Struct 结构体类型名{成员1的数据类型名成员1名称;成员2的数据类型名成员2名称;..成员n的数据类型名成员n名称;}结构体变量表={成员初始化};注意成员可以由若干个不同的数据类型组成,每个成员也可以是结构体,即可以嵌套定义。
例如:Struct student{Long num;Char name;Char sex;Float score;};已经定义的某种结构体类型可以视为一种标准的数据类型,它的使用方法与标准数据类型使用方法相同,可以用来定义变量、数组、指针。
结构体变量说明结构体变量的说明在程序的变量说明部分给出,一般在结构定义之后,它的语法格式如下:Struct 结构类型名结构变量名表;例如:Struct student stu;指出了结构变量stu是student类型的变量,它由四个成员组成,每个成员的数据类型和名字都与student结构定义中给出的相同。
系统完全按照结构定义时制定的内存模式为结构变量分配内存空间。
可以在定义结构体类型的同时给出结构体变量。
Struct student{Long num;Cha name[20];Cha sex;Float score;}stu1,stu2;这种形式与前面给出的结构定义和结构说明分开处理效果相同。
结构体成员访问结构体成员是通过结构体变量名和成员名进行访问的,不能把他作为一个整体进行访问。
其访问格式如下:结构体变量名.成员名其中运算符.是成员访问运算符,其运算级别是最高的,和圆括号运算符()、下标运算符[]是同一级别的。
如果结构体成员是指针变量,则访问格式为:*如果某个结构体变量的成员数据类型又是一个结构体,则访问方式为:外层结构体变量名.外层成员名.内层成员名可以在定义结构体变量的同时对结构体变量初始化。
C语言-数据类型习题及答案
![C语言-数据类型习题及答案](https://img.taocdn.com/s3/m/a9cbfae3f8c75fbfc77db2e0.png)
第二章数据类型,运算符与表达式一.选择题1.不合法的字符常量是(B)。
A)‘\t’B) “A” C)‘a’D)’\x32’2、合法的字符常量是(D)。
A)‘\084’B) ‘\84’ C)‘ab’D)’\x43’2.(B)是C语言提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char3.在以下各组标识符中,合法的标识符是(4)。
(1)A)B01 B)table_1 C)0_t D)k%(2)A)Fast_ B)void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)Int C)_xy D)w_y234.属于合法的C语言长整型常量的是(B)。
A)5876273 B)0L C)2E10 D)(long)58762735.下面选项中,不是合法整型常量的是(B)。
A)160 B)-0xcdg C)-01 D)-0x48a6.判断int x = 0xaffbc;x的结果是(B)(turbo c 版本)。
A)赋值非法B)溢出C)为affb D)为ffbc7.下面选项中,均是合法浮点数的是(B)。
A)+1e+1 B)-.60 C)123e D)-e3A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4A)03e2 B)-8e5 C)+2e-1 D)5.e-08.在C语言中,要求参加运算的数必须是整数的运算符是(C)。
A)/ B)* C)% D) =9.在C语言中,字符型数据在内存中以(D)形式存放。
A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是(C)。
A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;11.(B)是非法的C语言转义字符。
A)‘\b’B)‘\0xf’ C)‘\037’ D)‘\’’12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中(B),是正确的。
C#试题库(全)附-参考答案
![C#试题库(全)附-参考答案](https://img.taocdn.com/s3/m/49d82ff8e109581b6bd97f19227916888486b9e3.png)
C#试题库(全)附-参考答案⼀、填空:1、操作符(&& )被⽤来说明两个条件同为真的情况。
2、接⼝只能定义⽅法,实现要由(类)完成。
3、任何事物都是(对象),它可以是现实世界中的⼀个物理对象,可以是抽象的概念或规则。
4、(+= )运算符将左右操作数相加的结果赋值给左操作数。
5、(Array )是所有数组的基类。
6、如果⼀个属性⾥既有set访问器⼜有get访问器,那么该属性为(读写)属性。
7、如果⼀个属性⾥只有set 访问器,那么该属性为(只写)属性。
8、常量通过关键字(const )进⾏声明。
9、在C#中,进⾏注释有两种⽅法:使⽤//和使⽤“/* */”符号对,其中(// )只能进⾏单⾏注释。
10、布尔型的变量可以赋值为关键字(true )或(false )。
11、System.Array有⼀个(Length )属性,通过它可以获取数组的长度。
12、如果⼀个类包含⼀个或多个抽象⽅法,它是⼀个(抽象)类。
13、SQL语句中删除⼀个表中记录,使⽤的关键字是(delete )。
14、设x=10; 则表达式x<10?x=0:x++ 的值为(10 )。
15、接⼝的实现指出接⼝成员所在的接⼝,称为显式接⼝成员,它只能通过(接⼝)来调⽤。
16、已知整型变量a=5,b=4,c=6,则a>b?(a>c?a:c):b的结果为( 6 )。
17、在C#语⾔中,实现循环的主要语句有while, do-while, for和( foreach )语句。
18、封装的对象之间进⾏通信的⼀种机制叫做(消息传递)。
19、在C#语⾔中,可以⽤来遍历数组元素的循环语句是(foreach )。
20、(多态)是指同⼀个消息或操作作⽤于不同的对象,可以有不同的解释,产⽣不同的执⾏结果。
21、Stack类表⽰对象的先(出)后(进)集合。
22、(封装)是⽤⼀个框架把数据和代码组合在⼀起,形成⼀个对象。
23、声明为(private )的⼀个类成员,只有定义这些成员的类的⽅法能够访问。
c++中的数据类型
![c++中的数据类型](https://img.taocdn.com/s3/m/93dd190ebfd5b9f3f90f76c66137ee06eff94e87.png)
c++中的数据类型1.数据类型简介c++中数据类型分为两种:预定义类型和⾃定义数据类型。
预定义类型:整型(int 4个字节)字符型布尔型(bool)浮点型(4个字节)空类型:关键字void,不能⽤于普通变量的声明和普通的操作,只能⽤于指针型变量,函数返回值和函数参数。
指针类型⾃定义类型:数组、结构体(struct)、联合体(union)、枚举(enum).具体在下边介绍2.类型修饰符:signed,unsigned,short,long。
signed int a;//有符号整数short int a;//短整型,2个字节long int a;//长整型,4个字节c++11中新增:long long整型有两种:long long和unsigned long long。
在C++11中,标准要求long long整型可以在不同平台上有不同的长度,但⾄少有64位。
我们在写常数字⾯量时,可以使⽤LL后缀(或是ll)标识⼀个long long类型的字⾯量,⽽ULL(或ull、Ull、uLL)表⽰⼀个unsigned long long类型的字⾯量。
⽐如:long long int lli = -9000000000000000000LL;unsigned long long int ulli = -9000000000000000000ULL;另外这⼏个符号只能修饰int。
3.占位符总结:%d:int%ld:long%f:float%lf:double%p:输出变量地址%x/%X:输出⼗六进制数%s:输出字符串%o:⽆符号⼋进制整数%u:⽆符号⼗进制整数%e/%E:⽤科学记数法输出浮点数4.基本数据类型代码⽰例:#include"stdio.h"int a;float b;double c;void ceshi();int main(void){int d;int num=2147483646;//和最⼤值差1 最⼤值:2147483647float f=1.234567;char arr[]="abc";printf("num=%d\n",num+21);//-2147483648;printf("f=%f\n",f/4);//0.308642printf("arr的地址:%p\n",arr);//0028FEFCprintf("arr的字符串:%s\n",arr);//abclong int lnum;printf("长整型占⽤字节数:%d\n",sizeof(lnum));//4printf("整型占⽤字节数:%d\n",sizeof(num));//4printf("默认值:%d\n",lnum);//38 随机的printf("main默认值:%d\n",d); //随机数printf("默认值:%f\n",b); //0.000000printf("默认值:%f\n",c); //0.000000printf("默认值:%lf\n",c); //0.000000ceshi();return 0;}void ceshi(){int a=2,b=3,c=5,num;num=a+b%c;printf("jisuan: %d\n",num);//5char cc[64];scanf("%s",cc);printf("输⼊的值为:%s aa\n",cc);}5.结构体数据类型5.1结构体是由⼀系列具有相同类型或者不同类型的数据构成的数据集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本题序号:118当定义一个结构体变量时,系统分配给它的内存大小的理论值是__________。
A 各成员所需内存的总和B 结构体中的第一个成员所需内存C 成员中所需内存最大者的存储空间D 结构体中的最后一个成员所需存储容量参考答案A本题序号:165存放多个字符串,用________比较适合。
A 二维字符数组B 一维字符数组C 自定义结构体D 自定义联合体参考答案A本题序号:169定义生成非静态变量时,将对变量进行_______。
A 自动赋初值B 自动赋0C 不会自动赋初值D 自动赋-1参考答案C本题序号:180x为int型,s为float型,x=3,s=2.5。
表达式s+x/2的值为________。
A 4B 3.5C 2.5D 3参考答案B本题序号:182x、y为整数,x=15,y=-2。
表达式x>10 and y<2 or x*y==10 and x的值为_________。
A 0B 15C 1D 2参考答案C 本题序号:211以下定义,struct st1{int a,b;float x,y;}; struct st2{int a,b;st1 s1; } ss;对成员变量x的引用形式正确的是:_________ 。
A ss.s1.xB st2.st1.xC st2.s1.xD ss.x参考答案A本题序号:215对任意整型数据数据m,n(m>n>0), 则 C 语言表达式m-m/n*n的值为:_______________。
A 0B m%nC 1D n%m参考答案B本题序号:223设有以下定义:enum t1 {a1,a2=7,a3,a4=15} time;则枚举常量a1和a3的值分别是A 1和2B 6和3C 1和8D 0和8参考答案D本题序号:225设有类型说明:enumcolor{red,yellow=3,white,black};则执行语句cout<<white<<’\n’;后输出的结果是。
A 4B 3C 2D 1参考答案A本题序号:226以下对枚举类型名的定义中正确的是()。
A enum a={“one”, “two”, “three”};B enum a {“one”, “two”, “three”};C enum a={one, two, three};D enum a {one=9,two=-1,three};参考答案D本题序号:227下面程序的正确的输出是()。
#include <iostream.h>void main(){ enum team{my,your=4,his,her=his+10};cout<<my<<’‘<<your<<’ ’<<his<<’‘<<her<<endl;}A 0 1 2 3B 0 4 0 10C 0 4 5 15D 1 4 5 15参考答案C本题序号:228下面程序的正确的输出是()。
#include <iostream.h>void main(){ struct ex{int x,y; };ex num[2]={1,3,2,7};cout<<num[0].y/num[0].x*num[1].x<< endl;}A 0B 1C 3D 6参考答案D本题序号:229下面定义中,对成员变量x的引用形式正确的是()struct st1 {int a,b; float x,y;};struct st2 {int a, b; st1 s1;} ss;A ss.s1.xB s1.xC s1.ss.xD ss.x参考答案A本题序号:230设有以下说明语句typedef struct{ int n;char ch[8];}PER;A PER是结构体变量名B PER是结构体类型名C typedef struct是结构体类型D struct是结构体类型名参考答案B本题序号:233对于结构体变量,下列说法正确的是()struct st1{int a, b; float x, y;}s1, s2;struct st2{int a, b; float x, y;}s3, s4;A s1、s2、s3、s4可以相互赋值B 只有s1和s2、s3和s4之间可以相互赋值C s1、s2、s3、s4之间均不可以相互赋值D 结构体变量不可以整体赋值参考答案B本题序号:234某结构体变量定义如下,对此结构体变量的成员的引用形式正确的是()struct st{int a,b; float x, y;} s1,*p;p=&s1;A s1->aB p->bC p.xD *p.y参考答案B本题序号:275设有类型说明:enumcolor{red,yellow=3,white,black}; 则执行语句cout<<white<<’\n’;后输出的结果是。
A 4B 3C 2D 1参考答案A本题序号:320double a,&a的数据类型为________。
A int*B doubleC double *D unsigned int参考答案C本题序号:321int a;*p=&a;,*a的数据类型为________。
A int*B doubleC double *D int参考答案D本题序号:325int a;double b;,a+4/b结果的数据类型为_______。
A intB doubleC floatD unsigned参考答案B本题序号:327char a;int b;, a+4/b结果的数据类型为_______。
A intB charC floatD unsigned参考答案A本题序号:330union关键字的含义是 _______。
A 自动变量定义B 外部变量定义C 联合类型定义D 枚举类型定义参考答案本题序号:333关键字typedef的作用是______。
A 定义宏标识名B 定义变量C 给已有的类型名取别名D 定义类名参考答案C本题序号:24#include<iostream.h>union ex{ short int i;char ch;};void main(){ex data;data.i=0x5566;cout<<"data.i="<<hex<<data.i<<','; data.ch='A';cout<<"data.ch="<<data.ch<<',';cout<<"data.i="<<hex<<data.i<<endl;}参考答案data.i=5566,data.ch=A,data.i=5541自定义类型包括结构体、公用体和__1__三种类型。
从键盘输入不多于100个学生的数据,包括学号,姓名,性别等,统计输入的学生人数及男女学生人数(学号为0,则结束输入)。
#include<iostream>using namespace std;const int N=100;struct student{int num;char name[10];char sex;}stu[N];void main(){int i=0,male=0,female=0,sum=0;cout<<"输入学生信息!\n";while(i<N){ cout<<"学号:";cin>>stu[i].num;if(stu[i].num==0) __1__cout<<"姓名:";cin>>stu[i].name;cout<<"性别(f代表女,m代表男):";cin>>stu[i].sex;if(stu[i].sex=='m') male++;else female++;i++;}cout<<"共输入"<< __2__<<"个学生的信息\n";cout<<"其中男生人数为:"<<male;cout<<"女生人数为:"<<female<<endl;} 共用体变量中,变量的地址和它的各成员地址是同一个地址;因此,在任一时刻职能保存__1__个成员执行typedef int ABC[10]; 语句把ABC定义为具有__1__个整型元素的数组类型。
数组中的每一个元素必须是同一种数据类型,__1__中允许将不同类型的数据组合成一种数据结构。
一个结构体变量所占用的空间是各成员所需内存空间的__1__。
指向结构体数组的指针的类型是__1__的类型。
设有定义:enum color{red=5,yellow=0,blue=3,white,green};则white的取值为__1__。
基本的浮点类型关键字有__1__和__2__。
变量的定义格式为[__1__]__2__ __3__。
可存储小数的基本数据类型为__1__和__2__。
指数形式的浮点常数格式为:__1__.__2__e__3__。
字符和字符串常数的定界符分别为__1__和__2__。
定义整型变量的关键字为unsigned、__1__、__2__和__3__。