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

下载本文档

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

文档简介

第一章C语言基础知识一、选择题1.算法具有五个特性,以下选项中不属于算法特性的是______。A)有穷性 B)简洁性 C)可行性 D)确定性【答案】B【解析】本题考查的是算法的特性。一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入:由一个或多个输出。简洁性不属于这5个特性,所以本题应该选择B。2.以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识【答案】A【解析】本题考查C语言中标识符的概念。用用户标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,并且不能与C语言关键字相同。所以本题应该选择A。3.以下4组用户定义标识符中,全部合法的一组是()A)_mainB)IfC)txtD)intenclude-maxREALk_2sinturbo3COM_001【答案】A【解析】本题考核的知识点是C语言中的标识符命名规则。标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM不是由字母或下划线开头,故选项c不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。4.以下选项中,合法的一组c语言数值常量是()A)028B)12.C).177D)0x8a.5e-30xa234e1.510,000-0xf4.5e00abc3.e5【答案】B【解析】本题考查的知识点是:数值常量。数值常量分为整型和实型两类。其中,整型有十进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。十进制和书面使用的数据表示一样;八进制是以数字O开头,后面跟由0~7组成的八进制数组成;十六进制是以0x(或OX)开头,后面跟由0~9与A~F(或a~f)组成的十六进制数组成;小数形式由数字和小数点组成,其整数部分或小数部分如果为0可省略,但不能同时省略。指数形式由小数形式或十进制形式开头,后面跟e(或E),再跟一个十进制整数组成。选项A中,028是八进制形式,但后面跟的8不在0~7之内,所以非法;选项c中,4e1.5是指数形式,但e后面所跟的不是整数,所以非法;选项D中,10,000中不能有“,”,所以非法。故本题应该选择B。5.以下叙述中正确的是()A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译【答案】B【解析】本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块链接后才能运行:链接,将各模块的二进制目标代码与系统标准模块经链接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件:执行,执行一个经过编译和链接的可执行的目标文件。由以上定义可知,选项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语言中,在一个函数被调用之前一定要先声明该函数,所以定义靠后的函数若在前面没有声明该函数的原型,是不能被定义靠前的函数所调用的,即除数函数数之间的调用并非与函数所在位置无关,所以选项C不正确。故本题的正确答案应该为选项D。7.下列叙述中错误的是()A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行【答案】D【解析】本题考查的知识点是:c语言的基本概念。c语言源程序经过c语言编译程序编译后,会生成一个二进制文件,后缀为.obj,称为目标文件。然后还要经过“连接程序”,把此.obj文件与c语言提供的各种库函数连接起来,生成后缀为.exe的可执行文件,才能够运行。故本题中只有选项D是错误的。8.以下叙述中错误的是()A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法【答案】c【解析】本题考查的知识点是:结构化程序设计。结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。故本题中选项c是错误的。9.用C语言编写的代码程序A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行【答案】B【解析】本题考核的知识点是c程序的基本概念。c语言一种高级语言,c语言源程序经过c语言编译程序编译之后,生成一个后缀为.OBJ的二进制文件(称为目标文件),晟后还要由称为“链接程序”(Link)的软件,把此.OBJ文件与c语言提供的各种库函数连接在一起,生成一个后缀.EXE的可执行文件。显然c语言不能立即执行,故选项A错误;根据以上定义。选项C和选项D错误,所以,4个选项中选项B符合题意。10.结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务B)只能完成部分复杂的任务C)只能完成符合结构化的任务D)只能完成一些简单的任务【答案】A【解析】本题考核的知识点是c程序的三种基本结构。C程序由三种基本的结构组成,分别为顺序结构、选择结构和循环结构,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务,故选项B)选项c和选项D都不正确。所以,4个选项中选项A符合题意。11.C语言源程序名的后缀是()A).exeB).cC).objD).cp【答案】B【解析】本题考查的知识点是:c语言的基本概念。c语言源程序的后缀为.c;经过编译得到的目标程序文件的后缀为.obj;再将目标程序文件链接后得到可执行文件的后缀为验证.exe。故本题应该选择B。12.以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句【答案】C【解析】本题考查了C语言中语句的一些概念。C语句必须以分号结束,选项A是正确的。复合语句在语法上被看作一条语句,选项B也是正确的。空语句也算是一条语句,因此如果空语句出现在条件或者循环语句中,一样会被当作条件子句或者循环体来看待,所以选项C是错误的。赋值表达式末尾加分号就构成赋值语句,选项D正确。故本题应该选择c。13.以下能正确定义且赋初值的语句是A)intn1=n2=10;B)charc=32;C)floatf=f+1.1;D)doublex=12.3E2.5;【答案】B【解析】本题考查的知识点是变量赋初值。选项A中的语句只能起定义nl的作用,而n2=10是n1的初始值表达式,但因前面没有定义过n2,所以编译会报错“n2未定义”,故不正确。选项B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项c定义的初始值表达式中出现了它自身,某些编译器能通过编译,但f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。14.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下叙述中正确的是A)程序输出大写字母MB)程序输出小写字母mC)格式说明符不足,编译出错D)程序运行时产生出错信息【答案】B【解析】本题考查的是逗号表达式。因为整个逗号表达式的值为逗号表达式最后一个子表达式的值,所以本题输出的是a2的值‘m’。故应该选择B。15.以下符合C语言语法的实型常量是()A)1.2E0.5B)3.14.159EC).5E-3D)E15【答案】C【解析】本题考核的知识点是实型常量和指数形式表示数的书写格式。实型常量只能用十进制形式表示,不能用八进制或十六进制形式表示,实型常量可以用小数形式或指数形式表示,在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【解析】本题考核的知识点是C语言中对变量赋值的应用。赋值操作由赋值运算符“=”来完成,一般形式为变量=表达式,赋值的方向为由右向左,即将“=”右侧表达式的值赋给“=”左侧的变量,执行步骤是先计算再赋值。选项A中运算符“%”的运算对象必须为整数,而选项A中26.8不是整数,故选项A不正确;选项B将一个变量赋值给一个表达式,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个表达式,故选项D不正确;所以,4个选项中选项C符合题意。17.设有以下定义inta=0;doubleb=1.25;charc=’A’;#defined2则下面语句中错误的是()A)a++;B)b++;C)c++;D)d++;【答案】D【解析】本题考核的知识点是自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2定义了d为常数2,不能在对d进行自加运算。故选项D是个不正确的语句,所以,4个选项中选项D符合题意。18.设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式1/2(a+b)h计算结果不相符的是()A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)【答案】B【解析】本题考核的知识点是将简单的数学表达式表示成合法的C程序的语句。选项B中由于l和2都是整型,其l/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4个选项中选项B符合题意。19.有以下定义语句doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b++B)w%(int)a+b)C)(c+w)%(int)aD)w=a==b;【答案】C【解析】本题考核的知识点是c语言中一些运算符的简单应用。选项A中不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=b+(b=b++)才正确,故选项A不正确;选项B中运算符“%”的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确;选项a,b都为double“==”应该改为“=”,故选项D不正确。所以,4个选项中选项c符合题意。20.有以下程序main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序运行后的输出结果是A)3B)5C)-1D)-2【答案】D【解析】本题考核的知识点是运算符的优先级。主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条x=-m++等价于X=-(m++),其值即为-3,第二条x=x+8/++n等价于x=+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。所以,4个选项中选项D符合题意。21.有以下程序main(){chara='a',b;print("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是A)b,bB)b,cC)a,bD)a,c【答案】A【解析】本题考核的知识点是运算符++的用法。程序中的第一个输出语句输出表达式++a的值,该++a是在使用a之前,先使a的值加1,即为a加1为字符b,此时a的值为b,所以第一个输出语句输出的值为b,第二个输出语句中输出的b的值,这时b的值为表达式a++的值,a++是在使用a之后(此时a的值为b,所以赋给b的值为b),使a的值加一,因此第二个输出的值也为b。所以,4个选项中选项A符合题意。22.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66。则输出结果是A)6,5,A,BB)6,5,65,66C)6,5,6,5D)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个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由c语言编译系统决定【答案】D【解析】在c语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在TurboC2.0中,int占2个字节,但在VisualC++6.0(VC6可以用做c语言编译器)中占4个字节。故本题应该选择D。24.以下不合法的字符常量是A)'\018'

B)'\"'

C)'\\'

D)'\xcc'【答案】A【解析】本题考查的知识点是字符常量中的转义字符。转义字符是以一个“\”开头的字符序列,它只代表一个字符。在选项A中,“\”后跟着三个数字,是表示一个ASCII码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由0~7这八个数字表示,而选项A中出现了数字8所以是不合法的。选项B是表示一个双引号的转义字符表示方法;选项c表示的是一个反斜杆;选项D表示一个ASCII值为十六进制值cc的字符。故应该选择A。25.表达式3.6-5/2+1.2+5%2的值是A)4.3

B)4.8

C)3.3

D)3.8【答案】D【解析】本题考查的知识点是算术表达式的运算。算术表达式是由+、一、*、/和%五种算术运算符所组成的表达式,其中*、/和%的优先级要高于+和一,同级别的运算符从左至右运算。所以本题首先计算5/2和5%2,虽然我们都知道5/2的结果应该是2.5,但C语言中规定了两个整数相除的结果为整数。而且是截尾取整,所以5/2的结果是2;5%2表示的是5除以2所得的余数,其结果为1。计算完后,表达式变为3.6-2+1.2+1,从左至右计算不难得出结果为3.8,故应该选择D。26.以下四个程序中,完全正确的是A)#include

<stdio.h>

main();

{/*programming*/

printf("programming!\n");}B)#include

<stdio.h>

main()

{/*/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语言中的注释是不能嵌套的,故选项C不正确;选项D在使用预编译指令#include时漏掉了#号,所以也是错误的。故应该选择B。27.以下叙述中错误的是A)C程序中的#include和#define行均不是C语句B)除逗号运算符外,赋值运算符的优先级最低C)C程序中,j++;是赋值语句D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算【答案】D【解析】%是求余运算符,只能用于整型数的运算,故答案D是错误的。28.以下叙述中正确的是A)预处理命令行必须位于C源程序的起始位置B)在C语言中,预处理命令行都以“#”开头C)每个C程序必须在开头包含预处理命令行:#include<stdio.h>D)C语言的预处理不能实现宏定义和条件编译的功能【答案】B【解析】预处理命令行可以出现在C源程序的任何位置.故选项A不正确。#include〈stdio.h>预处理命令行的意思是将stdio.h头文件插入源程序中该行命令所在的位置,表示我们将在后续行中用到stdio.h头文件中定义的函数或类型,若程序中没有用到这些函数或类型就可以不用包含此头文件,故选项C不正确。C提供的预处理功能主要有:宏定义、文件包含和条件编译三种功能。故选项D不正确。在C语言中,预处理命令行都以“#”开头,故应该选择B。29.下列叙述中错误的是A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在【答案】A【解析】本题考查c语言的特点。一个c语言程序可以实现多种算法,因此本题应该A。30.下面程序的输出结果是#include<stdio;h>main(){inti=010,j=10;printf("%d,%d",i,j--);}A)11,10B)9,10C)010,9D)10,9【答案】B【解析】程序中i的值用八进制表示(十进制为8),i是在变量使用前自身先加1,而j--是在变量使用后自身减1。31.若有定义:inta=8,b=5,c;执行语句c=a/b*0.4;后,c的值为A)1.4B)1C)2.0D)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)整型、实型、逻辑型、字符型【答案】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语言关键字必须小写,所以A和D都是错误的,integer不是C语言关键字,所以应该选择B37.在使用程序流程图来表示算法时,菱形用来表示______。A)输入与输出B)子程序 C)判断分支 D)循环边界【答案】C【解析】美国国家标准化协会ANSI规定了一些常用的流程图符号,其中椭圆框表示起止框,方框表示处理框,菱形框表示判断分支,箭头表示流程线。38.与十进制数200等值的十六进制数为______。A)A8B)A4C)C8D)C4【答案】C。【解析】本题考查的是进制之间的转换。用十--十六进制转换法,除16,由下而上取余法。16200……8└─────16C……C39.有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是______。A)12353514B)12353513C)12343514D)12343513【答案】A。【解析】本题考查的是变量的自加运算。++在变量前和变量后的唯一区别就在于在执行"++变量"所在的语句时,是先将变量加1再执行它所在语句还是先执行它所在的语句再使变量加1,当++在变量后时,也就是"变量++",那就是先将变量值代入表达式运算后再使变量加1;而"++变量"是先使变量加1,再把加1后的结果放入表达式进行运算。这两种情况,在执行完变量所在的语句后,它们在内存中的值都是加过1之后的值了。本题执行"printf("%d%d",m++,++n);"后,输出的是m和n+1的值1235,接着使m+1=13,执行"printf("%d%d\n",n++,++m);"输出n和m+1的值3514。40.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}程序运行后的输出结果是______。A)6,1B)2,1C)6,0D)2,0【答案】B。【解析】本题考查的是算术运算符。如果算术运算符"/"中参与运算的变量都是整型变量,则"/"表示整除运算,"%"表示求余。本题中"a=d/10%9;"的值为25/10%9=2;"b=a&&(-1);"为2&&(-1)=1(注意:-1表示真,只有0才表示假),所以a,b的值分别为2,1。41.设inta=12,则执行完语句a+=a-=a*a后,a的值是______。A)552B)264C)144D)-264【答案】D。【解析】本题的考查点是赋值表达式的求解。第一步: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)!【答案】A。【解析】本题的考查点是运算符。题目的四个选项中,(B)(C)(D)都不要求运算数必须为整数,参与模运算(%)的运算数必须是整型数据。43.设有语句chara='\072';,则变量a______。A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法【答案】A。【解析】本题考查的是字符型数据。'\072'表示的是ASCII码等于72的那个字符,即为":",所以在字符变量中存储的只是":"这一个字符。44.要把高级语言编写的源程序转换为目标程序,需要使用______。A)编辑程序B)驱动程序C)诊断程序D)编译程序【答案】D。【解析】编绎程序的作用就是将已编辑好的源程序翻译成二进制的目标代码。在编译时,还要对源程序进行检查,如发现错误,则在屏幕上显示出错信息,此时应重新进入编辑状态,对源程序进行修改后再重新编译,直到通过编译为止。不过值得注意的是:经编译得到的二进制代码还不能直接参与执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行。45.英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为______。A)50B)66C)52D)68【答案】D。【解析】本题主要考的是英文大小写字母间ASCII码值的差异,只要记住英文大写字母比其对应的英文小写字母的ASCII码值小32。46.以下选项中不属于C语言的类型是______。A)signedshortintB)unsignedcharC)signedlongD)longshort【答案】D。【解析】C语言中归纳起来,基本类型数据有以下几种:[singed]char;unsignedchar;[signed]short[int];unsignedshort[int];[signed]long[int];unsignedlong[int];float;double;longdouble;47.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是______。A)a=20000+20000B)a=4000*10C)a=30000+10000D)a=4000L*10L【答案】D。【解析】除D之外的选项的右边的表达式都超过了16位带符号整数的范围(32767)。48.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是______。A)字符AB)字符aC)字符eD)非法的常量【答案】A。【解析】本题的考查点是字符与ASCII码的转换。八进制101转换为10进制即为65,而字母A的ASCII码是65,所以用八进制表示的字符常量'\101'是A。49.下列关于单目运算符++、--的叙述中正确的是______。A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量D)它们的运算对象可以是char型变量、int型变量和float型变量【答案】D。【解析】本题的考查点是自增、自减运算符。自增、自减运算符的作用是使变量的值增1或减1,只能用于变量,包括char型变量、int型变量和float型变量,而不能用于常量或表达式。二、填空题1.以下程序运行后的输出结果是_______。main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d%f\n",n,x);}【答案】220.0或220或220.或220.000000【解析】本题考查的是赋值运算符。所有的赋值运算符的优先级都相同,它们的结合性为从右至左,它们返回的表达式值为赋给变量的值。所以,语句x=f*=n/=(c=50);→X=f*=n/=50;→x=f*=2;(n的值变成2)→x=20;。故最终输出的结果应该是220.0000002.已知字母A的ASCII码为65。以下程序运行后的输出结果是_____。main(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,b);}【答案】67G【解析】本题考查的是字符型变量的算术运算。字符型变量中保存的是某个字符的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,以下语句的输出结果是______charch=’B’;printf(“%c%d\n”,ch,ch);【答案】B66【解析】本题考核的知识点是printf函数的应用。printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf(“%c%d”,ch,ch)表示以字符格式和十进制整数格式输出ch

温馨提示

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

最新文档

评论

0/150

提交评论