文档库 最新最全的文档下载
当前位置:文档库 › 探讨C_C_语言中的数据类型.kdh

探讨C_C_语言中的数据类型.kdh

探讨C_C_语言中的数据类型.kdh
探讨C_C_语言中的数据类型.kdh

Data Type of C/C++Language

Wang Shanfa,Wu Daorong

(ComputerDept.BaoshanTeachers'College,Baoshan,Yunnan,678000)

Abstract:DatatypeisakeypartofC/C++Language.Thispaperisintendedtomakeastudyofdata

typeofC/C++Languageputtogether.

Key word:C/C++language;datatype;analysis;discussion

探讨C /C++语言中的数据类型

王善发

吴道荣

(保山师范高等专科学校计算机科学系,云南保山678000)

要:在C语言和C++语言中,数据类型是重要的组成部分。克服现有书籍把C/C++的数据类型分散在各个章

节中介绍的缺陷;把C/C++的数据类型集中起来,从C/C++语言设置数据类型的思想进行分析、

探讨。关键词:C/C++语言;数据类型;分析;探讨中图分类号:TP3

文献标识码:A

文章编号:1008-6587(2008)05-074-05

1.概述

在编写程序中,数据类型(datatype)定义使用存储空间(内存)的方式。通过定义数据类型,告诉编译器怎样创建一片特定的存储空间,以及怎样操作这片存储空间。

数据类型可以是内部的或者是抽象的。内部数据类型是编译器本来能够理解的数据类型,直接与编译器关联。C和C++中的内部数据几乎是一样的。而用户定义的数据类型是程序员自己创建的类型,它们一般被称为抽象数据类型。编译器启动时,知道怎样处理内部数据类型;编译器再通过读包含类声明的头文件认识怎样处理抽象数据类型。

C和C++中内部数据类型是我们在学习中最先知道的字符型、整型、单精度型和双精度型这四个基本数据类型。构造类型是枚举类型、数组类型、结构与联合类型、指针类型和引用类型。抽象数据类型是类类型。

2.深刻理解C和C++中数据类型

基本上所有的C语言和C++语言教材都是把语言中的各种类型,根据语言教学要求孤立的讲

解,并没有把这些数据类型根据语言设计的特点串连起来集中递进的讲解,让读者对语言中所有变量的设计过程有一个整体清晰的脉络。作者总结多年的程序设计教学经验,在C语言和C++语言的教学过程中,讲授完各种数据类型之后,结合教学实际,用一定的教学课时把语言中设计这些数据类型的思想和过程串连起来总结讲授,让学生不再去死记硬背这些数据类型,而是根据数据类型由简单到复杂的连贯过程理解掌握。2.1基本数据类型

标准C的内部类型(由C++继承)规定了内部类型必须能存储的最大值和最小值。

C和C++中有4个基本的内部数据类型。char(字符类型)用于存储字符,使用最小的8位(一个字节)的存储空间。int(整型类型)用于存储整数值,使用最小两个字节的存储空间。float(单精度类型)用于存储浮点数中的单精度数值,使用最小四个字节的存储空间。double(双精度类型)用于存储浮点数中的双精度数值,使用最小八个字节的存储空间。

……

2008年9月保山师专学报

Sept .,2008第27卷第5期

Journal of B aoshan Teachers′College

V ol.27No.5

收稿日期:2008-06-15

作者简介:王善发(1967-),男,云南镇雄人,保山师范高等专科学校计算机科学系讲师,硕士,研究方向为软件工程研究。

第5期

charprotein;

intcarbohydrates;

floatfiber;

doublefat;

chatpizza=‘A’,pop=‘Z’;

intdingdongs=100,twinkles=150,heehaw=200;

floatchocolate=3.14159;

doublefudge_ripple=6e-4;

……

程序的第一部分定义了4种基本数据类型的变量,没有对变量初始化。如果对一个变量不进行初始化,编译器会认为没有定义它的内容(这意味着它们的内容是垃圾)。程序中第二部分同时定义和初始化变量(最好在定义时初始化)。

2.2基本数据类型过渡到数组

首先看看下面的用基本数据类型处理的例子。

例求Fibonacci数列(中国古代兔子的问题):1,1,2,3,5,8,……的前四十个数,即

F1=1(n=1)

F2=1(n=2)

Fn=Fn-1+Fn-2(n≥3)

程序如下:

#include“stdio.h”

main()

{longintf1,f2;

inti;

f1=1;f2=1;

for(i=1;i<=20;i++)

{printf(“%12ld%12ld“,f1,f2);

if(i%2==0)printf(“\n”);

f1=f1+f2;f2=f2+f1;

运行结果为:

1123

581321

……

3524575702887922746514930352

241578173908816963245986

102334155

在没有学习数组数据类型之前,在讲授Fibonacci数列的程序中,定义了两个变量f1、f2。f1、f2在存储器中获得了两块内存,用于存储当前使用的两个Fibonacci数列的数。虽然能够输出前四十个Fibonacci数列,但执行完循环以后,变量f1、f2保存的是最后两个Fibonacci数列的数据。如果要在循环结束后把四十个Fibonacci数列都保存下来,再一次对这四十个Fibonacci数列进行处理,那必须定义四十个变量f1、f2、……、f40。这样虽然能实现数据的保存,但是,编译系统并不能保证这四十个变量在存储器中获取的地址一定是连续的地址。而且,要声明四十个变量是相当烦琐的事。当需要处理大量数据时,用基本数据类型(定义多个简单变量)就显得力不从心。为了处理大量数据以及一些特殊情况要求许多数据必须保存在存储器中连续的内存块中,就必须用一种特殊的方式“通知”编译程序,要求编译程序在存储器中连续保存所需数据,这就要用到另外一种数据类型——

—数组(数组元素通常也称为下标变量)。

inta[10]={1,2,3,4,5,6,7,8,9,10};

上面定义了一个含有10个元素,且每一个元素都具有相同的基本数据类型(整型)的一维数组a。这10个元素已经被赋予了值。编译器将在存储器中为a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]这10个元素分配连续的20个字节的存储空间分别将1、2、3、4、5、6、7、8、9、10这10个整型数据连续存储在这20个字节的存储空间内。

2.3数组过渡到结构类型

在Fibonacci数列的程序中,所使用的数组的每一个元素都具有相同的数据。而在程序的处理过程中经常需要处理一些拥有不同数据类型的成员的一个整体数据类型,并且这些不同数据类型的元素在存储器中要连续存储。比如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等这些数据都与某一个学生相关联,而且这些数据中,姓名、家庭地址是数组类型,性别是字符型,学号、年龄是整型,分数是实型。要把这些数据作为一个整体连续存储在存储器中,必须要有一种数据类型既能包含不同的数据类型的成员,又能给这些成员连续分配存储空间。这样一来,就设置了结构类型这种数据类型。

structstudent

intnum;

王善发,吴道荣:探讨C/C++语言中的数据类型75

··

保山师专学报第27卷

charname[20];

charsex;

intage;

floatscore;

charaddr[30];

};

在上面的结构体student中num、name、sex、age、score、addr不同类型的数据项就能够在存储器中占有一块存储区域,且num占2个字节、name占20个字节、sex占1个字节、age占2个字节、score占4个字节、addr占30个字节,总共占去了59个字节的存储区域。

2.4结构类型过渡到类类型

在C语言中,我们可以定义结构类型,将多个相关的变量包装为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。但在C语言中,结构体不能包含函数。而在面向对象的程序设计中,对象具有状态(属性)和行为,状态保存在成员变量中,行为通过成员方法(函数)来实现。C语言中的结构体只能描述一个对象的状态,不能描述一个对象的行为。在C++中,对结构体进行了扩展,C++的结构体可以包含函数。2.4.1结构体的定义

看下面的程序。

#include<iostream.h>

structpoint

intx;

inty;

};

voidmain()

pointpt;

pt.x=0;

pt.y=0;

cout<<pt.x<<endl<<pt.y<<endl;

在这段程序中,我们定义了一个结构体point,在这个结构当中,定义了两个整型的变量,作为一个点的X坐标和Y坐标。在main函数中,定义了一个结构体的变量pt,对pt的两个成员变量进行赋值,然后调用C++的输出流类的对象cout将这

个点的坐标输出。

2.4.2类的定义

我们将结构体point的定义修改一下,结果如下。

structpoint

intx;

inty;

voidoutput()

cout<<x<<endl<<y<<endl;

};

在point这个结构体中加入了一个函数output。我们知道在C语言中,结构体中是不能有函数的,然而在C++中,结构体中是可以有函数的,称为成员函数。

这样,在main函数中就可以以如下方式调用。

voidmain()

pointpt;

pt.x=0;

pt.y=0;

pt.output();

将上面例程所示的point结构体定义中的关键字struct换成class,得到如下所示的定义。

classpoint

intx;

inty;

voidoutput()

cout<<x<<endl<<y<<endl;

};

这就是C++中的类的定义。

类的定义看起来和结构体的定义是很类似的。在C++语言中,结构体是用关键字struct声明的类。类和结构体的定义除了使用关键字“class”和“struct”不同之外,更重要的是在成员的访问控制方面有所差异。结构体默认情况,其成员的访问控

76··

第5期

引用内存模型inta=5;0x0012FF7Cint&b=a;

a=5

指针类型的内存模型inta=5;

0x0012FF7C

int*pA=&a;

0x0012FF78

pA=0012FF7C

a=5

图1引用和指针变量的内存模型

制是公有(public)的;类默认情况,其成员的访问控制是私有(private)的。在一个类当中,公有成员是可以在类的外部进行访问,而私有成员就只能在类的内部进行访问。例如,现在设计家庭这样一个类,对于家庭的客厅,可以让家庭成员以外的人访问,我们就可以将客厅设计置为public。对于卧室,只有家庭成员才能访问,我们可以将其设置为private。2.5引用类型2.5.1引用的概念

在C++中,还有一个引用的概念。引用就是一个变量的别名,它需要用另一个变量或对象来初始化自身。引用就像一个人的外号一样,例如:有一个人,他的名字叫张东,因他在家排行老三,别人给他取了一个外号叫张三,这样,我们叫张三或张东,指的都是同一个人。下面的代码声明了一个引用b,并用变量a对b进行了初始化。

inta=5;int&b=a;

//用&表示申明一个引用。引用必

须在申明时进行初始化。

考虑下面代码:inta=5;int&b=a;intc=3;b=c;

//此处并不是将b变成引用,而是给b

赋值,此时,b和a的值都变成了3。

引用一旦初始化,它就代表了一块特定的内存,再也不能代表其他的内存。引用和用来初始化引用的变量指向的是同一块内存,再也不能代表其他一块内存中的内容。2.5.2引用和指针变量的区别

引用只是一个别名,是一个变量或对象的替换名称。引用的地址没有任何意义,

因此C++没有提供访问引用本身地址的方法。引用的地址就是它所引用的变量或者对象的地址,对引用的地址所做的操作就是对被引用的变量或对象的地址所做的操作。指针是地址,指针变量要存储地址值,因此要占用存储空间,我们可以随时修改指针变量所保存的地址值,从而指向其他的内存。

引用和指针变量的内存模型如图1所示。在编写程序时,很少直接使用引用,即用一个变量来初始化一个引用(inta;int&b=a),如果这么

做,通过变量和引用都可以修改同一块内存的内容,在程序中,就很容易出现问题,不知道此时内存中的值到底是多少了。

引用多数用在函数的形参定义上,在调用函数传递参数时,我们经常使用指针传递,一是避免在实参占较大内存时发生值的复制,二是完成一些特殊的作用。例如,要在函数中修改实参所指向内存的内容,同样,使用引用作为函数的形参也能完成指针的功能,在有些情况下还能达到比使用指针更好的效果。

看看这一段程序。#include<iostream.h>

//change函数主要用来交换a和b的值voidchange(int&a,int&b);voidmain(){

intx=5;inty=3;

cout<<"originalx="<<x<<endl;cout<<"originaly="<<y<<endl;change(x,y);

//如果用指针传递,调用

change(&x,&y),容易让人迷惑,不知道交换的是x和y的值,还是x和y的地址。

cout<<"changedx="<<x<<endl;cout<<"changedy="<<y<<endl;}

voidchange(int&a,int&b){

a=a+b;b=a-b;a=a-b;}

3.结语

图2是C/C++中各种数据类型由简单到复杂的过度图。

类类型

数据

基本类型

数组类型

结构体类型

图2C/C++中各种数据类型由简单到复杂的过渡图

王善发,吴道荣:探讨C /C++语言中的数据类型

77··

保山师专学报

第27卷

图2体现的过程概括为:数据(为了能够在内存单元中改变存储的数据,设计了变量来引用内存单元中的数据。)→数据的基本类型(为了在内存单元中保存字符、整数、浮点数这些数据,设计了字符型、整型、浮点型相应的基本数据类型,但是保存这些基本数据类型的内存单元并不一定连续。)→数组类型(为了使一组相同类型的数据存储在连续的内存单元当中,设计了数组类型。)→结构体类型(为了使一组不同类型的数据存储在连续的内存单元当中,设计了结构体类型。)→类类型(为了使一组不同类型的数据及对这组数据的操作(函数)存储在连续的内存单元当中,设计了类类型。)

参考文献:

[1]王善发,吴道荣.论C语言数组[J].保山师专学报,2007(3):

6~9.

[2][美]KrisJamsa著.张春晖,刘大庆,李越,等译.C/C++/C#程序员

实用大全[M].北京:中国水利水电出版社,2002.

[3]钱能.C++程序设计教程[M].北京:清华大学出版社,1999.[4]BruceEckel:ThinkinginC++(SecondEdition),VolumeOne:IntroductiontoStandardC++.ChinesesimplifiedlanguageeditionpublishedbyChinaMachinePress.Copyright○c2002byChinaMachinePress.

[5]陈家骏,郑滔.程序设计教程用C++语言编程[M].北京:机械工业出版社,2004.

[6]杨富国.VisualC++程序开发案例解析[M].北京:清华大学出版社,2006.

[7]李强,贾云霞.VisualC++项目开发实践[M].北京:中国铁道出版社,2003.

[8]姚领田.精通MFC程序设计[M].北京:人民邮电出版社,2006.[9]黄维通.VisualC++面向对象与可视化程序设计[M].北京:清华大学出版社,2003.

[10]孙鑫,余安萍.VisualC++深入详解[M].北京:电子工业出版

社,2006.

[11]刘晓华,等.精通MFC[M].北京:电子工业出版社,2003.[12]谭浩强.C程序设计[M].北京:清华大学出版社,1999.

保山师专学报电子信箱

bsszxb@vip.sina.com

78··

C语言程序设计第二章-常用数据类型

第二章常用数据类型 【学习目标】 本章将学习一些基本的程序概念,如程序结构、标识符、章的学习要 关键字和注释等。本点包括如下几点: (1)了解C语言的基本结构。 (2)分号、块和空白的使用。 (3)标识符的约束规则。 (4)C关键字。 (5 )直接量的认识。 (6)注释的使用。 【学习导航】 本章的在整个课程中的位置如图2-1所示。 图2-1 本章学习导航

2.1 C语言基本程序结构 任何一种程序设计语言都具有特定的语法规则和规定的表达方法。一个程序只有严格按 照语言规定的语法和表达方式编写,才能保证编写的程序在计算机中能正确地执行,同时也 便于阅读和理解。为了了解C语言的基本程序结构,请看【课堂案例2-1】。 【课堂案例2-1】在控制台输出“你好”。 【案例目标】会使用Xcode编辑器实现字符串输出 【案例知识要点】C语言的程序结构、基本输出语句 【案例程序代码】hello.c 1#i nclude 2 2mai n() 3{ 4printf(你好”); 5} 【案例代码说明】 第1行的作用是进行相关的预处理操作。include成为文件包含命令,<>里的内容称为 头文件。头文件一般的扩展名为.ho stdio就是指“ sta ndard in put & output"(标准输入输出),所以,源代码中如用到标准输入输出函数时,就要包含这个头文件。 第2行是一个空行。空行不会影响程序的功能。空行起着分隔程序段落的作用,适当使用空行将使程序的布局更加清晰,提高程序的可读性。空行不会浪费内存,所以不要舍不得 用空行。一般建议在头文件后插入一个空行。 第3行声明了一个main函数,main是函数名。关于函数的详细介绍在第七章。main 函数具有特殊意义,它是程序执行的入口,也就是说,程序都是从main函数开始执行的。 第4—6行定义了main函数的内容,称为函数体。以“{”开始,以“ }”结束。 第5行调用了在stdio.h中的格式化输出函数printf,其作用是向终端(显示器、控制台)输出字符。在这一行结束时,需要加上(;)。在C语言中,一行代码由分号(;)终止。 图2-2是程序hello.c的执行结果: 图2-2 Simple.c程序输出结果 知识链接一编程规范 在hello.c程序中,要注意以下的编程规范: 【规则1-1】用#“clude 格式来引用标准库的头文件。 【规则1-2】包含头文件时一般不使用绝对路径名。 【规则1-3】在头文件和main函数之间使用空行隔开。 【规则1-4】函数体里面的内容(即{ }里面的内容),需要水平缩进四个空格。如第5行所示。hello.c

C语言关键字共32个

由ANSI标准定义的C语言关键字共32个: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if while static 根据关键字的作用,可以将关键字分为数据类型关键字和流程控制关键字两大类。 1数据类型关键字 A.基本数据类型(5个) void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 char:字符型类型数据,属于整型数据的一种 int:整型数据,通常为编译器指定的机器字长 float:单精度浮点型数据,属于浮点数据的一种 double:双精度浮点型数据,属于浮点数据的一种 B.类型修饰关键字(4个) short:修饰int,短整型数据,可省略被修饰的int。 long:修饰int,长整形数据,可省略被修饰的int。 signed:修饰整型数据,有符号数据类型 unsigned:修饰整型数据,无符号数据类型 C.复杂类型关键字(5个) struct:结构体声明 union:共用体声明 enum:枚举声明 typedef:声明类型别名 sizeof:得到特定类型或特定类型变量的大小 D.存储级别关键字(6个) auto:指定为自动变量,由编译器自动分配及释放。通常在栈上分配 static:指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部 register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数 extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变) volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值 2流程控制关键字

C语言第二章习题带答案

1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B.100000000000 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f 16.下面4个选项中,均是合法浮点数的选项是( B )。 A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5 C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0

c语言数据类型关键字

1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明联合数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)(2)控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量) (3)register:声明积存器变量 (4)static :声明静态变量 4 其它关键字(4个): (1)const :声明只读变量 (2)sizeof:计算数据类型长度 (3)typedef:用以给数据类型取别名(当然还有其他作用 (4)volatile:说明变量在程序执行中可被隐含地改变

《明解C语言》第2章 运算和数据类型练习题答案

【个人观点】 练习2-1 #include int main(void) { int no1,no2; printf("请输入两个整数:"); scanf("%d%d",&no1,&no2); printf("前者是后者的%.0f%%\n",((double)no1/ no2) * 100); return (0); } 【note】(1)no1/ no2是整数,因此要对其中一个浮点化,使得该结果为小数;(2)((double)no1/ no2) * 100的结果是:小数点后的位数为0 练习2-2 #include int main(void) { int vx,vy; puts("请输入两个整数。"); printf("整数vx:");scanf("%d",&vx); printf("整数vy:");scanf("%d",&vy); printf("它们的和是%d,积是%d\n",vx + vy,vx * vy); return (0); } 练习2-3 #include int main(void) { double no; puts("请输入一个实数:"); scanf("%lf",&no); 1

printf("您输入的实数是%f\n",no); return (0); } 练习2-4 #include int main(void) { int n1,n2,n3,n4; double d1,d2,d3,d4; n1 = 5 / 2; n2 = 5.0 / 2.0; n3 = 5.0 / 2; n4 = 5 / 2.0; d1 = 5 / 2; d2 = 5.0 / 2.0; d3 = 5.0 / 2; d4 = 5 / 2.0; printf("n1 = %d\n",n1); printf("n2 = %d\n",n2); printf("n3 = %d\n",n3); printf("n4 = %d\n",n4); printf("d1 = %f\n", d1); printf("d2 = %f\n",d2); printf("d3 = %f\n",d3); printf("d4 = %f\n",d4); return (0); } 练习2-5 #include int main(void) { int no1,no2; printf("请输入两个整数:"); 2

C语言的基本数据类型及其表示

3.2 C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1 常量与变量 1. 常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.4 10-38~3.4 1038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define 标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows 98",可用下面两个宏定义命令: #define PAI 3.1415927 #define W "Windows 98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows 98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

C语言的基本数据类型及其表示

3.2C语言的基本数据类型及其表示 C语言的基本数据类型包括整型数据、实型数据和字符型数据,这些不同数据类型如何表示?如何使用?它们的数据范围是什么?下面我们分别进行介绍。 3.2.1常量与变量 1.常量 常量是指程序在运行时其值不能改变的量,它是C语言中使用的基本数据对 象之一。C语言提供的常量有: 以上是常量所具有的类型属性,这些类型决定了各种常量所占存储空间的大小和数的表示范围。在C程序中,常量是直接以自身的存在形式体现其值和类型,例如:123是一个整型常量,占两个存储字节,数的表示范围是-32768~32767;123.0是实型常量,占四个存储字节,数的表示范围是-3.410-38~3.41038。 需要注意的是,常量并不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中。 2.符号常量 在C程序中,常量除了以自身的存在形式直接表示之外,还可以用标识符来表示常量。因为经常碰到这样的问题:常量本身是一个较长的字符序列,且在程序中重复出现,例如:取常数的值为3.1415927,如果在程序中多处出现,直接使用3.1415927的表示形式,势必会使编程工作显得繁琐,而且,当需要把的值修改为3.1415926536时,就必须逐个查找并修改,这样,会降低程序的可修改性和灵活性。因此,C语言中提供了一种符号常量,即用指定的标识符来表示某个常量,在程序中需要使用该常量时就可直接引用标识符。 C语言中用宏定义命令对符号常量进行定义,其定义形式如下: #define标识符常量 其中#define是宏定义命令的专用定义符,标识符是对常量的命名,常量可以是前面介绍的几种类型常量中的任何一种。该使指定的标识符来代表指定的常量,这个被指定的标识符就称为符号常量。例如,在C程序中,要用PAI代表实型常量3.1415927,用W代表字符串常量"Windows98",可用下面两个宏定义命令: #define PAI3.1415927 #define W"Windows98" 宏定义的功能是:在编译预处理时,将程序中宏定义(关于编译预处理和宏定义的概念详见9.10节)命令之后出现的所有符号常量用宏定义命令中对应的常量一一替代。例如,对于以上两个宏定义命令,编译程序时,编译系统首先将程序中除这两个宏定义命令之外的所有PAI替换为3.1415927,所有W替换为Windows98。因此,符号常量通常也被称为宏替换名。 习惯上人们把符号常量名用大写字母表示,而把变量名用小写字母表示。例3-1是符号常量的一个简单的应用。其中,PI为定义的符号常量,程序编译时,用3.1416替换所有的PI。 例3-1:已知圆半径r,求圆周长c和圆面积s的值。

C语言数据类型及表示范围

C语言各种数据类型在系统中占的字节和取值围 基本类型包括字节型(char)、整型(int)和浮点型(float/double)。 定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。 下面列举了Dev-C++下基本类型所占位数和取值围: 符号属性长度属性基本型所占位数取值围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型。“[]”代表可省略。 例如:char、signed char、unsigned char是三种互不相同的类型; int、short、long也是三种互不相同的类型。可以使用C++的函数重载特性进行验证,如: void Func(char ch) {} void Func(signed char ch) {} void Func(unsigned char ch) {} 是三个不同的函数。

C语言的32个关键字和9种控制语句

C语言的32个关键字和9种控制语句 C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。 1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) double :声明双精度变量或函数 (3) enum :声明枚举类型 (4) float:声明浮点型变量或函数 (5) int:声明整型变量或函数 (6) long :声明长整型变量或函数 (7) short :声明短整型变量或函数 (8) signed:声明有符号类型变量或函数 (9) struct:声明结构体变量或函数 (10) union:声明共用体(联合)数据类型 (11) unsigned:声明无符号类型变量或函数 (12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 2控制语句关键字(12个): A循环语句 (1) for:一种循环语句(可意会不可言传) (2) do :循环语句的循环体 (3) while :循环语句的循环条件 (4) break:跳出当前循环 (5) continue:结束当前循环,开始下一轮循环 B条件语句 (1)if: 条件语句 (2)else :条件语句否定分支(与if 连用) (3)goto:无条件跳转语句 C开关语句 (1)switch :用于开关语句 (2)case:开关语句分支 (3)default:开关语句中的“其他”分支 D返回语句 return :子程序返回语句(可以带参数,也看不带参数) 3 存储类型关键字(4个) (1)auto :声明自动变量一般不使用 (2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)

C语言数据类型习题包括答案.docx

第二章数据类型,运算符与表达式 一.选择题 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)Char 3.在以下各组标识符中,合法的标识符是( 4)。 (1) A) B01 B )table_1C) 0_t D) k% (2) A) Fast_ B) void C)pbl D) (3) A) xy_ B ) longdouble C)*p D) CHAR (4) A) sj B)Int C)_xy D)w_y23 4.属于合法的 C 语言长整型常量的是( B)。 A) 5876273B) 0L C) 2E10D) (long)5876273 5.下面选项中,不是合法整型常量的是( B)。 A) 160B)- 0xcdg C)- 01D)- 0x48a 6.判断 int x = 0xaffbc;x 的结果是( B)(turbo c版本)。 A)赋值非法 B )溢出C)为 affb D)为 ffbc 7.下面选项中,均是合法浮点数的是( B)。 A)+ 1e+ 1 B)- .60 C) 123e D )- e3 A)5e -B)12e-4C)- .4 D).8e- 4 A)03e2B)-8e5C)+ 2e-1D) -0 8.在 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=,,,,,;的判断中( B),是正确的。 A)语法错误B)f 为 5.0C)f为 D) f 为 13.与代数式 (x*y)/(u*v)不等价的 C语言表达式是( A)。 A) x*y/u*v B) x*y/u/v C) x*y/(u*v) D) x/(u*v)*y 14.在 C 语言中,数字029 是一个( D)。 A)八进制数 B )十六进制数 C )十进制数 D )非法数 15. C语言中( Turbo C 环境)整数-8 在内存中的存储形式为( A)。A) 000B) 00 C) 000000000001000D)111 16.对于 char cx= ’039’; 语句,正确的是(A) 。 A)不合法 B ) cx 的 ASCII 值是 33 C) cx 的值为四个字符D)cx 的值为三个字符

C语言数据类型与表达式习题及答案

第一章数据类型,运算符与表达式 一.选择题 1.不合法的常量是A。 A)‘/2’B) “”C)‘’D)“483” 2. B 是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 3.在以下各组标识符中,合法的标识符是(1)A,(2) C ,(3) D 。 (1)A)B01 B)table_1 C)0_t D)k% Int t*.1 W10 point (2)A)Fast_ B)void C)pbl D) Fast+Big abs fabs beep (3)A)xy_ B)longdouble C)*p D)CHAR 变量1 signed history Flaut 4. 不属于合法的C语言长整型常量的是 C 。 A)5876273 B)0L C)2E10 D)(long)5876273 7.下面选项中,均是合法浮点数的是 B 。 A)+1e+1 B)-0.60 C)123e D)-e3 5e-9.4 12e-4 1.2e-.4 .8e-4 03e2 -8e5 +2e-1 5.e-0 8.在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 是正确的。 A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 13.与代数式x y u v ? ? 不等价的C语言表达式是A。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 14.在C语言中,数字029是一个 D 。 A)八进制数B)十六进制数C)十进制数D)非法数 16.对于char cx=?\039?;语句,正确的是A。 A)不合法B)cx的值是?\03? C)cx的值为四个字符D)cx的值为三个字符 17.若int k=7,x=12;则能使值为3的表达式是 D 。 A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 18.为了计算s=10!(即10的阶乘),则s变量应定义为 C 。 A)int B)unsigned C)long D)以上三种类型均可

C语言基本数据类型及运算题库

第二章基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。 A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19

c语言关键字及常用符号

C语言关键字及常用符号 32个关键字 auto :声明自动变量 short :声明短整型变量或函数 int:声明整型变量或函数 long :声明长整型变量或函数 float:声明浮点型变量或函数 double :声明双精度变量或函数 char :声明字符型变量或函数 struct:声明结构体变量或函数 union:声明共用数据类型 enum :声明枚举类型 typedef:用以给数据类型取别名 const :声明只读变量 unsigned:声明无符号类型变量或函数 signed:声明有符号类型变量或函数 extern:声明变量是在其他文件中声明 register:声明寄存器变量 static :声明静态变量 volatile:说明变量在程序执行中可被隐含地改变 void :声明函数无返回值或无参数,声明无类型指针 if:条件语句 else :条件语句否定分支(与 if 连用) switch :用于开关语句 case:开关语句分支 for:一种循环语句 do :循环语句的循环体 while :循环语句的循环条件 goto:无条件跳转语句 continue:结束当前循环,开始下一轮循环 break:跳出当前循环 default:开关语句中的“其他”分支 sizeof:计算数据类型长度 return :子程序返回语句(可以带参数,也可不带参数)循环条件 数据类型 char:字符型 int:基本整型 short int:短整型 long int:长整型

unsigned:无符号型 unsigned long:无符号长整型 float:单精度实型 double:双精度实型 C语言常用转义字符表 转义字符含义ASCII码(16/10进制) \o 空字符(NULL) 00H/0 \n 换行符(LF) 0AH/10 \r 回车符(CR) 0DH/13 \t 水平制表符(HT) 09H/9 \v 垂直制表(VT) 0B/11 \a 响铃(BEL) 07/7 \b 退格符(BS) 08H/8 \f 换页符(FF) 0CH/12 \’单引号27H/39 \”双引号22H/34 \\ 反斜杠5CH/92 \? 问号字符3F/63 \ddd 任意字符三位八进制 \xhh 任意字符二位十六进制 字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。 在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。C语言的运算符可分为以下几类: 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 条件运算符:这是一个三目运算符,用于条件求值(?:)。

C语言数据类型及转换23页word文档

C语言的数据类型 C语言提供的数据结构,是以数据类型形式出现的。具体分类如下:1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。本章将介绍基本类型中的整型、实型和字符型三种数据。 2.3 常量和变量 2.3.1 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 (2)实型常量 (3)字符常量。 (4)符号常量。 常量的类型,可通过书写形式来判别。 2.3.2 变量 1.变量的概念

在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别。 在TC V2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。 (3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗? 标识符命名的良好习惯──见名知意:

C语言基本数据类型简介

C语言基本数据类型简介 1.概述 C 语言包含的数据类型如下图所示: 2.各种数据类型介绍 2.1整型 整形包括短整型、整形和长整形。 2.1.1短整形 short a=1; 2.1.2整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值围是 -2147483648~2147483647,在存中的存储顺序是地位在前、高位在后,例如0x12345678在存中的存储如下: 地址:0x0012ff780x0012ff790x0012ff7a0x0012ff7b 数据:78563412 定义:用int关键字,举例如下: int a=6; 2.1.3长整形 long a=10; 2.2浮点型 浮点型包括单精度型和双精度型。 2.2.1单精度型 浮点型,又称实型,也称单精度。一般占4个字节(32位), float a=4.5; 地址:0x0012ff780x0012ff790x0012ff7a0x0012ff7b 数据:00009040 2.2.2双精度型 一般占8个字节(64位) double a=4.5;

地址:0x0012ff780x0012ff790x0012ff7a0x0012ff7b0x0012ff7c 0x0012ff7d0x0012ff7e0x0012ff7f 数据:0000000000 001240 2.3字符类型 在各种不同系统中,字符类型都占一个字节(8位)。定义如下: char c='a'; 也可以用字符对应的ASCII码赋值,如下: char c=97; 3.数据类型与“模子” short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。 怎么去理解它们呢? 举个例子:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了。半径12cm,12 个孔。不同型号的藕煤器咔出来的煤球大小不一样,孔数也不一样。这个藕煤器其实就是个模子。 现在我们联想一下,short、int、long、char、float、double 这六个东东是不是很像不同类型的藕煤器啊?拿着它们在存上咔咔咔,不同大小的存就分配好了,当然别忘了给它们取个好听的名字。 在32 位的系统上 short 短整型的存2 byte; int 整型的存4 byte; long 长整型的存4 byte; float 单精度浮点型的存4byte;仅能接收7位有效数字 double 双精度浮点型的存8 byte;可以接收16位有效数字 char字符型的存1 byte。 fabs单精度浮点型存4byte. (注意这里指一般情况,可能不同的平台还会有所不同,具体平台可以用sizeof 关键字测试一下) 很简单吧?咔咔咔很爽吧?是很简单,也确实很爽,但问题就是你咔出来这么多存块,你总不能

C语言关键字(详细)

auto:声明自动变量 struct:声明结构体变量或函数 union:声明共用数据类型 enum:声明枚举类型 typedef:用以给数据类型取别名 const:声明只读变量 extern:声明变量是在其他文件中声明register:声明寄存器变量 static:声明静态变量 volatile:说明变量在程序执行中可被隐含地改变goto:无条件跳转语句 short:声明短整型变量或函数 int:声明整型变量或函数 long:声明长整型变量或函数 float:声明浮点型变量或函数 double:声明双精度变量或函数 char:声明字符型变量或函数 unsigned:声明无符号类型变量或函数 signed:声明有符号类型变量或函数 void:声明函数无返回值或无参数,声明无类型指针 if:条件语句 else:条件语句否定分支(与if连用) switch:用于开关语句 case:开关语句分支 for:一种循环语句 do:循环语句的循环体 while:循环语句的循环条件 continue:结束当前循环,开始下一轮循环 break:跳出当前循环 default:开关语句中的“其他”分支 sizeof:计算数据类型长度

return:子程序返回语句(可以带参数,也可不带参数)循环条件 1数据类型关键字(12个): (1)char:声明字符型变量或函数 (2)double:声明双精度变量或函数 (3)enum:声明枚举类型 (4)float:声明浮点型变量或函数 (5)int:声明整型变量或函数 (6)long:声明长整型变量或函数 (7)short:声明短整型变量或函数 (8)signed:声明有符号类型变量或函数 (9)struct:声明结构体变量或函数 (10)union:声明共用体(联合)数据类型 (11)unsigned:声明无符号类型变量或函数 (12)void:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) 2控制语句关键字(12个): A循环语句 (1)for:一种循环语句(可意会不可言传) (2)do:循环语句的循环体 (3)while:循环语句的循环条件 (4)break:跳出当前循环 (5)continue:结束当前循环,开始下一轮循环 B条件语句 (1)if:条件语句 (2)else:条件语句否定分支(与if连用) (3)goto:无条件跳转语句

C语言基本数据类型及运算题库1

基本数据类型及运算 一、选择题 1.若以下选项中的变量已正确定义,则正确的赋值语句是。 A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3; 答案:C 2.设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。 A)x=x*100+0.5/100.0B)x=(x*100+0.5)/100.0 C)x=(int)(x*100+0.5)/100.0D)x=(x/100+0.5)*100.0 答案:C 3.下列C语言中运算对象必须是整型的运算符是。 A)%=B)/C)=D)*= 答案:A 4.若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A)0B)0.5C)1D)2 答案:A 5.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是。 A)把x和y按从大到小排列B)把x和y按从小到大排列 C)无确定结果D)交换x和y中的值 答案:D 6.下列变量定义中合法的是。 A)short_a=1-.le-1;B)double b=1+5e2.5; C)long do=0xfdaL;D)float2_and=1-e-3; 答案:A 7.以下4个选项中,不能被看作是一条语句的是。 A){;}B)a=0,b=0,c=0; C)if(a>0);D)if(b==0)m=1;n=2; 答案:D 8.设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9.在C语言中不合法的整数是。 A)20B)0x4001C)08D)0x12ed 答案:C 10.以下选项中不正确的实型常量是 A)2.607E-1B)0.8103e0.2C)-77.77D)456e–2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7B)a=7+b+c,a++ C)int(12.3%4)D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11D)0x19

相关文档
相关文档 最新文档