C语言基础训练题(含答案).doc
优质文本目录第1-3章 C语言根底知识习题21 选择题22 填空题73 答案及局部解析9第4章 选择结构习题111 选择题112 填空题173 答案及局部解析23第5章 循环结构习题261 选择题262 填空题:323 答案及局部解题分析39第6章 数组习题411. 单项选择题412. 填空题443. 判断题454. 程序填空题455. 阅读程序,分析程序的功能。49第7章 函数习题551. 单项选择题552. 填空题563. 判断题574. 程序填空题585. 写出以下程序运行结果59第8章 指针习题671 选择题672 填空题69第1-3章 C语言根底知识习题1 选择题1. 以下不是C语言的特点的是 。A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好2. 以下字符序列中,不可用作C语言标识符的是 。A123 B.1 C_123_ D 3. 正确的C语言标识符是 。A2 B2 C D?4. 请选出可用作C语言用户标识符的一组标识符 。 A Ba33 C D2a _123 5. 以下符号中,不属于转义字符的是 。 A B0 Ct D06. 不属于C语言关键字的是 。 A B C D 7. 是C语言提供的合法关键字的是 。 A B C D8. 以下不能定义为用户标示符的是 。 A B C_3 D 9. 一个C程序是由 。 A 一个主程序和假设干子程序组成B 一个或多个函数组成C 假设干过程组成D 假设干子程序组成10. C语言程序的根本单位是 。 A程序行 B语句 C函数 D字符11. 以下说法中,错误的选项是 。 A每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B每个函数都有一个函数头和一个函数体,主函数也不例外C主函数只能调用用户函数或系统函数,用户函数可以相互调用D程序是由假设干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的选项是 。 AC语言程序总是从第一个定义的函数开始执行B在C语言程序中,要调用的函数必须在( )函数中定义CC语言程序总是从( )函数开始执行DC语言程序中的( )函数必须放在程序的开始局部13. C编译程序是 。 AC程序的机器语言版本 B一组机器语言指令 C将C源程序编译成目标程序 D由制造厂家提供的一套应用软件14以下选项中,合法的用户标识符是 。 A B_2 C3 D15以下选项中,合法的实型常数是 。 A5E2.0 B3 C2E0 D1.3E16大写字母A的码值是65, 小写字母a的码是97,那么用八进制表示的字符常量101是 。 A字符A B字符a C字符c D非法的常量17以下选项中, 合法转义字符的选项是 。 A B018 C D18以下选项中,正确的字符常量是 。 AF B CW D19以下选项中可作为C语言合法整数的是 A10110B B0386 C0 Dx2a220以下变量定义中合法的是 A 11; B 1+5e2.5; C 0; D 213;21与数学式子对应的C语言表达式是 。 A9*x(2*1) B9*x*(2*1) C9*()*(1/(2*1) D9*()/(2*1)22假设有代数式,那么不正确的C语言表达式是 。 A*b*3 B3*a* C3*a*d Da*323各变量的类型说明如下: 8, a, b; 10; 3.14, 0.12; 那么以下符合C语言语法的表达式是 。 A(2)*(8) B *3=18 C3 D (m)24以下符合C语言语法的赋值表达式是 。 A99 B(9, 9) C9, , 9 D9925 字母A的码为十进制数65,且S为字符型,那么执行语句A+6-3;后,S中的值为 。 AD B68 C不确定的值 DC26在C语言中,要求运算数必须是整型的运算符是 。 A/ B C*= D%27假设有说明语句: 72;那么变量s 。A包含一个字符 B包含两个字符C包含三个字符 D说明不合法,s的值不确定28假设有定义: 7; 2.5, 4.7; 那么表达式3*()()%2/4的值是 。 A2.500000 B2.750000 C3.500000 D0.00000029在C语言中,型数据在内存中的存储形式是 。 A补码 B反码 C原码 D码30设变量x为类型,m为类型,那么以下能实现将x中的数值保存小数点后两位,第三位进行四舍五入运算的表达式是 。A(x*100+0.5)/100.0 B*100+0.5, 100.0C*100+0.5/100.0 D(100+0.5)*100.031表达式13/3*(16.0)/8的数据类型是 。 A B C D不确定32设以下变量均为类型,那么值不等于7的表达式是 。A(6, , 1) B(6, , 1)C(6, 1, 6, ) D(6, 1, , 1)33假设所有变量均为整型,那么表达式(2, 5, , )的值是 。A7 B8 C6 D234s是字符型变量,下面不正确的赋值语句是 。A012; B ;C1+2; D1+2;35s是字符型变量,下面正确的赋值语句是 。A; B08;C; D;36假设有以下定义,那么正确的赋值语句是 。 ; z;A12, B100 C; D (z);37设x、y均为型变量,那么不正确的赋值语句是 。A ; Bx*2; C(3)/10; D0;38以下语句中符合C语言的赋值语句是 。A77; B77;C77 D77;39函数可以向终端输出一个 。A整型变量表达式值。 B字符串C实型变量值。 D字符或字符型变量值。40以下程序段的输出结果是( )。 12345; (%2dn, a); A12 B34 C12345 D提示出错、无结果41假设x和y均定义为 型,z定义为型,以下不合法的函数调用语句为 。A,;B (%2d* , , , );C(*, );D。(6.2f, );42有如下程序段: x1,x2; y1,y2;,1122;假设要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是 。注:代表空格A10A20B B10A20BC10 A20 B D10A20B43假设变量已正确说明为类型, 要通过语句( , , , );给a赋予10.0, b赋予22.0, c赋予33.0, 不正确的输入形式为 。A10<回车> B10.0,22.0,33.0<回车> 22<回车> 33C10.0<回车> D10 22<回车>22.0 33.0<回车> 33<回车>44有如下程序,假设要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是 。注:代表空格 x1,x2; y1,y2;,12;, 12;A1020 B1020C1020 D102045已有定义 2;和输出语句:%8,a;以下正确的表达是 。A整型变量的输出格式符只有一种B是格式符的一种,它可以适用于任何一种类型的数据C是格式符D%8不是错误的格式符,其中数字8规定了输出字段的宽度46有如下程序段,对应正确的数据输入是 。 ;(, );(, );A2.04<回车> B2.04,5.67<回车> 5.67<回车>C<回车> D<回车>47有如下程序段,从键盘输入数据的正确形式应是 。注:代表空格 ;(“);A123 B123C1,2,3 D1 2 348以下说法正确的选项是 。A输入项可以为一个实型常量,如(,3.5);B只有格式控制,没有输入项,也能进行正确输入,如(5d);C当输入一个实型数据时,格式控制局部应规定小数点后的位数,如(%4.2f);D当输入数据时,必须指明变量的地址,如();49根据定义和数据的输入方式,输入语句的正确形式为: 。注:代表空格已有定义: ;数据的输入方式:1.23<回车> 4.5<回车>A(); B();C(%3.2f%2.1f); D(%3.22.1f);50根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 。 () s123;输入语句;(123);输入形式:ABC<回车> 注:代表空格输出形式:ABA(123);B(%1, 23);C(123); D(, 1, 23);51以下程序的执行结果是: 。 () 23; (n);A. 23 B. C. 23 D. 52以下程序的输出结果是 。注:代表空格 () (115s*, ); (25s*, ); (32s*, );A1* B1=* 2* 2*3* 3* C1* D1=* 2=*3* 2*3*53根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是 。 () a; b; 输入语句 输出语句输入形式:12.3<回车> 注:代表空格输出形式:3.300A(); B(3.1f); (5.3f); ();C(); D(); (5.3f) ();54阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为 。 () ; (, ); (n);A46 B有语法错误C12 D不确定值55假设有定义: ; s123; 并有以下输出数据:注:代表空格 12<回车> UVW<回车>那么能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是 。A(); s1()2()3();B(); s1()2()3();C(123);D(112233);2 填空题1 C语言的符号集包括、。2 结构化设计中的三种根本结构是、。3 C语言源程序文件的后缀是,经过编译后生成文件的后缀是,经过链接后生成文件的后缀是。4 C语言的关键字都用大写或小写。5 一个函数由两局部组成,它们是、。6 函数体一般包括、。7 C语言是通过来进行输入和输出的。8 以下程序的执行结果。 () 11; (n); (n);9 以下程序的执行结果是。 () b; (n, );10以下程序的执行结果是。注:代表空格 () 3.1415927; (.44.310.3f); (.44.310.3e);11以下程序的执行结果是:。 () c+5;(n);12以下程序输入123后的执行结果是。注:代表空格 () ; k; (); (n);13有以下程序,假设输入9876543210后的执行结果是;假设输入为:9876543210后的执行结果是;假设输入为:9876543210后的执行结果为:。注:代表空格 () x12; y12; (%2331212); (x1212n);14假设x和y均为型变量,那么以下语句的功能是。 ; ; ;15有一输入函数();那么不能使类型变量k得到正确数值的原因是:。16有如下程序段,输入数据:12345678后,u的值是 【1】 ,v的值是 【2】 。 u; v;(“%3);3 答案及局部解析一 选择题答案1B 2B 3A 4B5B6D7B 8D 9B 10C11A12C13C 14B 15C 16A17A18C19C 20A 21C 22C23A24B25A 26D 27A 28A29D30B 31C 32C 33B 34B35C36C 37C 38D 39D 40C41D42A43B 44D 45D 46A47B48D 49B 50A 51D 52D53A54D 55D 14解析:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。而且不能与C语言规定的关键字同名。关键字如:, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 。这些关键字先不必硬背下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。15解析:用指数形式表示一个实型常数时,E或e之前必须有数字,且E后面指数必须为整数。16解析:101为转义字符,相对应一个码字符。1018=6510.17解析:转义字符的特征是以“开头,其后跟一些字符,如n, t, , , , , b, f等代表一些特殊的含义,而后如跟数字,可以为八进制或者十六进制,将其转换为对应的码值,就可以得出对应的字符。“后跟八进制的写法:0, 或者, 表示“0或者“后只能跟1或3位07之间的数字;“后跟十六进制的写法:,或者, 表示“x或者“后只能跟1或2位09及af(AF)之间的字符。选项B的错误在于8不是八进制;而选项C的错误在于没有“;选项D的错误在于超长多了一位。21解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:3*(18); C的错误在于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上括号,即为:() m31解析:逗号表达式的最终结果为最右端的表达式即的值,其运算顺序是从左自右的。第三个表达式,其隐含有两步操作:先取y的原值,再执行1运算;而此题中,虽然没有将y赋给某个变量取其原值,但还是一定会执行加运算的。因而,经过第三个表达式,y已经自加为6,故的值为8,相对应得表达式最终结果为8。假设此题改为:(2, 5, , ),那么其结果应为7。二 填空题答案1 答案:英文字母、数字、一些有特定含义的标点符号2 答案:顺序结构、选择结构、循环结构3 答案:4 答案:小写5 答案:函数说明局部和函数体6 答案:变量定义局部和执行局部7 答案:输入和输出函数8 答案:1:177777:65535:1:1:1:19 答案::98:142:6210答案:3.141593,3.1416,3.142, 3.142 3.,3.141600,3.14200,3.14200(注:由于c编译系统不同,我们上机使用的机器,其第二个语句实际结果为:3.,3.14200,3.1400,3.1400,即:小数点后取5位。)11答案:12答案:1213答案:第一种情况的执行结果:x1=982=7651=42=1 第二种情况的执行结果:x1=982=761=2=3第三种情况的执行结果:x1=982=7651=42=214答案:交换x和y的值15答案:1格式符应为:;2变量前边未加取地址符&, 即应为();16答案:【1】123 【2】45.000000优质文本第4章 选择结构习题1 选择题1 已有定义: 3, 4, 5; 那么表达式!()1 2的值是。A6 B0 C2 D12 设567822, 那么执行(>b) (>d)后n的值为。A1 B2 C3 D43 设x、y和z都是类型变量,且345, 那么下面的表达式中,值为0的表达式为。 Ax y Bx< C D!(x<y)1)4为了防止嵌套的语句的二义性,C语言规定总是与组成配对关系。A缩排位置相同的B在其之前未配对的C在其之前未配对的最近的D同一行上的5 逻辑运算符两侧运算对象的数据类型。 A只能是0或1 B只能是0或非0正数 C只能是整型或字符型数据 D可以是任何类型的数据6 以下关于运算符优先顺序的描述中正确的选项是。 A关系运算符<算术运算符<赋值运算符<逻辑与运算符 B逻辑与运算符<关系运算符<算术运算符<赋值运算符 C赋值运算符<逻辑与运算符<关系运算符<算术运算符 D算术运算符<关系运算符<赋值运算符<逻辑与运算符7 以下运算符中优先级最高的是。 A< B C+ D8 选择出合法的语句设 x,a,b,c;。 A() ; B(<b) ; C(a<>b) ; D(>b) ;9 能正确表示“当x的取值在-5840和40,58范围内为真,否那么为假的表达式是。 A(x>= -58) (x<= -40) (x>=40) (x<=58) B(x>= -58) (x<= -40) (x>=40) (x<=58) C(x>= -58) (x<= -40) (x>=40) (x<=58) D(x>= -58) | |(x<= -40) (x>=40) (x<=58)10判断型变量s是否为小写字母的正确表达式是。 Aa <= s<=z B(s>=a) & (s<=z) C(s>=a) (s<=z) D(a<) (z>)11假设希望当x的值为奇数时,表达式的值为“真,x的值为偶数时,表达式的值为“假。那么以下不能满足要求的表达式是。 A21 B!(20) C!(2) D212 45, a, 0; 那么表达式(x> y<z )的值是。 A0 B语法错 C1 D“假13指出以下程序段所表示的逻辑关系是。(a<b)()10; 10;A BCD14有一函数: ,以下程序段中不能根据x值正确计算出y值的是。A (x>0) 1; (0) 0; -1;B0; (x>0) 1; (x<0) -1;C0; (x>=0) (x>0) 1; -1;D (x>=0) (x>0) 1; 0; -1;15执行以下语句后,y 的值为。 ;0; ;A0 B1 C2 D不确定值16 123; 以下语句执行后的值是。(a>b); ; ;A1, 2, 3 B2, 3, 3C2, 3, 1 D2, 3, 217请阅读以下程序:该程序。 h() 10, 5, 0; () (*n ); ($n);A有语法错不能通过编译 B可以通过编译但不能通过连接C输出* D输出$18以下程序的运行结果是。 () 1; (>1) (n, a); (n, );A0 B1 C2 D319当1243时,执行完下面一段程序后x的值是。 (a<b) (c<d) 1; (a<c) (b<d) 2; 3; 4; 5;A1 B2 C3 D420执行以下程序段后,变量的值分别为。 10, x, y, z;():;A000 B -1 -1 1C010 D -1 2, 121假设a、b、c、d、w均为类型变量,那么执行下面语句后的w值是。1234;a<b?a :b;w<c?w :c;w<d?w :d;A1 B2 C3 D422以下程序的输出结果是。 () 5, 4, 6, d; (n, >b? a> );A5 B4 C6 D不确定23假设a、b、c1、c2、x、y均为整型变量,正确的 语句是。A (); B a 1: ; ; c1: ; ; 0: ; c2: *d; ; ; : ; C (a*b) D() 3: : *b; ; 1: ; ; 3: ; ; 3: ; ; 10: 11: ; ; 24执行以下程序,输入为3的数出结果是。 () k; (, ); (k) 1: (n, ); 2: (n, ); 3: (n, ); 4: (n, ); : (!n);A3 B4 C3 D45 425假定等级和分数有以下对应关系:等级:A 分数:85100等级:B 分数:6084等级:C 分数:60以下对于等级输出相应的分数区间,能够完成该功能的程序段是。A () A :(85100n); B :(6084n); C :(<60n); : ( !n); B () A :(85100n); ; B :(6084n); C :(<60n); : ( !n); C () A :(85100n); ; B :(6084n); ; C :(<60n); : ( !n); D () C :(<60n); ; B :(6084n); ;: ( !n); A :(85100n); 26有如下程序,写出该执行结果。 () 2.0, y; (x<0.0) 0.0; (x<10.0) 1.0; 1.0;(n);A0.000000 B0.250000 C0.500000 D1.00000027以下程序的运行结果是。 () 2 -12; (a<b) (b<0) 0; ; (n);A0 B1 C2 D328运行以下程序后,如从键盘上输入,那么输出为。 () v1=02=0; ; ( () # ) () a: h: v1; o: v2;(n, v12);A2,0 B5,0 C5,5 D2,529有以下程序,假设输入为字符s,那么程序运行结果为。 () ;(); () a: (n); : (!n); b: (n); c: (n);A! B! C有语法错误 D !30有以下程序,程序运行后的输出结果是。 () 15, 21, 0; (3) 0: ; ; 1: ; (2) : ; 0: ; ;(n);A1 B2 C3 D42 填空题1 假设从键盘输入58,那么输出结果是。 () a; (, ); (a>50) (, a); (a>40) (); (a>30) ();2 设 9,8;表达式1的结果是。3 定义 x,y;执行(12);后, y的值是。4 定义