C语言程序设计期末复习题.docx
- 文档编号:26447473
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:59
- 大小:52.97KB
C语言程序设计期末复习题.docx
《C语言程序设计期末复习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末复习题.docx(59页珍藏版)》请在冰豆网上搜索。
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
●设inta=3,b=6,c=9;,下列表达式中值为0的是(D)。
A.2*a<=bB.a&&bC.(3*a-c)||bD.b-a ●下列语句中,哪一个可以输出26个大写英文字母(D)。 A.for(a=‘A’。 a<=‘Z’。 printf("%c",++a))。 B.for(a=‘A’。 a<‘Z’。 a++)printf("%c",a)。 C.for(a=‘A’。 a<‘Z’。 printf("%c",++a))。 D.for(a=‘A’。 a<=‘Z’。 printf("%c",a++))。 ●下列(C)是c语言中的常量。 A.e+2B.068C.‘\x41’D.π ●下列(C)表达式的值等于0。 A.2%5B.1/2.0C.10>5>3D.! (‘a’-97) ●设有定义doublex=2.4,y=3.56。 ,则表达式(int)x+y的值为(A)。 A.5.56B.5.4C.5D.6 ●设有语句intn=10,i=4。 ,则语句n%=i+1。 执行后,n的值是(A)。 A.0B.1C.2D.3 ●下列语句将大写字母转换为小写字母,其它字符不变,其中正确的是(B)。 A.if(ch>=‘A’||ch<=‘Z’)ch=ch+32; B.if(ch>=‘A’&&ch<=‘Z’)ch=ch+32; C.ch=(ch>=‘A’&&ch<=‘Z’)? ch+32: ‘‘; D.ch=(ch>‘A’&&ch<‘Z’)? ch+32: ch; ●设有定义inta=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 ●若有inti。 ,执行语句for(i=1。 i++<4。 )。 后变量i的值是(C)。 A.3B.4C.5D.不确定 ●程序段intn=10。 while(n>7){n--。 printf("%d",n)。 }的输出结果是(D)。 A.109B.98C.1098D.987 ●执行下面程序段,若从键盘输入33后,其输出结果是(D)。 intx。 scanf(“%d”,&x)。 if(x>60)printf(“%d”,x)。 elseif(x>30)printf(“%d”,x)。 elseif(x>20)printf(“%d”,x)。 A.333333B.3333C.33D.33 33 33 ●设有函数调用语句: m=max(a,max(b,c))。 则函数max有(C)个实参 A.1B.4C.2D.0 ●程序中调用了库函数strlen,必须包含头文件(D)。 A.stdlib.hB.math.hC.ctype.hD.string.h ●下列数组s中所存放字符串的长度为(B)。 chars[]="a\127b\\\tcd\xdg\n"。 A.9B.10C.11D.18 ●下列能正确定义一维数组a的语句是(D)。 A.inta(20)。 B.intn=20,a[n]; C.intn;scanf("%d",&n);D.#definen20 inta[n];inta[n]; ●若有inta[8]={1,9,8,0,4,2,5,3}。 则数值为2的表达式是(C)。 A.*aB.a[6]C.*a+1D.*(a+1)+5 ●下列程序段的运行结果为(B)。 chars[]="mn\0gy"。 printf("%s",s)。 A.mn0B.mnC.MngyD.mngy ●若有定义chars[8]="broke",*ps=s。 则不能代表字符k的表达式是(A)。 A.ps+3B.s[3]C.ps[3]D.*(ps+3) ●下面的程序段中循环体执行次数(B)。 chara[5],*t="Boy",*s=t。 inti=0。 while(*s! =‘\0’){a[i]=*s。 s++。 } A、4次B、3次C、0次D、无数次 ●对变量定义及初始化为: FILE*p=fopen("d: \\aa.txt","r")。 intx。 floata。 chars;能正确的将文件中的整数、实数、字符输入到各变量的是(D)。 A、fgets(x,a,s,p)。 B、fprintf(p,”%d,%f,%c”,x,a,s)。 C、fgetc(x,a,s,p)。 D、fscanf(p,”%d,%f,%c”,&x,&a,&s)。 ●函数定义如下: voidfun(intx,inty,int*a,int*b) {*a=x+y。 *b=x*y。 } 能够正确调用fun函数的是(B)。 其中m、n是已经定义过的int型变量。 A、fun(5,8,m,n)。 B、fun(5,8,&m,&n)。 C、fun(5,8,*m,*n)。 D、fun(m,n,5,8)。 ●定义chars[4]={"Max"},t。 执行下面语句段后输出结果是(B)。 t=s[0]。 s[0]=s[2]。 s[2]=t。 printf("%s\n",s)。 A、MaxB、xaMC、axMD、xMa ●以下叙述不正确的是(B)。 A.main函数在C语言中必须有且只有一个 B.C程序的执行从main函数开始,所以main函数必须放在程序最前面 C.函数可以带参数,也可以不带参数 D.每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 ●在C程序中,若对函数返回类型未加说明,则函数的隐含类型为(A)。 A.intB.doubleC.voidD.char ●有一个函数调用f((1,2),3*4),则此次调用的是下面哪个函数f(B)? A.voidf(inta)。 B.voidf(inta,intb)。 C.voidf(inta,intb,intc)。 D.voidf(inta,intb,intc,intd)。 ●若有定义语句“inta[10]。 ”则下列对a中数组元素正确引用的是(C)。 A.a[10]B.a[2.5]C.a[5%2]D.a[5+6] ●下列哪个语句存在语法错误(C)? A.charc=‘A’。 B.charc[]="A"。 C.charc=‘AB’。 D.charc[]="AB"。 ●已知”chars[]=“ab\0cd”。 ”,则数组s的长度为(),s所存放的字符串的长度为()。 B A.6和5B.6和2C.5和2D.5和5 ●若有说明: inti,j=1,*p=&i。 则与i=j。 等价的语句是(B)。 A.i=*p。 B.*p=j。 C.i=&j。 D.p=&j。 ●有数组定义语句“chara[20]。 ”,则正确的输入语句为(D)。 A.scanf("%s",&a)。 B.scanf("%s",a[])。 C.gets(a[20])。 D.gets(a)。 ●p和q同为指向int类型的指针,则下面哪个表达式会导致语法错误? (A) A.p+qB.p-qC.p=qD.p==q ●下列语句定义p为指向double型变量x的指针,其中正确的是(B)。 A.doublex,*p=*x。 B.doublex,*p=&x。 C.double*p=&x,x。 D.doublex。 int*p。 p=&x。 ●已定义以下函数: intfun(int*p){return*p。 },fun函数返回值是(C)。 A.不确定的值B.形参p中存放的值C.一个整数D.形参p的地址值 ●下面程序的运行结果为(A)。 inta[]={1,2,3,4},*p=a。 printf("%d",*p++)。 ! ! ! ! ! printf("%d",*p)。 A.12B.11C.23D.22 ●若有定义: charstr[]=“ABCD”,*p=str。 则语句printf(“%d\n”,*(p+4))。 的输出结果是(B)(已知’A’的ASCII码为65)。 A.68B.0C.字符D的地址D.不确定的值 ●下面(C)语句是从文件中读取一个字符。 A.ch=getc()。 B.fputc(ch,fp)。 C.fscanf(fp,"%c",&ch)。 D.scanf("%c",&ch)。 ●以“只读”方式打开文本文件c: \1.txt,下列语句中哪一个是正确的(B)。 A.fp=fopen("c: \\1.txt","a")。 B.fp=fopen("c: \\1.txt","r")。 C.fp=fopen("c: \1.txt","wb")。 D.fp=fopen("c: \1.txt","r")。 ●已知数组的初始化语句为: inta[10]={1,2,3,4,5}。 则表达式a[5]的值为(D)。 A.5B.1C.不确定的值D.0 ●表达式“c=*p++”的执行过程是(A)。 A.复制*p的值给c后再执行p++B.复制*p的值给c后再执行(*p)++ C.复制p的值给c后再执行p++D.执行p++后将*p的值复制给c ●变量的指针,其含义是指该变量的(B)。 A.值B.地址C.名字D.一个标志 ●若有定义: chars[]="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)决定的。 A.调用该函数的主调函数类型B.return语句中的表达式类型 C.定义函数时所指定的返回函数值类型D.调用函数时临时 ●以下正确的函数说明是(A)。 A.intfun(int,int)。 B.intfun(intx,y)。 C.intfun(x,y)。 D.intfun(intx。 inty)。 ●在C语言中,下面关于数组的描述正确的是(C)。 A.数组的大小是固定的,但可以有不同类型的数组元素 B.数组的大小是可变的,但所有数组元素的类型必须相同 C.数组的大小是固定的,所有数组元素的类型必须相同 D.数组的大小是可变的,可以有不同的类型的数组元素 ●假定int类型变量占用4个字节,有定义: intx[10]={0,2,4}。 ,则数组x在内存中所占字节数是(D)。 A.3B.12C.10D.40 ●下列程序段执行后,s的值是(A)。 S=1s=10+2s=120+3 charch[]="123"。 inti,s=0。 for(i=0。 ch[i]>=‘0’&&ch[i]<=‘9’。 i++)s=10*s+ch[i]-’0’。 为 A.123B.1C.3D.6 ●要将20,30,40,50存入数组b中,下列正确的程序段是(A)。 A.inti,b[4]。 for(i=0。 i<4。 i++)b[i]=(i+2)*10。 B.intb[4]。 b={20,30,40,50}。 C.intb[4]。 b[1]=20,b[2]=30,b[3]=40,b[4]=50。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期末 复习题