C语言全国计算机二级等级考试教程第一二章(章节带习题)
C语言全国计算机二级等级考试教程第一二章(章节带习题)
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常
量。但是这个符号名必须在程序中用(#define)进行特别的“
指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/
#define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/
main()
/*主函数,程序的入口*/
{double r,s,l;
/*声明部分,定义了3实型个变量*/
r
r=5.0;
/*给变量r赋值*/
函 s=PI*r*r;
数 体
l=2*PI*r;
/*计算圆的面积*/ /*计算圆的周长*/
s
printf(“s=%f,l=%f\n”,s,l/)*;分别圆的面积和周长*/
/*给变量b赋值*/
数 体
area=a*b;
/*将a*b的结果赋值给变量area*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area/)*;分别输出矩形的两条边长和面积*/
1.2
}
3.6
a=1.200000,b=3.600000,area=4.320000
4.32
注意:
1. C程序由函数组成,一个程序必须有一个且只能有一个主函数(main),C程
a
b
1.5000002.500000 2.5000003.500000
a b
内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。
全国计算机等级考试二级C语言公共基础知识(附例题)
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1。
1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构.在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等.一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成.考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念.1。
算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的.撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
二级C语言笔试习题集答案及解析(1-3章)
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bprintf是预定义标识符,而预定义标识符可以是用户标识符,所以printf可以是用户标识,int是关键字,而关键字不能是用户标识符,所以int不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是Ab=10;这句被注释了。
全国计算机等级测验二级教程C语言程序设计课后习题答案
main()ﻫ{ﻫint a,b; ﻫa=1500;b=350;ﻫprintf("a divb is: %d\n",a/b);
printf("a mod bis :%d\n",a%b);ﻫ}
3.32
#include
main()
{ ﻫdoublea,b,c,ave;ﻫprintf("input 3 double number:\n"); ﻫscanf ("%lf%lf%lf",&a,&b,&c);ﻫprintf ("%.1f\n",(a+b+c)/3); ﻫ}ﻫ3.33 ﻫ#include
}
ﻫ第四章ﻫ一.选择题ﻫ4.1 A4.2 A 4.3 A4.4D 4.5C4.6A4.7 B 4.8C4.9 D4.10 C
二.填空题
4.11非00ﻫ4.12 <> >=<=同级== !=同级ﻫ4.13! && ||
4.15 ! ﻫ4.16a ==b ||a<cx>4|| x <-4 ﻫ4.171 ﻫ4.18x<=01>0ﻫ4.193 22
函数结束处遗失了一个“}”
ﻫ2.29ﻫ#include"stdio.h"
main/*mainfunction*/main后遗失了“()”
{
floata,b,c,v; /*a,b,c aresides, v isvolume ofcube */ ﻫa=2.0; b=3.0; c=4.0行尾遗失了“;”ﻫv=a*b*c;
1.3顺序 选择 循环
ﻫ第二章ﻫ一.选择题ﻫ2.1 B 2.2 D 2.3 B 2.4A 2.5 C2.6A2.7 B
全国计算机等级考试二级C语言视频教程(完整版)
第一章程序设计的基本概念·01-01.程序设计的基本概念(1)·01-02.程序设计的基本概念(2)·01-03.程序设计的基本概念(3)第二章C语言基础知识·02-01.简单C语言的构成和格式(1)·02-02.简单C语言的构成和格式(2)·02-03.标识符的组成和分类·02-04.整型数据和实型数据(1)·02-05.整型数据和实型数据(2)·02-06.整型数据和实型数据(3)·02-07.整型数据和实型数据(4)·02-08.整型数据和实型数据(5)·02-09.整型数据和实型数据(6)·02-10.整型数据和实型数据(7)·02-11.算术表达式和赋值表达式(1)·02-12.算术表达式和赋值表达式(2)·02-13.算术表达式和赋值表达式(3)·02-14.算术表达式和赋值表达式(4)·02-15.自加自减运算·02-16.课后习题和典型例题讲解第三章C语言函数·03-01.输出函数(1)·03-02.输出函数(2)·03-03.输出函数(3)·03-04.输出函数(4)·03-05.输出函数(5)·03-06.输入函数(1)·03-07.输入函数(2)·03-08.输入函数(3)·03-09.输入函数(4)·03-10.程序举例·03-11.课后习题和典型例题详解第四章C语言表达式和简单语句·04-01.关系运算符和关系表达式(1)·04-02.关系运算符和关系表达式(2)·04-03.逻辑运算符和逻辑表达式(1)·04-04.逻辑运算符和逻辑表达式(2)·04-07.选择语句的使用(2)·04-08.选择语句的使用(3)·04-09.选择语句的使用(4)·04-10.goto语句和课后习题详解(1)·04-05.逻辑运算符和逻辑表达式(3)·04-06.选择语句的使用(1)·04-11.goto语句和课后习题详解(2)第五章C语言循环语句及实例演示·05-01.while语句和do-while语句(1)·05-02.while语句和do-while语句(2)·05-03.while语句和do-while语句(3)·05-04.while语句和do-while语句(4)·05-05.while语句和do-while语句(5)·05-06.for语句和累加累乘算法(1)·05-07.for语句和累加累乘算法(2)·05-08.for语句和累加累乘算法(3)·05-09.for语句和累加累乘算法(4)·05-10.for语句和累加累乘算法(5)·05-11.循环嵌套实例(1)·05-12.循环嵌套实例(2)·05-13.循环嵌套实例(3)·05-14.循环嵌套实例(4)·05-15.循环嵌套实例(5)·05-16.循环嵌套实例(6)·05-17.循环嵌套实例(7)·05-18.循环嵌套实例(8)·05-19.循环嵌套实例(9)·05-20.循环嵌套实例(10)·05-21.循环嵌套实例(11)·05-22.循环嵌套实例(12)·05-23.循环嵌套实例(13)·05-24.循环嵌套实例(14)·05-25.循环嵌套实例(15)·05-26.循环嵌套实例(16)·05-27.循环嵌套实例(17)·05-28.循环嵌套实例(18)·05-29.循环嵌套实例(19)·05-30.循环嵌套实例(20)·05-31.break语句和continue语句的使用方法·05-32.课后习题和典型例题的讲解(1)·05-33.课后习题和典型例题的讲解(2)第六章字符型常量和变量及输入输出函数·06-01.字符型常量和字符型变量(1)·06-02.字符型常量和字符型变量(2)·06-03.字符型常量和字符型变量(3)·06-04.字符型常量和字符型变量(4)·06-05.输入输出函数(1)·06-06.输入输出函数(2)·06-07.输入输出函数(3)·06-08.程序举例(1)·06-09.程序举例(2)·06-10.程序举例(3)·06-11.课后习题讲解和典型例题分析第七章C语言函数和程序设计实例·07-01.函数的定义和返回值(1)·07-02.函数的定义和返回值(2)·07-03.函数的定义和返回值(3)·07-04.函数的定义和返回值(4)·07-05.函数的调用和说明(1)·07-06.函数的调用和说明(2)·07-07.调用函数和被调用函数之间的数值传递(1)·07-08.调用函数和被调用函数之间的数值传递(2)·07-09.函数程序举例(1)·07-10.函数程序举例(2)·07-11.函数程序举例(3)·07-12.函数程序举例(4)·07-13.函数程序举例(5)·07-14.函数程序举例(6)·07-15.函数程序举例(7)·07-16.课后习题讲解第八章变量的地址和指针及指针操作举例·08-01.变量的地址和指针·08-02.指针的定义赋值(1)·08-03.指针的定义赋值(2)·08-04.指针的定义赋值(3)·08-05.对指针变量的操作(1)·08-06.对指针变量的操作(2)·08-07.对指针变量的操作(3)·08-08.对指针变量的操作(4)·08-09.指针在函数中的应用及举例(1)·08-10.指针在函数中的应用及举例(2)·08-11.指针在函数中的应用及举例(3)·08-12.课后习题讲解(1)·08-13.课后习题讲解(2)·08-14.课后习题讲解(3)第九章一维数组和二维数组中指针的应用实例·09-01.一维数组的定义和一维数组的引用(1)·09-02.一维数组的定义和一维数组的引用(2)·09-03.一维数组的定义和一维数组的引用(3)·09-04.一维数组和指针(1)·09-05.一维数组和指针(2)·09-06.函数之间对一维数组和数组元素的引用及实例(1)·09-07.函数之间对一维数组和数组元素的引用及实例·09-15.二维数组的定义和二维数组元素的引用(1)·09-16.二维数组的定义和二维数组元素的引用(2)·09-17.二维数组和指针以及二维数组程序举例(1)·09-18.二维数组和指针以及二维数组程序举例(2)·09-19.二维数组和指针以及二维数组程序举例(3)·09-20.二维数组和指针以及二维数组程序举例(4)·09-21.二维数组和指针以及二维数组程序举例(5)(2)·09-08.函数之间对一维数组和数组元素的引用及实例(3)·09-09.函数之间对一维数组和数组元素的引用及实例(4)·09-10.函数之间对一维数组和数组元素的引用及实例(5)·09-11.函数之间对一维数组和数组元素的引用及实例(6)·09-12.函数之间对一维数组和数组元素的引用及实例(7)·09-13.函数之间对一维数组和数组元素的引用及实例(8)·09-14.函数之间对一维数组和数组元素的引用及实例(9)·09-22.二维数组和指针以及二维数组程序举例(6)·09-23.二维数组和指针以及二维数组程序举例(7)·09-24.二维数组和指针以及二维数组程序举例(8)·09-25.二维数组和指针以及二维数组程序举例(9)·09-26.二维数组和指针以及二维数组程序举例(10)·09-27.课后习题讲解(1)·09-28.课后习题讲解(2)第十章字符串数组·10-01.用一个一维数组来存放字符串(1)·10-02.用一个一维数组来存放字符串(2)·10-03.字符串的输入和输出(1)·10-04.字符串的输入和输出(2)·10-05.字符串的输入和输出(3)·10-06.字符串数组(1)·10-07.字符串数组(2)·10-08.字符串数组(3)·10-09.字符串数组(4)·10-10.字符串数组(5)·10-11.用于字符串处理的函数(1)·10-12.用于字符串处理的函数(2)·10-13.用于字符串处理的函数(3)·10-14.用于字符串处理的函数(4)·10-15.用于字符串处理的函数(5)·10-16.用于字符串处理的函数(6)·10-17.实例讲解(1)·10-18.实例讲解(2)·10-19.课后习题的讲解第十一章main函数和函数的递归调用·11-01.传给main函数的参数(1)·11-02.传给main函数的参数(2)·11-03.通过实参向函数传递函数名或指向函数的指针变量(1)·11-04.通过实参向函数传递函数名或指向函数的指针变量(2)·11-05.函数的递归调用(1)·11-06.函数的递归调用(2)·11-07.函数的递归调用(3)·11-08.函数的递归调用(4)·11-09.函数的递归调用(5)·11-10.函数的递归调用(6)·11-11.课后习题讲解(1)·11-12.课后习题讲解(2)·11-13.课后习题讲解(3)第十二章局部变量、全局变量和生存期·12-01.局部变量、全局变量和存储分类·12-02.局部变量及其作用域和生存期(1)·12-03.局部变量及其作用域和生存期(2)·12-04.全局变量及其作用域和生存期(1)·12-05.全局变量及其作用域和生存期(2)·12-06.函数的存储分类·12-07.课后习题讲解(1)·12-08.课后习题讲解(2)·12-09.课后习题讲解(3)第十三章宏替换·13-01.宏替换(1)·13-02.宏替换(2)·13-03.宏替换(3)·13-04.宏替换(4)·13-05.文件包含和动态存储分配(1)·13-06.文件包含和动态存储分配(2)·13-07.文件包含和动态存储分配(3)·13-08.课后习题讲解(1)·13-09.课后习题讲解(2)·13-10.课后习题讲解(3)第十四章结构体·14-01.用typedef说明一种新类型名·14-02.结构体(1)·14-03.结构体(2)·14-04.结构体(3)·14-19.利用结构体变量构成链表(1)·14-20.利用结构体变量构成链表(2)·14-21.利用结构体变量构成链表(3)·14-05.结构体(4)·14-06.结构体(5)·14-07.结构体(6)·14-08.结构体(7)·14-09.结构体(8)·14-10.结构体(9)·14-11.结构体(10)·14-12.结构体(11)·14-13.结构体(12)·14-14.结构体(13)·14-15.结构体(14)·14-16.结构体(15)·14-17.结构体(16)·14-18.结构体(17)·14-22.利用结构体变量构成链表(4)·14-23.利用结构体变量构成链表(5)·14-24.利用结构体变量构成链表(6)·14-25.利用结构体变量构成链表(7)·14-26.利用结构体变量构成链表(8)·14-27.利用结构体变量构成链表(9)·14-28.利用结构体变量构成链表(10)·14-29.共用体和共用体变量的引用(1)·14-30.共用体和共用体变量的引用(2)·14-31.课后习题讲解(1)·14-32.课后习题讲解(2)·14-33.课后习题讲解(3)第十五章位运算符·15-01.位运算符及其功能(1)·15-02.位运算符及其功能(2)·15-03.位运算符及其功能(3)·15-04.课后习题讲解(1)·15-05.课后习题讲解(2)·15-06.课后习题讲解(3)第十六章C语言文件的概念和文件指针·16-01.C语言文件的概念和文件指针·16-02.打开和关闭文件(1)·16-03.打开和关闭文件(2)·16-04.打开和关闭文件(3)·16-05.打开和关闭文件(4)·16-06.六组文件函数的应用(1)·16-07.六组文件函数的应用(2)·16-08.六组文件函数的应用(3)·16-09.六组文件函数的应用(4)·16-10.六组文件函数的应用(5)·16-11.六组文件函数的应用(6)·16-12.六组文件函数的应用(7)·16-13.六组文件函数的应用(8)·16-14.课后习题讲解。
《全国计算机等级考试二级教程——C语言程序设计》课后习题详细答案
《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】 EXE1.2 【参考答案】[1] .C [2] .OBJ [3] .EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章 C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】 B)2.2 【参考答案】 D)2.3 【参考答案】 B)2.4 【参考答案】 A)2.5 【参考答案】 C)2.6 【参考答案】 A)2.7 【参考答案】 B)2.8 【参考答案】 B)2.9 【参考答案】 D)2.10 【参考答案】 C)2.11 【参考答案】 B)2.12 【参考答案】 B)2.13 【参考答案】 A)二、填空题2.14 【参考答案】[1] 11 [2] 122.15 【参考答案】[1] 4.2 [2] 4.22.16 【参考答案】[1] { [2] } [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1] int [2] float [3] double2.19 【参考答案】 float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1] a*b/c [2] a/c*b [3] b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2] 1位二进制数据(0或1)2.25 【参考答案】[1] 8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1] 32767 [2] -32768 [3] 10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
全国二级C语言教材课后题目(含答案)
说明:1、原先的少部分题目有错,请用红色的部分替换掉;2、如果红色部分有文字“删除该行”,就直接删除该行;第一章C语言的基础知识第一节对C语言的初步认识习题1. 下列叙述中错误的是BA)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始执行。
B)C语言中的变量,可以先使用后定义。
C)所有的C语言语句最后都必须有一个分号D)C程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。
第二节熟悉Visual C++习题1. C语言源程序名的后缀是 BA).exe B).c C).obj D).cp 2. 下列叙述中错误的是DA)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行3. 用C语言编写的代码程序BA)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行第三节标识符习题1. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是BA)大写字母B)连接符C)数字字符D)下划线2. 以下选项中不合法的标识符是 CA)print B)FOR C)&a D)_003. 以下叙述中错误的是AA)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识4. 可在C程序中用作用户标识符的一组标识符是AA)and B)Date C)HiD)case_2007 y-m-d Dr.TomBigl5. 以下不合法的用户标识符是CA)j2_KEY B)Double C)4d D)_8_6. 以下不能定义为用户标识符的是DA)Main B)_0 C)_int D)sizeof7. 下列选项中,不能用作标识符的是DA)_1234_ B)_1_2 C)int_2_ D)2_int_8. 以下4组用户定义标识符中,全部合法的一组是AA)_main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _001第四节数制转换习题1.十进制整数360的八进制为__________,十六进制为_____________。
C语言程序设计》课后习题详细答案
《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 【参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]1位二进制数据(0或1)2.25 【参考答案】[1]8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1]32767 [2]-32768 [3]10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
C语言程序设计》课后习题详细答案
3.19【参考答案】C)
3.20【参考答案】B)
二、填空题
3.21【参考答案】
(1)-200,2500(2)i=-200,j=2500
(3) i=-200
j=2500
3.22【参考答案】[1]12[2]0[3]0
3.23【参考答案】[1]一条语句[2]分号(或;)
2.2【参考答案】D)
2.3【参考答案】B)
2.4【参考答案】A)
2.5【参考答案】C)
2.6【参考答案】A)
2.7【参考答案】B)
2.8【参考答案】B)
2.9【参考答案】D)
2.10【参考答案】C)
2.11【参考答案】B)
2.12【参考答案】B)
2.13【参考答案】A)
二、填空题
2.14【参考答案】[1]11[2]12
(5)交换的步骤如下:
①把c中的值赋给t。
②把b中的值赋给c。
③把a中的值赋给b。
④把t中的值赋给a。
经过以上步骤,已按要求进行了交换。
(6)输出a、b、c中的值。
(7)编写程序如下:
main()
{ int a, b, c, t;
printf(″Enter a, b, c :\n″);
scanf(″%d%d%d″,&a,&b,&c);
4.5【参考答案】C)
4.6【参考答案】A)
4.7【参考答案】B)
4.8【参考答案】C)
4.9【参考答案】D)4.Biblioteka 0【参考答案】A)二、填空题
4.11【参考答案】[1]非零[2]零
4.12【参考答案】<、>、<=、>=、==、![KG-*2]=
C语言程序设计》课后习题详细答案
printf(″(1) a=%d,b=%d,c=%d\n″,a,b ,c);
t=c; c=b; b=a; a=t;
printf(″(2) a=%d,b=%d,c=%d\n″,a,b,c);
}
第四章选择结构习题分析与解答
一、选择题
4.1【参考答案】A)
4.2【参考答案】A)
4.3【参考答案】A)
4.4【参考答案】D)
(6)设计输出语句。输出a、b、c和ave。
(7)把以上内容放在主函数的一对花括号中。
(8)编写程序如下:
main()
{ double a,b,c,ave;
printf(″Enter a ,b ,c :″);
scanf(″%lf%lf%lf″, &a, &b, &c );
ave=(a+b+c)/3;
2.15【参考答案】[1]4.2[2]4.2
2.16【参考答案】[1]{[2]}[3]定义[4]执行
2.17【参考答案】[1]关键字[2]用户标识符
2.18【参考答案】[1]int[2]float[3]double
2.19【参考答案】float a1=1.0, a2=1.0;
或float a1=1, a2=1;(系统将自动把1转换为1.0)
3.27【参考答案】x=127, x=127 , x=$127 ,x=$000127, x=%06d
《全国计算机等级考试二级教程C语言程序设计》
《全国计算机等级考试二级教程——C语言程序设计》课后题及参考答案第一章程序设计基本概念1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。
答案:.exe1.2 C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是__ ___。
答案:.c .obj .exe1.3 结构化程序由_____、_____、_____三种基本结构组成。
答案:顺序、选择、循环第二章 C程序设计的初步知识一、选择题2.1 以下选项中正确的整型常量是A)12. B)-20 C)1,000 D)4 5 6答案:B2.2 以下选项中正确的实型常量是A)0 B)3. 1415 C)0.329×10(2)(10的2次方)D).871答案:D2.3 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2答案:B2.4 以下选项中不合法的用户标识符是A)abc.c B)file C)Main D)PRINTF答案:A2.5 以下选项中不合法的用户标识符是A)_123 B)printf C)A$ D)Dim答案:C2.6 C语言中运算对象必需是整型的运算符是A)% B)/ C)! D)**答案:A2.7 可在C程序中用作用户标识符的一组标识符是A)void define WORDB)as_b3 _123 IfC)For -abc caseD)2c DO SIG答案:B2.8 若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7; B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b答案:B2.9 以下叙述中正确的是A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。
B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。
二级C语言教程同步习题集答案解析(1-2章)
第一章参考答案及解析一. 选择题1. 答案:A【解析】C语言作为计算机高级语言,用它编写的程序必须经过C语言的编译器编译后,转换为二进制的机器语言来运行。
2. 答案:B【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。
②算法设计:给出解决问题的步骤,即算法。
③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。
④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。
⑤程序调试:对编写好的程序进行调试,修改程序中的错误。
⑥程序文档编写与程序维护。
综上所述,B)选项是符合上述描述的,其他选项不恰当。
3. 答案:B【解析】C程序在运行过程中所有计算都以二进制方式进行,所以A)正确,B)错误。
所有C 程序先编译再链接,全都无误后才能运行。
C程序中整型变量用于存放整数,实型变量用于存放浮点数。
所以,本题答案为B)。
4. 答案:B【解析】C语言中只有函数没有过程,故选项A错误;C语言可以嵌套调用,故选项B正确;C语言函数可以单独编译成.dll文件,故选项C错误;C语言中除main函数以外,其他函数可作为单独文件形式存在,故选项D也错误。
5. 答案:D【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
所以选项A)、B)、C)说法都不完整。
6. 答案:C【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
故本题答案为C)。
7. 答案:D【解析】计算机能直接执行的只能是机器语言程序,源程序和汇编程序都是用高级语言编写的程序,不能被直接执行。
目标程序也是不能被直接执行的程序,需要通过系统提供的连接程序与库函数连接装配成可执行程序,才能被计算机执行。
所以本题答案为D)。
8. 答案:D【解析】选项D)为两条语句。
9. 答案:D【解析】一个C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为 .obj ),目标程序不可以直接运行,它要和库函数或其他目标程序连接成可执行文件(后缀名为.exe)后方可运行。
全国计算机等级考试二级教程--C语言程序设计课后习题答案
2.29 {注释符号不可嵌套使用后遗失了“ () ”全国计算机等级考试二级教程 --C 语言程序设计》课后习题答案第一章1.1EXE1.2 C OBJ EXE1.3顺序选择循环第二章一.选择题2.1 B 2.2 D 2.3 B 2.4 A 2.5 C 2.6 A 2.7 B 2.8 B 2.9 D 2.10 C 2.11 B 2.12 B 2.13 A 二. 填空题2.1411 122.15 4.2 4.22.16{ } 定义执行语句2.17关键字用户标识符2.18int float double2.19float a1=1; float a2=1;2.20存储单元2.213.52.22(a*b)/c a*b/c a/c*b2.23把常量10 赋给变量s2.24位1 或02.258 127 0111111 -128 100000002.2632767 -32768 10000000000000002.2710 8 16 三. 上机改错题2.28 #include "stdio.h"; 删除行尾的";"main(); / * main function * / 删除")"后的";",注释中的*要紧靠“ / ” ,即应为“ /* ”和“ */ ”函数开始处遗失了一个“ { ”float r ,s ; /*/*r is radius*/,/* s is area of circuilar*/*/ r = 5.0 ;s = 3.14159 * r * r ;printf("%f\n",s) 行尾遗失了“ ; 函数结束处遗失了一个“ } ”#include "stdio.h" main /* main function */ main float a,b,c,v; /*a,b,c are sides, v is volume of cube */a=2.0; b=3.0; c=4.0 行尾遗失了“ ;} 3.31{3.11 C 3.12 D 3.13 D 3.14 A 3.15 C 3.16 C 3.17 C 3.18v=a*b*c;printf("%f\n", v) 行尾遗失了“ ; ”第三章一.选择题3.1 C 3.2 C 3.3 D 3.4 C 3.5 D 3.6 B 3.7 C 3.8 D 3.9 A 3.10B 无答案3.19C 3.20 B二.填空题3.21 (1)-2002500(2)i=-200,j=2500 (3)i=-200 j=2500 3.22 12 0 03.23一条语句;3.24;3.25100,25.81,1.89234 100 25.81 1.89234 100 25.81 1.892343.26x=127,x= 127,x= 177,x= 7f,x= 1273.27x=127,x=127 ,x=$127 ,x=$000127,x=%06d3.28a=513.789215,a= 513.79,a= 513.78921500,a= 513.78921500三. 编程题和改错题3.29修改后的程序如下:main() double a,b,c,s,v;printf("input a,b,c:");scanf("%lf%lf%lf",&a,&b,&c);s =a*b;v=a*b*c;printf("a=%f,b=%f,c=%f\n", a,b,c);printf("s=%f,v=%f\n",s,v);3.30 #include main() int a=560,b=60;printf("560 minute is %d hour and %d minute.\n",a/b,a%b);#include main() int a,b;a=1500;b=350;printf("a div b is : %d\n",a/b);printf("a mod b is : %d\n",a%b);3.32 #include main(){4.19 3 2 2三. 编程题4.22double a,b,c,ave;printf ("input 3 double number : \n");scanf ("%lf%lf%lf",&a,&b,&c);printf ("%.1f\n",(a+b+c)/3);3.33 #include void main(){ int a,b,c,t;printf(" 请依次输入整数a,b,c:");scanf("%d%d%d",&a,&b,&c);printf("\n 你输入的值是: a=%d,b=%d,c=%d\n",a,b,c);t=b;b=a;a=c;c=t;printf(" 交换之后的值是:a=%d,b=%d,c=%d\n",a,b,c);第四章一.选择题4.1 A 4.2 A 4.3 A 4.4 D 4.5 C 4.6 A 4.7 B 4.8 C 4.9 D 4.10 C二.填空题4.11 非0 0 4.12 < > >= <= 同级== != 同级4.13 ! && ||4.15!4.16 a == b || a < c x > 4 || x < -44.17 14.18x <= 0 1 > 04.20 *#4.21 略#include /* 检查日期的合法性*/ int checkdate(int year , int month, int day) if(year < 1900 || year > 2005) {printf(" 输入的年份无效!\n");return 0;else if(month < 0 && month > 12){printf(" 输入的月份无效!\n");return 0;return 0; }} else else if(day <= 0 && day > 31){printf(" 输入的日期无效!\n");return 0;else switch(month) case 4: case 6: case 9: case 11: if(day > 30){printf(" 输入的日期无效!\n");return 0;break;case 2: if((year%4 == 0 && year%100 != 0) || year%400 == 0) if(day > 29) {printf(" 输入的日期无效!\n");else if(m0 == m1)if(day > 28)return 0; break; }/* end of switch(m0)*/ return 1; void main()printf (" 请输入学生的生日 :"); scanf("%d%d%d", &y0,&m0,&d0); if(checkdate(y0, m0, d0)) { printf (" 请输入当前日期 :"); scanf("%d%d%d", &y1,&m1,&d1); /* 当前日期合法性检查 */ if(!checkdate(y1, m1, d1)) { return; else if(y0 > y1) { printf (" 出生年份比当前年份晚 !\n"); return; else if(y0 == y1) { if(m0 > m1) { printf (" 出生年月比当前年月晚 !\n"); return;{ printf (" 输入的出生日期无效 !\n"); int y0, m0, d0; /* 生日 */ int y1, m1, d1; /* int years, months, days; /* 当前日期 */ 实足年龄 */} else {if(d0 > d1){printf(" 出生年月日比当前年月日晚!\n"); return;/* 计算实足年龄*/ years = y1 - y0;months = m1 - m0;days = d1 - d0;/* 修正实足年龄天数*/ if(days < 0){ months--;switch(m1) case 1 case 5 case 7 case 10: case 12: days += 30;break;case 2: case 4: case 6: case 8: case 9: case 11: days += 31;break;case 3: if((y1%4 == 0 && y1%100 != 0) ||y1%400 == 0) {days += 29;days += 28;{ break;}/* end of switch(m1) */ }/* end of if(days < 0) */ /* 修正实足年龄月数 */ if(months < 0) {months += 12;years--;}/* end of if(months < 0) */return; 4.23 #include void main() int a; printf (" 请输入一个整数 :"); scanf ("%d",&a); if (a%2==0) { printf ("%d 是偶数 \n", a); else { printf ("%d 是奇数 \n", a); 4.24 #include void main() int a,b,c,temp,max;printf(" 出生日期 : %d printf(" 当前日期 : %d 年%d 年%d 月 %d 月 %d 日 \n", y0, m0, d0); 日 \n", y1, m1, d1); printf(" 实足年龄 : %d 年%d 月%d 日 \n", years, months, days);printf (" 请输入三个整数:");scanf ("%d %d %d",&a,&b,&c);temp=(a>b)? a:b;max=(temp>c)? temp:c;printf ("\n");printf (" 你输入的数中最大的是%d.\n",max);4.25(1)不嵌套的if 语句#include void main() int x,y;printf("input x :");scanf("%d",&x);if ( x>-5 && x<0 ) {printf("y is %d\n",y=x);if ( x==0 ) printf("yis %d\n",y=x-1);if ( x>0 && x<10 ) printf("yis %d\n",y=x+1); }if ( x>=10 || x<=-5)printf("error\n");}(2)嵌套的if 语句#include void main(){int x,y;scanf("%d",&x);printf("\n");if(x < 0)printf("input x :");printf("y is %d.\n",y=x-1); {if(x > -5) printf("y is %d.\n",y=x);else printf("error!\n");}if(0 == x) printf("yis %d.\n",y=x-1);if(x > 0) if(x < 10){printf("y is %d.\n",y=x+1);else printf("error!\n");}(3)if_else 语句#include void main() int x,y; printf("input x :");scanf("%d",&x);if( x>-5 && x<0 ) printf("yis %d.\n",y=x);}else if( x==0 ) else if( x>0 &&x<10 ) printf("y is %d.\n",y=x+1); else printf("error!\n");}(4)switch 语句#include void main() int x,y; printf("input x : ");scanf("%d",&x);switch (x) case -4 case -3 case -2 case -1 printf("y is %d.\n",y=x);break;case 0: printf("y is %d.\n",y=x-1); break;case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: printf("y is %d.\n",y=x+1);break;default: printf("error!\n");第五章printf("e=%f\n",e);(2)一. 选择题5.1 D 5.2 C 5.3 B 5.4 C 5.5 C 5.6 B 5.7 D 5.8 A 5.9 D 5.10 D二.填空题5.11 5 4 65.12死循环5.13-15.14115.15d=1.0 k++ k<=n5.16x>=0 x 三. 编程题5.17 #include void main() int i;int sig = 1; int sum = 0;for(i=1; i<=101; i++,i++) sum += sig*i;sig *= -1;printf("sum=%d\n", sum);5.18 (1) #include void main() int i; double m=1.0;double e = 1.0;for(i=1; i<50; i++){ m *= i;e += 1/m;#include void main() int i=1; double m=1.0;double e = 1.0;while(1/m >= 0.0004) {m *= i;e += 1/m;i++;printf("e=%f\n",e);5.19 #include void main() int year; int col = 0;for(year=1600; year<=2000;year++) if((year%4 == 0 &&year%100 != 0) || year%400 == 0)printf("%d\t", year); col++;if(col%5 == 0) printf("\n");printf("\n");5.20 #include #define N 7void main()void main() {int i;int j;int m;int k = N/2;for(i=0; i { m = i-k;if(m < 0){m *= -1;for(j=0; j { printf(" ");for(j=0; j<2*(k-m)+1; j++) printf("*");} printf("\n");第六章一. 选择题6.1 B 6.2 D 6.3 A 6.4 A 6.5 B 6.6 D 6.7 D 6.8 B 6.9 A 6.10 A 6.11 C二. 填空题6.12-16.13 16.14ctype.h6.15 16.1610A 20B 30C 40D6.177.29 101.298AB6.18A7.29B101.2986.19 A B C (每个字符后有三个空格)三. 编程题6.20 #include #define N 80void main() {int iLoop = 0;gets(str);while(str[iLoop]) printf("%c-%d\t",str[iLoop],str[iLoop]);iLoop++;if(iLoop%3 == 0) {printf("\n");printf("\n");6.21 #include #define N 80 void main() char str[N];int num = 0;int iLoop = 0;gets(str);while(str[iLoop]) if(str[iLoop] >= '0' && str[iLoop] <= '9') {num = 10*num + (str[iLoop] - '0');iLoop++;printf("%d\n",num);6.22 #include #include #define N 80 char str[N];scanf("%d", &line); {do gets(str);num++;}while(strcmp(str , "EOF"));printf(" 您输入了%d 行字符!\n",num);6.23 #include #define N 80 void main() char str[N]; int iLoop = 0;int num = 0;gets(str);while(str[iLoop] && iLoop < N) if(str[iLoop] >= 'a' && str[iLoop] <= 'z') num++;iLoop++;}printf(" 您输入了字符中有%d 个小写字母!\n",num);6.24 #include void main() int line;int iLoop1;int iLoop2;printf(" 请输入图案的行数(不大于26):");for(iLoop1 = 0; iLoop1 < line; iLoop1++) for(iLoop2 = 0; iLoop2 < line - iLoop1; iLoop2++)printf(" ");for(iLoop2 = 0; iLoop2 < 2*iLoop1+1; iLoop2++)printf("%c",iLoop1 + 'A');printf("\n");}第七章一. 选择题7.1 C 7.2 C 7.3 B 7.4 C 7.5 A 7.6 D 7.7 A二. 填空题7.8127.99.0000007.10 47.11n=1 s7.12<=y z*x7.13 1 s*i 0 f(k)三.程序调试和编程题7.14 fun(int n) { int k,yes;for(k=2; k<=n/2; k++) if(n%k == 0) { yes = 0; break;}else yes = 1;return yes;7.15 int mymod(int a, int b) {return a%b;7.16 double fun(int n){double sum = 0;int iLoop;int sig = -1;for(iLoop=1; iLoop<=n; iLoop++) sig *= -1;sum += sig*1.0/iLoop;return sum;7.17 double fun(int n) double t = 1.0;int iLoop;long tmp;for(iLoop=2; iLoop<=n; iLoop++){tmp = iLoop*iLoop;t -= 1.0/tmp;return t;7.18 #include #include double fun(double x) {return x*x + 5*x + 4;void main() int x = 2;printf("y1=%f\n", fun(x));printf("y2=%f\n", fun(x+15));printf("y3=%f\n", fun(sin(x))); }第八章一. 选择题8.1 A 8.2 B 8.3 B 8.4 C 8.5 B 8.6 B 8.7 C 8.8 D 8.9 B 8.10 C 8.11 C 8.12 C二. 填空题8.131108.147 18.15(1)char *p=&ch; (2) p=&ch; (3)scanf("%c",p); (4)*p='A';(5)printf("%c",*p);8.16(1)s=p+3; (2)s=s-2 (3)50 (4)*(s+1) (5)2 (6)10 20 30 40 50三.编程题8.17 void fun(double x, double y, double *sum, double *div) sum = x + y; *div = x - y;return;8.18 void fun(double x, double y, double z, double *max, double *min)*max = x;*min = x;if(*max < y) max = y;if(*max < z) max = z;if(*min > y) {*min = y;if(*min > z) *min = z;return;第九章一. 选择题9.1 D 9.2 A 9.3 A 9.4 C 9.5 C 9.6 A 9.7 B 9.8 D 9.9 C 9.10 C 9.11 C 9.12 D9.13 D 9.14 A 9.15 A 9.16 A 9.17 C 9.18 C二. 填空题{ { }9.199 09.20 69.21129.22 39.2327219.24-850,2,09.25k=p k9.26(c=getchar()) c-'A'三. 编程题9.27 #include #define N 81 int main() int counter[10] = {0};int iLoop = 0;char str[N];gets(str);while(str[iLoop]) if(str[iLoop] >= '0' && str[iLoop] <= '9')counter[str[iLoop] - '0']++;iLoop++;}for(iLoop=0; iLoop < 10; iLoop++) printf("%d - %d\n", iLoop,counter[iLoop]);return 0;9.28 void fun(int array[], int arraysize, int start) int iLoop;if(start < arraysize-1) if(start <=0) start = 1;for(iLoop = start; iLoop < arraysize; iLoop++) array[iLoop-1] =array[iLoop];for(iLoop = 0; iLoop < arraysize; iLoop++) printf("No.%d = %d\n", iLoop, array[iLoop]); }9.29 int fun(int arry1[], int arry2[], int arrysize) int iLoop;int counter = 0;for(iLoop = 0; iLoop < arrysize; iLoop++) if(arry1[iLoop] % 2) {arry2[counter++] = arry1[iLoop];return counter;} } } }9.30 void fun(char array[], int arraysize) int iLoop1;int iLoop2;char temp;/* 冒泡排序*/ for(iLoop1 = 0; iLoop1 < arraysize - 1; iLoop1++)for(iLoop2 = 0; iLoop2 < arraysize - 1 - iLoop1; iLoop2++){if(array[iLoop2] < array[iLoop2 + 1]) temp = array[iLoop2]; array[iLoop2] = array[iLoop2 + 1];array[iLoop2 + 1] = temp;9.31 #include void fun(int array[], int arraysize, int inertNumber) int iLoop;int iLoop2;if(array[0] < array[arraysize-1]) {for(iLoop = 0; iLoop< arraysize; iLoop++) if(array[iLoop] > inertNumber) for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--) array[iLoop2 + 1] = array[iLoop2];array[iLoop] = inertNumber; break;if(iLoop >= arraysize) array[arraysize] = inertNumber;else{for(iLoop = 0; iLoop< arraysize; iLoop++) if(array[iLoop] < inertNumber) for(iLoop2 = arraysize - 1; iLoop2 >= iLoop; iLoop2--) array[iLoop2 + 1] = array[iLoop2];array[iLoop] = inertNumber;break;if(iLoop >= arraysize) array[arraysize] = inertNumber;int main() int iLoop;int a[20] = {7,6,5,3,2,1};for(iLoop = 0; iLoop < 6; iLoop++) {printf("%d ", a[iLoop]);printf("\n");fun(a, 6, 0);for(iLoop = 0; iLoop < 7; iLoop++) printf("%d ", a[iLoop]);printf("\n"); fun(a, 7, 4);for(iLoop = 0; iLoop < 8; iLoop++) printf("%d ", a[iLoop]);printf("\n");fun(a, 8, 8);for(iLoop = 0; iLoop < 9; iLoop++) printf("%d ", a[iLoop]); } printf("\n");return 0;9.32 int fun(int number , int array[]) int iLoop = 0;int iLoop2;int binLen;int midNumber;int div;int remain;midNumber = number;doarray[iLoop] = x; } }div = midNumber/2;remain = midNumber%2;midNumber = div;array[iLoop++] = remain;}while(midNumber);binLen = iLoop;for(iLoop2 = 0, iLoop = binLen - 1; iLoop2 < iLoop; iLoop2++, iLoop--) midNumber = array[iLoop2];array[iLoop2] = array[iLoop];array[iLoop] = midNumber;return binLen;9.33 #include #include #define N 15 void fun(int array[], int arraysize) int x;int iLoop;int iLoop2;for(iLoop = 0; iLoop < arraysize; iLoop++) iLoop2 = 0;x = rand()%20;do if(x == array[iLoop2] && iLoop > 0) x = rand()%20;iLoop2 = 0;}iLoop2++;}while(iLoop2 < iLoop);str[iLoop] = '\0'; }int main() int a[N];int iLoop;fun(a, N);for(iLoop = 0; iLoop < N; iLoop++) {printf("%d\n", a[iLoop]);return 0;第十章一. 选择题10.1 C 10.2 B 10.3 C 10.4 B 10.5 C 10.6 A 10.7 C 10.8 A 10.9 C 10.10 C二. 填空题10.11GFEDCB10.12XYZ10.13SO10.141010.15Itis10.16strlen(str)-1 j--10.17 310.18goodgood !三. 编程题10.19 char* mygets(char *str) int iLoop = 0;char ch;while((ch=getchar()) != '\n'){str[iLoop++] = ch;return str;char * myputs(char *str)int iLoop = 0;while(str[iLoop]) putchar(str[iLoop++]);putchar('\n');return str;10.20 #include #include int fun(char *str) int len;int iLoop1;int iLoop2;int result = 1;len = strlen(str);for(iLoop1 = 0, iLoop2 = len - 1; iLoop1 < iLoop2; iLoop1++, iLoop2--)if(str[iLoop1] != str[iLoop2]) result = 0;break;return result;int main(){char a[20] = "ABCDCBA";char b[20] = "ABCDEBA";printf("%d\n", fun(a));printf("%d\n", fun(b));return 0;10.21}char fun(char *str , int pos) int len;int iLoop;char ch;len = strlen(str);if(pos > len){return NULL;ch = str[pos];for(iLoop = pos; iLoop < len - 1; iLoop++) str[iLoop] = str[iLoop + 1];str[len-1] = '\0';return ch;第十一章一. 选择题11.1 D 11.2 B 11.3 A 11.4 C二. 填空题11.5IJKLEFGHABCD11.6711.7811.8*(s+j) i+1 i11.91711.10(*fun)() (*fun)(a+i*h)/h mypoly三. 编程题11.11 #include #include #define N 81 int main(int argc, char **argv) {char sig;int dig;int pos;char outStr[N] = {'\0'};char str[N] = {'\0'};}if(argc < 2) sig = '-';dig = 10;else{sig = argv[1][0];dig = argv[1][1] - '0';printf(" 请输入一个字符串:");gets(str);if(sig == '-') pos = strlen(str) - dig; if(pos <= 0) pos = 0; strcpy(outStr , str + pos);else if(sig == '+') strcpy(outStr , str);pos = strlen(outStr); if(pos > dig) pos = dig;outStr[pos] = '\0';printf(" 处理后的字串为:");printf("%s\n", outStr);return 0;11.12 #include #includefun(a, bin); }void movebin(char *bin) int len;int iLoop;len = strlen(bin);for(iLoop = len; iLoop > 0; iLoop--) bin[iLoop] = bin[iLoop - 1]; } return;void fun(int n, char *bin) int pos;pos = strlen(bin);if(n == 0) return;if(n == 1) movebin(bin);bin[0] = '1';return;movebin(bin);bin[0] = (n%2) + '0'; n /= 2;fun(n, bin);return;int main() int a = 4;char bin[50] = {""};printf("%s\n", bin);return 0;11.13{#include long fun(int n) if(n == 1) return n;} else return fun(n-1) + n;int main() int num;int sum;printf(" 请输入一个自然数:");scanf("%d", &num);sum = fun(num);printf(" 结果是:%d\n", sum);return 0;11.13 #include int fun(int n) if(n == 0 || n == 1) return 1;else{return fun(n-1) + fun(n-2);int num;int result;printf(" 请输入一个自然数:");scanf("%d", &num);result = fun(num);printf(" 斐波拉契级数为:%d\n", result);return 0;第十二章一. 选择题12.1 B 12.2 B 12.3 A 12.4 C 12.5 D 12.6 B 12.7 A 12.8 A二. 填空题12.92,5,1,2,3,-212.102468int main()第十三章一. 选择题13.1 A 13.2 C 13.3 B 13.4 C 13.5 D 13.6 D 13.7 D二. 填空题13.8ar=9 ar=9 ar=1113.9int* s *b三.编程题13.10 #define MYALPHA(C) ((C>='A' && C<='Z') || (C>='a' &&C<='z')) ? 1 : 013.11 #define SWAP(t,x,y) {t tmp; tmp=x; x=y; y=tmp;}13.12 #include #include int main(){int *p;int iLoop;int iLoop2;int tmp;p = (int *)malloc(sizeof(int)*3);scanf("%d%d%d", p,p+1,p+2);for(iLoop = 0; iLoop < 2; iLoop++) for(iLoop2 = 0; iLoop2 < 2 - iLoop; iLoop2++) if(*(p + iLoop2) > *(p + iLoop2 + 1)) {tmp = *(p + iLoop2);*(p + iLoop2) = *(p + iLoop2 + 1);*(p + iLoop2 + 1) = tmp;printf("%d %d %d\n", *p, *(p+1), *(p+2));free(p); p = NULL;return 0;第十四章一. 选择题14.1 D 14.2 D 14.3 D 14.4 A 14.5 C 14.6 C 14.7 C 14.8 B二. 填空题14.9struct link *next14.10p->next m>p->data14.11(struct list*) struct list struct list* struct list return h三. 编程题14.12 #include #define N 3 struct stud{char num[5], name[10];int s[4];double ave;};void readrec(struct stud array[], int size)int iLoop;for(iLoop=0; iLoop { scanf("%s%s%d%d%d%d", array[iLoop].num,array[iLoop].name, &array[iLoop].s[0], &array[iLoop].s[1],&array[iLoop].s[2], &array[iLoop].s[3]);array[iLoop].ave = (array[iLoop].s[0] + array[iLoop].s[1] +array[iLoop].s[2] + array[iLoop].s[3])/4.0; }return;void writerec(struct stud array[], int size) int iLoop;for(iLoop=0; iLoop{ printf("%s\t%s\t%d\t%d\t%d\t%d\t%f\n",array[iLoop].num,array[iLoop].name,array[iLoop].s[0],array[iLoop].s[1],array[iLoop].s[2],array[iLoop].s[3], array[iLoop].ave);return;int main(){struct stud stu[N];readrec(stu, N);writerec(stu, N);return 0;14.13 #include #include #define N 100 struct node struct node* next; int data;}}};int seekMaxValue(struct node *pNode) int max;struct node* pMove;pMove = pNode; max = pMove->data;pMove = pMove->next;while(pMove) if(max < pMove->data) max = pMove->data; pMove = pMove->next;return max;struct node* seekMaxValueAddress(struct node *pNode) int max; struct node* maxAddress;struct node* pMove;pMove = pNode; max = pMove->data;maxAddress = pMove;pMove = pMove->next;while(pMove) if(max < pMove->data) max = pMove->data; maxAddress = pMove;}pMove = pMove->next;return maxAddress;int main()struct node* head;struct node* pNode;int iLoop;head = (struct node*)malloc(sizeof(struct node));pNode = head;pNode->next = NULL; for(iLoop=0; iLoop { pNode->next = (struct node*)malloc(sizeof(struct node));pNode = pNode->next;pNode->next = NULL;pNode->data = iLoop;printf("%d\n", seekMaxValue(head->next));printf("%d\n", seekMaxValueAddress(head->next));return 0;第十五章一. 选择题15.1 D 15.2 A 15.3 B 15.4 A二. 填空题15.51111000015.6ay15.7a|0xffff15.8x|0xff0015.9a=(012500>>2)15.10ch|0x20第十六章一. 选择题16.1 B 16.2 C二. 填空题16.3 3 !feof(f1) f2 fclose(f1) fclose(f2)16.4fopen(fname,"w") ch16.5"r" !feof(fp) fgetc(fp)16.6CCCCBBBBAAAA三. 编程题16.7 #include #define N 10 #define LEN 81 int main(){char *str[N] = {"AAAAAAAAA", "BBBBBBBBB", "CCCCCCCCC","DDDDDDDDD", "EEEEEEEEE", "FFFFFFFFF", "GGGGGGGGG","HHHHHHHHH", "IIIIIIIII", "JJJJJJJJJ"}; char str2[N][LEN];FILE *fp;int iLoop;fp = fopen("str .txt", "w");if(fp == NULL){printf(" 创建文件失败!\n");return 1;} else for(iLoop = 0; iLoop < N; iLoop++) fputs(str[iLoop], fp);fputs("\n",fp);fclose(fp);fp = fopen("str .txt", "r");if(fp == NULL){printf(" 打开文件失败!\n");return 1;else for(iLoop = 0; iLoop < N; iLoop++) fgets(str2[iLoop], LEN - 1, fp);fclose(fp);for(iLoop = 0; iLoop < N; iLoop++) printf("%s", str2[iLoop]);return 0;16.8 #include #define N 10 int main() float num;int iLoop;FILE *fp;fp = fopen("num.bin", "wb+");if(fp == NULL){}printf(" 创建文件失败!\n");return 1;/* 从键盘读入10 个数并写文件*/ printf(" 请输入%d 个数:", N);for(iLoop = 0; iLoop < N; iLoop++) scanf("%f", &num);fwrite(&num, sizeof(num), 1, fp); }/* 文件指针回到开始处*/ rewind(fp);/* 从文件读出10 个数并显示*/ for(iLoop = 0; iLoop < N; iLoop++) {fread(&num, sizeof(num), 1, fp);printf("%f\n", num);}/* 移文件指针到第四个数开始处*/ fseek(fp, 3L*sizeof(num),SEEK_SET);/* 读入一个新数据*/ printf(" 请输入一个新数据:");scanf("%f", &num); fwrite(&num, sizeof(num), 1, fp); /* 文件指针回到开始处*/ rewind(fp);/* 从文件读出10 个数并显示*/ for(iLoop = 0; iLoop < N; iLoop++)fread(&num, sizeof(num), 1, fp);printf("%f\n", num);}/* 关闭文件*/ fclose(fp);return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在C语言中,按整型常量的表示范围可以分为四种。
短整型 基本整型 长整型 无符号整型
2.3 整型数据
2.2.2 整型变量
整型变量是用来存放整型常量的工具。可以把整型变量抽象为一个盒子。 由于整型常量有短整型、基本整型、长整型和无符号整型四种类型,既然整型变量 是用来存放整型数据的,那整型变量也要分为四种对应类型的整型变量,以方便存 放不同类型的整型常量。在此我们只介绍基本整型变量。也叫整型变量。 在C语言中,整型变量我们需要用一个符号来表示它,即整型变量名。 例如:int k; /*定义k为整型变量,k为变量名*/ 关键字int是用来说明变量k的类型为整型。 又如:int i,j,k; /*定义i、j、k为整型变量*/ 相同 int i; int j; int k; 注意 在同一行上使用关键字定义多个变量时,变量之间用逗号隔开。 所有定义语句后必须以一个“;”号结束,表示它是一条语句。
函 数 体
注意
习惯上,符号常量名用大写,变量名用小写,以示区别
2.2 标识符、常量和变量
2.2.4 变量
1.所谓变量是指在程序运行过程中可以改变的量。
如下程序: #include <stdio.h> main() {double a,b; a=1.5; b=2.5; printf(“%f%f\n”,a,b); a=a+1; b=b+1; printf(“%f%f\n”,a,b); }
2.3 整型数据
2.2.2 整型变量
在前面已经讲过,声明变量就是在计算机内存中申请某个内存单元。 在VC6.0环境中,用关键字int声明变量时,计算机将会为每个变量开辟4字节(32 个二进制位)的内存单元。 地址 内存空 间 2000 例如,当前的某段内存空间如右图所示。有如下程序段。 2001 int i; 2002 int j; 2003 i=100; 2004 j=200; i C语言规定,可以在定义变量的同时给变量赋初值,该过程 称为变量的初始化。例如: #include <stdio.h> main() {int i=1,j=0,k=2;/*在声明变量的同时,为三个变量赋值*/ : : }
123LU、345lu、0LU、123456LU
2.3 整型数据
2.3.4 整数在内存中的存储形式
计算机中,内存储器的最小的存储单位称为“位(bit)”,每一位中只能存放0或1,因 此称为二进制位。8个二进制位组成一个“字节”,并给每一个字节分配一个地址。 数据在内存中是以二进制形式进行存放的。 一、正整数 正整数在内存中是以“原码”形式存放的。如果定义了一个short类型变量i: short i; /*声明i为短整型变量*/ i=5; /*给i赋以整数5*/ 十进制数5的二进制形式为101,在VC6.0中,由于短整型变量在内存中占2个字节, i i
unsigned long unsigned 4 0~4294967295 由于整型数据在C语言中分为上述几类,比如123。它是属于哪一类型的? int [int] long long 123L、345l、0L、123456L 123U、345u、0U、123456U unsigned unsigned long
结构化程序设计的 三种基本结构
考点总结:由以上3种基本结构组成的算法 可以完成任何复杂的问题.
习题
1.1 在VC6.0环境中用RUN命令运行一个C程序时,这时所运行的程序的后 .exe 缀是_________。
.c 1.2 C语言源程序文件名的后缀是_________;经过编译后,生成文件的 .obj .exe 后缀是_________;经过连接后,生成文件的后缀是_________。 顺序结构 选择结构 循环结构 1.3 结构化程序由_________、 _________、 _________三种基本结构 组成。
a
b
a b
1.5000002.500000 2.5000003.500000 内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。 3.C语言规定,程序中所有变量都必须先定义后使用。如程序例2.1、例2.2。
2.3 整型数据
2.2 标识符、常量和变量
2.2.1 标识符
在C语言中,有许多东西都需要命名,如变量名、函数名、数组名等,在 命 名的时候都必须遵守一定的规则,按此规则命名的符号称为标识符。 在C语言中,合法的标识符由字母、数字和下划线组成 。
遵守以下规则命名:
必须以字母(大小写皆可)或下划线开头。 随后可跟若干个(包括0个)字母、数字、下划线。 标识符的长度各个系统不同,最好不要超过8个字符。 如:area PI _ini a_array s1234 P101p (合法) 456P cade-y w.w a&b (不合法)
1.1 程序和程序设计
高级语言
C语言源程序
机器语言
.C
二进制机器指令(目标程序) .OBJ
C语言编译程序 C语言连接程序 考点
算法的基本特征
可执行文件
.EXE
①有穷性、②确定性、③可行性 ④有零个或多个输入 ⑤有一个或多个输出
顺序结构 选择结构 循环结构
考点总结:用C程序实现的算法可以 没有输入,但必须要有输出.
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常 量。但是这个符号名必须在程序中用(#define)进行特别的“ 指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/ #define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/ main() /*主函数,程序的入口*/ {double r,s,l; /*声明部分,定义了3实型个变量*/ r r=5.0; /*给变量r赋值*/ s=PI*r*r; /*计算圆的面积*/ s l=2*PI*r; /*计算圆的周长*/ printf(“s=%f,l=%f\n”,s,l); /*分别圆的面积和周长*/ l } S=78.539750,l=31.415900
用户标识符:由用户根据需要定义的标识符称为用户标识符。一般用来给 变量、函数、数组或文件等命名。 如例2.1中的a,b,area三个变量
2.2 标识符、常量和变量
2.2.2 常量
在程序运行过程中,其值不能被改变的量,称为常量。
整型常量: 12、-1、0 单精度型: 3.14159、-2.71828、0.0 常 量 实型常量(符点型) 双精度型: 12.5678、-12.5678 字符常量: „A‟、‘d‟ 字符串常量: ”NCRE”、“Beijing” 由上述可见,常量的类型从字面形式上就可以区分开来,我们称此常量为字 面常量。
2005 2006 2007
j
2008 2009 2010 2011 2012
2.3 整型数据
2.3.3 整型数据的分类
不同的计算机系统对整型数所占用的字节数和数值范围有不同规定,下表列出了 在VC6.0中定义的整型数所占用的字节数和数值范围。 类型名称 [signed] int [signed] short [int] [signed] long [int] unsigned [int] unsigned short [int] 通常使用简写 int short long unsigned unsigned short 字节数 4 2 4 4 2 数值范围 -2147483648~ 2147483647 -32768~32767 -2147483648~ 2147483647 0~4294967295 0~65535
全国计算机等级考试
(NCRE)
二级教程—C语言程序设计
目录
第1章 程序设计基本概念 第2章 C程序设计的初步知识 第3章 顺序结构 第4章 选择结构 第5章 循环结构 第6章 字符型数据 第7章 函数 第8章 地址和指针 第9章 数组 第10章 字符串 第11章 对函数的进一步讨论 第12章 C语言中用户标识符 的作用域和存储类 第13章 编译预处理和动态存 储分配 第14章 结构体、共用体和用 户定义类型 第15章 位运算 第16章 文件 第17章 上机指导
2.3.1 整型常量
在C语言中,按整型常量的表示形式可以有三种形式。
十进制常量: 由0~9十个数字组成,如32767、-32768、0等。 整 型 常 八进制常量: 由0~7八个数字组成,如010、011、016等。 注意,最高位必须用0作引导符,与十进制和十六进制区分。 量 如:018,为不合法的八进制常量。 十六进制常量: 由0~9十个数字和a~f(A~F)六个字母组成,如0x10、0Xde、0xf 注意,最高位必须用0x( 0X)作引导符,与十进制和八进制区分。 如:oxff、0X12H,都为不合法的十六进制常量。 注意 在C语言中,八进制数和十六进制数只能是正整数。 如:-077、-0X11、01.0等,(不合法) 三种进制之间的转换
0 0 0 0 0 0代表正整数,1代表负整数
二、负整数 负整数在内存中是以“补码”形式存放的。
2.4 实型数据
2.4.1 实型常量
在C语言中,实型常量的表示形式有两种。 小数形式:由数字和小数点组成,如0.123、.123、123.、0.0 实 型 常 量 指数形式: 如:0.23026x101 2.3026x100 23.026x10-1 0.23026E1 2.3026e0 23.026e-1
第2章 C程序设计的初步知识
2.1 2.2 2.3 2.4 2.5 2.6 2.7
简单C语言程序的构成和格式 标识符、常量和变量 整型数据 实型数据 算术表达式 赋值表达式 自加、自减运算符和逗号运算符