C语言3
C语言3:函数的运用
C语言实验——三个整数和、积与平均值Time Limit: 1000MS Memory limit: 65536K题目描述给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。
输入输入只有三个正整数a、b、c。
输出输出一行,包括三个的和、乘积、平均数。
数据之间用一个空格隔开,其中平均数保留小数后面两位。
示例输入1 2 3示例输出6 6 2.00#include<stdio.h>#include<math.h>void main(){int a,b,c,sum,product;float ave;while(scanf("%d%d%d",&a,&b,&c)!=EOF){sum=a+b+c;product=a*b*c;ave=sum/3;printf("%d %d %0.2f",sum,product,ave);}}汉诺塔Time Limit: 1000MS Memory limit: 65536K题目描述汉诺塔(又称河内塔)问题是印度的一个古老的传说。
开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒A、B和C,A上面套着n个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从A棒搬到C棒上,规定可利用中间的一根B棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。
僧侣们搬得汗流满面,可惜当n很大时这辈子恐怕就很搬完了。
聪明的你还有计算机帮你完成,你能写一个程序帮助僧侣们完成这辈子的夙愿吗?输入输入金片的个数n。
这里的n<=10。
输出输出搬动金片的全过程。
格式见样例。
示例输入2示例输出Move disk 1 from A to BMove disk 2 from A to CMove disk 1 from B to C字符逆序Time Limit: 1000MS Memory limit: 65536K题目描述将一个字符串str的内容颠倒过来,并输出。
c语言3大基本结构
c语言3大基本结构C语言是一种广泛应用的编程语言,其简洁高效的特点使其成为了许多程序员的首选语言。
在学习C语言时,了解它的基本结构是非常重要的。
C语言中有三个基本结构,分别是顺序结构、选择结构和循环结构。
下面将详细介绍这三种基本结构。
一、顺序结构顺序结构是指程序按照代码书写顺序依次执行的过程。
在C语言中,每一行代码都会按照书写顺序被执行。
例如:```#include <stdio.h>int main(){printf("Hello, World!\n");printf("This is my first C program.\n");return 0;}```以上代码就是一个典型的顺序结构程序。
程序从第一行开始执行,按照代码书写顺序依次执行每一行代码,直到程序结束。
二、选择结构选择结构是指根据条件判断来决定程序执行哪些代码段。
在C语言中,选择结构主要有if语句和switch语句两种形式。
1. if语句if语句可以根据条件判断来决定是否执行某段代码。
其基本形式如下:```if (condition){// 如果condition为真,则执行这里的代码}else{// 如果condition为假,则执行这里的代码}```例如:```#include <stdio.h>int main(){int a = 10;if (a > 0){printf("a是正数\n");}else{printf("a是负数或零\n");}return 0;}```以上代码中,if语句根据变量a的值判断是否为正数,如果是则输出"a是正数",否则输出"a是负数或零"。
2. switch语句switch语句也可以根据条件判断来决定执行哪些代码段。
其基本形式如下:```switch (expression){case value1:// 如果expression等于value1,则执行这里的代码break;case value2:// 如果expression等于value2,则执行这里的代码break;default:// 如果expression不等于任何一个case中的值,则执行这里的代码break;}```例如:```#include <stdio.h>int main(){int score = 85;switch (score / 10) {case 10:case 9:printf("优秀\n"); break;case 8:printf("良好\n"); break;case 7:printf("中等\n");break;case 6:printf("及格\n");break;default:printf("不及格\n");break;}return 0;}```以上代码中,switch语句根据变量score的值判断成绩等级,根据不同的分数段输出不同的信息。
C语言程序设计(第3版)-参考答案
C语言程序设计(第3版)-参考答案C语言程序设计(第3版) - 参考答案C语言是一种广泛应用于软件开发领域的编程语言,它具有高效、简洁、灵活等特点。
《C语言程序设计(第3版)》是一本经典的教材,本文将提供一些参考答案,帮助读者更好地理解和掌握C语言程序设计。
一、基础知识1. 什么是C语言?C语言是一种通用的编程语言,由贝尔实验室的Dennis Ritchie开发,在20世纪70年代广泛流行起来。
它被设计为一种低级语言,可以直接操作计算机硬件,并提供了足够的抽象层次来方便高级程序设计。
2. 如何输出“Hello, World!”?在C语言中,使用printf函数可以输出文本信息。
要输出“Hello, World!”,可以使用以下代码:```#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```3. 如何定义和使用变量?在C语言中,可以使用关键字`int`、`float`、`char`等定义变量。
例如:```int age = 20;float weight = 60.5;char grade = 'A';```定义后的变量可以用于存储不同类型的值,并在程序中进行操作和输出。
二、控制流程1. 什么是条件语句?条件语句允许程序通过判断条件来选择性地执行不同的代码块。
在C语言中,常用的条件语句是`if`语句。
例如:```if (score >= 60) {printf("Pass\n");} else {printf("Fail\n");}```根据变量`score`的值,判断学生是否及格并输出相应结果。
2. 什么是循环语句?循环语句可以重复执行一段代码块,以达到多次执行的目的。
在C 语言中,常用的循环语句有`for`、`while`和`do while`。
C语言第3章(谭浩强)
void main( ) { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d); } 运行结果:a+u=22,b+u=-14 结论:不同类型的整型数据可以进行算 术运算。
位数 16
取值范围 -215-(215-1) -32768—+32767 -32768—+32767
Short [int] Long [int]
短整型 长整型
16 32
16 16 32
Unsinged int 无符号整型 Unsinged short [int] Unsinged long [int] 无符号短整 型 无符号长整 型
8
④大写字母与小写字母意义不同, 被认为是两个不同的字符。一般变 量名用小写字母表示。 注意:常量名常用大写、变量名常 用小写!
year Day a_12 _abcdef #123 .com $100 1999Y a=b 1_2_3 +abcedfghi ∏ -5 等
9
3、变量要先定义后使用
可以改为double型) void main( ) {float x;double y; x=123456.789;y=123456.789; printf(“%f, %f”,x,y);} 结果为: 123456.789062, 123456.789000
29
§3.5
字符型数据
一、字符常量 1、在C语言中字符型常量是用单引号括 起来的一个字符。 如:’a‟、’A‟、’3‟、’?‟、’ ’、 ’$‟等。 2、以‚\”开头的转义字符,如\n不代表 字母n,而是代表换行。
C语言_第3章
简单程序的流程一般分为顺序结构、选择结构和循环结 构。其中顺序结构是最基本的控制结构,其包含的语句 是按照书写的顺序执行,且每条语句都将被执行。
程序流程如图3.1所示, #include<stdio.h> 语句按书写顺序执行。 main( ) 先执行A,再执行B。 {int a=10,x=5,y=6;
三、复合语句
用一对花括号,把若干条语句括起来,
就形成了一条复合语句。形式如下:
{[内部数据描述语句]
其中定义的变量是
语句1; …… 语句n;}
复合语句结束的 “}”之后,不需
局部变量,仅在复 合语句中有效。
要再加分号。
花括号中的语句,可以是简单语句、空语句、复合 语句、流程控制语句,所有这些语句括在一起,在 语法上看成是一条语句,执行时顺序执行花括号中 的每条语句。复合语句多用于流程控制语句中。
printf(“\n%d,%d”,a+i,i++);}
四、格式输入函数 格式输入函数一般形式 scanf(“格式控制字符串”,地址列表); 功能:按指定的格式从键盘上把数据输入到指定的 变量之中 。 在scanf语句的格式控制字符串中,有两类字符: 普通字符:必须按原样输入,不能省略; 格式说明部分:由%引导的格式字符串组成。
scanf语句格式说明部分的一般格式为: %[*][width][F|N][h|L]type type是必须的,表示输入后转换的数据类型。
d(D) o(O) x(X) i(I) u(U)
c s f,e,g F,E,G n
%
十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数
c语言程序设计教程第三版习题答案
c语言程序设计教程第三版习题答案C语言程序设计教程第三版习题答案第一章:C语言概述1. 简述C语言的特点。
C语言是一种结构化编程语言,具有高级语言的特点,同时支持底层硬件操作。
其特点包括:简洁、高效、可移植、丰富的运算符、数据结构支持、广泛的库函数等。
2. 什么是编译型语言?编译型语言是指源代码在执行前需要通过编译器转换成机器语言的程序设计语言。
C语言就是一种编译型语言。
第二章:数据类型、运算符和表达式1. 列出C语言的基本数据类型。
C语言的基本数据类型包括:整型(int)、字符型(char)、浮点型(float和double)。
2. 说明赋值运算符的用法。
赋值运算符(=)用于将右侧表达式的值赋给左侧的变量。
例如:`int a = 10;` 将整数值10赋给变量a。
第三章:控制结构1. 什么是条件语句?条件语句用于根据条件的真假来执行不同的代码块。
C语言中的条件语句主要有if语句和switch语句。
2. 循环语句有哪些?C语言中的循环语句主要有for循环、while循环和do-while循环。
第四章:数组和字符串1. 数组的声明和初始化方式。
数组声明的一般形式为:`type arrayName[arraySize];`。
初始化可以使用花括号一次性赋值,如:`int arr[5] = {1, 2, 3, 4, 5};`。
2. 字符串在C语言中的表示方法。
在C语言中,字符串以字符数组的形式存在,以空字符('\0')作为结束标志。
第五章:函数1. 函数的定义和调用。
函数定义的一般形式为:`returnTypefunctionName(parameterList) { /* function body */ }`。
调用函数时,使用其名称和必要的参数。
2. 函数的参数传递方式有哪些?C语言中函数的参数传递方式主要有值传递(pass by value)和引用传递(pass by reference)。
C语言_3_顺序、选择、循环结构
格式输出(续)
printf()要求
有些系统要求格式字符要用小写字母,如%d不 能写成%D 可以在printf函数中格式控制字符串中包含的转 义字符,如\n,\t,\b,\r,\f,\377 一个格式说明以%开头,以上述9格式字符之一 为结束,中间可以插入附加格式字符 如果想输入字符%,则应该在格式控制字符串 中用连续两个%%表示 不同的系统在实现格式输出时,输出的结果可 能会有一些小差别
格式字符——c格式符
格式输出(续)
格式字符——s格式符
%s:输出一个字符串 %ms:输出的字符串占m列,如果字符串本身长度大于 m,则突破m的限制,将字符串全部输出;若长度小于 m,则左补空格 %-ms:如果串长小于m,则在m列范围内,字符串向左 靠,右补空格 %m.ns:输出占m列,但只取字符串中左端n个字符, 这n个字符输出在m列的右侧,左补空格 %-m.ns:其中m、n含义同上,n个字符输出在m列范围 的左侧,右补空格;如果n>m,则m自动取n值,即保 证n个字符正常输出
说明
c
s
用来输入单个字符
用来输入字符串,将字符串送到一个字符数组中, 在输入时以非空白字符开始,以第一个空白字符结 束。字符串以串结束标志\0作为其最后一个字符。 用来输入实数,可以用小数形式或指数形式输入
f
e
与f作用相同,e和f可以互相替换
格式输入(续)
附加格式字符
字符
字母l
h
说明
用于输入长整型数据(可用%ld、%lo、%lx), 以及double型数据(用%lf或%le)
格式字符——g格式符
格式输出(续)
C语言第3章简单程序
这种如同乱麻一样的算法称为BS型算 法,意为一碗面条(A Bowl of Spaghetti),乱无头绪。
• 三种基本结构
Bohra和Jacopini提出了以下三种基本 结构: 顺序结构、选择结构、循环结构
用这三种基本结构作为表示一个良好算 法的基本单元。
三种基本结构的图示:
顺序结构
选择结构
循环结构的图示:
主要内容
3.1 算法概述 3.2 程序的三种基本结构 3.3 C语句综述 3.4 赋值表达式和赋值语句 3.5 数据输入输出的概念 3.6 字符数据的输入输出 3.7 简单的格式输入与输出 3.8 顺序结构程序设计举例
3.1 算法概述
一个程序应包括两个方面的内容: • 对数据的描述:数据结构(data structure) • 对操作的描述:算法(algorithm) 著名计算机科学家沃思提出一个公式: 数据结构 + 算法 = 程序
includestdiohincludestdiohvoidmainvoidmain定义字符变量定义字符变量abc从键盘输入一个字符送给字符变量从键盘输入一个字符送给字符变量a从键盘输入一个字符送给字符变量从键盘输入一个字符送给字符变量b从键盘输入一个字符送给字符变量从键盘输入一个字符送给字符变量c将变量将变量aa的值输出的值输出将变量将变量aa的值输出的值输出将变量将变量aa的值输出的值输出pu• 传统流程图的弊端 传统流程图用流程线指出各框的执行 顺序,对流程线的使用没有严格限制。因 此,使用者可以毫不受限制地使流程随意 地转向,使流程图变得毫无规律,阅读者 要花很大精力去追踪流程,使人难以理解 算法的逻辑。如图:
缺点:难以阅读、修改,使算法的 传统流程图的流程可以是: 可靠性和可维护性难以保证。 解决办法:必须限制箭头的滥用, 即不允许无规律地使流程随意转向, 只能顺序地进行下去。
C语言第3章(A-6(函数调用语句))
标准输入输出函数
printf scanf 例题: 注意: main() 必须为地址,“&”是地运算符, &a指a在内的地址。 { int a ,b ,c; scanf(“%d%d%d”, &a,&b,&c ); printf(“%d,%d,%d”,a,b,c); }
C语言程序设计
标准输入输出函数
C语言程序设计
标准输入输出函数
printf
用法:
1) %f :不指定输出的宽 度,由系统自动指定, 使整数部分全部输出, 并输出6位小数。
scanf
main() { float x,y; x=1111.2222; y=2222.4444; printf(“%f”,x+y); } 结果:3333.666608
实例:
printf(“ i= %d , c= %c ” , i , c);
格式控制:是用双引号括起来的字符串,也称为 “转换控制字符串”,它包括两部分信息: 1) 格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据转换为指定的格式输出。 2) 普通字符:需要原样输出的字符。如双引号中的 逗号、空格和换行符。
标准输入输出函数
printf scanf
2) %ms,输出的字符串占m列,如字符串本身长度大 于m,则按实际长度输出;如串长度小于m,则左补 空格。
printf(“%3s”,”china”);
输出结果:
printf(“%6s”,”china”);
china
china
C语言程序设计
标准输入输出函数
printf(“%ld”,e);
如果用%d输出,就会发生错误,因为整型数 据的范围为-32768-32767。
c语言中的三目运算符
c语言中的三目运算符三目运算符是C语言中的一种特殊运算符,也被称为条件运算符。
它的基本语法为:表达式1 ? 表达式2 : 表达式3。
当表达式1为真时,返回表达式2的值,否则返回表达式3的值。
在实际编程中,三目运算符常用于简化if-else语句的写法,使代码更加简洁、易读。
下面我们来看一些常见的应用场景。
1. 判断两个数的大小关系在比较两个数的大小关系时,我们通常会使用if-else语句来进行判断。
例如:```cif (a > b) {max = a;} else {max = b;}```使用三目运算符可以将上述代码简化为:```cmax = (a > b) ? a : b;```2. 判断变量的正负性在对变量进行处理时,有时需要判断变量的正负性。
例如,将一个整数取绝对值可以使用以下代码:```cif (x < 0) {x = -x;}```使用三目运算符可以将上述代码简化为:```cx = (x < 0) ? -x : x;```3. 判断变量是否为0有时需要判断一个变量是否为0。
例如,判断一个数组是否为空可以使用以下代码:```cif (len == 0) {printf("数组为空");}```使用三目运算符可以将上述代码简化为:```c(len == 0) ? printf("数组为空") : printf("数组不为空"); ```4. 判断变量的奇偶性判断一个整数是否为偶数可以使用以下代码:```cif (x % 2 == 0) {printf("偶数");} else {printf("奇数");}```使用三目运算符可以将上述代码简化为:```c(x % 2 == 0) ? printf("偶数") : printf("奇数");```5. 判断变量是否为NULL在使用指针时,需要判断指针是否为NULL。
C语言 第3章 最简单的C程序设计
3.2.3 整型数据
1. 整型数据的分类 2. 整型变量的符号属性
整型变量的值的范围包括负数到正数 可以将变量定义为“无符号”类型 扩充的整形类型:
3.2.3 整型数据
扩充的整型类型:
➢ 有符号基本整型 [signed] int; ➢ 无符号基本整型 unsigned int; ➢ 有符号短整型 [signed] short [int]; ➢ 无符号短整型 unsigned short [int]; ➢ 有符号长整型 [signed] long [int]; ➢ 无符号长整型 unsigned long [int] ➢ 有符号双长整型 [signed] long long [int]; ➢ 无符号双长整型 unsigned long long [int]
3.2.2 数据类型
C语言允许使用的数据类型:
➢基本类型 ➢枚举类型
算术类型
➢空类型 ➢派生类型
纯量类型
指针类型
数组类型
结构体类型
共用体类型
函数类型
3.2.3 整型数据
1. 整型数据的分类 ➢最基本的整型类型
基本整型(int型):占2个或4个字节 短整型(short int):VC++6.0中占2个字节 长整型(long int):VC++6.0中占4个字节 双长整型(long long int):C99新增的
area s(s a)(s b)(s c)
其中s=(a+b+c)/2
编译系统为float型变量分配4个字节 数值以规范化的二进制数指数形式存放
参见主教材图3.11
3.2.5 浮点型数据
浮点型数据是用来表示具有小数点的实数 ➢float型(单精度浮点型) ➢double型(双精度浮点型)
C语言第3章_数据的输入输出
如: scanf(“%c%c%c”,&c1,&c2,&c3); 若输入a• b• c 则ac1, • c2, b c3
17/22
例:有以下程序 #include<stdio.h> main() { int a1,a2; char c1,c2; float x,y,z; char a,b,c; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); } 若想通过键盘输入,使得al的值为12,a2的值为34 ,cl的值为字符a,c2的值为字符b,程序输出结果是 :12,a,34,b则正确的输入格式是(以下□代表空格, <CR>代表回车)( A )。 A)12a34b<CR> B)12□a□34□b<CR> C)12,a,34,b<CR> D)12□a34□b<CR>
4/22
d(int) o x(X)
以带符号的10进制形式输出整数 以8进制无符号形式输出整数 以16进制无符号形式输出整数
u(unsighed) 以无符号10进制形式输出整数
c(char) s f(float) e(E) 以字符形式输出一个字符 输出字符串
注意: long(%ld) double(%lf)
23/22
16/22
实数不许规定小数精度,像%10.4f不合法 输入格式中不能含有\n,如: scanf(“%d%d\n”,&a,&b); long型数据一定要用%ld格式输入,double型数 据一定要用%lf格式输入,否则运行结果错误。 用‚%c”格式符时,空格和转义字符作为有 效字符输入
C语言第3章数据类型、运算符、表达式
例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
c语言第3章
3.2.2 例题与分析
例题3.3 根据输入的加或减运算符,输出任意两个
分析本题的含义是根据用户从键盘输入的加运算符 或减运算符,在屏幕上输出相应的运算结果。首先 对题目进行分析和分解,然后再进行代码设计。问 题分析如图3.1
整型变量iop1, iop2 整型变量result 字符型变量operator
1 (x 0) y 0 (x 0)
1 (x 0)
为了避免此种情况,采用办法与情况1相似。改变 if...else的匹配关系,将情况2的代码修改如下,即 可正确表示符号函数。
if(x < 0) y = -1;
else if (x!=0) y = 1;
else y = 0;
例题3.6 求一元二次方程ax2+bx+ c = 0 分析由代数知识可知,方程的解有3种不同的情况,
/* 获得运算符 */
printf("please enter tow numbers:");/* 获得操作数 */
scanf("%d%d", &iop1, &iop2); if(operator == '+')/*由运算符决定不同运算*/
result = iop1 + iop2;
else
result = iop1 - iop2; printf("\n%d %c %d = %d\n", iop1, operator, iop2, result); /* 输出结果 */ }
方法1 main() {
int x, y; printf("please input a integer:"); scanf("%d", &x); if (x > 0) y = 1; else if (x == 0)
C语言-3-简单选择结构
3.2.1 关系运算
1、逻辑值与整数的关系
逻辑值: “真”、“假”,或 T 、F 表示方式: 0 为“假”,非0为“真” 系统真值: 1
2. 整数对应的逻辑值 在C语言中,整数也可以直 接作为逻辑值使用,非零整 100<200<10 数相当于逻辑值“真”,0相 分析:100<200<10相当于 当于逻辑值“假”。如下面 (100<200)<10,100<200的结果 是真,即1,因此上式成为1<10。 直接将整数10作为条件,相 结果整个表达式的值为“真”。 当于“真”,因此执行后x的 值为5。 if(10)x=5;
10 x 30 50
x 90
(2) x<60 || x>180 (或 !(x>=60 && x<=80)) (3) (x>=10 && x<=30) || (x>=50 && x<=90)
4、逻辑表达式示例
1)闰年表示:一个年份如能够被400整除则是闰年;或者 该年份能被4整除但不能被100整除,则该年份也是闰年。
(year%400==0)||((year%4==0)
&&(year%100!=0))
2)输入的字符不为‘Q’
(c=getchar( ))!=‘Q’
5、举例
例3.2 判断下列逻辑表达式是否成立: 1<3 && 5<8 (成立) 3<2 && 4>3 (不成立) 3<2 || 4>3 (成立) 6>5 || 1<2 (成立) !(4<=6) (不成立) 例3.3 写出下列判断的逻辑表达式 (1)m被3整除 (2)成绩grade在70到80之间(包含70,不包含80) (3)x 和 y 不同时为0 (4)a是奇数或者b是偶数
C语言第3章_分支结构
3.3练习与习题参考答案3.3.1练习参考答案3-1 例3-4中使用else-if 语句求解多分段函数,为了检查else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。
解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。
可再给出x=0和x=15时的两种情况。
3-2 计算符号函数的值:输入一个整数x ,计算并输出符号函数 sign(x) 的值。
试编写相应程序⎪ ⎩⎪ ⎨ ⎧ >=<−==010001)(x x x x sign y ,,,解答:#include<stdio.h>int main (void){int x, y;scanf ("%d", &x);if (x > 0) y = 1;else if (x == 0) y = 0;else y = -1;printf ("sign(%d) = %d\n", x, y);return 0;}3-3统计学生平均成绩与及格人数:输入一个正整数n,再输入n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
试编写相应程序。
解答:#include <stdio.h>int main (void){int count, grade, i, n;double average, sum;scanf ("%d", &n);count = 0;sum = 0;for (i = 1; i <= n; i++){scanf ("%d", &grade);sum = sum + grade;if (grade >= 60) {count++;}}if (n > 0) {average = sum / n;}else{average = 0;}printf ("average = %.1f\n", average);printf ("count = %d\n", count);return 0;}3-4统计字符:输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
C语言第3章_
o,x
f
e g c
计算机基础教学部
17
二、printf格式符说明
■ 另外,还有其他格式符如:
■m
■l ■ 将在需要的时候用实例讲解。
计算机基础教学部
18
二、printf一般格式
■
%[标志][输出最小宽度][.精度][长度]格式字符
#include <stdio.h> #include <stdio.h> main() main() { { 输出结果:10,3.4 int a=10; 10 3.4 int a=10; 输出结果:103.4 float b=3.4; float b=3.4; printf(“%d%f\n”,a,b);/*a是int类型,用%d格 printf(“%d ,%f\n”,a,b); 式, b是float类型,用 %f格式*/ } printf(“%d%6.2f\n”,a,b) }
}
计算机基础教学部
23
四、格式输入函数scanf
输入数据赋给变量:
#include <stdio.h> #include <stdio.h> #include <stdio.h> #include <stdio.h> main() main() main() #include <stdio.h> main() { { { main() { int a,b; float h,w; int a;{ float b; scanf(“%d%d”,&a,&b); printf(“请输入身高(米):”); scanf(“%d”,&a); double c; scanf(“%f”,&b); scanf(“%f”,&h); } scanf(“%lf”,&c); } } printf(“请输入体重(千克):”); } scanf(“%f”,&w); printf(“肥胖指数为:%.2f\n”,w/h/h);
c语言第三章题库及详解答案
c语言第三章题库及详解答案1. 以下哪个是C语言中的合法标识符?A. 3variableB. variable3C. _variableD. variable#答案:B, C2. C语言中,哪个关键字用于定义变量的存储类型?A. staticB. registerC. autoD. all of the above答案:D3. 以下哪个语句可以正确声明一个整型变量?A. int var;B. var int;C. int var=;D. int = var;答案:A4. 在C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. +D. -答案:A5. 以下哪个表达式的结果是非零的?A. 5 % 3B. 5 / 3C. 5 + 3D. 5 - 3答案:A6. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. all of the above答案:D7. C语言中,哪个关键字用于定义函数?A. functionB. defC. voidD. int答案:D8. 以下哪个是C语言中的条件语句?A. ifB. switchC. caseD. default答案:A9. 在C语言中,哪个关键字用于实现循环?A. whileB. doC. forD. all of the above答案:D10. 以下哪个是C语言中的数组声明?A. int array[10];B. int [10] array;C. both A and BD. neither A nor B答案:C11. C语言中,哪个函数用于输入?A. printf()B. scanf()C. getchar()D. gets()答案:B12. 以下哪个是C语言中的字符串常量?A. "Hello World"B. 'Hello World'C. hello worldD. Hello World答案:A13. 在C语言中,哪个函数用于输出?A. printf()B. scanf()C. puts()D. sprintf()答案:A14. 以下哪个是C语言中的递归函数调用?A. func();B. func(func());C. func(1);D. func(func);答案:B15. C语言中,哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A16. 以下哪个是C语言中的位运算符?A. &B. |C. ^D. all of the above答案:D17. 在C语言中,哪个关键字用于定义枚举类型?A. enumB. structC. unionD. typedef答案:A18. 以下哪个是C语言中的指针变量?A. int *ptr;B. int ptr;C. ptr int;D. int (*ptr)();答案:A19. C语言中,哪个函数用于计算数组的长度?A. sizeof()B. length()C. size()D. count()答案:A20. 在C语言中,哪个关键字用于定义联合体?A. unionB. structC. enumD. typedef问题及答案到此结束。
C语言第3章
3.3.3 if语句的嵌套
注意: 1.else子句不能作为语句单独使用,它必须与if配对使用。 2.为使程序结构清晰、层次分明,常常采用程序行缩进的书 写格式,if 和其对应的else写在一列上。但,书写格式不能 代替逻辑结构。 3.if 和 else 的配对关系。一个 else 总是与其上面距它最近 的,并且没有其它 else 与其配对的 if 相配对。
3.2 关系运算和逻辑运算
3.2.1 关系运算
运算符 含义 优先级 < 小于 <= 小于等于 6 > 大于 >= == != 大于等于 等于 不等于 7
3.2.2 逻辑运算
运算符 含义 优先级 ! 逻辑非 2 && 逻辑与 11 || 逻辑或 12
关系表达式
关系表达式是使用关系运算符将两个表达式(算术表达式,关系表达式, 逻辑表达式,赋值表达式等)连接起来的式子。 关系表达式的值:关系表达式成立,即为“真”,C语言中用1表示; 关系表达式不成立,即为“假”,C语言中用0表示。 对1.0/3.0*3.0==1.0,计算机判 为假改写为:fabs(1.0/3.0*3.0字符比较按ASCII码进比较 1.0)<1e-5; 对浮点数判断是否相等时,由于计算机存储的误差,会出现错误的结果。 应避免对两个实数表达式作“相等”或“不相等”的判别。 例:表达式5>2>7>8在数学上是不允许的。在C语言中是允许的,按自左而 右求解。5>2值为1;1>7值为0;0>8值为0。表达式的值为0。
例:a&&b&&c :a为真才判别b,a和b同时为真才判别c a||b||c:只要a为真,就不再判断b和c 例:(m=a>b)&&(n=c>d) 当a=1,b=2,c=3,d=4时,m=0,n维持原值
C语言第3章
三、数据输入 scanf函数是C scanf函数是C语言提供的标准输入函数。它的作 用是在终端设备上输入数据。 1、scanf函数的一般调用格式 scanf函数的一般调用格式 格式:scanf(格式控制,地址项表) 格式:scanf(格式控制,地址项表); 功能:接受用户的键盘输入,并将输入的内容保 存在指定的变量所表示的地址或数组元素中。 例:用scanf函数输入数据。 例:用scanf函数输入数据。
16
2、scanf函数中常用格式说明 scanf函数中常用格式说明 格式控制与printf类似(详见教材P28)。但是 格式控制与printf类似(详见教材P28)。但是 ①输入短整数时,在% ①输入短整数时,在%和d之间必须加h;输入 之间必须加h double型数时,在% f(e)之间也必须加l double型数时,在%和f(e)之间也必须加l。否则得不 到正确的数据。 ②对unsigned型变量所需的数据,可用%u,%d或 ②对unsigned型变量所需的数据,可用%u,%d或 %o,%x格式输入。 o,%x格式输入。 ③可以指定输入数据所占列宽。如: scanf(“%3d%3d” scanf(“%3d%3d”,&a,&b); 输入:123456↙ 输入:123456↙ 系统自动将123赋给变量a 456赋给变量b 系统自动将123赋给变量a,456赋给变量b。但此 法用于字符时要注意。如:
7
例4:short int a=-1; a=printf(“%d,%o”,a,a); 输出结果为: 1,37777777777 输出结果为:-1,37777777777
短整型变量a怎么按一般整型的格式(长度) 短整型变量a怎么按一般整型的格式(长度)输出呢? 这是我们输出时没有按短整型类型输出,而是按一般 整型输出了!改为
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二
C 选择结构程序设计
一、实验目的 1.掌握 C 语言中使用最多的一种语句——赋值语句的使用; 2.掌握数据的输入输出的方法,能正确使用各种格式转换符; 3.了解 C 语言表示逻辑量的方法(以 0 代表“假” ,以 1 代表“真”); 4.学会正确使用逻辑运算符和逻辑表达式; 5.熟练掌握 if 语句和 switch 语句。 注意:实验报告命名规则:学号姓名班级实验 2, 例如:20142356 张三试 1403 实验 2 二、实验内容 1.上机输入以下程序:
运行此程序并分析结果。 2. 编写一个程序,输入某人的身高(cm)和体重(kg) ,按下式确定其体重是 否为标准、过胖或过瘦。 (1)标准体重=身高-110; (2)超过标准体重 5kg(即大于 5kg)为过胖; (3)低于标准体重 5kg(即小于 5kg)为过瘦。 3. 有一个函数
x 1 1 x 10
{ int h,w,y; printf("请输入身高 h=\n 体重 w="); scanf("d%d%",&h,&w); y=h-110; if(y==w) printf("您体重为标准\n"); else if(y-w>5) printf("您体重为过瘦\n"); else if(w-y>5) printf("您体重为过胖\n"); return 0; }
用 scanf 函数输入 x 的值(分别为 x<1、1~10、≥10 三种情况),求 y 值。 4. 根据下表,编写一个 C 程序,接受销售人员的月销售额,计算其月收入。
三、实验程序清单及结果 1.
2.
3.
4.
四、实验总结(总结本次实验遇到的问题及解决方法)
做第 3 题时语句“scanf("d%d%",&h,&w);”中格式控制符号打错,应为%d; 在上机时一直没发现,后来再仔细检查就明白了。以后我要多加注意这一点。2 是犯错的那 道程序: #include<stdio.h> int main()