收藏 分销(赏)

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

上传人:快乐****生活 文档编号:2383577 上传时间:2024-05-29 格式:PDF 页数:70 大小:361KB
下载 相关 举报
C语言基础练习题(含答案).pdf_第1页
第1页 / 共70页
C语言基础练习题(含答案).pdf_第2页
第2页 / 共70页
C语言基础练习题(含答案).pdf_第3页
第3页 / 共70页
C语言基础练习题(含答案).pdf_第4页
第4页 / 共70页
C语言基础练习题(含答案).pdf_第5页
第5页 / 共70页
点击查看更多>>
资源描述

1、 1目录目录第 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

2、 1第第 1-3 章章 C 语言基础知识语言基础知识习题习题1 选择题选择题1.以下不是 C 语言的特点的是()。A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C 语言可以直接对硬件操作 D、C 语言移植性好2.下列字符序列中,不可用作 C 语言标识符的是()。Aabc123 Bno.1 C_123_ D_ok 3.正确的 C 语言标识符是()。A_buy_2 B2_buy C?_buy Dbuy?4.请选出可用作 C 语言用户标识符的一组标识符()。Avoid Ba3_b3 CFor D2adefine _123 -abc DOWORD IF Case sizeof5.下列符号中,不属

3、于转义字符的是()。A B0 xAA Ct D06.不属于 C 语言关键字的是()。Aint Bbreak Cwhile Dcharacter 7.是 C 语言提供的合法关键字的是()。AFloat Bsigned Cinteger DChar8.以下不能定义为用户标示符的是()。Ascanf BVoid C_3com_ Dint 9.一个 C 程序是由()。A一个主程序和若干子程序组成B一个或多个函数组成C若干过程组成D若干子程序组成10.C 语言程序的基本单位是()。A程序行 B语句 C函数 D字符11.下列说法中,错误的是()。A每个语句必须独占一行,语句的最后可以是一个分号,也可以是一

4、个回车换行符号B每个函数都有一个函数头和一个函数体,主函数也不例外C主函数只能调用用户函数或系统函数,用户函数可以相互调用D程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。AC 语言程序总是从第一个定义的函数开始执行B在 C 语言程序中,要调用的函数必须在 main()函数中定义 1CC 语言程序总是从 main()函数开始执行DC 语言程序中的 main()函数必须放在程序的开始部分13.C 编译程序是()。AC 程序的机器语言版本 B一组机器语言指令 C将 C 源程序编译成目标程序 D由制造厂家提供的一套应用软件14以下选项中,合法的用户标识符是()

5、。Along B_2abc C3dmax DA.dat15以下选项中,合法的实型常数是()。A5E2.0 BE-3 C2E0 D1.3E16已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的字符常量101是()。A字符 A B字符 a C字符 c D非法的常量17以下选项中,合法转义字符的选项是()。A B 018 C xab D abc18以下选项中,正确的字符常量是()。A”F”B C W D 19以下选项中可作为 C 语言合法整数的是 A10110B B0386 C0Xffa Dx2a220下列变量定义中合法的是 Ashort _a

6、=1-.le-1;Bdouble b=1+5e2.5;Clong do=0 xfdaL;Dfloat 2_and=1-e-3;21与数学式子对应的 C 语言表达式是()。129xxn A9*xn/(2*x-1)B9*x*n/(2*x-1)C9*pow(x,n)*(1/(2*x-1)D9*pow(n,x)/(2*x-1)22若有代数式,则不正确的 C 语言表达式是()。cdab3 Aa/c/d*b*3 B3*a*b/c/d C3*a*b/c*d Da*b/d/c*323已知各变量的类型说明如下:int m=8,n,a,b;unsigned long w=10;double x=3.14,y=0.

7、12;则以下符合 C 语言语法的表达式是()。Aa+=a-=(b=2)*(a=8)B n=n*3=18 Cx%3 Dy=float(m)24以下符合 C 语言语法的赋值表达式是()。Aa=9+b+c=d+9 Ba=(9+b,c=d+9)Ca=9+b,b+,c+9 Da=9+b+=c+925 已知字母 A 的 ASCII 码为十进制数 65,且 S 为字符型,则执行语句 S=A+6-3;后,S 中的值为()。A D B68 C不确定的值 D C26在 C 语言中,要求运算数必须是整型的运算符是()。1 A/B+C*=D%27若有说明语句:char s=72;则变量 s()。A包含一个字符 B包含

8、两个字符C包含三个字符 D说明不合法,s 的值不确定28若有定义:int m=7;float x=2.5,y=4.7;则表达式 x+m%3*(int)(x+y)%2/4 的值是()。A2.500000 B2.750000 C3.500000 D0.00000029在 C 语言中,char 型数据在内存中的存储形式是()。A补码 B反码 C原码 DASCII 码30设变量 x 为 float 类型,m 为 int 类型,则以下能实现将 x 中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是()。Ax=(x*100+0.5)/100.0 Bm=x*100+0.5,x=m/100.0Cx=x

9、*100+0.5/100.0 Dx=(x/100+0.5)*100.031表达式 13/3*sqrt(16.0)/8 的数据类型是()。Aint Bfloat Cdouble D不确定32设以下变量均为 int 类型,则值不等于 7 的表达式是()。A(m=n=6,m+n,m+1)B(m=n=6,m+n,n+1)C(m=6,m+1,n=6,m+n)D(m=6,m+1,n=m,n+1)33假设所有变量均为整型,则表达式(x=2,y=5,y+,x+y)的值是()。A7 B8 C6 D234已知 s 是字符型变量,下面不正确的赋值语句是()。As=012;Bs=u+v;Cs=1+2;Ds=1+2;3

10、5已知 s 是字符型变量,下面正确的赋值语句是()。As=abc;Bs=08;Cs=xde;Ds=”;36若有以下定义,则正确的赋值语句是()。int x,y;float z;Ax=1,y=2,Bx=y=100 Cx+;Dx=int(z);37设 x、y 均为 float 型变量,则不正确的赋值语句是()。A+x;Bx*=y-2;Cy=(x%3)/10;Dx=y=0;38下列语句中符合 C 语言的赋值语句是()。Aa=7+b+c=a+7;Ba=7+b+=a+7;Ca=7+b,b+,a+7 Da=7+b,c=a+7;39putchar 函数可以向终端输出一个()。A整型变量表达式值。B字符串C实

11、型变量值。D字符或字符型变量值。40以下程序段的输出结果是()。1int a=12345;printf(”%2dn”,a);A12 B34 C12345 D提示出错、无结果41若 x 和 y 均定义为 int 型,z 定义为 double 型,以下不合法的 scanf()函数调用语句为()。Ascanf(”%d%lx,%le”,&x,&y,&z);Bscanf(”%2d*%d%lf”,&x,&y,&z);Cscanf(”%x%*d%o”,&x,&y);D。scanf(”%x%o%6.2f”,&x,&y,&z);42有如下程序段:int x1,x2;char y1,y2;scanf(”%d%c%

12、d%c”,&x1,&y1,&x2,&y2);若要求 x1、x2、y1、y2 的值分别为 10、20、A、B,正确的数据输入是()。(注:代表空格)A10A20B B10A20BC10 A20 B D10A20B43若变量已正确说明为 float 类型,要通过语句 scanf(”%f%f%f”,&a,&b,&c);给 a 赋予10.0,b 赋予 22.0,c 赋予 33.0,不正确的输入形式为()。A10 B10.0,22.0,33.0 22 33C10.0 D10 2222.0 33.0 3344有如下程序,若要求 x1、x2、y1、y2 的值分别为 10、20、A、B,正确的数据输入是()。

13、(注:代表空格)int x1,x2;char y1,y2;scanf(”%d%d”,&x1,&x2);scanf(”%c%c”,&y1,&y2);A1020AB B1020ABCC1020 D1020ABAB45已有定义 int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是()。A整型变量的输出格式符只有%d 一种B%x 是格式符的一种,它可以适用于任何一种类型的数据C%x 是格式符D%8lx 不是错误的格式符,其中数字 8 规定了输出字段的宽度46有如下程序段,对应正确的数据输入是()。float x,y;scanf(”%f%f”,&x,&y);printf(”a

14、=%f,b=%f”,x,y);A2.04 B2.04,5.67 5.67CA=2.04,B=5.67 D2.055.6747有如下程序段,从键盘输入数据的正确形式应是()。(注:代表空格)float x,y,z;1scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A123 Bx=1,y=2,z=3C1,2,3 Dx=1 y=2 z=348以下说法正确的是()。A输入项可以为一个实型常量,如 scanf(”%f”,3.5);B只有格式控制,没有输入项,也能进行正确输入,如 scanf(”a=%d,b=5d”);C当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scan

15、f(”%4.2f”,&f);D当输入数据时,必须指明变量的地址,如 scanf(”%f”,&f);49根据定义和数据的输入方式,输入语句的正确形式为:()。(注:代表空格)已有定义:float x,y;数据的输入方式:1.23 4.5Ascan(”%f,%f”,&x,&y);Bscanf(”%f%f”,&x,&y);Cscanf(”%3.2f%2.1f”,&x,&y);Dscanf(”%3.2f%2.1f”,&x,&y);50根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。#include”stdio.h”main()char s1,s2,s3;输入语句;printf

16、(”%c%c%c”,s1,s2,s3);输入形式:ABC (注:代表空格)输出形式:ABAscanf(”%c%c%c”,&s1,&s2,&s3);Bscanf(”%c%c%c”,&s1,&s2,&s3);Cscanf(”%c,%c,%c”,&s1,&s2,&s3);Dscanf(”%c%c”,&s1,&s2,&s3);51以下程序的执行结果是:()。#include”stdio.h”main()int x=2,y=3;printf(”x=%d,y=%dn”,x,y);A.x=%2,y=%3 B.x=%d,y=%dC.x=2,y=3 D.x=%d,y=%d52以下程序的输出结果是()。(注:代表

17、空格)#include”stdio.h”main()printf(”nstring1=%15s*”,”programming”);printf(”nstring2=%-5s*”,”boy”);printf(”string3=%2s*”,”girl”);Astring1=programming*Bstring1=programming*string2=boy*string2=boy*string3=gi*string3=gi*Cstring1=programming*Dstring1=programming*1 string2=boy*string3=girl*string2=boy*strin

18、g3=girl*53根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()。#include”stdio.h”main()int a;float b;输入语句 输出语句输入形式:12.3 (注:代表空格)输出形式:a+b=3.300Ascanf(”%d%f”,&a,&b);Bscanf(”%d%3.1f”,&a,&b);printf(”na+b=%5.3f”,a+b);printf(”na+b=%f”,a+b);Cscanf(”%d,%f”,&a,&b);Dscanf(”%d%f”,&a,&b);printf(”na+b=%5.3f”,a+b)printf(”na+b=%f

19、”,a+b);54阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为()。#include”stdio.h”main()int a,b;scanf(”%d%d”,&a,&b);printf(”a+b=%dn”,a+b);Aa+b=46 B有语法错误Ca+b=12 D不确定值55若有定义:int x,y;char s1,s2,s3;并有以下输出数据:(注:代表空格)12 UVW则能给 x 赋给整数 1,给 y 赋给整数 2,给 s1 赋给字符 U,给 s2 赋给字符 V,给 s3 赋给字符 W 的正确程序段是()。Ascanf(”x=%dy=%d”,&x,&y);s1=getchar

20、();s2=getchar();s3=getchar();Bscanf(”%d%d”,&x,&y);s1=getchar();s2=getchar();s3=getchar();Cscanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);Dscanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);2 填空题填空题1 C 语言的符号集包括_、_、_。2 结构化设计中的三种基本结构是_、_、_。3 C 语言源程序文件的后缀是_,经过编译后生成文件的后缀是_,经过链接后生成文件的后缀是_。4 C 语言的关键字都用_大写或小写。5

21、 一个函数由两部分组成,它们是_、_。6 函数体一般包括_、_。7 C 语言是通过_来进行输入和输出的。8 以下程序的执行结果_。1#include”stdio.h”main()short i=-1,j=1;printf(”dec:%d,oct:%o,hex:%x,unsigned:%un”,i,i,i,i);printf(”dec:%d,oct:%o,hex:%x,unsigned:%un”,j,j,j,j);9 以下程序的执行结果是_。#include”stdio.h”main()char s=b;printf(”dec:%d,oct:%o,hex:%x,ASCII:%cn”,s,s,s,

22、s);10以下程序的执行结果是_。(注:代表空格)#include”stdio.h”main()float pi=3.1415927;printf(”%f,%.4f,%4.3f,%10.3f”,pi,pi,pi,pi);printf(”n%e,%.4e,%4.3e,%10.3e”,pi,pi,pi,pi);11以下程序的执行结果是:_。#include”stdio.h”main()char c=c+5;printf(”c=%cn”,c);12以下程序输入 123 后的执行结果是_。(注:代表空格)#include”stdio.h”main()int i,j;char k;scanf(”%d%c

23、%d”,&i,&k,&j);printf(”i=%d,k=%c,j=%dn”,i,k,j);13有以下程序,若输入 9876543210 后的执行结果是_;若输入为:9876543210 后的执行结果是_;若输入为:9876543210 后的执行结果为:_。(注:代表空格)#include”stdio.h”main()int x1,x2;char y1,y2;scanf(”%2d%3d%3c%c”,&x1,&x2,&y1,&y2);printf(”x1=%d,x2=%d,y1=%c,y2=%cn”,x,y);14若 x 和 y 均为 int 型变量,则以下语句的功能是_。x+=y;y=x-y;

24、x-=y;15有一输入函数 scanf(”%d”,k);则不能使 float 类型变量 k 得到正确数值的原因是:_。16有如下程序段,输入数据:12345ffl678 后,u 的值是【1】,v 的值是【2】。1int u;float v;scanf(“%3d%f”,&u,&v);3 答案及部分解析答案及部分解析一选择题答案1B 2B 3A 4B5B6D7B 8D 9B 10C11A12C13C 14B 15C 16A17A18C19C 20A 21C 22C23A24B25A 26D 27A 28A29D30B 31C 32C 33B 34B35C36C 37C 38D 39D 40C41D

25、42A43B 44D 45D 46A47B48D 49B 50A 51D 52D53A54D 55D 14解析:C 语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。而且不能与 C 语言规定的关键字同名。关键字如:auto,break,case,char,const,continue,default,do,double,else,entry,extern,for,float,goto,if,int,int,long,register,return,short,signed,sizeof,static,struct,unsigned,while,switch,t

26、ypedef,void,volatile,unior。这些关键字先不必硬背下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。15解析:用指数形式表示一个实型常数时,E 或 e 之前必须有数字,且 E 后面指数必须为整数。16解析:101为转义字符,相对应一个 ASCII 码字符。(101)8=(65)10=A.17解析:转义字符的特征是以“”开头,其后跟一些字符,如n,t,”,b,f 等代表一些特殊的含义,而后如跟数字,可以为八进制或者十六进制,将其转换为对应的 ASCII 码值,就可以得出对应的字符。“”后跟八进制的写法:0nn,或者nn,表示“0

27、”或者“”后只能跟 1 或 3 位 07 之间的数字;“”后跟十六进制的写法:xnn,或者nn,表示“x”或者“”后只能跟 1 或 2 位 09及 af(AF)之间的字符。选项 B 的错误在于 8 不是八进制;而选项 C 的错误在于没有“”;选项 D 的错误在于超长(多了一位)。21解析:B 的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18);C 的错误在于%运算符只能适用于整型数据,D 的错误在于作类型转换时,应将类型加上括号,即为:y=(float)m31解析:逗号表达式的最终结果为最右端的表达式(即 x+y)的值,其运算顺序是从左自右的。第三个表达式 y+,其隐含有两步

28、操作:先取 y 的原值,再执行 y=y+1 运算;而本题中,虽然没有将 y 赋给某个变量(取其原值),但还是一定会执行加运算的。因而,经过第三个表达式,y 已经自加为 6,故 x+y 的值为 8,相对应得表达式最终结果为 8。若本题改为:(x=2,y=5,z=y+,x+z),则其结果应为 7。二填空题答案1 答案:英文字母、数字、一些有特定含义的标点符号 12 答案:顺序结构、选择结构、循环结构3 答案:C,OBJ,EXE4 答案:小写5 答案:函数说明部分和函数体6 答案:变量定义部分和执行部分7 答案:输入和输出函数8 答案:dec:-1,oct:177777,hex:ffff,unsig

29、ned:65535dec:1,oct:1,hex:1,unsigned:19 答案:dec:98,oct:142,hex:62,ASCII:b10答案:3.141593,3.1416,3.142,3.142 3.141593e+00,3.1416e+00,3.142e+00,3.142e+00(注:由于 c 编译系统不同,我们上机使用的机器,其第二个 printf 语句实际结果为:3.14159e+00,3.142e+00,3.14e+00,3.14e+00,即:小数点后取 5 位。)11答案:c=h12答案:i=1,k=,j=213答案:第一种情况的执行结果:x1=98,x2=765,y1=

30、4,y2=1 第二种情况的执行结果:x1=98,x2=76,y1=,y2=3第三种情况的执行结果:x1=98,x2=765,y1=4,y2=214答案:交换 x 和 y 的值15答案:(1)格式符应为:%f;(2)变量前边未加取地址符&,即应为 scanf(”%f”,&k);16答案:【1】123 【2】45.000000 第第 4 章章 选择结构选择结构习题习题1 选择题选择题1 已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&y+z/2 的值是()。A6 B0 C2 D12 设 a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=ab)&(n=cd)后 n

31、的值为()。A1 B2 C3 D43 设 x、y 和 z 都是 int 类型变量,且 x=3,y=4,z=5,则下面的表达式中,值为 0 的表达式为()。A x&y Bx=y Cx|y+z&y-z D!(xy)&!z|1)4为了避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与()组成配对关系。A缩排位置相同的 ifB在其之前未配对的 ifC在其之前未配对的最近的 ifD同一行上的 if5 逻辑运算符两侧运算对象的数据类型()。A只能是 0 或 1 B只能是 0 或非 0 正数 C只能是整型或字符型数据 D可以是任何类型的数据6 以下关于运算符优先顺序的描述中正确的是()

32、。A关系运算符算术运算符赋值运算符逻辑与运算符 B逻辑与运算符关系运算符算术运算符赋值运算符 C赋值运算符逻辑与运算符关系运算符算术运算符 D算术运算符关系运算符赋值运算符逻辑与运算符7 下列运算符中优先级最高的是()。A B&C+D!=8 选择出合法的 if 语句(设 int x,a,b,c;)()。Aif(a=b)c+;Bif(a=b)c+;Cif(ab)c+;Dif(a=b)c+;9 能正确表示“当 x 的取值在-58,-40和40,58范围内为真,否则为假”的表达式是()。A(x=-58)&(x=40)&(x=-58)|(x=40)|(x=-58)&(x=40)&(x=-58)|(x=

33、40)|(x=58)10判断 char 型变量 s 是否为小写字母的正确表达式是()。A a=s=a)&(s=a)&(s=z)D(a=s)11若希望当 x 的值为奇数时,表达式的值为“真”,x 的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()。Ax%2=1 B!(x%2=0)C!(x%2)Dx%212已知 x=45,y=a,z=0;则表达式(x=z&yz|!y)的值是()。A0 B语法错 C1 D“假”13指出下列程序段所表示的逻辑关系是()。if(a0)y=1;else if(x=0)y=0;else y=-1;By=0;if(x0)y=1;else if(x=0)if(x

34、0)y=1;else y=-1;Dif(x=0)if(x0)y=1;else y=0;else y=-1;15执行以下语句后,y 的值为()。int x,y,z;x=y=z=0;+x|+y&+z;A0 B1 C2 D不确定值16已知 int a=1,b=2,c=3;以下语句执行后 a,b,c 的值是()。if(ab)c=a;a=b;b=c;Aa=1,b=2,c=3 Ba=2,b=3,c=3Ca=2,b=3,c=1 Da=2,b=3,c=217请阅读以下程序:该程序()。#include”stdioh”main()int x=-10,y=5,z=0;if(x=y+z)printf(”*n”);e

35、lse printf(”$n”);A有语法错不能通过编译 B可以通过编译但不能通过连接C输出*D输出$18以下程序的运行结果是()。#include”stdio.h”main()int a=1;if(a+1)printf(”%dn”,a);else printf(”%dn”,a-);A0 B1 C2 D319当 a=1,b=2,c=4,d=3 时,执行完下面一段程序后 x 的值是()。if(ab)if(cd)x=1;else if(ac)if(bd)x=2;else x=3;else x=4;else x=5;A1 B2 C3 D420执行以下程序段后,变量 x,y,z 的值分别为()。int

36、 a=1,b=0,x,y,z;x=(-a=b+)?-a:+b;y=a+;z=b;Ax=0,y=0,z=0 Bx=-1,y=-1,z=1Cx=0,y=1,z=0 Dx=-1,y=2,z=121若 a、b、c、d、w 均为 int 类型变量,则执行下面语句后的 w 值是()。a=1;b=2;c=3;d=4;w=(ab)?a:b;w=(wc)?w:c;w=(wb?ac?a:c:b);A5 B4 C6 D不确定23若 a、b、c1、c2、x、y 均为整型变量,正确的 switch 语句是()。Aswitch(a+b);Bswitch a case 1:y=a+b;break;case c1:y=a-b

37、;break;case 0:y=a-b;case c2:x=a*d;break;break;default:x=a+b;Cswitch(a*a+b*b)Dswitch(a-b)case 3:default:y=a*b;break;case 1:y=a+b;break;case 3:x=a+b;break;case 3:y=b-a;break;case 10:case 11:y=a-b;break;24执行下列程序,输入为 3 的数出结果是()。#include”stdio.h”main()int k;scanf(”%d”,&k);switch(k)case 1:printf(”%dn”,k+)

38、;case 2:printf(”%dn”,k+);case 3:printf(”%dn”,k+);case 4:printf(”%dn”,k+);break;default:printf(”Full!n”);A3 B4 C3 D45 425假定等级和分数有以下对应关系:等级:A 分数:85100等级:B 分数:6084等级:C 分数:60 以下对于等级 grade 输出相应的分数区间,能够完成该功能的程序段是()。Aswitch(grade)case A:printf(”85100n”);case B:printf(”6084n”);case C:printf(”60n”);default:p

39、rintf(”grade is error!n”);Bswitch(grade)case A:printf(”85100n”);break;case B:printf(”6084n”);case C:printf(”60n”);default:printf(”grade is error!n”);Cswitch(grade)case A:printf(”85100n”);break;case B:printf(”6084n”);break;case C:printf(”60n”);default:printf(”grade is error!n”);Dswitch(grade)case C:p

40、rintf(”60n”);break;case B:printf(”6084n”);break;default:printf(”grade is error!n”);break;case A:printf(”85100n”);26有如下程序,写出该执行结果()。#include”stdio.h”main()float x=2.0,y;if(x0.0)y=0.0;else if(x10.0)y=1.0/x;else y=1.0;printf(”%fn”,y);A0.000000 B0.250000 C0.500000 D1.00000027以下程序的运行结果是()。#include”stdio.

41、h”main()int a=2,b=-1,c=2;if(ab)if(b50)printf(”%d”,a);if(a40)printf(”%d”,a);if(a30)printf(”%d”,a);2 设 int x=9,y=8;表达式 x=y+1 的结果是_。3 定义 int x,y;执行 y=(x=1,+x,x+2);后,y 的值是_。4 定义 int x=10,y,z;执行 y=z=x;x=y=z;后,x 的结果是_。5 设 int a=1,b=2,c,d,e;执行c=(-a+)+(+b);d=(b-)+(+a)-a;e=(a/(+b)-(a/(-a);请问 a,b,c,d,e 的结果是:_

42、。6 设 int a=2,b=3,c,d,e,f;执行c=(a+=-b);d=(a=+b);e=(a-!=b);f=(+ab-);请问 a,b,c,d,e,f 的结果是:_。7 以下程序的运行结果是_。#include”stdio.h”main()int a,b,c,s,w,t;s=w=t=0;a=-1;b=3;c=3;if(c0)s=a+b;if(a0)if(c0)w=a-b;else t=c;printf(”%d%d%d”,s,w,t);8 以下程序的运行结果是_。#include”stdio.h”main()int a,b,c,d,e;a=c=1;b=20;d=100;if(!a)d=d

43、+;else if(!b)if(d)d=-d;else d=d-;printf(”%dnn”,d);9 以下程序的运行结果是_。#include”stdio.h”main()int a,b=250,c;if(c=b)0)a=4;else if(b=0)a=5;else a=6;printf(”t%dt%dn”,a,c);if(c=(b=0)a=5;printf(”t%dt%dn”,a,c);if(a=c=b)a=4;printf(”t%dt%dn”,a,c);10下面程序根据以下函数关系,对输入的每个 x 值,计算出 y 值。请在【】内填空。xy2x=10 x(x+2)-1x=21/xx=-1

44、x-1#include”stdio.h”main()int x,y;scanf(”%d”,&x);if(【1】)y=x*(x+2);else if(【2】)y=1/x;else if(x=a&chc)【2】;printf(”min=%dn”,min);16以下程序实现这样的功能:商店卖西瓜,10 斤以上的每斤 0.15 元,8 斤以上的每斤 0.3元,6 斤以上的每斤 0.4 元,4 斤以上的每斤 0.6 元,4 斤以下的每斤 0.8 元,从键盘输入西瓜的重量和顾客所付钱数,则输出应付款和应找钱数。请在【】内填入正确内容。#include”stdio.h”main()float weight,

45、money,rate;printf(”the paid money of the client is:”);scanf(”%f”,&money);printf(”the weight of the watermelon is:”);scanf(”%f”,&weight);if(【1】)rate=0.15;else if(weight8)rate=0.3;else if(weight6)【2】;else if(weight4)rate=0.6;【3】rate=0.8;printf(”the account payable of the watermelon is%fn”,weight*rate)

46、;printf(”the change for client is%fn”,money-weight*rate);17以下程序段的运行结果是_。#include”stdio.h”main()char ch1=a,ch2=A;switch(ch1)case a:switch(ch2)case A:printf(”good!n”);break;case B:printf(”bad!n”);break;case b:printf(”joken”);18根据以下函数关系,对输入的每个 x 值,计算出相应的 y 值。请在【】内填入正确内容。x y x000=x10 x10=x201020=xb 的值为假

47、时,便已经确定整个表达式的值为假,所以不必再继续判断第二个表达式的逻辑值。由于没有执行第二个表达式 n=cd,所以 n 的值仍为 2。17解析:if 的条件表达式 x=y+z 为赋值语句,x=5 为非零值,即为 if(1)printf(”*n”);23解析:A的错误在于 switch(a+b);其后有一个“;”,B 的错误在于 switch a 的条件表达式 a 没有括号,应该为 switch(a),C 的错误在于有两个 case 具有相同的入口值。28解析:当输入 c 时,switch 语句执行情况为:当继续输入 h 时,switch 语句的执行情况为:21222111vvvvswitch(

48、ch)case a:case h:default:v1+;case 0:v2+;从此处向下执行因为没有 break 语句switch(ch)case a:case h:default:v1+;case 0:v2+;从此处向下执行因为没有 break 语句 重复上述过程,输入 5 个有效字符,则 v1 和 v2 执行 5 次自加操作,所以:v1=5,v2=5二填空题答案1答案:585858 解析:虽然三个 if 语句按照嵌套方式书写,但是程序仍然是依顺序运行的,会分别对每一个 if 的条件表达式进行判断,若其条件表达式为真,就执行其后的语句,否则,不执行。2答案:1 解析:注意该表达式是关系表达

49、式的双等号,所以其结果只能为 1 或 0。3答案:44答案:15答案:在 Turbo C 编译系统下,结果为 a=2,b=3,c=2,d=3,e=-1;若在 Visual C+下,结果为 a=2,b=3,c=2,d=3,e=-0。解析:在 Turbo C 编译系统下,解题过程如下:第一个赋值语句“c=(-a+)+(+b);”可分解为如下的几个语句:211,231,31211acbaabacbb此时 a=2,b=3,c=2。第二个赋值语句“d=(b-)+(+a)-a;”可分解为如下的几个语句:213,3333,31211bdabbaabdaa此时 a=3,b=2,c=2,d=3。第三个赋值语句“

50、e=(a/(+b)-(a/(-a);”中由于自加、自减运算符的优先级高于其它运算符,故先运算+和-,令 a=2,b=3,然后该等式中 a 的值都取 2 参与运算,故该等式等价与:“e=2/3-2/2;”,因此 e 的值等于 0。此时 a=2,b=3,c=2,d=3,e=0 在 Visual C+编译系统下,解题过程如下:前两条赋值语句“c=(-a+)+(+b);”、“d=(b-)+(+a)-a;”的运算过程和在 Turbo C 编译系统一样,第三个赋值语句“e=(a/(+b)-(a/(-a);”可按步骤分解为如下的几个语句 2,02/33/3,3121)1/(/1aebaaaabaebb因此,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服