第1章 C语言概述
1.1 C语言基础知识
1.【2011年9月选择题第11题】以下叙述中错误的是________。 A)C语言编写的函数源程序,其文件名后缀可以是.C B)C语言编写的函数都可以作为一个独立的源程序文件 。 C)C语言编写的每个函数都可以进行独立的编译并执行 D)一个C语言程序只能有一个主函数 参考答案:C
【解析】C语言编写的每个函数可以被独立编译,但是除主函数外不能独立执行。
2.【2011年3月选择题第11题】计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是
A)C语言程序仅可以编译执行 B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行 D)以上说法都不对 参考答案:A
【解析】解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序是把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。
3.【2011年3月选择题第12题】以下叙述中错误的是 A)C语言的可执行程序是由一系列机器指令构成的 B)用C语言编写的源程序不能直接在计算机上运行
C)通过编译得到的二进制目标程序需要连接才可以运行
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件 参考答案:D
【解析】C语言的可执行程序是由一系列机器指令组成的,用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离C语言集成开发环境。故答案为D)。
1.2 常量、变量和数据类型
4.【2011年9月选择题第13题】以下选项中关于C语言常量的叙述错误的是 。 A)所谓常量,是指在程序运行过程中,其值不能被改变的量 B)常量分为整型常量、实型常量、字符常量和字符串常量 C)常量可分为数值型常量和非数值型常量 D)经常被使用的变量可以定义成常量 参考答案:D
【解析】常量是其值不可变化的量。常量分为数字常量和字符常量。在C语言中,常量多是通过符号常量来表示的。数字常量又包括整形常量和浮点型常量,浮点型常量又称实数。在程序中不希望被改变的变量才定义为常量,而不是经常使用的变量。
1
5.【2011年9月选择题第14题】若有定义语句:int a=10;double b=3.14;,则表达式’A’+a+b值的类型是________。
A)char B)int C)double D)float 参考答案:C
【解析】本题考查数据类型的自动转换,C语言语法规定,当不同的变量相加时按最长的变量对齐,即转换优先级为:char < int < float < double。
6.【2011年9月选择题第21题】以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)________。 A)printf(\,'a'-32); B)printf(\,'A'); C)printf(\,65); D)printf(\,'B'-1); 参考答案:B
【解析】A)、C)、D)三个选项的输出格式都是%c,只有B)的输出格式是%d,只会输出数字65,所以应选择B)。
7.【2011年9月填空题第12题】有以下程序 #include
{ int c[3]={0},k,i; while((k=getchar())!='n') c[k-'A']++;
for(i=0;i<3;i++) printf(\,c[i]); printf(\; }
若程序运行时从键盘输入ABCACC<回车>,则输出结果为__【12】__。 参考答案:213
【解析】当输入A时,a[0]++;当输入B时,a[1]++;当输入C时,a[2]++;直到遇到回车循环停止,题中共输入2个A,1个B,3个C,所以输出结果为213。
8.【2011年3月选择题第13题】以下选项中不能用作C程序合法常量的是 A)1,234 B) '\\123' C)123 D)\ 参考答案:A
【解析】常量是在程序运行过程中,其值不能被改变的量。常量类型包括:整型常量、实例常量、字符常量、字符串常量和符号常量。A)含有逗号,容易理解为逗号表达式,所以不能作为常量;B)选项为字符常量,表示八进制数123代表的ASCII字符;C)选项为整型常量;D)选项为字符串常量。
9.【2011年3月选择题第14题】以下选项中可用作C程序合法实数的是 A).1e0 B)3.0e0.2 C)E9 D)9.12E 参考答案:A
【解析】浮点型常量有十进制小数形式和指数形式。指数形式要求字母e(或者E)之前必须有数字,且e后面的指数必须为整数。B)、C)、D)都是不合法的指数形式,故答案为A)。
10.【2011年3月填空题第8题】有以下程序(说明:字符0的ASCIl码值为48)
2
#include
{ char c1,c2; scanf(\,&c1); c2=c1+9;
printf(\,c1,c2); }
若程序运行时从键盘输入48<回车>,则输出结果为 【8】 。 参考答案:09
【解析】本题中通过ASCII码对字符变量赋值,由于字符0的ASCII码是48,因此字符变量c1为0,c2的ASCII码比c1大9,因此c2为9。
11.【2010年9月选择题第13题】以下叙述中错误的是 A)C程序在运行过程中所有计算都以二进制方式进行 B)C程序在运行过程中所有计算都以十进制方式进行 C)所有C程序都需要编译链接无误后才能运行
D)C程序中整型变量只能存放整数,实型变量只能存放浮点数 参考答案:B
【解析】C程序在运行过程中所有计算都以二进制方式进行,所以A)正确B)错误。所有C程序先编译再链接,全都无误后才能运行。C程序中整型变量用于存放整数,实型变量用于存放浮点数。所以,本题答案为B)。
12.【2010年9月选择题第15题】以下选项中能表示合法常量的是
A)整数:1,200 B)实数:1.5E2.0 C)字符斜杠:'\\' D)字符串:\参考答案:D
【解析】A)选项中1,200不能表示整数1200。B)选项中应表示为1.5E2。在C语言中,反斜杠是转义符,其后必须跟有其他字符,所以选项C)也是错误的。D)选项正确。
13.【2010年3月选择题第13题】以下C语言用户标识符中,不合法的是 A)_1 B)AaBc C)a_b D)a--b 参考答案:D
【解析】标识符由字母、下划线、数字三个方面组成,开头必须是字母或下划线。
14.【2010年3月选择题第16题】以下关于C语言数据类型使用的叙述中错误的是 A)若要准确无误差地表示自然数,应使用整数类型 B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如\人员信息\等含有不同类型的相关数据,应自定义结构体类型 D)若只处理\真\和\假\两种逻辑值,应使用逻辑类型 参考答案:D
【解析】C语言中没有逻辑类型,若只处理\真\或\假\两种逻辑值,可以使用整型数\1\或\0\表示,故选D。
15.【2009年9月选择题第12题】以下选项中,能用作用户标识符的是________。 A)void B) 8_8
3
C)_0_ D)unsigned 参考答案:C
【解析】 C语言的标识符命名规则为:①只能由字母、数值和下划线3种字符组成;②第一个字符必须是字母或下划线;③不能与C语言中的关键字或保留字相同。
16.【2009年9月选择题第22题】有以下定义语句,编译时会出现编译错误的是________。 A)char a='a'; B)char a='\\n'; C)char a='aa'; D)char a='\\x2d'; 参考答案:C
【解析】 aa是字符串,不用加上单引号。
17.【2009年3月选择题第11题】以下选项中合法的标识符是________。 A)1_1 B)1-1 C)_11 D)1_ _
参考答案:C
【解析】标识符命名规则:标识符必须由字母(a~z或A~Z)或下划线(_)开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。因此,本题正确答案为C)。
18.【2009年3月选择题第12题】若函数中有定义语句:int k;,则________。 A)系统将自动给k赋初值0 B)这时k中的值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 参考答案:B
【解析】用int方法定义变量时,编译器仅为变量开辟存储单元,并没有在存储单元中存放任何值,此时变量中的值是无确定的,称变量值\无意义\。因此,本题正确答案为B)。
19.【2009年3月选择题第13题】以下选项中,能用作数据常量的是________。 A)o115 B)0118 C)1.5e1.5 D)115L
参考答案:D
【解析】 整型常量和实型常量统称为数值型常量。本题中A)项是数字和字符的组合,不能构成数值型常量。B)项以0开头代表该常量是一个8进制数,但其后面的数字中又出现了\,因此不正确。C)项用指数形式表示实型常量,但e后面必须为整数,不正确。D)项中一个常量后面加字母L表示长整型数据。因此,本题答案为D)。
4
第2章 运算符与表达式
2.1 C语言运算符简介
20.【2010年9月选择题第38题】有以下程序
#include
{ int s,t,A=10;double B=6; s=sizeof(A); t=sizeof(B); printf(\,%d\\n\,s,t); }
在VC6平台上编译运行,程序运行后的输出结果是 A)2,4 B)4,4 C)4,8 D)10,6 参考答案:C 【解析】sizeof的作用就是返回一个对象或者类型所占的内存字节数。在VC6中整型占4个字节,双精度实型占8个字节,所以选C)。
2.2 算术运算符和算术表达式
21.【2011年9月填空题第7题】以下程序运行后的输出结果是__【7】__。
#include
{ int a=37;
a%=9;printf(\,a); }
参考答案:1
【解析】本题考查的是取余运算。37%9 商为4,余数为1,所以输出的值为1。
22.【2011年3月选择题第18题】有以下程序 #include
{ int x=011;
printf(\,++x); }
程序运行后的输出结果是
A)12 B)11 C)10 D)9 参考答案:C
【解析】x=011表示把八进制的11赋值给变量x,因此x的值为十进制的9,程序运行的结果输出变量x自加运算后的十进制值,即10。
23.【2011年3月填空题第6题】以下程序运行后的输出结果是 【6】 。 #include
{ int a;
5