C语言程序设计期末复习题.docx
《C语言程序设计期末复习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末复习题.docx(48页珍藏版)》请在冰豆网上搜索。
C语言程序设计期末复习题
TC语言程序设计复习题
判断题:
●C语言编写的源程序经过编译、连接后,如果没有错误,则运行结果一定正确。
(
)
●在C语言中,变量是不区分大小写的,如:
a和A是同一个变量。
(
)
●double类型数据的输入必须用格式“%lf”。
(
)
●while和do-while循环,肯定是可以相互替换的。
(
)
●若有定义inta=2,则语句printf(“%d”,a++);的输出结果为3。
(
)
●在循环体中,使用continue语句,可以跳出该循环。
(
)
●表达式3*5/2和表达式3/2*5的值相等。
(
)
●任何变量都必须要定义其类型。
(
)
●表达式(double)(1/2)的值为0.5。
(
)
●若有定义inta=0,b;执行语句if(a=0)b=0;elseb=1;后,b的值是1。
(
)
●C语言中用于结构化程序设计的三种基本结构是if、switch、break。
(
)
●设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;则计算表达式:
(m=a>b)&&(n=c>d)后,n的值为2。
(
)
●在可执行的C语言程序中有且只有一个主函数main(),并且应该写在程序的最前面。
(
)
●若有intx,则(x+1)++是一个合法的c语言表达式。
(
)
●设intx=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函数和自定义的函数都可以有多个。
(
)
●语句return(a,b);则函数可以返回两个值。
(
)
●传值调用时,在函数中形参变量值改变后,不改变实参变量的值。
(
)
●构成数组的各个元素的数据类型不一定要相同。
(
)
●有定义:
inta[5]={10,11,12,13,14},*p=a;,语句printf(“%d”,*p++);的输出结果为11。
(
)
●在C程序中,函数既可以嵌套定义,也可以嵌套调用。
(
)
●传值调用的形参只有在被调用时,才被创建(分配存储单元)。
(
)
●在C程序中,若对函数类型未加说明,则函数的隐含类型为void。
(
)
●若a为一维数组名,则*(a+i)与a[i]等价。
(
)
●C文件使用前需要打开,使用后需要关闭。
(
)
●定义为void类型的函数,其含义是调用函数后,被调用的函数的返回值为任意的类型。
(
)
●C语言程序中,若实参是变量,当调用函数时实参和形参各占一个独立的存储单元。
(
)
●在C语言中,所有函数之间都可以相互调用。
(
)
●若有定义chars1[]=”Hello”,s2[]=”world!
”,则strlen(s1)+strlen(s2)等于strlen(strcat(s1,s2))。
(
)
●若有定义inta,*p=&a,*q=p;则p指向a,q指向p。
(
)
●若有定义inta,*p=&a;char*t;由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不能将p赋给t。
(
)
●若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp)的返回值是0。
(
)
●在使用fopen()函数时必须先定义一个类型为FILE的文件指针。
(
)
●void类型的函数一定无形参。
(
)
●数组元素的下标必须是整数,不能用实数。
(
)
●若有定义语句“inta[10];”则a[10-9/2]是合法的数组元素。
(
)
●若有定义语句“inta[10],i=2;”,则&a[i]与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.网状结构
●程序中调用了库函数exit(0),必须包含头文件(B)
A.string.hB.stdlib.hC.ctype.hD.math.h
●x、y是整型变量,执行语句scanf("x=%d,y=%d",&x,&y);使x和y的值分别为7和9,正确的输入是(C)
A.79B.7,9C.x=7,y=9D.x=7y=9
●条件“-6≤x≤4”,对应的C逻辑表达式是(D)
A.x>=-6andx<=4B.-6<=x<=4C.x>=-6||x<=4D.x>=-6&&x<=4
●假设变量x、k都已定义,下列语句片段中,无语法错误的是(B)
A.switch(x)
{casex>=80:
putchar(‘A’);
casex<70:
putchar(‘E’);
}
B.switch(x){
case2+4:
k=‘A’;
defualt:
k=‘E’;
case3*5:
k=‘B’;
}
C.switch(x){
case3+x:
k=x-2;
case5*x:
k=x+3;
default:
k=0;
}
D.switch(x){
case4.5:
k=0.5*x;
case6.8:
k=8*x;
default:
k=0;
}
●判断下面的while循环体的执行次数(D)
i=5;
k=10;
while(i=1)i=k--;
A.B.10次C.2次D.无数次
●能正确地定义符号常量的是(B)
A.#definen=6B.#definen6C.#definen6;D.#DEFINEN10
●若有定义语句“charc=‘\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+YY=X-YX=X-Y
●下列运算符中,优先级最低的是(D)
A.?
:
B.&&C./=D.,
●若有条件表达式“x?
a++:
b--”,则以下表达式中(B)等价于表达式x
A.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.无数次
●while(scanf(“%f”,&n),n<=0);下列描述正确的是(A)
A.当输入n>0的值时循环终止B.当输入n<=0的值时循环终止
C.scanf(“%f”,&n),n<=0不能充当循环条件D.循环体不能为空
●以下不正确的C语言标识符是(C)。
A._nextB.a_1_2C.f(x,y)D.Prog
●若有定义:
intk=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.“真”
●若有定义inta=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
●循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);执行(A)。
A.无限次B.4次C.3次D.0次
●若有定义:
inta=8,b=5,c;,则执行语句c=a/b+0.4;后,c的值为(B)。
A.1.4B.1C.2D.2.2
●已知intx=10,y=20,z=30;,执行if(x>y)z=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配对的if
C.其之后最近的ifD.同一行上的if
●下列各m的值中,能使表达式m%3==2&&m%5==3&&m%7==2值为1的是(A)。
A.23B.17C.8D.6
●以下4个选项中,不能看作一条语句的是(D)。
A.;B.a=0,b=0,c=0;C.while(i--);D.if(b==0)m=1;n=2;
●逻辑运算符两侧运算对象的数据类型(D)。
A.只能是0或1B.只能是0或非0正数
C.只能是整型或字符型数据D.可以是任何类型数据
●以下程序段输出结果是(C)。
intx=3;
do{printf(“%3d”,x-=2);
}while(!
(--x));
A.1B.30C.1-2D.死循环
●有定义”inta=5;”,语句”a+=a-=a+a;”,执行后,变量a的值为(C)。
A.10B.5C.-10D.-5
●下列各语句中,能够将变量u、s中最大值赋给变量t的是(C)。
A.if(u>s)t=u;t=s;B.t=u;if(u>s)t=s;
C.t=s;if(u>s)t=u;D.if(u>s)t=s;elset=u;
●下列可以正确表示字符型常量的是(B)。
A.“a”B.’\t’C.”\n”D.18
●执行x=(6*7%8+9)/3;后,x的值为(C)。
A.1B.2C.3D.4
●设in