C语言复习提纲答案
- 格式:doc
- 大小:165.00 KB
- 文档页数:29
C语言程序设计复习资料一、填空题1、C语言程序是函数构成的,其中有且只有1个主函数,程序的的执行总是从该函数开始。
2、用条件运算符写出求两个整数x,y中大数的表达式z =x>y?x:y。
3、定义一个符号常量PI,其值为3.1415926,格式是#define PI 3.1415926。
4、设整型变量X=5,Y=6,Z=7,执行X%=Y+Z后,X = 5。
5、执行语句“for(j=15 ;j >=5 ;j-- );”后,变量j的值为4。
6、在一个函数中有定义int a=60,*p=&a ;执行*p=*p +15;后,a的值为。
7、结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。
8、定义一个长度为100的整形一维数组a ,且前5个元素的初值为3,6,9,12,15,定义的格式为:int a[100]={3,6,9,12,15}。
9、写出表达式25>15&&65<25||88>75的值1。
10、函数的传值调用中,实际参数把它的值传递给形式参数。
11、表达式(int)(20+2.5*3+6+5.3) 的值是38 。
12、若有以下定义:char a;int b;float c;double d;则表达式a*b+d-c的值的类型是。
13、写出表达式66>65&&65<85||85>95的值1。
14、在C语言中,允许在程序中用typedef来定义新的类型名代替已有的类型名,例如typedef int INTEGER;。
15、C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑、编译、连接、执行;16、C程序是由函数组成的,一般情况下函数体由说明部分和执行部分组成,其中说明部分的作用是;17、表达式m = a > b ? a+b : b+5 当a=15,b=11时,m的值为:26;18、函数的传值调用中,实际参数把它的值传递给形式参数;19、写出表达式1<4&&7<5的值;20、在C语言中,字符串是用双引号引起来的一串字符。
C语言概念复习-参考答案C语言概念复习-参考答案(1-8章)第一章1.怎么学习C语言?对程序设计语言有所了解,不断的编程实践,领会和掌握其基本思想和方法。
模仿教材中程序,改写和体会,循序渐进,到独立编写复杂问题。
2. Visual C++整型(int)占用几个字节,取值范围是多少?4字节,-2147483648-21474836473.程序设计语言必须具有什么样的能力?数据表达和处理4.在程序设计语言中,一般都事先定义几种基本数据类型,供程序员直接使用,这些基本数据类型在程序中的具体对象主要是哪两种形式?并解释这两种形式。
常量和变量常量值在程序中识不变的。
变量可对它做一些相关的操作。
5.为了使程序员能充分的表的各种复杂的数据,程序设计语言还提供了构造的具体数据类型的手段,有哪些?数组、结构、文件、指针等。
6.按照结构化程序设计的观点,任何程序都可以将模块通过哪3种基本的控制结构进行组合的实现?顺序控制结构、分支控制结构、循环控制结构。
7. C语言的语法中标识符是由什么组成,其中第一个字符必须是什么?C语言的语法中标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。
8.除了标识符意外C语言还有哪些主要的“单词”,C语言一共有多少个关键字?还有保留字、用户自定义标识符、常量、运算符、分隔符。
C语言一共有32个关键字。
9.什么是复合语句?用一对大括号{}将若干个语句顺序组合在一起就形成了一个复合语句。
10. C语言本身有没有提供相关的输入输出语句?它是怎么实现输入输出的?C语言本身没有提供相关的输入输出语句。
它通过调用系统库函数中的有关函数实现数据的输入输出。
11.对C语言而言,编译器对程序编译过程怎样的?编译器首先要对源程序进行词法分析,然后进行语法与语义分析,最后生成可执行的代码。
如果程序中由语法错误,编译器会直接指出程序中的错误。
12.对于程序的逻辑错误我们可以通过什么实现发现问题?主要的方法是什么?通过程序的调试。
《程序设计与C语言》期末复习提纲第一部分各章复习要求考试题型包括:选择题、填空题、程序填充题、写出程序的运行结果、指出程序的功能、改错题、编程题。
满分100分。
考试内容为课本中所有讲过的内容,下面给出本课程各部分的具体复习要求,供同学们进行期末复习时参考。
书中的例题、实验做过的程序一定要弄懂。
以下章节带*的为重点章节(内容),一定要重点复习。
一C语言概述本章重点掌握的内容1.函数的定义格式和作用,主函数的特殊地位和作用。
每个函数包含函数头和函数体两个部分,函数体就是由一对花括号括起来的复合语句,函数头就是函数体之前的部分。
2.对于C源程序文件名、编译后生成的目标文件名和连接后生成的可执行文件名,其系统给定的扩展名分别是什么?对于本章的其余内容均作一般了解。
二基本数据类型、运算符和表达式本章重点掌握的内容1.C基本数据类型的分类。
2.各种整数类型的关键字表示,存储空间的大小和值域范围。
3.整型变量的定义和初始化,十进制整型常量的表示。
4. 字符类型的关键字表示,存储空间的大小和值域范围。
5. 字符型变量的定义和初始化,字符型与整型的关系。
字符型变量的存储形式。
6. 各种实数类型的关键字表示,存储空间的大小和有效位数。
8. 实型变量的定义和初始化。
*9.算术运算符的表示,特别是自加++和自减- - 运算符的使用。
10.关系运算符的定义和关系表达式的计算。
11.逻辑运算符的定义与逻辑表达式的计算,系统给定的逻辑类型的定义,求任意表达式对应逻辑值的方法。
12.条件操作符和逗号操作符的含义及运算过程。
一般掌握的内容1.整型常量的八进制和十六进制表示。
2. 符号常量的初始化。
3. 复合赋值操作符的含义与使用。
4.不同数据类型之间的强制转换。
对于本章的其余内容均作一般了解。
三数据的输入输出本章重点掌握的内容1.字符型数据的输入输出格式。
getchar函数、putchar函数的使用。
2.格式化输入输出函数scanf()、printf() 的使用。
第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5.下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下符合C语言语法的赋值表达式是()。
A.a=9+b+c=d+9 B.a=(9+b, c=d+9)C.a=9+b, b++, c+9 D.a=9+b++=c+913.表达式13/3*sqrt(16.0)/8的数据类型是()。
A.int B.float C.double D.不确定14.假设所有变量均为整型,则表达式(x=2, y=5, y++, x+y)的值是()。
单项选择题1.C语言程序经过以下哪个步骤操作可以得到同名的.exe文件( C0 )。
A.编辑 B.编译 C.连接 D.执行2.C语言程序的语句结束符为( B )。
A.逗号 B.分号 C.冒号 D.引号3.根据C语言的标识符的命名规则,以下 ( C )是不合法的变量名。
A. YOU B. bov C.5Name D._CHANG_TO4.假设num为int变量,则以下赋值中不正确的是( A )。
A.num=156000 B.num=-3567 C.num=4000 D.num=327675.执行语句int a, b; b=6; a=++b; 后, a、b的值分别是 (D)。
A. 6,6 B.6,7 C. 7,6 D. 7,76.若有说明:int aa[3][4],则下面正确的引用是(C)。
A.aa[2][4] B.aa[1,3] C.aa[2][0] D.aa(2) (3)7.下面程序的执行结果是在屏幕输出( D )。
main(){ int a,b;a=5;b=6;printf(“%d”,a>b?a-b:a+b);}A. 0 B. 1 C.-1 D. 118.下面运算符,不属于双目运算符的是(A)A. ~ B. + C. % D. >=9.下列运算符中优先级最高的是(D)A.< B.+ C.&& D.*10.判断字符型变量ch是否为小写字母的正确表达式是(C)A.’a’<=ch<=’ z’ B.(ch>=’ a’)&(ch<=’z’)C.(ch>=’a’)&&(ch<=’z’) D.(‘a’<=ch)and(‘z’>=ch)11.表达式5>4+4<5*1值是 (B)A. 0 B. 1 C. 2 D.都不对12.参与运算的运算量都必须是整数的运算符是(C)A. + B. / C. % D. >>13.C 语言程序中可以对程序进行注释,注释部分必须用符号( C )括起来。
☐第5章数据类型与输入输出1.熟悉常用的关键字,掌握标识符的命名规则;2.理解各种基本的数据类型, 包括描述符号、表述范围及存储方式;3.理解变量与常量的特点,掌握各种类型变量与常量的使用方法;4.掌握各种类型数据的基本输入输出方式,了解格式IO操作;5.各种编程错误,掌握基本调试方法;☐第6章运算符与表达式1.算术运算符及其表达式运算;(/ 整除,除零;%运算数为整数除零)2.赋值运算符及复合赋值运算符,理解左值表达式;3.自增和自减运算符,理解前置与后置的区别;4.关系运算符、逻辑运算符及其表达式,注意短路问题;5.其他运算符:逗号、条件运算符、sizeof;6.数据类型的转换和混合运算规则☐第7章选择结构1.掌握if语句实现单选结构,注意逻辑条件的构造;2.掌握if-else语句实现双选结构,if-else嵌套的表示与配对;3.掌握if-else if-else语句实现多选结构4.掌握利用switch语句实现多分支选择结构,注意break语句5.各种选择结构的嵌套☐第8章循环结构1.理解两种循环结构,循环结构三要素:循环初始条件/ 循环体/循环条件;2.掌握for、while与do..while语句,理解其区别与共性3.掌握循环控制的方法,注意循环条件的设计;4.理解循环嵌套,掌握双重、三重循环算法5.掌握break和continue转向语句跳出循环的方法;6.了解结构化程序的特点,熟练应用控制结构设计程序。
☐第9章数组1.理解一维数组存储特点,掌握数组定义、初始化和元素访问的方法;区别数组定义与元素的引用,避免数组越界访问(下标范围[0,n-1] );2. 理解二维数组,一维数组的一维数组,行优先存储,掌握二维数组定义、初始化和元素访问的方法(二重循环遍历);3. 掌握字符数组的定义与初始化,理解字符串的特点与存储方式(‘\0’);掌握字符数组的整体与局部访问,理解其和数值数组和区别6.掌握向函数传递数组的方法,理解其实质(传递指针);7. 掌握数组的基本算法,如排序(冒泡/选择/插入排序)与查找(顺序与二分查找)算法。
C语言程序设计复习题及参考答案━━━━━━━━━━━━━━━━━━一、程序设计共6题(共计120.0分)━━━━━━━━━━━━━━━━━━第1题(20.0分)/*----------------------------------------------------------------------题目:函数fun的功能是:用递归法计算斐波拉契数列中第n项的值。
从第1项起,斐波拉契数列为: 1、1、 2、3、5、8、13、21....例如,若给n输入7,则该项的斐波拉契数值为13.------------------------------------------------------------------------注意:请勿改动程序中的其他内容。
----------------------------------------------------------------------*/#include <stdio.h>long fun(int g){switch(g)/********** Program **********//********** END **********/}void main(){long fib;int n;printf("【Input n:】 ");scanf("%d",&n);fib=fun(n);printf("【fib =】 %d\n",fib);}答案:{case 0: return 0;case 1:case 2 : return 1 ;}return( fun(g-1)+fun(g-2) );第2题(20.0分)/*----------------------------------------------------------------------题目:函数fun的功能是:从3个红球、5个白球、6个黑球中任意取出8个作为一组,进行输出。
c语言课后复习题答案1. 请解释C语言中变量的作用域和生命周期。
在C语言中,变量的作用域指的是变量可以被访问的代码区域。
局部变量的作用域仅限于定义它的函数或代码块内部,而全局变量的作用域是整个程序。
变量的生命周期是指变量从被创建到被销毁的时间。
局部变量的生命周期从定义它的地方开始,到包含它的函数或代码块结束时结束。
全局变量的生命周期从程序开始执行时创建,到程序结束时销毁。
2. 描述C语言中指针和数组的关系。
在C语言中,指针是一种特殊的变量,它存储了另一个变量的内存地址。
数组名可以被看作是一个常量指针,它指向数组的第一个元素的地址。
通过指针运算,可以访问数组的任意元素。
例如,如果有一个数组`int arr[5];`,那么`arr`指向数组的第一个元素,`arr+1`指向第二个元素,以此类推。
3. 说明C语言中结构体和联合体的区别。
结构体(struct)和联合体(union)都是C语言中用于创建复杂数据类型的复合数据类型。
结构体可以包含不同类型的数据成员,并且每个成员都有自己的内存空间。
联合体则是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型,但是任何时候只能存储其中一个成员的值。
结构体和联合体的主要区别在于内存的使用方式和数据的存储方式。
4. 列举C语言中常用的输入输出函数。
C语言中常用的输入输出函数包括`printf()`和`scanf()`用于标准输入输出,`getchar()`和`putchar()`用于单个字符的输入输出,以及`fgets()`和`fputs()`用于字符串的输入输出。
此外,还有`fopen()`、`fclose()`、`fread()`和`fwrite()`等用于文件操作的函数。
5. 解释C语言中的递归函数。
递归函数是一种调用自身的函数。
在C语言中,递归函数通常用于解决可以分解为相似子问题的问题,如计算阶乘、进行排序等。
递归函数需要有一个明确的结束条件,以避免无限递归。
C语言复习提纲:第一章 C语言程序设计概述一、Visual C++6.0开发环境1、了解Visual C++6.0的安装过程;2、了解Visual C++6.0的工作界面,菜单和工具栏的使用;▲二、掌握C语言程序运行的过程1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。
在存盘时,C源文件的扩展名为 .c2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。
3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。
4、执行:执行生成的可执行代码,并输出结果。
5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
▲三、结构化程序设计的基本概念1、概念以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。
2、基本思想结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。
3、三种基本结构⑴顺序结构⑵选择结构⑶循环结构4、三种基本结构的特点⑴只有一个入口⑵只有一个出口⑶每一个基本结构中的每一部分都有机会执行到⑷结构内不存在“死循环”5、设计原则⑴自顶向下⑶逐步细化⑶模块化设计⑷结构化编码▲四、C程序的基本组成:C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。
c语言复习试题及答案1. 什么是C语言?C语言是一种通用的、过程式的编程语言,广泛用于系统软件与应用软件的开发。
2. C语言中的关键字有哪些?C语言的关键字包括:int, char, float, double, void, struct, union, enum, return, break, continue, if, else, switch, case, default, while, do, for, goto, sizeof, typedef。
3. 请写出C语言中声明一个整型变量的语句。
int variable_name;4. 如何在C语言中定义一个函数?在C语言中,定义一个函数需要指定返回类型、函数名和参数列表。
例如:int add(int a, int b) {return a + b;}5. 请解释C语言中的数组。
数组是相同数据类型元素的集合,存储在连续的内存位置。
声明数组的语法如下:数据类型数组名[数组大小];6. C语言中如何实现字符串的输入和输出?使用`scanf`函数输入字符串,使用`printf`函数输出字符串。
7. C语言中如何进行文件操作?使用`fopen`函数打开文件,`fprintf`函数写入文件,`fscanf`函数读取文件,`fclose`函数关闭文件。
8. 请写出一个C语言程序,实现计算两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("Enter two numbers: ");scanf("%d %d", &a, &b);sum = a + b;printf("Sum of the numbers is: %d", sum);return 0;}9. 什么是指针?指针是一个变量,其值为另一个变量的地址。
作为复习的参考,打*不纳入本次期末考试范围。
课程单元:1、运算符、表达式、输入输出语句能力要求:a) 能够正确定义、输入、输出并使用常用数据类型:整型、实型、字符型b) 掌握五种基本算术运算符的使用:+、-、*、/、%,知道优先级与结合性c) 掌握逻辑运算符和关系运算符、条件运算符的使用d) 能够正确使用printf() 和scanf() 进行各种数据正确格式的输入输出e) 编写简单顺序结构程序基础能力落实:1) 输入一个字母, 输出其对应的ASCII 码.main(){char c;scanf("%c",&c);printf("%d\n",c);}2) 输入一个小写字母, 输出其对应的大写字母.main(){char c;scanf("%c",&c);c=c-32;printf("%c\n",c);}3 )从键盘输入一个四位数,编程计算该四位数的各位和并输出。
main(){int i,a,b,c,d;scanf("%d",&i);a=i/1000;b=i%1000/100;c=i%100/10;d=i%10;printf("%d\n",a+b+c+d);}4 )教材p.36 页习题,2(关于数据类型、运算符、表达式的练习题,其他类似题目均可)进阶能力落实:1 )输入一个十进制数,输出其对应的八进制数据。
main(){int i;scanf("%d",&i);printf("%o\n",i);}2 )输入一个圆的半径,分别求圆的周长,面积。
#define PI 3.14main(){float r,s,c;scanf("%f",&r);c=2*PI*r;s=PI*r*r;printf("c=%.2f,s=%.2f\n",c,s);}课程单元:2、选择结构程序设计能力要求:a) 能够使用if 语句编写条件选择程序b) 能够使用嵌套if 语句和switch 语句编写多分支选择结构程序基础能力落实:1 )判断一个数的正、负,输出相应信息#include <stdio.h>main(){int n;printf("输入整数n,n不等于0:\n");scanf("%d",&n);if (n<0)printf("n为负数\n");elseprintf("n为正数\n");}2 )判断一个数的奇偶,输出相应信息#include <stdio.h>main(){int n;printf("输入整数n:\n");scanf("%d",&n);if (n%2==0)printf("n为偶数\n");elseprintf("n为奇数\n");}3 )在主函数中输入整型数据n, 判断该数是否能被 3 整除,如果能被 3 整除,输出“yes ”, 否则输出“no ”#include <stdio.h>main(){int n;printf("输入整数n:\n");scanf("%d",&n);if (n%3==0)printf("yes\n");elseprintf("no\n");}4 )写一程序,输入x,求y的值,main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if (x>=1&&x<10)y=2*x-1;elsey=3*x-11;printf("y=%d\n",y);}5 )从键盘输入三个数,按照从小到大(或从大到小)的顺序输出从小到大输出#include <stdio.h>main(){int a,b,c,t;printf("请输入三个整数:\n");scanf("%d,%d,%d",&a,&b,&c);if (a>b){t=a;a=b;b=t;}if (a>c){t=a;a=c;c=t;}if (b>c){t=b;b=c;c=t;}printf("从小到大排序\n%d %d %d\n",a,b,c);}6 )判断一个年份是否闰年#include <stdio.h>main(){int y,leap;printf("输入年份y:");scanf("%d",&y);if (y%4!=0)leap=0;else if(y%100!=0)leap=1;else if(y%400!=0)leap=0;elseleap=1;if(leap==1)printf("%d年是闰年\n",y);elseprintf("%d年不是闰年\n",y);}或者#include <stdio.h>main(){int y,leap;printf("输入年份y:");scanf("%d",&y);if((year%4==0&&year%100!=0)||(year%400==0))printf("%d年是闰年\n",y);elseprintf("%d年不是闰年\n",y);}7 )对一个百分制的成绩给出相应的等级(如90 分以上A,80 分以上B 等)#include <stdio.h>main(){float grade;int i;printf("输入百分制成绩(0~100):");scanf("%f",&grade);if (grade<0||grade>100)printf("error\n");else{i=grade/10;switch(i){case 10:case 9:printf("A\n");break;case 8:printf("B\n");break;case 7:printf("C\n");break;case 6:printf("D\n");break;case 5:case 4:case 3:case 2:case 1:case 0:printf("F\n");break;}}}8 )从键盘输入两个整数,输出大数(用条件表达式求解)main(){int x,y,max;printf("请输入2个整数,逗号隔开");scanf("%d,%d",&x,&y);max=x>y?x:y;printf("max is %d\n",max);}9 )阅读程序的训练,类似题目均可,如:以下程序的运行结果是。
main(){ int m=5;if(m++>5)printf(“%d\n”,m);else;printf(“%d\n”,m--);}A) 4 B) 5 C) 6 D) 7 进阶能力落实:1 )从键盘上输入一个数,判断其是否为水仙花数。
#include<stdio.h>main(){int a,b,c,d,e,n;scanf("%d",&n);a=n/100;b=n/10%10;c=n%10;if(n==a*a*a+b*b*b+c*c*c){printf("是水仙花\n");}else{printf("不是水仙花\n");}}2 )求一元二次方程的根#include <stdio.h>#include <math.h> //包含math.h头文件,开根函数sqrt()main(){int a,b,c; //定义一元二次方程的三个变量为整型double d,x1,x2; //定义d=(b^2-4ac)以及两个根,数据类型为双精度类型printf("输入一元二次方程a*x*x+b*x+c=0中a,b,c的值,逗号隔开:\n");scanf("%d,%d,%d",&a,&b,&c);if(a==0)printf("不是一元二次方程\n");else{d=b*b-4*a*c;if(d<0)printf("无实根\n");else{d=sqrt(b*b-4*a*c);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);printf("方程的两个根分别是:x1=%lf,x2=%lf\n",x1,x2);}}}3 )编程实现以下功能,读入两个数(d1,d2 )和一个运算符(o) ,计算d1 o d2 的值。
#include <stdio.h>main(){char op;double result,n1,n2;printf("请输入表达式\n");scanf("%lf%c%lf",&n1,&op,&n2);if(op=='+'||op=='-'||op=='*'||op=='/'){switch(op){case '+':result=n1+n2;break;case '-':result=n1-n2;break;case '*':result=n1*n2;break;case '/':result=n1/n2;break;}printf("结果是%lf",result);}elseprintf("输入错误\n");}4 )输入一个数,判断是否能被3 ,5 ,7 整除,并输出同时被几个整除。