1、完整word版C语言复习31C程序通常是用 编辑器 程序填入的。2 预处理 程序是在翻译阶段开始之前自动执行的。3两种最常用的预处理指令是 把其他文件包含到要编译的文件中 和 用程序文本替换专门的符号 。4为了生成可执行文件, 连接 程序把编译器的输出和各种库函数连接在一起。5C语言程序都是从 Main 函数开始执行。6函数体用 左花括号() 开始,用 右花括号() 结束。7语句都用 分号 结束。8标准库函数 Printf 在屏幕上显示信息。9转义序列n表示 新行 符,它把光标定位在屏幕下一行的开始位置。10标准库函数 Scanf 用来读取来自键盘的数据。11. 在scanf函数的格式控制串中
2、,转换说明符 %d 表示要输入一个整数。在printf函数的格式控制串中,它表示要输出一个整数。12. 不论何时把某个值放置到某个存储单元中,该值都会覆盖掉该存储单元中原有的值。这种读入过程称为 破坏性 读入。13. 从存储单元中读取值时,该存储单元中的值不变。读取过程称为 非破坏性 读出。14. if 语句用来作出决策。15. 根据要执行的动作以及这些动作应该执行的顺序求解问题的过程称算法16. 指定语句在计算机程序中的执行顺序称为 程序控制 。17. 所有的程序都可以用三种控制结构编写。这三种控制结构是 顺序结构 、 选择结构 ,循环结构18. if/else 选择结构在条件为真时执行一个
3、动作,在条件为假时执行另一个动作。 19. 用花括号组合在一起的多个语句称为 复合语句 。20. while 循环结构在条件为真时反复执行一条语句或一组语句。 21. 一组指令循环执行指定次数,这种循环称为 计数器控制的 循环。22. 在事先不知道一组语句会反复执行多少次的情况下,可以用一个标记 值终止循环。1编辑器2预处理 3把其它文件包含到要编译的文件中、用程序文本替换专门的符号。4连接 5. Main 6. 左花括号(),右花括号()。 7. 分号8. Printf 9. 新行10. scanf11. % d 12. 破坏性13. 非破坏性14. If 15. 算法 16. 程序控制 1
4、7. 顺序结构、选择结构、循环结构18. if/ else19. 复合语句20. While21. 计数器控制的 22. 标记23. 在计数器控制的循环中, 计数器 用来计算一组指令应该被反复执行的次数24. 执行循环结构中的 continue 语句能够立即执行下一次循环。25. 执行循环结构或switch结构中的 break 语句能够立即退出该结构。26._switch选择结构_用来测试某个特定的变量或表达式是否等于每一个假设的整常数值。27. C语言的程序模块称为 函数 。 28. 函数是通过 函数调用 激活的。 29. 只能被定义它的函数内部所识别的变量称为 局部变量 。30. 被调用函
5、数中的 return 语句用来把表达式的值传回给调用函数。31. 函数的头部用关键字 void 表示它没有返顺值或表示它不包含参数。32. 标识符的 作用域 指可使用该标识符的程序区域。33. 把控制权从被调用函数返回到调用函数的三种方法是 执行return语句 、 执行return表达式 和_遇到结束函数的左花括号34. 编译器用 函数原型 检查传递给函数的参数个数、参数类型和参数顺序。35. rand 函数用来产生随机数。36. Srand 函数 用来给随机数程序设置随机数种子。37. 存储类别说明符有 auto 、 register 、 extern 和 static 。38. 在块或函
6、数参数列表中声明的变量除非指定了存储类别,否则其存储类别被假定为 Auto 。39. 存储类别说明符 Register 建议编译器把变量存储在计算机的某个寄存器中。40. 在块或函数之外声明的变量是 外部,全局 变量。41. 要想使函数中的局部变量在函数调用之间保持其值,该变量必须用存储类别说明符 Static 说明。42. 标识符的四种可能的作用域是 函数作用域 、 文件作用域 、 和 块作用域,函数原型作用域 。43. 直接或间接调用自身的函数称为 递归 函数。44. 递归函数通常由两部分组成。一部分是通过测试 基本 实例确定是否 终止递归,另一部分是通过递归调用把问题简化。45. 数值列
7、表和数值表储存在 数组 中。46. 数组元素的相关性表现在它们具有相同的 名字 和 类型 。47. 用来引用特定数组元素的数字称为 下标 。48. 应该用 符号常量 声明数组的大小,因为这种能够更容易调整程序。49. 把数组元素按顺序存放的过程称为数组 排序 。 24. continue25. Break 26. swithc选择结构27. 函数 28. 函数调用 29. 局部变量 30. Return 31. Void 32. 作用域33. 执行 return语句、执行return表达式、遇到结束函数的左花括号 34. 函数原型 35. rand36. Srand 37. auto、regi
8、ster、extern、static 38. Auto 39. Register 40. 外部、全局 41. Static 42. 函数作用域、文件作用域、块作用域、函数原型作用域。43. 递归44. 基本45. 数组46. 名字、类型47. 下标48. 符号常量49. 排序 23. 控制变量或计数器50. 确定某个数组中是否包含某个关键值的过程称为数组数 查找 。51. 使用两个下标的数组称为 二维 数组。52. 指针是把另一个变量的 地址 作为其值的变量。 53. 有三种值可以来初始化指针,它们是 0 、 NULL 和 地址 。54. 能够赋给指针的唯一的整数是 0 。 50. 查找 51
9、. 二维 52. 地址 53. 0、NULL、地址。 54. 0二判断下述说法是否正断。如不正确,说明理由。1. printf函数总是从新行的起始位置开始打印。( ) 2. 计算机会把/*和*/之间的注释文本打印到屏幕上。( ) 3. 在printf函数的格式控制串中使用转义序列n会把光标定位到屏幕上下一行开始位置 4. 所有的变量在使用前都必须予以声明。( )5. 在声明变量时必须给出变量的类型。( )6. C语言认为变量number和NuMbEr是相同的。( )7. 声明语句可放在函数体中的任何位置。( )8. printf函数的格式控制串之后的所有参数的前面都必须有&。( )9. 求余运
10、算符%只能用于两个整数操作数。( )10. 算述运算*、/、+和一具有相同的优先级。( ) 11. 打印三行输出的C语言程序必须用三条printf语句。( )12. 一个数组能够存放许多不同类型的值。( )13. 数组的下标可以float数据类型。( )14. 如果初始化值列表中的初始化值的个数少于数组的元素个数,C编译器会自动把剩余的元素初始化为初始化值列表中的最后一个值。( 15. 初始化值列表中的初始化值个数多于数组元素的个数是错误的。( 16. 把单个数组元素传递给修改该元素值的函数会使调用函数包含修改后的值。( )1. 不正确。printf函数总是从光标所在位置开始打印,光标位置可在
11、屏幕上某行的任何位置。 2. 不正确。在执行程序时,注释不会使计算机产生任何动作。注释只是用来提高程序的可读性。6. 不正确。C语言是对大小写敏感的,所以这两个变量是不相等的。 7. 不正确。声明必须放置在函数体左括号之后和任何可执行语句之前。 8. 不正确。printf函数的参数之间通常不使用&,scanf函数的格式控制串之后的参数通常要在前面加上&。例外情形在第6章和第7章中讨论。 10. 不正确。运算符*、/和%具有相同的优先级,而运算符+和-的优先级较低。11. 不正确。在printf语句中用多个n转义序列可进行多行打印。12. 不正确。数组只能存储具有相同类型的值13不正确。数组下标
12、必须是整数或整数表达式14不正确。C编译器自动把余下的元素初始化为0. 16不正确。数组的单个元素是传值调用。如果把整个数组传递给函数,被调用函数对数组元素值的修改就会影响到原始数组。三判断下列各叙述的正确性,若正确在( )内标记,若错误1. ( ) 全局变量与函数体内定义的局部变量重名时,局部变量不起作用。2. ( ) C程序中,有调用关系的所有函数必须放在同一个源程序文件中。3. ( ) 函数定义时,可以不指定形参的类型,函数调用时由实参的类型决定形参的类型。4. ( )C程序文件中每个函数都将被本文件调用。5.( )函数可以嵌套定义,即在一个函数的内部可以定义另一个函数,6.( )当函数
13、定义放在main()函数前面的时候,可以缺省函数声明。7.( )在C语言中允许函数之间的嵌套调用。8.( )局部静态变量是在编译时赋初值的,即只赋初值一次。9.( )外部变量必须定义在文件的开头部分。10.( )函数的形参在退出该函数后是不可见的。11.( )字符“0”是字符串的结束标记,其ASCII代码为0。12.( 若有说明:int a34=0;,则数组a中每个元素的初值都为0。13.( 若有说明:int a 4=0,0;,则二维数组a的第一维大小为0。14.( )若有说明:int a24=0,0;,则只有a00和a01的初值为0,其余元素的初值均不为0。 15.( )若有说明:stati
14、c int a34;,则数组a中各元素可在程序的编译阶段得到初值0。 16.( )若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。17.( )调用strlen(“abc0ef0g”)的返回值为8。18.( )在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。 19.( )当需要接受用户从键盘输入的含有空格的字符串时,应使用gets()函数。 20.( )在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。21.( )&b指的是变量b的地址处所存放的值。22.( )指针变量可用于保存同类型变量的地址值。23.( )存放地址的变量同其它变量一样,可以存放
15、任何类型的数据。24.( )指向同一数组的两指针p1、p2相减的结果与所指元素的下标相减的结果是相同的。25.( )如果定义函数时的参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量、数组名或简单变量的地址。26.( )char *name5定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。27.( )语句 y=*p+; 和 y=(*p)+; 是等价的。28.( )函数指针所指向的是函数的入口地址。29.( )int *p;定义了一个指针变量p,其值是整型的。30.( )用指针作为函数参数时,采用的是“地址传送”方式。 31.( )结构体的成员可以作为变量
16、使用。32.( )在一个函数中,允许定义与结构体类型的成员相同名的变量,它们代表不同的对象。33.( )在C语言中,可以把一个结构体变量作为一个整体赋值给另一个具有相同类型的结构体变量。34.( )使用联合体union的目的是,将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一存储空间。35.( )使用结构体struct的目的是,将一组数据作为一个整体,以便于其中的成员共享同一空间。 36.( )在C语言中,如果它们的元素相同,即使不同类型的结构也可以相互赋值。37.( )在C语言中,枚举元素表中的元素有先后次序,可以进行比较。38.( )用typedef可以定义各种类型名,但
17、不能用来定义变量。39.( )语句printf(“%dn”,sizeof(struct person); 将输出结构体类型person的长度。40.( 所谓结构体变量的指针就是这个结构体变量所占内存单元段的起始地址。1. 2. 3 . 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 四选择题1. 在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。
18、设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是 4 类型数据。 int char unsigned long2. 若int型数据占2个字节,则以下语句的输出为 4 。int k=-1; printf(“%d,%un”,k,k); -1,-1 -1,32767 -1,32768 -1,655353. 若a, b均为int型变量,x, y均为float型变量,正确的输入函数调用是 2 。 scanf(%d%f,&a,&b); scanf(%d%f,&a,&x); scanf(%d%d,a,b); scanf(%f%f,x,y);4. 若x,
19、 y均为double型变量,正确的输入函数调用是 3 。 scanf(%f%f,&x,&y); scanf(%d%d,&x,&y); scanf(%lf%lf,&x,&y); scanf(%lf%lf,x,y);5. 若x为char型变量,y为int型变量,x, y均有值,正确的输出函数调用是 1 。 printf(%c%c,x,y); printf(%c%s,x,y); printf(%f%c,x,y); printf(%f%d,x,y);6. 若a, b, c, d都是int型变量且初值均为10,不正确的赋值语句是 3 。a=b=c=d; a=b+; a+b+; d=(a=b=125) c
20、+;7. 若x, y均为int型变量且有值,要输出x, y的值,正确的输出函数调是 4 。printf(%d%d,&x,&y); printf(%f%f,x,y); printf(%f%d,x,y); printf(%d%d,x,y);8. x为int型变量,且值为2345,不正确的输出函数调用是 4 。 printf(%d,x); printf(%3d,x); printf(%c,x) ; printf(%s,x);9. 设x和y均为int型变量,则执行以下语句后的输出为 1 。x=15;y=5;printf(“%dn”,x%=(y%=2);0 1 6 12 1. 2. 3. 4. 5. 6
21、. 7. 8. 9. 10. 若m为float型变量,则执行以下语句后的输出为 。m=1234.123;printf(“%-8.3fn”,m);printf(“%10.3fn”,m);1234.123 1234.123 1234.123 1234.123 1234.123 1234.123001234.123 001234.123 11. 若n为int型变量,则执行以下语句后的输出为 。n=32767;printf(“%010dn”,n);printf(“%10dn”,n); 0000032767 32767 32767 0000032767 32767 输出格式说明符不合法 32767 32
22、76712. 若x为unsigned int型变量,则执行以下语句后的x值为 。x=65535;printf(“%dn”,x); 65535 1 无定值 -1 13. 若x为int型变量,则执行以下语句后的输出为 。x=0xDEF;printf(“%4dn”x);printf(“%4on”x);printf(“%4xn”,x); 3567 3567 3567 35676757 6757 06757 6757def def 0xdef 0def14. 若x、y、z均为int型变量,则执行以下语句后的输出为 。x=(y=(z=10)+5)-5;printf(“x=%d,y=%d,z=%dn”,x,
23、y,z); y=(z=x=0,x+10);printf(“x=%d,y=%d,z=%dn”,x,y,z); x=10, y=15, z=10x=0, y=10, z=0 x=10, y=10, z=10x=0, y=10, z=0 x=10, y=15, z=10x=10, y=10, z=0 x=10, y=10, z=10x=0, y=10, z=0 10. 11. 12. 13. 14. 15. 若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf(“x=%d,y=%f”,&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应当是 。x=10
24、,y=66.6 1066.610 66.6 x=10 y=66.6 16. 若w、x、y、z均为int型变量,则为了使以下语句的输出为:1234+123+12+1,正解的输入形式应当是 。scanf(“%4d+%3d+%2d+%1d”,&x,&y,&z,&w);printf(“%4d+%3d+%2d+%1dn”,x,y,z,w); 1234123121 1234123412341234 1234+1234+1234+1234 1234+123+12+1 17. 若x、y均为int型变量,z为double型变量;则以下不合法的scanf函数调用语句为 。 scanf(“%d,%lx,%le”,&
25、x,&y,&z); scanf(“%2d*%d%lf”,&x,&y,&z); scanf(“%x%*d%o”,&x,&y); scanf(%x%o%6.2f”,&x,&y,&z);18. 设a、b均是int型变量,则以下不正确的函数调用为 。 a=c1=z putchar(108) scanf(“%d%*2d”,&a,&b) putchar()19.判断char型变量c1是否为小写字母的最简单且正确的表达式为 。 a=c1=a)&(c1=z) (a=c1) (c1=a)&(c1x)& (b=yz );(1) 5 0 1 2(2) 6 0 1 422.以下不正确的if语句是_。if (xy);
26、if (x= =y) x+=y; if (x!=y)scanf(“%d”,&x) else scanf(“%d”,&y); if (xy) x+;y+;23. C语言对嵌套if语句的规定是:else总是与 配对。 其之前最近的if 第一个if 缩进位置相同的if 其之前最近且不带else的if24.若有说明int x,y;则下面程序段 不能实现以下的函数关系: if (x0) y=1; else y=0; y=0; if (x=0);if (x0) y=1; else y= -1; if (x=0) if (x0) y=1; else y=0; else y= -1;25.若x、y、z、m、n
27、 均为 int 型变量,则执行下面语句后的 x 值 为 (1) ,y值为 (2) ,z的值为 (3) 。m=10; n=5;x=(-m=n+)?-m:+n;y=m+;z=n;(1) 5 6 10 7(2) 11 6 9 10(3) 5 10 6 7 26.若有说明语句:int w=1,x=2,y=3,z=4;则表达式wx?w:zy?z:x的值是 。4 3 2 127.以下关于switch语句和break语句的描述中,只有 是正确的。 在switch语句中必须使用break语句。 break语句只能用于switch语句中。 在switch语句中,可根据需要用或不用break语句。 break语句
28、是switch语句的一部分。21.(1) (2) 22. 23. 24. , 25.(1) (2) (3) 26. 27. 28. 28.设有说明语句:int a=2,b=7,c=5;则执行以下语句后,输出为 2 。switch(a0)case 1: switch(b0) case 1: printf(“”); break; case 2: printf(“!”); break; case 0: switch(c=5) case 0: printf(“*”); break; case 1: printf(“#”); break; default:printf(“$”); break; default: printf(“&”); #& #& *& $& 29. 以下程序的输出结果是 1 。m
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1