C语言全国计算机二级等级考试教程第六章字符(章节带习题)(ppt文档)
合集下载
最新-全国计算机等级考试二级C语言程序设计考试大纲及习题-PPT文档资料

上机操作题
试题程序:
#include “stdio.h”
#include “string.h”
int k=0;
void fun(char *p,char *q,char *c)
{ /********** found **********/
while(*p || *q)
int k=1; /********** found **********/
上机操作题
试题程序: #include<stdio.h> main()
{ int n,m; long sum;
s_u_m__=_0_ ;
clrscr(); printf("\nInput n,m\n"); scanf("%d,%d",&n,&m); while(n<=m)
{
_s_u__m_+_=__n_或___s_u_m__=_s_u_m__+_n__ ;
n++; }
printf("sum= __%_l_d__ \n",sum);
}
上机操作题
② 改错题 下列给定程序中,函数 fun 的功能是:逐个 比较a、b两个字符串对应位置中的字符,把 ASCII值大或相等的字符存放到 c 数组中, 形成一个新的字符串。例如:若 a 中的字符 串为:aBCDeFgH,b 中的字符串为: ABcd,则 c 中的字符串应为:aBcdeFgH。 请改正程序中错误,使它能得到正确结果。 注意:不要改动 main 函数,不得增行或减 行,也不得更改程序的结构。
main()
fopen(fname,”a”) 或 fopen(fname,”a+”)
计算机二级C语言(公共基础知识基本数据结构与算法)课件

硬件是计算机的物质基础,负责执行计算机系统 的操作;软件是计算机的灵魂,负责控制计算机 的运行。
软件工程基础
软件工程是指导计算机软件开发和维护的一门工程学科,采用工程化的 概念、原理、技术和方法,以及合适的开发工具及开发软件,来生产高 质量的软件并对其进行维护。
软件工程的目标是提高软件的质量和生产率,最终实现软件的可靠性、 易用性和可维护性。
计算机二级C语言(公 共基础知识基本数据
结构与算法)课件
目录
• 基础知识 • 数据结构 • 算法 • 公共基础知识
01
基础知识
C语言概述
C语言是一种通用的、过程式的计算机程序设计语言,广泛应用于系统软 件、嵌入式软件、游戏开发等领域。
C语言具有高效、灵活、可移植性强的特点,能够直接对硬件进行操作, 因此被视为一种底层语言。
C语言由丹尼斯·里奇于1972年设计,并随着UNIX操作系统的普及而流行 起来。
C语言基础语法
数据类型
C语言支持多种数据类型,包括整型、浮点型、字符型等,每种类型都有其特定的取值范围和存 储方式。
运算符
C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等,用于进行各种运算 和逻辑判断。
02
03
数据结构是算法的载体,算法在 数据结构上运作。数据结构的合 理选择能提高算法的效率,算法 的操作对象是数据结构。
数据结构主要研究数据的逻辑结 构和数据的物理结构,以及数据 的基本操作和算法。
算法是对特定问题求解步骤的一 种描述,能够对一定规范的输入 进行输出。
计算机系统组成
计算机系统由硬件和软件组成。硬件包括运算器 、控制器、存储器、输入输出设备等;软件包括 系统软件和应用软件。
快速排序
软件工程基础
软件工程是指导计算机软件开发和维护的一门工程学科,采用工程化的 概念、原理、技术和方法,以及合适的开发工具及开发软件,来生产高 质量的软件并对其进行维护。
软件工程的目标是提高软件的质量和生产率,最终实现软件的可靠性、 易用性和可维护性。
计算机二级C语言(公 共基础知识基本数据
结构与算法)课件
目录
• 基础知识 • 数据结构 • 算法 • 公共基础知识
01
基础知识
C语言概述
C语言是一种通用的、过程式的计算机程序设计语言,广泛应用于系统软 件、嵌入式软件、游戏开发等领域。
C语言具有高效、灵活、可移植性强的特点,能够直接对硬件进行操作, 因此被视为一种底层语言。
C语言由丹尼斯·里奇于1972年设计,并随着UNIX操作系统的普及而流行 起来。
C语言基础语法
数据类型
C语言支持多种数据类型,包括整型、浮点型、字符型等,每种类型都有其特定的取值范围和存 储方式。
运算符
C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等,用于进行各种运算 和逻辑判断。
02
03
数据结构是算法的载体,算法在 数据结构上运作。数据结构的合 理选择能提高算法的效率,算法 的操作对象是数据结构。
数据结构主要研究数据的逻辑结 构和数据的物理结构,以及数据 的基本操作和算法。
算法是对特定问题求解步骤的一 种描述,能够对一定规范的输入 进行输出。
计算机系统组成
计算机系统由硬件和软件组成。硬件包括运算器 、控制器、存储器、输入输出设备等;软件包括 系统软件和应用软件。
快速排序
全国计算机二级考试C教程课件

用于从控制台读取数据。
gets函数
用于从控制台读取字符串。
02 程序控制结构
顺序结构
定义
顺序结构是指程序按照代码的先后顺 序执行,程序从上到下、从左到右依 次执行。
特点
顺序结构是最基本的程序结构,程序 按照代码的顺序执行,没有分支和循 环。
顺序结构
01
示例
02
```c
int main() {
03
指针基础
指针变量
指针变量用于存储内存地址。通过指针变量可以访问和 修改变量的值。
指针运算
指针可以进行加、减、比较等运算,以操作内存地址。
指针与数组
数组指针
指针与字符串
数组指针是指向数组首元素的指针。通过数 组指针可以访问数组元素,并进行数组操作。
字符串在C语言中通常以字符数组的形式存 储。通过指针可以访问字符串中的字符,并 进行字符串操作。
链表基础
链表节点
链表由一系列节点组成,每个节点包含数据 和指向下一个节点的指针。
插入节点
在链表中的指定位置插入一个新节点,需要 修改插入位置前后的节点的指针。
头节点
链表的第一个节点,通常用于存储链表的长 度和指向链表中的第一个节点。
删除节点
删除链表中的指定节点,需要修改被删除节 点前后的节点的指针。
选择结构
int main() {
```c
示例
01
03 02
选择结构
01
int a = 5;
02
int b = 10;
03
if (a > b) {
选择结构
选择结构
} else {
printf("b is greater than or equal to a");
gets函数
用于从控制台读取字符串。
02 程序控制结构
顺序结构
定义
顺序结构是指程序按照代码的先后顺 序执行,程序从上到下、从左到右依 次执行。
特点
顺序结构是最基本的程序结构,程序 按照代码的顺序执行,没有分支和循 环。
顺序结构
01
示例
02
```c
int main() {
03
指针基础
指针变量
指针变量用于存储内存地址。通过指针变量可以访问和 修改变量的值。
指针运算
指针可以进行加、减、比较等运算,以操作内存地址。
指针与数组
数组指针
指针与字符串
数组指针是指向数组首元素的指针。通过数 组指针可以访问数组元素,并进行数组操作。
字符串在C语言中通常以字符数组的形式存 储。通过指针可以访问字符串中的字符,并 进行字符串操作。
链表基础
链表节点
链表由一系列节点组成,每个节点包含数据 和指向下一个节点的指针。
插入节点
在链表中的指定位置插入一个新节点,需要 修改插入位置前后的节点的指针。
头节点
链表的第一个节点,通常用于存储链表的长 度和指向链表中的第一个节点。
删除节点
删除链表中的指定节点,需要修改被删除节 点前后的节点的指针。
选择结构
int main() {
```c
示例
01
03 02
选择结构
01
int a = 5;
02
int b = 10;
03
if (a > b) {
选择结构
选择结构
} else {
printf("b is greater than or equal to a");
计算机二级考试C语言辅导PPT课件

A)C语言程序是由过程和函数组成的 B)C语言函数可以嵌套调用,例如:fun(fun(x)) C)C语言函数不可以单独编译 D)C语言中除了main函数,其他函数不可作为单独文件形式存在
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针 类型,无值类型void)及其定义方法。
2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,
else max = y; 4)复合语句:用{ }把多个语句括起来称为复合语句,又
称分程序
(1)while ( x < 0 )
{y = - x ; x ++ ; }
(2) if ( x > y )
{ t =x ; x = y; y = t;}
1)字符输入函数: putchar( ) (功能,参数及其类型,返回值及其类型) putchar(‘a’); putchar(‘\023’);putchar(‘\x1a’);putchar(30+35); char x; int y; float z; putchar(x); putchar(y); putchar(z);
一个结果
printf(“%d”,x++,x+6,x+=7); 6)条件运算符: (1)唯一的一个三目运算符(2)结合性(3)规则
( (w)?x++:y++ 找等价 表达式1的值非0或0)
1)赋值转换:以变量类型为准
int a ; a = 2.3;
float b; b=7; 2)计算时自动转换:低精度向高精度转换,特别的是单
s1=s1+f1(i); for(j=1;j<=10;j++)
二、数据类型及其运算
1.C的数据类型(基本类型,构造类型,指针 类型,无值类型void)及其定义方法。
2.C运算符的种类、运算优先级和结合性。 3.不同类型数据间的转换与运算。 4.C表达式类型(赋值表达式,算术表达式,
else max = y; 4)复合语句:用{ }把多个语句括起来称为复合语句,又
称分程序
(1)while ( x < 0 )
{y = - x ; x ++ ; }
(2) if ( x > y )
{ t =x ; x = y; y = t;}
1)字符输入函数: putchar( ) (功能,参数及其类型,返回值及其类型) putchar(‘a’); putchar(‘\023’);putchar(‘\x1a’);putchar(30+35); char x; int y; float z; putchar(x); putchar(y); putchar(z);
一个结果
printf(“%d”,x++,x+6,x+=7); 6)条件运算符: (1)唯一的一个三目运算符(2)结合性(3)规则
( (w)?x++:y++ 找等价 表达式1的值非0或0)
1)赋值转换:以变量类型为准
int a ; a = 2.3;
float b; b=7; 2)计算时自动转换:低精度向高精度转换,特别的是单
s1=s1+f1(i); for(j=1;j<=10;j++)
计算机二级C语言教学ppt

char str[10]={ “string!” } \\ 直接赋值。char str[10]=“string!” char str[7]=“string!” \\数组最后没有’\0‟,不能表示字符串 char str[ ]=“string!” \\数组大小为8,最后为’\0‟
将字符串放入字符数组中(执行中赋值) char str[10],str1[10]; int i ; str={“string!”};\\str是数组名(常量),不能赋值 str1=str; \\ str1为常量 for(i=0;i<9;i++) scanf(“%d”,&str[i]); str[9]=„\0‟;\\循环赋值,最后手动加’\0‟(scanf不接收’\0‟)
10.6 字符指针数组
• 字符指针数组:一个数组中的各个元素都是字符指针 char *pa [3] = {"A", “BB", “CCC“,”DDDD”};
pa pa[0]
pa[1]
EE05 EE20
A\0 BB\0 CCC\0 DDDD\0
习题 10.7 10.8 10.9 10.13
EE44
EE87
string.h strlen strcpy strcmp strcat ……
strlen #include <stdio.h> 语法 #include <string.h> void main() strlen(s); { 描述 char arr[] = "Beijing"; 计算字符串s中字符的个数,并将字符的个数作为 int len1, len2; len1 = strlen(arr); 函数的返回值。在计算字符个数时不计表示字符串 len2 = strlen("Shanghai"); 结束的空字符'\0'。 printf("\n string = %s length = %d", arr, len1); printf("\n string = %s length = %d \n","Shanghai",len2); } string = Beijing length = 7
将字符串放入字符数组中(执行中赋值) char str[10],str1[10]; int i ; str={“string!”};\\str是数组名(常量),不能赋值 str1=str; \\ str1为常量 for(i=0;i<9;i++) scanf(“%d”,&str[i]); str[9]=„\0‟;\\循环赋值,最后手动加’\0‟(scanf不接收’\0‟)
10.6 字符指针数组
• 字符指针数组:一个数组中的各个元素都是字符指针 char *pa [3] = {"A", “BB", “CCC“,”DDDD”};
pa pa[0]
pa[1]
EE05 EE20
A\0 BB\0 CCC\0 DDDD\0
习题 10.7 10.8 10.9 10.13
EE44
EE87
string.h strlen strcpy strcmp strcat ……
strlen #include <stdio.h> 语法 #include <string.h> void main() strlen(s); { 描述 char arr[] = "Beijing"; 计算字符串s中字符的个数,并将字符的个数作为 int len1, len2; len1 = strlen(arr); 函数的返回值。在计算字符个数时不计表示字符串 len2 = strlen("Shanghai"); 结束的空字符'\0'。 printf("\n string = %s length = %d", arr, len1); printf("\n string = %s length = %d \n","Shanghai",len2); } string = Beijing length = 7
C语言全国计算机二级等级考试教程循环结构章节带习题PPT课件

n++; } printf(“%d\n”,s); }
while(n<=100) 问:循环体共执行了几次?
18
第2页/共18页
5.2 do-while语句和用do-while语句构成的循 环结构
5.2.1 do-while语句构成的循环结构
do-while循环结构的一般形式:
关键字
do 循环体
while(表达式);
C 26 68
D 39 81
第13页/共18页
习题
二.填空题 5.11 当执行以下程序段后,i的值是____5___.j的值是____4__.k的值是____6___. int a,b,c,d,i,j,k; a=10;b=c=d=5;i=j=k=0; for( ;a>b;++b) i++; while(a>++c) j++; do k++; while(a>d++); 5.12 以下程序段的输出结果是___1_0_2_4____. int k,n,m; n=10;m=1;k=1; while(k++<=n) m*=2; printf("%d\n",m); 5.13 以下程序的输出结果是____-1____. #include <stdio.h> main() {int x=2; while(x--); printf("%d\n",x); }
}
printf("%d\n",s);
程序段的输出结果是
A9
B1
C 11
5.2 有以下程序段: C
int i,j,m=0;
while(n<=100) 问:循环体共执行了几次?
18
第2页/共18页
5.2 do-while语句和用do-while语句构成的循 环结构
5.2.1 do-while语句构成的循环结构
do-while循环结构的一般形式:
关键字
do 循环体
while(表达式);
C 26 68
D 39 81
第13页/共18页
习题
二.填空题 5.11 当执行以下程序段后,i的值是____5___.j的值是____4__.k的值是____6___. int a,b,c,d,i,j,k; a=10;b=c=d=5;i=j=k=0; for( ;a>b;++b) i++; while(a>++c) j++; do k++; while(a>d++); 5.12 以下程序段的输出结果是___1_0_2_4____. int k,n,m; n=10;m=1;k=1; while(k++<=n) m*=2; printf("%d\n",m); 5.13 以下程序的输出结果是____-1____. #include <stdio.h> main() {int x=2; while(x--); printf("%d\n",x); }
}
printf("%d\n",s);
程序段的输出结果是
A9
B1
C 11
5.2 有以下程序段: C
int i,j,m=0;
C语言全国计算机等级考试2级所有教程全面PPT课件

}
> 2021/2/23
15
格式特点
❖习惯用小写字母,大小写敏感 #include<stdio.h>
❖不使用行号,无程序行概念 ❖可使用空行和空格 ❖常用锯齿形书写格式
优秀程序员的素质之一:
mamina(in)( )
{ { ……………….
int…i ,…j ,…s…um…; …
sum=0…; ………..
模块组装成所要求的程序
2021/2/23
13
第2章 C程序设计的初步知识
❖ 2.1 认识C程序
❖ 例2.1 第一个程序 Hello,World!
/* example2.1 The first C Program*/
#include <stdio.h>
编译预处理
main()
函数
{ printf(“Hello,World!”); 语句
}
输出: Hello,World!
2021/2/23
注释
14
例2.2 求矩形的面积。
#include <stdio.ain program */
main()
语句
{ double a,b,area;
a=1.2;
b=3.6;
area=a*b;
printf(”area= %f\n",area);
第9章 数组 第10章 字符串 第11章 对函数的进一步讨论 第12章 作用域和存储类别 第13章 编译预处理和动态存储分配 第14章 结构体、共用体和用户定义类型 第15章 位运算 第16章 文件
2021/2/23
7
第1章 程序设计基本概念
1.1程序和程序设计 1.1.1C程序 连续执行的一条条指令的集合称为“程序”。计算机并不能直接识
全国计算机二级C语言考试大纲精品课件第六章

}
显示运行结果
6.3 字符数组
6.3.1 字符数组的定义 用来存放字符数据的数组称为字符数组。字符数组类型
说明的形式与前面介绍的数值数组相同。 例如:char c[10];
由于字符型和整型通用,也可以定义为int c[10], 但这时每个数组元素占2个字节的内存单元,浪费空 间。 字符数组也可以是二维或多维数组, 例如:char c[5][10];即为二维字符数组。
a[3][4] 表示a数组三行四列的元素。下标变量和数 组说明在形式中有些相似,但两者具有完全不同的含义。 数组定义的方括号中给出的是某一维的长度,即可取下标 的最大值;而数组元素中的下标是该元素在数组中的位 置标识。前者只能是常量, 后者可以是常量,变量或表 达式。
例3 一个学习小组有5个人,每个人有语文、数学、化学三门课的考试成绩。 求全组分科的平均成绩和各科总平均成绩。
{59,63,70}, {85,87,90}, {76,77,85} }; 2)按行连续赋值可写为 int a[5][3]={ 80, 75, 92, 61, 65, 71, 59, 63,
70, 85, 87, 90, 76, 77, 85 };
这两种赋初值的结果是完全相同的。
3)可以只对部分元素赋初值,未赋初值的元素自动取0值。 例如: int a[3][3]={{1},{2},{3}};是对每一行的第一
例如:
int a[10];
//说明整型数组a,有10个元素
float b[10],c[20]; //说明实型数组b,有10个元素,
实型数组c,有20个元素
char ch[20];
//说明字符数组ch,有20个元素
对于数组类型说明应注意以下几点:
全国计算机二级c语言学习指南课件与历年真题精讲精析 第6章

switch(n++)
{default:printf("error");break; case 'a':case 'A':case 'b':case 'B':printf("good");break; case 'c':case 'C':printf("pass"); case 'd':case 'D':printf("warn"); } } switch case计算int值
练习:数字字符0的ASCII值为48,若有以下程序 main() { char a='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a); } 程序运行后的输出结果是 A)3,2
B)50,2
√
C)2,2 D)2,50
练习:有以下程序 main() { char a='a',b;
getchar()函数的功能是从键盘读入一个字符。 格式为:ch=getchar(); ch指字符型或整型变量。getchar()是无参函数。 如:char c; c=getchar();
注意:使用putchar()和getchar()函数时,必须有包 含头文件“stdio.h”的命令行: #include <stdio.h>
6.3 字符的输入和输出 printf函数 (1)格式说明符:%c 用来输出一个字符(包括转义字符) 如:char c=„a‟; printf(“%c”,c); (2)一个整数,可以用字符形式输出先取低8位;反之,一 个字符型数据也可以用整数形式输出正数高位补0。 如:main() { char c=„a‟; int i=97; printf(“%c,%d”,c,c); printf(“%c,%d”,i,i); }
计算机二级C语言第06章课件

6.3
函数参数和函数的值
6.3.1 形式参数和实际参数 在调用函数时,大多数情况下,主调函数和被调 用函数之间有数据传递关系。这就是前面提到的有 参函数。前面已提到:在定义函数时函数名后面括 弧中的变量名称为“形式参数”(简称“形参”), 在主调函数中调用一个函数时,函数名后面括弧中 的参数(可以是一个表达式)称为“实际参数”(简 称“实参”)。 例6.2调用函数时的数据传递。 main() { int max(int x,int y);/*
图6.3 图6.4 在调用函数时,给形参分配存储单元,并将实参对 应的值传递给形参,调用结束后,形参单元被释放, 实参单元仍保留并维持原值。因此,在执行一个被调 用函数时,形参的值如果发生改变,并不会改变主调 函数的实参的值。例如,若在执行函数过程中x和y的 值变为10和15,而a和b仍为2和3,见图6.4。
printf("* * * * * * * * * * *\n"); } void print_message(); /* print_message函数*/ { printf("How do you do!\n"); } 运行情况如下: * * * * * * * * * How do you do! * * * * * * * * *
6.2
函数定义的一般形式
1. 无参函数的定义形式
类型标识符 函数名() { 声明部分 语句 } 例6.1中的printstar和print_message函数都是无参 函数。用“类型标识符”指定函数值的类型,即函 数带回来的值的类型。无参函数一般不需要带回函 数值,因此可以不写类型标识符,例6.1就如此。
要调用一个函数”, 而现在这个函数没有起作用, 等以后扩充函数功能时补充上。 在程序设计中往往 根据需要确定若干模块, 分别由一些函数来实现。 而在第一阶段只设计最基本的模块, 其他一些次要 功能或锦上添花的功能则在以后需要时陆续补上。 在编写程序的开始阶段,可以在将来准备扩充功能 的地方写上一个空函数(函数名取将来采用的实际 函数名(如用merge()、matproduct()、 oncatenate()、shell()等,分别代表合并、矩 阵相乘、字符串连接、希尔法排序等),只是这些 函数未编好,先占一个位置,以后用一个编好的函 数代替它。这样做,程序的结构清楚,
第六章全国计算机二级C语言课件new.ppt

注意:若程序中用到上面两个函数,则在程序的开头 注意:若程序中用到上面两个函数, 加上#include “stdio.h” 加上
2010年12月4日星期六 主讲教师:李 黎 14
真题选讲
2010年12月4日星期六
主讲教师:李 黎
15
程序举例
1.、printf 语句中,第一个 用%c输出一个字符,第二个 用%d输出字符 、 语句中,第一个ch用 输出一个字符 第二个ch用 输出一个字符, 输出字符 代码值。 的ASCII代码值。 代码值 2、printf语句后面的回车换行符是“\n” (双引号),而 putchar语句后面 语句后面的回车换行符是“ 双引号), ),而 、 语句后面的回车换行符是 语句后面 的回车换行符是’\n’(单引号)。 的回车换行符是 (单引号)。 3、从本例中掌握小写字母转换为大写字母的方法。 、从本例中掌握小写字母转换为大写字母的方法。
2010年12月4日星期六 主讲教师:李 黎 16
★
1、while((c=getchar())!=‘\n’)这句话经常考到,请考生注意。它的意思是,如果输 、 这句话经常考到, 这句话经常考到 请考生注意。它的意思是, 入的不是回车符,则执行下面的循环;也就是说,如果输入用回车符结束, 入的不是回车符,则执行下面的循环;也就是说,如果输入用回车符结束,则 循环也就结束了。 循环也就结束了。 2、if(c>=‘a’&&c<=‘z’)这句话是判断小写字母的方法。如果一个字符的 这句话是判断小写字母的方法。 、 这句话是判断小写字母的方法 如果一个字符的ASCII值 值 >=’a’的ASCII值,<=’z’的ASCII值,则这个字符一定是小写字母。 的 值 的 值 则这个字符一定是小写字母。 3、c=c-(‘a’-’A’)用小写字母 减去大写字母和小写字母的差值,得出的字母就是大写 用小写字母c减去大写字母和小写字母的差值 、 用小写字母 减去大写字母和小写字母的差值, 字母,可直接写成c=c-32。因此公式可写为:小写字母 - 32=大写字母;大写字 大写字母; 字母,可直接写成 。因此公式可写为: 大写字母 小写字母。 母+32=小写字母。 小写字母
名师名校精品课件【全国计算机等级考试二级课程-C语言程序设计 】C6_3

c[0] I c[1] 空 格 c[2] L c[3] i c[4] k c[5] e c[6] 空 格 c[7] C c[8] \0 c[9] \0
ห้องสมุดไป่ตู้
字符数组存储示意图 未初始化或赋初值的数组元素值不确定: char a[5]; a[0]=„c‟; a[1]=„d‟; 可在数组最后赋值’\0‟用来结束字符数据的处理: a[2]=„\0‟ ; // 或初始化数组 char a[5]={„c‟, „d‟}; 对全体元素赋初值时可省去长度说明: char c[ ]={„I‟, „ ‟, „L‟, „I‟, „k‟, „e‟, „ ‟, „C‟}; // char c[8] //存放字符串”I Like C”
s为字符数组名或字符串中某个字符的地址
char s[40]; gets(s); 注: 可输入包括空格、Tab的字符串
上一张 下一张
3. 字符串输出函数puts( )
格式:puts(s); 功能:输出内存中从地址s起的若干字符至’\0‟, 并将’\0‟转换为换行符输出。 char s[8]="Welcome"; puts(s); //输出:Welcome↙ printf ("%s", s); //输出:Welcome
//char a[8],存放的字符串为”abc”
char c[5]; c=“Like”; //×数组名是地址常量,不能将字符串直接赋给数组名
上一张 下一张
6.3.2 字符串的输入、输出
【例6.13】输入一行字符,将其中的小写字母转换为 大写字母后输出。
#include <stdio.h> void main() { char c[81]; scanf(“%s”, c); int i; for (i=0; (c[i]=getchar())!=„\n‟; i++) ; //逐个字符输入 c[i]=„\0‟; for (i=0; c[i]!= „\0‟; i++) { if (c[i]>=„a‟&&c[i]<=„z‟) c[i]-=32; printf("%c",c[i]); // putchar(c[i]); }
ห้องสมุดไป่ตู้
字符数组存储示意图 未初始化或赋初值的数组元素值不确定: char a[5]; a[0]=„c‟; a[1]=„d‟; 可在数组最后赋值’\0‟用来结束字符数据的处理: a[2]=„\0‟ ; // 或初始化数组 char a[5]={„c‟, „d‟}; 对全体元素赋初值时可省去长度说明: char c[ ]={„I‟, „ ‟, „L‟, „I‟, „k‟, „e‟, „ ‟, „C‟}; // char c[8] //存放字符串”I Like C”
s为字符数组名或字符串中某个字符的地址
char s[40]; gets(s); 注: 可输入包括空格、Tab的字符串
上一张 下一张
3. 字符串输出函数puts( )
格式:puts(s); 功能:输出内存中从地址s起的若干字符至’\0‟, 并将’\0‟转换为换行符输出。 char s[8]="Welcome"; puts(s); //输出:Welcome↙ printf ("%s", s); //输出:Welcome
//char a[8],存放的字符串为”abc”
char c[5]; c=“Like”; //×数组名是地址常量,不能将字符串直接赋给数组名
上一张 下一张
6.3.2 字符串的输入、输出
【例6.13】输入一行字符,将其中的小写字母转换为 大写字母后输出。
#include <stdio.h> void main() { char c[81]; scanf(“%s”, c); int i; for (i=0; (c[i]=getchar())!=„\n‟; i++) ; //逐个字符输入 c[i]=„\0‟; for (i=0; c[i]!= „\0‟; i++) { if (c[i]>=„a‟&&c[i]<=„z‟) c[i]-=32; printf("%c",c[i]); // putchar(c[i]); }
计算机二级C语言程序设计第6讲数组PPT课件

思考:如何从键盘给数组赋值, 如何输出?
循环
8
求数组元素的最大值
a[0]
a[1]
a[2]
a[3]
a[4]
12
29
96
45
17
max=a[0]=12max=a[1]=m29ax=a[2]=96
9
示例1(max.c):求数组元素的最大值 #include<stdio.h> main() {
int i,a[10],max; for(i=0;i<10;i++)
i=j=x[0]; p0=p1=0;
for(m=0;m<n; m++)
{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]<j) {j=x[m]; p1=m; }
}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1];x[p1]= _______; ________=t; }
3 7 15
21
2008年4月
1、执行以下程序的输出结果是: #include <stdio.h> main() {int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for (i=1;i<5;i++) printf(“%d”,c[i]); printf(“\n”); }
3.在C语言中,数组作为1个整体,不能参加数据运算,只能 对单个的元素进行处理。
示例:数组元素的输入、输出
6
[Return]
循环
8
求数组元素的最大值
a[0]
a[1]
a[2]
a[3]
a[4]
12
29
96
45
17
max=a[0]=12max=a[1]=m29ax=a[2]=96
9
示例1(max.c):求数组元素的最大值 #include<stdio.h> main() {
int i,a[10],max; for(i=0;i<10;i++)
i=j=x[0]; p0=p1=0;
for(m=0;m<n; m++)
{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]<j) {j=x[m]; p1=m; }
}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1];x[p1]= _______; ________=t; }
3 7 15
21
2008年4月
1、执行以下程序的输出结果是: #include <stdio.h> main() {int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for (i=1;i<5;i++) printf(“%d”,c[i]); printf(“\n”); }
3.在C语言中,数组作为1个整体,不能参加数据运算,只能 对单个的元素进行处理。
示例:数组元素的输入、输出
6
[Return]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12 3<CR> 1 2 3<CR> 1 2 3<CR>
⊙ 如下的语句为数值数据和字符数据进行混合输入:
int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2, &c2); 正确的读入形式: 10A 20B<CR> A和20之间必须有间隔符,间隔符的个数不限 此时变量a1接受的是10,c1接受的是‘A’, a2接受的是20,c2接受的是‘B’,
输出:putchar() 输入:getchar()
例如: char ch=‘A’; putchar(ch);
A
putchar(‘Y’); Y
例如: char ch; ch=getchar();
给字符变量接受字符
6.4 程序举例
例6.1 以下程序输出26个大写字母和它们的ASCII代码,每行输出两组数据。
第6章 字符型数据
6.1 字符型常量 6.2 字符变量 6.3 字符的输入和输出 6.4 程序举例
6.1 字符型常量
6.1.1 字符常量
字符常量:是用单引号括起来的一个字符。
例如
‘A’ ‘C’ ‘t’ ‘!’ ‘?’
说明
‘B’ ‘b’
是不同的字符常量
‘ ’ 单引号内是空格,也是合法的字符常量
例如
‘\n’ 回车换行符
‘\t’ 横向跳格符
‘\v’ 竖向跳格符
‘\r’ 回车符
‘\f’ 换页符
‘\b’ 退格符
‘\0’ 空值
‘\\’ 表示反斜杠
‘\‘’ 表示单引号
‘\“’ 表示双引号
‘\ddd’ 三位八进制数所代表的字符
‘\xhh’ 两位十六进制数所代表的字符
’\101‘
’A‘
‘\141’
‘a’
: : }
6.4 程序举例
例6.3 以下程序把从终端输入的一行字符中所有的小写字母转换成大写字母, 其他字符不变。
#include <stdio.h> main() {char c; while( ( c=getchar( ) ) != '\n‘ ) {
if( c>='a' && c<='z‘ ) c=c-32; putchar(c); } printf("\n"); }
6.4 程序举例
例6.4 编写程序统计输入的字符中空格符、换行符和横向跳格(制表)符的 个数,用!号结束输入。
#include <stdio.h>
10 A 20 B<CR>
错误的读入形式
6.3 字符的输入和输出
6.3.2 调用putchar和getchar函数输出和输入字符
在使用printf和scanf函数输出和输入字符时,在程序的开头,都要加上包含头文件: #include <stdio.h>
在使用putchar和getchar函数输出和输入字符时,在程序的开头也同样要有。
在内存中的存储形式是: C H I N A \0
6.1 字符型常量
6.1.4 可对字符常量进行的运算
1. 在程序中,字符常量可与任何整数进行运算。
‘B’ - ‘A’ 等价于 66 – 65 等于 1 ‘a’ + 1 等价于 97 + 1 等于 98 2. 小写字母的ASCII值比相应的大写字母的ASCII值大32。
字符变量在内存中占1个字节
分析如下程序段:
char c1,c2,c3; int k=5; c1=‘1’; c1++; c2=‘A’; c3=(c2+32+k)%25;
c1 c2 c3 k 5
6.3 字符的输入和输出
6.3.1 调用printf和scanf函数输出和输入字符
字符输出
char a;
a=‘S’;
例6.2 以下程序段等待从终端输入一个字符,当按Enter键时,程序才往下继续 进行。
#include <stdio.h> main() {:
: printf(“Press Enter to continue\n"); while( getchar( ) != ‘\n’ ) ; /*当输入回车时,退出循环*/
#include <stdio.h> main() {char ch; int i; for(i=0;i<26;i++) {ch=i+65;
if(i%2==0) printf("\n"); printf("ch=%c ASCII=%d } printf("\n"); }
",ch,ch+ 32 ‘b’ - 32
等价于 等价于
65 + 32 等于 97 ‘a’ 98 - 32 等于 66 ‘B’
3. 字符常量也可以进行关系运算。
‘a’ > ‘b’
0
‘a’ > ‘A’
1
‘a’ && ‘b’ 1
6.2 字符变量
字符变量的定义:字符变量用关键字char定义。 char ch,ca,cb; char ch=‘*’,ca=‘A’,cb=‘a’;
a=S
printf(“a=%c\n”,a); /*使用%c进行格式说明*/
输出时,也可以指定输出的宽度。例如:
char a; a=‘S’; printf(“a=%3c\n”,a);
a= S
字符输入
若要给变量a、b、c分别赋予‘1’、‘2’、‘3’。
char a,b,c;
正确的输入形式为: 123<CR>
‘abc’ 不合法
“a” 不合法
‘’ 不合法
注意
① 字符常量在内存中占一个字节。 ② 字符常量在计算机内部存储时,是以整型常量进行存储的。
‘A’
对应的ASCII值为
65
对应的ASCII值为
‘a’
97
6.1 字符型常量
6.1.2 转义字符常量
转义字符常量是一种特殊的字符常量,在单引号内以一个反斜杠开头。
’\x41‘
’A‘
‘\x6d’
‘m’
注意
’\n‘、’\101’、’\141’只代表一个字符。
6.1 字符型常量
6.1.3 字符串常量
字符串常量:是由双引号括起来的一串字符 。
例如
“STRING”
“CHINA”
注意
‘\101’、‘Z’是字符常量,在内存中占一个字节。 请问: “CHINA”在内存中占几个字节? 6
scanf(“%c%c%c”,&a,&b,&c);
12<CR> 3<CR>
1 23<CR>
非法
6.3 字符的输入和输出
6.3.1 调用printf和scanf函数输出和输入字符
⊙ 输入时,可以在格式说明串中加入空格,如:
123<CR>
scanf(“%c %c %c”,&a,&b,&c);
这时输入的时候,不做严格要求,可以任意加间隔符