C语言程序设计期末复习题 .docx
精品名师归纳总结TC语言程序设计复习题判定题:C 语言编写的源程序经过编译、连接后,假如没有错误,就运行结果确定正确。()在 C 语言中,变量是不区分大小写的,如:a 和 A 是同一个变量。()double 类型数据的输入必需用格式“%lf ”。()while和 do-while循环,确定是可以相互替换的。()如有定义 int a = 2,就语句 printf“ %d” ,a+ 。的输出结果为 3。() 在循环体中,使用continue语句,可以跳出该循环。()表达式 3 * 5 / 2和表达式 3 / 2 * 5的值相等。() 任何变量都必需要定义其类型。()表达式 double1/2的值为 0.5 。()如有定义int a=0,b。 执行语句ifa=0 b=0。 else b=1。 后, b的值是 1 。()C语言中用于结构化程序设计的三种基本结构是if 、switch 、break 。()设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2。就运算表达式:m=a>b&&n=c>d后, n 的值为 2。()在可执行的C 语言程序中有且只有一个主函数main ,并且应当写在程序的最前面。()如有 int x,就x+1+ 是一个合法的c 语言表达式。() 设 int x = 7,y = 5,就 x *= y - 3后, x 的值为 14。()假如 i 的原值为 3,就执行语句:j = i+。后, j 的值为 3。()do-while语句先执行循环体,后判定循环条件,所以循环体至少会执行一次。() 表达式 4.0 *1 / 2的值为 2.0 。() n 是一个字符常量。()表达式 3.5%2是合法的 C 语言表达式。()C的任何类型数据在运算机内部都是以二进制形式储备的。() 定义函数时,必需要有形参和返回值。()在 C 程序中 ,main 函数和自定义的函数都可以有多个。()语句 returna, b 。就函数可以返回两个值。()传值调用时,在函数中形参变量值转变后,不转变实参变量的值。() 构成数组的各个元素的数据类型不愿定要相同。()有定义: int a5=10,11,12,13,14,*p=a。,语句 printf“%d” ,*p+。的输出结果为 11。()在 C 程序中 ,函数既可以嵌套定义,也可以嵌套调用。() 传值调用的形参只有在被调用时,才被创建 支配储备单元 。()在 C 程序中,如对函数类型未加说明,就函数的隐含类型为void 。() 如 a 为一维数组名,就*a+i与 ai等价。()C文件使用前需要打开,使用后需要关闭。()定义为void类型的函数,其含义是调用函数后,被调用的函数的返回值为任意的类型。()可编辑资料 - - - 欢迎下载精品名师归纳总结C 语言程序中,照实参是变量,当调用函数时实参和形参各占一个独立的储备单元。()在 C 语言中,全部函数之间都可以相互调用。()如有定义 char s1=” Hello ” ,s2=” world.”,就strlens1 + strlens2等于 strlenstrcats1,s2。()如有定义 int a,*p=&a,*q=p。就 p 指向 a,q 指向 p。()如有定义 int a,*p=&a。 char *t。由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不能将p 赋给 t 。()如 fp是指向某文件的指针,且已读到该文件的末尾,就C 语言函数feoffp的返回值是 0。()在使用 fopen函数时必需先定义一个类型为FILE 的文件指针。()void 类型的函数确定无形参。()数组元素的下标必需是整数,不能用实数。()如有定义语句“ int a10。”就 a10-9/2是合法的数组元素。() 如有定义语句“ int a10,i=2。”,就 &ai与 a+i 等价。()数组定义语句“charc="Hello"。”与“ charc= H , e, l , l , o 。”等价。()语句“ double *p=&x,x。”使指针变量 p 指向变量 x。()C语言规定,实参应与其对应的形参类型一样。() 系统判定字符串终止的标志是n 。 ()如打开文件的方式为“w”而该文件已经存在,就文件中原有数据被清空。()单项题:能够把由高级语言编写的源程序翻译成目标程序的系统软件叫(B)A.源程序B.编译程序C.汇编程序D.说明程序以下结构中,不属于结构化程序设计中的3 种结构的是(D)A. 循环结构B.次序结构C.挑选结构D.网状结构程序中调用了库函数exit0,必需包含头文件B A. string.hB.stdlib.hC.ctype.hD.math.hx、y 是整型变量,执行语句scanf ( "x=%d, y=%d",&x,&y)。使 x 和 y 的值分别为 7和 9,正确的输入是(C )A. 7 9B. 7, 9C. x=7, y=9D. x=7 y=9条件“ -6 x 4”,对应的 C 规律表达式是(D)A. x>=-6 and x<=4B. -6<=x<=4C. x>=-6 | x<=4D. x>=-6 && x<=4假设变量 x、k 都已定义,以下语句片段中,无语法错误选项(B )A.switchxcase x>=80:putchar A 。case x<70:putchar E 。B. switchx case 2+4:k= A。defualt:k= E。case 3*5:k= B。可编辑资料 - - - 欢迎下载精品名师归纳总结C.switchxcase 3+x: k=x-2 。case 5*x: k=x+3 。default: k=0 。D.switchxcase 4.5:k=0.5*x。case 6.8:k=8*x。default:k=0。判定下面的 while循环体的执行次数( D) i=5 。k=10 。whilei=1 i=k-。AB 10 次 C 2 次 D许多次能正确的定义符号常量的是(B)A #define n=6B #definen 6C.#definen 6。 D. #DEFINEN 10如有定义语句“ char c= 134 。”就变量c A A. 包含 1 个字符 B. 包含 2 个字符 C. 包含 3 个字符 D. 包含 4 个字符设 x 和 y 均为 int型变量,就语句“x+=y。 y=x-y 。 x-=y 。”的功能是(D) A把 x 和 y 按从小到大排列 B把 x 和 y 按从大到小排列C无确定结果D交换 x 和 y 中的值 X=X+Y Y=X-Y X=X-Y以下运算符中,优先级最低的是(D)A. .:B.&&C./=D. ,如有条件表达式“x.a+:b-”,就以下表达式中(B )等价于表达式 xA x=0B x.=0C x=1D x.=1以下关于 switch语句和 break 语句的描述,只有( C)是正确的A在 switch语句中必需使用 break 语句B. break语句只能用于switch语句中C. 在 switch语句中,可以依据需要使用或不使用break 语句D. break 语句是 switch语句的一部分以下程序段的循环次数是A for i=3。 i=0 。 printf“%d”,i-。A. 0 次B. 3次C. 2次D.许多次whilescanf“%f” ,&n,n<=0。以下描述正确选项(A)A. 当输入 n>0 的值时循环终止B.当输入 n<=0 的值时循环终止C.scanf“ %f”,&n,n<=0不能充当循环条件D. 循环体不能为空以下不正确的 C语言标识符是(C)。A _nextBa_1_2C fx,yD Prog如有定义 :int k=2,x。就能使变量 x 的值为 3 的表达式是 B 。A.x=5/k+0.5B.x=5/k+1。C.x=x+kD.x=2*k-设 charc= y 。 , 表 达 式 c>= a &&c<= z|c>= A &&c<= Z 的 值 为B A 0B.1C“假” D“真”可编辑资料 - - - 欢迎下载精品名师归纳总结如有定义 int a=1,b=2,c=3。在以下选项中,不正确的赋值语句是(D )。A. a+ 。B. a=b=c=0。C. a=b=c。D. a=b+c=1 。判定下面的 while循环体的执行次数D 。k=10,s=0 。while k>=0 s+=k-。A. 0 次B. 1次C. 10次D. 11次设整型变量 a 为 9,使 b 不为 4 的表达式是(B)。A. b=a/2B. b= -a-5C. b=a>3.4:5D. b=a%5循环语句 forx=0,y=0。y.=123|x<4。x+ 。执行 A 。A. 无限次 B. 4次C.3次 D.0 次如有定义: int a=8,b=5,c。,就执行语句 c=a/b+0.4 。后, c 的值为( B )。A 1.4B 1 C 2D 2.2已知 int x=10,y=20,z=30。,执行 ifx>yz=x。x=y。y=z 。后 x,y,z的值是( B )。A.10,20,30B.20,30,30C. 20,30,10D.20,30,20为了防止在嵌套的条件语句if-else中产生二义性,C 语言规定: else子句总是与( B)配对。A. 缩排位置相同的 ifB.其之前最近的没有else配对的 ifC. 其之后最近的 ifD.同一行上的 if可编辑资料 - - - 欢迎下载精品名师归纳总结以下各 m的值中,能使表达式m%3=2&&m%5=3&&m%7值=为2 A. 23B. 17C. 8D. 6以下 4 个选项中,不能看作一条语句的是(D 。1 的是 A 。可编辑资料 - - - 欢迎下载精品名师归纳总结A. 。B. a=0,b=0,c=0 。C. whilei-。D.ifb=0 m=1。n=2。规律运算符两侧运算对象的数据类型D 。A. 只能是 0 或 1B. 只能是 0 或非 0 正数C. 只能是整型或字符型数据D. 可以是任何类型数据以下程序段输出结果是(C )。int x=3。do printf“%3d”,x-=2 。while.-x。A 1B 3 0C 1 -2D死循环有定义 ” int a=5。”语, 句 ” a+=-a=a+a。”, 执行后,变量 a 的值为( C)。A. 10B. 5C. -10D. -5以下各语句中,能够将变量u、s 中最大值赋给变量t 的是 C 。A. ifu>st=u。 t=s 。 B. t=u。ifu>st=s。C. t=s 。 ifu>st=u。D. ifu>st=s。 else t=u。以下可以正确表示字符型常量的是(B)。A.“a” B. t C.” n”D.18执行 x=6*7%8+9/3。后, x 的值为( C)。A 1B 2C 3D 4设 int a=3, b=6, c=9。,以下表达式中值为0 的是D 。A. 2*a<=bB. a&&bC. 3*a-c|bD. b-a<c-b以下语句中,哪一个可以输出26 个大写英文字母(D )。可编辑资料 - - - 欢迎下载精品名师归纳总结A. fora= A。 a<= Z。 printf"%c",+a。B. fora= A。 a< Z。 a+printf"%c",a。C. fora= A。 a< Z。 printf"%c",+a。D. fora= A。 a<= Z。 printf"%c",a+。以下(C )是语言中的常量。A. e+2B.068 C. x41 D. 以下(C)表达式的值等于0。A.2%5B.1/2.0C.10>5>3D. a -97设有定义 doublex=2.4, y=3.56。,就表达式 intx+y的值为(A)。A. 5.56B.5.4C. 5D. 6设有语句 int n=10,i=4。,就语句 n%=i+1 。执行后, n 的值是( A)。A. 0B. 1C. 2D.3以下语句将大写字母转换为小写字母,其它字符不变,其中正确的是(B)。A ifch>= A |ch<= Z ch=ch+32 。B ifch>= A &&ch<= Z ch=ch+32 。C ch=ch>= A &&ch<= Z .ch+32: 。D ch=ch> A &&ch<Z .ch+32:ch 。设有定义int a=0,b=0,t。,就执行语句:t = a+&&+b。后, a 和 b 的值是 b. 。A. a=0,b=0B. a=0,b=1C. a=1,b=0D. a=1,b=1如有 int i。,执行语句 fori=1。i+<4 。 。后变量 i 的值是( C )。A 3B 4C 5D不确定程序段int n=10。 while n>7 n-。 printf"%d ",n。 的输出结果是( D)。A 10 9B 9 8C10 9 8D 9 8 7执行下面程序段,如从键盘输入33 后,其输出结果是(D)。int x。scanf“ %d” ,&x 。ifx>60 printf“ %d” ,x 。else ifx>30 printf“ %d” ,x 。else ifx>20 printf“ %d” ,x 。A.333333B.3333C.33D.333333设有函数调用语句: m=maxa,maxb,c。就函数 max 有(C)个实参A.1B.4C. 2D. 0程序中调用了库函数strlen,必需包含头文件( D)。A stdlib.hBmath.hC ctype.hD string.h以下数组 s 中所存放字符串的长度为(B)。char s="a127btcdxdgn"。A 9B 10C 11D18以下能正确定义一维数组 a 的语句是(D)。可编辑资料 - - - 欢迎下载精品名师归纳总结A int a20。B int n=20, an 。C int n。 scanf"%d",&n 。 D#define n 20 int an。int an。如有 int a8=1,9,8,0,4,2,5,3。就数值为2 的表达式是 (C)。A.*aB.a6C.*a+1D.*a+1+5以下程序段的运行结果为(B )。char s="mn0gy"。 printf"%s",s。A mn0B mnCMngyD mngy如有定义 char s8="broke",*ps=s。就不能代表字符k 的表达式是(A)。A ps+3Bs3C ps3D *ps+3下面的程序段中循环体执行次数(B)。char a5,*t="Boy",*s=t。 int i=0。while *s.= 0 ai=*s。 s+ 。A、4 次 B、3 次 C、0 次D、许多次对变量定义及初始化为:FILE *p=fopen"d:aa.txt","r"。 int x。 float a。char s 。能正确的将文件中的整数、实数、字符输入到各变量的是(D)。A、fgetsx,a,s,p。B、fprintfp,C、fgetcx,a,s,p。D、fscanfp,” %d,%f,%c” ,x,a,s。” %d,%f,%c” ,&x,&a,&s。函数定义如下:void funint x,int y,int *a,int *b*a=x+y。 *b=x*y。 能够正确调用 fun 函数的是(B )。其中 m、 n 是已经定义过的 int型变量。A 、 fun5,8,m,n。B 、 fun5,8,&m,&n。C 、 fun5,8,*m,*n。D 、funm,n,5,8。定义 char s4="Max",t。 执行下面语句段后输出结果是(B)。t=s0。s0=s2。s2=t。printf"%s n", s。A、MaxB、xaMC、axMD、 xMa以下表达不正确选项(B)。A. main函数在 C 语言中必需有且只有一个B. C程序的执行从 main 函数开头,所以 main 函数必需放在程序最前面C. 函数可以带参数,也可以不带参数D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句在 C 程序中,如对函数返回类型未加说明,就函数的隐含类型为(A)。A intB doubleCvoidD char有一个函数调用 f 1,2, 3*4 ,就此次调用的是下面哪个函数f (B)?A. voidfint a。B. voidfint a, intb。C. voidfint a, intb, int c。D. voidf int a, int b, int c,int d。如有定义语句“ inta10 。”就以下对 a 中数组元素正确引用的是(C )。A a10B a2.5C a5%2D a5+6以下哪个语句存在语法错误(C)?A. char c =A。 B. char c = "A"。C. char c =AB。 D. char c = "AB"。可编辑资料 - - - 欢迎下载精品名师归纳总结已知” char s =“ ab0cd ”。”,就数组s 的长度为(), s 所存放的字符串的长度为()。 BA.6 和 5B. 6和 2C. 5和 2D. 5和 5如有说明 :int i,j=1,*p=&i。就与 i=j 。等价的语句是(B)。A i=*p 。 B *p=j 。C i=&j 。D p=&j 。有数组定义语句“char a20。”,就正确的输入语句为(D)。A scanf"%s", &a 。B scanf"%s", a。C getsa20。D getsa。p 和 q 同为指向 int类型的指针,就下面哪个表达式会导致语法错误?AA p+qB p-qC p=qD p=q以下语句定义p 为指向 double 型变量 x 的指针,其中正确选项(B )。A double x,*p=*xC double *p=&x, x。 Bdouble x,*p=&x。D double x 。 int *p已定义以下函数:int funint *p return *p。 p=&x 。 , fun 函数返回值是(C )。A不确定的值B形参 p 中存放的值 C 一个整数 D形参 p 的的址值下面程序的运行结果为(A)。int a = 1,2,3,4, *p=a。printf"%d ", *p+。. printf"%d ", *p。A 1 2B 1 1C 2 3D 2 2如有定义: char str=“ ABCD” ,*p=str。就语句 printf“ %dn”, *p+4。的输出结果是(B)(已知 A的 ASCII 码为 65)。A 68B 0C字符 D 的的址 D不确定的值下面(C)语句是从文件中读取一个字符。A ch=getc。 B fputcch,fp。C fscanffp,"%c",&ch。 D scanf"%c",&ch。以“只读”方式打开文本文件c:1.txt,以下语句中哪一个是正确的(B)。A fp=fopen"c:1.txt","a"C fp=fopen"c:1.txt","wb"。B。D fp=fopen"c:1.txt","r" fp=fopen"c:1.txt","r"。可编辑资料 - - - 欢迎下载精品名师归纳总结已知数组的初始化语句为:int a10 = 1,2,3,4,5。就表达式 a5 的值为(D)。A. 5B. 1C.不确定的值 D. 0表达式“ c=*p+ ”的执行过程是(A)。A复制 *p 的值给 c 后再执行 p+B复制 *p 的值给 c 后再执行C复制 p 的值给 c 后再执行 p+D执行 p+后将 *p 的值复制给变量的指针,其含义是指该变量的(B)。A值B的址 C名字 D 一个标志如有定义: char s ="HappyNewYear" 。就下面那条语句能输出字符N(D)?A. printf“%s”, s+5 。B. printf“%c”, s+5 。C. printf“%s”, *s+5。 D. printf“%c”, *s+5。C语言中函数返回值的类型是由(C)准备的。*p+ c可编辑资料 - - - 欢迎下载精品名师归纳总结A调用该函数的主调函数类型B return语句中的表达式类型C定义函数时所指定的返回函数值类型D调用函数时临时可编辑资料 - - - 欢迎下载精品名师归纳总结以下正确的函数说明是(A)。A int funint , int。C int funx,y。DB int funint x,y int funint x。 int y。在 C 语言中,下面关于数组的描述正确选项C 。A数组的大小是固定的,但可以有不同类型的数组元素 B数组的大小是可变的,但全部数组元素的类型必需相同C数组的大小是固定的,全部数组元素的类型必需相同D数组的大小是可变的,可以有不同的类型的数组元素假定 int类型变量占用 4 个字节,有定义:int x10=0,2,4。,就数组 x 在内存中所占字节数是(D )。A 3B 12C10D 40以下程序段执行后, s 的值是(A)。 S=1 s=10+2 s=120+3char ch="123"。 int i,s=0。fori=0。chi>= 0 &&chi<= 9。 i+s=10*s+chi- 0。为A 123 B 1C 3D6要将 20,30,40,50存入数组 b 中,以下正确的程序段是(A)。A int i,b4。 for i=0。 i<4 。 i+ bi=i+2*10。B int b4。 b=20,30,40,50。C int b4。 b1=20,b2=30,b3=40,b4=50。D int b4。 b4=20,30,40,50。设已有定义: char *st="how are you"。以下程序段中正确选项(A)。A char a12, *p=a+1。 strcpyp,st+4。B char a12。 strcpy+a, st。C char a12,*p。 strcpyp, st。Dchar a, *p=a+1。strcpyp,&st4。如已有定义 char str10。 要将键盘输入的字符串"a pear"赋给 str ,应使用( B)。A scanf"%s",str。 B getsstr。 C str="a pear"。D getcharstr。 如inta=1,b=2,*pa=&a,*pb=&b。,执 行语句*pa*=3。b*=2。printf“ %d,%d” ,*pa,*pb。后输出( D)。A 1,2B 1,4C 3,2 D 3,4如有 int a=100,b=200,t,*temp,*pa=&a,*pb=&b。就以下各语句组中,不能实现变量 a,b 值互换的是(C)。A t=a 。 a=b 。 b=t 。B t=*pa 。 *pa=*pb 。*pb=t 。C temp=pa。 pa=pb。 pb=temp。D a=a+b。 b=a-b 。 a=a-b 。已知有语句FILE *fp。 int x=123。 fp=fopen"out.dat","w"。, 假如需要将变量 x 的值以文本形式储存到磁盘文件out.dat中,就以下函数调用形式中,正确选项(B)。A fprintf"%d",x。Bfprintffp,"%d",x。C fprintf"%d",x,fp。Dfprintf"out.dat","%d",x。以下正确的函数定义是(D )。A double funint x, int y B double funint x,y z=x+y。 return z。 int z。 return z。C fun x,y D double fun int x, int y int x, y。 double z。 double z。可编辑资料 - - - 欢迎下载精品名师归纳总结z=x+y。 return z。 z=x/y。 return z。 设有定义语句char s="abcDE"。,就 s5的值是(C) 。A未知字符 B 0 C 0 D E当调用函数时,实参是一个数组名,就向函数传送的是(B)。A数组的长度B数组的首的址 C数组每一个元素的的址D数组每个元素中的值能对一维数组正确初始化的语句是(C )。A int a5=0,1,2,3,4,5。Bint a5=。C int a5=10。D int a5=1, ,5 。下面程序段的输出结果是(A)。char a10= "abcd"。char b4= "ABC"。strcata,b。printf“%s ”,a 。A abcdABCB abcdC ABCD ABCabcd设有以下定义 char s ="12345", *p=s。就以下表达式中错误选项(D)。A *p+1B*s+2C p="ABC "Ds="ABC"设有如下定义:int a=1,3,5,7,9。int *p。 就以下程序段的输出结果为(A)。p=a。*p+2+=2 。printf “%d,%d n”,*p,*p+2。A 1,7B 1,5C 5,9D 3,7判定字符串 s1 与 s2 是否相等,应当使用的语句是(D)。A.ifs1= =s2B.ifs1=s2C.ifs1= =s2D.ifstrcmps1,s2= =0程序阅读题:说明:阅读以下程序,在每道题供应的程序运行结果如干可选答案中,挑选一个正确答案。#include<stdio.h>答案: A voidmain int n。forn=1。n<=10。n+ifn%3=0 break。printf"%d",n。A.12B.369C.12457810D. 12345678910#include<stdio.h>答案: D void main可编辑资料 - - - 欢迎下载精品名师归纳总结 int i,n。scanf"%d",&n。/输入 24 i=2 。whilen>1ifn%i=0printf"%dt",i。n/=i 。elsei+。printf"n"。A. 2261B. 2341C. 3222D. 2223#include <stdio.h>答案: A voidmain inti, m=15, y = -1。fori=2。i<=m/2 。 i+ if m%i=0 y=0。else y=1。printf"%d#",y。A. 1#B.2#C. 0#D.3#include <stdio.h>答案: C voidmainint j,k,s1,s2。s1=s2=0 。forj=1。j<=5 。j+ s1+。fork=1。k<=j 。k+ s2+。printf"%d%d", s1, s2。A. 5 5B.5 6C.5 15D. 5 21#include "stdio.h"答案: C void mainint a。float b,c。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf"%2d%3f%4f",&a,&b,&c printf"a=%d,b=%.1f,c=%.1fn",a,b,c。 /输入 12345654321。A.a=12,b=345,c=6543B.a=12,b=123,c=1234C.a=12,b=345.0,c=6543.0D.a=12.0,b=345.0,c=6543.0#include <stdio.h>答案: D void main char grade。scanf"%c", &grade。 /输入 B switchgrade caseA : printf">=85"。case B:case C: printf">=60"。case D: printf"<60"。default: printf"error."。A. >=85>=60<60B. >=60<60C.>=60D. >=60<60error.#include<stdio.h>答案: B void mainint a,b。fora=1,b=1。 a<100。 a+ifb>=20 break。ifb%3=1b+=3。continue。b-=5 。printf"%dn",a。A.7B.8C.9D.10#include <stdio.h>答案: A voidmainint i,j,k,a=3,b=2。i= -a=b+.-a:+b。j=a+。k=b。printf"i=%d,j=%d,k=%dn",i,j,k。A. i=1,j=1,k=3B. i=1,j=1,k=2 C. i=4,j=2