c语言练习题

合集下载

C语言练习题-选择题(带答案)

C语言练习题-选择题(带答案)

C语言练习题-选择题(带答案)1.下列字符序列中,可用作C标识符的一组字符序列是(D)。

A:S.b,um,average,_aboveB:cla,day,lotu_1,2dayC:#md,&12某,month,tudent_n!D:D56,r_1_2,name,_t_12.C语言程序从main()函数开始执行,所以这个函数要写在(C).A:程序文件的开始B:程序文件的最后C:程序文件的任何位置(除别的函数体内)D:它所调用的函数的前面3.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为(B).A:连接、编译B:编译、连接C:连接、运行D:运行4.要调用文件处理函数时,在#include命令行中应包含(C).A:\5.以下数据中,不正确的数值或字符常量是(C)。

A:0B:5LC:o13D:98616.在C语言中,错误的语句是(C).A:a=b=c;B:;C:breakD:b=3某5,a某=4;7.以下标识符中,不能作为合法的C用户定义标识符的是(B)。

A:a3_b3B:voidC:_123D:IF8.一个C语言程序是由(C)组成.A:一个主程序和若干子程序B:函数C:若干过程D:若干子程序9.C语言源程序的基本单位是(B)。

A:过程B:函数C:子程序D:标识符10.已知宏定义#defineN3#defineY(n)((N+1)某n)执行语句z=2某(N+Y(5+1));变量z的值为(B).A:42B:48C:54D:出错第11题C语言文件系统中,整数1008若以ASCII形式存储,则占几个字节(B).A:2B:4C:1D:5第12题正确的自定义标识符是(C).A:ifB:a某bC:IfD:8pq第13题有说明语句chara='\\101';,则变量a(D).A:包含4个字符B:包含2个字符C:包含3个字符D:包含1个字符第14题下面正确的字符常量是(C).A:\第15题在main函数体内部和外部均允许出现的实体是(A).A:预处理命令B:语句C:另一函数的定义D:函数形式参数声明第16题若变量已正确说明为float类型,要通过语句canf(\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(B).A:102233B:10.0,22.0,33.0C:10.022.033.0第17题(B)是C语言提供的合法数据类型关键字.A:FloatB:ignedC:integerD:Char第18题下列选项中,合法的C语言关键字是(D).A:VARB:cherC:integerD:default第19题使用语句canf(\输入变量某,y的值([]代表空格),正确的输入是(C).A:1.25,2.4B:1.25[]2.4C:某=1.25,y=2.4D:某=1.25[]y=2.4第20题宏定义\\的宏替换\应为(A).A:a=某+5某y-3.1;B:a=(某+5)某(y-3.1);C:a=某+5某y-3.1D:a=(某+5)某(y-3.1)答案:A第21题(1.0分)题号:919下述程序段的输出结果是(A).int某=10;inty=某++;printf(\A:11,10B:11,11C:10,10D:10,11答案:A第22题(1.0分)题号:925以下不正确的C语言标识符是(A).A:2yB:a_1_2C:able某eD:_某答案:A第23题(1.0分)题号:914以下所列的C语言常量中,错误的是(B).A:0某ffB:1.2e0.5C:2LD:'\\72'答案:B第24题(1.0分)题号:918下列程序的输出是(B).#includemain(){printf(\A:0B:变量无定义C:-1D:1答案:B第25题(1.0分)题号:930在C程序中,1如果用来表示逻辑值时,应代表(A).A:真B:假C:整数1D:长整型数1答案:A第26题(1.0分)题号:927以下答案中不是C语言最基本数据类型的是(A).A:逻辑型B:整型C:字符型D:实型答案:A第27题(1.0分)题号:922常数的书写格式决定了常数的类型和值,0某1011是(C).A:8进制整型常量B:字符常量C:16进制整型常数D:2进制整型常数答案:C第28题(1.0分)题号:928若某,y均定义为int型,z为double型,以下不合法的canf函数调用语句是(D).A:canf(\\B:canf(\\C:canf(\\D:canf(\\答案:D第29题(1.0分)题号:931以下所列字符常量中,不合法的是(A).A:'\\0某a2'B:'\\65'C:'$'D:'\\某2a'答案:A第30题(1.0分)题号:912若变量都已正确说明,则以下程序段(C).a=2;b=3;printf(a>b\A:没有正确的输出格式控制B:输出为:某某某a=2C:输出为:###b=2D:输出为:某某某a=2###b=3答案:C第31题(1.0分)题号:929以下四个字符序列中,能用作用户自定义的标识符是(A).A:PutcharB:-doubleC:A123-D:int答案:A第32题(1.0分)题号:923下列格式符中,可以用于以8进制形式输出整数的是(C).A:%dB:C:%oD:答案:C第33题(1.0分)题号:936以下叙述中正确的是(D).A:输入项可以是一个实型常量,如:canf(\B:只有格式控制,没有输入项,也能正确输入数据到内存,例如:canf(\ C:当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:canf(\D:当输入数据时,必须指明变量地址,例如:canf(\答案:D第34题(1.0分)题号:926C语言中字符型(char)数据在内存中的存储形式是(D).A:原码B:补码C:反码D:ASCII码答案:D。

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

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

一、C语言概述练习题选择1.一个C程序的执行是从。

本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。

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

x=(i=4,j=16,k=32) A) 4 B) 16 D) 522.下列四组选项中,均不是C语言关键字的选项是。

C) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是。

int C) float la0 _A D) -123 abc TEMP4.下列四组选项中,均是合法转义字符的选项是。

\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是。

“c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是。

A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是。

C语言基础练习题(含答案)

C语言基础练习题(含答案)

第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3C.For D.2a define _123 -abcDOWORD IF Casesizeof5.下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\tD.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signedC.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.Void C._3com_ D.int9.一个C程序是由()。

A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。

A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。

A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。

c语言练习题

c语言练习题

《C语言程序设计》课程自测1章C语言概述一、判断题1. C语言程序中,任何英语单词均可以作标识符。

()答案为×2. 在C语言的源程序中,注释使用越多,编译之后的可执行程序的执行效率越低。

()答案为×3. C语言是一种面向过程的语言。

()答案为√4. 当主程序执行完毕时,亦即程序执行完毕。

()答案为√5. C程序有且仅有一个main()函数。

()答案为√6. C语言中不区分大小写英文字母。

()答案为×7. 用C语言编写的程序是一种需要经过编译和连接才能运行的程序。

()答案为√8. C语言是一门对标识符大小写敏感的程序设计语言。

()答案为√二、单选题1. 一个C程序的组成部分可以是()。

A)一个主函数和一至若干个其他函数B)一至若干个主函数C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序答案为A2. 以下叙述的是()。

A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错答案为C3. C语言规定,C程序执行的开始处为()。

A)源程序中排列在最前面的函数B)一个指定的系统库函数C)用户指定的一个特定函数D)程序的主函数答案为D4. 一个C程序的执行是从()。

(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束答案为A5. 一个C语言程序是由()组成。

(A)一个函数(B)一个或若干个函数(C)一个过程(D)一个过程或若干个过程答案为B6. 下列说法中错误的是()。

(A)程序的执行总是从主函数开始。

(B)主函数可以调用任何非主函数的其它函数(C)任何非主函数可以调用其它任何非主函数(D)程序可以从任何非主函数开始执行答案为D7. C程序的基本单位是()。

C语言练习题带答案

C语言练习题带答案

C语言练习题带答案 The pony was revised in January 2021一、单项选择题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。

A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。

C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.intt6.下列C语言用户标识符中合法的是(B)。

A)3axB)xC)caseD)-e2E)union7.下列四组选项中,正确的C语言标识符是(C)。

A)%xB)a+bC)a123D)1238、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\amone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy->bookline#His.age9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。

A)2.5B)2 C)1D)311.如果inta=3,b=4;则条件表达式"a<ba:b"的值是__A__。

A)3B)4 C)0D)112.若intx=2,y=3,z=4则表达式x<zy:z的结果是(B).A)4B)3 C)2D)0E)113.C语言中,关系表达式和逻辑表达式的值是(B)。

(完整版)C语言各章练习题

(完整版)C语言各章练习题

目录第一章程序设计和C语言 (2)第二章最简单的C程序设计 (2)第三章选择结构程序设计 (4)第四章循环结构程序设计 (7)第五章数组 (11)第六章函数 (14)第七章指针 (18)第一章程序设计和C语言一、选择题:1.一个C程序的执行是从( )A、本程序的main函数开始,到main函数结束B、本文件第一个函数开始,到本文件的最后一个函数结束C、本程序的main函数开始,到本文件的最后一个函数结束D、本文件的第一个函数开始,到本文件的main结束2.以下说法不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面3.C语言规定:在一个源程序中,main函数的位置()A、必须在开始B、必须在系统调用的库函数的位置C、可以任意D、必须在最后4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是( )A、program.bak和program.objB、program.obj和program.exeC、program.exl和program.cD、program.bak和prgram.exe第二章最简单的C程序设计一、选择题1.是合法的用户自定义标识符的( )A、ah-spksB、doubleC、<ctrl>D、_myapple2.以下正确的C语言标识符是()A、%xB、a+bC、a123D、test!3.以下不能定义为用户标识符的是( )A、V oidB、b_2C、intD、name4.以下选项中可作为C语言合法整数的是( )A、11010(B)B、0583C、x2b2D、0xafb5.VC++6.0中的短整型数值在计算机中占用的字节个数是( )A、1B、2C、3D、46.设short int型的数据长度为2个字节,则unsigned short 类型数据的取值范围是()P34A、均为2个字节B、0至65535C、-3276至32767D、-256至255 7.以下选项中可作为C语言合法常量的是()(指数E或e前必须有数字,后面必须有整数)A、-80.0B、-080C、-8e1.2D、-80.0e8.在VC++6.0编译环境下,下列式中,值不为4的表达式是()P34,double为8字节A、sizeof(unsigned long)B、sizeof(long)C、sizeof(unsigned int)D、sizeof(double)9.设有说明语句:char a=’\123’;则变量a( )一个ascii字符A、包含1个字符B、包含2个字符C、3个字符D、说明不合法10.设x为一数字字符,则其所对应的十进制数值为()。

C语言练习题真答案(汇总版)

0在C语言中,合法的字符常量是( D ).之迟辟智美创作A.'字'B."A"C."ABC"D.'\x41'1下面叙述正确的是(B).A.法式中必需包括有输入语句B.变量按所界说的类型寄存数据C.main函数必需位于文件的开头D.每行只能写一条语句2毛病的叙述是(D).A.一个C语言源法式可由一个或多个函数组成B.若一条语句较长,也可分写在下一行上C.C法式必需包括一个main()函数D.构成C语言源法式的基本单位是算术表达式3(C)是关于C语言数据类型的正确叙述.A.变量必需先界说后使用B.不允许使用空类型C.枚举类型不是基本类型D.数组其实不是构造类型4main( )函数的位置(B).A.必需在自界说函数前面B.可以在自界说函数后面C.必需位于法式的最前面D.必需在自界说函数后面5C语言函数体由(C)括起来.A.< >B.( )C.{ }D.[ ]6(A)是不正确的叙述.A.注释说明只能位于一条语句的后面B.C源法式的基本组成单位是函数C.C源法式可由一个或多个函数组成D.每条语句最后必需有一个分号7一个C语言源法式是由(B).A.一个主法式和若干子法式组成B.函数组成C.若干过程组成D.若干子法式组成8结构化法式设计的三种基本结构是(C).A.函数结构、判断结构、选择结构B.平行结构、嵌套结构、函数结构C.顺序结构、选择结构、循环结构D.判断结构、嵌套结构、循环结构9C源法式的调试是指对源法式进行(C).A.录入与编纂B.查错与编译C.查错与排错D.连接与运行10C语言中,可将一系列语句置于(C)从而构成复合语句.A.一对尖括号"< >"之间B.一对圆括号"( )"之间C.一对花括号"{}"之间D.一对方框号"[ ]"之间11构成C源法式的基本单位是(D).A.语句B.变量C.运算符D.函数12以下叙述中正确的是(A).A.C源法式中注释部份可以呈现在法式中任意合适的处所B.一对花括号"{}"只能作为函数体的定界符C.C源法式编译时注释部份的毛病将被发现D.构成C源法式的基本单位是函数,所有函数名都可以由用户命名13下面叙述正确的是(D).A.每行最多只能写两条语句B.法式中必需含有自界说函数C.main()函数必需位于源法式文件的开头D.所有语句都必需以分号";"结束14下面叙述毛病的是(B).A.若一条语句较长,可分写在下一行或多行上B.构成C语言源法式的基本单位是语句C.C源法式中年夜、小写字母是有区另外D.一个C源法式可由一个或多个函数组成15(A)是关于C语言数据类型的正确叙述.A.枚举类型不是基本类型B.数组不是构造类型C.变量使用前应界说相应的数据类型D.不允许使用空类型16C源法式中main()函数的位置(C).A.必需位于法式的最前面B.必需在系统库函数后面C.可以在自界说函数后面D.必需在自界说函数前面18下面叙述毛病的是(D).A.C源法式可由一个或多个函数组成B.C源法式必需包括一个main()函数C.一个C源法式的执行是从main()函数开始,直到main()函数结束D.注释说明部份只能位于C源法式的最前面20C语言的下列运算符中,优先级最高的运算符是(A).A.++B.+=C.||D.!=21(D)为正确的用户标识符.A.structB.5fC.D._for22C语言基本数据类型包括(B).A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、字符串型23(A)为合法的常量.A.52686LB.E-7C.D.'E12'24(C)为正确的变量名.A.-k15B.intC.k_5D.25(D)为正确的字符常量.A.''\\''B."\24m"C."c"D.'M'26(C)为非法的字符串常量.A." "B."s"C.'efg'D."26'62"27C语言整型数据在内存中的代码是用(C)暗示的.A.原码B.反码C.补码D.BCD码28以下选项中,合法的实型常数是( B ).A.E-3B..2E1C.D.29下列C语言合法的数据类型关键字是(B).A.DoubleB.unsignedC.integerD.Char30Turbo C中,int型数据占用的字节数(B).A.由用户自己界说B.为2个字节C.是任意的D.即是所用计算机的字长31Turbo C中,基本数据类型存储空间长度的排列顺序是(A).A.char<int<long int<float<doubleB.char=int<long int<float<doubleC.char<int<long int=float=doubleD.char=int=long int<float<double32以下叙述中正确的是(A).A.字符常量用一对单撇号' '作为单个字符的定界符B.字符常量和字符串常量一样,都是用双引号括起来C.字符常量存储时,自动在字符后加一个字符结束符号'\0'D.字符常量和字符串常量所分配的内存空间年夜小是一样的33(B)为正确的用户标识符.A.3_rowB.max_atC.unionD.min-534C语言的基本数据类型包括(A).A.整型、实型、字符型B.整型、实型、空类型C.整型、字符型、指针型D.整型、实型、逻辑型35(D)为合法的常量.A.5,326B.C.'b_k'D.1.23E+836(D)为正确的变量名.A.5_proB.caseC.elseD.pro_537(C)为正确的字符常量.A.'bcd'B.'\084'C.'@'D.'165'38(A)为非法的字符串常量.A.'123'B."case"C."056"D." "40已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下法式运行结果是(A).main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2); }A.67,DB.C,DC.C,68D.67,6841若有界说 int m=6; 则正确的赋值表达式是(C).A.m*7B.m*5=8C.m-=m*6D.double(-m)42语句 k=(m=5,n=++m); 运行之后,变量k、m、n的值依次为(D).A.5,5,6B.5,6,5C.6,6,5D.6,6,643语句 x=5%4+(4/5); 运行之后,整型变量x的值为(A).A.1B.2C.3D.044(B)语句符合C语言语法.A.float z=28,int x,y=18;B.int x=25,y=25,z=25;C.int x=25:y=25:z=25;D.int x+y=z;45若有界说int a,x; 则语句a=(x=8,x+8); 运行后,变量a、x的值依次为(A).A.16, 8B.8, 8C.16, 16D.8, 1646若变量 m, n, t已界说且赋予初值,则正确的表达式是(B).A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4)47若有界说:int a,b; float x,则以下不符合C语言语法的表达式是(A).A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b48若有界说:int m=4,n=5;float k;,则以下符合C语言语法的表达式是(B).A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.49若有界说:int a=6; 则语句 a*=a-=a/=3; 运行后,a的值是(B). A.10B.0C.34D.2450下面关于C语言变量的叙述中,毛病的是(A).A.可以用define关键字界说变量B.变量名用年夜小写字母是有区另外C.C语言允许分歧基本类型的变量之间进行混合运算D.C语言中要求对变量作强制界说的主要理由是:便于确定类型和分配空间51若有界说:int a=5,b=2; 则表达式b= (a!=5)的值为(B).A.5B.0C.3D.252逗号表达式 (a=15,a*4),a+15 的值为(B).A.15B.30C.75D.6053若有界说:int b=-15; 则(A)为正确的赋值表达式.A.b+=b*3B.b=*5C.*b=6D.b+10=-554若有界说:int x,a,b; 语句x=(a=2,b=3,a+b); 运行后,x、a、b的值依次为(C).A.2 3 5B.3 2 5C.5 2 3D.5 3 255若有界说:int a,b=5; 语句a=(b/2)+b%2; 运行后,a的值为( B ).A.0B.3C.4D.256(C )语句符合C语言语法.A.int a=2,b+=a;B.int a=b=2,c=5;C.float x=2.3,b,c;D.,int i,j=6;57若有界说:int a=3; 语句a+=a-=a*a; 运行后,a的值为( C ).A.0B.-3C.-12D.-658若有界说 int x=1,y=2,n=3; 则( A )为正确的表达式.A.x=y*3,y=(x+n)/yB.x=nyC.float(y/n)D.(x+y)(y+n)60下列语句中,符合C语言语法的赋值语句是( 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;61( A )是正确的叙述.A.与 5/6 等价B.'G' 与"G" 等价C.5/6 与等价D.++3与4 等价62下面叙述中,毛病的是( D ).A.C语言中的表达式求值,是按其运算符的优先级先高后低的次第进行B.自增与自减运算符的结合方向为“自右至左”C.关系运算符的优先级低于算术运算符D.C语言算术运算符不包括模运算符“%”63( C )是正确的叙述.A.表达式"m"+"M" 是合法的B.若变量x, y为整型,则(a+b)++是合法的C.强制类型转换运算的优先级高于算术运算D.表达式 'm' * 'n' 是分歧法的64若有界说 int i=1,j=9; 则表达式 (++j)*(i--) 的值为( B ).A.0B.10C.9D.865设整型变量x为7,使整型变量y不为2的表达式是( A ).A.y=x%3B.y = x/3C.y =(++x)/3D.y=8-(--x)66若已界说 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b的值为( D ).A.0B.3C.1D.267若有界说:int i=5,j=4;则语句 i/=++j; 运行后i的值为( B ).A.10B.1C.D.068若已界说:int a=2,b=2; 则表达式 (a+(b++), b) 的值是( A ).A.2B.3C.4D.669若有界说:int r,x=245; 则语句 r=x/100%9; 运行后r的值为( A ).A.2B.5C.0D.2770若已界说:int i=6,t; 则语句 t=3+(--i); 运行后t的值为( C ).A.9B.7C.8D.571C语言的 % 运算符按运算对象的个数属( C ).A.单目运算符B.四目运算符C.双目运算符D.三目运算符72若已界说:int a=5,b=9,c=6; 则语句 b++; ++c; a=b-c; 运行后a的值为( B ).A.5B.3C.2D.473下面叙述正确的是( B ).A.2/3 与 2%3 等价B.5/(int)4.0 与 5/4 等价C.++2 与 3 等价D.++2与--3 等价74下面叙述毛病的是( A ).A.算术运算符中只有"*"、"/"优先级高于关系运算符B.模运算符"%"是C语言基本的算术运算符C.自加和自减运算符只能用于变量,而不能用于常量或表达式D.算术运算符中不包括"="运算符75下面叙述正确的是( A ).A.C语言中整型与字符型变量的混合运算表达式的结果是整型B.(3+9)++ 是正确表达式C.模运算符"%"两边运算数的数据类型是任意的D."abc"+"xxx"是正确表达式76若有界说:int i=3,j=6; 则表达式(--i)*(j++)的值为( C ).A.18B.15C.12D.1077若有界说:int a,b=6; 语句a=--b; 运行后,a、b的值分别是( C ).A.5 6B.6 5C.5 5D.6 678若有界说:int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后,x的值为( C ).A.6B.8C.7D.380以下法式运行时,若从键盘输入5,则输出结果是(D ). main() { int a; scanf("%d",&a); if(a++>5) printf("%d\n",a); else printf("%d\n",a--); }A.7B.4C.5D.681若已界说float x; 要从键盘输入数据36.582给变量x,则应选用( B )语句.A.scanf("%2.3f",&x) ;B.scanf("%6f",&x) ;C.scanf("%6.3f",&x) ;D.scanf("%5.3f",&x) ;82若已界说double y; 拟从键盘输入一个值赋给变量y,则正确的函数调用是( C ).A.scanf("%d",&y) ;B.scanf("%7.2f",&y) ;C.scanf("%lf",&y) ;D.scanf("%ld",&y) ;83已有界说 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是( D ).A.scanf("%c",&s) ;B.scanf("%d",&s) ;C.scanf("%u",&s) ;D.scanf("%lf",&s) ;84函数putchar( ) 的功能是向终端输出( A ).A.一个字符B.多个字符C.一个关系表达式D.一个实型变量值85若已界说int a=11; 执行以下语句后的输出结果是( B ). printf("a=%d,a=%o,a=%x\n",a,a,a) ;A.a=11, a=11, a=bB.a=11, a=13, a=bC.a=11, a=13, a=cD.a=11, a=12, a=1386若有界说int m=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k); 执行后的输出结果是(C ).A.B.43211232C.4321+123+21D.432+123+0287已有如下界说和输入语句,char c1,c2;int x; scanf("%c%d%c",&c1,&x,&c2); 若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是( A ).A.K9HB.K 9 HC.K9 HD.9KH88以下法式段的运行结果是( B ). int a=1; printf("%d, %d, %d\n", a, ++a, a++);A.3,3,1B.2, 2, 1C.1, 2, 3D.3, 2, 189以下法式的运行结果是( D ).void main(){ int a=65;char c='A';printf("%d+%c=%d\n",a,c,a+c); }A.A+A=AAB.65+A=65AC.65+65=130D.65+A=13090若已界说:int x=7;float y=7.0; 以下语句中能输出正确值的是( B ).A.printf("%d %d",x,y);B.printf("%d %.3f",x,y);C.printf("%.3f %.3f",x,y);D.printf("%.3f %d",x,y);91putchar函数可以向终端输出一个( A ).A.字符或字符型变量值B.整型变量表达式值C.实型变量值D.字符串92若已界说:int a=6;float b=1.5; 要求输出形式为: 6 * 1.50=9.00 ,应选用的正确输出语句是( B ).A.printf("%d * %f=%f",a,b,a*b);B.printf("%d * %.2f=%.2f",a,b,a*b);C.printf("%d * %d=%.2f",a,b,a*b);D.printf("%.2f * %.2f=%.2f",a,b,a*b);93若有界说float x; 要从键盘输入数据6.02赋给x,则应选用(D )语句.A.scanf("%8.2f",&x);B.scanf("%1.2f",&x);C.scanf("%4.2f",&x);D.scanf("%f",&x);94只能向终端输出一个字符的是( D ).A.printf()函数B.scanf()函数C.getchar()函数D.putchar()函数95若有语句 int a; char c; scanf("%3d%c",&a,&c); 为将整数135赋给a,字符'6'赋给c,正确的数据输入方式是(B ).(说明:<CR>代表换行,__代表空格)A.135__6<CR>B.1356<CR>C.135<CR>6<CR>D.135__6__96getchar()函数的功能是获取终端输入的( B ).A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式97若有界说 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( D ).A.printf("a*b=%d\n",a*b);B.printf("a*b=a*b\n");C.printf("%d*%d=a*b\n",a,b);D.printf("%d*%d=%d\n",a,b,a*b);98若有界说:char c1='A',c2='B'; 语句printf("%d+%d=%d",c1,c2,c1+c2);运行后的结果为(D ).(说明:'A'的ASCII码的十进制值为65)A.A+B=131B.65+66=ABC.A+B=ABD.65+66=131100有以下法式:main(){ int c;while((c=getchar())!= '\n'){ switch(c-'2'){ case 0 :case 1 : putchar(c+4);case 2 : putchar(c+4); break;case 3 : putchar(c+3);default: putchar(c+2); break; } }printf("\n"); } 当输入:247<回车>,法式的输出结果是( B ).A.689B.6689C.66778D.66887101若已界说 int x=5,y=9,z; 语句 z=x>=y; 运行后z的值为( C ).A.1B..t.C.0D..f.102判定逻辑值为“真”的最准确叙述是( D ).A.1B.年夜于0的数C.非0的整数D.非0的数103若已界说 int x=-16,y=-12,z; 语句z=x<=y; 运行后z的值为( B ). A..t.B.1C..f.D.0104能正确暗示数学关系式 100≤s<300的表达式为( C ).A.(s>=100) & (s<300)B.100<= s<300C.(s>=100) && (s<300)D.(s>=100) and (s<300)105若界说 int a=2,b=3; 则表达式 !a||b 的值为( B ).A.0B.1C.2D.3106若界说 int a=-5,b=-8,c=-12; 则表达式 a>=b||b<c 的值为( D ).A.变量i的值B.变量j的值C.0107下列表达式( C )不能用来判断整型变量x中的值是否为奇数.A.x%2==1B.!(x%2==0)C.!(x%2)D.x%2108若有界说:int a=3,b=2,c=3; 则值为0的表达式是( D ).A.(a-b)==(c/b)B.a>=cC.c-b||a+b&&(b*c-a-c)D.(b*c-a-c)&&(b*c-a-b)109若已界说:int x=4,y=2,z=0; 则表达式 (x-y<=y)|| (y=z)的值是( A ).A.1B.0C.2D.4110若有界说:int a=3,b=2,c=1,k; 则表达式k=a>b>c的值是( A ). A.0B.C.2D.3111以下运算符中优先级最高的是( D ).A.<=B.&&C.||D.!112执行以下语句后,b的值是( A ).int a=5,b=6,c=1,x=2,y=3,z=4;(a=c>x) || (b=y>z);A.0B.1C.-1D.6113x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( B ).A.-20<x<-5B.x>-20 && x<-5C.!(x>-20) && !(x<-5)D.-5<x<-20114若有界说:int a; 则表达式(B )不能用来判断a值为奇数是“真”,偶数是“假”.A.a%2==1B.!(a%2)C.a%2D.!(a%2==0)115若有界说:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=a<b)||(k=c<d); 运行后,k的值为( A ).A.2B.1C.0D.-116若有界说:int x=1,y=2,z=3; 则表达式( A )的值为0.A.!((x<y) && z)B.x>y || x<zC.x<=yD.x|| (y+z && y-z)117若有界说: int a=3,b=5,c=8; 则表达式 !(a-b) || (c-b) 的值为( A ). A.1B.0C.2D.3118若有界说: int a; 且表达式 !a的值为0,则表达式( A )的值为1.A.a!=0B.a==0C.a=0D.!(a<0 || a>0)120以下法式运行后,a的值是( C ).main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1) { b+=3; continue; }b-=5; } }A.101B.100C.8D.7121已界说 double k=3.6; 则正确的赋值表达式是( D ).A.k=double(-3.6)B.k%3C.D.k+=k-=(k=1.2)*(k=3)122已界说 char c = 'A' ; 则正确的赋值表达式是( B ).A.c=\028B.c=(c++)%4C.c+1=66D.c+=127--123已界说 int m ='A'; 则正确的表达式是( C ).A.2*m=m++B.m=int(-3.2)C.m%3D.m=m-m=m-5124设已界说 float a=2.0,b=3.0; 使a值为5.0的表达式是( A ).A.a+= bB.C.D.125若已界说 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为( D ).A.B.C.D.126若已界说int a=3,b=3,x=1,y=2; 表达式(a=y>x)&&(x=b>a) 的值是( B ).A.6B.1C.9D.0127若有界说:int a=2,b=3; float x=5; 则表达式x*b/a的值是( A ). A.B.7C.6D.5128若有界说:int x=8; float y=130;char z='A'; 则表达式x+z%(int)y的值是( C ). [已知'A'的ASCII码的十进制值为65]A.运行时发生毛病信息B.8C.73D.129若已界说:int m=7,n=4; float x=3.0,y=8.0,k; 则执行语句k=m/2+n*x/y;后,变量k的值是( C ).A.3B.4C.D.5130若有界说:float x=2,y=4,h=3; 下列表达式中与计算结果不相符的是( C ).A.(x+y)*h/2B.(x+y)*h*1/2C.(1/2)*(x+y)*hD.h/2*(x+y)131表达式2+sqrt(16.0)/4结果的数据类型是( A ).A.doubleB.intC.charD.void132若有界说:int a=4,b=5,c=6; 则表达式 (1.0*a+b)/c的值是( A ). A.B.1C.4D.133下列运算符中优先级最低的是( A ).A.=B.!C.>D.*134若有界说:float x=3.5,y=3.6; 则表达式( A )的值为6.A.(int)x+(int)yB.x+yC.(int)(x+y)D.int(x+y)135若有界说:int x; char c='A'; 则正确的赋值表达式是(A ).(说明:'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97)A.x=c+32B.x=c+'ABC'C.x=c+'CBA'D.x='ABC'136若有界说:float x=2,y; int a=3; 语句y=1*(x+a)/3; 运行后,y的值为( D ).A.B.0C.D.137若有界说:float x=3.5,y=5.5; 则表达式( B )的值为2.A.(x+y)%7B.(int)(x+y)%7C.int(x+y)%7D.(int)x+y%7138若有界说:int a=6,b=7,k=0,t=1; 语句 (k=a<b) && (t=a==b); 运行后,k、t的值分别是(D ).A.0 0B.1C.0 1D.1 0140以下法式段的运行结果是( D ). int x=3; do{ printf("%3d, ", x-=2 ); }while(!(--x));A.1B.30C.死循环D.1, -2141以下法式运行时,若从键盘输入6,则输出结果是(A ).void main(){int x;scanf("%d",&x);if (x-->6) printf("%d\n",x);else printf("%d\n",--x); }A.4B.5C.6D.3142以下法式的运行结果是( C ).void main(){int m,n=1,t=1;if(t== 0) t=-t;else m=n>=0?7:3;printf("%d\n",m); }A.3B.-C.7D.143对整型变量a,赋值语句 a=(a%3==0?1:0); 与(D )语句不等价.A.if (a%3= =0) a=1; else a=0;B.if (a%3!=0) a=0; else a=1;C.if (a%3) a=0; else a=1;D.if (a%3) a=1; else a=0;144以下法式运行的结果是(B ).void main(){int x,y,z,a;x=y=z=1;a=15;if(!x) a--;else if(y) ;if(z) a=3;else a+=4;printf("%d\n",a); }A.15B.3C.19D.14145若已界说 int a=1,b=2,t=3; 则执行以下法式段后变量a,b,t的值分别为(A ). if(a<b) { t=b; b=a; a=t; }A.a=2,b=1,t=2B.a=2,b=1,t=C.a=2,b=1,t=3D.a=3,b=1,t=2146以下法式段运行后变量k的值为( C ).int a=3,b=2;int k;k=(--a==b++)?a:b+1;A.0B.1C.2D.3147以下法式的运行结果是( C ).void main(){ int n=9;switch(n--){ default: printf("%d ",n++);case 8:case 7: printf("%d ",n);break;case 6: printf("%d ",n++);case 5: printf("%d ",n); } }A.8B.7C.8 9D.8 7148以下法式的运行结果是( C ).void main(){ int n=8;switch(n--){ default: printf("%d ",n++);case 8:case 6: printf("%d ",n);break;case 4: printf("%d ",n++);case 2: printf("%d ",n); } }A.8B.8 6C.7D.8 7149以下法式的运行结果是( D ).void main( ){ int a;if(a=6)printf("%d\n",a);else if(a>6) printf("%d\n",a+2);else printf("%d\n",a+3); }A.运行时发生毛病信息B.9C.8D.6150若有界说:int x=10,y=8,a; 则执行语句a=((--x==y)? x: y);后,变量a的值是( A ).A.8B.9C.10D.0151若有界说: int a=2,b=3,c=1; 则以下法式段的运行结果是( D ). if(a>b)if(a>c) printf("%d ",a);else printf("%d ",b);printf("%d ",c);A.3 1B.2C.3152以下条件语句中(其中s1和s2分别暗示C语言的语句),(D)与其他三条语句不等价.A.if(a) s1; else s2;B.if(a == 0) s2; else s1;C.if(a != 0) s1; else s2;D.if(a == 0) s1; else s2;153以下法式段运行时,若从键盘输入5,则运行结果是(D ).int a,y=10;scanf("%d",&a);if (a>10) y=a+6;printf("%d\n",y+a);A.10B.1C.16D.15154以下法式的运行结果是(B ).void main(){int a,b=2,c=6;a=3;if(a>6) a=a+b;else if(a==6) b=a+c;else a=b+c;printf("%d\n",a); }A.5B.8C.6D.9155若有界说:int x,a; 赋值语句a=(x%3==0)?0:1; 与(B )语句不等价.A.if (x%3!=0) a=1; else a=0;B.if (x%3) a=0; else a=1;C.if (x%3==0) a=0; else a=1;D.if (!(x%3==0)) a=1; else a=0;156以下法式段的运行结果是( C ).int s=15;switch(s/4){case 1: printf("One ");case 2: printf("Two ");case 3: printf("Three ");default: printf("Over "); }A.ThreeB.Two OverC.Three OverD.One Over157以下法式段的运行结果是( C ).int s=15;switch(s/4){default: printf("Over ");case 1: printf("One ");break;case 2: printf("Two "); }A.TwoB.Over TwoC.Over OneD.One158以下法式段运行后x的值为( D ). int a=3,b=6,x; x=(a==b)?a++:--b;A.4B.3C.6D.5160下列法式段中,非死循环的是( A ).A.int i=100; while(1) { i=i%100+1; if(i>=100) break; }B.int k=0; do{ ++k; }while(k>=0);C.int s=10; while(++s%2+s%2) s++;D.for(;;)161若已界说 int a; 不会发生死循环的语句是(C ).A.for( ; ;a+= 2);B.for(a=10; ;a--);C.for( ;(a=getchar())!= '\n'; );D.while(-1) {a++;}162在循环语句的循环体中,break语句的作用是( B ).A.继续执行break语句之后的循环体各语句B.提前结束循环,接着执行该循环后续的语句C.结束本次循环D.暂停法式的运行163以下法式段运行后,循环体中的 n+=3; 语句运行的次数为( A ). int i,j,n=0;for(i=1;i<=3;i++){for(j=1;j<=i;j++){n+=3; printf("%d\n",n); } }A.6次B.9次C.12次D.1次164do…while循环与while循环的主要区别是( D ).A.while循环体至少无条件执行一次,而do…while循环体可能都不执行B.do…while循环体中可使用continue语句,while循环体中不允许呈现continue语句C.do…while循环体中可使用break语句,while循环体中不允许呈现break语句D.do…while循环体至少无条件执行一次,而while循环体可能都不执行165以下法式段运行后,循环体运行的次数为( A ). int i=8,a=0;for ( ;i<8;i++)a+= i;A.0次B.1次C.8次D.无限166以下法式段运行后变量a的值为( C ).int i=1,a=0;for( ;i<3;i++){ continue; a+=i; }A.6B.3C.0D.5167有以下法式:void main(){ int i;for(i=1; i<=3; i++)switch(i){ case 1: printf("%d", i);。

C语言试题练习及答案(都是历年的考题)

C语言试题练习及答案(都是历年的考题)第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是()A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号 2、下面关于C语言的叙述中,错误的是() A. 若一条语句较长,也可分写在下一行上 B. 构成C语言源程序的基本单位是表达式 C. C语言源程序中大、小写字母是有区别的 D. 一个C语言源程序可由一个或多个函数组成 3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型 4、C程序中main函数的位置()A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后 5、C语言的函数体由()括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是()A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面 7、一个程序的执行是从()A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束 8、结构化程序设计的三种基本结构是()A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构 9、调试程序是指对程序进行()A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于() A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间 11、构成C语言源程序的基本单位是() A. 语句 B. 过程 C. 表达式 D. 函数语法基础12、在C语言中,正确的用户标识符是() A. 3f B. _for C. structD. _f.5113、C语言的基本数据类型包括()A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型 14、以下()是正确的常量A. E-5B. 1E5.1C. ?a12?D. 32766L 15、以下()是正确的变量名A. a.beeB. �Cp11C. intD. p_11 16、以下()是正确的字符常量A. “c”B. ?//”C. ?W?D. “\\32a” 17、以下()是不正确的字符串常量A. ?abc?B. “12?12”C. “0”D. “ “ 18、C语言的整型数据在内存中的存储形式是() A. 原码 B. 反码 C. 补码 D. ASCII码19、以下()是正确的浮点数A. e3B. .62C. 2e4.5D. 123 20、下列不属于C语言关键字的是()A. continueB. integerC. staticD. signed 21、C语言的字符型数据在内存中的存储形式是() A. 原码 B. 补码 C. 反码 D.ASCII 22、在C语言中,变量所分配的内存空间大小是() A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是()A. a-=(a*3)B. double(-1)C. a*3D. a*4=3 24、语句x=(a=3,b=++a);运行后,x、a、b的值依次为() A. 3,3,4 B. 4,4,3 C.4,4,4 D. 3,4,3 25、语句a=(3/4)+3%2;运行后,a的值为() A. 0 B. 1 C. 2 D. 326、以下四项中,符合C语言语法的语句是()A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为() A.3,3 B. 4,4 C. 4,3 D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b 29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是() A. x%(-3) B. a+=-1 C. a=b=2 D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是() A.x=x*3=2 B. x=(y==1) C. i=float(x) D. i%(-3) 31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是()A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C.变量名必须由字母或下划线组成 D. 变量的类型确定了变量的取值范围233、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为() A. 5 B. 1C. 6D. 0 34、下面叙述正确的是()A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. ?A?与”A”等价 35、下面叙述中,错误的是()A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行 36、下面叙述正确的是()A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的 C. ?A?*?B?是不合法的 D. “A”+”B”是合法的 37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为() A. 1 B. 0 C. 6 D. 738、设整型变量a为5,使b不为2的表达式是()A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为() A. 1B. 0C. 2D. 340、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是() A. 7 B.8 C. 9 D. 1041、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是() A. 7 B.8 C. 9 D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为() A. 8B. 6C. 7D. 543、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为() A. 4B. 5C. 6D. 744、C语言的运算符按运算对象的个数可以分为() A. 单目运算符一种 B.单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()A. scanf(“%5.2f”,&m); B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“o”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%ld”,&a);B. scanf(“%lf”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()A. scanf(“%d”,&a);B. scanf(“%lf”,&a);C. scanf(“%c”,&a);D.scanf(“%u”,&a); 48、putchar()函数的功能是向终端输出()A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式 49、以下程序段运行后的输出结果是() int k=11;printf(“k=%d,k=%o,k=%x\\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=133C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“M+=+-”,x,y,z);运行后的输出结果为()A. 123412312B. 12341234123412341231231231212C. 1234+1234+1234D. 1234+123+12 51、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是() A. 10AB B. 10 A B C. 10A B D. 10 AB 52、以下程序段的运行结果是()int a=0,b=0,c=0; if(a&&++b) c++;printf(“%d,%d\\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,0 53、以下程序的运行结果是()void main() {int a=65; char c=?A?;printf(“%x,%d”,b,c); }A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是() A.printf(“%d%d”,a,b); B. printf(“%d/”,a,b); C. printf(“//”,a,b);D. printf(“/%d”,a,b); 55、运行以下程序段时编译出错,其原因是()char c1='8',c2='2021'; printf(\A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2021“表示,而‘2021’不是字符串表示 C. ‘2021’只能赋值给字符数组 D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为() A. 1 B.0 C. t D. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是() A. 1 B. 非0的数 C. 大于0的数 D. 非0的整数 58、若已定义:int a=-36,b=-30,c;则语句c=a59、能正确表示数学关系式800>=y>=500的C语言表达式为() A. (y<=800)&&(y>=500) B. (y<=800)AND(y>=500) C. 800>=y>=500 D. (y<=800)&(y>=500) 60、若有定义:int x=3,y=4;则表达式!x||y的值为()4A. 1B. 0C. 3D. 4感谢您的阅读,祝您生活愉快。

C语言习题练习(附答案)

《高级语言程序设计》习题一.填空题1. 以下条件表达式可计算1+|a|的值,填空完成语句:a>=0 ?(1+a ):( 1-a )2. 函数max 定义的首部为:int max(int x[],int n),该函数完成实现寻找长度为n 的数组x 中的最大元素。

若在主函数中有定义:int c,a[10];并要求函数调用后,变量c 存放数组a 中的最大元素,则函数调用语句应为:(c=max(a,10);)3. 若有int i=5; 则循环语句while(i > = 1) i - -;执行后,i 的值为 (0)。

4. 能正确表示逻辑关系:“0≤a <10”的C 语言表达式是(0<=a && a<10)。

5. 设int a[2][3] = {{2},{3}};则数组元素( a[1][0] )的值为3。

6. 表达式 (int)(3.0/2.0)的值是( 1 )。

7. 有定义: int x=3, y=2; 执行x/=y+1; 语句后x 的值为( 1 ) 。

8. 有定义: int x=2, y=0; 表达式 (!x||y) 的值为( 0 )。

9. 有定义:char str[]= “Hello!”; 则数组str 的长度为( 7 )。

10. 有定义:int i=5; 则循环语句while(i>=1) i=i-2; 执行后变量i 的值为( -1 )。

11. 已知 ‘A ’~ ‘Z ’ 的ASCII 码为65~90,当执行int x= ‘D ’+5; 语句后x 的值为( 73 )。

12. 有定义int a[6]={1,2,3,4,5,6},*p=a; 则*(p+2)的值为( 3 ),*(++P )的值为( 2 )。

13. 如果在调用一个函数过程中,又调用另一个函数,称为函数的( 嵌套 )调用。

如果在调用一个函数的过程中又直接或间接地调用该函数本身,称为函数的( 递归 )调用。

(完整版)C语言程序设计练习题(含程序及参考答案)

#include <stdio.h> void fun(float *p,float *q,float *s) {
float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;} if (*p<*q) { k=*p;*p=*q;*q=k;} }
int i,s=0; for (i=2;i<n;i++)
if (n%i==0) s=s+i; return s; }
void main() /*主函数*/ {
void NONO(); printf("%d\n",fun(120)); NONO(); }
void NONO( ) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
The shortest way to do many things is
10、判断两个整数m和n是否互质(即是否有公共的因子)(m≠1,n≠1)。方 法是: 用2到t(t取m和n中较小的那个数)之间的数分别去除m和n,若m和n能 同时被某个数除尽,则m和n不互质;否则它们互质。
例如,若输入187和85,则应输出No(表示它们不互质,它们有公因子17)。 若输入89和187,则应输出Yes(表示它们互质)。 #include <stdio.h> int IsThat( int m, int n ) {
The shortest way to do many things is
C 语言练习题
(所提供的源程序均采用自定义函数方式解决,如不
采用函数方式,也可直接在 main 函数中借鉴该思想
编程,因时间有限,所有程序未能一一验证,仅供参
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一~~二章 1、C语言规定:在一个源程序中,main函数的位置()。1-5: DCCAB A.必须在最后 B.必须在系统调用的库函数的后面。 C.必须在最开始。 D.可以任意 2、以下叙述正确的是()。 A. C语句前面必须有行号 B. C程序中每行只能写一条语句 C. C语言本身没有输入输出语句 D. 注释必须跟在一行语句的后面 3、下列说法中正确的是()。 A. C程序书写时,不区分大小写字母 B. C程序书写时,一行只能写一个语句 C. C程序书写时,一个语句可分成几行书写 D. C程序书写时每行必须有行号 4、下列字符串是标识符的是() A._HJ B.9_student C.long D.LINE 1 5、以下标识符中,不能作为合法的C用户定义标识符的是:( ) A .a3_b3 B.void C._123 D.abc 6、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。6-10: AAA(不合法)BA A.必须为字母或下划线。 B.必须为下划线。 C.必须为字母 D.可以是字母、数字和下划线中的任一种字符。 7、在C语言提供的合法的关键字是( ) A、switch B、cher C、Case D、sturct 8、在C语言中,负整数以( )形式存放。 A、补码 B、BCD码 C、反码 D、进制数 9、下列合法的C语言整型常量是() A、095 B、139 C、0xff D、010 10、以下程序 main() { int i=010,j=10,k=0x10; printf("%d,%d,%d\n",i,j,k); }输出结果是( ) A.8,10,16 B.8,10,10 C.10,10,10 D.10,10,16 11、下列合法的字符常量是( )。11-15 BDCBB A、'\084' B、'\x43' C、'ab' D、"\0" 12、下列合法的字符常量是( )。 A、“\0” B、‟ab‟ C、12 D、„\117‟ 13、 已知ch是字符型变量,下面正确的赋值语句是()。 A、ch = '123' ; B、 ch=' \08 '; C、 ch =' \xff '; D、 ch =" \ "; 14、 已知ch是字符型变量,下面不正确的赋值语句是 ()。 A.ch = 5 + 9 ; B.ch= ' a + b '; C. ch = ' \ 0 '; D. ch= '7' + '6' ; 15、已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为() main() { char x,y; x=‟0‟;y=‟9‟; pirntf(“%d,%d\n”,x,y); } A.因输出格式不合法,输出错误信息 B.48,57 C.0,9 D.48,58 16、C语言中,运算对象必须是整型数的运算符是()16-20: ADD1D

A.% B./ C.%和/ D.* 17、 若有定义:int a = 7; float x = 2.5 , y = 4.7 ; 则表达式 x + a % 3 * (int) (x + y) % 2/4 的值是()。 A. 2.750000 B. 0.00000 C. 3.500000 D. 2.500000 18、假设在程序中a,b,c均被定义为整型,并且已赋大于1的值,则下列能正确表示代数式1/(abc)的表达式是()。 A、1/a*b*c B、1/(a*b*c) C、1/a/b/(float) c D、1.0/a/b/c 19、以下程序的运行结果是(2)。1 #include void main() { double f=3.64159; int n; n=(int)(f+10)%3; printf("%d\n",n); } 20、以下程序的输出结果是__________ main() { int x=10,y=10; printf(“%d %d\n”,x--,--y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 21、以下程序运行后的输出结果是() 。21-25: B7BCC

main() { char m; m='B'+32; printf("%c\n",m); } A、B B、b C、98 D、a 22、若有以下程序 main() { char a;  a='H'-'A'+'0';  print("%c\n",a); }执行后的输出结果是(7) 23、若有以下定义和语句 char c1='b',c2='e'; printf("%d,%c\n",c2-c1,c2-'a'+"A"); 则输出结果是:() A、2,M B、3,E C、2,E D 、3, M 24、若x,i,j和k都是int型变量,则执行下面表达式后x的值为() x=(i=4,j=16,k=32) A、4 B、16 C、32 D、520 25、执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是()。 int a; float b; scanf("a=%d,b=%f",&a,&b); A) 25 2.5 B) 25,2.5 C) a=25,b=5.5 D) a=25 b=2.5 26、若有int a, b; scanf(“%d%d”, &a, &b);语句, 输入数据时,不可以用( )作为输入的分隔符。26-27: DA A)TAB键 B)空格 C)回车 D), 27、. 以下程序的输出结果是__________ main(){ int a = 2,b = 5; printf(“a=%%%d,b=%%%d”,a,b); } A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d 28、以下程序的运行结果是 000003 。28.|000003|

#include main() { float a=3.1415; printf("|%06.0f|\n",a); } 29、以下程序的运行结果是 127 127 177 7f 127 。29.127, 127, 177, 7f, 127 #include main() { int x=0177; printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x); } 30、以下程序的运行结果是 A B 65 66 。30.A,B,65,66

#include main() { char a,b; a='a';b='b'; a=a-32;b=b-32; printf("%c,%c,%d,%d\n",a,b,a,b); } 31、为表示关系x>=y>=z,应使用C语言表达式( )31-35 ACDDD A、.(y<=x)&&(y>=z) B、(x>=y)AND(y>=z) C、(x>=y>=z) D、(x>=y)&(y>=z) 32、C语言中,逻辑“真“等价于()。 A、大于零的数 B、大于零的整数 C、非零的数 D、非零的整数 33、表达式0||6&&2&&1的值是( D ) A、3 B、0 C、9 D、1 34、 表达式__________是满足:当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式 A、 (c=1)||(c=3)||(c=5) B、 (c!=1)&&(c!=3)&&(c!=5) C、 (c==1)&&(c==3)&&(c=5) D、 (c==1)||(c==3)||(c==5) 35、判断char型变量c1是否为小写字母正确表达式为:() A、‟a‟<=cl<=‟z‟ B、(cl>=a)&&(cl<=z) C、(„a‟>=cl)||(„z‟<=cl) D、(c1>=‟a‟)&&(cl<=‟z‟) 36、设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的是()。36-37 AA

A、!((x < y )&&!z || 1) B、 ' x ' && ' y ' C、 x || y+z && y - z D、x <= y 37、若x=3,y=z=4,则下列表达式的值分别是() (z>=y>=x)? 1:0 z>=y&&y>=x A、0 1 B、1 1 C、0 0 D、1 0 1、C语言程序是由 函数 构成的,一个C源程序至少且仅包含一个 库 函数,也可以包含一个main函数和若干个其他函数。 填空:4. 112 5.复合语句 7.int short long 8.float double 9.字符串常量、字符常量 10. ; 11.a=1,b=3,c=2 15.非零

2、结构化程序设计方法规定程序或程序段的结构有三种: 、 和 。 3、C语言中基本的数据类型有: int 、 float 、 char 。 4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是-48 {a=8-8*8=-56 a=-56-56=-112} 。-112 5、用{}把一些语句括起来称为 复合 语句。 7、整型变量的类型说明符有:___ int、short 、long __。 8、实型变量的类型说明符有:__float___、___double____。 9、符号”a”和’a’的区别是 ”a”是___字符串常量_____,而’a’是____字符常量____ 。 10、赋值表达式和赋值语句的区别在于有无 ; 。 11、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 1 3 2 a=1,b=3,c=2 。 12、在printf函数的格式说明符为”%-m.nf”,其中m表示___位数_______,n表示___小数点位数________,- 表示______负数____。

相关文档
最新文档