C语言复习题文档格式.docx

上传人:b****5 文档编号:20657522 上传时间:2023-01-24 格式:DOCX 页数:18 大小:27.95KB
下载 相关 举报
C语言复习题文档格式.docx_第1页
第1页 / 共18页
C语言复习题文档格式.docx_第2页
第2页 / 共18页
C语言复习题文档格式.docx_第3页
第3页 / 共18页
C语言复习题文档格式.docx_第4页
第4页 / 共18页
C语言复习题文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言复习题文档格式.docx

《C语言复习题文档格式.docx》由会员分享,可在线阅读,更多相关《C语言复习题文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

C语言复习题文档格式.docx

printf(%dn,s);

A)18B)19C)20D)219、设有以下宏定义:

()#defineN3#defineY(n)(N+1)*n)则执行语句:

z=2*(N+Y(5+1);

后,z的值为:

A)出错B)42C)48D)5410、下列程序执行后输出的结果为:

()f(inta)staticintb,c=3;

b=+c;

return(a);

main()inta=2,j,k;

for(j=0;

j2;

j+)k=f(a);

A)4B)0C)6D)511、下列程序语句的输出是:

()intn=0;

while(n+=2);

printf(%d,n);

(A)2(B)3(C)4(D)有语法错误12、下列程序语句的输出是:

()inta=011;

printf(%dn,+a);

(A)12(B)11(C)10(D)913、执行语句for(i=1;

i+4;

);

后,变量i的值是:

()(A)3(B)4(C)5(D)不确定14、定义intx=0,y=8,z=9后,则下面表达式的值为0的是:

()(A)x&

y(B)x=y(C)x|y+z&

y-z(D)!

(xy)&

!

z|1)15、对下述程序段描述正确的是:

()intk=0;

while(k=1)k+;

A)有语法错误,不能执行B)循环是无限的C)循环体语句一次也不能执行D)循环体语句执行一次16、下述程序的运行结果是:

()#includestdio.hmain()inti;

i=5;

i+)if(i%2)printf(*);

elsecontinue;

printf(#);

printf($n);

(A)*#*#*#$(B)#*#*#*$(C)*#*#$(D)#*#*$17、下述程序的输出结果是:

()#includestdio.hintx;

voidfun();

voidmain()intx=1;

if(x=1)intx=2;

printf(%d,x+);

externintx;

printf(%d,+x);

fun();

voidfun()printf(%d,x+);

A)2,1,1B)1,2,1C)2,2,2D)2,2,118、下面对宏定义的描述,不正确的是:

()A)宏不存在类型问题,宏名无类型,它的参数也无类型B)宏替换不占用运行时间C)宏替换是先求出实参表达式的值,然后代入形参运算求值D)其实,宏替换只不过是字符替代而已19、以下程序的输出结果是:

()#includeintfunc(inta,intb);

voidmain()intk=4,m=1,p;

p=func(k,m);

printf(%d,p);

intfunc(inta,intb)staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

A)8,17B)8,16C)8,20D)8,820、若有说明:

inta3=1,2,3,4,5,6,7;

则a数组第一维的大小是:

()(A)2(B)3(C)4(D)无确定值19、下列程序段执行后,s的值为:

()charch=”600”;

inta,s=0;

for(a=0;

cha=0&

cha3;

j-)if(j%3)j-;

-j;

printf(“%d”,j);

a)63b)74c)62d)7324、下列程序段的输出结果为()intx=3;

doprintf(“%3d”,x-=2);

while(!

(-x);

a)1b)30c)1-2d)死循环25、设变量已正确定义并赋值,则符合C语言语法的表达式是:

()(A)a=a+5;

(B)a=b=c+(C)int(34.5%5)(D)a=a+8=b-c26、下列程序段的运行结果是:

(A)2(B)3(C)4(D)有语法错误27、若有说明:

inta34;

则对a数组元素的正确引用是:

()(A)a24(B)a1,3(C)a1+10(D)a

(2)

(1)45、针对以下程序段,说法正确的是()inta=5,b=0,c=0;

if(a=b+c)printf(*);

elseprintf(&

(A)有语法错误不能通过编译(B)可以通过编译但不能通过连接(C)输出*(D)输出&

28、执行下面的程序段后,a的值为()inta,b;

for(a=1,b=4;

a=23)break;

if(b%3=1)b+=3;

continue;

b-=5;

(A)7(B)8(C)9(D)1029、以下描述中错误的是()(A)函数调用可以出现在执行语句中(B)函数调用可以出现在表达式中(C)函数调用可以作为函数的实际参数(D)函数调用可以作为函数的形式参数30、以下程序的输出结果是()#defineADD(x)x+xmain()intm=1,n=2,k=3;

intsum=ADD(m+n)*k;

printf(sum=%d,sum);

(A)sum=9(B)sum=10(C)sum=12(D)sum=1831、以下程序的输出结果是()voidfun(inta,intb,intc)a=456;

b=567;

c=678;

main()intx=10,y=20,z=30;

fun(x,y,z);

printf(“%d,%d,%d”,z,y,x);

(A)30,20,10(B)10,20,30(C)456,567,678(D)678,567,45632、下面程序应能对两个整型变量的值进行交换。

以下说法正确的是()main()inta=10,b=20;

printf

(1)a=%d,b=%dn,a,b);

swap(&

a,&

b);

printf

(2)a=%d,b=%dn,a,b;

swap(intp,intq)intt;

t=p;

p=q;

q=t;

(A)该程序完全正确(B)该程序有错,只要将语句swap(&

中的参数改为a,b即可(C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针变量即可(D)以上说法都不正确33.执行下面的程序段后,a的值为:

inta,b;

for(a=1,b=1;

a=20)break;

A.7B.8C.9D.1034.该程序的输出结果是多少?

#includemain()inti,j,x=0;

i2;

i+)x+;

j=3;

j+)if(j%2)continue;

x+;

printf(x=%dn,x);

A.x=4B.x=8C.x=6D.x=1235.下面这个程序的输出是什么?

#includemain()inty=10;

while(y-);

printf(y=%dn,y);

A.y=0B.while构成死循环C.y=1D.y=-136C语言可执行程序从什么地方开始执行?

A.程序中第一条可执行语句B.程序中第一个函数C.程序中的main函数D.包含文件中的第一个函数37.以下对C语言函数的有关描述中,正确的是:

A.在C中,调用函数时,只能把实参的值传给形参,形参的值不能传给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中38.以下叙述中不正确的是:

A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容C.在C中,全局变量的隐含类别是自动存储类别D.在C中,函数形参可以说明为register变量39、表示关系x=y=z的c语言表达式为:

()a)(x=y)&

(y=z)b)(x=y)AND(y=z)c)(x=y=z)d)(x=y)&

(y=z)40、假定a和b为int型变量,则执行以下语句后b的值为:

()a=2;

b=8;

dob-=a;

a+;

while(b-0|a0B.aC.!

a=0D.!

a15.若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算?

A.f=(f*100+0.5)/100.0B.i=f*100+0.5,f=i/100.0;

C.f=(int)(f*100+0.5)/100.0;

D.f=(f/100+0.5)*100.0;

16.请选择您认为正确的说法。

A.在C语言中,函数可以嵌套定义。

B.程序中的注释部分可有可无,通常可以省略。

C.在函数中,只能有一条return语句。

D.C程序中,编译程序会检查数组下标是否越界。

E.在C程序中,ABC和abc是两个不同的变量。

F.在C语言中,函数中的变量可以赋初值,每调用一次该函数,就赋一次初值。

G.C语言中不能对数组名进行加减和赋值运算。

17.下面各语句行中,不能正确进行赋字符串操作的语句行是A.chars10;

scanf(%s,&

s);

B.charst45=ABCDE;

C.chars5=A,B,C,D,E;

D.chars50;

s=ABCDE;

18.不合法的数组定义是A.inta=string;

B.inta5=0,1,2,3,4,5;

C.vhsts=string;

D.chara=0,1,2,3,4,5;

19.指出下面哪些是保留字:

A.charB.abcC.printfD.IntE.floatF.defineG.includeH.PI20.指出下面哪些是合法的用户定义的标识符?

A.P-SB.putcharC.doubleD._908E.*parF.sheep!

G.windH.xy21.C语言的基本类型哪些:

A.整型B.枚举型C.数组型D.指针型E.字符型F.构造型G.实形H.空类型22.这段程序中的常量有:

#definePI3.14voidmain()intsum;

sum=10+15;

printf(sum=%dn,sum);

printf(resultis25n);

这段程序中常量有:

A.10B.sumC.15D.25E.mainF.PI23.C语言的主要特点有哪些?

A.简洁、紧凑,使用方便、灵活,易于学习和应用。

B.语言是面向结构化程序设计的语言。

C.语言允许直接对位、字节和地址进行操作。

D.数据类型丰富。

E.语言生成的目标代码质量高。

24、以下说法正确的有:

A输入项可以为一个实型常量,如scanf(%f,3.5);

B只有格式控制,没有输入项,就不能进行正确输入,如scanf(a=%d,b=%d);

C当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f,&

f);

D当输入数据时,必须指明变量的地址,如scanf(%f,&

25、以下叙述中正确的有()(A)预处理命令行都必须以#号开始(B)在程序中凡是以#号开始的语句行都是预处理命令行(C)C程序在执行过程中对预处理命令行进行处理(D)以下是正确的宏定义#defineIBM_PCpc#326、以下正确的叙述有()(A)C语言的预处理功能仅仅是指完成宏替换和包含文件的调用(B)预处理命令只能位于C源程序文件的首部(C)一条预处理命令必须单独占一行(D)C程序中,编译预处理是在编译开始之前进行的三、填空题1、设a=3,b=4,c=5,则逻辑表达式a|b+c&

b-c的值是:

1。

2、语句printf(%5.3fn,123456.12345);

的输出为_123456.123__。

11。

inti=0,sum=1;

dosum+=i+;

while(i(y)?

(x):

(y)main()inta=5,b=2,c=3,d=3,t1,t2;

t1=MAX(a+b,c+d)*10;

t2=MAX(c+d,a+b)*10;

printf(t1=%d,t2=%d,t1,t2);

6、要使以下程序段输出3个整数,请填入一个整数:

for(j=1;

j=7(7-14都可以);

printf(“%dn”,j+=j+);

7、下面程序段是找出整数的所有因子(包括1和整数本身),请填空:

scanf(%d,&

x);

i=1;

for(;

i=x;

)if(x%i=0)printf(%3d,i);

i+8、函数fun的功能是:

使一个字符串按逆序存放,请填空voidfun(charstr)charm;

inti,j;

for(i=0,j=strlen(str);

ij-1;

i+,j-)m=stri;

stri=strj-1;

strj-1=m;

printf(%sn,str);

9、设x和y均为int型变量,且x=1,y=2;

则表达式1.0+x/y的值为1.0。

10、设i,j,k均为int型变量,则执行完下列for循环:

for(i=0,j=10;

i=j;

i+,j-)k=i+j;

之后,k的值为10。

11、若输入字符串:

abcde,则以下while循环体将执行0次。

while(ch=getchar()=e)printf(*);

12、下面程序段统计从键盘输入的字符中数字字符的个数,换行符结束,请填空intn=0;

charc;

c=getchar();

while(c!

=n)if(c=0&

c=9)n+;

13、若定义:

inta34=1,2,0,4,6,8,10;

则初始化后,a12得到的值是:

0;

a21得到的值是:

6。

14、若x为int型变量,则执行以下语句x=7;

x+=x-=x+x;

后x的值是:

-14。

15、TurboC环境中,用RUN菜单中的RUN命令运行C程序的快捷键是Ctrl+F9。

16、若有定义:

inta=2,4,6,8,10,12,*p=a;

则*(p+1)的值是4,*(a+5)的值是12。

17、若已知a=7,b=3,c=0,则表达式a+b|c的运算结果是1。

18、条件“2x3或者x-10”的C语言表达式是:

2&

X3|x-10。

19、若变量a、b为int型,以下语句可以不借助任何变量把a、b的值交换,请填空:

a+=b;

b=a-b;

a-=b;

20、以下程序的输出结果是12。

inta10,i,k=0;

i4;

i+)k+=ai+i;

printf(%dn,k);

21、以下程序中for语句的循环体被执行的次数为:

#defineN2#defineMN+2#defineNUM2*M+1main()inti;

iNUM;

i+)printf(%dn,i);

22、下面程序段是找出整数的所有因子(包括1和整数本身),请填空:

(15);

i+23、下述程序的功能是查找数组中元素的最大值输出,请填空完成。

#defineA10main()intaA;

intmax,i;

#ifA=10for(i=0;

iA;

i+)ai=10+i;

#elsefor(i=0;

i+)scanf(%d,&

ai);

#endifmax=a0;

i+)if(maxai)max=ai;

printf(Max=%dn,max);

24、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。

#includemain()inta23=1,2,3,4,5,6;

intb32,i,j;

prntf(arrarya:

n);

J=2;

j+)printf(%5d,aij);

Bji=aij;

printf(n);

printf(arrayb:

i=2;

j=1;

j+)printf(%5d,bij);

25、若a是int型变量,则表达式(a=4*5,a*2),a+6)的值为26;

若a是int型变量,且a的初值为6,则表达式(a+=a-=a*a)计算后a的值为-60。

26、读懂程序并填空。

#includevoidmain()charch=0x31;

printf(%dn,ch);

/屏幕显示49printf(%on,ch);

/屏幕显示64printf(%cn,ch);

/屏幕显示127、执行下面程序段后,k的值是36。

k=1;

n=263;

dok*=n%10;

n/=10;

while(n);

29、设有以下程序,为使之正确运行,请在下面的横线处填入应包含的命令行。

#include#includemain()printf(n);

try_me();

/*函数调用*/printf(n);

注:

try_me()函数在myfile.txt中有定义,其内容如下:

/*myfile.c*/try_me()charc;

if(c=getchar()!

=n)try_me();

putchar();

四、判断题判断题:

(F)1、(n+1)+是一个正确的表达式。

(F)2、若有说明intc;

则while(c=getchar();

是错误的C语句。

(F)3、break语句只能用于for循环。

(F)4、使用continue和break语句,都可以使得C程序的执行直接从循环中跳出。

(T)5、C语言不支持动态数组。

(T)6、在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。

(T)7、C程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。

(T)8、内部静态变量有隐含初值。

(F)9、一个C程序的执行是从本程序的main函数开始,到本程序文件的最后一个函数结束。

(T)10、一个函数通过其他函数间接的调用了自身,这种情况也是一种递归调用。

(F)11、在对一个C程序进行编译的过程中,可以发现注释中的错误。

(T)12、continue语句不能作用于switch语句。

(F)13、for循环只能用于循环次数已经确定的情况。

(F)14、C语言认为变量number和NuMbEr是相同的。

(F)15、do-while循环中,根据情况可省略while。

(F)16、形参可以是常量、变量或表达式。

(T)17、若return语句指定的返回值类型与函数值的类型不一致,则以函数值的类型为准。

(F)18、若用数组名作函数的实参,则传递给形参的是数组中全部元素的值。

(F)20、设有数组定义intdata5=1,2,3,4,5;

则data5的值为5。

(F)21、Printf()函数总是从新行的起始位置开始打印。

(F)22、在申明变量时必须给出变量的类型。

(F)23、打印三行输出的C语言程序必须用三条printf语句。

(F)24、switch选择结构中必须有default子句。

(T)25、所有的变量在使用前都必须予以申明。

(T)26、求余运算符%只能用于两个整数操作数。

(F)27、如果xy或ay&

ab)为真。

(F)31、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值。

(F)32、putchar函数可以向终端输出一个字符串。

(F)33、库函数中,puts函数是无参函数。

(F)35、C语言中,for语句和do-while语句实现当型循环结构。

五、编程题1、用冒泡法对10个整数排序(由小到大),要求排序操作用函数调用实现。

2、用选择法对10个整数排序(由小到大),要求排序操作用函数调用实现。

3、将一个二维数组行和列的元素互换,存放到另一个二维数组中。

如:

a=12314456b=25364、分别用函数和带参的宏,从三个数(要求从键盘输入三个数)中找出最大数。

5、将一个数组中的值按逆序存放。

例如原来顺序为:

8、6、10、5、2。

要求改为:

2、5、10、6、8。

如有侵权请联系告知删除,感谢你们的配合!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1