- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
返回16Biblioteka 7.以下程序运行后的输出结果是________。 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf("%d ",n[i]); } 正确答案:1 3 7 15(知识点:一维数组的定义与 引用)
数组名表示内存首地 址,是地址常量
<
>
编译时分配连续内存 例 int data[5]; //C语言对数组不作越界检查, int i=15; 内存字节数=数组大小× data[5]=10; (不能用变量定义数组维数) 9 使用时要 注意 int data[i]; 返回 每元素的字节
一维数组的初始化
返回
13
C语言及程序设计基本知识
△ △ △ 4.若已定义x和y为double类型,则表达式x=1, y=x+3/2的值是________。 A)1 B)2 C)2.0 D)2.5 正确答案:C(知识点:逗号表达式,混合类型运算) 试题分析:x=1,y=x+3/2是一个逗号表达式,按顺序先计算 x=1,再计算y=x+3/2,整个逗号表达式的值等于表达式 y=x+3/2的值。计算y=x+3/2时,3/2中3和2都是int类型, 3/2的结果是int类型值1,与double类型的x相加,结果为 double类型的2.0,再赋给double类型的y,所以y和表达式 y=x+3/2的值均为double类型的2.0。 类型转换:总是针对特定的运算符:单独进行:此例:除法 /的操作数未转换为浮点数!!! 返回
[1] j
[2] str[j-1]
返回
21
1.2 C的基本语句
break 1.赋值语句 y= x+3; x+=5; continue 2.自加,自减表达式语句 y++,y--,++y,--y 3.分支语句 Switch(x) if (x= =0) {x++;} { case 1: {x++;break;} else {x--;} default: { break;}} 4.循环语句 for(i=0;i<8;i++); while(i<8){i++}; do{x++;} while(x<8); 5.流程控制语句 break;continue;
返回
17
8.以下数组定义中不正确的是________。 A)int a[2][3]; B)int b[][3]={0,1,2,3}; C)int c[100][100]={0}; D)int[3][]= {{1,2},{1,2,3},{1,2,3,4}}; 正确答案:D(知识点:二维数组的初始化) 试题分析:二维数组初始化时,对数组第一维的 长度可以不指定,但第二维的长度不能省略。
0x000005
变量 index 变量 aindex 变量 k (int) 变量 index 和 aindex 共享
0x01
0x000005
„„
0x000005
„„
结论: 请思考下面程序片段输出结果是什么? 结构体是每个成员独享各自大小的内存单元 如果把 union student 类型换为struct student ,输出结果又是 共用体则是共享一块内存单元,其大小等于所有成员中占用内存单 什么? 元最大的成员变量。且一次仅有一个成员有效。
返回
12
C语言及程序设计基本知识
3. 将int 变量n转换为 float 型变量的方法是。 A) float n B) (float ) n C) float (n) D) (n) float
正确答案:B(知识点:C的基本数据类型转换方法)
4. int i=65; 则 putchar(i);printf(“%d”,i); printf(“%c”,i); 的输出结果为 。 A) A,65,A B) 65,65,A C) A,A,65 D) A,A,A 正确答案:A(知识点:C的基本数据类型的输出)
返回
3
1.1 C基本数据类型
程序
算法
数据结构
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可以进行的操作
返回
4
C的数据类型
整 型
短整型 short 整型 int 长整型 long 单精度型 float 双精度型 double
基本类型
实 型(浮点型) 字符型 char
C 数 据 类 型
10
结构体与共用体
struct <结构体名> { <成员列表> } strcut student { int index; char aindex; };
union <结构体名> { <成员列表> } union student { int index; char aindex; };
内存用户数据区 „„ 2000 2004 2005 2010 3010
union student stud1; stud1.index = 1; stud1.aindex = 2; printf("%d,%d,%d\n",stud1.index,stud1.aindex,sizeof(stud1)); 返回
11
C语言及程序设计基本知识
2.以下选项中不属于C语言的类型的是________。 A)signed short int B)unsigned long int C)unsigned int D)long short 正确答案:D(知识点:C语言的基本数据类型) 试题分析:C语言的基本类型包括signed short int、 unsigned long int、unsigned int、char、float、double 等,没有long short类型。
实现的方法: 在定义数组时对数组元素赋初值。 在定义数组时,为数组元素赋初值 int a[5]={1,2,3,4,5}; (在编译阶段使之得到初值) 等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; 只给一部分元素赋值。 如 int a[5]={6,2,3}; 等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0; 如 int a[3]={6,2,3,5,1}; () 数组元素值全部为0。 int a[5]={0,0,0,0,0}; 或int a[5]={0}; 对整个数组元素赋初值时,可以不指定长度。 < > int a[]={1,2,3,4,5,6}; 返回 编译系统根据初值个数确定数组大小
枚举类型 enum
数组类型
构造类型
结构体类型
共用体类型
指针类型 空类型 void
返回
5
基础数据类型
数据类型关键字 char unsigned char short unsigned short int unsigned int long float double void 字节数 1 1 2 2 4 4 8 4 8 0 数值范围
返回
11. 函数fun的功能是使一个字符串按逆序存放,请填空。
void fun(char str[])
{char m; int i,j;
for(i=0,j=strlen(str);i<【1】 ;i++,j--)
{m=str[i];
str[i]=【2】 ;
str[j-1]=m;}
printf(“%s\n”,str);}
第1章 C语言程序设计
主要内容:
• • • • C语言基本数据类型 C语言基本语句 函数 指针
•
•
动态内存分配
链表
返回
1
【例1】 一个简单的C程序。
函数头部
void main(void) { printf(“Hello,World!”); }
函数体开始标志
C语句
函数体结束标志
问题:main函数是由什么组成?
返回
19
10.有下列程序: main() { char s[ ]= "\n123\\" printf("%d,%d\n",strlen(s),sizeof(s)); } 程序运行后的输出结果是________。 A)赋初值的字符串有错B)6,7 C)5,6 D)6,6 正确答案:C(知识点:字符串处理函数、转义字符) 试题分析:程序的输出结果是strlen(s)和sizeof(s)两个函数的值。函数 strlen(s)是求字符串s(用字符数组存储)的长度,即字符串s中有效字 符的个数,不包括字符串结束标志‘\0’,根据对s的初始化处理,字符 串s中包含两个转义字符‘\n’和‘\\’,因此字符串s的长度为5。函数 sizeof(s)是求字符数组s在内存中所占的字节数,根据程序中对s的初始 化处理,字符数组s的长度省略,即由其后的初始值来确定,是字符 串s中有效字符的个数加1(即加上字符串结束标志‘\0’),为6,由 于每个数组元素是字符类型,在内存中占一个字节,所以字符数组s 在内存中所占的字节数为6。注意,如果字符串s的长度在定义时给出 了确定的值,则计算其在内存中所占字节数时,按给定的长度计算。20
7
数组
用基本数据类型可以解决所有问题吗? 例如:对学生的成绩按由高到低的次序进行排序。 3 名?stud01,stud02,stud03 300 名?stud001,stud02,……stud300 ?
• 数组属于构造类型。 • 数组:是具有一定顺序关系的若干相同类型变量的集合, 用数组名标识。 • 元素:组成数组的变量,用数组名和下标确定
enum COLOR{ clRed ,clGreen ,clYellow }; void main(void) { enum COLOR myColor; myColor = clYellow; printf("%d\n",myColor); }