二、数据类型及运算
- 格式:ppt
- 大小:1.94 MB
- 文档页数:36


实验2 基本数据类型和运算程序设计
//
//------------------------------------------------------------
#include
#define PI 3.14159;
void main(void)
{
int k,p; /* for task 1*/
int c; /* for task 2*/
int x,y,z,w; /* for task 3*/
float r, s; /* for task 4*/
unsigned short i,m,n,_result; /* for task 5*/
char a; /* for task 6*/
/*task 1*/
/*输入整数k、p,将整数k的高字节作为结果的低字节,
整数p的高字节作为结果的高字节,拼成一个新的整数,
然后输出;*/
printf("input int k,p:");
scanf("%x%x",&k,&p);
int newint = (p&0xff00)|(k&0xff00)>>8;
printf("new int = %x\n\n",newint);
getchar();
/*task 2*/
/*输入字符c。如果c是大写字母, 则将c转换成对应的小写,否则c的值不变,
最后输出c;*/
printf("input a character:");
c = getchar();
c >= 'A' && c <= 'Z'? putchar(c + 'a'- 'A'): putchar(c);
putchar('\n');
putchar('\n');
/*task 3*/
/*输入整数x、y、z,输出其中最小值;*/
printf("input x, y, z:");
二、数据类型及其运算
本章概述:
本章主要考查C语言的数据类型、C语言运算符,C表达式以及不同类型之间转换。通过对历年试卷内容的分析,本章考核内容约占11%,本章部分所涉及考题分值比较多,是重点考试章节。
年份 2007.4 2007.9 2008.4 2008.9
分值 13 11 11 10
大纲要求:
1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。
2.C运算符的种类、运算优先级和结合性。
3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
重点难点:
1. 标识符的命名规则
2. 数据类型转换及其取值范围
3. 运算符的优先级
4. C语言表达式的类型和值
5. 自增和自减运算
6. 赋值和位运算
C语言提供数据结构是以数据类型的形式出现的,且数据有常量和变量之分。
数据类型基本类型构造类型指针类型空类型整型(长短;有无符号)字符型(有无符号)实型(浮点型)枚举类型数组类型结构体类型共同体类型单精度型双精度型C语言有丰富的数据类型考点分析:
标识符
用来标识变量名、符号常量名、函数名、数组名、类型名等实体(程序对象)的有效字符序列。C语言标识符定义规则:
1)标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
例如:合法的标识符:sum,average,_total,Class,day,stu_name,p4050
不合法的标识符:M.D.John,$123,#33,3D64,a>b
2)大小写敏感。C程序员习惯:变量名小写,常量名大写,但不绝对,如windows编程,应当使用匈牙利表示法(大小写混用,每个单词词首第一个大写,其余小写,如WinMain)。
例如:sum不同Sum。BOOK不同book。
3)ANSI C没有限制标识符长度,但各个编译系统都有自己的规定和限制(TC 32个字符,MSC
数据类型及运算
(总分:16.00,做题时间:90分钟)
一、{{B}}选择题{{/B}}(总题数:8,分数:8.00)
1.以下符合C语言语法的实型常量是______。
(分数:1.00)
A.2.1E3.2
B.2.14E
C..5E2 √
D.E1
解析:
2.下列叙述中正确的是______。
(分数:1.00)
A.C语言中既没有逻辑类型也没有集合类型 √
B.C语言中没有逻辑类型但有集合类型
C.C语言中有逻辑类型但没有集合类型
D.C语言中既有逻辑类型也有集合类型
解析:
3.以下程序的输出结果是______。 #include<stdio.h> main() { int a=5,b=4,c=6,d; printf("%d/n",d=a>b?(a>c?a:c):(b)); }
(分数:1.00)
A.5
B.4
C.6 √
D.不确定
解析:
4.如下程序的运行结果是______。 #include<stdio.h> main() { int x=y=3,z=1; printf ("%d%d/n",(++x,y++),z+2); }
(分数:1.00)
A.3 4
B.4 2
C.4 3
D.3 3 √
解析:
5.语句printf("a/bhow/'s///bhe/n");的输出结果是______。(说明:'b'是退格符)
(分数:1.00)
A.a/bhow/'s///bhe/n
B.a/bhow/'s//bhe
C.how'she √
D.abhow'she
解析:
6.若x和y代表整型数,以下表达式中不能正确表示数学关系,|x-y|<10的是______。
(分数:1.00)
A.abs(x-<10
B.x-y>-10&&x-y<10
C.(x-<-10||!(y->10 √
D.(x-*(x-<100
解析: 7.下列程序的输出结果是______。 #include<stdio.h> main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d/n",d*y); }
习题二 数据类型及其运算
1.已定义c为字符型变量,则下列语句中正确的是______。
A、c='97' B、c="97"; C、c=97; D、c="a";
解析:本题的考查点是字符型变量。C语言中,字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C正确。
2.以下选项中可作为C语言合法整数的是______。
A、10110B B、0386 C、0Xffa D、x2a2
解析:本题的考查点是C语言中的整型常数。整型常数可以用十进制、八进制或十六进制表示,并分为有符号数、无符号数和长整数。由此可知选项A错;选项B,用0386表示八进制错误,因为八进制数为0-7八个数字,含有8是不对的;选项D,数字前加“0x”表示十六进制数,所以D也不对。故本题答案为C。
3. 以下选项中不能作为合法常量的是______。
A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e0
解析:本题考查的是常量表示法。本题选项中的几个常量都属于指数形式的实型常量。此种类型的常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。故本题答案为B。
4.与十进制数200等值的十六进制数为______。
A、A8 B、A4 C、C8 D、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)))