C语言基础知识详解_第1页
C语言基础知识详解_第2页
C语言基础知识详解_第3页
C语言基础知识详解_第4页
C语言基础知识详解_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 C语言基础知识一、选择题1 .算法具有五个特性,以下选项中不属于算法特性的是 。A)有穷性B)简洁性C)可行性D)确定性【答案】B【解析】本题考查的是算法的特性。一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入:由一个或多个输出。简洁性不属于这5个特性,所以本题应该选择Bo2 .以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识【答案】A【解析】本题考查 C语言中标识符的概念。用用户标识符是由字母、数字和下划线组成,并且第一个

2、字符必须为字母 或下划线,并且不能与 C语言关键字相同。所以本题应该选择Ao3 .以下4组用户定义标识符中,全部合法的一组是()A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 【答案】A【解析】本题考核的知识点是C语言中的标识符命名规则。标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项 C中3COM

3、不是由字母或下划线开头,故选项c不正确;选项 D中int为C语言中的关键字,故选项D不正确;选项 A中全部为合法的标识符,所以,4个选项中选项 A符合题意。4 .以下选项中,合法的一组 c语言数值常量是()A)028B)12.C).177D)0x8a.5e-30Xa234e1.510,000-0xf 4.5e0 0abc 3.e5【答案】B【解析】本题考查的知识点是:数值常量。数值常量分为整型和实型两类。其中,整型有十进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。十进制和书面使用的数据表示一样;八进制是以数字O开头,后面跟由07组成的八进制数组成;十六进制是以0x(或O

4、X)开头,后面跟由09与AF(或af)组成的十六进制数组成;小数形式由数字和小数点组成,其整数部分或小数部分如果为0可省略,但不能同时省略。指数形式由小数形式或十进制形式开头,后面跟 e(或E),再跟一个十进制整数组成。选项A中,028是八进制形式,但后面跟的8不在07之内,所以非法;选项 c中,4e1.5是指数形式,但e后面所跟的不是整数,所以非法;选项 D中,10,000中不能有“,”,所以非法。故本题应该选择B。5 .以下叙述中正确的是()A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行

5、D)C语言中的函数不可以单独进行编译【答案】B【解析】本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个 C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二 进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编 译的各个模块的目标代码与系统提供的标准模块链接后才能运行:链接,将各模块的二进制目标代码与系统标准模块 经链接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件:执行,执行一个经过编译和链接的 可执行的目标文件。由以上定义可知,

6、选项 A)C)D均不正确。所以,4个选项中选项B符合题意。6 .下列叙述中正确的是A每个C程序文件中都必须要一个 main()函数B)在C程序中main()函数的位置是固定C) C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数【答案】D【解析】本题考查的知识点是函数。每一个c程序中都必须有且只有一个main ()函数但一个 C程序可以由多个程序文件组成,所以并非每个 c程序文件中都必须要有一个main()函数,故选项 A不正确。c语言并未对 main()函数的位置作要求,因此选项 B也是错误的。C语言中,在一个函数被调用之前一定要先声明该函数,所以定

7、义靠后的函数若 在前面没有声明该函数的原型,是不能被定义靠前的函数所调用的,即除数函数数之间的调用并非与函数所在位置无 关,所以选项 C不正确。故本题的正确答案应该为选项D7 .下列叙述中错误的是()A)计算机不能直接执行用 C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为 .obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行【答案】D【解析】本题考查的知识点是:c语言的基本概念。c语言源程序经过 c语言编译程序编译后,会生成一个二进制文件,后缀为 .obj,称为目标文件。然后

8、还要经过“连 接程序”,把此.obj文件与c语言提供的各种库函数连接起来,生成后缀为.exe的可执行文件,才能够运行。故本题中只有选项D是错误的。8 .以下叙述中错误的是()A)C语百是一一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法【答案】c【解析】本题考查的知识点是:结构化程序设计。结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。故本题中选项c是错误的。9 .用C语言编写的代码程序A)可立即执行 B)是一个

9、源程序。经过编译即可执行 D)经过编译解释才能执行【答案】B【解析】本题考核的知识点是c程序的基本概念。c语言一种高级语言,c语言源程序经过 c语言编译程序编译之后,生成一个后缀为.OBJ的二进制文件(称为目标文件),晟后还要由称为“链接程序”(Link)的软件,把此QBJ文件与c语言提供的各种库函数连接在一起,生成一个后缀.EXE的可执行文件。显然 c语言不能立即执行,故选项 A错误;根据以上定义。选项 C和选项D错误,所以,4个选项中选项 B符合题意。10 .结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B) 只能完成部分复杂的任务C)只能完成符合结构化的任

10、务D)只能完成一些简单的任务【答案】A【解析】本题考核的知识点是c程序的三种基本结构。C程序由三种基本的结构组成,分别为顺序结构、选择结构和循环结构,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务,故选项B)选项c和选项D都不正确。所以,4个选项中选项 A符合题意。11 . C语言源程序名的后缀是()A).exe B).C C).obj D).cp【答案】B【解析】本题考查的知识点是:c语言的基本概念。c语言源程序的后缀为.c;经过编译得到的目标程序文件的后缀为.obj ;再将目标程序文件链接后得到可执行文件的后缀为验证.exe。故本题应该选择 Bo12 .以下叙述中错误的是A)

11、 C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D :'.喊爬*达式木巴分匕就闷成肮1直千句【答案】C【解析】本题考查了 C语言中语句的一些概念。C语句必须以分号结束,选项A是正确的。复合语句在语法上被看作一条语句,选项 B也是正确的。空语句也算是一条语句,因此如果空语句出现在条件或者循环语句中,一样会被当作 条件子句或者循环体来看待,所以选项C是错误的。赋值表达式末尾加分号就构成赋值语句,选项D正确。故本题应该选择Co13 .以下能正确定义且赋初值的语句是A) int n1=n2=10; B ) char c=32; C ) floa

12、t f=f+1.1; D ) double x=12.3E2.5; 【答案】B【解析】本题考查的知识点是变量赋初值。选项 A中的语句只能起定义 nl的作用,而n2=10是n1的初始值表达式, 但因前面没有定义过 n2,所以编译会报错“ n2未定义”,故不正确。选项 B使用一个整数初始化一个字符变量是正确 的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项c定义的初始值表达式中出现了它自身,某些编译器能通过编译,但 f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。

13、14 .有以下程序main() char a1='M', a2='m' printf("%cn", (a1, a2) ); 以下叙述中正确的是A)程序输出大写字母M B )程序输出小写字母 mC)格式说明符不足,编译出错D)程序运行时产生出错信息【答案】B【解析】本题考查的是逗号表达式。因为整个逗号表达式的值为逗号表达式最后一个子表达式的值,所以本题输出的是a2的值'm'。故应该选择 Bo15 .以下符合C语言语法的实型常量是() A)1.2E0.5 B)3.14.159E C).5E-3 D)E15【答案】C【解析】本题考核

14、的知识点是实型常量和指数形式表示数的书写格式。实型常量只能用十进制形式表示,不能用八进制或十六进制形式表示,实型常量可以用小数形式或指数形式表示,在C语言中,可以用指数形式将实型常量表示为数值和指数两部分,数值部分不能为空,指数部分只能为整数表示。选项A中1.2和0.5都不是整数,故选项 A不正确;选项B中3.14159也不是整数,故选项 B不正确;选项 D中数值分不能为空,故选项D也不正确;所以,4个选项中选项C符合题意。16 .若以下选项中的变量已正确定义,则正确的赋值语句是() A)x1=26.8%3; B)1+2=x2 ;C)x3=0x12; D)x4=1+2=3;【答案】C【解析】本

15、题考核的知识点是C语言中对变量赋值的应用。赋值操作由赋值运算符“=”来完成,一般形式为变量 =表达式,赋值的方向为由右向左,即将“=”右侧表达式的值赋给“=”左侧的变量,执行步骤是先计算再赋值。选项 A中运算符“”的运算对象必须为整数,而选项 A中26.8不是整数,故选项 A不正确;选项B将一个变量赋值给一个 表达式,这在 C语言中是不允许的,故选项B不正确;选项 D中也是将一个常量 3赋值给一个表达式,故选项D不正确;所以,4个选项中选项 C符合题意。17 .设有以下定义int a=0;double b=1.25;char c= ' A';#define d 2则下面语句中错

16、误的是() A)a+; B)b+ ;C)c+; D)d+;【答案】D【解析】本题考核的知识点是自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表 达式和常量。本题中,#define d 2定义了 d为常数2,不能在对d进行自加运算。故选项D是个不正确的语句,所以,4个选项中选项 D符合题意。18 .设有定义:float a=2,b=4,h=3;, 以下C语言表达式与代数式 1/2(a+b)h 计算结果不相符的是() A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)【答案】B【解析】本题考核的知识点是将简单的数学

17、表达式表示成合法的C程序的语句。选项B中由于l和2都是整型,其1/2的运算结果为0,故整个表达式的值为 0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4个选项中选项B符合题意。19 .有以下定义语句1门 a.b: i'T.飞:1m"啥 c;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b+ B)w%(int)a+b)1 (匚+忙;为 Gn .)匕 口为:一匕一h;【答案】C【解析】本题考核的知识点是c语言中一些运算符的简单应用。选项A中不是合法的赋值语句,将最右边的第一个赋 值表达式加才号即为 a=b+(b=b+)才正确,故选项 A不正确;选项

18、B中运算符“”的对象必须是整型,而在选项 B 中(int)a+b 为double型,故选项 B不正确;选项 a,b都为double "="应该改为"=",故选项 D不正确。所以,4 个选项中选项c符合题意。20 .有以下程序main() int m=3,n=4,x;x=-m+;x=x+8/+n;printf("%dn",x);程序运行后的输出结果是A)3 B)5 C)-1 D)-2【答案】D【解析】本题考核的知识点是运算符的优先级。主函数中首先定义了整型变量m n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条 x=-m+

19、等价于X=-(m+),其值即为-3 ,第二条x=x+8/+n等价于x=+8/(+n),即 为x=-3+8/5=-2 ,因此最后输出x的值为-2。所以,4个选项中选项 D符合题意。21 .有以下程序main() char a='a',b;print("%c,",+a);printf("%cn",b=a+);程序运行后的输出结果是A)b,b B)b,c C)a,b D)a,c【答案】A【解析】本题考核的知识点是运算符+的用法。程序中的第一个输出语句输出表达式+a的值,该+a是在使用a之前,先使a的值加1,即为a力口 1为字符b,此时a的值为b

20、,所以第一个输出语句输出的值为b,第二个输出语句中输出的b的值,这时b的值为表达式a+的值,a+是在使用a之后(此日a的值为b,所以赋给b的值为b),使a的值加 一,因此第二个出的值也为b。所以,4个选项中选项 A符合题意。22 .有以下程序main() char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("c,%c,%c,%cn",a,b,c,d);若运行时从键盘上输入:6,5,65,66。则输出结果是A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D

21、)6,5,6,6【答案】A【解析】本题考核的知识点是字符表示。主函数中首先定义了 4个字符变量A)B)C) d ,然后通过scanf()函数输入A)B)C)d。输入中a和b是按字符格式c输入的,c和d是按整型符号d输入的。在看下面的 printf() 函数中,要求 A)B)C)d都按字符输出,故a和b原样输出为6、5、c和d将把与其ASCII码对应的字符输出,65和66的ASCII码对 应字符A和B,故最后的输出为« 6, 5, A, B"。所以,4个选项中选项 A符合题意。23 .以下关于long、int和short类型数据占用内存大小的叙述中正确的是()A)均占4个字节

22、 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D) 由c语言编译系统决定【答案】D【解析】在c语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo C 2.0中,int占2个字节,但在 Visual C+6.0(VC6 可以用做c语言编译器)中占4个字节。故本题应该选择D。24 .以下不合法的字符常量是A) '018'B) '"'Q ''D) 'xcc'【答案】A 【解析】本题考查的知识点是字符常量中的转义字符。转义字符是以一个“”开头的字符序列,它只代表一

23、个字符。在选项A中,“ ”后跟着三个数字,是表示一个ASCII码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由07这八个数字表示,而选项A中出现了数字8所以是不合法的。选项B是表示一个双引号的转义字符 表示方法;选项 c表示的是一个反斜杆;选项D表示一个ASCII值为十六进制值 cc的字符。故应该选择Ao25 .表达式3.6-5/2+1.2+5%2 的值是A) 4.3B) 4.8C) 3.3D) 3.8【答案】D 【解析】本题考查的知识点是算术表达式的运算。算术表达式是由+、一、*、/和五种算术运算符所组成的表达式,其中*、/和%的优先级要高于 +和一,同级别的运算符从左至右

24、运算。所以本题首先计算5/2和5%2,虽然我们都知道5/2的结果应该是2.5,但C语言中规定了两个整数相除的结果为整数。而且是截尾取整,所以5/2的结果是2; 5%2表示的是5除以2所得的余数,其结果为1。计算完后,表达式变为 3.6 -2+1.2+1 ,从左至右计算不难得出结果为26 8 ,故应该选择 Do27 .以下四个程序中,完全正确的是A) #include <stdio.h> main(); /* programming */ printf("programming!n"); B) #include <stdio.h> main( ) /*

25、/ programming /*/ printf("programming!n"); C) #include <stdio.h> main( ) /*/* programming */*/ printf("programming!n"); D) include <stdio.h> main( ) /* programming */printf("programming!n");【答案】B【解析】本题考查了一些书写代码时经常容易犯的错误。选项A在定义main()函数时,函数头后面多了一个分号,故选项A不正确;C语

26、言中的注释是不能嵌套的,故选项C不正确;选项D在使用预编译指令#include时漏掉了 #,所以也是错误的。故应该选择Bo28 .以下叙述中错误的是A) C程序中的#include 和#3万的 行均不是 C语句B)除逗号运算符外,赋值运算符的优先级最低C) C程序中,j+;是赋值语句D) C程序中,+、-、*、/、号是算术运算符,可用于整型和实型数的运算 【答案】D【解析】是求余运算符,只能用于整型数的运算,故答案D是错误的。28 .以下叙述中正确的是A预处理命令彳T必须位于C源程序的起始位置B)在C语言中,预处理命令行都以“ #"开头 C)每个C程序必须在开头包含预处理命令行:#i

27、nclude<stdio.h>D) C语言的预处理不能实现宏定义和条件编译的功能【答案】B【解析】预处理命令行可以出现在C源程序的任何位置.故选项 A不正确。#include stdio.h> 预处理命令行的意思是将stdio . h头文件插入源程序中该行命令所在的位置,表示我们将在后续行中用到stdio . h头文件中定义的函数或类型,若程序中没有用到这些函数或类型就可以不用包含此头文件,故选项C不正确。C提供的预处理功能主要有:宏定义、文件包含和条件编译三种功能。故选项D不正确。在C语言中,预处理命令行都以“ #"开头,故应该选择 Bo29 .下列叙述中错误的是

28、A) 一个C语言程序只能实现一种算法B) C程序可以由多个程序文件组成C) C程序可以由一个或多个函数组成D) 一个C函数可以单独作为一个C程序文件存在【答案】A【解析】本题考查 c语言的特点。一个 c语言程序可以实现多种算法,因此本题应该Ao30 .下面程序的输出结果是#include < stdio;h > main () int i=010, j=10 ;printf ("%d,%d”, i,j-); A) 11, 10 B ) 9, 10 C ) 010, 9 D ) 10, 9【答案】B【解析】程序中i的值用八进制表示(十进制为8), i是在变量使用前自身先加1

29、,而j-是在变量使用后自身减1。31 .若有定义:int a=8,b=5,c;执行语句c=a/b*0.4 ;后,c的值为A) 1.4 B )1 C ) 2.0 D )2【答案】B【解析】在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1.4赋值给c,由于c为整型变量所以要将 1.4转换为整型,即舍弃小数位(c的值变为1)。32 .C语言程序的基本单位是A)程序行B)语句C)函数D)字符【答案】C【解析】C语言程序的基本单位是函数。33 .C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符

30、型【答案】B【解析】C语言三种基本数据类型是整型、实型、字符型34 .以下选项中属于C语言的数据类型是A)复数型B) 逻辑型 C)双精度型 D) 集合型【答案】C【解析】C语言没有逻辑型和集合型,更不会有复数型,所以只有C正确35 .下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型【答案】D【解析】C语言中没有逻辑类型和集合类型。36 .C语言提供的合法的数据类型关键字是A) DoubleB) shortC) integerD) Char【答案】B【解析】C语言关键字必

31、须小写,所以A和D都是错误的,integer不是C语言关键字,所以应该选择B37 .在使用程序流程图来表示算法时,菱形用来表示 。A)输入与输出B )子程序 Q判断分支D)循环边界【答案】C【解析】美国国家标准化协会 ANSI规定了一些常用的流程图符号,其中椭圆框表示起止框,方框表示处理框,菱形框 表示判断分支,箭头表示流程线。38 .与十进制数200等值的十六进制数为 。A)A8 B)A4 C)C8 D)C4【答案】C【解析】本题考查的是进制之间的转换。用十-十六进制转换法,除 16,由下而上取余法。16200 8116C C39 .有以下程序main() int m=12,n=34;pri

32、ntf("%d%d",m+,+n);printf("%d%dn”,n+,+m);程序运行后的车出结果是 。A)12353514 B)12353513 C)12343514 D)12343513【答案】Ao【解析】本题考查的是变量的自加运算。+在变量前和变量后的唯一区别就在于在执行"+变量”所在的语句时,是先将变量加 1再执行它所在语句还是先执行它所在的语句再使变量加 1,当+在变量后时,也就是“变量+”,那就是先将变量值代入表达式运算后再使变量加1;而"+变量”是先使变量加1,再把加1后的结果放入表达式进行运算。这两种情况,在执行完变量所在的语

33、句后,它们在内存中的值都是加过1之后的值了。本题执行"printf("%d%d",m+,+n);" 后,输出的是 m和 n+1的值1235 ,接着使 m+1=13,执行 "printf("%d%dn",n+,+m);" 输出 n 和 m+1 的值 3514。40 .有以下程序main() int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%dn",a,b);程序运行后的车出结果是 。A)6,1 B)2,1 C)6,0 D)2,0【答案】Bo【解

34、析】本题考查的是算术运算符。如果算术运算符"/"中参与运算的变量都是整型变量,则 "/"表示整除运算,""表示求余。本题中"a=d/10%9;"的 值为25/10%9=2; "b=a&&(-1);"为2&&(-1)=1 (注意:-1表示真,只有 0才表示假),所以a,b的值分别为2,1。41 .设int a=12 ,则执行完语句 a+=a-=a*a后,a的值是。A)552 B)264 C)144 D)-264【答案】D。【解析】本题的考查点是赋值表达式的求解。第一

35、步:a*a=144 ;(此时 a=12)第二步:a-=144 相当于 a=a-144 , a=a-144=-132 ; (此时 a=-132)第三步: a+=a 相当于 a=a+a, a=a+a=-264 ;所以该表达式最后的值应当为-264。42 .在C语言中,要求运算数必须是整型的运算符是 。A)%B)/C)<D)!【答案】Ao【解析】本题的考查点是运算符。题目的四个选项中,(B) (C) (D)都不要求运算数必须为整数,参与模运算()的运算数必须是整型数据。43 .设有语句 char a='072',则变量 a。A)包含1个字符B)包含2个字符 C)包含3个字符 D

36、)说明不合法【答案】Ao【解析】本题考查的是字符型数据。'072'表示白是ASCII码等于72的那个字符,即为":二 所以在字符变量中存储的只是":"这一个字符。44 .要把高级语言编写的源程序转换为目标程序,需要使用 。A)编辑程序B)驱动程序 C)诊断程序 D)编译程序【答案】D。【解析】编绎程序的作用就是将已编辑好的源程序翻译成二进制的目标代码。在编译时,还要对源程序进行检查,如 发现错误,则在屏幕上显示出错信息,此时应重新进入编辑状态,对源程序进行修改后再重新编译,直到通过编译为 止。不过值得注意的是:经编译得到的二进制代码还不能直接参与执

37、行,因为每一个模块往往是单独编译的,必须把 经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行。45 .英文小写字母 d的ASCII码为100,英文大写字母 D的ASCII码为 。A)50 B)66 C)52 D)68【答案】D。【解析】本题主要考的是英文大小写字母间ASCII码值的差异,只要记住英文大写字母比其对应的英文小写字母的ASCII码值小32。46 .以下选项中不属于 C语言的类型是。A)signed short int B)unsigned char C)signed long D)long short【答案】D。【解析】C语言中归纳起来,基本类型数据有以下几种:sin

38、ged char;unsigned char;signed short int;unsigned short int;signed long int;unsigned long int;float;double;long double;47 .在16位C编译系统上,若定义 long a;,则能给a赋40000的正确语句是 。A)a=20000+20000 B)a=4000*10 C)a=30000+10000 D)a=4000L*10L【答案】D。【解析】除D之外的选项的右边的表达式都超过了16位带符号整数的范围(32767)。48 .已知大写字母 A的ASCII码是65,小写字母a的ASCI

39、I码是97,则用八进制表示的字符常量'101'是。A)字符A B)字符a C) 字符e D)非法的常量【答案】Ao【解析】本题的考查点是字符与ASCII码的转换。八进制101转换为10进制即为65,而字母A的ASCII码是65,所以用八进制表示的字符常量101'是A。49 .下列关于单目运算符+、-的叙述中正确的是 。A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是 char型变量和int型变量,但不能是 float 型变量C)它们的运算对象可以是 int型变量,但不能是 double型变量和float型变量D)它们的运算对象可以是 char型变量、int

40、型变量和float 型变量【答案】D。【解析】本题的考查点是自增、自减运算符。自增、自减运算符的作用是使变量的值增1或减1,只能用于变量,包括 char型变量、int型变量和float型变量,而不能用于常量或表达式。二、填空题1 .以下程序运行后的输出结果是 。main() char c; int n=100;float f=10; double x;x=f*=n/=(c=50);printf("%d %fn",n,x); )【答案】2 20.0 或 2 20 或 2 20 .或 2 20 . 000000【解析】本题考查的是赋值运算符。所有的赋值运算符的优先级都相同,它们

41、的结合性为从右至左,它们返回的表达式值为赋给变量的值。所以,语句 x=f*=n /=(c=50) ; -X=f*=n/=50; 一 x= f*=2;(n 的值变成 2) 一x=20;。故最终 输出的结果应该是 2 20.0000002 .已知字母A的ASCII码为65。以下程序运行后的输出结果是 。main() char a, b;a='A'+'5'-'3' b=a+'6'-'2'printf("%d %cn", a, b); )【答案】67G【解析】本题考查的是字符型变量的算术运算。字符型变量

42、中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以a= 'A' + '5' - '3' = 'A' +( '5' - '3' )= 'A' +2=65+2=67; b=a+'6' - '2' = 'C'+('6'- '2' )='C'+4= 'G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。3 .已知字符A的ACSII码值为65,以下语句的输出结果是 char ch= ' B' ; printf( "%c %d n” ,ch,ch);【答案】B 66【解析】本题考核的知识点是printf函数的应用。printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf( "%c %d” , ch, ch)表示以字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论