第九章预处理
- 格式:ppt
- 大小:115.00 KB
- 文档页数:25
1.下面叙述中正确的是(A )。
A.带参数的宏定义中参数是没有类型的B.宏展开将占用程序的运行时间C.宏定义命令是C语言中的一种特殊语句D.使用#include命令包含的头文件必须以“.h”为后缀2.在宏定义#define PI3.14159中,用宏名代替一个( D )A.常量B.单精度数C.双精度数D.字符串3.下面有关宏替换的叙述不正确的是( D )A.宏替换不占用运行时间B.宏名无类型C.宏替换只是字符替换D.宏名必须用大写字母表示4.C语言的编译系统对宏命令的处理是( D )A.在程序运行时进行的B.和C程序中的其他语句同时进行编译的C.在程序连接时进行的D.在对源程序中其它成分正式编译之前进行的5.下列定义不正确的是(C )。
A.#define PI 3.141592B.#define S345C.int max(x,y); int x,y; { }D.static char c6.有如下宏定义 #define s(a) a*3 ,则执行表达式x=s(1+2)后,变量x的值为( D)。
A.10B.9C.8D.77.以下说法中正确的是( D)。
A.#define是C语句B.#define是库函数C.#define是自定义函数D.#define是预处理命令8.在“文件包含”预处理语句的使用形式中,当#include后面的文件用了“”(双引号)时,寻找被包含文件的方式是(B)。
A.直接按系统设定的标准方式搜索目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录9.以下叙述正确的是( B )。
A.可以把define和if定义为用户标识符B.可以把define定义为用户标识符,但不能把if定义为用户标识符C.可以把if定义为用户标识符,但不能把define定义为用户标识符D.define和if都不能定义为用户标识符10.以下叙述中正确的是( B )。
c程序设计第二版谭浩强课后答案C程序设计第二版是谭浩强教授编写的一本广泛使用的计算机程序设计教材,它以C语言为基础,深入浅出地介绍了程序设计的基本概念、语法规则和编程技巧。
这本书的课后习题对于加深理解C语言的知识点非常有帮助。
以下是部分课后习题的答案,供参考:第一章程序设计和C语言概述1. 问题一:简述程序设计的基本步骤。
- 答案:程序设计的基本步骤包括需求分析、设计、编码、测试和维护。
2. 问题二:C语言的主要特点是什么?- 答案:C语言的主要特点包括简洁高效、结构化、可移植性、丰富的运算符、灵活的数据类型和内存管理能力。
第二章 C语言程序的结构1. 问题一:C语言程序的基本结构是什么?- 答案:C语言程序的基本结构包括预处理指令、函数定义和主函数。
2. 问题二:什么是函数?C语言中函数的定义规则是什么?- 答案:函数是一段具有特定功能的代码块,可以被重复调用。
C 语言中函数的定义规则包括返回类型、函数名和参数列表。
第三章数据类型、运算符和表达式1. 问题一:C语言中的基本数据类型有哪些?- 答案:C语言中的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)。
2. 问题二:算术运算符有哪些?它们的优先级是怎样的?- 答案:算术运算符包括加(+)、减(-)、乘(*)、除(/)和模(%)。
它们的优先级从高到低依次是乘除、模、加减。
第四章控制语句1. 问题一:C语言中的条件语句有哪些?- 答案:C语言中的条件语句包括if语句、if...else语句和switch语句。
2. 问题二:循环语句有哪些?它们的基本结构是什么?- 答案:C语言中的循环语句包括while循环、do...while循环和for循环。
它们的基本结构是初始化、条件判断和迭代。
第五章数组1. 问题一:什么是数组?数组的声明方式有哪些?- 答案:数组是相同数据类型元素的集合。
数组的声明方式包括在函数内部声明和全局声明。
第九章编译预处理9.1 选择题【题9.1】以下叙述中不正确的是。
A)预处理命令行都必须以#号开始B)在程序中凡是以#号开始的语句行都是预处理命令行C)C程序在执行过程中对预处理命令行进行处理D)以下是正确的宏定义#define IBM_PC【题9.2】以下叙述中正确的是。
A)在程序的一行上可以出现多个有效的预处理命令行B)使用带参的宏时,参数的类型应与宏定义时的一致C)宏替换不占用运行时间,只占编译时间D)在以下定义中C R是称为“宏名”的标识符#define C R 045【题9.3】请读程序:#define ADD(x) x+xmain(){int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}上面程序的运行结果是。
A)sum=9 B)sum=10 C)sum=12 D)sum=18【题9.4】以下程序的运行结果是。
#define MIN(x,y) (x)<(y)?(x):(y)main(){int i=10,j=15,k;k=10*MIN(i,j);printf(“%d\n”,k);}A)10 B)15 C)100 D)150【题9.5】在宏定义#define PI 3.14159中,用宏名PI代替一个。
A)常量B)单精度数C)双精度数D)字符串【题9.6】以下程序的运行结果是。
#include <stdio.h>#define FUDGE(y) 2.84+y#define PR(a) printf(“%d”,(int)(a))#define PRINT1(a) PR(a); putchar(‘\n’)main(){int x=2;PRINT1(FUDGE(5)*x);}A)11 B)12 C)13 D)15【题9.7】以下有关宏替换的叙述不正确的是。
A)宏替换不占用运行时间B)宏名无类型C)宏替换只是字符替换D)宏名必须用大写字母表示【题9.8】C语言的编译系统对宏命令的处理是。
C语言教案第九章预处理命令1.C语言中以“#”号开头的行,均为“编译预处理”命令行2.宏作为一个预处理命令,只是简单的文本代换3.在字符串代换过程中,一定要注意不要添加任何字符4.不带参数的宏定义及使用,注意宏中括号的用法5.*当宏定义在一行中写不下,需换行时应在最后一个字符后加“\”6.带参数的宏定义及使用7.注意宏名一般使用大写字母,而参数则不限8.文件包含的两种方法(书上212页)9.*条件编译习题217页:2,3,5第十章指针1.地址和指针的概念,指针型变量的定义2.指针型变量的基类型3.取地址运算符& 和指针运算符*4.通过指针为变量赋值及通过指针找出变量的值的方法5.*为指针变量赋“空”值:p=NULL或p=’\0’ 或p=0(NULL为预定义符,ASCII码值为0)6.函数的形参为指针变量时的数据传递7.通过传送地址值,在被调函数中直接改变主调函数中变量的值8.*函数返回地址值9.指针变量取代数组作函数参数10.一维数组与指针11.一维数组中的几种等价形式:设有定义int a[10], *p=a;数组元素的地址——&a[i], a+i, p+i, &p[i]数组元素——a[i], *(a+i), *(p+i), p[i]12.移动指针,每次移动一个单元13.*指针比较,通常两个或多个指针指向同一目标时比较才有意义14.*数组元素的地址作实参15.*函数的指针形参与函数体中数组的区别16.二维数组与指针17.一个二维数组可看作由多个一维数组构成18.几种等价形式:设有定义int a[5][6], *p=a[0]; 则存在着关于变量和变量的地址间的如下等价形式二维数组元素的地址——&a[i][j], a[i]+j, *(a+i)+j, &a[0][0]+列数*i+j,a[0]+列数*i+j 二维数组元素——a[i][j], *(a[i]+j), *(*(a+i)+j), *(&a[0][0]+列数*i+j),(*(a+i))[j]19.指向指针的指针:int a[5][6], **p=a;20.指针数组:int a[5][6], *p[4]; 定义了具有四个元素的基本整型指针数组21.行指针:int a[5][6], (*p)[6]; 定义了一个指向具有六个元素的一维数组的指向指针的指针型变量22.*二维数组名和指针数组作为实参在函数中的数据传递23.*二级指针和行指针作为实参在函数中的数据传递24.*字符串与指针,直接用字符型指针变量记录字符串的地址25.*指向函数的指针习题278页:2,3,4,9,10,14,15。
苏小红c语言程序设计课后答案苏小红的《C语言程序设计》是一本广泛使用的教材,它以清晰的结构和丰富的示例,帮助学生掌握C语言的基础知识和编程技巧。
课后答案对于学生来说是一个重要的学习资源,可以帮助他们检查自己的学习成果,加深对知识点的理解。
以下是一些可能的课后答案示例,用于帮助学生复习和理解C语言程序设计的相关概念。
第一章:C语言概述1. C语言的发展历史:C语言由Dennis Ritchie在20世纪70年代初期开发,最初用于UNIX操作系统的编写。
2. C语言的特点:C语言是一种结构化语言,具有高度的灵活性和强大的功能,能够进行底层系统编程。
第二章:C语言基础1. 数据类型:C语言提供了多种数据类型,包括整型(int)、浮点型(float和double)、字符型(char)等。
2. 变量声明:变量在使用前必须声明,声明时需要指定数据类型和变量名。
第三章:运算符和表达式1. 算术运算符:包括加(+)、减(-)、乘(*)、除(/)等。
2. 赋值运算符:如`=`,`+=`,`-=`等,用于给变量赋值或进行运算后赋值。
第四章:控制结构1. 条件语句:如`if`,`else if`,`else`,用于根据不同的条件执行不同的代码块。
2. 循环语句:包括`for`循环、`while`循环和`do-while`循环,用于重复执行代码块。
第五章:数组1. 一维数组:存储相同类型的元素,可以通过下标访问数组元素。
2. 多维数组:如二维数组,可以看作是数组的数组。
第六章:函数1. 函数定义:使用`return`类型和函数名来定义函数。
2. 函数调用:通过函数名和必要的参数来调用函数。
第七章:指针1. 指针变量:存储另一个变量的内存地址。
2. 指针运算:包括地址运算和指针的增减。
第八章:结构体和联合体1. 结构体:可以包含不同类型的数据成员。
2. 联合体:所有成员共享相同的内存位置。
第九章:预处理指令1. 宏定义:使用`#define`来定义常量或代码片段。
第九章习题答案一、单项选择题1.A2.B3.C4.D5.B6.C7.A8.D9.D10.C11.B12.C13.D14.C二、填充题1.编译处理编译预处理2.非静态存储类型变量和外部函数3.74.printf(“%d\n”,m);5.fopen(“a.txt”,”rw”);6.x[i]>=’A’&&x[i]<=’Z’7.“ i=%d\n”8.(1) #define MAX(a,b,c)(2) #define MIN(a,b) (a<b?a:b)(3) #define isalnum(c) (c>=’0’&& c<=’9’)(4) #define isupper( c) (c>=’A’&& c<=’Z’)(5) #define islower( c) (c>=’a’ && c<=’z’)三、程序分析题1.运行结果: -32.运行结果: 7,473.运行结果:50 254.运行结果:x=9, y=55.运行结果:9 9 116.输出结果: x|y&z=3x^y&~z=1x&y&z=0!x|x=1~x|x=-1四、程序设计题1.解:#include <stdio.h>#include <math.h>#define S(a, b, c) 0.5* (a+b+c)#define AREA(a, b, c) sqrt (S(a, b, c)*(S(a, b, c)-a)* (S(a, b, c )-b)* (S(a, b, c)-c)) void main ( ){ float a, b, c;printf (“输入三角形的三条边长:a, b, c\n”);scanf (“%f, %f, %f”, &a, &b, &c) ;if (( a+b>c)&& (b+c>a) && (c+a>b)){ printf (“周长=%f\n”, 2*S(a, b, c ));printf (“面积=%f\n”, AREA(a, b, c ));}else printf (“a, b, c 的长度不能构成三角形\n”) ;}2.解:#include <stdio.h>#include <stdlib.h>void main (int argc, char *argv[ ]){ int a, b;if (argc<3) { printf (“Parameter missing!\n”) ; exit(0); }a=atoi (argv[1]) ;b=atoi (argv[2]) ; //在stdlib.h中有库函数atoi, 把字符串转换成整数printf (“%5d + %5d = %5d\n”, a, b, a+b) ;printf (“%5d - %5d = %5d\n”, a, b, a-b) ;printf (“%5d * %5d = %5d\n”, a, b, a*b) ;printf (“%5d / %5d = %5d\n”, a, b, a/b) ;printf (“%5d %% %5d = %5d\n”, a, b, a%b) ;}3.解:#include <stdio.h>#include <stdlib.h>void main (int argc, char *argv[]){ int i, sum=0;for (i=1; i<argc; i++) sum=sum+atoi (argv[i]) ;printf (“和= %d\n”, sum);}4.解:#include <stdio.h>#include <stdlib.h>#include <string.h>void main (int argc, char *argv[]){ if (argc<3){ printf (“Parameter missing!\n”) ; exit(0); } if ( strcmp (argv[1], argv[2])>0) puts (argv[1]) ;else puts (argv[2]) ;}。