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时值为“真”,否则为“假”的表达式是:( )。
c语言程需计试题库

c语言程需计试题库《C语言程序设计》试题库一选择题共250个每题2分1一个c语言程序的执行是从A本程序的main函数开始到main函数结束B本程序文件的第一个函数开始到本程序文件的最后一个函数结束 C本程序的main函数开始到本程序文件的最后一个函数结束D本程序文件的第一个函数开始到本程序main函数结束2一个c语言程序是由A一个主程序和若干子程序组成 B函数组成C若干过程组成 D若干子函数组成3以下选项中是正确的整型常量是A12. B -20 C 1000 D 4 5 64以下选项中正确的实型常量是A0 B 3 1415 C 0329102 D8715以下选项中不合法的实型常量是A 2607E-1 B0810312 C-7777 D456e-26以下选项中不合法的字符串是Aabc B1212 C 0 D7下面正确的字符常量是Ac B \\ C w D8以下选项中不合法的用户标识符是A abcc Bfile CMain DPRINTF9C语言中的标识符只能由字母数字和下划线三种字符组成且第一个字符A必须为字母 B 必须为下划线 C必须为字母或下划线D可以是字母数字和下划线中任意一种字符10以下选项中不合法的用户标识符是A_123 B printf C A D Dim11c语言中运算对象必须是整型的运算符是A B C D12可在C程序中用作用户标识符的一组标识符是Ant B as-b3 C Fir D 2cdefine -123 _bc DOWORD if name SIG13若变量已正确定义并赋值符合C语言语法的表达式是A a a7 Ba 7bca C int 1234 D a a7 cb14若abcd都是int类型变量且初值为0以下选项中不正确的赋值语句是Aa b c 100 Bd Ccb Dd c 22 - b15若xij和k都是int变量则计算下面表达式后x的值是x i 4j 16k 32A4 B16 C32 D 5216假设所有变量均为整型则表达式a 2b 5bab的值是A7 B8 C 6 D 217若有代数表达式a2b2则正确的c语言表达式是Aab Bpow a2 pow b2 Caabb D aa bb18若有代数表达式则不正确的c语言表达式是Aabce3 B3ae bc C3ae bc Daec b 319 若有定义int a 8b 5c执行语句c ab04后c的值为A14 B1 C20 D220char型数据在内存中的存储形式是A补码 B反码 C原码 DASCII码21设变量a是整型f是实型i是双精度则表达式10aif值的数据类型为 Aint Bfloat Cdouble D不确定22 若有定义int a 7flaot x 25y 47则表达式xa3 int xy 24的值是A2500000 B2750000 C3500000 D000000023 若变量a是int类型并执行了语句a A16则正确的叙述是Aa的值是字符C Ba的值是浮点型C不允许字符型和浮点型相加 Da的值是字符A的ASCII值加上124以下选项中合法的字符常量是AB B\ 010 C68 DD25以下选项中不是C语句的是A int iiprintf d\ni BC a 5c 10 D26以下合法的C语言赋值语句是Aa b 58 B k int ab C a 58 b 58 D --i27以下程序的输出结果是A0 B1 C3 D不确定的值mainint x 10y 3printf d\ny xy28设c语言中一个int型数据在内存中占2个字节则unsigned int 型数据的取值范围为A0~255 B0~32767 C0~65535 D0~214748364729若变量已正确定义为int类型要给abc输入数据以下正确的输入语句是Aread abcBscanf dddabcscanf DDDabcDscanf dddabc30若变量已正确定义为float类型要通过赋值语句scanffffabc给A赋值10B赋予22C赋予33以下不正确的输入形式是10 B100220330 C100 D10 2222 220 330 333331设有说明char wint xfloat ydouble z则表达式wxz-y值的数据类型为 Afloat B char Cint D double32若变量已正确定义要将a和b中的数进行交换下面选项中不正确的是 Aa abb a-ba a-b Bt aa bb t Ca tt bb a Dt bb aa t33若变量已正确定义以下程序段的输出结果是A输出格式说明与输出项不匹配输出无定值B5170000 C5168000 D5169000x 516894printf f\n int x100005 float 100034若有以下程序段c3的值是A0 B12 C05 D1int c1 1c2 2c3c3 c1c235若有以下程序段其输出结果是00-10 B005 C-103-10 D33-10int a 0b 0c 0c a- a-5 a bb3printf ddd\nabc36若已知变量的类型说明如下int kab unsinged long w 5 double x 142则以下不符合c语言的表达式是Ax -3 Bw -2 Ck a 2b 3ab Da a- b 4 a 337以下程序的输出结果是Aa 2 b f Ba 2b 5 Ca db d Da db dmainint a 2b 3printf a db d\nab38 若int 类型占两个字节则以下程序段的输出是A –1-1B –132767C –132768D –165535int a -1printf du\naa39下列运算符中优先级最高的运算符是A B C- D40下列运算符中优先级最低运算符是A B C〈 D41为表示关系 x≥y≥z 应使用的C语言表达式是A x y y zB x y AND y zC x y zD x y y z42若有以下定义则能使值为3的表达式是 int k 7x 12Ax k-k5 Bx k 5 C x k-k5 D x k - k 543 设abcdmn均为int型变量且a 5b 6c 7d 8m 2n 2则逻辑表达式 m a b nc d 运算后n的值为A0 B1 C2 D344 假定wxyzm均为int型变量有如下程序段w 1 x 2 y 3 z 4m w x wxm m y mym m z mz则该程序运行后m的值是A4 B3 C1 D245以下程序的输出是A0 B1 C2 D3mainint a 2b -1c 2if b aif b 0 c 0printf d\nc46设ab 和c 都是int 型变量且 a 3b 4c 5则以下的表达式中值为0的表达式是A abB a bC abcb-cD a b c147以下程序的输出是A0 B1 C2 D3mainint a 2b -1c 2if a bif b 0 c 0else c 1printf d\nc48以下程序的输出是A1 B2 C3 D4mainint w 4x 3y 2z 1printf d\n w xwz yzx49已知int x 10y 20z 30以下语句执行后xyz的值是 if x y z xx yy zAx 10y 20z 30 Bx 20y 30z 30Cx 20y 30z 10 Dx 20y 30z 2050以下程序的运行结果是main int m 5if m 5 printf d\nmelse printf d\nm--A4 B5 C6 D751若执行以下程序时从键盘上输入3和4则输出结果是A14 B16 C18 D20mainint absscanf ddabs aif a b s bs sprintf d\ns52运行以下程序输出A BC D有语法错误不能通过编译mainint k -3if k 0 printf \nelse printf \n53以下程序的输出结果是main int x 2y -1z 2if x yif y 0 z 0else z z1printf d\nzA3 B2 C1 D054为了避免在嵌套的条件语句if-else中产生二义性c语言规定else子句总是与配对A上下位置在同一列的if Belse前面最近的ifCelse之后最近的if D同一行上的if55以下不正确的语句为Aif x y Bif x y x 0 x y Cif x y xyDif x y scanf dx else scanf dy56当a 1b 3c 5d 4时执行完下面一段程序后x的值是if a bif a d x 1elseif a cif b d x 2else x 3else x 6else x 7A1 B2 C3 D657以下程序段int k 10while k 0 k k1则下面描述中正确的是Awhile循环执行10次 B循环是无限循环C循环体语句一次也不执行 D循环体语句执行一次58 以下程序中while循环的循环次数是main int i 0while i 10if i 1 breakiA1 B10 C6 D死循环不能确定次数59以下程序中while循环的循环次数是main int i 0while i 10if i 1 contimueif i 5 breakiA1 B10 C6 D死循环不能确定次数60若执行以下程序时从键盘上输入9则输出结果是A 11B 10C 9D 8mainint nscanf "d"nif n 10 printf "d\n"nelse printf "d\n"n--61有以下程序段int k 0while k 1 kwhile 循环执行的次数是A 无限次B 有语法错不能执行C 一次也不执行D 执行1次62对于下面①②两个循环语句是正确的描述①while 1 ②forA①②都是无限循环 B①是无限循环②错误C①循环一次②错误 D①②皆错误63语句while E 中的表达式E等价于AE 0 BE 1 CE 0 DE 164下面程序段运行结果是x y 0while x 15 yx x ypirntf ddyxA207 B612 C208 D82065设有以下程序段 int x 0s 0while x 0 s xprintf ds 则A运行程序段后输出0 B运行程序段后输出1C程序段中的控制表达式是非法的 D程序段执行无限次66下面程序段的运行结果是int n 0 while n 2 printf dnA2 B3 C4 D有语法错误67下面程序的运行结果是includemain int num 0while num 2numprintf d numA1 B1 2 C1 2 3 D1 2 3 468c语言中while和do-while循环的主要区别是Ado-while的循环体至少无条件执行一次Bwhile的循环控制条件比do-while的循环控制条件严格Cdo-while允许从外部转到循环体内Ddo-while的循环体不能是复合语句69下面有关for循环的正确描述是Afor循环只是能用于循环次数已经确定的情况Bfor循环是先执行循环体语句后判断表达式C在for循环中不能用break语句跳出循环体Dfor循环的循环体语句中可以包含多条语句但必须用花括号括起来70对for 表达式1 表达式3 可以理解为Afor 表达式10表达式3 Bfor 表达式1表达式1表达式3 Cfor 表达式11表达式3 Dfor 表达式1表达式3表达式3 71若i为整型变量则以下循环执行次数是for i 2i 0 printf di--A无限次 B0次 C1次 D2次72下面程序的运行结果是includemain int y 10do y-- while --yprintf d\ny--A-1 B1 C8 D073下面程序的运行结果是includemain int a 1b 10do b- aa while b-- 0printf a db d\nabAa 3b 11 Ba 2b 8 Ca 1b -1 Da 4b 974下面程序段的运行结果是for y 1y 10 y x 3yx1 x-1printf x dy dxyAx 27y 27 Bx 12y 13 Cx 15y 14 Dx y 2775下列程序段不是死循环的是A int i 100 while 1 i i1001if i 100 break Bfor Cint k 0 do k while k 0 Dint s 36while s --s76以下程序段输出结果是A 9 B1 C11 D10int k j sfor k 2k 6kks 1for j k j 6j s jprintf d\ns77以下程序段输出结果是A12 B15 C20 D25int i jm 0for i 1i 15i 4for j 3j 19j 4 mprintf d\nm78以下程序段输出结果是A10 B9 C 10 D99 8 9 8 8 7 8 7 7 6int n 10while n 7n--printf d\nn79以下程序段输出结果是A 1 B3 0 C1 –2 D死循环int x 3doprintf 3d x- 2while --x80以下程序段输出结果是A15 B14 C不确定 D0mainint i sumfor i 1i 6i sum sumprintf d\nsum81以下程序的输出结果是A741 B852 C963 D875421mainint y 10for y 0y--if y3 0printf d--y continue82若x是int型变量以下程序段的输出结果是A 3 B3 C3 D344 4 45 55 5for x 3 x 6xprintf x2 d d\n x83以下程序的输出结果是A B C Dmainint ifor i 1 i 5 iif i2 printfelse continueprintfprintf \n84 以下叙述不正确的是Ado-while语句构成的循环不能用其他语句构成的循环来代替Bdo-while语句构成的循环只能用break语句退出C用do-while语句构成循环时只有在while后的表达式为非零时结束循环D用do-while语句构成循环时只有在while后的表达式为零时结束循环85C语言中的简单数据类型有A 整型实型逻辑型B 整型实型字符型C 整型字符型逻辑型D 整型实型逻辑型字符型86C语言中字符char型数据在微机内存中的存储形式是A 反码B 补码C EBCDIC码D ASCII码87设有定义语句char a \72则变量aA 包含1个字符B 包含2个字符C 包含3个字符D 包含4个字符88C语言中不合法的字符常量是A\xff B\65 C D\028 89C语言中不合法的字符串常量是A121 By C \n\n DABCD\x6d90判断char型变量c是否为大写字母的最简单且正确的表达式是AA c Z B c A c ZC A c AND Z c D c A c Z91以下程序的输出结果是A因输出格式不合法无正确输出 B6590CAY D6589mainchar c1 Ac2 Yprintf dd\nc1c292以下程序段的输出结果是AA Ba CZ Dzmainchar x Ax x Ax Z x32 xprintf c\nx93以下程序的输出结果是A67C BBC CCD D不确定的值mainchar ch1ch2ch1 A5-3ch2 A5-3printf dc\nch1ch294以下程序的输出结果使A11 B20 C21 D31 func int aint bint cc abreturn cmainint x 6y 7z 8rr func x--yxy z--printf d\nr95以下程序的输出结果是A-1 B0 C1 D2 mainint i 2pp f ii1printf d\npint f int aint bint cc aif a b c 1else if a b c 0else c -1return c96以下程序的输出结果使A0 B1 C6 D无定值fun int a int b int cc abmainint cfun 23cprintf d\nc97以下程序的输出结果是A5500000 B3000000 C4000000 D825 double f nint i double ss 10for i 1 i n i s 10ireturn smainint im 3 float a 00for i 0i mi a f iprintf f\na98以下程序的输出结果是A因变量无定义输出不定值 B0 C-1 D1 include stdiohmainprintf d\nNULL99以下程序的输出结果是A523 B-5-12-7 C-5-12-17 D5-2-7void sub int x int y int zz y-xmainint abcsub 105a sub 7ab sub abc printf ddd\nabc100以下程序的输出结果是A4 B6 C8 D10mainint k 2 m 4 n 6int pk kpm mpp n pk pmprintf d\nn101以下程序的输出结果是A 43 B23 C 34 D 32 void fun float a float bfloat wa aaw a a b b wmainfloat x 20 y 30float px x py yfun pxpyprintf 20f20f\nxy102以下程序的输出结果是A 9000000B 1500000C 8000000D 10500000void sub float x float y float zy y-10z zxmainfloat a 25b 90 pa pbpa a pb bsub b-a pa paprintf f\n a103在c语言中引用数组元素时其数组下标的数据类型允许是A整型常量 B整型表达式 C整型常量或整型表达式D任何类型的表达式104以下对一维整型数组a的正确说明是Aint a 10 Bint nscanf dn int a[n]Cint n 10a[n] Ddefine SIZE 10 int [SIZE]105以下能对一维数组a进行正确初始化的语句是Aint a[10] 00000 Bint a [10]Cint a[] 101256 Dint a[] 101106以下对二维数组a的正确说明是Aint a[3][] Bfloat a 34 Cdouble a[1][4] Dfloat a 3 4 107若有说明int a[3][4]则对a数组元素的正确引用是Aa[2][4] Ba[13] Ca[11][0] Da 2 1108若有说明int a[3][4]则对a数组元素的非法引用是Aa[0][21] Ba[1][3] Ca[4-2][0] Da[0][4]109以下能对二维数组a进行正确初始化的语句是Aint a[2][] 101 523 Bint a[][3] 123 456Cint a[2][4] 123 45 6 Dint a[][3] 101 11110以下不能对二维数组a进行正确初始化的语句是Aint a[2][3] 0 Bint a[][3] 12 0Cint a[2][3] 12 34 56 Dint a[][3] 123456111 若有说明int a[3][4] 0 则下面正确的叙述是A只有元素a[0][0]可得到初值0 B数组a中每个元素均可得到初值0C数组a中各元素都可得到初值但不一定为0 D此说明语句不正确112 若有说明int a[][4] 00 则下面不正确的叙述是A数组a的每个元素都可得到初值0 B二维数组a的第一维大小为1C因为二维数组a中第二维大小的值除以初值个数的商为1故数组a的行数为1D只有元素a[0][0]和a[0][1]可得到初值0其余元素均得不到初值0113若二维数组a有m列则计算任一元素a[i][j]在数组中位置的公式为假设a[0][0]位于数组的第一个位置上Aimj BjmI Cimj-1 Dimj1114对以下说明语句的正确理解是 int a[10] 678910A将5个初值依次赋给a[1]至a[5] B将5个初值依次赋给a[0]至a[4] C将5个初值依次赋给a[6]至a[10] D因为数组长度与初值的个数不相同所以此语句不正确115若有说明int a[][3] 1234567 则a数组第一维的大小是A2 B3 C4 D无确定值116定义如下变量和数组int kint a[3][3] 123456789则下面语句的输出结果是for k 0k 3k printf da[k][2-k]A3 5 7 B3 6 9 C1 5 9 D1 4 7117下面是对s的初始化其中不正确的是Achar s[5] abc Bchar s[5] abcCchar s[5] Dchar s[5] abcdef118下面程序段的运行结果是char c[5] ab\0c\0printf scAab Bab Cab_c Dab 其中_表示空格119对两个数组a和b进行如下初始化char a[] ABCDEFchar b[] ABCDEF则以下叙述正确的是Aa与b数组完全相同 Ba与b长度相同Ca和b中都存放字符串 Da数组比b数组长度大120有两个字符数组ab则以下正确的输入语句是Agets ab Bscanf ssabCscanf ssab Dgets a gets b121有字符数组a[80]和b[80]则正确的输出语句是Aputs ab Bprintf ssa[]b[]Cputchar ab Dputs a puts b122有下面的程序段char a[3]b[] Chinaa b printf sa 则A运行后将输出China B运行后将输出ChC运行后将输出Chi D编译出错123判断字符串a和b是否相等应当使用Aif a b Bif a b Cif strcpy ab Dif strcmp ab124判断字符串s1是否大于字符串s2应当使用Aif s1 s2 Bif strcmp s1s2Cif srtcmp s2s1 0 Dif strcmp s1s2 0125下述对C语言字符数组的描述中错误的是A字符数组可以存放字符串B字符数组的字符串可以整体输入输出C可以在赋值语句中通过赋值运算符对字符数组整体赋值D不可以用关系运算符对字符数组中的字符串进行比较126以下正确的说法是建立函数的目的之一是A提高程序的执行效率 B提高程序的可读性C减少程序的篇幅 D减少程序文件所占内存127以下正确的说法是A用户若需调用标准库函数调用前必须重新定义B用户可以重新定义标准库函数若如此该函数将失去原有含义C系统根本不允许用户重新定义标准库函数D用户若需调用标准库函数调用前不必使用预编译命令将该函数所在文件包括到用户源文件中系统自动去调128以下正确的函数定义形式是Adouble fun int xint y Bdouble fun int xint y Cdouble fun int xint y Ddouble fun int xy129以下正确的函数形式是Adouble fun int xint y z xyreturn zBfun int xy int z return zCfun xy int xydouble z z xyreturn zDdouble fun int xint y double z z xyreturn z130以下正确的说法是在C语言中A实参和与其对应的形参各占用独立的存储单元B实参和与其对应的形参共占用一个存储单元C只有当实参和与其对应的形参同名时才共占用存储单元D形参是虚拟的不占用存储单元131以下不正确的说法是 C语言规定A实参可以是常量变量或表达式 B形参可以是常量变量或表达式C实参可以为任意类型 D形参应与其对应的实参类型一致132以下正确的说法是A定义函数时形参的类型说明可以放在函数体内Breturn后边的值不能为表达式C如果函数值的类型与返回值类型不一致以函数值类型为准D如果形参与实参的类型不一致以实参类型为准133 C语言允许函数值类型缺省定义此时该函数值隐含的类型是Afloat型 Bint型 Clong型 Ddouble型134 C语言规定函数返回值的类型是由Areturn语句中的表达式类型所决定B调用该函数时的主调函数类型所决定C调用该函数时系统临时决定D在定义该函数时所指定的函数类型所决定135下面函数调用语句含有实参的个数为Func exp1exp2 exp3exp4exp5A1 B2 C4 D5136以下错误的描述是函数调用可以A出现在执行语句中 B出现在一个表达式中C做为一个函数的实参 D做为一个函数的形参137以下正确的描述是在C语言程序中A函数的定义可以嵌套但函数的调用不可以嵌套B函数的定义不可以嵌套但函数的调用可以嵌套C函数的定义和函数的调用均不可以嵌套D函数的定义和函数的调用均可以嵌套138若用数组名作为函数调用的实参传递给形参的是A数组的首地址 B数组第一个元素的值C数组中全部元素的值 D数组元素的个数139 已有以下数组定义和f函数调用语句则在f函数的说明中对形参的说明中对形参数组array的错误定义方式为int a[3][4] f aAf int array[ ][6] Bf int array[3][ ]Cf int array[ ][4] Df int array[2][5]140 若使用一维数组名作参数则以下正确的说发是A必须在主调函数中说明此数组的大小B实参数组类型与形参数组类型可以不匹配C在被调函数中不需要考虑形参数组的大小D实参数组名与形参名必须一致141 以下正确的说法是如果在一个函数中的复合语句中定义了一个变量则该变量 A只在复合语句中有效 B在该函数中有效C在本程序范围内均有效 D为非法变量142以下不正确的说法是A在不同的函数中可以使用相同名字的变量B形式参数是局部变量C在函数内定义的变量只能在本函数范围内使用D在函数内的复合语句中定义的变量在本函数范围内有效143 凡是函数中未指定存储类别的局部变量其隐含的存储类别为A自动autoB静态staticC外部externD寄存器register144 以下程序的运行结果是sub int xint yint zz y-xmain int abcsub 105a sub 7ab sub abcprintf 4d4d4d\nabcA5 2 3 B-5-12-7 C-5-12-17 D5-2-7145 以下程序能对两个整型变量的值进行交换以下正确的说法是main int a 10b 20printf 1 a db d\nabswap abprintf 2 a db d\nabswap int pint q int t t pp tA该程序完全正确 B该程序有错只要将语句swap ab 中的参数改为ab 即可 C该程序有错只要将swap 函数中的形参p和q以及t均定义为指针变量即可 D以上说法都不正确146 以下程序中调用scanf函数给变量a输入数值的方法是错误的其错误原因是main int pqabp aprintf input ascanf dpAp表示的是指针变量p的地址Bp表示的是变量a的值而不是变量a的地址Cp表示的是指针变量p的值Dp只能用来说明p是一个指针变量147 已有定义 int k 2int prt1prt2且prt1和prt2均已指向变量k下面不能正确执行的赋值语句是Ak prt1prt2 Bprt2 k Cprt1 prt2 Dk prt1 prt2148 若有说明int p1p2m 5n以下均是正确赋值语句的选项是Ap1 mp2 p1 Bp1 mp2 np1 p2Cp1 mp2 p1 Dp1 mp2 p1149 设p1和p2是指向同一个字符串的指针变量c为字符变量则以下不能正确执行的赋值语句是Ac p1p2 Bp2 c Cp1 p2 Dc p1 p2150 下面判断正确的是Achar a china等价于char aa chinaBchar str[10] china 等价于char str[10]str[] chinaCchar a china等价于char ss chinaDchar c[4] abcd[4] abc等价于char c[4] d[4] abc151 下面能正确进行的字符串赋值操作的是Achar s[5] ABCDE Bchar s[5] ABCDECchar ss ABCDE Dchar sscanf ss152 若有以下定义则对a数组元素的正确因用是int a[5]p aAa[5] Ba2 C p5 D a2153 若有定义int a[2][3]则对a数组的第i行第j列元素值得正确引用为A ai jB ai [j]C aijD ai j154 若有以下定义和语句则对a数组元素地址的正确引用为int a[2][3] p [3] p aA p2 Bp[2] Cp[1]1 D p1 2155 以下与int q[5]等价的定义语句是Aint q[5] Bint q Cint q[5] Dint q [5]156 若有定义int a[] 24681012141618202224 q[4]k则下面程序段的输出是for k 0k 4k q[k] a[k3]printf d\nq[3][0]A8 B16 C20 D输出项不合法结果不确定157 语句int prt 的含义是Aprt是指向一维数组的指针变量 Bprt是指向int型数据的指针变量Cprt是指向函数的指针该函数返回一个int型数据Dprt是一个函数名该函数的返回值是指向int型数据的指针158库函数strcpy用以复制字符串若有以下定义和语句char str1[] stringstr2[8]str3str4 string则对库函数strcpy的不正确调用是A strcpy str1HELLO1B strcpy str2HELLO2C strcpy str3HEELO3D strcpy str4HELLO4 159若已定义int a[] 0123456789 p ai其中0 i 9则对a数组元素的引用不正确的是Aa[p-a] B a[i] Cp[i] D ai160以下程序段给数组所有元素输入数据应在下划线处填入的是Aa i B a[i1] Cai Da[i]mainint a[10] i 0while i 10 scanf d___161以下程序的输出结果是A3 B4 C1 D2mainint a[10] 12345678910 p aprintf d\n p2162以下程序的输出结果是A不确定的值 B3 C2 D 1mainint n[2] 0 ijk 2for i 0 i k ifor j 0 j k j n[j] n[i]1printf d\nn[k]163以下程序的输出结果是A 17B 18C 19D 20mainint a[] 246810 y 1 xpp a[1]for x 0 x 3 x y pxprintf d\ny164以下程序的输出结果是A 6 B8 C 4 D2mainint a[] 2468 p a ifor i 0 i 4 i a[i] pprintf d\na[2]165以下程序的输出结果是A 720 B120 C24 D6f int b[ ]int nint ir 1for i 0i ni r rb[i]return rmainint x a[ ] 23456789x f a3printf d\nx166以下程序中若第一个printf语句输出的是194则第二个printf语句的输出结果是A212 B204 C1a4 D1a6mainint a[] 1234567890 pp aprintf "x\n"pprintf "x\n"p9167以下程序的输出结果是A 4 4 B2 2 C2 4 D4 6mainint a[5] 246810 pkp a k pprintf "d " pprintf "d\n"k168当运行以下程序时输入三行每行都是在第一列上开始代表回车键abcdef则程序的输出结果是Aabcdef B a Ca Dab b bc cd cdefdefinclude "stdioh"define N 6mainchar c[N]int i 0for i 0i Nic[i] getcharfor i 0i Niputchar c[i]169若有定义和语句int c[4][5] cp [5] cp c则对c数组元素的引用正确的是A cp1B cp3C cp1 3D cp2170若已定义int a[4][3] 123456789101112 prt [3] ap a[0] 则能够正确表示数组元素a[1][2]的表达式是A prt1 [2]B p5C prt1 2D a1 2171若有定义和语句int a[4][3] 123456789101112 prt [3] ap[4] i 则不能正确表示a数组元素的表达式是Aa[4][3] Bp[0][0] Cprt[2][2] D p1 [1] 172以下程序的输出结果是A 23B 26 C33 D36mainint aa[3][3] 2 4 6 ip aa[0][0] for i 0i 2 iif i 0aa[i][i1] p1else pprintf "d"pprintf "\n"173以下程序的输出结果是A 60 B68 C99 D108mainint a[3][4] 1357911131517192123 int p [4] aijk 0for i 0i 3ifor j 0j 2jk pi jprintf "d\n"k174以下程序的输出结果是A 159 B147 C357 D369mainint ix[3][3] 123456789for i 0i 3iprintf "d"x[i][2-i]175若有定义语句int p [M] 其中的标识符p是AM个指向整型变量的的指针B指向M个变量的函数指针CD] aeiouB char s s goodC char s[5] goodD char s[5] s good177以下程序段的输出结果是char str[ ] ABCDp strprintf d\n p4A 68B 0C 字符D的地址 D不确定的值178以下程序段的输出结果是printf d\nstrlen ATS\n012\1\\A 11B 10C 9D 8179当运行以下程序是输入OPEN THE DOOR〈CR〉代表ENTER键则输出结果是AOpen tHE door Bopen the doorC OPEN THE DOOR DOpen The Doorinclude stdiohchar fun char cif c Zc A c- A-areturn cmainchar s[81] p sgets swhile pp fun p putchar p pputchar \n180以下程序的输出结果是AGFEDCBA BAGADAGA CAGAAGAG DGAGGAGAinclude stdiohinclude stringhvoid fun char wint mchar sp1p2p1 w p2 wm-1while p1 p2s p1 p1 p2-- p2 smainchar a[ ] ABCDEFGfun astrlen aputs a181以下程序的输出结果是 ABCD pfor p s p s4p printf s\np182设有如下定义Char aa[2] abcdABCD则以下叙述中正确的是Aaa数组元素中的值分别是字符串abcd 和ABCDBaa是指针变量它指向含有两个数组元素的字符型一维数组Caa数组的两个元素分别存放的是含有四个字符的一维数组的首地址Daa数组的两个元素中各自存放了字符a和A的地址183以下程序的输出结果是A6385 B69825 C63825 D693825mainchar ch[2][5] 69378254 p[2]int ijs 0for i 0 i 2 i p[i] ch[i]for i 0i 2ifor j 0 p[i][j] \0p[i][j] 9 j 2s 10sp[i][j]-0printf d\ns184以上程序的输出结果是A ABCDEFGHIJKLB ABCD CABCDEFGHIJKLMNOP D AEIMmainchar alpha[6] ABCDEFGHIJKLMNOPQRSTUVWXchar pint ip alphafor i 0i 4i printf sp[i]printf \n185有以下程序mainint m 12n 34printf "dd"mn printf "dd\n"nm程序运行后的输出结果是A12353514 B12353513 C12343514 D1******* 有以下语句int bchar c[10]则正确的输入语句是Ascanf "ds"b B scanf "ds"bCscanf "ds"b Dscanf "ds"b187有以下程序main int abd 25a d109b a -1printf "dd\n"ab程序运行后的输出结果是A61 B21C60 D20有以下程序mainint i 1j 2k 3if i 1 j 3k 3printf "d d d\n"ijk程序运行后的输出结果是A1 2 3 B2 3 4C2 2 3 D2 3 3有以下程序mainchar a[7] "a0\0a0\0" int iji sizeof a j strlen aprintf "d d\n"ij程序运行后的输出结果是A2 2 B7 6 C7 2 D6 2以下能正确定义一维数组的选项是Aint a[ ] 012345 Bchar a[] 012345 Cchar a ABC Dint a[5] "0123"有以下程序运行后的输出结果是 int f1 int xint y return x yxy int f2 int xint y return x yyxmainint a 4b 3c 5d 2efge f2 f1 ab f1 cdf f1 f2 ab f2 cdg abcd-e-fprintf "ddd\n"efgA437 B347 C527 D257已有定义char a[] "xyz"b[] xyz 以下叙述中正确的是 A数组a和b的长度相同 Ba数组长度小于b数组长度 Ca数组长度大于b数组长度 D上述说法都不对有以下程序运行后的输出结果是void f int xint y int tt xx yy tmain int a[8] 12345678 ipqp aq a[7] while p q f pq pq--for i 0i 8i printf "d"a[i]A82345671B56781234 C12345678 D8*******有以下程序mainint a[3][3]pip a[0][0]for i 0i 9i p[i] ifor i 0i 3i printf "d"a[1][i]程序运行后的输出结果是A0 1 2 B1 2 3 C2 3 4 D3 4 5以下叙述中错误的是A对于double类型数组不可以直接用数组名对数组进行整体输入或输出 B数组名代表的是数组所占存储区的首地址其值不可改变 C当程序执行中数组元素的下标超出所定义的下标范围时系统将给出"下标越界"的出错信息 D可以通过赋初值的方式确定数组元素的个数有以下程序define N 20fun int a[]int nint mint ijfor i mi ni-- a[i1] a[i]mainint ia[N] 12345678910fun a29for i 0i 5i printf "d"a[i]程序运行后的输出结果是A10234B12344 C12334 D12234有以下程序main int a[3][2] 0 ptr [2]ijfor i 0i 2iptr aiscanf "d"ptr ptrfor i 0i 3ifor j 0j 2j printf "2d"a[i][j]printf "\n"若运行时输入1 2 3 则输出结果是A产生错误信息 B1 0 C1 2 D1 02 03 0 2 00 0 0 0 3 0198有以下程序prt int mint nint ifor i 0ii1mainint a[] 12345 iprt a5for i 0i 5iprintf "d"a[i]程序运行后的输出结果是A23456 B12345 C34567 D23451 以下语句或语句组中能正确进行字符串赋值的是Achar spsp "right" Bchar s[10]s "right"Cchar s[10]s "right" Dchar sp "right"有以下程序mainchar s[] "159"pp sprintf "c"p printf "c"p程序运行后的输出结果是A15 B16 C12 D59 A for B 8d C if_G3 D WND -sub do IF voidCase Size a2bc define204下面四个选项中全部是不正确的八进制数或十六进制数的选项是A 016 0x8f 018B 0abc 017 0xaC 010 -0x11 0x16D 0a12 7ff -123205以下正确的叙述是A 在C程序中每行中只能写一条语句B 若a是实型变量C程序中允许赋值a 10因此实型变量中允许存放整型数C 在C程序中无论是整数还是实数都能被准确无误地表示D 在C程序中求余数运算符是只能用于整数运算的运算符206下面四个选项中均是合法的浮点数的选项是A 1e1 5e-94 03e2B 60 12e-4 -8e5C 123e 12e-4 2e-1D -e3 8e-4 5e-0207已知各变量的类型说明如下int k a w 5b float x 142则以下不符合C语言语法的表达式是A 124 -3B w -2xC k a 2 b 3 abD a a- b 4 a 3208以下不正确的叙述是A 在C程序中逗号运算符的优先级最低B 在C程序中APH和aph是两个不同的变量C 若a和b类型相同在计算了赋值表达式a b后b中的值将放入a中而b 中的值不变D 当从键盘输入数据时对于整型变量只能输入整型数值对于实型变量只能输入实型数值209sizeof double 是A 一种函数调用B 一个双精度型表达式C 一个整型表达式D 一个不合法的表达式210若有定义int a 8b 5c执行语句c ba04后c的值为A04 B1 C20 D0211若变量a是char类型并执行了语句a B16则正确的叙述是Aa的值是字符675 Ba的值是浮点型C不允许字符型和浮点型相加 Da的值是字符B的ASCII值加上1 212在C语言中合法的长整型常数是A0L B4962710 C324562 D 216D213以下选项中不合法的字符常量是AB B\010 C6 DD214设abcdmn均为int型变量且a 5b 6c 7d 8m 2n 2则逻辑表达式 a b n 运算后n的值为A0 B1 C2 D3215putchar函数可以向终端输出一个A 整型变量表达式B 实型变量值C 字符串D 字符或字符型变量值216printf函数中用到格式符5s其中数字5表示输出的字符串占用5列如果字符串长度大于5则输出按方式A 从左起输出该字符串右补空格B 按原字符长从左向右全部输出C 右对齐输出该字符串左补空格D 输出错误信息217阅读以下程序当输入数据的形式为251310 注表示回车则正确的输出结果为mainint xyzscanf dddxyzprintf xyz d\nxyzA xyz 48B xyz 35C xz 35D 不确定值218若下面程序的输入形式为AΔBΔCΔ表示空格程序输出结果为mainchar ch1ch2ch3scanf cccch1ch2ch3printf cccch1ch2ch3A AΔBCB ABC C AΔBD ABΔC219已知ch是字符型变量下面不正确的赋值语句是A ch abB ch \0C ch 79D ch 59220设有语句 char a \72 则变量 aA 包含1个字符B 包含2个字符C 包含3个字符D 说明不合法221执行下面程序中的输出语句 a 的值是A 65B 20C 15D 10mainint aprintf "d\n" a 35a4a5222设有语句 int a 3 则执行了语句 a a- aa 后变量 a 的值是A 3B 0C 9D -12223下列关于单目运算符--的叙述中正确的是A 它们的运算对象可以是任何变量和常量B 它们的运算对象可以是char型变量和int型变量但不能是float型变量C 它们的运算对象可以是int型变量但不能是double型变量和float型变量D 它们的运算对象可以是char型变量int型变量和float型变量224在 C 语言中如果下面的变量都是 int 类型则输出结果是sum pad 5 pad sum pad padprintf "d\n"padA 7B 6C 5D 4225以下程序的输出结果是includemainint i 010 j 10printf "dd\n"i j--A 1110B 910C 0109D 109226已知在ASCII 代码中字母A的序号为65以下程序的输出的结果是includemainchar c1 A c2 Cprintf "dc\n"c1c2A 因输出格式不合法输出错误信息 B65C CAY D6567227以下程序的输出结果是includeincludemainint a 1b 4c 2float x 105 y 40 zz ab csqrt double y 12cxpritnf "f\n"zA 14000000B 015400000C 13700000D 14900000 228以下程序的输出结果是includemainint a 2c 5printf "a db d\n"acA a 2b 5B a 2b 5C a db dD a db d229以下程序的输出结果是includemainint a bd 241a d1009b -1 -1。
C语言程序设计考试题(全题)

福建师范大学C语言程序设计考试题系别 _______ 班级 _______ 姓名_________ 学号________ 得分__________一、选择题(本大题共40个选项,每个选择项1.5分,共60分)1.在C语言中,合法的字符常数是【1】A)‘程序设计’ B)“程序设计”C)c D)‘\\’2.在C语言中,以下不正确的八进制或不正确的十六进制数是【2】A)090 B)0xABC)0xla D)-0163.执行int x=2,y=3;后表达式x=(y==3)的值是【3】A)0 B)1C)2 D)34.执行语句int a,b,c; a=(b=c=3, c++, b+=c);则a的值是【4】A) 3 B) 4C) 7 D) 115.在循环结构的循环体中执行break语句,其作用是【5】A) 结束本次循环,进行下次循环B) 继续执行break语句之后的循环体中各语句C) 跳出该循环体,提前结束循环D) 终止程序运行【6】main(){char s[]=”\’Address\’”;printf(%d\n”, strlen(s));}A) 9 B) 10C) 11 D) 12【7】main(){int a[]={2, 4, 6, 8, 10}, y=1, x;for(x=0; x<3; x++) y+=a[x+1];printf(“%d\n”, y);}A) 17 B) 18C) 19 D) 208.已定义char x[8]; int i;为了给x数组赋值,以下正确的语句是【8】A) x[8]=”Turbo C”; B) x=”Turbo C”;C) x[]=”Turbo C”; D) for(i=0; i<7; i++) x[i]=getchar();9.设int a[][4]={0, 0};则以下错误的描述是【9】A) 数组a的每个元素都可得到初值0B) 二维数组a的第一维大小为1C) 数组a的行数为1D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0 【10】fun3(int x){static int a=3;a+=x;return a;}main(){int k=2, m=1, n;n=fun3(k);n=fun3(m);printf(“%d\n”, n);}A) 3 B) 4C) 6 D) 911.以下四个运算符,按优先级由高到低的排列顺序是【11】A) ++ % += > B) % ++ > +=C) % += > ++ D) ++ % > +=【12】A) 在函数外部定义的变量是全局变量B) 在函数内部定义的变量是局部变量C) 函数的形参是局部变量D) 局部变量不能与全局变量同名13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为【13】A) 直接按系统设定的标准方式搜索目录B) 先在源程序所在目录搜索,再按系统设定的标准方式搜索C) 仅仅搜索源程序所在的目录D) 仅仅搜索当前目录14.设有语句int(*p)();则p是一个【14】A) 指向一维整型数组的指针变量B) 指针函数,该函数的返回值为指向整型变量的指针C) 指向函数的指针变量,该函数的返回值为整型D) 数组指针,它的每个元素都是一个可以指向整型变量的指针变量15.若有typedef float AR[5];AR a;则以下叙述正确的是【15】A) a是一个新类型名B) AR是一个实型数组C) AR是一个实型变量D) a是一个实型数组【16】A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型C)整型、字符型、逻辑型D)整型、实型、字符型17.在C语言中,变量所分配的内存空间大小【17】A)均为一个字节 B)由用户自己定义C)由变量的类型决定 D)是任意的18.在C语言中,合法的整型常数是【18】A)-0x123 B)3.14159 C19.下列各变量均为整型,选项中不正确的C语言赋值语句是【19】A)i+=++i; B)i=j==k;C)i=j+=i; D)i=j+1=k;≤y≤z可用C语言的表达式表示为【20】A)(x<=y)&&(y<=z) B)(x<=y)and(y<=z)C)(x<=y<=z) D)(x<=y)&(y<z)21.若定义float a;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用【21】A)scanf(“%6f”,&a); B)scanf(“%”,a);C)scanf(“%”,&a); D)scanf(“%f”,a);【22】unsigned a=0356,b;b=~a|a<<2+1;printf(“%x\n”,b);A)ffba B)ff71 C)fff8 D)fc0223.要使以下程序的输出结果为4,则a和b应满足的条件是【23】main(){int s,t,a,b;scanf(“%d%d”,&a,&b);s=t=1;if(a>0) s += 1;if(a>b) t= s + t;elseif(a==b) t=5;else t=2*s;printf(“%d\n”,t);}A)a>0并且a<b B)a<0并且a<bC)a>0并且a>b D)a<0并且a<b24.若int i;则以下循环语句的循环执行次数是【24】for (i=2;i==0;) printf(“%d”,i--);A)无限次 B)0次C)1次 D)2次【25】main(){int i;for(i=100;i<200;i++){if(i%5==0) continue;printf(“%d\n”,i);break;}}A)100 B)101C)无限循环 D)无输出结果【26】int i=1,a[]={1,5,10,9,13,7};while(a[i]<=10) a[i++]+=2;for (i=0;i<6;i++) printf(“%d”,a[i]);A)2 7 12 11 13 9 B)1 7 12 11 13 7C)1 7 12 11 13 9 D)1 7 12 9 13 7“abcde”赋初值给字符数组,不正确的语句是【27】A)char s[]=“abcde”; B)char s[]={’a’, ’b’,’c’,’d’,’e’,’\0’};C)char s[]={“abcde”}; D)char s[5]= “abcde”;28.若变量c为char类型,能正确判断出c为小写字母的表达式是【28】A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z')C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z')【29】void fun(int *x, int *y){ printf("%d %d", *x, *y); *x=3; *y=4;}main(){ int x=1,y=2;fun(&y,&x);printf("%d %d",x, y);}A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2【30】main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A) 20 B) 21 C) 22 D)2331.当执行下面的程序时,如果输入ABC,则输出结果是【31】main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789"); printf("%s\n",ss);}A) ABC6789 B) ABC67 C【32】A) int a[2][3]={0}; B) int a[][3]={1,2,3,4,5};C) int a[2][3]={{1,2},{3,4},{5,6}}; D) int a[2][3]={{1},{3,4,5}};33.若int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【33】A) 2 B) 3 C) 4 D)无确定值34.下面程序段的运行结果是【34】int a[2][3]={1,2,3},i,j;for(i=0;i<2;i++)for(j=0;j<3;j++){a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];printf(“%d,”,a[i][j]);}A) 2,4,6,2,0,8, B) 1,2,3,0,0,0,C) 1,2,3,2,0,6, D) 2,4,6,2,0,6,35.下面程序段的运行结果是【35】int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d\n”,a[2][1]);A) 2 B) 4 C) 7 D)836.定义一个结构体变量时,系统分配给它的内存大小是【36】A)各成员所需内存量的总和B)成员中占内存量最大者所需内存容量C)结构中第一个成员所需内存容量D)结构中最后一个成员所需内存容量37.若typedef char STRING[255];STRING s;,则s是【37】A)字符指针数组变量B)字符数组变量C)字符变量D)字符指针变量38.若已定义:int *p,a;,则语句p=&a;中的运算符“&”的含义是【38】A) 位与运算B) 逻辑与运算C) 取指针内容D)取变量地址39.若有定义char *p,ch;则不能正确赋值的语句组是【39】A)p=&ch;scanf(“%c”,p);B)p=(char *)malloc(1); *p=getchar();C)*p=getchar();p=&ch;D)p=&ch;*p=getchar();40.下面程序段的运行结果是【40】char s[]=“ABC”;int i;for(i=0;i<3;i++) printf(“%s”,&s[i]);A) ABC B) ABCABCABC C) AABABC D)ABCBCC1.下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种C) C语言的函数可以嵌套定义D) C语言所有函数都是外部函数0.5 C) 2L D) '\72'3.下列选项中,合法的C语言关键字是A) V AR B) cher C) integer D) default4.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为A) 不定值B) 4 C) 3 D) 15.下面程序段的运行结果是【5】float y=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;int i;p=&a[1];fo r(i=0;i<3;i++) y+=*(p+i);printf(“%f\n”,y);A) 12.0000 B) 28.0000 C) 20.0000 D) 18.00006.下面程序段的运行结果是【6】char c[]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s\n”,c);A) ab c B) ‘a’‘b’C) abc D) ab7.下面程序段的运行结果是【7】char s[10],*sp=“HELLO”;strcpy(s,sp);s[0]=‘h’;s[6]=‘!’;puts(s);A) hELLO B) HELLO C) hHELLO! D) h!8.若有定义int a[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是【8】A) &a[i][j] B) a[i]+jC) *(a+i)+j D) *(*(a+i)+j)9.若有定义int *p[4];,则标识符p是一个【9】A) 变量的指针变量B) 指向函数的指针变量C) 指向有四个整数元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针10.若有定义char *language[]={“FORTRAN”, “BASIC”,“PASCAL”,“JA V A”, “C”};则language[2]的值是【10】A) 一个字符B) 一个地址C) 一个字符串D) 不确定11.C语言规定,函数返回值的类型由【11】所决定。
C语言程序设计题库

C语言题库试题1有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是A) 3 B) 4 C) 5 D) 有语法错2有以下程序#include <stdio.h>char fun(char x , char y){ if(x<y)return x;return y;}void main( ){ int a='9',b='8',c='7';printf("%c\n",fun(fun(a,b),fun(b,c)));}程序的执行结果是A)函数调用出错 B)8 C)9 D)73如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为()。
A.静态变量B.动态变量C.外部变量D.内部变量4若变量a、iI已正确定义,且i已正确赋值,合法的语句是A) a==1 B) ++i; C) a=a++=5; D) a=int(i);5设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
A) 6.500000 B) 6 C) 5.500000 D) 6.0000006以下程序段的输出是_______#include "stdio.h"void main(){float a=57.666;printf(“%10.2f\n”,a);}A)_ _ _ _ _57.66 B)_57.66 C)_ _ _ _ _57.67 D)_57.677以下程序的输出结果是A)9 8 B)8 9 C)6 6 D)以上三个都不对#include “ math.h”main(){ double a=-3.0,b=2;printf(“ %3.0f %3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));以下程序段的输出结果是_______8#include "stdio.h"void main(){unsigned int i=65535;printf("%d\n",i);}A) 65535 B) 0 C) 有语法错误,无输出结果 D) -19若执行下面的程序时从键盘上输入3和4,则输出是A) 14 B) 16 C) 18 D) 20main(){ int a,b,s;scanf("%d %d",﹠a,﹠b);s=a;if(a〈b)s=b;s=s*s;printf("%d\n",s);}10有如下程序#include "stdio.h"void main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}11该程序的输出结果是( )A) a=2,b=1 B) a=1,b=1C) a=1,b=0 D) a=2,b=2若有定义: float w; int a, b; 则合法的switch语句是A) switch(w) B) switch(a);{ case 1.0: printf("*\n"); { case 1 printf("*\n");case 2.0: printf("**\n"); case 2 printf("**\n");} }C) switch b D) switch(a+b){ case 1: printf("*\n"); { case 1: printf("*\n");default: printf("\n"); case 2: printf("**\n");case 1+2: printf("**\n"); default: printf("\n"); 有以下程序main(){ int i=10;printf("%d\n",++i);}12执行后输出结果是A. 9B. 10C. 11D. 813设以下变量均为int类型,则值等于7的表达式是A. (x=y=6,x+1,x+y)B. (x=y=6,y+1,x+y)C. (y=6,y+1,x=y,x+1)D. (x=6,x+1,y=6,x+y)14设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A. 运行程序段后输出0B. 运行程序段后输出1C. 程序段中的控制表达式是非法的D. 程序段执行无限次15以下程序段_______。
C语言程序设计理论试题库

《C语言程序设计》理论试题库选择题100例选择题1.以下选项中属于C语言的数据类型是( )A、复数型B、逻辑型C、双精度型D、集合型2.在C语言中,不正确的int 类型的常数是( )A、32768B、0C、037D、0xAF3.设有说明语句:char a= '\72';则变量a ( )A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法4.以下所列的C语言常量中,错误的是( )A、0xFFB、1.2e0.5C、2LD、'\72'5.以下选项中合法的字符常量是( )A、"B"B、'\010'C、-268D、D6.在C语言中,合法的长整型常数是( )A、0LB、4962710C、324562&D、216D7.下列标识符中,合法的标识符是( )A、-abc1B、1abcC、_abc1D、 for8.C语言程序的基本单位是( )A、语句B、程序行C、函数D、字符9.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义不用户标识符D、define和if都不能定义为用户标识符10.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义为用户标识符D、define和if都不能定义为用户标识符11.有如下程序long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){printf("%d\n",fib(3));该程序的输出结果是()A、2B、 4C、 6D、812.在C语言中,函数的隐含存储类别是()A、 autoB、 staticC、 externD、无存储类别13.以下所列的各函数首部中,正确的是()A、void play(var:Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)14.在C程序中,可把整型数以二进制形式存放到文件中的函数是()A、 fprintf函数B、 fread函数C、fwrite函数D、 fputc函数15.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()A、 EOFB、 0C、非零值D、 NULL 16.若要打开A盘上的user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()A、 fopen("A:\user\abc.txt","r")B、fopen("A:\user\abc.txt","r+")C、fopen("A:\user\abc.txt","rb")D、fopen("A:\user\abc.txt","w") 17.以下程序的输出结果是()A、 0B、 29C、 31D、无定值fun(int x,int y,int z){ z=x*x+y*y;}main( ){ int a=31;fun(5,2,a);printf("%d",a);}18.当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值19.以下只有在使用时才为该类型变量分配内存的存储类说明是()A、auto和staticB、auto和registerC、register和staticD、extern和register20.以下程序的输出结果是()A、1B、2C、3D、4long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1)return s;}main( ){ printf("%ld\n",fun(3)); }21.以下程序的输出结果是()main( ){ int num= 0;while(num<=2){ num++;printf("%d\n",num);}A、 1B、1C、1D、l2 2 23 3422.以下程序的输出结果是()int f( ){static int i=0;int s=1;s+=i;i++;return s;}main( ){int i,a=0;for(i=0;i<5;i++) a+=f();printf("%d\n",a);}A、20B、24C、25D、1523.以下程序的输出结果是()f(int b[ ],int m,int n){int i,s=0;for(i=m;i<n;i=i+2) s=s+b[i];return s;}main( ){int x,a[ ]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A、10B、18C、8D、1524.下列程序执行后的输出结果是()A、GB、HC、ID、Jmain( ){int x='f';printf("%c \n",'A'+(x-'a'+1));}25.下列程序执行后的输出结果是()A、-32767B、FFFEC、-1D、-32768main( ){int x=0xFFFF;printf("%d \n",x--);}26.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()A、a\bre\'hi\'y\\\bouB、a\bre\'hi\'y\bouC、re'hi'youD、abre'hi'y\bou (说明:'\b'是退格符) 27.有如下程序main( ){int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是()A、3 4B、4 2C、4 3D、3 328.若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a 赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A、10<回车>22<回车> 33<回车>B、10.0,22.0,33.0<回车>C、10.0<回车>22.0 33.0<回车>D、10 22<回车> 33<回车>29.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);30.以下程序段的输出结果是()int a=1234;printf("%2d\n",a);A、12B、34C、1234D、提示出错、无结果31.设int b=2;表达式(b>>2)/(b>>1)的值是()A、0B、2C、4D、832.有如下定义()struct person{char name[9]; int age;};struct person class[10]={ "Johu",17,"Paul",19,"Mary",18,"Adam",16};根据上述定义,能输出字母M的语句是()A、prinft("%c\n",class[3].mane);B、pfintf("%c\n",class[3].name[1]);C、prinft("%c\n",class[2].name[1]);D、printf("%c\n",class[2].name[0]);33.设有以下说明语句struct ex{ int x;float y;char z;}example;则下面的叙述中不正确的是()A、struct是结构体类型的关键字B、example是结构体类型名C、x,y,z都是结构体成员名D、struct ex是结构体类型名34.以下程序的输出是()A、10B、11C、51D、60struct st{ int x;int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main( ){ p=aa;printf("%d\n",++(p->x));}35.以下程序的输出结果是()main( ){char x=040;printf("%o\n",x<<1);}A、100B、80C、64D、3236.若有说明语句: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);37.以下程序的输出结果是()main( ){int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A、5B、4C、6D、不确定38.设x,y,z和k都是int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值( )A、4B、16C、32D、5239.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是( )A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;40.能正确表示a和b同时为正或同时为负的逻辑表达式是( )A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>041.语句:printf("%d",(a=2)&&(b=-2));的输出结果是( )A、无输出B、结果不确定C、-1D、142.设有 int x=11;则表达式 (x++ * 1/3) 的值是( )A、3B、 4C、 11D、 1243.设 int x=1, y=1;表达式(!x||y--)的值是()A、0B、 1C、 2D、 -144.C语言中运算对象必须是整型的运算符是()A、%=B、/C、=D、〈=45.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()A、1B、2C、2.0D、2.546.若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A、0B、0.5C、1D、247.能正确表示逻辑关系:“a》10或a《0”的C语言表达式是()A、a>=10 or a<=0B、a>=0|a<=10C、a>=10 &&a<=0D、a>=10‖a<=048.下程序的输出结果是( )A、-1 1B、0 1C、1 0D、0 0main( ){ int a= -1,b=1,k;if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}49.若有定义: float w;int a,b;则合法的switch语句是()A、switch(w)B、switch(a){ case 1.0:printf("*\n"); { case 1 printf("*\n");case 2.0:printf("**\n"); case 2 printf("**\n");} }C、switch(b)D、switch(a+b){ case 1:printf("*\n"); { case 1:printf("*\n");default:printf("\n"); case 2:printf("**\n");case 1+2:printf("**\n"); default:printf("\n");} }50.如下程序main( ){ int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=251.有如下程序main( ){ float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是()A、0.000000B、0.250000C、0.500000D、1.00000052.有如下程序main( ){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是( )53.若执行以下程序时从键盘上输入9,则输出结果是()A、11B、10C、9D、8main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}54.阅读以下程序:main( ){ int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输人5,则输出结果是()A、3B、4C、5D、655.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。
C语言程序设计题库及答案

第1次客观题作业一、单选题(共30题,每题3分)1 .下面表示正确的是__A___。
A.C语言中的逗号是一种运算符B.在C语言中,一行只能有一个语句C.C中的变量不区分大小写D.c中的关键字可以做为变量名2 .字符型常量在内存中存放的是__A____代码值。
A.ASCII B.二进制C.十进制D.八进制3 .以下不正确的C语言标识符是(C )。
A.AB1 B._ab3 C.4ab D.a2_b4 .以下运算符中优先级最低的运算符是_D____。
A.&& B.& C.|| D.=5 .在C语言中,要求运算数必须是整型的运算符是___A___。
A.% B./ C.< D.!6 . C语言程序的基本单位是__C_____。
A.程序行B.语句C.函数D.字符7 .将高级语言编写的程序翻译成目标程序的是___B____程序。
A.解释程序B.编译程序C.汇编程序D.源程序8 .以下选项中,与k=n++完全等价的表达式是__A___。
A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+19 .下列(A )不属于结构化程序设计的循环结构。
A.For B.While C.if-else D.do-while10 .以下叙述中错误的是__A___。
A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识11 .若有输入语句scanf( %d%d%d,&x,&y,&z);则不能使x值为5,y值为6,z值为7的输入是__A____。
A.5,6 ,7 B.5回车换行 6 7 C.5 6 7 D.5,6,712 .若i,j已定义为int类型,则下程序段中内循环体的总的执行次数是( B )。
for (i=3;i>0;i--) for (j=0;j<=4;j++){...}A.12 B.15 C.16 D.2013 .下列选项中,合法的C语言关键字是_D___。
C语言程序设计试题及答案

《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是()。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是()。
A.’A’B.’D’的ASCⅡ码C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
C语言程序设计试题及参考答案

精品文档C语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(D)A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D在C程序中,注释说明只能位于一条语句的后面2、下列四个选项中,是不合法的用户标识符的选项是(B)A、abcB、12ACC sunD A3、设有语句inta=4 ;则执行了语句a+=a-=a*a后,变量a的值是(A)A -24B、OC 4D 164、下列运算符中优先级最高的是(B)A、<B +C &&D ==5、在C语言中,运算对象必须是整型数的运算符是(A)A、%B、/C、%和/ D +&以下关于运算符的优先顺序的描述正确的是(C)A、关系运算符<算术运算符<赋值运算符<逻辑与运算符B逻辑与运算符<关系运算符<算术运算符<赋值运算符C、赋值运算符V逻辑与运算符<关系运算符<算术运算符D算术运算符<关系运算符<赋值运算符<逻辑与运算符7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C)sum=pad=5 pAd=sum++ pAd++, ++pAc;printf(“%d\n ”,pad);A 7B 6C、5D 48、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)A INPUTx、y、z; B、scanf(“ %d%d%d &x,&y,&z);C scanf(“%d%d%d, x,y,z);D read(“ %d%d%d, &x,&y,&z);9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmai n(){intm ,n;scanf(“ %2d%3”,&m &n);printf(“ m=%dn=%d\n,m, n);}A m=23n=45B m=234n=56C m=23n=456D 语句有错误10、若运行时,给变量x输入12,则以下程序的运行结果是(A)mai n(){intx ,y;scanf(“ %d ,&x);y=x>12? x+10: x-12 ;1欢迎下载printf(“ %d\n”,y);}精心整理A OB 22C 12D 1011、C语言中while和do-while循环的主要区别(A)A do-while的循环体至少执行一次B while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D do-while的循环体不能是复合语句12、以下对二维数组的正确说明的语句是(C)A、inta[3][]B 、floata(3,4)C 、doublea[3][4]D 、floata(3)(4)13、以下程序的输出结果是(C)mai n(){inti ,x[3][3]={1 ,2, 3, 4, 5, 6, 7, 8, 9};for(i=0 ;i<3 ;i++)printf( “ %d , x[i][2-i]) ;}A 1, 5, 9B 1, 4, 7C 3, 5, 7D 3, 6, 914、以下能对一维数组a进行正确初始化的语句是(C)A inta[10]=(0 , 0, 0, 0, 0) ;B inta[10]={};C inta[10]={0} ;D inta[10]={10*1};15、以下程序执行后的输出结果是:(A)intfun (i nta , intb , intc){a=456 ;b=567; c=678;}voidmai n(){intx=10 , y=20, z=30;z=fun(x , y, z);printf( “ %d %d %d\n”,z , y , x);}A 30, 20 , 10B 10 , 20 , 30C 10 , 30 , 50D 10 , 30 , 4016、以下说法正确的是(A)如果在一个函数中的复合语句中定义了一个变量,则该变量A只在该复合语句中有效B在该函数中有效C在本程序范围内有效D为非法变量17、以下函数调用语句中含有的实参个数为(B)func((exp1 , exp2 , exp3), (exp4 , exp5));A 1B 2C 4D 518、在C语言程序中,以下说法正确的是(B)。
(完整)C语言程序设计试题题库

第一章基础知识一.填空1.每个C程序都必须有且仅有一个________ 函数。
2。
C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3。
软件是程序,以及______、使用和维护所需要的所有文档。
4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。
6.C语言是由________组成的.7。
C语言的函数可分为主函数main、标准库函数和_________。
8.一个函数是由两部分组成的,即:________和函数体。
9。
编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________. 11。
机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12。
与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13。
在编译程序之前,凡以____开头的代码行都先由预处理程序预处理.14. C程序的执行均是由执行_________开始。
15。
函数体即为包含在{ }内的部分.它分为________和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言.18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序",将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。
《c语言程序设计》试题库及答案

《c语言程序设计》试题库及答案一、选择题1. 下列哪个选项是C语言的标准库函数?A. printfB. scanfC. mainD. All of the above答案:D2. C语言中,用于定义字符串的字符数组的语法是什么?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A3. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. functionC. defD. void答案:A二、填空题1. 在C语言中,定义一个整型变量的正确方式是:________。
答案:int variable_name;2. C语言中,用于计算两个数的和的运算符是:______。
答案:+3. 如果要在C语言中声明一个指向整型的指针,应该使用:________。
答案:int *pointer_name;三、简答题1. 请简述C语言中数组和指针的区别。
答案:数组是一组相同类型的元素的集合,可以通过索引访问每个元素。
指针是一个变量,它存储了另一个变量的内存地址。
数组名可以被用作指向数组首元素的指针,但数组本身是一个固定大小的实体,而指针可以被重新赋值为其他地址。
2. 解释C语言中的结构体(struct)是什么?答案:结构体是一种用户定义的数据类型,它允许将不同的数据类型组合成一个单一的数据结构。
它使得可以创建包含多种数据类型的复杂数据结构。
四、编程题1. 编写一个C语言程序,实现计算两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现将一个字符串反转,并输出结果。
《C语言程序设计》题库及答案

《C语言程序设计》复习题库1、计算下面公式的值。
T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。
(注:所有变量用float数据类型定义!)答案:1.7172、程序填空:用*号输出字母C的图案。
#include "stdio.h"#include "conio.h"main(){_____________printf(" *\n");__________________________getch();}3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。
编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。
(注:所有变量用long数据类型定义!) 答案:15334594、/*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。
请改正程序中的错误,并运行,最后给出程序运行的正确结果。
(注:只有一处错误!)*/ 答案:6591#include <stdio.h>void main(){int total=0, mc=1, k=700;int pm[10],count=0;while( (k>=2) && mc<=10 ){if ((k%13==0) || (k%17==0)){pm[mc] = k;mc++;}k--;}for( k=1;k<=10;k++ )total += pm[k-1];printf(" %d\n",total);}5、求x = 1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于10-5为止。
6、计算如下公式的A20值。
A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(按四舍五入保留10位小数)。
C语言程序设计试题

C 语言程序设计试题一、单项选择题1.下列不属于C 语言保留字的是( )A. char B while C typedef D look2.下列关于C 语言的叙述错误的是( ) A 英文字母大小写不加以区分 B 不同类型的变量可以出现在同一个表达式中C 在赋值表达中赋值号两边的类型可以不同D 某些运算在不同的场合可以有不同的含义 3.下列转义字符中错误的是( )A ‘\000’B ‘\14’C ‘\x111’D ‘\2’4.执行语句Printf(“%x ”,-1);后输出结果是( ) A -1 B –ffff C. 1 D ffff5.设float a=2,b=4,c=3;,以下C 语言表达式与代数式21(a+b )c 计算结果不一致的是( ) A (a+b )*c/2 B (1/2)*(a+b)*c C (a+b)*c*1/2 D c/2*(a+b) 6.设int a=10,b=20,c=30; 条件表达式a<ba=5:c 的值是( ) A 5 B 10 C 20 D 30 7.设int a=9,b=6,c;执行语句c=a/b+;后c 的值是( ) A 1 B C 2 D 8.执行语句for ( i+1; i++<4;);后i 的值是( )A 3B 4C 5D 不确定9.在运算中,操作数左移一位,其结果相当于操作数( )A 乘以2B 除以2C 乘以4D 除以410.使用语句scomf (“a=%f,b=%f ”,&a,&b );输入变量a 、b 的值(口代表空格),正确的是( )A ,B 口C a=,b=D a=口b=11、下列说法中错误的是:A 、C 语言中循环嵌套的层数没有限定B 、C 语言中的内部函数只能在本文件中被调用 C 、用typedef 语句定义的数据类型名称必须是大写字母D 、C 语言中的continue 语句,可以通过改变程序的结构而省略12、设char s[10],*p=s;,下列语句中错误的是:A 、p=s+5;B 、s=p+5;C 、s[2]=p[4];D 、*p=s[0];13、设enum week{sun,mon,tue,wed,thu,fri,sat}day;正确的赋值语句是: A 、sun=0; B 、sun=day; C 、mon=sun=1; D 、day=sun;14、若用数组中作为函数调用时的实参,则实际上传递给形参的是:A 、数组的第一个元素值B 、数组元素的个数C 、数组中全部元素的值D 、数组首地址 15、下列错误的是:A 、char s[ ]=“china ”;B 、char s[10]={“china ”};C 、char s[10];s=“china ”;D 、char s[10]={‘c ’, ‘h ’, ‘i ’, ‘n ’, ‘a ’};16、在C 语言中,有值函数的数据类型是指( )A 函数形式参数的数据类型B 函数返回值的数据类型C 调用该函数时的实参的数据类型D 任意指定的数据类型 17.设Struct {short a;char b; float c;}cs; 则 size of (cs)的值是( )A 4B 5C 6D 718.设int x[ ]={1,2,3,4,5,6,7,8,9,0},*p=x, k;且0≤k<10,则对数组元素x[k]的错误引用是( )A P+KB *(X+K)C X[ P-X=K]D *(&X[K])19.设 #define N 3#define Y((n) ((N+1)*n)则表达式2*(N+Y(5+1))的值是()A 42B 48C 54 D出错20.关于主函数的形式参数,下列说法正确的是()A 可以有两个B 类型可以是实型C 不可以由用户自己定义名字D 是在程序编译时获得实际值二、填空题21.可以将被函数中获得的值返回给主调函数的语句是()。
C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案)一、选择题(共30题,每题2分,共60分)1. 下列哪个是C语言关键字?A. printB. variableC. whileD. calculate答案:C2. 在C语言中,下列哪个是合法的变量名?A. 1_helloB. _worldC. v-ariableD. continue答案:B3. 下列哪个是正确的C语言注释方式?A. // This is a commentB. # This is a commentC. /* This is a comment */D. <!-- This is a comment -->答案:C4. 下列哪个是正确的C语言函数定义格式?A. void addNumbers()B. addNumbers()C. function addNumbers()D. int addNumbers()答案:D5. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```A. 2.5B. 2C. 2.000000D. 5答案:B6. 在C语言中,下列哪个是正确的if语句格式?A. if (x > 4) thenB. if (x > 4) { }C. if x > 4D. if (x > 4)答案:D7. 下列哪个是C语言中的逻辑运算符?A. ++B. &&C. %D. =答案:B8. 在C语言中,下列哪个是正确的for循环格式?A. for (x = 0; x < 5)B. for {x = 0; x < 5; x++}C. for (int x = 0; x < 5; x++)D. for (x = 0; x < 5;)答案:C9. 下列哪个是C语言中的自增运算符?A. ++B. +=C. =D. --答案:A10. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;x *= 3 + 4;printf("%d", x);return 0;}```A. 14B. 20C. 21D. 22答案:C11. 在C语言中,下列哪个是正确的switch语句格式?A. switch (x) {case 1;case 2;break;default;break;}B. switch (x) {case 1:case 2:break;default:break;}C. switch (x) case 1:case 2:break;default:break; D. switch (x) { case 1,case 2,break,default,break,}答案:B12. 下列哪个是C语言中的逗号运算符?A. &&B. !C. ,D. |答案:C13. 在C语言中,下列哪个是正确的数组声明?A. array[5]B. [5] arrayC. array[] = [5]D. int array[5]答案:D14. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 0; i <= 5; i++){printf("%d ", i);if (i == 3)continue;}return 0;}```A. 0 1 2 3 4 5B. 0 1 2 3 4C. 0 1 2 3 4 5 6D. 0 1 2 4 5答案:A15. 下列哪个是C语言中的求余运算符?A. /B. +C. %D. *答案:C16. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 4;int y = 5;if (x > 2 || y < 10){printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 || y < 10D. 4 5答案:A17. 在C语言中,下列哪个是正确的do-while循环格式?A. do (x < 5)B. do {x < 5} whileC. do {x < 5} while (x++)D. do {x < 5;} while (x < 5)答案:D18. 下列哪个是C语言中的逻辑非运算符?A. !B. &&C. <D. =答案:A19. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){if (i % 2 == 0)continue;printf("%d ", i);}return 0;}```A. 1 2 3 4 5 6 7 8 9 10B. 1 3 5 7 9C. 2 4 6 8 10D. 1 2 4 8答案:B20. 下列哪个是C语言中的减法运算符?B. +C. -D. *答案:C21. 在C语言中,下列哪个是正确的数组初始化方式?A. int array[5] = {1, 2, 3}B. array[5] = {1, 2, 3}C. int array[] = {1, 2, 3}D. int array[5] = {1, 2, 3,}答案:C22. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 7;if (x > 2 && y < 10)printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 & y < 10D. x > 2 || y < 10答案:A23. 下列哪个是C语言中的除法运算符?A. /B. +C. %答案:A24. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 7;int y = (x > 5) ? 10 : 5;printf("%d", y);return 0;}```A. 7B. 5C. 10D. 15答案:C25. 在C语言中,下列哪个是正确的while循环格式?A. while (x < 5;)B. while {x < 5;}C. while (x < 5)D. while {x < 5}答案:C26. 下列哪个是C语言中的位运算符?A. ||B. &&C. !D. &答案:D27. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;int y = 3;if (x = y){printf("Equal");}else{printf("Not equal");}return 0;}```A. EqualB. Not equalC. 2D. 3答案:A28. 在C语言中,下列哪个是正确的goto语句格式?A. goto label;B. goto (label);C. gote labelD. go to label答案:A29. 下列哪个是C语言中的加法运算符?A. /B. +C. %D. *答案:B30. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;int result = x % y;printf("%d", result);return 0;}A. 2B. 1C. 3D. 0答案:B二、编程题31. 编写一个C语言程序,在屏幕上输出从1到100的所有偶数。
C语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
C语言程序设计试题及参考答案

C语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(D)A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面2、下列四个选项中,是不合法的用户标识符的选项是(B)A、3A、4A、<B5、在CA、%6ABCD7、在Cprintf(A、7B8、x、yA、C、9{intm,n;scanf(“%2d%3d”,&m,&n);printf(“m=%dn=%d\n”,m,n);}A、m=23n=45B、m=234n=56C、m=23n=456D、语句有错误10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A、0B、22C、12D、1011、C语言中while和do-while循环的主要区别(A)A、do-while的循环体至少执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句12、以下对二维数组的正确说明的语句是(C)A、inta[3][]B、floata(3,4)C、doublea[3][4]D、floata(3)(4)13、以下程序的输出结果是(C)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0printf(“}A、1,514A、C、15}}A、30C、1016ABCD17、以下函数调用语句中含有的实参个数为(B)func((exp1,exp2,exp3),(exp4,exp5));A、1B、2C、4D、518、在C语言程序中,以下说法正确的是(B)。
A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用都不可以嵌套D、函数的定义和函数的调用都可以嵌套19、请读程序longfun5(intn){longs;if((n==1)||(n==2))s=2;elses=n+fun5(n-1);return(s);}main(){longx;x=fun5(4);printf(%ld\n”,x);}上面的程序的运行结果是(A)A、9B20inti,A、1、若a2、C3、在C4、如a5、若6、当78910、在1main(){inty=10for(;{printf(continue;}}2、有以下程序段,若输入1298,则输出结果是main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10?;n2=n2/10;printf(“%d”,n1);}3、以下程序的输出结果是d1=7d2=5#include“stdio.h”fun(intb){intd=5;d+=b++;printf(“d1=%d\n”,d);}main(){inta=2,d=3;Fun(a);d+=a++printf(“}4#f(intn){case0:case1:case2:}}main(){intk;k=f(5);printf(“}129089~8079~70等级为C69~60等级为D60以下等级为EC语言程序设计参考答案一、选择题1---------5DBABA6---------10CCBCA11--------15ACCCA16--------20ABBAD二、填空题1)、122)、&&||!3)、104)、25)、16)、07)、whilefor8)、249)、08010)、函数头函数体声明执行三、程序分析1)、8522)、89213)、d1=74)、k=5d2=5四、编程1、#include<stdio.h>main(){intsum=0,i;for(i=1;i<=100;i++)sum=sum+I;p}2sccccd}}。
c语言程序设计考试试题

c语言程序设计考试试题一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. intB. structC. floatD. char2. 下面哪个选项是C语言中的合法变量名?A. classB. 2variableC. variable_nameD. variable@name3. 在C语言中,一个整型变量默认占用多少字节的内存空间?A. 1B. 2C. 4D. 84. 下列哪个函数用于计算两个数的最大值?A. max(int a, int b)B. max(float a, float b)C. fmax(double a, double b)D. Both A and C5. C语言中,字符串常量存储在内存的哪个区域?A. 栈区(Stack)B. 堆区(Heap)C. 数据区(Data)D. 文本区(Text)6. 在C语言中,以下哪个操作符用于计算逻辑与?A. &&B. ||C. +=D. -=7. 下列哪个语句在C语言中用于实现循环?A. ifB. forC. switchD. do-while8. 在C语言中,指针变量的类型说明符是?A. *B. %C. &D. $9. 下列哪个函数用于将整数转换为字符串?A. atoiB. itoaC. sprintfD. Both A and B10. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function二、填空题(每空3分,共30分)11. 在C语言中,使用________关键字可以定义一个枚举类型。
12. 一个指向整型的指针变量所占用的内存大小是________字节。
13. 当需要频繁修改数组元素时,应使用________类型的数组,以提高程序的运行效率。
14. 在C语言中,________函数用于将字符串复制到另一个字符串中。
C语言程序设计题库附答案

一、选择题1、可以在C语言中使用的一组用户标识符是()。
A、3B sizeof DOB、ab34 c1_c2 _forC、_123 t2_a1_ printfD、void 6b hat2、以下均是字符常量或数值常量的选项是()。
A、0.0 0f 8.9e ‘&’B、”A” 3.9e-2.5 1e1C、’3’ 011 0xff00 0aD、 0xabcd 2e3 50.3、以下选项中正确的实型常量是()。
A、 0B、0.618*10C、 567D、3.14154、将汇编语言编写的程序翻译为目标程序的是()程序。
A、解释B、编译C、汇编D、目标5、不属于面向机器的语言是()。
A、符号语言B、机器语言C、汇编语言D、C语言6、程序段的基本结构中,不包含()。
A、函数结构B、循环结构C、顺序结构D、分支结构7、下列符号中,不属于转义字符的是()。
A、 \\B、\0xaaC、\0D、\t8、正确的C语言标识符是()。
A、_sum_1B、1_sumC、?_sumD、sum?9、增1减1运算只能作用于()。
A、常量B、变量C、表达式D、函数10、设“int a=2,b=2;”,则++a+b的结果是(),a的结果是(),b的结果是()。
A、2B、3C、4D、511、下列运算符中优先级最高级的是()。
A、++B、%C、*D、=12、设“int a=2;”,则表达式“(a++*1/3)”的值是(),a的值是()。
A、0B、1C、2D、313、字符数据在内存中的存储代码采用的是()。
A、反码B、补码C、EBCDIC码D、ASC II码14、char a; int b; float c; double d;则表达式a*b+d-c值的类型为()。
A、intB、floatC、doubleD、char15、字符串”\”\123\n\321a”的长度是()。
A、1B、5C、9D、1316、下列常量中,不属于字符常量的是()。
C语言程序设计试题含答案

C语言程序设计(本试卷考试时间 120 分钟)一、单选题 ( 本大题 10 道小题,每小题 1.5 分,共15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1.下面标识符中,可以作为合法变量名的是( )。
答案:B 知识点:【24010201】知识考核要求:【2】能力考核要求:【1】难度系数:【A】A.m@qB.Mo_dayC.mn/5D.char2.设有如下语句:int s,num;s=1005;num=2;则表达式(float)s/num的值是()。
答案:C 知识点:【24030704】知识考核要求:【2】能力考核要求:【1】难度系数:【A】A.502.000000B.502C.502.500000D.503.0000003.设有如下定义语句:chara[10]="ABC";则printf("%s" , a+1);的输出结果为( )。
答案:D 知识点:【24040101】知识考核要求:【3】能力考核要求:【1】难度系数:【B】A.ABCB.CC.ABD.BC4.下列语句的输出结果是()。
inta=0123,b=0456;printf("%o\n",b-a);答案:C 知识点:【24040101】知识考核要求:【3】能力考核要求:【1】难度系数:【B】A.0456B.0123C.333D.5795.以下的for语句循环执行的次数是()。
for(x=0,y=0;(y!=20&&(x<20));x++);答案:C 知识点:【24040301】知识考核要求:【3】能力考核要求:【1】难度系数:【C】A.无限次B.不确定C.20次D.19次6.关于局部变量,下列说法正确的是()。
答案:C 知识点:【24060301】知识考核要求:【3】能力考核要求:【3】难度系数:【B】A.定义该变量的程序文件中的函数都可以访问B.定义处以下的任何语句都可以访问C.形式参数也是一种局部变量,可用于函数之间传递数据D.定义在复合语句中的局部变量,允许在该复合语句外访问7.有如下语句:chars[20]="welcome";char*ps=s;则不能引用字母c的表达式是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
else c+=1; printf(“%d\n”,c); } 48、以下程序的输出是( ) A、1 B、2 C、3 D、4 main() { int w=4,x=3,y=2,z=1; printf(“%d\n”,(w<x?w:z<y?z:x)); } 49、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( if(x>y) z=x;x=y;y=z; A、x=10,y=20,z=30 B、x=20,y=30,z=30 C、x=20,y=30,z=10 D、x=20,y=30,z=20 50、以下程序的运行结果是( ) main( ){int m=5; if(m++>5)printf(“%d\n”,m); else printf(“%d\n”,m--); } A、4 B、5 C、6 D、7 51、若执行以下程序时从键盘上输入3和4,则输出结果是( A、14 B、16 C、18 D、20 main() { int a,b,s; scanf(“%d%d”,&a,&b); s=a; if(a<b) s=b; s*=s; printf(“%d\n”,s); } 52、运行以下程序,输出( ) A、**** B、&&&& C、####&&&& D、有语法错误不能通过编译 main() { int k=-3; if(k<=0)printf(“****\n”); else printf(“&&&&\n”); }
《C语言程序设计》试题库 一、选择题(共250个,每题2分) 1、一个c语言程序的执行是从( ) A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结 束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 2、一个c语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子函数组成 3、以下选项中是正确的整型常量是( ) A、12. B、 -20 C、 1,000 D、 4 5 6 4、以下选项中正确的实型常量是( ) A、0 B、 3. 1415 C、 0.329*10^2 D、.871 5、以下选项中不合法的实型常量是( ) A、 2.607E-1 B、0.8103*12 C、-77.77 D、456e-2 6、以下选项中不合法的字符串是( ) A、’abc’ B、”12’12” C、 “0” D、” ” 7、下面正确的字符常量是( ) A、”c” B、 ‘\\’’ C、 ‘w’ D、 ‘’ 8、以下选项中不合法的用户标识符是( ) A、 abc.c B、file C、Main D、PRINTF 9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一 个字符( ) A、必须为字母 B、 必须为下划线 C、必须为字母或下划线 D、可以是字母、数字和下划线中任意一种字符 10、以下选项中不合法的用户标识符是 ( ) A、_123 B、 printf C、 A$ D、 Dim 11、c语言中运算对象必须是整型的运算符是( ) A、% B、 / C、 ! D、 ** 12、可在C程序中用作用户标识符的一组标识符是( ) A、nt B、 as-b3 C、 Fir D、 2c define -123 _bc DO
WORD if name SIG 13、若变量已正确定义并赋值,符合C语言语法的表达式是( ) A、 a=a+7; B、a=7+b+c,a++ C、 int(12.3%4) D、 a=a+7=c+b 14、若a,b,c,d都是int类型变量且初值为0,以下选项中不正确的赋值 语句是( ) A、a=b=c=100; B、d++; C、c+b; D、d=(c=22)(b++); 15、若x、i、j和k都是int变量,则计算下面表达式后,x的值是( ) x=(i=4,j=16,k=32) A、4 B、16 C、32 D、 52 16、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( ) A、7 B、8 C、 6 D、 2 17、若有代数表达式a2.b2,则正确的c语言表达式是( ) A、a^*b^ B、pow(a,2).pow(b,2) C、a*a.b*b D、(a*a)* (b*b) 18、若有代数表达式,则不正确的c语言表达式是( ) A、a/b/c*e*3 B、3*a*e /b/c C、3*a*e /b*c D、 a*e/c /b *3 19、 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( )。 A、1.4 B、1 C、2.0 D、2 20、char型数据在内存中的存储形式是( ) A、补码 B、反码 C、原码 D、ASCII码 21、设变量a是整型,f是实型,i是双精度,则表达式10+‘a’+i*f值 的数据类型为( ) A、int B、float C、double D、不确定 22、 若有定义:int a=7;flaot 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.000000 23、 若变量a是int类型,并执行了语句:a=’A’+1.6;则正确的叙述 是( )。 A、a的值是字符C B、a的值是浮点型
A、float B、 char C、int D、 double 32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确 的是( ) A、a=a+b,b=a-b,a=a-b; B、t=a,a=b,b=t; C、a=t;t=b;b=a; D、t=b;b=a;a=t; 33、若变量已正确定义,以下程序段的输出结果是( ) A、输出格式说明与输出项不匹配,输出无定值 B、5.170000 C、5.168000 D、5.169000 x=5.16894; printf(“%f\n”,(int)(x*1000+0.5)/(float)1000); 34、若有以下程序段,c3的值是( ) A、0 B、1/2 C、0.5 D、1 int c1=1,c2=2,c3; c3=c1/c2; 35、若有以下程序段,其输出结果是( ) A、 0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10 int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf(“%d,%d,%d\n”,a,b,c); 36、若已知变量的类型说明如下:int k,a,b; unsinged long w=5; double x=1.42;则以下不符合c语言的表达式是( ) A、x%(-3) B、w+=-2 C、k=(a=2,b=3,a+b) D、a+=a-= (b=4)*(a=3) 37、以下程序的输出结果是( ) A、a=%2, b=%f B、a=2,b=5 C、a=%%d,b=%%d D、a=%d,b=%d main() { int a=2,b=3; printf(“a=%%d,b=%%d\n”,a,b); } 38、 若int 类型占两个字节,则以下程序段的输出是( ) A、 –1,-1 B、 –1,32767 C、 –1,32768 D、 – 1,65535 int a=-1; printf(“%d,%u\n”,a,a); 39、下列运算符中优先级最高的运算符是( ) A、! B、% C、-= D、&&
)
)
53、以下程序的输出结果是 ( ) main() { int x=2,y=-1,z=2; if(x<y) if(y<0) z=0; else z=z+1; printf(“%d\n”,z); } A、3 B、2 C、1 D、0 54、为了避免在嵌套的条件语句if-else中产生二义性,c语言规定: else子句总是与( )配对。 A、上下位置在同一列的if B、else前面最近的if C、else之后最近的if D、同一行上的if 55、以下不正确的语句为( ) A、if(x>y); B、if(x==y)&&(x!=0) x+=y ; C、if(x<y) {x++;y++;} D、if(x!=y) scanf(“%d”,&x);else scanf(“%d”,&y); 56、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(a<b) if(a<d)x=1; else if(a<c) if(b<d) x=2; else x=3; else x=6; else x=7; A、1 B、2 C、3 D、6 57、以下程序段,int k=10;while(k=0)k=k+1;则下面描述中正确的是 ( )。 A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次 58. 以下程序中,while循环的循环次数是( )。 main() { int i=0; while(i<10) { if(i<1) break; i++;} }
40、下列运算符中优先级最低运算符是( ) A、|| B、!= C、〈= D、+ 41、为表示关系 x≥y≥z, 应使用的C语言表达式是( ) A、 (x>=y)&&(y>=z) B、(x>=y)AND(y>=z) C、 (x>=y>=z) D、(x>=y)&(y>=z) 42、若有以下定义,则能使值为3的表达式是( ) int k=7,x=12; A、x%=k-k%5) B、x%=(k%=5) C、 x%=(k-k%5) D、(x%=k)(k%=5) 43、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、 m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( )。 A、0 B、1 C、2 D、3 44、 假定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、1 D、2 45、以下程序的输出是( ) A、0 B、1 C、2 D、3 main() { int a=2,b=-1,c=2; if(b<a) ; if(b<0) c=0; printf(“%d\n”,c); } 46、设a,b 和c 都是int 型变量,且 a=3,b=4,c=5;则以下的表达式 中,值为0的表达式是( ) A、 a&&b B、 a<=b C、 a||b+c&&b-c D、 !((a<b)&&!c||1) 47、以下程序的输出是( ) A、0 B、1 C、2 D、3 main() { int a=2,b=-1,c=2; if(a<b) if(b<0) c=0;