C语言期末复习
C语言期末复习题
第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。
A. 函数B. 函数和过程C. 超文本过程D. 子程序2.一个C语言程序总是从 B 开始执行。
A. 主过程B. 主函数C. 子程序D.主程序3.C语言的程序一行写不下时,可以。
A. 用逗号换行B. 用分号换行C. 在任意一空格处换行D. 用回车符换行4.以下叙述不正确的是: C 。
A. 在C程序中,语句之间必须要用分号";"分隔B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C. 在C程序中,无论是整数还是实数都能正确无误地表示D. 在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是 D 。
A. ABCB. abcC. a_bcD. ab.c6.下列字符串是标识符的是: A 。
A. _HJB. 9_studentC. longD. LINE 17.以下说法中正确的是: C 。
A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须放在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是: D 。
A. ...\2‟ B. "" C. ...3‟ D. (483)9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: A 。
int k,a,b;unsigned long w=5;double x=1.422;A. x%(-3)B. w+=-2C. k=(a=2,b=3,a+b)D. a+=a=+(b=4)*(a=3)10.在C语言中,字符型数据在内存中以 D 形式存放。
A. 原码B. BCD码C. 反码D. ASCII码11.若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是: A 。
c语言期末复习资料
c语言期末复习资料C语言是计算机科学中非常基础的一门编程语言,是程序员必须掌握的技能之一。
由于其简单易学的特点和广泛的应用范围,越来越多的人开始学习和使用C语言。
期末考试是C语言学习过程中的重要节点,为了帮助考生顺利通过考试,本文整理了一些C语言期末复习资料以供参考。
一、基础知识1.变量和数据类型C语言中的变量用于存储程序中使用的数据,数据类型是指变量所代表的数据的类型。
常见的C语言数据类型包括整型、浮点型、字符型、布尔型等。
掌握变量和数据类型的定义和使用是C 语言学习的第一步。
2.运算符和表达式C语言中的运算符用于对变量进行运算和操作,包括算术运算符、关系运算符、逻辑运算符等。
表达式是由变量和运算符组成的代码段,用于对变量进行操作和计算。
掌握运算符和表达式的使用和规则是C语言学习的基础。
3.条件语句和循环语句条件语句和循环语句是C语言中的两种重要的控制结构。
条件语句根据条件的真假来执行不同的代码段,常见的条件语句包括if语句和switch语句。
循环语句用于重复执行同一个代码段,常见的循环语句包括for循环、while循环和do-while循环。
掌握条件语句和循环语句的使用和应用是C语言学习的重要环节。
二、进阶技巧1.字符数组和字符串字符数组和字符串是C语言中非常常用的数据类型,用于处理字符和文本。
字符数组是由若干个字符组成的数组,字符串是由若干个字符组成的字符串常量。
掌握字符数组和字符串的定义和使用,能够更好地处理文本和数据输入输出等问题。
2.函数和指针函数是C语言中的重要的模块化编程方法,函数将程序的功能分解为若干个具有特定功能的独立模块。
指针是C语言中的重要的数据类型,它存储变量的内存地址,常用于访问复杂数据结构和实现高效的内存管理。
掌握函数和指针的使用和细节能够更好地组织程序和提高程序的执行效率。
3.结构体和文件操作结构体是C语言中用于组织复杂数据结构的数据类型,常用于存储各种类型的数据记录。
大一c语言期末知识点
大一c语言期末知识点在大一的C语言课程中,期末考试是一个很重要的环节。
为了帮助同学们顺利通过考试,以下是一些大一C语言期末考试的重点知识点。
一、基础概念1. C语言的起源和发展历程2. C语言的特点和优势3. C语言程序的结构和运行原理二、数据类型1. 基本数据类型(整型、浮点型、字符型)2. 数组和字符串3. 枚举类型4. 结构体和共用体三、运算符和表达式1. 算术运算符和表达式2. 关系运算符和表达式3. 逻辑运算符和表达式4. 位运算符和表达式5. 赋值运算符和表达式6. 条件运算符(三目运算符)四、控制结构1. 顺序结构2. 分支结构(if语句、switch语句)3. 循环结构(while循环、do-while循环、for循环)4. 跳转语句(break语句、continue语句、goto语句)五、函数和递归1. 函数的定义和调用2. 函数参数(值传递、地址传递)3. 函数返回值4. 递归函数的理解和使用六、数组和指针1. 数组的定义和初始化2. 一维数组和多维数组3. 数组作为函数参数的传递4. 指针的定义和初始化5. 指针的运算和指针与数组的关系七、文件操作1. 文件的打开和关闭2. 文件的读写操作3. 文件指针的理解和使用4. 文本文件和二进制文件的区别与应用八、预处理指令和头文件1. 预处理指令的作用和使用方法2. 头文件的引用和使用以上是大一C语言期末考试的一些重点知识点。
希望同学们在复习过程中能够有针对性地学习和掌握这些知识,提高自己的编程水平和应用能力。
祝大家考试顺利!。
C语言程序设计基础知识期末复习2023年修改整理
C语言程序设计基础知识期末复习一、 C语言与算法1.程序:一组计算机能识别和执行的指令。
2.C语言的特点:运算符丰富(共有34种运算符)、数据类型丰富、具有结构化的操纵语句。
3.C语言程序的结构特点:(1).一个程序由一个或多个源程序文件组成:一个源程序文件中能够包括三个部分:预处理指令、全局声明、函数定义(2).函数是C程序的要紧组成部分:一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个);每个函数都用来实现一个或几个特定功能;被调用的函数能够是库函数,也能够是自己编制设计的函数。
(3).一个函数包括两个部分函数首部和函数体(声明部分:定义在本函数中所用到的变量;对本函数所调用函数进行声明;执行部分:由若干个语句组成,指定在函数中所进行的操作)(4). 程序总是从main函数开始执行(5). C程序对计算机的操作由C语句完成(6.)数据声明和语句后来必须有分号(7.)C语言本身不提供输入输出语句(8.)程序应当包含注释,增加可读性4、算法(1)算法+ 数据结构= 程序(2)顺序结构、抉择结构、循环结构是表示一个良好算法的基本结构(3)算法的特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4)算法流程图:一个流程图包括以下几部分:表示相应操作的框;带箭头的流程线;框内外必要的文字说明。
流程线不要忘记画箭头,否则难以判定各框的执行次序。
算法流程图的结构特点:只有一个入口;只有一个出口(一个推断框有两个出口;一个抉择结构只有一个出口)结构内的每一部分都有机遇被执行到。
也就是说,对每一个框来说,都应当有一条从入口到出口的路径通过它;结构内不存在“死循环”。
二、顺序结构设计5、标识符:用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序列。
C语言对标识符的规定:(1)只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线(2)长度:在TC中最多允许32个字符,建议不要超过8个假如系统规定标识符长度为8,那样x1234567A和x1234567B会被视为同一标识符。
C期末考试复习题(答案)
C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
C语言程序设计期末考试复习题及答案[]
C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
c语言期末复习试题附答案
c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
C语言程序设计期末复习
②doudb!le=
float
f &&
int
(i+1)
int
③dou4b.0le
int
*i
char
+ c double
【14】 A) double, double, double (或float)
B) int, double, char
✓C) int, int, double (或float) D) unsigned, unsigned, int
② 其他可打印(可显示)的字符,如汉字等自然语言 符号(作为字符串的内容)
[注意] C/C++语言是区分大小的语言 !
(详见P377 附录B)
8
zxl.xmu.2014
关键字
关键字/保留字 —— C语言程序中有特殊含义 的英文单词,主要用于构成语句、定义存储类 型和数据类型。
✓ C语言中仅有37个关键字
else continue;
printf("%4d",n); }
break; 仅输出: 100 }
输出【:131】00A1)01fo1r0(3n=1100401;0(n6%1037)&…&…n<=200; n++) printf("%4d",n); B) for (n=100; (n%3)||n<=2仅00输; n出++:) p1ri0n0tf1("0%1 4d",n);
非法字符举例:M.D.John,$123,1AB,d e
11
zxl@xmu
运算符(共34种,详见P378《附录D》)
• 目/元——运算时所需运算对象(操 作数)的个数。
C语言期末考试复习资料
C语言期末考试复习资料C语言复习摘要一、数据类型:基本类型(整型、实型、字符型、枚举类型),构造类型(数组、结构体、共用体)、指针类型、空类型。
基本类型也叫简单类型,构造类型也叫复杂类型二、标识符:标识符只能由字母、下划线、数字构成,且必须以字母或下划线开头,且对字母的大小写敏感。
三、常量1、整型常量,如:32,0x32,0X32,0x3f,0xea,8L,8l,0672、实型常量,如:3.14,1e23,0.8E8,0.8E-8,0.8E+83、字符常量,如:‘a’,‘\n’, ‘\w’,‘\\’,‘\0’4、字符串常量,如:“windows”,“a”,(其赋值表达式和赋值语句中其本质是一个地址常量)5、地址常量,若有定义:int k,a[10];char s[20];则:&k,a,s,NULL都是地址常量6、符号常量,用宏定义实现,如:#define PAI 3.14159267、以下都是非法常量:0xfg,3.1e2.8,‘aw’,‘w\’,0x,068四、表达式(要点:先确定表达式的类型,再确定表达式的值的类型,最后确定表达式的值):1、算术表达式(应注意变量类型的自动转换——原则:低级向高级转换):(1)、整型表达式:参加运算的都是整型量,结果也是整型数。
如:x+20*9+3(2)、实型表达式:参加运算的都是实型量,运算过程中先转换成double型,结果也是double型。
如:x+20*9+3.0,x+20*9+sqrt(3)2、赋值表达式:将赋值运算符“=”右边的值赋给左边的变量,其值为赋值后左边变量的值,类型为左边变量的类型。
如:x=3(注:若x为整型变量,则该表达式的值为整型,若x实型变量,则该表达式的值为实型)3、逻辑表达式:用逻辑运算符(!,&&,||)连接的整型量,结果为整数(0或1)。
逻辑表达式可认为是整型表达式的一种特殊形式。
如:((x=3)&&(y=0))4、关系表达式:用关系运算符将两个表达式连接起来的式子,结果为整数(0或1)。
c语音期末复习题
c语音期末复习题C语言期末复习题一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function2. 在C语言中,哪个运算符用于计算两个整数的平均值?A. /B. %C. +D. ++3. 以下哪个是C语言中的合法变量名?A. 2variableB. variable2C. variable-twoD. variable#24. C语言中,哪个函数用于计算一个浮点数的平方根?A. sqrt()B. square()C. root()D. pow()5. 下列哪个选项是C语言中正确的数组声明?A. int array[];B. int [10] array;C. int array(10);D. int array=10;6. 在C语言中,以下哪个语句用于结束程序的执行?A. break;B. continue;C. exit();D. return;7. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef8. 下列哪个选项是C语言中正确的条件表达式?A. if (x)B. if xC. if (x == 0)D. if (x != 0)9. C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strcat()C. strlen()D. strcmp()10. 在C语言中,以下哪个选项是正确的循环结构?A. do-whileB. do-while-doC. while-doD. do-while-do二、填空题(每空2分,共20分)11. 在C语言中,一个程序的执行从____函数开始。
12. 一个变量的声明包括指定变量的____和____。
13. C语言中的字符串是以____字符结尾的字符序列。
14. 在C语言中,使用____运算符可以对变量进行自增操作。
C语言试题
C语言期末复习题一、单选题:1、已知ch是字符型变量,下面不正确的赋值语句是( B )。
A、ch=…\0‟B、ch=…a+b‟C、ch=…7‟+…9‟D、ch=7+92、以下4组用户定义标识符中,全部合法的一组是(A )。
A、s_5B、IfC、txtD、intabout -max REAL k_2E2 turbo 3COM _0013、C语言中的简单数据类型包括(B )A、整型、实型、逻辑型B、整型、实型、字符型、枚举型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型4、已知:int i=1,j;执行语句j=-i++;后,j的值是(C )A、1B、2C、-1D、-25、已知:int i=5;执行语句i+=++i;后,i的值是(C )A、10B、11C、12D、A、B、C答案都不对7、若x为int型变量, x=6;则执行以下语句后,x的值为( C )。
x+=x-=x*x;A、36B、60C、- 60D、-248、设d为字符变量,下列表达式不正确的是(D )。
A、d=‟g‟B、d=‟a‟C、d=97D、d=”g”9、若a=1,b=2,c=3,d=4;则条件表达式a>b?a:c<d?c:d结果为(B )A、4B、3C、2D、110、printf函数中用到格式符"%8s",其中数字8表示输出的字符串占用8列。
如果字符串长度大于8,则按原字符长从左向右全部输出;如果字符串长度小于8,则输出方式为( B )。
A、从左起输出该字符串,右补空格B、右对齐输出该字符,左补空格C、按原字符长从左向右全部输出D、输出错误信息11、在嵌套的if-else语句中,else总是与(D )配对。
A、其之前最近的ifB、第一个ifC、缩进位置相同的ifD、其之前最近的且不带else的if12、一个C语言程序总是从(B )开始执行。
A、程序的第一个函数B、主函数C、子函数D、主程序13、设x=2.9,a=8,y=3.7,算术表达式x+a%3*(int)(x+y)%5/2的值是 ( A )A、3.9B、4C、4.2D、3.7514、程序片段执行后输出结果是( A )int x=5, y=8;printf ("% d", x<y ? x : (x, y));A、5B、8C、5,8D、编译出错15、下面能正确表示变量a在区间[0,8]或(4,10)内的表达式为:( D )。
C语言程序设计期末考试复习题及答案
C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。
switch(i+1){ case 10: i++。
break。
case 11: ++i。
case 12: ++i。
break。
default : i=i+1。
}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。
中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。
对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。
则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。
函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。
C语言 期末复习
第一章
1)合法的用户标识符由字母,数字,下划线组成。并且 第一个必须为字母或则是下划线。关键字不可以作为用户 标识符号。main define scanf printf 都是关键字。 If是可以做为用户标识符。因为If中的第一个字母大写了 ,所以不是关键字。 2)实型数据的合法形式:
2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。
一个=表赋值,==表判断
• printf输出语句(“ %d%f%ld%lf ”,a,b,c,d);
int float long double
•}
函数调用
• int ss(int a,int b[],int *q) •{
•} • main() •{ • int x,s[10],y; • ss(x,s,&y);
B. 3
C. 4
D. 6
• 69.若已定义 int x=-16,y=-12,z; 语句z=x<=y; 运行后z的值为(
)。
B
A..t.
B. 1
C. .f.
D. 0
• 71. 若定义 int a=2,b=3; 则表达式 !a||b 的值为( )。
A. 0
B. 1
C. 2
D. 3 B
•
73. 下列表达式( 数。
)。 B
A.10
B. 0
C. 34
D. 24
• 46.若已定义 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b 的值为( C )。
A. 0
B. 3
C. 1
D. 2
C语言期末复习资料
《C语言》课程综合复习资料一、单项选择1. 若有如下语句: int *p1,*p2; 则其中int所指的是()A. p1的类型B. *p1和*p2的类型C. p2的类型D. p1和p2所能指向变量的类型2. 下列程序段的输出结果是() x=9; while(x>7) {printf(“*”);x--;}A. ****B. ***C. **D. *3. 下列变量的定义及赋值正确的是()A. int i=0;j;B. char c=”A”;C. double x,y,z; x=y=z=100;D. float a=b=100;4. 设有语句:int x=10; x = x -= x - x;,则执行语句后,x的值为()A. 30B. 20C. 10D. 405. 设有语句:float x=1,y; y=x 3/2; 则y的值是()A. 1B. 2C. 2.0D. 2.56. 设有如下定义和执行语句,其输出结果为()int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b);A. 3 2B. 4 2C. 2 2D. 2 37. 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为()A. strcpy(str1,str2);B. strcpy(str1, “China”);C. strcat(str1,“China”)D. strcat(“Beijing”,str2);8. 设有定义语句:char str[][20]={""Hello"",""Beijing""},*p=str; 则printf(""%d\n"",strlen(p+20)); 输出结果是()A. 0B. 5C. 7D. 209. 设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是()A. 5 11B. 1 9C. 5 9D. 有错误10. 设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是()A. 1,1,1B. 1,2,0C. 0,1,1D. 0,2,011. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为()A. 0B. 1C. 2D. 312. 设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是()A. a&&bB. a<=bC. a||b c&&b-cD. !((a<b)&&!c||1)13. 设有定义 int a[ ]={1,5,7,9,11,13}, *p=a 3; 则*(p-2) , *(a 4) 的值是()A. 5 11B. 1 9C. 5 9D. 有错误14. 设有定义 char *p=“abcde\0fghjik\0”; 则printf(“%d\n”,strlen(p));输出结果是()A. 12B. 15C. 6D. 515. 设有int x=11;则表达式(x *1/3)的值是()A. 3B. 4C. 11D. 1216. 设a=3,b=4,c=-5,则逻辑表达式:a || b c && b==c 的值是()A. 1B. 0C. 非0D. 语法错17. 若有以下定义:int a[10],*p=a; 则*(p+3)表示的是()A. 元素a[3]的地址B. 元素a[3]的值C. 元素a[4]的地址D. 元素a[4]的值18. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是()A. ps 3B. s[3]C. ps[3]D. ps =3,*ps19. C语言中,函数返回值的类型是由()A. return语句中的表达式类型决定B. 调用函数的主调函数类型决定C. 调用函数时的临时类型决定D. 定义函数时所指定的函数类型决定20. C语言提供的合法关键字是()A. swicthB. chaC. CaseD. default二、读程序题1. "#include <stdio.h>void main(){ int a=4,x=3,y=2,z=1;printf(""%d\n"",(a<x ? a : z<y ? z : x));}"2. "#include <stdio.h>void main(){ int x=12,y=0;if(x>=0){ if(x>0) y=10; }else y=-10;printf(“y=%d\n”,y);}"3. "#include <stdio.h>void main(){ int k=1;switch(k){ case 0: printf(""A""); break;case 1: printf(""B"");case 2: printf(""I"");case 3: printf(""G""); break;default: printf(""E"");}}"4. "#include <stdio.h>#define S(x) x*xvoid main(){int a,k=3,m=1;a=S(k+m);printf(""%d"",a);}"5. "#include <stdio.h>int fun(int a, int b){ if(a>b) return(a);else return(b);}void main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf(""%d\n"", r);}"6.#include <stdio.h&>void main(){ int k=4,n=0;for(;n<k;){ n++;if(n%3!=0) continue;k- -;}printf(""%d,%d\n"",k,n);}三、编程题1. 写一个判断素数的函数。
C语言程序设计期末考试复习题及答案
C语言考试期末考试复习题及答案一、选择题(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10;switch(i+1){ case 10: i++; break;case 11: ++i;case 12: ++i; break;default : i=i+1;}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e);中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0 D) 运行时出错(5) 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)));函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和3. 以下定义语句中正确的是( C )A)char a='A'b='B'; float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a;4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);8.有以下程序(a)main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c9.有以下函数定义:(c)void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x)10.已定义c为字符型变量,则下列语句中正确的是(c)A)c='97'; B)c="97"; C)c=97; D)c="a";11.以下能正确定义一维数组的选项是(b)A)int num[]; B) #define N 100 C)int num[0..100]; D) int N=100;int num[N]; int num[N];12.以下能正确定义数组并正确赋初值的语句是(d)A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};13.有以下程序(a)main(){ int i;for (i=0; i<3; i++)switch (i){ case 1: printf("%d ", i);case 2: printf("%d ", i);default : printf("%d ", i); }}执行后输出结果是A)011122 B)012 C)012020 D)12014.有以下程序(d)main(){ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;while(i<7 && p[i]%2) { k =k+ p[i]; i++; }printf("%d\n", k);}执行后输出结果是A)58 B)56 C)45 D)2415.以下叙述中正确的是(c)A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点16.下列叙述中正确的是(d)A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型17.以下叙述中正确的是(a)A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分二)阅读程序,写出程序运行结果(1) #include<stdio.h>main(){ char ch=’A’;ch=(ch>=’A’&& ch<=’Z’)?(ch+32):ch;printf(“%c”,ch);}程序的运行结果是:(2) #include<stdio.h>main( ){ int sum=0,i=11;while (i<=10){sum=sum+i;i++;}printf(“%d”,sum);}程序的运行结果是:(3) #include<stdio.h>main(){ char str[ ]=”1a2b3c”;int i;for(i=0;str[i]!=’\0’;i++)if (str[i]>=’0’ && str[i]<=’9’) printf(“%c”,str[i]);}程序的运行结果是:(4) main(){ int a,b;a=5;b=8;p(a+b,a);}p(int x,int y){y=x+y;printf(“%d %d”,x,y);}程序的运行结果是:(5) #include<stdio.h>void main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int j,s=1;for(j=0;j<=2;j++)s=s*a[j][j];printf("%d",s);}程序的运行结果是:Key: (1) a (2) 0 (3) 123 (4) 5 13 13 18 (5) 45 三)改错题(每个程序只有一个错误,填入错误语句所在的行号以及修改后的语句)(1)下段程序的功能是先输入一个整数,然后将输入的整数输出。
期末复习 C语言知识点归纳
期末复习C语言知识点归纳一、概述部分主要考察知识点:C程序的结构特点;C程序的扩展名;程序的开发过程;函数的构成;C语言使用的基本符号:ASCII字符集;标识符的命名规则;关键字、用户自定义标识符1.C程序的基本模块是函数,一个C语言源程序可以由一个或多个函数组成,有且只有1个main()函数,可以放在程序中的任何位置.2.函数的定义是平行的,不能嵌套定义,但可以进行嵌套调用。
3.一个C程序不论有几个函数,都是从main()函数开始执行.4.C源程序文件的扩展名".c"。
5.VC++6.0下C语言程序的完整实现过程包括4个基本步骤:●编辑形成源文件(.c)●编译,形成目标文件(.obj)●链接,形成可执行文件(.exe)●运行.6.函数的构成:变量定义、语句、注释7.标识符按照C语言所定义的规则来命名的符号,用作变量名、数组名、函数名等,系统定义的关键字也遵循该规则。
规则:由字母、数字、下划线组成,第一个字符必须是字母或下划线。
C语言中的标识符分:关键字、用户定义标识符例如:area、a234、_1234为合法标识符6x、a-b、a+b为非法标识符注意:标识符区分大小写。
PRINTF和printf是不同的标识符用户自定义的标识符应避开C语言的关键字及库函数名。
4.c语言的32个关键字:看附表,留印象二、数据类型、常量、变量、表达式注意:常用数据类型的关键字;常量的表达形式;变量的定义及赋值;各类表达式的计算规则;不同数据类型数据混合运算时的类型转换;典型问题:数据的混合计算、整数的分解、数据交换1.数据类型c语言中,整型、实型、字符型是最基本的数据类型.此外还有构造类型,如数组,结构体,共用体等。
2.常量指在程序运行中,其值不能被改变。
分为整型常量、实型常量、字符常量、字符串常量。
●整型常量C语言中主要有十进制、八进制、十六进制等:8进制以0引导,16进制以0x或0X引导,十进制不能以0开头.十进制例如12、-3、32767等。
C语言考点重点复习资料
"%d%d%d"是按十进值格式输入三个整数值。 输入时, 在两个数据之间可以用一个或多个空格、 tab 键、回车键分隔。
8、二维数组定义时下标值缺省的规则。 9、printf 函数输出数据时总长度和小数位数的确定。12d 10、指向数组的指针灵活运用的问题。(例如:已知:char s[10] ,*p=s;下列 错误的表达式是:s=p+5 p=s+5 s[2]=p[3] *p=s[0]) 11、自增自减运算符“先用后增减,先增减后用”的问题。 12、字符串复制函数和字符数组(串)长度的概念和运用。(例如:satic char str[ ]=”bei jing” ;则执行下列语句后的输出结果为? printf(“%d\n”,strlen(strcpy(str,”hello!”))); 另外:char a[]=”abcde”,b[]={a’,’b’,’c’,’d’,’e’};中 a 与 b 的区别和联系。
{t=a;a=b;b=t;}{a+=b;b=a-b;a-=b;}
32、编写求出矩阵 a 的主对角线上的元素之和的程序。 main( ) { int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for (i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum=sum+( a[i][j]); printf("sum=%d\n",sum); } 33、以下程序的运行结果是? main( ) { increment( ); increment( ); increment( ); } increment( ) { static int x=0; x+=2; printf("%d",x); } 非常重要,自行分析! 34、以下程序的运行结果是? void main ( ) { static int a[10],i; for (i=0;i<10;i++) a[i]=i+1; for (i=0;i<10;i=i+2) printf(“%d”,*(a+i)); } 非常重要,自行分析! 35、编写程序输出所有大写字母和其对应的 ASCII 码值。 程序填空,有 1 处,非常简单,但也要注意! 36、编写程序将一个字符串 S 的内容颠倒过来。 程序填空,有 2 处,例如:
总复习
《C语言程序设计》
七、完善程序(每空3分,共15分)
下列程序从键盘上输入一个字符串,利用sCopy 函数完成字符串的复制,并在主函数中输出复制 之后的字符串,请将程序补充完整。 char *to,char *from void sCopy (_____________________) { while((____________)!=‟\0‟) *to=*from { to++; from++; } }
《C语言程序设计》
三、判断(每小题1分,共10分)
1.( × )C程序经过编译、连接后没有错误,该 程序肯定是正确的。 2.( × )任何情况下,字符型数据和整型数据 都是通用的。 3.( √ )任何for语句都可以改写成while语句。 4.( × )表达式5/2*5的值为12.5。 5.( × )C语言函数可以嵌套定义,也可以嵌套 调用。 6.( √ )实参可以是常量、变量或表达式,而 形参必须为变量。 7.( √ )若有int a[5],*p;则p=a;与p=&a[0];等 价。
C语言期末总复习
期末考试题型、分数及示例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》期末复习题一、选择题1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。
A. cppB. exeC. objD. C2. C语言程序的基本模块为()。
A. 表达式B. 标识符C. 语句D. 函数3. 设x和y均为逻辑值,则x||y为假的条件是()。
A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假4. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==55. 在下面的字符数据定义中,()语句有语法错误。
A. char a[20]=”abcdefg”;B. char a[]=”x+y=55”;C. char a[15]={‘1’,’2’};D. char a[10]=’5’;6. 若用数组名作为函数调用的实参,传递给形参的是()。
A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数7. 假定a为一个整型数组名,则元素a[4]的地址比该数组的首地址大( )个字节。
A. 4B. 8C. 16D. 328. 下列给字符数组赋初值时,正确的是()。
A. char s1[]="abcdef";B. char s2[4]="abcd";C. char s3[2][3]={"abc","xyz"};D. char s4[4][]={'a','x','s','t'};A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p; p=&s;9. 变量s已定义为“char *s=”Hello world!”;”要使变量p指向s所指向的同一个字符串,则定义为()。
A. char *p=s;B. char *p=&s;C. char *p;p=*s;D. char *p;p=&s;10. 要使p指向二维整型数组a[10][20],p应定义为()。
A. int *p=a;B. int **p=a;C. int *p[20]=a;D. int(*p)[20]=a;11.若有以下说明和语句,则输出结果是()。
char s[12]="a book!";printf("%d",strlen(s));A. 12;B. 8;C. 7;D. 11;12.下列程序语句的输出结果是()。
char sp[]="\t\v\\\0will\n";printf("%d",strlen(sp));A. 14;B. 3;C. 9;D. 字符中有非法字符;13.对于下列程序段,当输入“welcome”时,程序的输出结果是()。
char m[20];char n[30]="you are";gets(m);strcat(n,m);puts(n);you are are youare welcome arewelcome14. 当输入“jianqiao2012”时,下列程序段的输出结果是()。
char st[20];char stt[]="nihao";gets(st);strlwr(st);strcat(st,stt);puts(st);语言可以执行程序从()开始执行。
A.程序中的第一条可执行语句B.程序中的第一个函数C.程序中的main函数D.包含文件中的第一个函数16.若定义如下函数:sub(int x){ float y;y=3*x-4?;return y?;}则该函数的数据类型是()。
A.int B.不确定C.void17.在下面关于C函数定义的叙述中,正确的是()。
A.函数可以嵌套定义,但不可以嵌套调用B.函数不可以嵌套定义,但可以嵌套调用C.函数不可以嵌套定义,也不可以嵌套调用D.函数可以嵌套定义,也可以嵌套调用。
18.以下程序的输出结果是()。
#include <>main( ){int a[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf("%d,%d",*p,*(p+3));}A.1,6 B.2,4 C.1,4 D.2,619.以下程序段:int *p,a,b=1?;p=&a?;*p=10?;a=*p+b?;B.11 D.编译出错20.若有定义:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是()。
A.i=*p; B.*p=*&j; C.i=&j; =**p;二、填空题1.表达式x=x+y表示成复合赋值表达式为_____。
2.关系表达式(x==0)的等价表达式为________。
3. 假定不允许使用逻辑非操作符,则逻辑表达式x>3 && x<10的相反表达式为_______.4.若x=5,y=10,则x!=y的逻辑值为____。
5. 假定x=5,则执行“int a=(! x10: 20) ;”语句后a的值为。
6. 若while循环的“头”为“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__________次后正常结束。
7. 假定二维数组的定义为“char a[3][5];”,则该数组所含元素的个数为_____。
8. 假定二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为 _。
9. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的________类型。
函数用于计算一个字符串的______。
11. strcat函数用于把一个字符串____到另一个字符串之后的存储空间中。
12.函数中的形参变量的初值由调用该函数时对应的_____值决定。
13. 程序的编译是以__________为单位进行的。
14. 假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为____。
15.假定a是一个一维数组,则a[i]的指针访问方式为__ ______。
16.假定p是一个指向整数对象的指针,则用________表示该整数对象。
17.在C语言中,凡不参加类型说明的函数,自动按处理。
18.函数的实参传递到形参有两种方式:和。
三、写出下列每个程序运行后的输出结果1. #include <>void main(){int i,a[10];for(i=0;i<=8;i++)a[i]=i;for(i=8;i>=0;i--)printf("%d ",a[i]);printf("\n");}2. #include <>main(){ char c[10]={'I',' ','a','m',' ','a',' ','b','o','y'};int i;for(i=0;i<10;i++)printf("%c",c[i]);printf("\n");}3.#include <>void main(){ char diamond[][5]={{' ', ' ','*'},{‘ ','*',' ','*'},{'*', ' ', ‘ ', ' ' ,'*'},{' ','*', ' ','*'},{' ', ' ','*'}};int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%c",diamond[i][j]);printf("\n");}}4. main(){ int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("Max is %d",c);}max(int x, int y){ int z;z=x>y?x:y;return(z);}5. #include<>void main() {int a[8]={36,25,48,24,55,40,18,20};int i, b1, b2;a[0]<=a[1] (b1=a[0], b2=a[1]):(b1=a[1],b2=a[0]);for(i=2; i<8; i++)if(a[i]<b1) {b2=b1; b1=a[i];}else if(a[i]<b2) b2=a[i];printf("%d %d\n",b1,b2);}6.#include<>void main(){int a[10]={76,63,54,62,40,75,80,,84,44,73};int b[4]={60,70,90,101};int c[4]={0};int i,j;for(i=0;i<12;i++){j=0;while(a[i]>=b[j]) j++;c[j]++;}for(i=0;i<4;i++) printf("%d ",c[i]);printf("\n");}7. #include <>main(){ int x=7,y=9;printf("x=%d,\ty=%d\n",x,y);printf("swapped:\n");swap(x,y);printf("x=%d,\ty=%d\n",x,y);}swap(int a,int b){ int temp;temp=a; a=b; b=temp;}8. main(){ int a,b;scanf("%d,%d",&a,&b); 设a=30,b=54printf(“a=%d,b=%d\n”,a,b);printf(“swapped:\n”);swap(&a,&b);printf(”a=%d,b=%d\n",a,b);}swap(p1,p2)int *p1,*p2;{ int p;p=*p1;*p1=*p2;*p2=p;}9. #include<>void main(){int a[8]={4,8,12,16,20,24,28,32};int *p=a;do{printf("%d ",*p);p+=2;}while(p<a+8);printf("\n");}10. #include<>void LE(int* a, int* b){int x=*a;*a=*b; *b=x;}void main() {int x=15, y=26;printf("%d %d\n",x,y); LE(&x,&y);printf("%d %d\n",x,y); }11. main(){ int i=2,p;p=f(i,++i);printf("%d",p);}int f(int a, int b){ int c;if(a>b) c=1;else if(a==b) c=0;else c=-1;return(c);}12.#include <>void main(){int a,b;int *pointer_1,*pointer_2;a=100;b=10;pointer_1=&a;pointer_2=&b;printf("%d,%d\n",a,b);printf("%d,%d\n",*pointer_1,*pointer_2);}13.main ( )int *p1,*p2,*p,i1=10,i2=20;p1=&i1;p2=&i2;printf(“%d,%d\n”,*p1,*p2);p=p1;p1=p2;p2=p;printf(“%d,%d\n”,*p1,*p2);}14.void main(){ int a []={5,8,7,6,2,7,3};int y,*p=&a[1];y=(*--p)++;printf(“%d ”,y);printf(“%d\n”,a[0]);}15。