浙大版C语言电子教案.讲义

计算机程序设计基础

(C语言)

北京石油化工学院

信息技术教学与实验中心

2008年8月20日

C语言程序设计

?教学要求

?掌握程序设计语言的基本知识?常用算法

?初步的程序设计能力

?学习方法

?自主学习

?重视上机实践

如何尽快学会用C语言进行程序设计

?了解程序设计语言(C语言)

?模仿、改写、编写

?通过不断的编程实践,逐步领会和掌握程序设计的基本思想和方法。

教材和参考书

?C语言程序设计,何钦铭、颜晖主编,高等教育出

版社,2008

?C语言编程(第3版),[美]Stephen, G.Kochan,

张小潘译,电子工业出版社,2006

?C语言教程(第4版),[美]Al Kelley, Ira Pohl,

徐波译,机械工业出版社,2007

?标准C语言基础教程(第4版),[美]Gary J.

Bronson,单先余等译,电子工业出版社,2006 ?C程序设计语言,[美]Brian W. Kernighan,

Dennis M. Ritchie,徐宝文等译,机械工业出版

社,2006

目录

?Chap 1 引言

?Chap 2 用C语言编写程序?Chap 3 分支结构

?Chap4 循环结构

?Chap 5 函数

?Chap 6 数据类型和表达式

目录

?Chap 7 数组

?Chap 8 指针

?Chap 9 结构

?Chap 10 函数与程序结构?Chap 11 指针进阶

?Chap 12 文件

Chap 1 引言

?一个C语言程序

?程序与程序设计语言

?C语言的发展历史与特点?实现问题求解的过程

本章要点

?什么是程序?程序设计语言包含哪些功能?

?程序设计语言在语法上包含哪些内容?

?结构化程序设计有哪些基本的控制结构?

?C语言有哪些特点?

?C语言程序的基本框架如何?

?形成一个可运行的C语言程序需要经过哪些步骤?

?如何用流程图描述简单的算法?

1.1 一个C 语言程序

例1-1求阶乘问题。输入一个正整数n ,输出n!。 #include /* 编译预处理命令 */ int main (void) /* 主函数 */ {

int n; /*

变量定义 */ int factorial (int n); /*

函数声明 */ scanf ("%d", &n); /*

输入一个整数 */ printf (“%d \n”, factorial(n)); /*

调用函数计算阶乘 */ return 0;

}

int factorial (int n) /*

定义计算 n! 的函数 */ {

int i, fact = 1;

for(i = 1; i <= n; i++) /*

循环 */ fact = fact * i;

return fact;

} 输入 4 输出 24 C 程序由函数组成 有且只有一个主函数main

1.2 程序与程序设计语言

?程序

?人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。

?程序的执行过程实际上是对程序所表达的数据进行处理的过程。

?程序设计语言

?提供了一种表达数据与处理数据的功能

?要求程序员按照语言的规范编程

1.2 程序与程序设计语言

?程序与指令

?程序设计语言的功能

?程序设计语言的语法

?程序的编译与编程环境

程序与指令

?指令:计算机的一个最基本的功能

如实现一次加法运算或实现一次大小的判别

?计算机的指令系统:计算机所能实现的指令的集合

?程序:一系列计算机指令的有序组合

程序与指令

例1-2 编写程序,分别求和与乘积

?虚拟的计算机指令系统(7条指令)

?指令1:Input X 将当前输入数据存储到内存的X单元?指令2:Output X 将内存X单元的数据输出。

?指令3:Add X Y Z 将内存X单元的数据与Y单元的数据相加并将结果存储到Z单元。

?指令4:Sub X Y Z 将内存X单元的数据与Y单元的数据相减并将结果存储到Z单元。

?指令5:BranchEq X Y P 比较X与Y,若相等则程序跳转到P处执行,否则继续执行下一条指令。

?指令6:Jump P 程序跳转到P处执行。

?指令7:Set X Y 将内存Y单元的值设为X。

程序与指令

输入输入3个数A, B和C,求A+B+C的结果

Input A; 输入第1个数据到存储单元A中

Input B; 输入第2个数据到存储单元B中

Input C; 输入第3个数据到存储单元C中

Add A B D; 将A、B相加并将结果存在D中

Add C D D; 将C、D相加并将结果存在D中

Output D; 输出D的内容

程序与指令 输入2个数A和B,求A*B的结果

1.Input A; 输入第1个数据到存储单元A中

2.Input B; 输入第2个数据到存储单元B中

3.Set 0 X; 将X设为0,此处X用以统计A累加的次数

4.Set 0 Z; 将Z设为0,此处Z用以存放A*B的结果

5.BranchEq X B 9; 判别X与B是否相等;若相等说明A

已累加了B次,程序跳转到第9条指令,输出结果

6.Add Z A Z; Z = Z + A

7.Add 1 X X; X = X + 1

8.Jump 5; 程序跳转到第5条指令,继续循环执行第6条、7条指令

9.Output Z;输出Z的值,该值等于A*B

程序设计语言的功能

?数据表达:表达所要处理的数据?流程控制:表达数据处理的流程

数据表达

?数据表达:一般将数据抽象为若干类型

?数据类型:对某些具有共同特点的数据集合的总称

?代表的数据(数据类型的定义域)

?在这些数据上做些什么(即操作或称运算)例如:整数类型

?包含的数据:{…,-2,-1,0,1,2,…}

?作用在整数上的运算:+ 、 - 、 * 、 /等

数据表达

?C语言提供的数据类型

?基本数据类型:程序设计语言事先定义好,供程序员直接使用,如整型、实型(浮点型)、字符型等。

?构造类型:由程序员构造,如数组、结构、文件、指针等。

?各种数据类型的常量与变量形式

?常量(常数)与变量

流程控制

?结构化程序设计方法

?将复杂程序划分为若干个相互独立的模块

?模块:一条语句(Statement)、一段程序或一个函数(子程序)等

?单入口、单出口

流程控制

任何程序都可以将模块通过3种基本的控制结构进行组合来实现

顺序结构

循环结构

分支结构

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

浙江大学刘加海C语言课件1

第1章C程序设计基础 ◆本章重点 1.C语言程序的结构。 2.变量与常量的表示方法。 3.运算符与表达式。 4.指针的概念及变量地址与指针的关系。 5.指针与数组的初步基本概念。 ◆本章难点 1.C语言中常量的表示方法。 2.整型数在计算机中存储的形式。 3.不同类型数据的转换。 4.转义字符。 5.各种运算符与表达式的正确理解。 6.指针的运算与数组的赋值。 1.1 C程序的结构 1.1.1 程序的概念 程序是指人们将需要计算机做的工作写成一定形式的指令,并把它们存储在计算机的内部存储器中。当人们给出命令之后,它就按指令操作顺序自动进行,把这种可以连续执行的一条条指令的集合称为“程序”。目前,正在使用的计算机程序设计语言有上百种,有些语言是面向机器的,如二进制语言,而多数是面向问题的语言。面向问题的语言都被称为计算机的“高级语言”,如C语言等。当然把C++等称为面向对象的语言。这些语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式,人们学习和操作起来感到十分方便。目前的程序设计一般可分为非结构化程序设计、结构化程序设计和面向对象的程序设计,C语言是结构化程序设计语言。 程序设计的过程一般包括: (1)问题的提出、要求及所采用的数据结构。 (2)算法的确定、程序的编制。 (3)程序的调试及修改。

(4)整理并写出文档资料。 结构化程序设计由三种结构组成:顺序结构、选择结构、循环结构。 (1)顺序结构:顺序结构的程序是一条语句接一条语句顺序地往下执行的。例如在图1.1中,先执行语句1,然后执行语句2,最后执行语句3,顺序结构 的程序是最简单的程序。 图1.1 顺序结构的程序段 (2)分支结构:若在程序执行过程中,程序的流程可由多路分支组成,根据不同的条件去执行不同的任务。例如在图1.2中程序执行到条件表达式时,首 先判断条件是否为“真“,如为真执行语句1,否则执行语句2。 图1.2 分支结构的程序段 (3)循环结构:如在程序中需要根据某项条件重复地执行某项任务若干次或直到满足或不满足某条件为止,这就构成循环结构。例如在图1.3中程序执行 到循环条件表达式时,首先判断循环条件是否为“真“,如循环条件为“真 “,执行循环语句,循环语句执行完成后,又转去判断循环条件,如循环条 件仍为真,再次执行循环语句,如此反复,直到循环条件为假,退出此循环。

浙江大学C语言期末考试试卷-2001Bd

浙江大学“程序设计基础-C”参考答案 2001-2002学年春季学期(2002年6月30日) 一、单项选择题(每题2分,共20分) 1C2A3A4B5AC 6C7D8D9B10B 二、填空题(每题2分,共30分) 1ch-'a'+'A'或toupper(ch) 2 1 30 4 5678或12345678 5a[k]<0 || k>10 (错1项扣1分) 6 100 7k=5, s=15 (错1项扣1分) 8 5, 9 (错1个数字扣1分) 9-2 10 -10 112, 1 (错1个数字扣1分) 12 un, g (un1分, g1分) 131, 3 (错1个数字扣1分) 14 1,0,0,1 (错1个数字扣1分) 15typedef int (*FP)(); (错1项扣1分) 三、程序阅读题(每题5分,共15分) 12#18# 七进制转换十进制错1项扣2分 31#3# 21#1173# 错1项扣2分 370#63#92#55#0# 错1项扣1分 四、程序填空题(每空2分,共20分) (1)float f(float x)(2)return x*x+2*x+1 (3)if(x==0) return 0(4)j=0 (5)a[j]

五、编程题 (共15分) 1、int ff(char *str, char ch) /* 说明1 分 */ { int count=0; while(*str){ /* 循环3分条件、查找、str递增各1 分 */ if(*str==ch) count++; str++; } return count; /* 返回 1 分 */ } 2、#include /*头文件、变量说明、打开关闭文件、输入ch 共 2 分 */ #include void main() { char ch,c,s[80]; int k; FILE *fp; if((fp=fopen("input.txt","r"))==NULL) { printf("error\n"); exit(0); } ch=getchar(); k=0; while(1){ /*循环+beaak 1 分*/ c=fgetc(fp); /* 读入 1 分*/ if(c=='\n'||c==EOF){ /* 共 6 分 */ s[k]='\0'; k=0; printf("%d\n",ff(s,ch)); if(c==EOF) break; } else s[k++]=c; } fclose(fp); } 或 k=0; while(!feof(fp)){ /* 循环判断 1 分 */ c=fgetc(fp); /* 读入 1 分 */ if(c!='\n') /* 共5分 */ s[k++]=c; else{ s[k]='\0'; k=0; printf("%d\n",f(s,ch)); } } if(c!='\n'){ /* 处理最后1行 1 分*/ s[k]='\0'; printf("%d\n", ff(s,ch)); }

c语言电子教案(课件)

c语言电子教案《程序设计基础》教案

第一章程序设计和C语言课题C语言概述教案 号 1 教学目的1、了解C语言出现的历史背景 2、掌握C语言程序的结构、书写格式和上机步骤 教材分析教学重 点 C语言程序的结构 教学难 点 上机步骤 课时安 排2教学方 法 讲授与演示法 相结合 教具计算机、投 影仪

教学内容及过程设计一新课引入 从计算机应用基础中学过的计算机语言及语言处理系统引出C语言。 二讲授新课 一、 C语言出现的背景 二、 C语言的特点 1。语言简洁、紧凑,使用方便、灵活; 2。运算符丰富 3. 数据类型多(整型、实型、字 符型、数组类型、指针类型、结构体类型、 共用体类等) 4. 具有结构化的控制语句 5. 语法不太严格,自由度大 6.既是高级语言,又具有低级语言的功能 7.成目标代码质量高,程序执行效率 8.可移植性好 三、C语言程序构成(采用程序实例加以说明,并提倡良好的程序设计书写风格) 1. C语言是由函数构成的,至少有一个main()函数; 2. 每个函数由函数首部和函数 体组成;函数体由说明语句、执行语句组 成; 3. 每个C程序从main()函数开始执行,并在main()中结束; 4. 每个语句和数据定义的最后必须加分号; 5. C程序无输入、输出语句:输入功能由scanf()函数完成;输出功能由 printf()函数完成; 6.可加注释/*……*/ 四、上机步骤(上机环境:Turbo C 2。0) 1.进入环境 2。编辑源程序3。保存源程序4. 编译源程序 5.执行程序,查看结果6.退出C环境

备注安排上机实验,熟悉TC环境及简单的 C语言程序构成 页码1 第二章算法-—程序的灵魂 课题算法教案号2 教学目的1、了解算法的概念 2、掌握结构化程序的三种基本结构,及算法的表 示方法 教材分析教学重 点 算法的表示方法 教学难 点 结构化程序的三种基本结构 课时安 排2教学方 法 讲授与演示法 相结合 教具计算机、投 影仪

浙江大学C语言总复习题—基本数据类型和运算

第2章基本数据类型和运算 学习和解题要点 1.数据类型 C 语言中的数据类型比别的语言丰富。要学好这部分内容,首先要掌握C 语言的数据在内存中的表示。 整型数据:以二进制的形式表示 (1) int 类型 正数:如 123 (+123)用 16 位二进制(二个字节)表示 原码 最大正整数 215-1=214+213 +23+22+21+20=32767 负数:如–123 原码 反码(符号位不动,其它取反) 补码(补码加 已知补码求原负数符号位不动,其它取反加 1 加 最大负整数 -215=32768 因为 -215 < -(215-1) 所以用 -215而不用 -(215-1) (2) unsigned (int) 类型 称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16 位二进制都用来表示数,因此 最大数 215+214 +213+2 3+22+21+20=65535 最小数 0 (3) long (int) 类型 用 32 位二进制(四个字节)表示,其他同 int 型 (4) short 类型 有的计算机(小型、中型、大型机)int 即是 long ,而short用16 位二进制(二个字节)表示。因此C语言中,short一定是短整型,long一定是长整型,而int因不同的系统而不同。PC 586 机int即short,所以一般不用short 。 (5) 在C语言中,整型常量有三种形式的写法: 十进制整数(0 - 9)表示。通常整数的写法。 八进制整数(0 - 7)表示。在整数的前面加数字0。 十六进制整数(0 - f)表示。在整数的前面加0x。 长整型常量表示方法:在整数的后面加L或 l。

浙江大学C程题库(更新)

c语言程序设计题目及答案 20021程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 int main(void) { int repeat, ri; double x, y; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x);

/*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void) { int celsius, fahr; /*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9;

浙江大学c程2005A试卷E(竺院)

浙江大学2005-2006学年冬季学期 《C Programming》课程期末考试试卷 开课学院:计算机学院, 考试形式:闭卷 考试时间:2006年1月11日, 所需时间:120 分钟,任课教师 考生姓名:学号:专业: (注意:答题内容必须写在答题卷上,写在本试题卷上无效) Section 1: Single Choice(2 mark for each item, total 20 marks) 1. If x is a float variable, the value of expression (x = 7/2, x+1) is _____. A.3 B.3.5 C.4 D.4.5 2.The value of expression sizeof (“\\total=%lf\\\n”) is______. A.13 B.14 C.15 D.16 3. The statement ______ is correct if a is an integer variable and b is a double Precision float variable. A.scanf(“%d,%f”, &a, &b);B.scanf(“a=%d b=%*f”, &a, &b); C.scanf(“%d%*lf”, &a, &b);D.scanf(“%d%*lf”, &a ); 4.The value of expression strcmp (“internet”, “intranet”) is______. A.positive B.negative C.zero D.uncertain 5. The expression! (x>0&&y<0) is equivalent to _____. A.x<=0||y>=0 B.!x>0&&!y<0 C.!x>0||!y<0 D.!(x>0)&&!(y<0) 6. If variables are defined, the value of expression_____ is not 1. A.2^3 B.1<<1/2 C.(a=1,b=2,a>b) D.!’\0’ 7. If variables are defined and assigned correctly, the expression_____ is wrong. A.float(256) B.a>b>5 C.a,2,b D.5&&6 8. The following code fragment prints out _____. int i=5; while (i-->1){ if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); A.*#*#*#$ B.#*#*#*$ C.#*#*$ D.*#*#$ 9. With regard to the following definition: struct { int len; 《C Programming》TEST PAPER, Jan 11, 2006 1 / 8

浙江大学C语言程序设计理论考试模拟精彩试题问题详解

浙江大学C语言理论考试模拟试题答案 一、判断题 共10题,每题1分,共10分。正确的请选择A,错误的请选择B。 1、在C语言中,函数不可以嵌套定义,但函数可以嵌套调用。A A、正确 B、错误 解答:A 2、在程序中 else 子句可以单独使用。 B A、正确 B、错误 解答:B 3、 C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( ) A A、正确 B、错误 解答:A 4、 _ya是不合法的C语言标识符。B A、正确 B、错误 解答:B 5、在数组初始化时,如果初值个数多于数组长度,将出现错误。 A A、正确 B、错误 解答:A 6、 C语言规定,函数返回值的类型是由return语句中的表达式类型所决定。 B A、正确 B、错误 解答:B 7、若有定义 int *p, 则表达式 p++ 的值就是 p 所指向的变量的地址值加1。 B A、正确 B、错误 解答:B 8、 '\n'不是一个字符常量。B A、正确 B、错误 解答:B 9、表达式 (z=0, (x=2)||(z=1),z) 的值是1。B A、正确 B、错误 解答:B 10、若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清空。 A、正确 B、错误

二、单选题 请从给定的选项中选择一个唯一正确的选项。每小题2分,共10题,20分。 1、C下面有关变量的命名,不合法的是:( ) A. _int B. __intint C. __int&int D. ___intintint C 解答:C 2、有变量定义int a;float c;下面输入语句有语法错误的是( )。 A. scanf("%d,%f", &a, &c); B. scanf("x=%d, c=%f", &a, &c); C. scanf("%d%f", &a, &c); D. scanf("%f %d",&a, &c); D 解答:D 3、下面关于函数参数使用的说法,不正确的是:() A. 函数调用时实参按顺序传递到形参; B. 函数调用时实参把值传递给形参; C. 函数的实参和形参个数可以不一致,但使用时应尽量一致; D. 函数的实参和形参可以同名; C 解答:C 4、已知 int k=1; for(k=1;1;k++) if(k) break; for语句的循环次数是( )。 A. 0 B. 1 C. 2 D. 无限次 B 解答:B 5、下面定义的max函数返回值的数据类型是() max(float a,float b) { return(a>b?a :b) ; } A. int B. float

浙大c语言程序习题答案

【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000)

大学C语言考试题库(答案)

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、11 和 11 C、10 和 11 D、10 和 10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值

答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 题号:45 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++;

case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0; while(i<10) { if(i<1) continue;

浙江大学C程序设计 答案二

浙江大学C程序设计答案二

20021程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 int main(void) { int repeat, ri; double x, y; scanf("%d", &repeat);

for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x); /*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号内为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void) { int celsius, fahr;

/*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9; printf("celsius = %d\n", celsius); } 20023程序填空,不要改变与输入输出有关的语句。 输入存款金额money、存期year 和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。 interest = money(1+rate)^year - money 输入输出示例:括号内为说明 输入 1000 3 0.025 (money = 1000, year = 3, rate = 0.025) 输出 interest = 76.89 #include #include int main(void) {

c语言电子教案

程序设计基础》教案

第一章程序设计和 C 语言

1、了解算法的概念 2、掌握结构化程序的三种基本结构,及算法的表示方法 一 复习引导 从C 程序的构成到C 程序的设计过程 二 讲授新课 一个程序包括以下两方面内容: 1. 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结 构; 2. 对操作的描述。即算法,为解决一个问题而采取的方法和步骤。 著名计算机科学家 Wirth 提出一个公式:数据结构+算法=程序 一、简单的算法举例 例 1 :设有两个杯子 A 和 B ,分别盛放酒和醋,要求将它们互换。 S1:C ← A S2:A ← B S3:B ← C 例 2 :求 1~100 的和 S1:sum ←0,t ←1; S2:sum ←sum+t S3:t ←t+1 S4:若t <= 100,则转到 S2,否则转到 S5; S5:输出 sum ,结束。 二、算法的特征 1、有穷性; 2、确定性; 4、 有一个或多个输出; 三、算法的表示 1、 用自然语言表示算法–通俗易懂,但有“歧义”。 2、 用传统流程图表示算法–直观、易懂。 程序的三种基本结构:顺序结构、选择结构、循环结构 页码 课 题 教 学 目 的 教 材 分 析 课时安排 过 程 设 计 备注 算法 教案号 2 教学重点 算法的表示方法 教学难点 结构化程序的三种基本结构 2 教学方法 讲授与演示法相结合 教具 计算机、投影仪 3、 有零个或多个输入; 5、 有效性;

算法 教案号 2 教 学 1、了解算法的概念 2、掌握结构化程序的三种基本结构,及算法的表示方法 3、N-S 流程图表示算法 教 学 内 容 及 过 程 设 计 当P 成立 4、 用伪代码表示算法 5、 用计算机语言表示算法(即实现算法) 四、结构化程序设计方法结构化程序设计方法强调: 程序设计风格和程序结构的规范化,提倡清晰的结构: ①自顶向下 ②逐步细化 ③模块化设计 ④结构化编码 三、课堂小结 1、 程序的三种基本结构:顺序、选择、循环 2、 5 种描述算法的方法,关键是 N-S 图 3、 灵活运用三种基本结构,学会结构化的程序设计方法 四、布置作业 用 N-S 图表示求解以下问题的算法: 1、求 10! 2、将100~200 之间的素数打印出来 3、求两个数 m ,n 的最大公约数 备注 安排上机实验 页码

浙江大学刘加海C语言课件6

第6章结构体与共用体 ◆本章重点 1. 结构体类型的定义及结构体变量的定义。 2. 结构体变量占用的内存空间。 3. 结构体变量对结构体成员的引用方法。 4. 结构体指针变量对结构体变量、结构体数组的应用。 5. 结构体变量作为函数的参数。 6. 链表:堆栈与队列。 7. 共用体的应用。 ◆本章难点 1. 正确理解结构体类型与结构体变量的关系。 2. 结构体数组变量对结构体成员的引用,指向结构体变量的指针对结构体成员的不同引用方法。 3. 结构体变量的输入输出。 4. 结构体变量作为函数的参数。 5. 结构体的嵌套,堆栈与队列的应用。 结构体(struct)和共用体(union)是C语言中程序员自定义的数据类型,它是一种常用的数据类型。结构体能把若干不同类型的变量组织到统一的名字之下,也称聚合数据类型,而通过共用体允许把同一片内存定义成多种不同类型的变量。 6.1 结构体的基本概念 以前各章所讨论的数据是单一的数据类型,而在实际应用中所涉及到变量的属性是各种基本数据类型的组合,因而在C语言程序设计中引入了结构体类型的概念。结构体类型是C语言的一种构造数据类型,它用于描述具有多个数据成员且每个数据成员具有不同数据类型的数据对象。例如描写一个学生的基本情况,涉及到学号、姓名、性别、两门课的成绩,分别用int num;char name[8];char sex;float score[2]表示,要描写这样一个由不同数据类型构成的对象,需要定义一个结构体类型。 1.结构体类型定义 结构体类型的定义格式为:

struct 结构体类型名 { 类型数据类型成员名1; 类型数据类型成员名2; 类型数据类型成员名3; ……………… 类型数据类型成员名n; }; 例如要描写上述学生的基本情况,需定义的结构体类型为: struct student { int num ; char name[8]; char sex; float score[2]; }; 2.结构体变量的定义 定义了结构体类型以后,可以进行结构体变量的定义,其形式为: struct 结构体类型名结构体变量表; 结构体的变量也可以是数组或指针。 定义结构体变量时,C语言会为每个变量分配存储空间。结构体变量的定义的方法可以与结构体类型同时定义或分开定义,分开定义是指先定义结构体类型,再定义结构体变量。 定义结构体时,我们实际上声明了一种复杂的数据类型,并未生成任何变量。声明该变量之前,不存在任何此种类型的变量。为了声明student类型的变量stu,可写成如下形式:struct student stu; 这样就定义了struct student类型的结构体变量stu。student描述结构体类型,称为结构体类型。stu是结构体类型的实例或对象,称为结构体类型变量或结构体变量。 定义了结构体变量(stu)之后,C编译程序自动为结构体变量的所有成员分配足够的内存,如图6.1所示。 低地址高地址

浙江大学C语言上机考试题库

上机考试练习题 20021程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 int main(void) { int repeat, ri; double x, y; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%lf", &x); /*---------*/ if(x!=0) y=1/x; else y=0; printf("f(%.2f) = %.1f\n", x, y); } } 20022程序填空,不要改变与输入输出有关的语句。 输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号内为说明 输入 150 (fahr=150) 输出 celsius = 65 #include int main(void)

int celsius, fahr; /*---------*/ scanf(“%d”,&fahr); celsius=5.0*(fahr-32)/9; printf("celsius = %d\n", celsius); } 20023程序填空,不要改变与输入输出有关的语句。 输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。 interest = money(1+rate)^year - money 输入输出示例:括号内为说明 输入 1000 3 0.025 (money = 1000, year = 3, rate = 0.025) 输出 interest = 76.89 #include #include int main(void) { int money, year; double interest, rate; /*---------*/ scanf(“%d%d%lf”,&money,&year,&rate); interest=money*pow((1+rate),year)-money; printf("interest = %.2f\n", interest); } 20024程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0= 0时,f(x) = x^0.5,当x小于0时,f(x) = (x+1)^2 + 2x + 1/x。 输入输出示例:括号内是说明 输入 3 (repeat=3) 10 -0.5

数据结构C语言版-浙江大学软件学院

2009年推荐选拔攻读软件工程硕士综合测试笔试部分科目组成和参考书目:

计算机应用基础考试大纲: 主要考查计算机应用基础知识,参考参考用书课后练习内容。(其它同类型的计算机应用基础教材均可作为复习用书) 高等数学考试大纲: (一)函数 (二)极限 (1)数列极限的概念 (2)数列极限的性质 (3)函数极限的概念 (4)函数极限的定理 (5)无穷小量和无穷大量 (6)两个重要极限 sinx 1 lim =1 lim(1+ )x = e x→0 x x→∞ x (三)连续 (1)函数连续的概念 函数在一点连续的定义左连续和右连续函数在一点连续的充分必要条件函数的间断点及其分类(2)函数在一点处连续的性质 连续函数的四则运算复合函数的连续性反函数的连续性 (3)闭区间上连续函数的性质 有界性定理最大值和最小值定理介值定理(包括零点定理)

(4)初等函数的连续性 (四)导数与微分 (1)导数概念 导数的定义左导数与右导数导数的几何意义可导与连续的关系 (2)求导法则与导数的基本公式 导数的四则运算反函数的导数导数的基本公式 (3)求导方法 复合函数的求导法隐函数的求导法对数求导法由参数方程确定的函数的求导法求分段函数的导数(4)高阶导数的概念:高阶导数的定义高阶导数的计算 (5)微分:微分的定义微分与导数的关系微分法则一阶微分形式不变性 (5)理解高阶导数的概念,会求简单函数的n阶导数。 (6)理解函数的微分概念,掌握微分法则,了解可微与可导的关系,会求函数的一阶微分。 (五)不定积分 1. 知识范围 (1)不定积分的概念(2)基本积分公式 (3)换元积分法(4)分部积分法 (5)一些简单有理函数的积分 (六)定积分 (1)定积分的概念:定积分的定义及其几何意义 (2)定积分的性质 (3)定积分的计算 (4)无穷区间的广义积分

大学C语言复习题附答案

判断题 1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。×控制器 2.通常硬盘安装在主机箱内,因此它属于主存储器。×内存 3.指令与数据在计算机内是以ASCII码进行存储的。×二进制 4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集 合。√ 5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过 编译才能执行。√ 6.计算机的所有计算都是在内存中进行的。×运算器 7.字长是指计算机能直接处理的二进制信息的位数。√ 8.计算机区别于其他计算工具的本质特点是能存储数据和程序。√ 9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。×买的也可以 10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、 大写英文字母。×大写小写 11.多台计算机相连,就形成了一个网络系统。×什么叫网络系统哦? 12.在Internet网上,IP地址、E-mail地址都是唯一的。√ 13.不同类型的变量在内存中占用存储空间的大小都是一样的。×错了 14.表示数学式3

2019年大学C语言期末考试卷(带详解答案)

2019年大学C语言期末考试卷 一、单项选择题 1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C 开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。

大学C语言程序设计(编程题)

C语言程序设计习题(编程题 C语言程序设计习题(编程题 习题1(编程题)[知识点:基础知识编制程序,要求输入整数a和b,若 a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。习题1-参考答案 main() printf("Input a & b:"); if (a*a+b*b>100) printf("%d\n",(a*a+b*b)/100); else printf("%d\n",a+b); } 习题2(编程题)[知识点:基础知识试编 程判断输入的正整数是否既是5又是7的整数倍,若是输出yes,否则输出no。习题2-参考答案 main() printf("Input a:"); if (a%5==0&&a%7==0) printf("yes\n"); else printf("no\n"); } 习题 3(编程题)[知识点:选择结构输入一个整数,判断它能否被3,5,7整 除,并输出以下信息之一: (1)能同时被3,5,7整除 (2)能被其中两 数整除(要指出哪两个)。 (3)能被其中一个数整除(要指出哪一个)。 (4)不能被任何一个整除。习题3-参考答案 main() printf("Input a number:"); if(m%3==0&&m%5==0&&m%7==0) printf("能同时被3,5,7整除 else if((m%3==0&&m%5==0)||(m%3==0&&m%7==0)||(m%5==0&&m%7==0)) {printf("能被其中两数整除 if(m%3==0&&m%5==0) printf("(3,5)"); else if(m%3==0&&m%7==0) printf("(3,7)"); else printf("(5,7)"); else if(m%3==0||m%5==0||m%7==0) {printf("能被其中一个数整除 C语言程序设计习题(编程题if(m%3==0) printf("(3)"); else if(m%5==0) printf("(5)"); else printf("不能被任何一个整除"); } 习题4(编程题)[知识点:选择结构将以下程序段改用非嵌套的if语句实现。 int s,t,m; t=(int)(s/10); {case 10:m=5;break; case 9:m=4;break; case 8:m=3;break; case 7:m=2;break; case 6:m=1;break; default: m=0; 习题4-参考答案 if(s>=100&&s<110) m=5; if(s>=90&&s<100) m=4; if(s>=80&&s<90) m=3; if(s>=70&&s<80) m=2; if(s>=60&&s<70) m=1; 习题5(编程题)[知识点:选择结构用switch编程实现: -1 (x<0) 习题5-参考答案 void main() {float x; printf("Input a x:"); scanf("%f",&x); switch(x<0) {case 1:y=-1;break; case 0:switch(x==0) {case 1:y=0;break; case 0:y=1; } printf("y=%d\n",y); } C语言程序 设计习题(编程题习题6(编程题)[知识点:选择结构将以下程序段改用嵌套的if语句实现。 int s,t,m; t=(int)(s/10); {case:m=5;break; case 9:m=4;break; case 8:m=3;break; case 7:m=2;break; case 6:m=1;break; default: m=0; 习题6-参考答案 if(s>=110&&s<60) m=0 else if(s<110) m=5; else if(s<100) m=4; else if(s<90) m=3; else if(s<80) m=2; else m=1; 习题7(编程题)[知识 点:选择结构编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,- ,*,/(用switch语句实现)。习题7-参考答案 #include

相关文档
最新文档