C语言数据类型与表达式习题及答案

合集下载

C语言程序设计试题及答案解析

C语言程序设计试题及答案解析

C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。

第2章_数据类型运算符及表达式--参考答案

第2章_数据类型运算符及表达式--参考答案
A) int型B)float型
C) double型D)不确定
C
13. C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:
A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种
C
14.若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:
1、一个C语言的执行是从:()
A)本程序的主函数开始,到本程序的主函数结束
B)本程序的第一个函数开始,到本程序的最后一个函数结束
C)本程序的主函数开始,到本程序的最后一个函数结束
D)本程序的第一个函数开始,到本程序的主函数结束
A
2.以下叙述正确的是:
A)在C程序中,主函数必须位于程序的最前面
B)在C程序中,一行只能写一条语句
C) 3*a*e/b*c D) a*e/c/b*3
C
28.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是:
A) 0 B)语法错
C) 1 D) "假"
C
29.若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是:
A) 5.5 B) 5
C) 3 D) 4.0
A
37.下面程序的输出的是
main()
{int x=10,y=3;
printf("%d\n",y=x/y);
}
A) 0 B)1 C) 3 D)不确定的值
C
38.若有说明和语句
int a=5;
a++;

数据类型、运算符与表达式

数据类型、运算符与表达式

一、选择题1. 本题序号:39在C语言中运算对象必须是整型的运算符是()A %B !C /D *参考答案A2. 本题序号:65下列关于C语言的叙述错误的是()A 大写字母和小写字母的意义相同B 不同类型的变量可以在一个表达式中C 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D 同一个运算符号在不同的场合可以有不同的含义参考答案A3. 本题序号:66在C语言中,错误的int类型的常数是()。

A 32768B 0C 037D 0xAF参考答案A4. 本题序号:330如果有整型变量x,浮点型变量y,双精度型变量z,则表达式y*z+x+y执行后的类型为()A 双精度B 浮点型C 整型D 逻辑型参考答案A5. 本题序号:374设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围是()A 0—255B 0—32767C 0—65535D 0--2147483647参考答案C6. 本题序号:380以下正确的叙述是()A 在C程序中,每行只能写一条语句;B 若a是实型数据,C程序中允许赋值a=10,因此实型变量中允许存放整型数;C 在C程序中,无论是整数还是实数,都能被正确无误的表示;D 在C程序中,%是只能用于整数的运算符;参考答案B7. 本题序号:406若有int q,p;以下不正确的语句是()A p*=3;B p/=q;C p+=3;D p&&=q;参考答案D8. 本题序号:429设有float x;则x是____变量。

A 整型B 实型C 字符型D 长型参考答案B9. 本题序号:460C语言中运算对象必须是整型的运算符是()A %=B /C =D <=参考答案A10. 本题序号:503不合法的十六进制数是()A oxffB 0xabcC 0x11D 0xbeef参考答案A11. 本题序号:507以下叙述中正确的是()A a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型数值;B 在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式;C 执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已经由原值改变为b的值,b的值由原值变为0;D 已有a=3,b=5;当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3;参考答案A12. 本题序号:576turbo c中int类型变量所占字节数是()A 1B 2C 3D 4参考答案B13. 本题序号:580正确的合法的定义变量的语句是A int ab_=086;B int _ab=0xE8C char a-b=…1‟;D float a3.b;参考答案B14. 本题序号:607以下选项中不属于C语言的类型的是A signed short intB unsigned long intC unsigned intD long short参考答案D15. 本题序号:690正确的字符串常量是A “ABCD”B {ABCD}C …ABCD‟D ABCD参考答案A16. 本题序号:694以下选项中属于C语言的数据类型是A 复数型B 逻辑型C 双精度型D 集合型参考答案17. 本题序号:695以下运算符中优先级最低的运算符是A &&B &C ||D =参考答案D18. 本题序号:769以下叙述中错误的是A 用户所定义的标识符允许使用关键字B 用户所定义的标识符应尽量做到“见名知意”C 用户所定义的标识符必须以字母或下划线开头D 用户定义的标识符中,大、小写字母代表不同标识参考答案A19. 本题序号:928以下不能定义为用户标识符的是A scanfB V oidC _3com_D int参考答案D20. 本题序号:945已定义c为字符型变量,则下列语句中正确的是()。

知识点一数据类型运算符及表达式模拟练习(答案版)

知识点一数据类型运算符及表达式模拟练习(答案版)

知识点一数据类型运算符及表达式模拟练习(答案版)模拟练习一(数据类型、运算符及表达式)基础知识及数据类型1.一个C语言程序是由()组成。

(☆基础知识☆)A.主程序B.子程序C.函数D.过程2.一个C程序总是从()开始执行。

(☆基础知识☆)A.程序的第一条执行语句B.主函数C.子程序D.主程序3.一个C语言程序()(☆基础知识☆)A.应当只包含一到多个主函数B.应当由两个主函数C.只能有一个主函数D.可以没有主函数4.C语言规定:在一个源程序中,main函数的位置()(☆基础知识☆)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后5.C语言程序中,main()函数的特征是()(☆基础知识☆)A.可独立运行的程序B.必不可少的函数C.最先执行的函数D.具有前述三特征的函数6.以下叙述中正确的是()(☆基础知识☆)A.C语言的源程序不必通过编译就可以直接运行B.C语言中的每条可执行语句最终都将被转换成二进制的机器指令C.C源程序经编译形成的二进制代码可以直接运行D.C语言中的函数不可以单独进行编辑7.下面4组常量,合法的一组C语言常量是()(◆常量◆)A.O0某102E+9‘a’‘’’B.1010LE1‘a’‘\\0’C.0.01“\\””“\\””‘t’‘\\t’D.0.13E+0“\\””‘tt’0128.下面不正确的字符串常量是()(◆常量◆)A.‘abc’B.“12’12”C.“w”D.““9.以下选项中不正确的实型常量是()(◆常量◆)A.2.6E-1B.0.8324eC.-78.8745D.456e-210.以下正确的实型常量是()(◆常量◆)A.2B.3.12e0.8C.e8D.5.6E-211.以下所列的C语言常量中,错误的是()(◆常量◆)A.0某FFB.1.2e0.5C.2LD.’\\72’12.下列字符序列中,可用作C语言用户标识符的是()(◆标识符◆)A.enumB._123C.%aD.#age13.对下列标识符或表达形式,正确的是()(◆标识符◆)A.M.johnB.charC.3.2e0.8D.e814.下面标识符中,不合法的用户标识符是()(◆标识符◆)A._charB.charC.abD.a_b15.下面标识符中,合法的用户标识符是()(◆标识符◆)A.P_aB.U-3C.2aD.tatic16.下面标识符中,合法的用户标识符为()(◆标识符◆)A.p#AdB.12aC.charD._int17.下列语句中正确的是()(◆数据类型◆)A.int_1[]=”012345”;B.char[3]={‘1’,’2’,’3’,’4’};C.c har某tring=”hello!”;D.ch=”howareyou”;18.设int类型的数据长度为2个字节,unignedint类型数据的取值范围是()(◆数据类型◆)A.-32768~32767B.0~255C.0~65535D.13019.在C语言中,int,char和hortint三种类型变量所占用的内存大小是()(◆数据类型◆)A.均为2个字节B.由用户自己定义C.由所用机器的字长决定D.是任意的20.若有以下类型说明语句:(◆数据类型◆)chara;intb;floatc;hortintd;则表达式(c某b+a)某d的结果类型是()A.charB.intC.doubleD.float21.若已定义某和y为float类型,则表达式:某=2,y=某+3/2的值是()(◆数据类型◆)A.4B.3C.3.0D.3.522.若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是()(◆数据类型◆)A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符’A’的ASCII值加上123.以下选择中不属于C语言的类型的是()(◆数据类型◆)A.ignedhortintB.unignedlongintC.unignedintD.longhort24.下列程序(◆转义字符◆)voidmain(){printf(“_ab_c\\t_de\\rf\\tg\\n”);printf(“h\\ti\\b\\bj_k\\n”);}执行后的结果是()A.fab_c___gdeB.fab_c___gdeC.fa__c___gdeD.fa__c___gdeh_______jikh_______ji_h_______jikh_______ji_25.下列字符中,不正确的转义字符是()(◆转义字符◆)A.’\\2’B.’\\r’C.’\\\\’D.’\\108’26.在C语言中,下列选项说法错误的是()(☆基础知识☆)A.main函数是程序的入口B.严格区分大小写C.可以进行位运算D.一个字符占两个字节27.以下不是C语言规定的保留字的是()(◆关键字(保留字)◆)A.typedefB.enumC.FloatD.tatic28.以下是C语言规定的保留字的是()(◆关键字(保留字)◆)A.typeefB.outC.cloeD.tatic29.下列选项中,不合法的C语言关键字是()(◆关键字(保留字)◆)A.voidB.charC.defaultD.Do30.对于C语言程序中的变量,()是正确的。

C语言程序设计第2章数据类型与运算练习题及解答

C语言程序设计第2章数据类型与运算练习题及解答

C语⾔程序设计第2章数据类型与运算练习题及解答第2章数据类型和运算符习题及解答⼀.选择题。

1.下列是⽤户⾃定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语⾔规定⽤户标识符由英⽂字母、数字和下划线组成,且第⼀个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语⾔不允许⽤户将关键字作为标识符,⽽选项C)选项项中的int 是C语⾔的关键字。

语⾔中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语⾔的数据类型。

在C语⾔中,没有专门的逻辑型数据类型,可以⽤0和1来表⽰逻辑值。

所以,在本题的选择答案中,不应该包括逻辑型。

3.假定int类型变量占⽤两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表⽰只给前⾯的3个成员赋值,后7个元素的值为0,所以,⼀共有20个字节。

4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表⽰时字母E或e前必须有数字,其后数字必需为整数,故B错。

5.若变量已正确定义并赋值,以下符合C语⾔语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含⼀个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第⼀个是错的,因为C语⾔规定赋值号的左边只能是单个变量,不能是表达式或常量等。

因此,正确答案是选项B),它实际上相当于a=(b=c+2),进⽽可分解为两个表达式:b=c+2和a=b。

6.下列可⽤于C语⾔⽤户标识符的⼀组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语⾔规定标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符必须为字母或下划线,排除选项C)和D)。

C语言基本数据类型及运算题库有答案

C语言基本数据类型及运算题库有答案

C语言基本数据类型及运算题库有答案第二章基本数据类型及运算一、选择题1. 若以下选项中的变量已正确定义,则正确的赋值语句是。

A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;答案:C2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。

A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0答案:C3. 下列C语言中运算对象必须是整型的运算符是。

A) %= B) / C) = D) *=答案:A4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。

A) 0 B) 0.5 C) 1 D) 2答案:A5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。

A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值答案:D6. 下列变量定义中合法的是。

A)short_a=1-.le-1; B)double b=1+5e2.5;C)long do=0xfdaL; D)float 2_and=1-e-3;答案:A7. 以下4个选项中,不能被看作是一条语句的是。

A) {;} B) a=0,b=0,c=0;C) if (a>0); D) if (b==0)m=1;n=2;答案:D8. 设x=1,y=-1,下列表达式中解为8的是。

A)x&y B)~x│x C)x^x D)x<<=3答案:D9. 在C语言中不合法的整数是。

A)20 B)0x4001 C)08 D)0x12ed答案: C10. 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2答案:B)11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7 B)a=7+b+c,a++C)int(12.3%4) D)a=a+7=c+b答案:B)12.以下十六进制数中不合法的是A)oxff B)0Xabc C)0x11 D)0x19答案:A)13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。

C语言数据类型和运算符及表达式复习题

C语言数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) d) 213&8. 以下正确的实型常量是()a) 1.2E b) . c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0d) 1.3E10. 以下合法的八进制数是()a) 0135b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5)d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6. b) 6 c) 5. d) 6.17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为int型变量,且k=7;x=12;则能使值为3的表达式是()a) x%=(k%=5) b) x%=(k-k%5)c) x%=k-k%5 d) (x%=k)-(k%=5)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式c b a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式z y x⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z21. 不能正确表示代数式d c b a ⋅⋅的C 语言表达式是( ) a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( ) a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( ) a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n”,y);printf(“y=%+06d\n”,y);}程序运行的结果是:()a) y= 1111 b) y= 1111c) y=1111 d) y= 1111y= y=+01111 y=+01111 y=111126. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n”,y);printf(“*y=%-7o*\n”,y);printf(“*y=%07o*\n”,y);}程序运行的结果是:()a) *y= 710*b) *y= 456**y=710 * *y=456 **y=* *y=*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.* b) *3.** 3.67* *3.667 ** 4* *4.*c) *3.667* d) *3.**3.* *3.67**3.* *4.*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768d) b=-1 39.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是___1___.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是___4___.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_4.__.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是__3___.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为__28____.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是_8__,变量x的值是_2__,变量y的值是__3__.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是__111___,变量y的值是__16___。

广技师C语言复习题1. 练习(数据类型和表达式)(有答案)

广技师C语言复习题1. 练习(数据类型和表达式)(有答案)

广技师C语言复习题1. 练习(数据类型和表达式)(有答案)广技师c语言复习题1.练习(数据类型和表达式)(有答案)一、选择题3.若存有代数式3ae/bc,则不恰当的c语言表达式就是。

a.a/b/c*e*3b.3*a*e/b/cc.3*a*e/b*cd.a*e/c/b*34.以下表达式的值3的就是。

a.16-13%3b.2+3/2c.14/3-2d.(2+6)/(12-9)5.建有表明语句:intk=7,x=12则以下能够使值为3的表达式就是.a.x%=(k%=5)b.x%=(k-k%5)c.x%=k-k%5d.(x%=k)-(k%=5)7.在c语言中,要求运算数必须是整型的运算符是。

a./b.++c.!=d.%8.若有说明语句charc=‘\\72’;则变量c。

a.包含1个字符b.包含2个字符c.涵盖3个字符c.表明不合法,c的值不确认9.若存有定义语句:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值就是。

a.2.500000b.2.750000c.3.500000d.0.00000010.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f的值的数据类型为。

a.intb.floatc.doubled.不确认12.建有表明语句:charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为。

a.floatb.charc.inyd.double答案:1.c2.c3.c4.b5.d6.a7.d8.a9.a10.c11.b12.d二、填空题1.c语言中的标识符就可以存有3种字符共同组成,它们就是、和。

2.在c语言中,用“\\”开头的字符序列称为转义字符。

转义字符“\\n”的功能是;转义字符“\\r”的功能是。

3.在c语言中,用关键字定义单精度实型变量,用关键字定义双精度实型变量,用关键字定义字符型变量。

4.运算符%两侧运算量的数据类型必须都是;运算符++和--的运算量必须是。

c语言第二章课后习题答案

c语言第二章课后习题答案

第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。

(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L【答案】D2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。

(A)0 (B) 1 (C) 5 (D) 6【答案】A3.以下()是正确的字符常量。

(A)"c" (B) '\\'' (C) 'W' (D) "\32a"【答案】C4.以下()是不正确的字符串常量。

(A) 'abc' (B) "12'12" (C) "0" (D) " "【答案】A5.以下是正确的浮点数的是()。

(A)e3 (B) .62 (C) 2e4.5 (D) 123【答案】B6.若有定义:int a=2; 则正确的赋值表达式是()。

(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3【答案】A7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为()。

(A)111122233 (B)1111,222,33(C)1111 222 33 (D)1111+222+33【答案】D8.已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22【答案】B9.已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。

C语言各章节练习题(含答案)

C语言各章节练习题(含答案)

C语言各章节练习题(含答案)一、c语言概述练习题选择1.一个c程序的执行是从。

a)本程序的main函数开始,到main函数结束b)本程序文件的第一个函数已经开始,至本程序文件的最后一个函数完结c)本程序文件的第一个函数已经开始,至本程序main函数完结d)本程序的main函数已经开始,至本程序文件的最后一个函数完结2.以下描述不恰当的就是。

a)一个c源程序必须包含一个main函数b)一个c源程序可由一个或多个函数组成c)c程序的基本组成单位是函数d)在c程序中,注释说明只能位于一条语句的后面3.以下描述恰当的就是。

a)在对一个c程序进行编译的过程中,可发现注释中的拼写错误b)在c程序中,main 函数必须位于程序的最前面c)c语言本身没输入输出语句d)c程序的每行中就可以写下一条语句4.一个c语言程序就是由。

a)一个主程序和若干个子程序组成b)函数组成c)若干过程组成d)若干子程序组成二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。

x=(i=4,j=16,k=32)a)4b)16c)32d)522.下列四组选项中,均不是c语言关键字的选项是。

a)defineiftypeb)getccharprintfc)includecasescanfd)whilegopow3.以下四组选项中,均就是不合法的用户标识符的选项就是。

(c语言标识符由字母,数字,下划线共同组成,结尾无法就是数字)a)wp_0dob)b-agotointc)floatla0_ad)-123abctemp8.未知字母a的ascii码点为十进制数65,且c2为字符型,则继续执行语句c2=‘a’+‘6’-‘3’后,c2中的值。

a)db)68c)不确定的值d)c填空题1.若存有以下定义,则排序表达式y+=y-=m*=y后的y值就是【1】。

-16intm=5,y=2;7.若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为【8】,n的值为【9】。

C语言(数据类型与运算符)习题与答案

C语言(数据类型与运算符)习题与答案

一、单选题1、表达式:(int)((double)9/2)-(9)%2 的值是A.1B.0C.4D.3正确答案:D解析: D、整数除以整数,结果为整数2、若有定义语句:int x=10; ,则表达式 x-=x+x 的值为A.0B.-10C.10D.20正确答案:B3、以下选项中,不能作为合法常量的是A.1.234e+4B.1.234e04C.1.234e0.4D.1.234e0正确答案:C解析: C、指数次数必须为整型4、下列选项中,不能用作标识符的是A.int_2_B.i_nt123C. _1234_D.2_int_正确答案:D5、设有定义:float a=2,b=4,h=3; 以下C语言表达式与代数式(a+b)/2 × h 计算结果不相符的是A.(1/2)*(a+b)*hB.h/2*(a+b)C.(a+b)*h/2D.(a+b)*h*1/2正确答案:A二、填空题1、若有定义语句:int a=5;,则表达式:a++ 的值是________。

正确答案:5解析:相当于 y=a++,求y的值,++在后,先使用a的值赋给y,之后再给a增1 2、若有语句 double x=17; int y; ,当执行 y=(int)(x/5)%2;之后y 的值为 ________。

正确答案:1解析: %运算要求两数为整数,结果为整数3、设有语句char a='\072';则变量a最终获得________个字符?(仅填写具体阿拉伯数字)正确答案:1解析:这是一个转义字符4、一个float型变量占________个字节?(仅填写具体阿拉伯数字)正确答案:45、int a=5,b=6,c=7,f; f=c>b>a ;f的最终结果是________。

正确答案:0解析:关系运算只能两两判断。

C语言习题二数据类型及运算

C语言习题二数据类型及运算

习题二数据类型及其运算1.已定义c为字符型变量,则下列语句中正确的是______。

A、c='97'B、c="97";C、c=97;D、c="a";解析:本题的考查点是字符型变量。

C语言中,字符型数据和整型数据之间可以通用。

一个字符数据既可以以字符形式输出,也可以以整数形式输出。

所以把整型数据赋给字符型变量,直接用c=97即可,所以选项C正确。

2.以下选项中可作为C语言合法整数的是______。

A、10110BB、0386C、0XffaD、x2a2解析:本题的考查点是C语言中的整型常数。

整型常数可以用十进制、八进制或十六进制表示,并分为有符号数、无符号数和长整数。

由此可知选项A错;选项B,用0386表示八进制错误,因为八进制数为0-7八个数字,含有8是不对的;选项D,数字前加“0x”表示十六进制数,所以D也不对。

故本题答案为C。

3. 以下选项中不能作为合法常量的是______。

A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0解析:本题考查的是常量表示法。

本题选项中的几个常量都属于指数形式的实型常量。

此种类型的常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。

故本题答案为B。

4.与十进制数200等值的十六进制数为______。

A、A8B、A4C、C8D、C4解析:本题考查的是进制之间的转换。

用十--十六进制转换法,除16,由下而上取余法。

故本题答案为C。

5. 若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是______。

A、sqrt(abs(n^x+e^x))B、sqrt(fabs(pow(n,x)+pow(x,e)))C、sqrt(fabs(pow(n,x)+exp(x)))D、sqrt(fabs(pow(x,n)+exp(x)))解析:本题考查的是基本函数应用。

数据类型、运算符与表达式 习题三及参考答案

数据类型、运算符与表达式 习题三及参考答案

第三章习题参考答案一、单项选择题1、C语言中字符型(char)在内存中的形式存储是()。

A)源码 B)补码 C)反码D)ASCII码2、运算符有优先级,在C语言中关于运算符优先级的正确叙述是()。

A)逻辑运算符高于算术运算符,算术运算符高于关系运算符B)算术运算符高于关系运算符,关系运算符高于赋值运算符C)算术运算符高于逻辑运算符,关系运算符高于关系运算符D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符3、C语言并不是非常严格的缩放语言,在以下关于C语言的不严格的叙述中,错误的说法是()。

A)任何不同数据类型都不可以通用B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4、以下选项中属于C语言的数据类型是()。

A)复数型 B)逻辑型C)双精度型 D)集合型5、在C语言中,int、char和short三种类型数据所占的内存()。

A)均为2个字节 B)由用户自己定义C)由所用机器的字长决定 D)是任意的6、下列常数中不能作为C语言的数据类型是()。

A)0xa5 B)2.5e-2 C)3e2 D)05827、设int类型的数据长度为2字节,则unsigned int类型数据的取值范围是()。

A)0至255 B)0至65535 C)-256至255 D)-32768至327678、在C语言中,数字029是一个()。

A)八进制数 B)十六进制数 C)十进制D)非法数9、下列可以正确表示字符型常数的是()。

A)”a”B)'\t’ C)”\n” D)29710、以下错误的转义字符是()。

A)'\\’ B)'\'’ C)'\81’ D)'\0’11、C语言中整数-8在内存中的存储形式是()。

A)1111 1111 1111 1000 B)1000 0000 0000 0000C)0000 0000 0000 1000 D)1111 1111 1111 011112、已知 int i; float f; 正确的语句是()。

实验二数据类型、变量与表达式

实验二数据类型、变量与表达式

C语言程序设计实验指导与习题解答三、注意事项及小结(1)通过本次实验,大家应该初步掌握 Visual C++ 6.0 集成开发环境的使用,包括集成 开发环境的进入、设置、退出,源程序的打开、编辑、保存、编译、运行等内容,能够读懂系 统提示的信息。

这样在今后的学习中,就可以把主要精力放到程序的调试上,提高上机效率。

(2)初学 C 语言程序,容易出错的地方是:①C 语言程序中的标点符号都需是英文输入法下的,如分号、逗号、引号等。

②语句后漏加分号。

如图 2­1­9 中编译出错,因为语句 printf("我们一起学习写 C 语言程 序!\n")的最后未加分号。

③使用标识符时,混淆了变量中字母的大小写。

如初学者可能会认为 abc 与 Abc 是同一 个变量,实际 C 编译系统会把它们看作两个不同的变量。

④程序语句中括号不匹配。

C 程序中的括号(如{}和()),引号(如""和''),都必须匹配, 即成对出现,如:例 2­1­1 中的源程序,若变为:#include <stdio.h>int main(){printf("我们一起学习写C语言程序!\n";return 0;}则会出现如下错误提示:G:\C例题\例2­1­1.c(4) : error C2143: syntax error : missing ')' before ';'即提示在语句“printf("我们一起学习写 C 语言程序!\n";”中分号';'之前少了括号')'。

实验二 数据类型、变量与表达式一、实验目的与要求1.理解数据类型的基本概念。

2.熟练掌握变量的使用方法。

3.熟练掌握运算符与表达式的使用方法。

二、实验内容1.写出下列程序的运行结果,并上机验证。

国家开放大学C语言程序设计章节测试参考答案

国家开放大学C语言程序设计章节测试参考答案

国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。

(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。

(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。

(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。

(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。

(√)3.C语言中使用的字符常量,其起止标记符是()。

a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。

a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。

a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。

a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。

a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。

a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。

a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。

a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。

a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。

a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。

C语言习题(前五章)参考答案

C语言习题(前五章)参考答案

C 语言习题参考答案第一部分 C 语言基础一、判断题1.对 2.错 3.对 4.对 5.错 6.错第二部分 数据类型、运算符及表达式一、选择题 1.AD 2.B 3.(1)CD (2)BD (3)C (4) B 5.B6.D /*赋值时,若有溢出,则只截取低位*/ 7.(1)AB (2)BD (3)ABCD 8.C 9.D10.C /*A,B 赋值运算符左值只能是变量,不能是表达式或常量,D 是逗号语句*/12.B /*赋值运算符优先级比逗号表达式高*/ 13.A14.D /*八进制数中,合格字符只能是0~7*/ 15.A /*二进制补码*/16.A /*八进制数中,合格字符只能是0~7*/ 17.D 19.B 20.D21.B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/ 22.ABD 23.D 24.C 25.ABD 二、填空题1. 1 , -128~127 ; 2 , -32768~32767 ; 4 ,-2147483648~2147483647 ; 4 ,383810~10 。

3. 单引号, 双引号 。

4. 优先级 , 结合性 。

6. 2.5 。

7. 3.5 。

11. 24 , 10 , 60 , 0 , 12 , 0 12. double 。

14. 9 。

16. 1.5 , 1 。

18. 2 , -2 。

/*余数符号仅由被除数的符号决定*/ 三、判断题1.错 /*如常量*/3.错 /*如float 只能准确表示7位有效数字,多余的位数是近似表示*/4.错5.对6.对 10.错 四、简答题4写出下列各数的二进制补码(写成16为二进制形式):32: 0000 0000 0010 0000 -1: 1111 1111 1111 1111 -32768:1000 0000 0000 0000 2002: 0000 0111 1101 0010 -128: 1111 1111 1000 0000 0: 0000 0000 0000 0000 五、程序阅读 1.aabb[4个空格]cc[6个空格]c A 6 2.9,11,9,10第三部分 顺序结构一、选择题 2.D3.B /*假设int 占2个字节*/4.D5.C 7.C 8.B 9.D 10.B11.C /*D ,scanf 函数的格式符中不能规定小数位数*/ 12.A /*格式控制符:%2d%2d%3d,输入时,前两个空格对应的数字赋给a ,紧挨着的两个空格的位置赋给b*/ 13.C 14.D 15.D 二、填空题 6. %8. -10 12 410.34[回车] 题目补充:scanf 函数的调用形式为:scanf(“%d%d%f ”,&i,&j,&x); 。

第2章 C语言的基本数据类型与表达式习题解答

第2章 C语言的基本数据类型与表达式习题解答

第2章 C语言的基本数据类型与表达式习题解答1.指出下列常数中哪些是符合C语法规定的?‘\’‘101’“\\” e3 019 0xle “ab\n” 1.e5 (2+3)e(4-2) 5.2e2.5符合C语法规定的常数有:“\\” 019 0xle “ab\n” 1.e5‘\’转义字符不能作字符常量‘101’字符串要双引号,字符要转义字符: ‘\101’e3 浮点常数在e之前应有尾数(2+3)e(4-2) 浮点常数的尾数和指数部分均不能是表达式5.2e2.5 浮点常数的指数部分不能是小数。

2.请找出下列程序中的错误,改正后写出程序运行结果。

⑴#include<stdio.h>void main(){int x,y=z=5,aver; //定义变量时不能连续赋值,aver为正数不能存储带小数的平均数x=7 //以“;”语句结束AVER=(x+y+z)/3 //行末差“;”,AVER为小写, 除数应有小数部分,商才有小数部分printf("AVER=%d\n",aver) //行末差“;”}正确的程序如下:#include<stdio.h>void main(){int x,y=5,z=5;float aver;x=7;aver=(x+y+z)/3.0;printf("AVER=%f\n",aver);}运行结果:AVER=5.666667⑵#include<stdio.h>void main(){char c1='a';c2='b';c3='c';//连续定义变量有“,”分隔int a=3.5;b='A';printf("a=%d b=\'%c\'\"end\"n",a,b); //输出语句无语法错,但格式不清晰printf("a%c b%c\bc%c\tabc\n",c1,c2,c3);}正确的程序如下:#include<stdio.h>void main(){char c1='a',c2='b',c3='c';int a=3.5,b='A';printf("a=%d b=\'%c\' \"end\"\n",a,b);printf("a%c b%c \bc%c \tabc\n",c1,c2,c3);}运行结果:a=3 b='A' "end"aa bbcc abc3.写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格真上赋值后的数据(实数保留到小数后两位)。

C语言期末考试试题及详细答案

C语言期末考试试题及详细答案

选择练习题1、C 语言中最简单的数据类型包括( B )。

A 、整型,实型,逻辑型B 、整型,实型,字符型C 、整型,字符型,逻辑型D 、整型,实型,逻辑型,字符型2、C 语言中,运算对象必须是整型数的运算符是(A )。

A 、%B 、/C 、%和/D 、*3、为表示关系x <y <z ,应使用C 语言表达式( A )。

A 、(x <y )&&(y <z )B 、(x <y)AND (y <z)C 、(x <y <z)D 、(x <y ) &(y <z )4、C 语言程序的基本单位是( C ).A 、程序行B 、语句C 、函数D 、字符5、C 语言的程序一行写不下时,可以( D )。

A 、用逗号换行B 、用分号换行C 、用回车符换行D 、在任意一空格处换行6、下述标识符中,( C )是合法的用户标识符。

A 、A &B B 、void C 、_student D 、ab7、在C 语言中,字符型数据在内存中以( BA 、补码B 、ASCII 码C 、反码D 、原码8、一个程序由若干文件组成,共用同一变量,则此变量的存储类别应该为( B ).A 、autoB 、externC 、staticD 、Register9、以下关于switch 语句和break 语句的描述中,只有(B )是正确的.A 、在switch 语句中必须使用break 语句B 、在switch 语句中,可以根据需要使用或不使用break 语句C 、break 语句只能用于switch 语句中D 、break 语句是switch 语句的一部分10、C 语言规定:调用一个函数时,实参变量和形参变量之间的数据传递是(B )。

A 、地址传递B 、值传递C 、由实参传给形参,并由形参传回给实参D 、由用户指定传递方式11、下述C 语言转义符中( D )是非法的。

A 、’\b’B 、'\037'C 、'\0xf 'D 、’\'’12、为了要计算s=10!(10的阶乘),则以下对s 的定义正确的是( D )。

(答案)数据类型、运算符与表达式

(答案)数据类型、运算符与表达式

1 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为A) int B) float C) double D) 不确定2 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为A) D B) 68 C) 不确定的值D) C3 若有以下定义,则能使值为3的表达式是int k=7,x=12;A) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)-(k%=5)4 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为A) float B) char C) int D) double5 设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为A) 0--255 B) 0--32767 C) 0--65535D) 0--21474836476 表达式18/4*sqrt(4.0)/8值的数据类型为A) int B) float C) double D) 不确定7若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A) (exp==0) B) (exp!=0)C) (exp= =1) D) (exp!=1)8 在C语言中,char型数据在内存中的存储形式是A) 补码B) 反码C) 原码D) ASCII码9 若运行时给变量x输入12,则以下程序的运行结果是void main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A) 0 B) 22 C) 12 D) 1010 sizeof(float)是A) 一个双精度型表达式B) 一个整型表达式C) 一种函数调用D) 一个不合法的表达式11 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A) 2.500000 B) 2.750000 C) 3.500000 D) 0.00000012 若有说明语句:char c='\72';则变量cA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法,c的值不确定13 在C语言中,int、char和short三种类型数据在内存中所占用的字节数A) 由用户自己定义B) 均为2个字节C) 是任意的D) 由所用机器的机器字长决定14 若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum 的值为A) 7 B) 8C) 9 D) 1015 设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -116 设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A) n=(n*100+0.5)/100.0 B) m=n*100+0.5,n=m/100.0C) n=n*100+0.5/100.0 D) n=(n/100+0.5)*100.017 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10&&a<=0 D) a>=10‖a<=018 下列变量定义中合法的是A) short _a=1-.1e-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;19 下列程序执行后的输出结果是(小数点后只写一位)void main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.020 下列程序的输出结果是void main(){ double d=3.2; int x,y;x=1.2;y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2 C) 0D) 3.0721 设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4 C) 11 D) 1222 有如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为A) true B) false C) 0 D) 123 设以下变量均为int类型,则值不等于7的表达式是A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y)D) (y=6,y+1,x=y,x+1)24 设有说明语句:char a='\72';则变量aA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法25 以下符合C语言语法的赋值表达式是//没有答案A) d=9+e+f=d+9 B) d=9+e,f=d+9C) d=9+e,e++,d+9 D) d=9+e++=d+726 有如下程序void main(){ int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是A) 3 4 B) 4 2 C) 4 3 D) 3 327 若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0B) 0.5 C) 1 D) 228 若变量a、i已正确定义,且i已正确赋值,合法的语句是A) a= =1 B) ++i; C) a=a++=5; D) a=int(i);29 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是A) 1 B) 2 C) 2.0D) 2.530 若变量已正确定义并赋值,下面符合C语言语法的表达式是A) a:=b+1 B) a=b=c+2C) int 18.5%3 D) a=a+7=c+b31 下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型32 有如下函数调用语句//注:此题可以不做func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3B) 4 C) 5 D) 有语法错33 有以下程序void main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出结果是A) 9,2 B) 10,2C) 9,1 D) 10,134 在C语言中,要求运算数必须是整型的运算符是A) / B) ++ C) != D) %35 下列四个选项中,均是C语言关键字的选项是A) auto enum include B) switch typedef continueC) signed union scanf D) if struct type36 下列四组选项中,均不是C语言关键字的选项是A) define IF type B) getc char printfC) include scanf case D) while go pow37 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是A) 7 B) 8C) 6 D) 238 若x,i,j和k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32);A) 4 B) 16 C) 32D) 5239 C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符40 有以下程序void main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\017";printf ("%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确B) b='\xbc';语句不正确C) d="\0127";语句不正确D) a='\';和c='\0xab';语句都不正确41 下面四个选项中,均是合法整型常量的选项是A) 160 -0xffff 011B) -0xcdf 01a 0xe C) -01 986,012 0668 D) -0x48a 2e5 0x42 有以下程序void main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是A) 1,1,2 B) 2,2,1 C) 2,2,2D) 2,2,343 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,044 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A) 0X0 B) 0x0 C) 0D) 0XABC45 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量46 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf("%d,%o\n",m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777 D) 32767,07777747 下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现在下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头48 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为A) char<int<long int<=float<doubleB) char=int<long int<=float<doubleC) char<int<long int=float=doubleD) char=int=long int<=float<double49 下面四个选项中,均是不正确的八进制数或十六进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -12350 以下正确的叙述是A) 在C程序中,每行中只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,无论是整数还是实数,都能被准确无误地表示D) 在C程序中,%是只能用于整数运算的运算符51 以下不正确的叙述是A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,APH和aph是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值52 已知各变量的类型如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是A) a+=a-=(b=4)*(a=3)B) a=a*3+2C) x%(-3) D) y=float(i)53 已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是A) x%(-3) B) w+=-2C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)54 下面不正确的字符串常量是A) 'abc'B) "12'12" C) "0" D) " "55 下面四个选项中,均是不合法的用户标识符的选项是A) A P_0 do B) float la0 _AC) b-a goto int D) _123 temp int56 下面四个选项中,均是正确的八进制数或十六进制数的选项是A) -10 0x8f -011 B) 0abc -017 0xcC) 0010 -0x11 0xf1D) 0a12 -0x123 -0xa57 C语言中运算对象必须是整型的运算符是A) %=B) / C) = D) 〈=58 下面正确的字符常量是A) "c" B) '\\'' C) 'W' D) ''59 下面四个选项中,均是不合法的转义字符的选项是//注:此题无正确选项A) '\"' '\\' '\xf' B) '\1011' '\' '\a'C) '\011' '\f' '\}' D) '\abc' '\101' 'xlf'60 下面四个选项中,均是合法转义字符的选项是A) '\'' '\\' '\n'B) '\' '\017' '\"'C) '\018' '\f' 'xab' D) '\\0' '\101' 'xlf'61 下面四个选项中,均是合法的浮点数的选项是A) +1e+1 5e-9.4 03e2 B) -.60 12e-4 -8e5C) 123e 1.2e-.4 +2e-1 D) -e3 .8e-4 5.e-062 下面四个选项中,均是不合法的浮点数的选项是A) 160. 0.12 e3 B) 123 2e4.2 .e5C) -.18 123e4 0.0 D) -e3 .234 1e363 下面四个选项中,均是不合法的整型常量的选项是A) -0f1 -0xffff 0011 B) -0xcdf 017 12,456C) -018 999 5e2 D) -0x48eg -068 03f64 下面四个选项中,均是正确的数值常量或字符常量的选项是A) 0.0 0f 8.9e '&' B) "a" 3.9e-2.5 1e1 '\"'C) '3' 011 0xff00 0a D) +001 0xabcd 2e2 50.65 假定w、x、y、z、m均为int型变量,有如下程序段:w=1; x=2; y=3; z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序运行后,m的值是A) 4 B) 3 C) 2 D) 166 以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD-sub DO IF voidCase Size abc define67 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是A) a=20000+20000; B) a=4000*10;C) a=30000+10000; D) a=4000L*10L;68 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);69 以下选项中不属于C语言的类型的是A) signed short imt B) unsigned long intC) unsigned int D) long short70 以下程序段的输出结果是int a=1234;printf("%2d\n",a);A) 12 B) 34 C) 1234 D) 提示出错、无结果71 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是A) a的值是字符C B) a的值是浮点型C) 不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章数据类型,运算符与表达式
一.选择题
1.不合法的常量是A。

A)‘/2’B) “”C)‘’D)“483”
2. B 是C语言提供的合法的数据类型关键字。

A)Float B)signed C)integer D)Char
3.在以下各组标识符中,合法的标识符是(1)A,(2) C ,(3) D 。

(1)A)B01 B)table_1 C)0_t D)k%
Int t*.1 W10 point (2)A)Fast_ B)void C)pbl D)<book> Fast+Big abs fabs beep (3)A)xy_ B)longdouble C)*p D)CHAR 变量1 signed history Flaut
4. 不属于合法的C语言长整型常量的是 C 。

A)5876273 B)0L C)2E10 D)(long)5876273 7.下面选项中,均是合法浮点数的是 B 。

A)+1e+1 B)-0.60 C)123e D)-e3 5e-9.4 12e-4 1.2e-.4 .8e-4
03e2 -8e5 +2e-1 5.e-0 8.在C语言中,要求参加运算的数必须是整数的运算符是 C 。

A)/ B)* C)% D) =
9.在C语言中,字符型数据在内存中以 D 形式存放。

A)原码B)BCD码C)反码D)ASCII码10.下列语句中,符合语法的赋值语句是 C 。

A)a=7+b+c=a+7;B)a=7+b++=a+7;
C)a=7+b,b++,a+7;D)a=7+b = c=a+7;
11. B 是非法的C语言转义字符。

A)‘\b’B)‘\0xf’C)‘\037’D)‘\’’12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, B 是正确的。

A)语法错误B)f为5.0 C)f为0.0 D)f为2.0
13.与代数式x y
u v


不等价的C语言表达式是A。

A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 14.在C语言中,数字029是一个 D 。

A)八进制数B)十六进制数C)十进制数D)非法数
16.对于char cx=‟\039‟;语句,正确的是A。

A)不合法B)cx的值是‟\03‟
C)cx的值为四个字符D)cx的值为三个字符
17.若int k=7,x=12;则能使值为3的表达式是 D 。

A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
18.为了计算s=10!(即10的阶乘),则s变量应定义为 C 。

A)int B)unsigned C)long D)以上三种类型均可
19.以下所列的C语言常量中,错误的是 B 。

A)0xFF B)1.2e0.5 C)2L D)‟\72‟
20.假定x和y为double型,则表达式x=2,y=x+3/2的值是 D 。

A)3.500000 B)3 C)2.000000 D)3.000000
21.设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 B 3.1456 。

A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0
22.以下合法的赋值语句是A。

A)x=y=100 ; B)d――; C)x+y ; D)c=int(a+b) ; 23.以下选项中不属于C语言的类型是 D 。

A)signed short int B)unsigned long int
B)unsigned int D)long short
24.设以下变量均为int类型,则值不等于7的表达式是 C 。

A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y+1)
C)(x=6,x+1,y=6,x+y) D)(y=6,y+1,x=y,x+1)
25.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是 D 。

A)a=20000+20000;B)a=4000*10;
C)30000+10000;D)a=4000L*10L;
二.填空题
1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 1 ,其数值范围为-128~127 ;
2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为
字母或下划线。

3.字符常量使用一对…界定单个字符,而字符串常量使用一对“来界定若干个字符的序列。

4.在C语言中,不同运算符之间运算次序存在优先顺序的区别,同一运算符之间运算次序存在结合性的规则。

5.设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为32 。

6.设x=2.5,a=7,y=4.7,则x+a%3*(int)(x+y)%2/4为 2.5 。

7.设a=2,b=3,x=3.5,y=2.5,则(float)(a+b)/2+(int)x%(int)y为 3.5 。

8.数学式子1
24
a x
ax
a
+
⎛⎫
+

⎝⎭
的C语言表达式为(1.0/2)*( a*x+(a+x)/(4*a) ) 。

9.数学式子3ae
bc
的C语言表达式为3*a*e/(b*c) 。

10.已知:char a=’a’,b=’b’,c=’c’,i;则表达式i=a+b+c的值为38(溢出) 。

11.已知int a=12,n=5;则:
值的数据类型是
double 。

13.若a 为int 型变量,则表达式(a=4*5,a*2),a+6的值为 26 。

14.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为 9 。

15.已知a,b,c 是一个十进制数的百位,十位,个位,则该数的表达式是
a*100+b*10+c 。

16.定义:double x=3.5,y=3.2;则表达式(int)x*0.5的值是 1.5 ,表达式y+=x++的值是 6.7 。

17.定义:int m=5,n=3;则表达式m/=n+4的值是 0 ,表达式m=(m=1,n=2,n-m)的值是 -1 ,表达式m+=m- = (m=1)*(n=2)的值是 -2 。

19.若a 是int 变量,则执行表达式a=25/3%3后,a 的值是 2 。

20.数学式子65432234567x x x x x x -++-++的C 语言表达式为:
x* x* x* x* x* x-2* x* x* x* x* x +3* x* x* x* x +4* x* x* x -5* x* x +6*x+7 。

三.判断题
1.在C 程序中对用到的所有变量都必须指定其数据类型。

【 T 】
2.一个变量在内存中占据一定的存储单元。

【 T 】
3.一个实型变量的值肯定是精确的。

【 F 】
4.对几个变量在定义时赋初值可以写成:int a=b=c=3;【 F 】
5.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。

【 T 】
6.在C 程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。

【 T 】
7.%运算符要求运算数必须是整数。

【 T 】
8.若a 是实型变量,C 程序中允许赋值a=10,因此实型变量中允许存放整型数。

【 F 】
9.在C 程序中,逗号运算符的优先级最低。

【 T 】
10.C 语言不允许混合类型数据间进行运算。

【 F 】
四.简答题
1.为什么C 语言的字符型可以进行数值运算?
2.简述‘a ’和“a ”的区别。

3.程序:int m=12; m=15;为什么整型变量m 的值在运算后不是当初的12,而是15?
6.华氏温度F 与摄氏温度c 的转换公式为:5(32)9
c F =-,则float c,F;c=5/9*(F-32)是其对应的C 语言表达式吗?如果不是,为什么?(因为5/9的值为0)
五.程序阅读题
1.写出以下程序运行的结果。

aa bb cc abc
A N
main ( )
{
char c1=‟a‟,c2=‟b‟,c3=‟c‟,c4=‟\101‟,c5=‟116‟;
printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c %c”,c4,c5);
}
2.写出以下程序运行的结果。

9,11,9,10
main ( )
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
六.编程题
1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:123反序为321)的C语言表达式。

2.已知int x=10,y=12;写出将x和y的值互相交换的表达式。

相关文档
最新文档