专升本C语言历年考试题及答案(一)程序设计语言的发展1、机器语言2、汇编语言3、面向过程的语言4、面向对象的程序设计语言(二)C程序设计语言的执行过程1、编辑2、编译3、连接4、执行(三)用库函数组装C程序例1:计算2.1715的正弦值。#include“math.h”main(){floata;/*定义a为实型变量*/a=sin(2.1715);/*调用sin函数*/printf(“%f\n”,a);/*调用printf函数,输出a的值*/}详解:1、在本例中用到的sin函数称为数学函数,它是为了用户使用方便,由一批厂家开发编写的函数,并不是C语言的一部分。在使用数学函数时,往往要用到函数执行时所需的一些信息(例如宏定义),这些信息包含在“math.h”中。因此在程序开头用#include“math.h”将有关的标头文件包括到程序中。2、一个C语言源程序文件由一个或多个函数组成,C语言的基本组成单位是函数。一个完整的C语言程序有且只有一个称为主函数的main函数,程序总是从main函数开始执行,调用其它函数后再回到main函数,在main函数中结束整个程序的运行。3、main是函数名称,没有参数可以不写,但圆括号不能省略,main()后面有一对花括号,花括号内的部分称为函数体,main函数可以在程序的任意位置。4、C规定每个语句以分号(;)结束,分号是语句不可缺少的组成部分,每行中可以写多条语句。5、/*与*/之间为注释信息,对程序运行结果不发生影响,也不被编译,注释说明可以放在语句的任意位置。6、floata;此语句是把a定义为一个实型变量。7、C语言本身没有输入、输出语句,本例使用prinft函数输出数据。prinft函数的括号内包括两部分内容:双引号内的部分、双引号外的部分。双引号内的部分是“格式字符串”,用于指定输出专升本C语言历年考试题及答案双引号外的变量的打印格式。此例中双引号中有一个”%f”,它是输出一个保留小数点后6位数字的格式字符,小数点前的位数不指定。二、练习(一)选择题1、以下叙述正确的是_C___。(A)在C程序中,main函数必须位于程序的最前面(B)C程序的每行中只能写一条语句(C)C语言本身没有输入输出语句(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误2、C语言规定:在一个源程序中,main函数的位置___C_。(A)必须在最开始(B)必须在系统调用库函数的后面(C)可以任意(D)必须在最后3、一个C语言程序是由____B。(A)一个主程序和若干子程序组成(B)函数组成(C)若干过程组成(D)若干子程序组成4、一个C程序的执行是从A____。(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束5、以下叙述不正确的是__D__。(A)一个C源程序可由一个或多个函数组成(B)一个C源程序必须包含一个main函数(C)C程序的基本组成单位是函数(D)在C程序中,注释说明只能位于一条语句后面(二)填空题:专升本C语言历年考试题及答案1、一个C源程序中至少包括一个__main函数____。2、在一个C源程序中,注释部分两侧的分界符分别为____/*____和_*/_______。第二章数据描述与基本操作一、主要知识点(一)C的基本数据类型节短整型(short)整型整型(int)基本类型字符型(char)长整型(long)实型(浮点型)单精度型(float)枚举类型双精度型(double)数据类型构造类型数组类型结构类型(struct)指针类型共用类型(union)空类型(void)文件类型(FILE)(二)常量和符号常量1、常量定义:在程序运行过程中,其值不能被改变的量称为常量。常量常区分不同的类型,如12、0、-3为整型常量,’a’、’D’为字符常量。2、符号常量:用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。常量不同于变量,它的值在作用域内不能改变,也不能再被赋值。例1:已知商品的单价及数量求商品的总价值。#definePRICE30main(){intnum=10,total;total=num*PRICE;printf(“total=%d”,total);}输出结果:total=300专升本C语言历年考试题及答案详解:1、程序中用#define命令行定义PRICE代表常量30,此后凡在此文件中出现的PRICE都代表30,可以和常量一样进行运算。2、符号常量不同于变量,它的值在其作用域内不能改变,也不能再被赋值。如再用以下赋值语句给PRICE赋值:PRICE=40;是错误的。(三)变量1、变量定义:其值可以改变的量称为变量。2、标识符的命名规范和其它高级语言一样,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符,C语言中的标识符命名规范为:①变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。②C语言中标识符的长度(字符个数)无统一规定,随系统而不同。许多系统(如IBMPC的MSC)取前7个字符,假如程序中出现的变量名长度大于7个字符,则只有前面7个字符有效,后面的不被识别。③C语言有32个关键字(例如if、else、while)它们已有专门含义,不应用采用与它们同名的变量名。④C语言将大写字母和小写字母认为是两个不同字。例2:在下列符号中,可以选用哪些作变量名?哪些不可以?a3B3aB∏+a-b*x$_b5_ifnext_daye_2OK?integerMAXNUMBERi*j答案:_b5_a3Bnext_daye_2MAXNUMBER可作变量名,其它的作变量名不可以。详解:①MAXNUMBER可作变量名。习惯上符号常量名用大写,变量名用小写以示区别,但大写字母作变量名并无错误。②if、integer属于保留字,保留字不可作变量名。③∏+a-b*x$OK?i*j不可作变量名,因为变量名只能由字母、数字和下划线三种字符组成。④3aB不可作变量名,因为变量名的第一个字母必须为字母或下划线。(四)整型数据1、整型常量专升本C语言历年考试题及答案整型常量即整常数。C语言整常数可用以下三种表示形式。①十进制表示。如231、-56.478②八进制表示。以0开头的数是八进制数。如0123即(123)8=1*82+2*81+3*80=64+16+3=83。③十六进制表示。以0x开头的数是16进制。如0x123即(123)16=1*162+2*161+3*160=256+32+3=291。2、整型变量整型变量分为:基本型、短整型、长整型、和无符号型四种。①基本型,以int表示②短整型,以shortint表示或以short表示③长整型,以longint表示,或以long表示④无符号型,存储单元中全部二进制位(bit)用作存放数本身,而不包括符号。无符号型中又分为无符号整型、无符号短整型和无符号长整型,分别以unsignedint、unsignedshort和unsignedlong表示。3、整型数据的取值范围C标准没有具体规定各类型所占内存字节数,各种机器处理上有所不同,以IBMPC为例,数的范围如表2.1所示。表2.1所占位数数的范围Int16-32768~32767即-215~(215-1)short[int]16-32768~32767即-215~(215-1)Long[int]32-2147483648~2147483647即-231~(231-1)Unsigned[int]160~65535即0~(216-1)Unsignedshort160~65535即0~(216-1)Unsignedlong320~4294967295即0~(232-1)4、整型常量的分类①一个整常量,如果其值在-32768~32767范围内,认为它是int型,它可以赋值给int型和longint型变量。②一个整常量,如果其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它是longint型,可以将它赋值给一个longint型变量。③如果某一计算机系统的C版本确定的shortint与int型在内存中占据的长度相同,则一个int型的常量出同时一个shortint型常量。专升本C语言历年考试题及答案④常量中无unsigned型。但一个非负值的整常量可以赋值给unsigned型整变量,只要它的范围不超过变量的取值范围即可。例如:将50000赋给一个unsignedint型变量是可以的,而将70000赋给它是不行的(溢出)。⑤在一个整常量后面加一个字母l或L,则认为是longint型常量。(五)实型数据1、实型常量实数在C语言中又称为浮点数。实数有两种表示形式:①十进制形式。它由数字和小数点组成(注意必须有小数点)。例如:0.123、.123、123.0、0.0都是十进制数形式。②指数形式。如123.56e4或123.56E4都代表123.56*104。但字母e(或E)之前必须有数字,e后面指数必须为整数。例如:e3、2.1e3.5、.e3、e等都不是合法的指数形式。例3:下面四个选项中,均是不合法的浮点数的选项是_____。(A)160.0.12e3(B)1232e4.2.e5(C)-.18123e40.0(D)-.e3.2341e3答案:B详解:①160.0.12-.18123e40.0.2341e3是实数的十进制形式或指数形式。②e32e4.2.e5-.e3不是正确的指数形式。因为正确的字母e(或E)之前必须有数字,e后面指数必须为整数。对于数据表示形式.e5以及-.e3,e前的.与-.不是有效的数字表示形式。③123是整数形式。2、实型变量C实型变量分为单精度(float型)和双精度(double型)两类。在一般系统中,一个单精度型数据在内存中占4个字节(32位),一个double型数据占8个字节。一个单精度型变量能接收7位有效数字,一个double型变量能接收17位有效数字,数值的范围随机器系统而异。在IBMPC中,单精度实数的范围约为±(3.4E10-38~3.4E1038),双精度实数的范围约为±(1.7E10-308~1.710308)。例4:main(){floata;a=111111.666666;专升本C语言历年考试题及答案printf(“%f”,a);}输出结果:111111.640621详解:①一个实型常量不分float型和double型。一个实型常量可以赋给一个float型或double型变量。根据变量的类型截取实型常量中相应的有效位数字。②由于float型变量只能接收7位有效数字,因此在把111111.666666赋给a时,a只接收了111111.6,由于输出函数printf中的%f格式表示输出小数点后的6位小数,所以111111.6后的40621属于无意义数字。③如果a改为double型,则能全部接收上述12位数字。(六)字符型数据1、字符常量:①普通形式的字符常量:用引号(即撇号)括起来的一个字符,如’a’、’D’、’$’、’?’等都是字符常量。②转义符:以“\”开头的字符序列。常用的以“\”开头的特殊字符见表2.2表2.2字符形式功能\n换行\t横向跳格\v竖向跳格\b退格\r回车\f走纸换页\\反斜杠字符\’单引号字符\ddd1到3位8进进制所代表的字符\xhh1到2位16进制数所代表的字符例5:若有说明语句:charc=’\729’;则变量c_____。(A)包含1个字符(B)包含2个字符(C)包含3个字符(D)说明不合法答案:D详解:”\”后可以有1到3位8进制所代表的字符,本题中”\”后的”72”属于8进制所代表的字符,专升本C语言历年考试题及答案而”9”则不属于8进制位所代表的字符,则’\729’中包含了两个字符常量’\72’和’9’。而字符常量是用引号(即撇号)括起来的一个字符,所