文档库 最新最全的文档下载
当前位置:文档库 › 三章 简单程序设计

三章 简单程序设计

三章 简单程序设计
三章 简单程序设计

第三章简单程序设计

3.1 流程结构和语句

1 . 三种流程结构

顺序结构,选择结构,循环结构——程序在逻辑上执行的流程。

●顺序结构:按语句在源程序中出现的次序依次执行;

●选择结构:根据一定的条件有选择地执行或不执行某些语句。

●循环结构:在一定条件下重复执行相同的语句。

所有的流程控制都是由语句实现的,且任何一个表达式都可作为一个语句使用,称之为表达式语句

2. 表达式语句

任何表达式通过在其末尾加一个“;”,可使表达式成为一个语句,形式为:

表达式;

其中“;”是C语句的组成部分,表示一个语句结束。表达式语句能够独立出现在程序中,而表达式则不能独立出现。

例如:x=y+1 是表达式

x=y+1;是语句

习惯上把赋值表达式语句如:x=y+1;称为赋值语句。函数调用也是表达式,因此:

printf(“hellow”)是表达式;

printf(“hellow”);是语句,习惯上称为输出语句。

scanf(“%d%d”,&x,&y);函数调用表达式语句(输入语句)

3. C的语句概述

C的一个“说明”也必须以分号结束,也称为语句,因此C的语句分说明语句和执行语句两类。

说明语句可以出现在程序中任何块(函数或复合语句)的外面——称为外部说明或块内——称为局部说明(在执行语句的前面)。

外部说明必须放在一个源程序文件中所有函数定义的外面;局部说明包括类型定义、变量和函数说明,其作用是描述程序中被处理数据(变量或函数)的名称和类型供解释程序使用。

执行语句只能出现在函数体内且处于局部说明的后面,执行语句完成对数据的处理和对程序流程的控制。

常用的程序结构为:

常量说明

类型说明

变量说明/*外部说明*/

返回类型函数名(参数表)

{ 变量说明/*局部说明*/

执行语句

}

C的执行语句共有六种:

●表达式语句

●复合语句

●标号语句

●选择语句(if和switch)

●循环语句(while,for,do-while)

●转移语句(break,continue,goto,return)

3.2标准的文件输入与输出函数

一个C的源程序要能够从外部设备(文件)输入数据并将执行(或处理)的结果输出到外部设备上。

C语言的输入和输出操作是通过调用C标准函数库中的函数来实现的,标准函数库是由C编译程序提供的。以编译后的目标代码形式存储的函数的集合。用户程序可根据需要按规定的格式调用其中的函数来完成相应的功能。C语言中从标准输入和输出文件(设备)中进行读(写)的四个标准函数是:

格式输出函数printf、格式输入函数scanf、字符输入函数getchar和字符输出函数putchar。其他函数以后讲。

3.2.1字符输入和输出函数

1.字符输入函数getchar

函数原型为:int getchar(void)

其中int说明函数的返回值的类型,void说明函数没有参数,该函数的调用格式为:

getchar()

系统将输出设备和输入设备都看成文件,标准输入设备(键盘)和标准输出设备(显示器)是由字符的序列(字符流)组成的文本文件,称为输入流和输出流。

getchar每调用一次则从终端(键盘)读取一个字符。这个字符的字符码就是getchar 的返回值(即函数值),其类型为由unsigned char 转换的int。例如:c=getchar();

执行时键入字符a赋值后变量c的值为97即字符‘a’的值。

输入文件的结束标志称为文件尾。DOS系统中键入ctrl+z时产生文件结束标志。getchar遇到文件结束标志时返回值EOF,EOF是在头文件〈stdio.h〉中定义的符号常量,其值通常为-1。程序中如果要测试getchar()的值是否文件尾应使用EOF而不用-1,这样做可使程序不依赖于某个特定环境。

2.字符输出函数putchar

函数原型为:int putchar(char ch )

putchar函数将所要输出的字符码转换为unsigned char送到标准输出设备中去,返回值是被输出的字符,如果出错则返回EOF,调用形式为:

putchar(ch)

其中ch为实际参数,可以是char、short或int类型的表达式,其值是要被输出字符的字符码。每调用一次则将字符ch输出到标准输出设备上。例如:int i=7;

char ch;

说明:

(1)下面四个语句是等价的,同为输出一个响铃字符:

putchar(i);putchar(7);putchar(…\07?);putchar(…\a?);

(2)下面三个语句分别输出字符a,3和换行

putchar(…a?);

putchar(…3?);

putchar(…\n?);

注:putchar(3) 输出是?而不是整数3。

(3)putchar(((c=getchar())>=?a?&&c<=?z?)?c-…a?+?A?:c);

该语句先输入一个字符存入变量c,如果c是小写字母则将其转换成大写字母后输出,否则直接输出原字符。

注意:凡是程序中调用了输入、输出库函数,必须在函数第一次调用之前写上#include或#include“stdio.h”,预处理控制(对于DOS上的scanf和printf 可省略)。

3.2.2格式输出函数(printf)

getchar和putchar函数用于输入和输出单个字符,输入和输出过程中不进行格式上的任何转换。

printf和scanf函数在数据的输入和输出过程中能够将计算机内部形式的数据和输入输出任务上的数据相互转换,称为格式输出和格式输入。

1.printf函数的原型

int printf(char format,args)

参数的数目可变,中间用“,”分隔,是要被转换并写到输出设备的数据。函数的返回值是实际输出字符的数目。

2.调用形式

printf(格式字符串,输出参数1,输出参数2,……);

调用printf函数时至少要给出第一个参数,即格式字符串。格式字符串式是用“”括起来的字符串;输出参数1,…输出参数n是n个表达式,可以为任何基本类型,也可以是指针或枚举类型(较少使用)。输出数据项的数目任意,末尾加“;”表示printf函数通常作为语句使用。

printf函数将参数的值按格式字符串规定的格式从内部形式转换成外部字符形式并输出设备,返回值是实际输出字符的数目。例如:

printf("%d%8.3f",i,x);

参数中的格式为"%d %8.3f",i和x是要输出的数据,%d表示i要用十进制整数

形式输出,宽度为数据实际宽度。%8.3f表示x要用小数形式浮点数格式输出,输出总宽度为8个字符,其中小数部分保留3位,若i=15,X=-8.2 该语句输出为

15 -8.200

3. 格式字符串

格式字符串包含两种字符:普通字符和用于转换说明的字符,普通字符照原样输出,转换说明用于说明数据输出格式。其形式为:

%[域宽]转换字符

一个转换说明以%开头。域宽部分是可选的,用于指定输出数据的宽度。每个转换说明对应于一个输出参数,该参数被转换成由转换说明规定的数据格式后输出。

普通字符通常用作输出提示信息,它可以与转换说明交替出现,例如printf("i=%d,x=%8.3f\n",i,x);

输出为:i=15,x= -8.200

ANSI C的转换字符及其规定的输出格式见教材p44。

注:如果%后面是一个%字符,则标准C无此定义,将它作为普通字符输出。

在%和转换字符之间可以加域宽说明,用于指定输出时的对齐方向、输出数据的域宽度、小数部分的位数等要求。用于域宽说明的字符列于下表中,域宽说明可以是其中之一或多个字符的组合。

表3.1 printf域宽说明字符

换说明对应的参数决定的。例如:

printf("%.*s",max,s);

该语句执行时从串s中打印至多max个字符。

域宽说明示例见教材p45

注意(1):printf函数根据格式串中的转换说明来决定输出数据的数目和类型,如果转换说明项数多于参数个数,或参数类型不正确,则会输出错误的数据(不报语法错);如果输出参数的数目多于转换说明项数则多余的参数不被输出。

例. Printf(“%%d,%d”,3,4);

结果为:%d,3

例:int i=-6;

double x=5.7,y=123.4567;

printf("%-4d,%g",i,y,x);

输出形式为:

-6 ,123.457

(2)printf中参数右结合,如设int i=1;

则 printf("%d,%d,%d",++i,++i,++i);输出结果为4,3,2

printf("%d,%d,%d",i++,i++,i++);输出结果为3,2,1

3.2.2 格式输入函数(scanf)

1. scanf函数的原型

int scanf(char *format,args)

scanf函数是具有int类型返回值(返回读入参数的个数)的函数。第一个参数format是格式字符串,它指出输入数据的数目、类型和格式,args为指向存放输入数据的变量的指针,输入参数的数目可变。

2. scanf函数的调用格式

scanf(格式字符串,输入参数1,…输入参数n);

scanf函数是printf函数的逆过程,它从标准输入设备(键盘)读入字符流,并按照格式字符串中转换字符规定的格式转换成相应类型的值后赋予由输入参数所指的变量。format串可以包含如下字符:

(1)空格或制表符,它们被忽略

(2)非%普通字符,它需要输入流中有同样的非空白字符与之匹配

(3)以%为开头以转换字符为结尾的转换说明符,常见的转换字符与printf类似(4)在%与转换字符之间可以有下列选项

·赋值抑制符*

·说明最大域宽的整数

·指出参数所指变量类型的字母 h,l或L

具体形式为:

格式字符与printf中使用方式相同,把输入数据分为整型(int *用d、o、x 指定)、字符型(char *,用c指定)、实型(float *,用f,e指定)。

在整型和实型中可再加长度修正说明符:加h(短整型)、加l(长整型)、加L(高精度型)、m(注意没有n)用以指定输入数据的宽度。

输入参数1至输入参数n可以为简单变量的地址或字符串变量的地址,简单变量的地址用变量前面加取地址运算符&表示,字符串变量的地址用字符数组名(或指向字符串变量的指针)表示。

scanf函数被正确执行时返回被转换并赋值的数据项的数目,遇到文件尾或出错时返回EOF。

例如:

int i;

float x;

char name[10];

scanf("%d %f %s",&i,&x,name);

输入:25 61.37e-1program

注意:

?输入字符串时不加双引号,因双引号也会作为字符号的内容。

?不能用赋值语句给数组赋值如:name="program" 因为name不是变量而是一

个地址常量。

?不能将scanf(%d",&i)写成scanf(“%d",i)也不能将scanf("%s",name)写

成scanf("%s",&name);

3 .输入形式

(1)构成一个被转换数据的字符序列称为一个输入域,输入域为下面三种情况之一。

●以输入流中当前字符开始直到第一个空白字符之前。

●根据转换说明不能被转换的字符之前。

●指定域宽用完。

输入域之间一般可用空白字符(空白、换行、制表符)隔开,整型、浮点型或字符型后的字符型数据不用空白字符分隔(注意字符型数据同样不用单引号),在整型、浮点型或字符型后的字符串数据可以有或无空白符(因为字符串前无前导空白符),当遇到空白符时表示一个字符串结束(见后面内容)。

例1 int i;

char c;

scanf("%d%c",&i,&c);

执行时输入:1234a

则i被赋值1234,c为'a'.

但若输入1234 a,则i 值同上,c为' '

若要读入一个非空白字符了可用下面形式:

scanf("%d%1s",&i,&c);

输入:1234 a,则i为1234,c为'a'。

例2 char c1,c2;

scanf("%c%c",&c1,&c2);

输入:12

则c1为'1',c2为'2'

例3:int day,year;

char month[10];

scanf("%d%s%d",&dat,month,&year);

执行时输入:25 dec 1996

输入流还可以是下列形式

25Dec 1996(回车)

但不能为

25 Dec1996

例4.Char name[20];

scanf(“%s”,name);

执行时输入programming language(回车)

则字符串“programming”将被赋予name。

注:用gets函数时,串中可含有空格,此时以回车键表示输入的结束。

(2)当键入回车时scanf开始执行,当固定格式字符串中的转换说明项或者某个输入域与转换说明项不能匹配时scanf停止执行,返回已成功匹配且被赋值的输入数据个数;当遇到文件结尾时返回EOF。

注意:当下一次调用scanf时从上一次scanf调用以被匹配转换的最后一个字符的后面那一个字符开始读取。

例1.int i,j;float x,y;

scanf(“%d%d”,&i,&j,&x);

scanf(“%f”,&y);

执行时输入

1234 56.7 89

执行第一个scanf调用时i被赋值为12,j为34,x未被赋值。Scanf返回值为2;输入流中的56.7未被读取,该指针处于34后面的第一个空格字符。执行第2个scanf 时,将56.7赋予y,89多余,scanf返回值为1。

注意:转换说明应与输入参数所指变量的类型一致,否则,输入数据不是所需要的结果;转换说明项个数也应与输入参数个数相同,如果转换说明项个数少于输入参数个数,右边多出的输入参数所指变量将不被赋值,反之,数据不存放。

例2.int i,j;

scanf(“%d%d”,&i,&j);

执行时输入12a

则i为12,j未被赋值,scanf返回值为1。

(3)当scanf的格式字符串包含有普通字符时,在输入流中相应位置必须有相同的字符与之匹配;对于空白字符,格式字符串的一个空白字符可以与输入流中0个或多个连续的空白字符匹配;对于非空白字符的普通字符则要求一一对应。

设i,j,k为int类型。

例1.Scanf(“%d %d %d”,&i,&j,&k);

执行是应输入

1020 30

其中10,20,30之间可以是一个或多个空白字符、制表符或换行符。

例2.Scanf(“%d,%d,%d”,&i,&j,&k);

执行时应输入

10,20,30

其中10,20,30之间必须有且仅有一个逗号。

例3.Scanf(“i=%d;j=%d;k=%d”,&i,&j,&k)

输入应输入

i=10;j=20;k=30

4.转换说明中的可选项

scanf转换说明中的可选项有指定域宽的整数:h、l、L、*。如果一个输入域前面有空行,scanf全自动跳过空行直到发现输入域。

①指定域宽的整数:如果说明了域宽,则输入域直到域宽用完时为止。

例1.int i,j;

scanf(“%3d%d”,&i,&j);

执行时输入1234 5678。

整数123被赋值i,4被赋值j。

例2.char name[20]

scanf(“%8s”,name);

若输入abcdefghi则字符串“abcdefgh”被赋给数组name。

②h,l,L:如果参数是short *(而不是int *),则转换字符d、i、n、o、u 和x的前面要加h ;如果参数是long * 则加l ;如果参数是double * (而不是float *)则转换字符e,f和g的前面要加l;如果参数是long double *,则加L。

例1.short i;

long j;

double x;

scanf(%hd%ld”,&i,&j);

scanf(“%lf”,&x);

例2. long double y;

scanf(“%lf”,&y);

③ *:如果指定了*,则输入域被跳过,不赋值。*指出按转换说明匹配相应的输入域。但转换结果不被赋值给任何变量,因此称为“虚读”。虚读用于从输入流中有选择的读取部分内容。

例如:double v1,v2,v3;

scanf(“%lf%*d%lf%*d%lf%*d”,&v1,&v2,&v3);

执行时输入:22 33 44 55 66

11.0赋予v1,33.0赋予v2,55.0赋予v3;输入域22,44,66被跳过。

3.3 简单程序设计举例

一个简单的c程序仅包含一个main函数且程序流程是顺序结构,程序的执行部分通常含三种基本操作的语句,即输入、输出、赋值语句或用于计算的其他表达式语句。

程序中出现的任何变量必须进行变量说明;如果有常量最好定义成符号常量;如果需要将处理结果暂时保存还要说明所须的辅助变量。

例1.从终端输入一个字符,如果是小写字母,则转换成大写后输出,否则原样输出。

#include

void main(void)

{int c;

printf(“intput a charctor:”);

c=getcher();

c>=‘a’&&c<=‘z’?putcher(c+‘A’-‘a’):putchar(c);

putcher(‘\n’);

}

注意:用 putchar和printf输出换行的参数不同,前者是‘\n’而后者是”\n”.

程序中的输入提示很重要,一个没有输入提示的程序在运行时用户不知道何时应输入何值。

例2 输入一个字符,输出该字符的字符码、该字符的前导字符(字符码域少1)及后续字符(字符码增1)、字符码。

#include

void main(void)

{int c ,c1,c2;

printf(“intput a charctor:”);

c=getcher();

c1=c-1;

c2=c+1;

printf(“The value of ‘%c’is %4d\n”,c,c);

printf(“%c:%d--%c:%d--%c:%d\n”,c1,c1,c,c,c2,c2);

}

输入s并回车则输出

The value of ‘s’ is 115

r :114—s:115—t:116

例3 输入三个浮点数,找出其中的最大值

#include

void main(void)

{float a,b,c,m;

printf(input three number :”);

scanf(“%f%f%f”,&a,&b,&c);

m=(a>b)?a:b;

m=(m>c)?m:c;

printf(“max=%.2f\n”,m);

}

例4 输入无符号短整数k和p,将k的低字节作为结果的高字节,p的低字节作为结果的低字节组成一个新的无符号数。

#include

main()

{unsigned short k,p,t;

printf(input k[hex:],p[oct.] :”);

scanf(“%hx%ho”,&k,&p);

t=(p&0xff)|(k&0377)<<8;/*t为保存结果的辅助变量*/

printf(“new=%hx\n”,t);

}

作业:P52 2.7 2.10 2.11 2.15 2.17 2.22 2.14

P98 3.5 3.6 3.8

第三章 最简单的c程序设计

第三章最简单的c程序设计 实践教学: 属性:实训 时间:学时。 实践教学内容: 实验目的:熟悉运算符、表达式,掌握标准输入输出函数的适用方法和顺序结构程序设计的一般方法。 实验内容和步骤: 1.编程,要求从键盘按规定的格式输入时间(时:分:秒), 并将输入的时间在屏幕上显示出来,存入ex3_1.c文件, 并编译、调试、运行。 #include main() { int a ,b,c; scanf("%d%d%d",&a,&b,&c); if (a>24) printf("请重新输入"); if (b>60) printf("请重新输入"); if (c>60) printf("请重新输入"); printf("%d:%d:%d\n",a,b,c); return 0; }

2.编程,要求从键盘输入数据,使整型变量a=10,b=8;字符 型c1=’A’,c2=’a’;实型变量x=3.1,y=64.54。并按规定格式输出变量的值。格式如下。存入ex3-2.c文件,并编译、调试、运行。 __int___a=__10___b=____8 char_c1=__A,___c2=____a float___x=_3.1,___y=64.54 #include main() { int a=10,b=8; char c1='A',c2='a'; float x=3.1,y=64.54; return 0; } 3.c语言编程求ax2+bx+c=0并分析其结果。存入ex3_2.c文 件,并编译、调试、运行。 #include

第三章-简单程序设计word版本

第三章简单程序设计 3.1 流程结构和语句 1 . 三种流程结构 顺序结构,选择结构,循环结构——程序在逻辑上执行的流程。 ●顺序结构:按语句在源程序中出现的次序依次执行; ●选择结构:根据一定的条件有选择地执行或不执行某些语句。 ●循环结构:在一定条件下重复执行相同的语句。 所有的流程控制都是由语句实现的,且任何一个表达式都可作为一个语句使用,成之为表达式语句 2. 表达式语句 任何表达式通过在其末尾加一个“;”,可使表达式成为一个语句,形式为: 表达式; 其中“;”是C语句的组成部分,表示一个语句结束。表达式语句能够独立出现在程序中,而表达式则不能独立出现。 例如:x=y+1 是表达式 x=y+1;是语句 习惯上把赋值表达式语句如:x=y+1;新为赋值语句。函数调用也是表达式,因此: printf(“hellow”)是表达式; printf(“hellow”);是语句,习惯上称为输出语句。 scanf(“%d%d”,&x,&y);函数调用表达式语句(输入语句) 3. C的语句概述 C的一个“说明”也必须以分号结束,也称为语句,因此C的语句分说明语句和执行语句两类。 说明语句可以出现在程序中任何块(函数或复合语句)的外面——称为外部说明或块内——称为局部说明(在执行语句的前面)。 外部说明必须放在一个源程序文件中所有函数定义的外面;局部说明包括类型定义、变量和函数说明,其作用是描述程序中被处理数据(变量或函数)的名称和类型供解释程序使用。 执行语句只能出现在函数体内且处于局部说明的后面,执行语句完成对数据的处理和对程序流程的控制。 常用的程序结构为: 常量说明 类型说明 变量说明/*外部说明*/ 返回类型函数名(参数表) { 变量说明/*局部说明*/ 执行语句 }

第二章 简单的VB程序设计习题

第二章简单的VB程序设计习题 一、选择题 1. 假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先执行的操作是 ()。 (A)单击窗体上没有控件的地方(B)单击任一个控件 (C)不执行任何操作(D)双击窗体的标题栏 2. 在VB中最基本的对象是(),它是应用程序的基石,是其它控件的容器。 (A)文本框(B)命令按钮 (C)窗体(D)标签 3. 有程序代码如下:text1.text=“visual basic”则:text1、text和“visual basic”分别代表()。 (A)对象,值,属性(B) 对象,方法,属性 (C)对象,属性,值(D) 属性,对象,值 4. VB是一种面向对象的程序设计语言,()不是面向对象系统所包含的三要素。 (A)变量(B)事件(C)属性(D)方法 5. VB的一个应用程序至少包括一个()文件,该文件存储窗体上使用的所有控件对象和有关的()、 对象相应的()过程和()代码。 (A)模块、方法、事件、程序(B)窗体、属性、事件、程序 (C)窗体、程序、属性、事件(D)窗体、属性、事件、方法 6. 在VB6.0环境已有应用程序的情况下,要重新建立一个工程的操作是()。 (A)单击工具栏上的“添加工程”按钮 (B)在工程资源管理器窗口上单击右键,在弹出的快捷菜单中选择“新建工程”选项 (C)选择“文件”菜单中的“新建工程” (D)选择“视图”菜单中的“新建工程” 7. 为了把窗体上的某个控件变为活动,应执行的操作是()。 (A)单击窗体的边框(B)单击该控件的内部 (C)双击该控件(D)双击窗体 8. 确定一个控件在窗体上的位置的属性是()。 (A)Width和Height (B)Width或Height (C)Top和Left (D)Top或Left 9. 确定一个窗体或控件的大小的属性是()。 (A)Width和Height (B)Width或Height (C)Top和Left (D)Top或Left 10. 对于窗体,下面()属性可以在程序运行时进行设置。 (A)MaxButton (B)BorderStyle (C)Name (D)Left 11. 要使Print方法在Form_Load事件中起作用,要对窗体的()属性进行设置。 (A)BackColor (B)BorderStyle (C)AutoRedraw (D)Caption 12. 要使标签控件显示时不覆盖其背景内容,要对()属性进行设置。 (A)BackColor (B)BorderStyle (C)ForeColor (D)BackStyle 13. 要使对象看得见而不可操作,要对()属性设置。 (A)Enabled (B)Visible (C)BackColor (D)Caption 14. 文本框没有()属性。

第2章 简单的C#程序设计 习题

第2章简单的C#程序设计 一.选择题 1.C#中程序的入口方法是【】方法。 A) main B) Main C) begin D) Program 2.假设变量x的值为25,要输出x的值,下列正确的语句是【】。 A) System.Console.writeline(“x”);B) System.Console.WriteLine(“x”); C) System.Console.WriteLine(“x={0}”,x);D) System.Console.WriteLine(“x={x}”); 3.要退出应用程序的执行,应执行下列的【】语句。 A) Application.Exit(); B) Application.Exit; C) Application.Close(); D) Application.Close; 4.关于C#程序的书写,下列不正确的说法是【】。 A) 区分大小写 B) 一行可以写多条语句 C) 一条语句可以写成多行 D) 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法。 5.公共语言运行库即【】。 A) CRL B) CLR C) CRR D) CLS 6..NET平台是一个新的开发框架,【】是.NET的核心部分。 A) C# B) .NET Framework C) https://www.wendangku.net/doc/7a15229922.html, D) 公共语言运行库 7.C#应用程序项目文件的扩展名是【】。 A) csproj B) cs C) sln D) suo 8.C#应用程序解决方案文件的扩展名是【】。 A) csproj B) cs C) sln D) suo 9.运行C#程序可以通过按【】键实现。 A) F5B) Alt+F5 C) Ctrl+F5 D) Alt+Ctrl+F5 10.C#语言中类模块代码文件的扩展名是【】。 A) csproj B) cs C) sln D) suo 11.构建桌面应用程序需要.NET提供的类库是【】。 A) https://www.wendangku.net/doc/7a15229922.html, B) Windows Form C) XML D) https://www.wendangku.net/doc/7a15229922.html, 12.C#中导入某一命名空间的关键字是【】。 A) use B) using C) import D) include 13..NET Framework将【】定义为一组规则,所有.NET语言都应遵守这个规则,才能创建可以与其他语言互操作的应用程序。 A) JIT B) CLR C) MSIL D) https://www.wendangku.net/doc/7a15229922.html, 14.在https://www.wendangku.net/doc/7a15229922.html,中,在【】中可以查看当前项目的类和类的层次信息。 A) 解决方案资源管理器B) 类视图窗口 C) 对象浏览器窗口D) 属性窗口 15.在.NET Framewor中,MSIL是指【】 A) 接口限制B)中间语言C) 核心代码D) 类库16.【】是独立于CPU的指令集,它可以被高效地转换为本机机器语言。

C++程序设计教程 课后答案第三章 李秉璋

1.概念填空题 1.1一个C++程序是由一个或多个函数所组成,即使是最简单的程序,也必须有一个main函 数。该函数是程序执行的起点和终点。C++中,函数不允许嵌套定义,允许嵌套调用。 1.2 函数执行过程中通过return 语句将函数值返回,当一个函数不需要返回值,需要使用 void 作为类型名。 1.3 在C++中,如果函数定义在后,调用在先,需要原型声明。其格式和定义函数时的函 数头的形式基本相同,但参数表中形参不是必须的,同时必须以; 结尾。 1.4 递归程序分两个阶段执行递推,回归。 1.5 函数名相同,但对应形参表不同的一组函数称为重载函数,参数表不同是指类型不 同或参数个数不同。 1.6 内联函数的展开、重载函数的确定均在编译阶段进行。 1.7 静态局部变量存储在全局数据区,在程序运行时候建立,生命期为整个程序 ,如定义 时未显式地初始化,则其初值为0。局部变量存储在栈区,在块或函数开始运行时候建立,生命期为块或函数,如定义时未显式地初始化,则其初值为随机数。 2.简答题 2.1 函数的作用是什么?如何定义函数?什么叫函数原型? 2.2 什么叫形式参数?什么叫实际参数?C++函数参数有什么不同的传递方式?请写一个验 证程序说明。 2.3 C++函数通过什么方式传递返回值?若返回引用类型时,是否可以返回一个算术表达式? 为什么? 2.4 变量的生存期和变量作用域有什么区别?请举例说明。 2.5 静态局部变量有什么特点?编写一个应用程序,说明静态局部变量的作用。 3.选择题 3.1正确的函数定义形式为(A )。 A.void fun(void) B.double fun(int x;int y) C.int fun(int=0,int); D.double fun(int x,y) 3.2 C++语言中规定函数的返回值的类型是由(D)。 A.return语句中的表达式类型决定 B.调用该函数时的主调函数类型决定 C.调用该函数时系统临时决定 D.定义该函数时所指定的函数类型决定 3.3 若有函数调用语句:fun(a+b,(x,y),(x,y,z));此调用语句中的实参个数为(A)。 A.3 B.4 C.5 D.6 3.4 C++中,关于默认形参值,正确的描述是(C)。 A.设置默认形参值时,形参名不能缺省 B.只能在函数定义时设置默认形参值 C.应该先从右边的形参开始向左边依次设置 D.应该全部设置 3.5 若同时定义了如下函数,fun(8,3.1)调用的是下列哪个函数(D)。 A.void fun(float,int) B.void fun(double,int)

第2章 程序设计基础

第二章程序设计基础 程序设计方法与风格 1.源程序文档化 源程序文档化应考虑如下几点: (1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。 (2)程序注释:正确的注释能够帮助读者理解程序。 (3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次 2.数据说明的方法 一般应注意: (1)说明次序规范化 (2) 变量说明有序化:语句说明多个变量时,变量按照字母顺序排序为好。 (3)使用注释来说明复杂数据的结构。 3.语句的结构 程序应该简单易懂,语句构造应该简单直接 不应该为提高效率而把语句复杂化。一般应注意如下 (1)在一行内只写一条语句: (2)程序编写应优先考虑清晰性; (3)除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。 (4)首先要保证程序正确,然后才要求提高速度: (5)避免使用临时变量而使程序的可读性下降; (6)避免不必要的转移; 7)尽可能使用库函数; (8)避免采用复杂的条件语句: (9)尽量减少使用“否定”条件的条件语句; (10)数据结构要有利于程序的简化; (11)要模块化,使模块功能尽可能单一化; (12)利用信息隐蔽,确保每一个模块的独立性 (13)从数据出发去构造程序: (14)不要修补不好的程序,要重新编写: 4.输入和输出 在设计和编程时都应该考虑如下原则: (1)对所有的输入数据都要检验数据的合法性; (2)检查输入项的各种重要组合的合理性; (3)输入格式要简单,以使得输入的步骤和操作尽可能简单; (4)输入数据时,应允许使用自由格式: (5)应允许缺省值; (6)输入一批数据时,最好使用输入结束标志: (7)在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息; (8)当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输 出加注释,并设计输出报表格式。

第02章 C++简单程序设计

2-16编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。 解: 源程序: #include int main() {int i; cout << "请输入一个数字:"; cin >> i; cout << "您输入一个数字是" << i << endl; return 0;} 程序运行输出:请输入一个数字:5 您输入一个数字是5 2-17 C++有哪几种数据类型?简述其值域。编程显示你使用的计算机中的各种数据类型的字节数。解:源程序: #include int main() {cout << "The size of an int is:\t\t" << sizeof(int) << " bytes.\n"; cout << "The size of a short int is:\t" << sizeof(short) << " bytes.\n"; cout << "The size of a long int is:\t" << sizeof(long) << " bytes.\n"; cout << "The size of a char is:\t\t" << sizeof(char) << " bytes.\n"; cout << "The size of a float is:\t\t" << sizeof(float) << " bytes.\n"; cout << "The size of a double is:\t" << sizeof(double) << " bytes.\n"; return 0;} 程序运行输出: The size of an int is: 4 bytes. The size of a short int is: 2 bytes. The size of a long int is: 4 bytes. The size of a char is: 1 bytes. The size of a float is: 4 bytes. The size of a double is: 8 bytes. 2-18 打印ASCII码为32~127的字符。 解: #include int main() {for (int i = 32; i<128; i++) cout << (char) i; return 0;} 程序运行输出: !"#$%G'()*+,./0123456789:;<>?@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\]^'abcdefghijklmnopq rstuvwxyz<|>~s 2-26编写一个完整的程序,实现功能:向用户提问"现在正在下雨吗?",提示用户输入Y或N。若输入为Y,显示"现在正在下雨。"; 若输入为N,显示"现在没有下雨。";否则继续提问"现在正在下雨吗?" 解:

第2章程序设计基础

考点1 程序设计的方法与风格 【考点精讲】 养成良好的程序设计风格,主要考虑下述因素: 1.源程序文档化 (1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。 (2)程序注释:在源程序中添加正确的注释可帮助人们理解程序。 程序注释可分为序言性注释和功能性注释。 (3)视觉组织:通过在程序中添加一些空格、空行和缩进等,使人们在视觉上对程序的结构一目了然。 2.数据说明的方法 为使程序中的数据说明易于理解和维护,可采用下列数据说明的风格,见表2-1。 表2-1 数据说明风格 3.语句的结构程序应该简单易懂,语句构造应该简单直接。 4.输入和输出 考点2 结构化程序设计 【考点精讲】 1.构化程序设计的原则 结构化程序设计方法引入了工程思想和结构化思想,使大型软件的开发和编程得到了极大的改善。结构化程序设计方法的主要原则为:自顶向下、逐步求精、模块化和限制使用goto语句。 自顶向上:先考虑整体,再考虑细节;先考虑全局目标,再考虑局部目标。 逐步求精:对复杂问题应设计一些子目标作为过渡,逐步细化。 模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。 限制使用goto语句:在程序开发过程中要限制使用goto语句。 2.结构化程序的基本结构 结构化程序的基本结构有三种类型:顺序结构、选择结构和循环结构。 顺序结构:是最基本、最普通的结构形式,按照程序中的语句行的先后顺序逐条执行。 选择结构:又称为分支结构,它包括简单选择和多分支选择结构。 循环结构:根据给定的条件,判断是否要重复执行某一相同的或类似的程序段。循环结构对应两类循环

《C程序设计(第四版)》-笔记-第三章

第三章最简单的C程序设计——顺序程序设计3.1 顺序程序设计举例(教材p37-p38) 3.2 数据的表现形式及其运算 3.2.1 常量和变量 在计算机高级语言中,数据有两种表现形式:常量和变量。 1.常量 常量:在程序运行过程中,其值不能被改变的量称为常量。(程序中的数值常量就是数学中的常数)

C程序常量

2.变量 变量一个有名字的、具有特定属性的一个存储单元。它用来存放数据,也就是存放变量的值。在程序运行期间变量的值是可以改变的。 变量必须先定义后使用。在定义时指定变量的名字和类型,一个变量应该有名字,以便与被引用。变量名和变量值是两个不同的概念。变量名是以一个名字代表的一个存储地址。 定义变量的位置:一般在函数开头的声明部分定义变量,也可以在函数外定义变量(即外部变量、全局变量)。 在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。 3.常变量 常变量与常量 常变量与常量异同是:常变量具有变量的基本属性:有类型,占存储单元,只是不允许改变其值。可以说,常变量是具有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。 常变量与符号常量 例: #define Pi 3.14 //定义字符常量 Const float pi=3.14 //定义常变量 本例二者都代表3.14,在程序中都能使用。但二者的性质不同: 定义符号常量用#define指令,它是预编译指令,它只是用符号常量代表了一个字符串,在预编译时仅是进行字符转换,在预编译后,符号常量就不存在了(全置换成3.14),对符号常量的名字是不分配存储单元的。而常变量要占用内存单元,有变量值,只是该值不改变而已。常变量具有符号变量的优点,使用更方便。 4.标识符 标识符在计算机高级语言中,用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符(identifier)。简单的说,标识符就是一个对象的名字。 c语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

相关文档