第1章 C语言基础
C语言基础知识答案
29 C 30 B 31 A 32 A 33 B 34 B 35 A 36 D 37 B 38 B
二填空题
10 72k *k3*x t4int * *t5(1)s=p+3;(2)s=s-2(3)66(4)*(s+1)(5)4
16 A 17 D 18 B 19 C C 27 D 28 B
29 D 30 A 31 C 32 A 33 D 34 D 35 B 36A 37 D 38 C 39 C 40C 41C
42B 43A
二填空题
1IJKLEFGHABCD23394752661371 3 6879(double*)
第一章C语言基础知识
一选择题
1 B 2 DBD 3 BE 4 A 5 B 6 C 7 B 8 C 9 D 10 BDD 11 D 12 D 13 C
14 AC 15 A 16 CC 17 D 18 A 19 AAA 20 D 21 D 22 BDDBB 23 A 24 D
25 D 26 A 27 C 28 A 29 B 30 CG 31C 32 DDBA 33 C 34 D 35 D 36 D
16 D 17 D 18 B 19 D 20 B 21 C22 A 23 A 24 A 25 C 26 A 27 B 28 D 29B
30 B 31D
二填空题
12223435 2410 4516 6 struct STRU 7 ex 8 sizeof(struct node)
9 b->day, (*b).day 10 3,3 11 struct link *next 12 struct node * 13 struct STRU*
谭浩强版C语言1
写方式, 左边花括号处于第一条语句的开始位置, 右边花
括号独占一行, 与左边花括号对齐。 (4) 在程序中恰当地使用空行, 分隔程序中的语句块, 增加程序的可读性。
1.4 C程序的实现
1.4.1 实现步骤
C程序在计算机上的实现与其它高级语言程序的实现一 样, 一般要经过编辑、编译、连接、运行四个步骤,如图 1 - 1 所示。
/*程序 1 [CD*2] 1, 输出″this is a C program.″*/# include ″stdio.h″ main( ) {
printf(″ this is a C program.\n ″);
}
运行结果: this is a C program.
例1 – 2 求两个整数之和。 /*程序1 - 2, 求两个整数之和*/ #include ″stdio.h″ main( ) {int a, b; int sum; scanf(″%d, %d″, &a, &b); sum=a+b; printf(″sum=%d\n″, sum); } 输入数据: 1999, 1 运行结果: 和=2000
译程序为基础 , 出版了影响深远的名著《C 程序设计语 言》。 C++语言是C语言发展的新阶段, 是一种更好的C语 言, 是应用广泛的面向对象的程序设计语言。
3. C语言的标准与方言 各机构推出了自己的 C语言与版本, 某些执行过程 的微小差别不时引起C程序之间的不兼容。美国国家标 准协会(ANSI)从1983年开始, 经过长达五年的努力,
第 1章 C 语 言 基 础
教学目的:通过对C语言的发展与特点的介绍,激发学 生学习该课程的兴趣,了解课程在计算机学科中的地 位。 教学要求:了解C语言特点,理解C程序的特性,掌握C 语言的书写要求和方法,能够编写简单C程序,并且学 会上机运行c程序 教学内容:C语言特点,C程序的特性,简单C程序设 计,上机运行c程序。 教学重点:C程序的结构,C程序上机运行过程。 教学难点:C程序上机调试过程。 学法指导:多思考、对C语言中的基本概念进行复习。
第1章_C语言概述(C语言程序设计)
通过以上例子可以看出: 通过以上例子可以看出: 1. C程序是由函数构成的。每个程序由一个或多个函数组成, 程序是由函数构成的。每个程序由一个或多个函数组成, 程序是由函数构成的 其中必须有且仅有一个主函数main( )。 有且仅有一个主函数 其中必须有且仅有一个主函数 。 2. 一个可执行的 语言程序总是从 一个可执行的C语言程序总是从main函数开始执行,而不 函数开始执行, 语言程序总是从 函数开始执行 论其在整个程序中的位置如何。 论其在整个程序中的位置如何。 3. C对输入输出实行函数化。 对输入输出实行函数化。 对输入输出实行函数化 4. C程序书写格式自由,一行内可以写几个语句,一个语句 程序书写格式自由,一行内可以写几个语句, 程序书写格式自由 也可以分写在多行上。 也可以分写在多行上。 5. 可用 可用/*……*/对C程序中的任何部分作注释,注释可以写在 对 程序中的任何部分作注释 程序中的任何部分作注释, 程序的任何位置上, 也可不在同一行上。 程序的任何位置上,“/*”与“*/”也可不在同一行上。 与 也可不在同一行上 6. 在C语言中,大小写字母是有区别的。( 语言习惯用小 语言中, 。(C语言习惯用小 语言中 大小写字母是有区别的。( 写字母) 写字母)
主函数
main( ) { int x, y, z; printf(“Please input two integers:\n”) ; scanf(“%d%d” , &x, &y); z = add_xy(x, y); printf(“%d %d %d.”, x, y, z); }
西南林学院计科系
第 1章 概述
西南林学院计科系
第 1章 概述
将汇编源程序翻译为目标程序(机器语言)的过程称 为汇编 汇编。 汇编 连接的原因是由于在目标程序中还可能要调用一些 连接 标准程序库中的标准子程序或其他自定义函数等,由于 这些程序还没有连接成一个整体,因此,需通过“连接 程序”将目标程序和有关的程序库组合成一个完整的 “可执行程序”。
C语言第1章vc
P3
main( ) { int a,b,x; double c,y,z; c=4.0; y=sqrt(c); a=10; b=20; x=mysum(a,b); z=x+y; printf("z=%lf\n",z); }
int mysum( int m, int n ) { int k; k=m+n; return k; } 程序的运行结果是: z=32.000000
文件math.h
main函数
…… c=4.0; y=sqrt(c); a=10; b=20; x=mysum(a,b); z=x+y; … …
①
② ④ ⑤ ⑥ ⑨ ⑧ ⑦
③
sqrt函数 …… 其它函数 ……
mysum函数
……
本课程的目标
掌握解决简单问题的步骤 用C语言能够实现如下程度的功能
第1章 C语言基础知识
1.1 C语言概述
1.2 简单C程序与上机步骤 1.3 数据类型 1.4 常量与变量 1.5 运算符和表达式
例题链接
例题链接
例1.1 例1.2 例1.3 例1.4
例1.5 例1.8
例1.6 例1.9
例1.7 例1.10
例1.11
例1.14
例1.12
例1.13
例1.17
例1.15
12.300000 12345.669922 12345.670000
…
1.4.4 字符型常量与变量 1.字符型常量
P13
常规字符 用单引号括起来的单个字符 转义字符 用\开头的字符序列
字符常量按其ASCII码值参加整数运算
【例1.11】将常规字符按不同格式输出。 #include <stdio.h> main( ) a-97 A-65 { printf("%c-%d,%c-%d\n",’a’,’a’ ,’A’, ’A’); printf("%d,%c\n",’a’+1,’A’+1); 98 B printf("%d\n",’a’-’A’); 32 }
第1章 C语言基础知识
第一章C语言基础知识一,选择题1 答案是AA正确课本第2页11行B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误课本第4页关于用户标识符是这样介绍的---命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dsizeof 是关键字,参照附录二注: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 答案是B16 答案是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 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D 中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以n的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39答案是D40 D41 D42 A二,填空题1 位、0或123 84 八进制、十进制、十六进制5 课本第8页整型变量和第11页实型变量的介绍6 5+3.6/2=5+1.8=6.87 a++表达式的值是a变化之前的值,当然a本身增加了18 把10赋给变量B。
C语言程序设计教学课件1- C语言语法基础
(add函数)
1.2 数据的基本类型及其表现形式
1.2 数据的基本类型及其表现形式
1.2.1 常量和变量
1、常量 在程序执行过程中,其值不发生改变的量称为常量。
根据书写方式,常量可分为直接常量和符号常量。 (1)直接常量:如 4、23;1.23; 'a'、'b';''CHINA''等 (2)符号常量:用#define指令,指定一个标识符代表一个常量。
2)若同时定义多个同类型的变量,定义格式:
类型标识符 变量名1,变量名2,变量名3,…;
例如:int i, j, k;
//同时定义三个基本整型变量i、j、k
定义变量后,系统将根据变量的类型给变量分配对应大小的内存空间,用于存储
该变量。 例如: short int i; //定义短整型变量i
i = 10;
1.1 C语言程序的特点
产生于20世纪70年代的C语言是国际上广泛流行的计算机高级编程语言 ,C语言具有的优点包括:①灵活的语法和丰富的运算符;②模块化和结构 化的编程手段,程序可读性好;③可以直接对硬件进行操作,能够实现汇编 语言的大部分功能;④生成的目标代码质量高,程序执行效率高,C语言一 般只比汇编程序生成的目标代码效率低10%~20%;⑤用C语言编写的程序 可移植性好(与汇编语言相比),基本上不做修改就能用于各种型号的计算 机和各种操作系统。
②原样输出的字符,在显示中起提示作用。
(2)输出列表:是需要输出的一些数据,可以是常量、变量或表达式。 多个数据之间要用逗号隔开。
使用printf函数时,要求格式控制字符串中必须含有与输出项一一对应的格 式符,并且类型要匹配。printf函数也可以没有输出项。
大学课程《C语言程序设计基础》PPT课件:第1章
第1章 C语言程序设计概述
机器语言是计算机能够直接识别的语言,它是一组二进 制编码指令。在计算机应用初期,人们用机器语言编写程序。 但是机器语言是冗长的二进制代码,难理解、难记忆、难编 程,只有少数计算机专业人员才会使用。随着计算机应用技 术的发展,计算机语言一直朝着“人性化”的方向发展,先 后出现了汇编语言和不同种类的高级语言。
第1章 C语言程序设计概述
1.2.1 数据结构与算法 数据结构与算法具有密切的联系。数据结构是加工对象,
算法则是对数据结构加工处理的方法。不同的数据结构可能 需要采取不同的算法,不同的算法可以对不同的数据进行加 工处理。
1.数据结构
何谓数据结构?数据结构在程序中如何表示?
数据结构指的是数据的组织形式,例如,字符数组、方 程组系数矩阵、人员的基本信息表、反映部门组织机构关系 的树形图、反映网络结构及信息的网状图等都是不同的数据 结构。
组织和存储数据的目的是能被计算机处理,即对数据施 加各种运算。因此,可以在逻辑结构上定义运算集合,而在 存储结构上实现这些运算。
第1章 C语言程序设计概述
2.算法
何谓算法?算法如何表示?
所谓算法,是解决某一问题所采取的方法和步骤。程序 设计中的算法把解决问题的每一步骤具体化为计算机的操作, 即算法解决计算机在什么情况下应该“做什么”和“怎样做” 的问题。
第1章 C语言程序设计概述
高级语言的种类很多,不同的语言各有不同的特点与使 用场合,但从原理上看,各种语言都包含一些相同的功能和 结构。对初学者来说,只要选择有代表性的语言,掌握了程 序设计语言的规律和内在功能结构,就很容易学习和应用其 他语言。现在一般都把C语言作为程序设计的入门语言。
第1章 C语言程序设计概述
第一章 C语言基础知识
第一章C语言基础知识考点 1 C语言程序的结构认识本节通过一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。
例1 计算两个整数之和的c程序:#include<stdio.h>main(){int a,b,sum; /*定义变量a,b,sum为整型变量*/a=20; /*把整数20赋值给整型变量a*/b=15; /*把整数15赋值给整型变量b*/sum=a+b; /*把两个数之和赋值给整型变量sum*/printf(“a=%d,b=%d,sum=%d\n”,a,b,sum);/*把计算结果输出到显示屏上*/}重点说明:1、任何一个c语言程序都必须包括以下格式:main(){ }这是c语言的基本结构,任何一个程序都必须包含这个机构。
括号内可以不写任何内容,那么该程序将不执行任何结果。
2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c 程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。
3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。
4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。
5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果:a=20,b=15,sum=356、#include<stdio.h>注意:(1)以#号开头(2)不以分号结尾这一行没有分号,所以不是语句,在c语言中称之为命令行,或者叫做“预编译处理命令”。
7、程序中以/*开头并且以*/结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。
浙大版《c语言程序设计(第4版)》讲解
浙大版《c语言程序设计(第4版)》讲解《C语言程序设计》是国内C语言教材的重要书籍,高校中的计算机专业等都有教授。
浙大版《C语言程序设计(第4版)》是由著名计算机科学家袁春风编写的C语言教材,该书主要介绍了C语言基础、字符串、数组、指针、结构体、文件操作等内容。
本文将对该书内容做简要概括。
第一部分:C语言基础第一章:概述该章主要介绍了计算机语言的发展与演化,C语言的历史和主要特点,以及C语言的应用领域和发展前景。
第二章:初识C语言该章节主要介绍了C语言的基本概念,例如标识符、关键字、注释等。
并且结合一些简单的例子介绍了C语言的语法格式和执行规则。
第三章:数据类型该章节主要介绍了C语言的数据类型,包括整型、实型、字符型、布尔型等。
并且介绍了类型转换及其规则。
第四章:运算符与表达式该章节主要介绍了C语言的基本运算符及其优先级、结合性和作用。
并且通过实例来介绍了使用运算符和表达式的方法及注意事项。
第五章:分支结构该章节主要介绍了C语言中的分支结构,包括if、if-else、switch等,以及运用分支结构解决问题的方法和技巧。
第二部分:数组、字符串和指针第七章:数组该章节主要介绍了C语言中的数组,包括一维数组、二维数组等,并结合例子介绍了数组的定义、初始化、遍历、赋值等操作。
第八章:字符串该章节主要介绍了C语言中的字符串,包括字符串的定义、初始化、输入、输出等。
并且介绍了使用字符串解决问题的方法和技巧。
第九章:指针第三部分:函数与结构体该章节主要介绍了C语言中的结构体,包括结构体的定义、初始化、访问、结构体数组、结构体指针等。
并且介绍了结构体在程序中的应用。
第四部分:文件操作与其他第十二章:文件操作第十三章:其他语言特性与扩展该章节主要介绍了C语言扩展的特性,包括宏定义、预处理指令、变长参数等。
并且介绍了C语言与其他语言的异同点。
总结:《C语言程序设计(第4版)》是一本权威的C语言教材,该书系统全面地介绍了C语言的基本概念、语法格式、运算符、控制语句、数组、指针、函数、结构体、文件操作等方面的内容,让读者对C语言的掌握更加深入。
第一章 C程序基础01
/* 预处理命令 */
/* 定义本函数中用到的变量 */ /* 完成本函数功能的语句 */
其他函数以 后再讲
总结C语言的书写风格
1、一个C程序由一个或多个函数构成。一个C源程序必须包含 一个main( )函数,也可以包含其它函数(用户自定义)。函数 是C语言的基本单位。 2、一个C程序总是从main函数开始执行,而不论main函数在 整个程序中的位置如何;一般说来,又随着main函数的结束而 整个程序结束。
C语言编程入门的方法:模仿
社会学习理论认为,学习的产生是通过 模仿过程而获得的。 大量的心理学研究结果也表明,人类的 大多数行为都是通过观察学会的。 研究现成的例题,读得懂C源
码是学习C语言的第一步。
读得懂才可能自己编
编译预处理命令 #include <stdio.h> void main( ) { printf ("This is a Cprogram!\n"); }
编译时的提示信息将显示在输出窗口,双击错误信息则转 到相应出错处,修改完毕再重新编译,直到无任何错误后编译 成功,显示“0 error(s), 0 warning(s)”。 注意:编译成功只能说明程序无语法错误,不一定代表算 法正确或运行结果正确。
4、生成目标程序
用组建 菜单下的组建命令(F7)
5、运行源程序
1.5.2 C程序上机步骤
一、编辑:使用编辑工具(vc++6.0)将源程序输入计算机内 ,经过修改后保存。----扩展名为.C或.CPP(c++源程序) 二、编译:先进行语法检查,并将无语法错误的源程序翻译成 二进制形式的目标代码----扩展名为.OBJ(目标程序) 三、链接:将各模块的二进制目标代码与系统标准模块连接, 得到一个可执行文件----扩展名为.EXE(可执行程序) 四、执行:执行经过编译和连接的可执行目标文件。 五、得到最终结果。
第一章-C语言基础知识
第一章C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题R1.在C语言中,逗号运算符的优先级最低。
2.在C语言可执行程序的开始执行点是程序中第一个函数。
3.“5ch”是合法的变量名。
R4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
5.当输入数据时,必须指明变量的地址,如scanf("%f",&f)N6.表达式i++与++i在任何场合功能完全相同。
7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
Float a; int b=1;a=b;R8.C语言程序中,语句以逗号结尾。
()9.在 C 程序中,APH 和aph 代表不同的变量。
( )10. a-=7等价于a=a-7。
( )N11. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按原字符长从左向右全部输出。
( )12.如果x>y为真或a<b为真,表达式(x>y)&&(a<b)就为真。
()13.C语言程序的变量必须先定义再使用。
( )14.若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b中的值将丢失。
( )15.程序的执行总是从main函数开始,在程序的最后一个函数中结束。
( )N16.变量的三个属性是指变量的名字、变量的值和变量在内存中的地址。
()17. 运算符优先顺序:赋值运算符<逻辑运算符<关系运算符<算术运算符()18.对应float类型的变量,也可以用等号“==”进行数值的判断。
()19.表达式:1 && 3.14 和 1 & 3 的值一样大。
()01&11=120. 为了正确计算表达式既要考虑运算符的优先级,也要考虑其结合性。
()21.任何C程序都是从main函数开始和结束;22. 在C程序中,使用分号“;”表示语句的结束。
《C语言编程基础》电子教案
《C语言编程基础》电子教案第一章:C语言概述1.1 C语言的历史与发展1.2 C语言的特点1.3 C语言的应用领域1.4 开发环境搭建第二章:C语言基础语法2.1 数据类型2.1.1 整型2.1.2 浮点型2.1.3 字符型2.2 变量与常量2.2.1 变量的声明与初始化2.2.2 常量的定义2.3 运算符与表达式2.3.1 算数运算符2.3.2 关系运算符2.3.3 逻辑运算符2.3.4 赋值运算符2.3.5 其他运算符2.4 输入输出函数2.4.1 标准输入输出函数2.4.2 格式化输入输出函数第三章:控制语句3.1 顺序结构3.2 选择结构3.2.1 if语句3.2.2 switch语句3.3 循环结构3.3.1 while循环3.3.2 do-while循环3.3.3 for循环3.3.4 循环控制语句第四章:函数与指针4.1 函数的定义与调用4.1.1 函数的声明与定义4.1.2 函数的参数传递4.1.3 函数的返回值4.2 指针的基本概念4.2.1 指针的声明与赋值4.2.2 指针与数组4.2.3 指针与函数4.2.4 指针与动态内存分配第五章:数组与字符串5.1 一维数组5.1.1 数组的声明与初始化5.1.2 数组的访问与遍历5.2 二维数组5.2.1 二维数组的声明与初始化5.2.2 二维数组的访问与遍历5.3 字符串的基本操作5.3.1 字符串的声明与初始化5.3.2 字符串的长度计算5.3.3 字符串的复制与连接5.3.4 字符串的比较与搜索第六章:结构体与联合体6.1 结构体的定义与使用6.1.1 结构体的声明6.1.2 结构体的初始化6.1.3 结构体数组6.1.4 结构体指针6.2 联合体的定义与使用6.2.1 联合体的声明6.2.2 联合体的初始化6.2.3 联合体成员的访问6.3 枚举类型6.3.1 枚举类型的声明6.3.2 枚举类型的使用第七章:文件操作7.1 文件概述7.1.1 文件的概念7.1.2 文件类型7.1.3 文件操作函数7.2 文件的打开与关闭7.2.1 文件的打开7.2.2 文件的关闭7.3 文件的读写操作7.3.1 文件的读取7.3.2 文件的写入7.4 文件的定位与查找7.4.1 文件的定位7.4.2 文件的查找第八章:指针高级应用8.1 指针数组8.1.1 指针数组的声明8.1.2 指针数组的应用8.2 数组指针8.2.1 数组指针的声明8.2.2 数组指针的应用8.3 函数指针8.3.1 函数指针的声明8.3.2 函数指针的应用8.4 指针与动态内存分配8.4.1 动态内存分配的概念8.4.2 动态内存分配的函数8.4.3 动态内存分配的应用第九章:预处理指令9.1 预处理概述9.1.1 预处理的概念9.1.2 预处理的作用9.2 预处理指令9.2.1 文件包含指令9.2.2 宏定义指令9.2.3 条件编译指令9.3 预处理器的使用9.3.1 预处理器的工作流程9.3.2 预处理器的高级应用第十章:C语言编程实例10.1 实例一:计算器程序10.1.1 功能需求10.1.2 程序设计10.1.3 程序调试与测试10.2 实例二:图书管理系统10.2.1 功能需求10.2.2 程序设计10.2.3 程序调试与测试10.3 实例三:简单的游戏程序10.3.1 功能需求10.3.2 程序设计10.3.3 程序调试与测试重点和难点解析重点一:C语言的特点和应用领域解析:C语言作为一种高级编程语言,具有高效、灵活、可移植性好等特点。
C语言期末考试题库(第一章 c语言基础知识)
C语言考研题库(第一章c语言基础知识)一、单项选择1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为().A、关系运算,赋值运算,算术运算B、算术运算,关系运算,赋值运算C、算术运算,赋值运算,关系运算D、关系运算,算术运算,赋值运算答案:B2.下述正确的C语言常量是:().A、E2B、3e-3C、1.5E2.5D、5.0E答案:B3.使用共用体变量,不可以().A、进行动态管理B、节省存储空间C、同时访问所有成员D、简化程序设计答案:C4.为表示关系x>=y>=z,应使用C语言表达式为:()A、(x>=y)&(y>=z)B、(x>=y>=z)C、(x>=y)&&(y>=z)D、(x>=y)AND(y>=z)答案:C5.以下程序的输出结果是().main(){char str[]="ABCD",*p=str;printf("%s\n",p);}A、68B、ABCDC、不确定的值D、字符D的地址答案:B6.char a[10];不能将字符串"abc"存储在数组中的是().A、a="abc";B、a[0]=0;strcat(a,"abc");C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;D、strcpy(a,"abc");答案:A7.fscanf函数的正确调用形式是().A、fscanf(文件指针,格式字符串,输入表列);B、fscanf(格式字符串,文件指针,输出表列);C、fscanf(fp,格式字符串,输出表列);D、fscanf(格式字符串,输出表列,fp);答案:A8.下列数组说明中正确的是().A、int array[][]={1,2,3,4,5,6,7,8,9,10};B、int array[][][5]={1,2,3,4,5,6,7,8,9,10};C、int array[][4]={1,2,3,4,5,6,7,8,9,10};D、int array[3][]={1,2,3,4,5,6,7,8,9,10};答案:C9.以下选项中,与k=n++完全等价的表达式是().A、n=n+1,k=nB、k+=n+1C、k=++nD、k=n,n=n+1答案:D10.针对下列程序段回答问题().for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%3d",t);}A、printf函数永远也不执行B、当x<0时整个循环结束C、x>=0时什么也不输出D、最多允许输出100个非负整数答案:D11.以下正确的字符串常量是()A、"\\\"B、'A'C、'abc'D、OlympicGames答案:A12.如下说法不正确的是().A、若a为真b为假,则a||b为真B、若a为真b为假,则a&&b为假C、若a为真b为假,则! a-1&&b为真D、若a为真,则! a为假答案:C13.C语言中,用于结构化程序设计的三种基本结构是().A、for,while ,do-whileB、顺序结构,选择结构,循环结构C、if,switch,breakD、if,for,continue答案:B14.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是().A、t[3]B、t[2]C、&t[3][2]D、&t[1]答案:B15. 下列运算符中优先级最高的是().A、<B、&&C、+D、!=答案:C16.C语言程序中,必须有的函数是().A、main()B、#include"stdio.h"C、scanfD、printf答案:A17.已定义char a[10];和char *p=a;,下面的赋值语句中正确的是().A、*p="Turbo c";B、p="Turbo c";C、a[10]="Turbo c";D、a="Turbo c";答案:B18.以下叙述正确的是().A、可以把if定义为用户标识符,但不能把define定义为用户标识符B、define和if 都不能定义为用户标识符C、可以把define和if定义为用户标识符D、可以把define定义为用户标识符,但不能把if定义为用户标识符答案:D19.若已定义x为int类型变量,下列语句中,说明指针变量p的正确语句是().A、*p=*x;B、int *p=x;C、int *p=&x;D、int p=&x;答案:C20.以下叙述中,正确的是().A、花括号"{"和"}"只能作为函数体的定界符B、构成C程序的基本单位是函数,所有函数名都可以由用户命名C、分号是C语句之间的分隔符,不是语句的一部分D、C程序中,注释部分可以出现在程序中,任意合适的地方答案:D21.以下能对二维数组a进行正确初始化的语句是().A、int a[][3]={{1,2,3},{4,5,6}};B、int a[2][]={{1,0,1},{5,2,3}};C、int a[2][4]={{1,2,3},{4,5},{6}};D、int a[][3]={{1,0,1}{},{1,1}};答案:A22.C语言中,double 类型数据占().A、8个字节B、4个字节C、2个字节D、1个字节答案:A23.经过下列的语句int j,a[10],*p=a;定义后,下列语句中,合法的是().A、p=a[5];B、p=a[2]+2;C、p=p+2;D、p=&(j+2);答案:C24.定义char s[10],*p=s;,则下面编译不能通过的语句是().A、s=p+s;B、s[2]=p[4];C、p=s+5;D、*p=s[0];答案:A25.以下函数调用语句中,实参的个数是().exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6答案:A26.若x=2,y=3,则x||y的结果是()A、0B、3C、2D、1答案:D27.已知x=43,ch='A',y=0;,则表达式(x>=y&&ch<'B'&&!y)的值是().A、"假"B、语法错C、0D、128.下面四个选项中均是不合法的浮点数的选项是().A、-e3.234 1e3B、123 2e4.2.e5C、-.18 123e4 0.0D、160.0.12 e3答案:B29.以下函数调用语句中,实参的个数是().fun c((e1,e2),(e3,e4,e5));A、3B、5C、语法错误D、2答案:D30.已定义:float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().y+x=4.62,y-x=2.12A、printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);B、printf("y+x=%f,y-x=%f\n",y+x,y-x);C、printf("y+x=%6f,y=%6f\n",y+x,y-x);D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);答案:A31.执行下面程序段后,ch的值是().char ch='a';ch=(ch>='A'&&ch<='Z')?(ch+32):ch;A、AB、zC、ZD、a32.在C语言的函数中,下列正确的说法是().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案:B33.以下正确的描述是().A、在循环中,break语句不能独立出现B、只能用continue语句来终止本次循环C、goto语句只能用于退出多层循环D、switch语句中,不能出现continue语句答案:B34.C语言中,运算对象必须是整型的运算符是().A、〈=B、%=C、=D、/答案:B35.下面不正确的字符串常量是().A、"0"B、""C、"12'12"D、'abc'答案:D36. fwrite函数的一般调用形式是().A、fwrite(buffer,count,size,fp);B、fwrite(fp,count,size,buffer);C、fwrite(fp,size,count,buffer);D、fwrite(buffer,size,count,fp);答案:D37.以下定义语句中错误的是().A、int a[]={1,2};B、int n=5,a[n];C、char *a[3];D、char s[10]="test";答案:B38.下列正确的标识符是().A、%yB、a+bC、6aD、_do答案:D39.C语言源程序的基本单位是().A、子程序B、过程C、标识符D、函数答案:D40. 若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时, ()是正确的输入A、20 30 40B、2030,40C、20,30,40D、20,30 40答案:C41.设有如下程序,请选择正确答案().#include<stdio.h>main(){int **k,*j,i=100;j=&i,k=&j;printf("%d\n",**k);}A、100B、i的地址C、j的地址D、运行错误答案:A42.若定义:int a=511,*b=&a;,则printf("%d\n",*b);的输出结果为().A、a的地址B、无确定值C、511D、512答案:C43.以下叙述中,不正确的是().A、C程序中的#include和#define 均不是C语句B、在C程序中,赋值运算符的优先级最低C、在C程序中,j++;是一条赋值语句D、一个好的程序应该有详尽的注释答案:B44.下面叙述中错误的是().A、若一个函数没有return语句,则什么值也不会返回B、一般来说,函数的形参和实参的类型要一致C、函数的形式参数,在函数未被调用时就不被分配存储空间D、若函数的定义出现在主调函数之前,则可以不必再加说明答案:A45.设有如下程序段:int k=10;while(k==0)k--;,则下述说明中正确的是().A、循环体执行一次B、死循环C、循环体一次也不执行D、循环体执行10次答案:C46.表示关系x>0且y<=10的C语言表达式为().A、(x<=0)AND(y<=10)B、(x>0)&&(y<=10)C、x>0,y<=10D、(x<=0)&(y<=10)答案:B47.以下叙述不正确的是().A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序可由一个或多个函数组成D、一个C源程序必须包含一个main()函数答案:B48.C语言提供的合法的数据类型关键字是().A、floatB、unsignedC、charD、int eger答案:B49.所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:().A、6B、7C、8D、2答案:C50.以下符合C语言语法的赋值表达式是().A、d=9+e+f=d+9B、d=9+e,e++,d+9C、d=9+eD、d=9+e++=d+7答案:C51.下面对函数的叙述,正确的是().A、函数中无论是否有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套定义D、函数的返回值是通过return语句获得的答案:C52.整型变量x=1,y=3,经下列计算后,x的值不等于6的是().A、x=(x=1+2,x*2)B、x=9-(--y)-(--y)C、x=y*4/2D、x=y>2?6:5答案:B53.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:() x=y=z=1;t=++x||++y&&++z;A、1B、不定值C、2D、0答案:A54.下列字符序列中不可用作C语言标识符的是().A、a_1B、#abC、symbolD、b70答案:B55.C语言执行程序的开始执行点是().A、包含文件中的第一个函数B、程序中,第一个函数C、程序中的main()函数D、程序中,第一条可以执行语言答案:C56.下列运算符优先级最低的是().A、&&B、+C、=D、!答案:C57.下面所列的语句行中能正确进行赋字符串操作的语句行是().A、char st[4][5]={"ABCDE"};B、char s[5]={'A','B','C','D','E'};C、char *s;scanf("%c",s);D、char *s;s="ABCDE";答案:D58.以下正确的函数定义形式是().A、double fun(int x,int y)B、double fun(int x;int y)C、double fun(int x,y);D、double fun(int x,int y);答案:A59.下列变量中合法的是().A、$ABCB、B.C.TomC、3a6bD、_6a7b答案:D60.以下标识符中可以作为用户函数名的是().A、unionB、intC、structD、go_to答案:D61.判断两个字符串是否相等,正确的表达方式是().A、while(strcmp(s1,s2)=0)B、while(strcmp(s1,s2)==0)C、while(s1==s2)D、while(s1=s2)答案:B62.下面各语句中能正确进行赋字符串操作的语句是().A、char st[][]={"ABCDE"};B、char s2[6]={'A','B','C','D','E'};C、char s1[5][]={"ABCDE"};D、char s[5]={'A','B','C','D','E'};答案:B63.下列数据中属于"字符串常量"的是().A、'ABC'B、ABCC、"ABC"D、'A'答案:C64.C语言中的文件的存储方式有().A、可以顺序存取,也可随机存取B、只能随机存取(或直接存取)C、只能顺序存取D、只能从文件的开头进行存取答案:A65.putchar函数可以向终端输出一个().A、字符或字符型变量值B、整型变量表达式值C、实型变量值D、字符串答案:A66.下面叙述中正确的是().A、声明函数时必须明确其参数类型和返回类型B、函数可以返回一个值,也可以什么值也不返回C、空函数在不完成任何操作,所以在程序设计中没有用处D、对于用户自己定义的函数,在使用前必须加以声明答案:B67.以下标识符中不能作为合法的C用户定义标识符的是().A、_123B、voidC、ifD、a3_b3答案:B68.将字符串Turbo赋给字符数组word,则下面错误的说明语句是().A、char word[]={"Turbo\0"};B、char word[]="Turbo\0";C、char word[]={'T','u','r','b','o','\0'};D、char word[]='Turbo\0';答案:D69.用下面的scanf函数输入数据,使得i=10,j=15,选择正确的键盘输入方法:().(用[CR]表示回车)main(){int i,j;scanf("i=%d,j=%d",&i,&j);}A、i=10,j=15[CR]B、i=10Uj=15[CR]C、10U15[CR]D、10,15[CR]答案:A70.跳过当前循环体内容,继续执行下一次循环的语句是()A、continue语句B、return语句C、break语句D、空语句答案:A71.设有以下定义:int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;,则数值为6的表达式是().A、p+5B、*p+6C、*p+=5D、*(p+6)答案:C72.以下程序段执行后输出的结果是().char str[]="ABCD",*p=str;printf("%d\n",*(p+4));A、不确定的值B、字符'D'的地址C、68D、0答案:D73.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法().(用"[CR]"表示回车,U表示空格)main(){int i,k;scanf("i=%d,k=%d",&i,&k);}A、10U15[CR]B、i=10,k=15[CR]C、i=10[CR]k=15[CR]D、10,15[CR]答案:B74.设有如下的程序段:char str[]="Hello";char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为().A、'\0'B、'o'C、'o'的地址D、不确定的值答案:A75.定义int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中,0≤i≤9,则对a数组元素的引用不正确的是().A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))答案:D76.以下字符中,不是转义字符的是().A、'\b'B、'\\'C、'\c'D、'\a'答案:C77.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、10<a<15B、!(a<=10)&&!(a>=15)C、a>10&&a<15D、a==11||a==12||a==13||a==14答案:A78.在C语言中,存储类型为()的变量只在使用它们时才占用存储空间.A、static 和autoB、register和autoC、register和externD、static 和register答案:B79.已知键盘输入a=4,b=3,下面程序输出的结果是().main(){int a,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}A、13B、9C、16D、15答案:C80.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是().A、"ab"B、"wb+"C、"rb+"D、"ab++"答案:B81.设有如下说明和语句,请选出哪个是对c数组元素的正确引用(). int c[4][5],(*cp)[5];cp=c;A、*(*cp+2)B、*(cp+3)C、cp+1D、*(cp+1)+3答案:A82.以下标识符中不能作为合法的C用户定义标识符的是().A、forB、printfC、sizeofD、WORD答案:C83.在定义构造数据类型时,不能().A、末尾不写分号B、说明变量C、初始化D、说明存储类型答案:A84.以下叙述中,错误的是().A、用户所定义的标识符应尽量做到"见名知意"B、用户所定义的标识符必须以字母或下划线开头C、用户所定义的标识符允许使用关键字D、用户定义的标识符中,大,小写字母代表不同标识答案:C85.选择正确的输入语句().:(其中:char string[20];)使得string的内容为"I am student".A、scanf("%s",string);B、scanf("%c",&string);C、scanf("%s",&string);D、gets(string);答案:D86.以下选项中,合法的实型常数是().A、.2E0B、1.3EC、E-3D、5E2.0答案:A87.若int a=2,则执行完表达式a -=a+=a*a后,a的值是().A、-4B、0C、-8D、-2答案:B88.设a,b和c都是int型变量,且a=3,b=4,c=5,下面表达式中值为0的表达式是().A、a<=bB、'a'&&'b'C、!((a<b)&&!c||1)D、a||b+a&&b-c答案:C89.定义char b[5],*p=b;,则能正确赋值的语句是().A、*p="abcd";B、p="abcd";C、*b="abcd";D、b="abcd";答案:B90.能正确表示a>=10或a<=0的关系表达式是:()A、a>=10||a<=0B、A>=10 or a<=0C、a>=10&a<=0D、a>=10|a<=0答案:A91.设有如下定义:struct sk{int a;float b;}data,*p;若要使p指向data中的a域,正确的赋值语句是().A、p=(struct sk*)data.a;B、p=&data.a;C、*p=data.a;D、p=(struct sk*)&data.a;答案:D92.若变量已正确定义且k 的值是4,计算表达式(j=4,k--)后,j和k的值为().A、j=3,k=3B、j=3,k=4C、j=4,k=4D、j=4,k=3答案:D93.当说明一个结构体变量时系统分配给它的内存是().A、结构中,第一个成员所需内存量B、成员中,占内存量最大者所需的容量C、结构中,最后一个成员所需内存量D、各成员所需内存量的总和答案:D94.int(*p)[6];它的含义为().A、具有6个元素的一维数组B、定义了一个指向具有6个元素的一维数组的指针变量C、指向整型指针变量D、指向6个整数中的一个的地址答案:B95.若有说明语句:char c='\72';,则变量c().A、包含1个字符B、说明不合法,c的值不确定C、包含2个字符D、包含3个字符答案:A96.以下表述中正确的是().A、do-while 循环中while 语句不能省略B、在do-while 循环中while 表达式的值不能为"假"C、除了for 循环,其他循环中都不能使用复合语句D、do-while 循环中while(表达式)后面不能加分号答案:A97.能正确表示a和b同时为正或同时为负的逻辑表达式是:()A、(a+b>0)&&(a+b<=0)B、(a>=0||b>=0)&&(a<0||b<0)C、a*b>0D、(a>=0&&b>=0)&&(a<0&&b<0)答案:C98.下面错误的说明语句是().A、int(*a)[10];B、int a[][];C、int a['a'];D、int *a[10];答案:B99.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是().A、65,66B、A,BC、A,68D、65,68答案:A100. 在C语言中,要求参加运算的数必须是整数的运算符是:().A、/B、!C、==D、%答案:D101.已定义:float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().x=1.250000,y=3.370000A、printf("x=%f,y=%f\n",x,y);B、printf("x=%8.2f,y=%8.2f",x,y);C、printf("x=%7f,y=%7f\n",x,y);D、printf("x=%-8.2f,y=%-8.2f\n",x,y);答案:A102.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为().A、fread()B、fwriteC、fclose()D、close()答案:C103.若有以下说明,则对结构体变量stud1中成员age的不正确引用是(). struct student{int age;int num;}stud1,*p;p=&stud1;A、(*p).ageB、student.ageC、p->ageD、stud1.age答案:B104.C语言中,以下几种运算符的优先次序()的排列是正确的.A、由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符B、由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||C、由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符D、由高到低为:!,&&,||,算术运算符,赋值运算符答案:C105.以下程序的输出结果是().main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、3B、1C、2D、4答案:A106.在C语言中,char型数据在内存中的存储形式是().A、补码B、ASCII码C、反码D、原码答案:B。
C语言第1章计算机的组成与程序设计基础详解
软件(Software) :概念及分类
软 件 系统软件:用来管理、维护计算机并协调计算 机各部件有效工作的软件。 (核心软件是操作系统) 应用软件:实现具体应用的软件。
软件:相关概念
指令:计算机能够识别并执行的“操作命令” 指令=操作码+操作数 15→A 例: 10110000 00001111 指令系统:计算机能够识别的所有指令的集合。
语言分类 机器语言 汇编语言 高级语言 低级语言
机器语言
是二进制形式表示的程序设计语言,是各种不 同功能的机器指令的集合。
例:10000000 加 10010000 减
机器语言编写的程序可以被计算机硬件识别、 可直接执行。(如:TC.EXE) 特点:与机器相关,程序执行效率高,编写难 度大,不便阅读,调试修改困难,无法移植到 其他计算机。
※不同类型的计算机所识别的指令和指令系统是不 一样的。面向机器,通用性差。
程序:为解决某一问题而设计的一系列指令或语句。 机器语言:计算机能唯一识别并可直接执行的语 言,由二进制数(0或1)排列组合而成。
计算机语言
计算机语言是人与计算机交流的工具 人使用程序设计语言来编制程序(程序设计 )来描述信息处理算法,通过语言处理系统 来生成可执行程序文件。计算机通过程序执 行来实现规定的信息处理
汇编语言
符号化的机器语言,也称符号语言
用助记符来表示机器指令,便于使用和记忆。
例: MOV AL,8 ADD AL,9 特点:
语句与机器指令几乎一一对应 程序可读性优于机器语言程序、其他优缺点仍存在
数据传输 加法计算
汇编语言指令是机器不能直接识别和执行。要经过
翻译程序。
高级语言
算法语言:用户主要考虑解题算法的逻辑和过 程的描述。
第一章 C语言基础知识1
第一章 C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
A.语言简洁紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件操作D.C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok 3. 正确的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.character 7. 是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8. 以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9. 一个C程序是由()。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
A.程序行 B.语句 C.函数 D.字符11. 下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D .C 语言程序中的main( )函数必须放在程序的开始部分13. C 编译程序是( )。
第一章C语言基础知识
第一章C语言基础知识一、选择题1.计算机能直接执行的程序是( )A.源程序B.目标程序C.汇编程序D.可执行程序2.用户自定义标识符正确的是( )A.3abB.intC.fa2_aD.sin(x)3.可用于C语言用户标识符的是( )A.void,defineB.2c,DOC.For,-abcD.as_b3,_1234.下列为C语言保留字的是( )A.realB.longC.pointerD.integer5.下列不.属于保留字的是()A. defaultB. printfC. structD.unsigned6.下列用户自定义标识符正确的是()A. 4aB. b_1C. -&D. *p7.以下正确的C语言自定义标识符是()A._la B.2a_ C.do D.a.128.合法的用户标识符是()A. defaultB. #defineC. a+bD. book9.自定义标识符正确的是()A.5d_mB.constC.x4yD.book-110.以下属于C语言保留字的是()A.fopen B.include C.get D.unsigned11.以下选项中,能用作用户标识符的是()A.voidB.8_8C._0_D.unsigned 12.可以作为自定义标识符的是()A.2 B.break C.m-n D.m_n13.以下选项中合法的标识符是( )A. 1_1B.1―1C._11D.1_ _14.以下C语言用户标识符中,不合法的是( )A._1B.AaBcC.a_bD.a--b15.可以用作C程序标识符的一组是()A.printB.i\amC.PxqD.Cppoodb one-half line# powaBc 3pai His.age while16.下列不属于C语言保留字的是( )A. charB. whileC. forD. look17.C语言的保留字是( )A. defineB. scanfC. doD. include18.错误..的实型常数是( )A. .0B. 0.E0C. 0.0D.0E+0.019.以下选项中不能作为C语言合法常量的是()A.‘cd' B.0.1e+6 C."\a" D. ‘\011'20.正确的C语言字符常量是( )A.‘\\’B.‘65’C.“A”D.‘/n’21.下列不.能作为常量的是()A. 0582B. 0xa5C. ‘\n’D. 2.5e-222.不.属于字符型常量的是()A. ″s″B. ‘8’C. ‘A’D. ‘\n’23.在C语言中,错误..的int类型的常数是()A.1E5 B.0 C.037 D.0xaf24.在C语言中,错误..的常数表示是()A.0L B.-0x6a C.′6′D.1.234E3.525.以下选项中,能用作数据常量的是()A.o115B.0118C.1.5e1.5D.115L 26.在C语言中,′a′和″a″存储所占用的字节数分别是()A.1,1 B.1,2 C.2,1 D.2,2 27.正确的变量定义是()A.long d=1000L; B.float m1=m2=10.0;C.char c1=‘A’,c2=A; D.double for=0.618;28.表达式的值为0的是()A.5/5%5 B.5>2 C.!4 D.0x7&&729.主函数头中的“main”是()A.常量名B.函数名C.变量名D.类型名30.下列运算符中优先级最高的是()A.?:B.&&C.D.!31.下列运算符的操作数必须是整型的是( )A./B.!C.%D.=32.下列转义字符中,错误..的是()A.′\n′B.′\\′C.′\108′D.′\xbb′33.在C语言中,整型常量的书写形式不.包括()A.二进制B.八进制C.十进制D.十六进制34.以下选项中正确的定义语句是()A.double a;b;B.double a=b=7;C.double a=7,b=7;D.double,a,b;35.设有定义:int x=2;,以下表达式中,值不为6的是()A.x*=x+1B.x++,2*xC.x*=(1+x)D.2*x,x+=236.以下关于C语言数据类型使用的叙述中错误的是()A.若要准确无误差的表示自然数,应使用整数类型B.若要保存带有多位小数的数据,应使用双精度类型C.若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型D.若只处理"真"和"假"两种逻辑值,应使用逻辑类型37.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()A.1B.0C.2D.不知道a的值,不能确定38.若有定义语句:int x=10;,则表达式x-=x+x的值为( )A.-20B.-10C.0D.1039.表达式0&&3||4和2&&1的值分别是()A.4和0B.4和1C.1和0D.1和140. 设char c=’A’;int i=l, j;,执行j=!c&&i++;后,i和j的值分别是()A. 1和0B. 1和1C. 2和0D. 2和l41. 设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是()A. 1和2B. 2和3C. 3和4D. 4和542.设int a=0,b=1;,下列语句错误..的是( )A.a=b=10;B.a++;C.b+=a;D.(a+b)++;43.能正确表达数学关系式0≤x<20的C语言表达式是( )A.0<=x<20B.x>=0||x<20C.x>=0&&x<20D.!(x<=0)&&x<2044.设double x=5.168;,执行printf(“%5.3f\n”,(int)(x*10+0.5)/10.0);后的输出结果是( )A.5.218B.5.210C.5.200D.5.16845.设char ch=‘a’;,执行printf(“%d,%c\n”,ch,ch+2);后的输出结果是( )A.97,cB.97,99C.a,cD.a,a+246.设int i=8,a,b;double x=1.42,y=5.2;,正确的表达式是( )A.a+=(b=4)*(a=3)B.a=a*3=2C.x%(-3)+y* *3D.y=float(i)47.表达式:(int)((double)9/2)-(9)%2的值是( )A、0B、3C、4D、548. 设char k=’a’;float j=2.0;,执行k+=5/j;printf(“%c”, k);后,输出结果是()A. aB. bC. cD. d49.设char c=′A′;int i=1,j;,执行语句j=!c&&i++;后,i和j的值分别是( )A.0和1B.1和0C.1和65D.2和6650.设int x=6;,执行语句x+=x-=x*x;后,x的值是( )A.-60B.0C.6D.3651.设int i=3,j=3;,表达式i+++j的值是( )A.6B.7C.8D.952.设int a=2,b=6,c=8;,表达式(a,b),(c,10)的值是( )A.2B.6C.8D.1053.下列表达式值为0的是()A.6%2B.2&&5C.!2||5D.2||554. 设int a,b;,则表达式(b=2, a=5, b++, a+b)的值是()A. 2B. 5C. 7D. 855.以下关于C语言的叙述中正确的是( )A.C语言中的注释可以夹在变量名或关键字的中间B.C语言中的变量必须在使用之前进行定义C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D.C语言的数值常量中夹带空格不影响常量值的正确表示56.设函数中有整型变量n,为保证在未赋初值的情况下初值为0,应选择的存储类别是A.autoB.registerC.staticD.auto或register57.执行以下程序段后,w的值为( )int w='A',x=14,y=15;w=((x||y)&&(w<'a'));A.-1B.NULLC.1D.058.若有表达式(w)?(--x):(++y),则其中与w等价的表达式是( )A.w==1B.w==0C.w!=1D.w!=059. 设int a=7; float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是()A. 2.75B. 3.5C. 2.5D. 0.060. 设char cl; , 则cl中为小写英文字母字符的正确表达式为()A. ‘a’<=c1=‘z’B. (cl>=‘a’)&&(cl<=‘z’)C. (cl>=a)&&(c1<=z)D. (‘a’<=c1)||(‘z’>=c1)61.设static int a;,执行表达式(a= =1)&&(a=-1)&&(a=2)后,a的值是()A.-1B.0C.1D.262.若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )A.a=a++,i++;B.i=(a+k)<=(i+k);C.i=a%11;D.i=!a;63.main(){ int k=011; printf("%d\n",k++); }程序运行后的输出结果是( )A.12B.11C.10D.964.以下叙述中正确的是( )A.C程序的基本组成单位是语句B.C程序中的每一行只能写一条语句C.简单C语句必须以分号结束D.C语句必须在一行内写完65.以下不能正确表示代数式的C语言表达式是( )A.2*a*b/c/dB.a*b/c/d*2C.a/c/d*b*2D.2*a*b/c*d66.C源程序中不能表示的数制是( )A.二进制B.八进制C.十进制D.十六进制67.设int a,b;,与a+=b++;等价的是()A.a=b++;B.a=++b;C.a=a+b++;D.a=a+++b;68.设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( )A.0B.1C.2D.369. 已知字符‘A’的ASCII码值是65,且char cl=‘A’, c2=‘D’;则执行语句printf(″%d,%d\n″,cl,c2-2);后的输出结果是()A. A, DB. A, BC. 65, 68D. 65, 6670. 若有下列程序段:int x=l, y=2;x=x+y;y=x-y;x=x-y;则执行后x和y的值分别为()A. 1和2B. 2和2C. 2和1D. 1和171. 设int a=3,b=4;,则printf(“%d,%d,”(a,b),(b,a));的输出结果是()A. 3,4B. 4,3C. 3,4,4,3D. 4,3,3,472.设int x=2,y=4;,值为非0的表达式是()A. 1/x*yB. 1/(x*y)C. 1.0/x/yD. 1/x/ (double)y73.设int a=2,b=5;,结果为0的表达式是()A. a%bB. a&&bC. a=bD. a==b74.设int a=0;错误..的语句是()A. ++a;B. a++;C. a=-a;D. (-a)++;75.设int a=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c++:d++;后f的值是()A. 2B. 3C. 4D. 576.下列运算符优先级最高的是()A. +=B. ,C. !D. ?: 77.设int a=1,b=2;,则执行a=b+2,a++,a+b;后a和b的值分别是()A.1和2 B.3和2 C.4和7 D.5和278.设int a=2,b=3,c=4;,则表达式a>b&&b<c||b的值是()A.-1 B.0 C.1 D.279.设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是()A.1 B.2 C.6 D.1080.设有以下程序段:int x=2,y=2,z=0,a; a=++x||++y&&z++;printf(″%d,%d,%d\n″,x,y,z);执行后输出的结果是()A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,181.逗号表达式a=2*6,a*3,a+5的值是()A.12 B.17 C.36 D.4182.在C语言中,下列运算符中结合性属于自右向左的是()A.&& B.-- C.* D.( )83.设int x=10, a=0, b=25;,条件表达式x<1?a+10︰b的值是()A.0 B.1 C.10 D.2584.C语言中,下列运算符优先级最高的是()A.! B.% C.( ) D.== 85.设有以下程序段:int a=1, b=10, c=1, x; x=a&&b||++c;printf(″%d, %d\n″,x,c);执行后输出的结果是()A.0,0 B.0,1 C.1,0 D.1,186.在C语言中,运算符″=″和″==″的功能分别是()A.关系运算和赋值运算 B.赋值运算和关系运算C.都是关系运算D.都是赋值运算87.若main()函数带参数,参数个数最多是()A.0 B.1 C.2 D.388.设char a='\70';则变量a中()A.包含1个字符B.包含2个字符C.包含3个字符D.是非法表示89.设int i=10;,表达式30-i<=i<=9的值是()A.0B.1C.9D.2090.以下不能..看作一条C语句的是()A.{;}B.a=5,b=5,c=5;C.if(x>=0&&y=0);D.if(x==0)a=5;b=10;91. 下列关于C语言的叙述错误..的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义92. 下列转义字符中错误..的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′93. 设float a=2,b=4,c=3;以下C语言表达式与代数式(a+b)c计算结果不一..致.的是( )A. (a+b)*c/2B. (1/2)*(a+b)*cC. (a+b)*c*1/2D.c/2*(a+b)94. 设int a=10, b=20, c=30;条件表达式a<b? a=5∶c的值是( )A. 5B. 10C. 20D. 3095. 设int a=9, b=6, c;,执行语句c=a/b+0.8;后c的值是( )A. 1B. 1.8C. 2D. 2.396.设int a;,则逗号表达式a=2,4,a+1的值是( )A.1B.2C.3D.497.设int i; float f; double d; long int e;,则表达式10+′a′+i*f-d/e结果的类型是( )A. doubleB.longC. intD. float98.设int a=0,b=0,m=0,n=0;,则执行(m=a= =b)‖(n=b= =a)后m和n的值分别是( )A.0,0B.0,1C.1,0D.1,1二、填空题1.表达式4&&5+3||1的值是。
第一章c语言基础知识
B、 C 程序中不能有空语句
C、 C 程序中的变量必须先定义后使用
D、C 程序中的所有简单数据类型都可以准确无误地表示
3、 C 语言中,合法的用户标识符:
A、_A10
B、
C、return
D、3ab
4、C 程序中,运算对象必须为整型变量的运算符是:
A、++
B、%
C、/
D、*
5、假设 x、y、z 为整型变量,且 x=2,y=3,z=10,则下表达式中值为 1 的是:
C、18H
D、028
int x,y,z;
x=1;
y=5;
z=x%y;
z++;
printf("%d\n",z);
}
A、1
B、2
C、5
13、如下程序输出结果是:
A、
B、2
C、
14、C 语言中,“#define PRICE ”将 PRICE 定义为:
A、符号常量
B、字符常量
C、实型常量
15、”==”代表 C 语言中的:
4、若定义 int x=1, y=1;则执行逗号表达式 y=3,x++,x+5 后,该表达式的值是(
量 x 的值是( ),变量 y 的值是( )。
5、表达式 12/5+(int)*)/(int)+的值的数据类型是:
6、表达式 x=(int)(x*10+/的作用是:
7、C 语言中,关系表达式及逻辑表达式的值为( )或( )。
7、C 语言中合法的字符常量是:
A、n
B、’\n’
C、110
D、”n”
8、C 语言中正确表示“10<a<20 或 a>30”的条件表达式为:
第一章 C语言基础知识
第一章 C语言基础知识一、选择题1.C语言规定,必须用作为主函数名。
A)Function B)include C)main D)stdio 2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个,一个C程序总是从开始执行。
A)过程B) 主函数C)函数 D)include 3.是C程序的基本构成单位。
A)函数 B) 函数和过程 C) 超文本过程 D) 子程序4.下列说法正确的是。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对5.下列说法正确的是。
A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的6.下列说法正确的是。
A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号7.在C语言中,每个语句和数据定义是用结束。
A)句号 B)逗号 C)分号 D)括号8.下列字符串是标识符的是。
A)_HJ B)9_student C)long D)LINE 1 9.以下说法正确的是。
A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分10.不是C语言提供的合法关键字。
A)switch B)print C)case D)default 12.C语言提供的合法关键字是。
A)continue B)procedure C)begin D)append13. C语言规定: 在一个源程序中, main函数的位置。
第1章C语言基础知识详解
第一章 C语言基础知识一、选择题1.算法具有五个特性,以下选项中不属于算法特性的是______。
A)有穷性B)简洁性C)可行性D)确定性【答案】B【解析】本题考查的是算法的特性。
一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入:由一个或多个输出。
简洁性不属于这5个特性,所以本题应该选择B。
2.以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识【答案】A【解析】本题考查C语言中标识符的概念。
用用户标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,并且不能与C语言关键字相同。
所以本题应该选择A。
3. 以下4组用户定义标识符中,全部合法的一组是()A)_main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _001【答案】A【解析】本题考核的知识点是C语言中的标识符命名规则。
标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。
选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM 不是由字母或下划线开头,故选项c不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。
4. 以下选项中,合法的一组c语言数值常量是( )A)028 B)12. C).177 D)0x8a.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e5【答案】B【解析】本题考查的知识点是:数值常量。
数值常量分为整型和实型两类。
其中,整型有十进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。
c语言入门经典 第5版 习题答案
c语言入门经典第5版习题答案C语言入门经典第5版习题答案C语言作为一门广泛应用于计算机科学和软件开发领域的编程语言,具有简洁、高效和灵活的特点。
《C语言入门经典》是一本经典的教材,对于初学者来说是学习C语言的良好起点。
本文将为读者提供《C语言入门经典》第5版的习题答案,帮助读者更好地巩固所学知识。
第一章:C语言基础知识1.1 变量和数据类型1. 在C语言中,变量的命名规则是以字母或下划线开头,后面可以跟字母、数字或下划线。
变量名不能以数字开头,也不能使用C语言的关键字作为变量名。
2. C语言提供了多种数据类型,包括整型、浮点型、字符型等。
整型可以分为有符号和无符号两种,浮点型可以分为单精度和双精度两种。
3. 常见的数据类型转换包括隐式类型转换和显式类型转换。
隐式类型转换是自动进行的,而显式类型转换需要使用强制类型转换运算符。
1.2 运算符和表达式1. C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。
算术运算符用于进行基本的数学运算,关系运算符用于比较两个值的大小关系,逻辑运算符用于进行逻辑判断。
2. 表达式是由运算符和操作数组成的。
C语言中的表达式可以包含常量、变量、函数调用等。
3. 运算符的优先级决定了表达式中各个运算符的执行顺序。
在表达式中可以使用括号来改变运算符的优先级。
第二章:控制语句2.1 分支语句1. C语言中的分支语句包括if语句、switch语句等。
if语句用于根据条件执行不同的代码块,switch语句用于根据表达式的值选择执行不同的代码块。
2. 在if语句中,可以使用if-else语句来处理多个条件。
在switch语句中,可以使用break语句来跳出switch语句的执行。
2.2 循环语句1. C语言中的循环语句包括while循环、do-while循环和for循环。
while循环用于在满足条件的情况下重复执行一段代码,do-while循环先执行一次代码,再根据条件判断是否继续执行,for循环在一定条件下重复执行一段代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要点: • 程序的结构 • 书写的规范 • 编程的步骤
1.程序的结构
(1)一个程序由一个或多个源程序文件组成
一个源程序文件中可以包括三个部分: 预处理指令
全局声明
函数定义
1.程序的结构
(2)函数是C程序的主要组成部分
一个C程序是由一个或多个函数组成的 必须包含一个main函数(只能有一个) 程序总是从main函数开始执行 被调用的函数可以是库函数,也可以是自己编 制设计的函数
2.书写的规范
(1)语句最后必须有分号
预处理不需要分号 一行可以有多句 一句可以写多行
(2)注释
块注释 /* */ 行注释 // 注释不能嵌套,不产生编译代码
例题
以下叙述中正确的是( )
A) C语言的基本组成单位是语句 B) C程序中的每一行只能写一条语句 C) 简单C语句必须以分号结束 D) C语句必须在一行内完成
例题
对于一个正常运行的C程序,以下叙述中正确 的是()
A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函 数结束 C)程序的执行总是从main函数开始,在程序的最后一个 函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的 最后一个函数中结束
– 编辑 • 将源程序输入到计算机中(生成.c文件) – 编译 • 将程序的源代码转换为机器语言代码(生成.obj文件) – 连接 • 将多个源程序文件以及库中的某些文件连在一起(生成.exe文 件) – 运行调试
例题
下列叙述中错误的是
A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译程序编译后,生成后缀为.obj的 文件是一个二进制文件 C)后缀为.obj的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行
例题
以下叙述中正确的是 ()
A) C程序中的注释只能出现在程序的开始位置和 语句的后面 B) C程序书写格式严格,要求一行内只能写一个 语句 C) C程序书写格式自由,一个语句可以写在多行 上 D) 用C语言编写的程序只能放在一个程序文件中
ቤተ መጻሕፍቲ ባይዱ
3.编程的步骤
• VC6.0开发程序的基本过程:编辑、编译、连接、运行调 试