德州学院二级C语言期末复习题.docx

上传人:b****6 文档编号:8470102 上传时间:2023-01-31 格式:DOCX 页数:18 大小:32.81KB
下载 相关 举报
德州学院二级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

德州学院二级C语言期末复习题

C语言练习题

一、单项选择题

1.以下选项中合法的标示符是()

A.1_1B.1-1C._11D.1__

2.若有以下类型说明语句:

chara;intb;floatc;shortintd;

则表达式(c*b+a)*d的结果类型是()。

A.charB.intC.doubleD.float

3.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为()。

A.算术运算、赋值运算、关系运算B.关系运算、赋值运算、算术运算

C.算术运算、关系运算、赋值运算D.关系运算、算术运算、赋值运算

4.多重if_else语句嵌套使用时,寻找与else配套的if方法是()。

A.缩排位置相同的if

B.其上最近的if

C.下面最近的if

D.同行上的if

5.有以下程序,其运行后的输出结果是()。

main()

{intx=1,y=2; 

x=x+y,y=x-y;x=x-y;

printf("x=%d,y=%d\n",z);

}

A.12B.1,2C.0,1D.2,1

6.有以下程序,其中%u表示按无符号整数输出

main()

{unsignedshortx=0xFFFF; 

printf("%u\n",x);

}

程序运行后的输出结果是()。

A.-1B.65535C.32767D.0xFFFF

7.以下合法的c语言语句是(B)。

A.x=int(x+0.5);B.++k;C.a=b=0D.a=1,

8.下面有关for循环的正确描述是(D)。

A.for循环只能用于循环次数已经确定的情况。

B.for循环是先执行循环体语句,后判断表达式。

C.在for循环中,不能用break语句跳出循环体。

D.for循环的循环体语句,可以包含多条语句,但必须用花括号括起来。

9.有以下程序,其运行后的输出结果是(C)。

main()

{intx=1,y=2,z; 

z=x/y;

printf("%d\n",z);

}

A.1/2B.0.5C.0D.1

10.下列对字符串的操作正确的是(C)。

A.charc[3][4]={"ABCD"};B.charc[4]={'A','B','C','D'};

C.charc[4];scanf("%s",c);D.charc[4];c="ABCD";

11.若有说明inta[3][4];则对其数组元素的正确引用是(A)。

A.a[2][1+2]B.a

(2)(3)C.a[2,3]D.a[3][4]

12.在C语言程序中,以下正确的描述是(A)。

A.函数的定义可以嵌套,但函数的调用不可以嵌套。

B.函数的定义不可以嵌套,但函数的调用可以嵌套。

C.函数的定义和函数的调用均不可以嵌套。

D.函数的定义和函数的调用均可以嵌套。

13.执行下面程序的正确结果是( )。

main( )

{ float a=1.9;

switch(a)

{ case 0:

 printf("0000");

case 1:

 printf("1111");

case 2:

 printf("2222");

}

printf("%f",a);}

A.1.900000B. 111122221.900000

C. 22221.900000D. 0000111122221.900000

14.若用数组名作为函数调用的实参,传递给形参的是(A)。

A.数组的首地址B.数组第一个元素的值

C.数组中全部元素的值D.数组元素的个数

15.以下叙述中错误的是()

A.计算机不能直接执行用C语言编写的源程序。

B.C程序经编译程序编译后,生成后缀为.obj的文件是一个二进制文件。

C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件。

D.后缀为.obj和.exe的二进制文件都可以直接运行。

16.2.执行以下程序段后,w的值为()

intw=’A’,x=14,y=15;

w=((x||y)&&(w<’a’);

A.-1B.NULLC.1D.0

17.3.若有说明语句:

intw=1,x=2,y=3,z=4;

18.则表达试w>x?

w:

z>y?

z:

x的值是()。

A.4B.3C.2D.1

19.4.若变量已正确定义,语句“if(a>b)k=0;elsek=1;”和()等价。

A.k=(a>b)?

1:

0;B.k=a>b;

C.k=a<=b;D.a<=b?

0:

1;

20.若有定义:

intx=5,*p=&x;,则语句printf("%d\n",*p);的输出结果是(B)。

A.随机值B.5C.x的地址D.p的地址

21.以下判断两个字符串相等的正确方法是()。

A. if(str1=str2)B. if(str1==str2)

C. if(strcpy(str1,str2)=0)D.if(strcmp(str1,str2)==0)

22.设变量已正确定义并赋值,以下正确的表达式是()。

A.int(6.3%2)B.x=z*5=3C.i=j+5,++jD.k=20%3.0

23.有以下程序

#include

main()

{inti=5;

do

{if(i%3==1)

if(i%5==2){printf("*%d",i);break;}

i++;

}while(i!

=0);

printf("\n");

}程序运行结果是()

A.*7B.*3*5C.*2*6D.*5

24.有下列程序:

voidswap1(intc1[],intc2[])

{intt;

t=c1[0];c1[0]=c2[0];c2[0]=t;

}

voidswap2(int*c1,int*c2)

{intt;

t=*c1;*c1=*c2;*c2=t;

}

main()

{inta[2]={1,2},b[2]={3,4};

swap1(a,a+1);swap2(&b[0],&b[1]);

printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);

}

程序运行后的输出结果是()

A.1234B.2143C.2341D.1324

25.若有定义inta[]={1,2,3},b[3]={1,2,3};,表达式a==b的结果是(A)。

A.不能比较B.结果为真C.结果不确定D.结果为假

26.有定义:

inta=4,b,*p=&b,*q=&a;,以下赋值语句中与b=a;语句等价的是()。

A.*p=*q;B.p=q;C.*p=&a;D.p=*q;

27.有下列程序:

voidsum(inta[])

{a[1]=a[0]+a[2];

}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10};

sum(&a[2]);

printf("%d\n",a[2]);

}

程序运行后的输出结果是()

A.6B.7C.3D.9

28.定义structp{intx;chary[10];}p1;,则下列正确的赋值是(C)。

A.p1.y="sun"B.p1->y="sun"

29.C.strcpy(p1.y,"sun")D.p1.strcpy(y,"sun")

30.若调用一个函数,且此函数中没有return语句,则正确的说法是()。

A.该函数没有返回值

B.返回若干个系统默认值

C.能返回一个用户所希望的函数值

D.返回一个不正确的值

31.指针是一种()。

A.标识符B.变量C.运算符D.内存地址

32.有下列程序:

main(intargc,char*argv[])

{intn=0,i;

for(i=1;i

printf("%d\n",n);

}

编译连接后生成可执行文件tt.exe。

若运行时输入以下命令行

tt12345678

程序运行后的输出结果是()。

A.12B.12345C.12345678D.136

33.给出语句xxx.yyy.zzz=10;,下面正确的是()。

A.结构yyy嵌套在结构xxx中B.结构zzz嵌套在结构yyy中

C.结构xxx嵌套在结构yyy中D.结构xxx嵌套在结构zzz中

34.下面程序执行后k的值为(D)。

int a=1,b=2,c=3,d=4,k;

k=a>b?

a:

c>d?

c:

d

A.1B.2C.4D.4

35.有以下程序,其运行后的输出结果是(C)。

main()

{intx=1,y=2,z; 

z=x/y;

printf("%d\n",z);

}

A.1/2B.0.5C.0D.1

36.设变量已正确定义,以下不能统计出一行中输入字符个数的是(D)。

A.n=0;while((ch=getchar())!

=′\n′)n++;B.n=0;while(getchar()!

=′\n′)n++;

C.for(n=0;getchar()!

=′\n′;n++);D.n=0;for(ch=getchar();ch!

=′\n′;n++);

37.有以下定义:

inta[]={0,1,2,3,4};

charc1='b',c2='1';

则数值为3的表达式是(B)。

A.a[2]B.'e'-c1C.a[4-c2]D.c2+1

38.有以下定义:

charc1="abcdef";

charc2={'a','b','c','d','e','f'};

则正确的叙述是(C)。

A.数组c1和数组c2等价。

B.数组c1和数组c2的长度相等。

C.数组c1的长度大于数组c2的长度。

D.数组c1的长度小于数组c2的长度。

39.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。

A.float型B.int型

C.long型D.double型

40.#include

main()

{charp[20]={‘a’,’b’,’c’,’d’},q[]=”abc”,r[]=”abcde”;

strcpy(p+strlen(q),r);strcat(p,q);

printf(”%d%d\n”,sizeof(p),strlen(p));

}程序运行后的输出结果是()

A.209B.99C.2011D.1111

41.以下正确的说法是()

如果在一个函数中的复合语句中定义了一个变量,则该变量

A.只在该复合语句中有效B.在该函数中有效

C.在本程序范围内均有效D.为非法变量

42.以下正确的函数形式是()

A.doublefun(intx,inty)

{z=x+y ;returnz ;}

B.fun(intx,y);

{intz ;returnz ;}

C.fun(x;y)

{intx,y ;doublez ;z=x+y ;returnz ;}

D.doublefun(intx,inty)

{doublez ;z=x+y ;returnz ;}

43.若有定义inta[][3]={1,2,3,4,5,6};,下面()能访问元素5。

A.A[4]B.a[0]+4C.**a+4D.*(&a[0][0]+4)

44.若有chars[10],*p=s;,则下面表达式正确的是()

A.s=p+s;B.p=s[0]+10;C.s[2]=p[4];D.p=s[0];

45.定义unions{intw,x,y,z;charc[6];};,则sizeof(unions)=()

A.2B.6C.8D.14

46.C语言规定,函数返回值的类型是由()。

A.return语句中的表达式类型所决定。

B.调用该函数时的主调函数类型所决定。

C.调用该函数时系统临时决定。

D.在定义该函数时所指定的函数类型所决定。

47.设已有定义:

intx;,则下列对指针变量p进行定义且赋初值的语句中正确的是()。

A.int*p=1024;B.int*p=(int)x;C.intp=&x;D.int*p=&x;

48.有下列程序:

floatf1(floata)

{returna*a;

}

floatf2(floatb)

{return3*b;

}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(3.0));

t=p1;p1=p2;p2=t;

y2=p2(p1(3.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

程序运行后的输出结果是(B)。

A.27,8B.27,81C.2,8D.2,81

49.定义typedefstruct{intx;}A[10];Aa;,下面正确的是(B)。

A.a.x=30;B.a[0].x=30;C.a.A[0].x=30;D.A[0].x=20;

50.结构化程序设计的基本原则不包括()。

A.多元性B.自顶向下

C.模块化D.逐步求精

51.若函数中有定义语句:

intk;,则()

A.系统将自动给k赋初值0B.这时k中的值无定义

C.系统将自动给k赋初值-1D.这时k中无任何值

52.以下不能定义为用户标识符的是()。

A.MainB._0C._intD.sizeof

53.  下列运算符中,优先级最低的是()。

A.*B.!

=C.+D.=

54.若有以下类型说明语句:

chara;intb;floatc;shortintd;

则表达式(c*b+a)*d的结果类型是()。

A.charB.intC.doubleD.float

55.有以下程序,程序的运行结果是()。

#include

voidmain()

{intx=8;

for(;x>0;x--)

{if(x%3){printf("%d,",x--);continue;}

printf("%d,",--x);

}

}

A.7,4,2B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,

56.有以下程序

#include

voidmain()

{inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;

for(i=0;i<3;i++)

for(k=i+1;k<4;k++)if(a[i][i]

for(i=0;i<4;i++)printf("%d,",a[0][i]);

}程序运行后的结果是()。

A.6,2,1,1,B.6,4,3,2,C.1,1,2,6,D.2,3,4,6,

57.有以下程序

#include

voidmain()

{inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j,k,t;

for(i=0;i<4;i++)

for(j=0;j<3;j++)

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}

for(i=0;i<4;i++)printf("%d,",a[i][i]);

}程序运行后的结果是()。

A.1,6,11,16,B.1,7,11,12,C.1,7,11,13,D.1,6,2,11,

58.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。

A.auto和registerB.extern和registerC.auto和staticD.static和register

59.有以下程序,输出结果是()。

#include

voidfun(inta,intb,intc)

{a=456;b=567;c=678;}

voidmain()

{intx=10,y=20,z=30;

fun(x,y,z);

printf("%d,%d,%d",x,y,z);

}

A.30,20,10B.10,20,30C.456,567,678D.678,567,456

60.下列程序的输出结果是()。

voidmain()

{inta[2][3],*p,i;

p=&a[0][0];

for(i=0;i<6;i++)p[i]=i;

for(i=0;i<3;i++)printf("%d",a[1][i]);

}

A.123B.345C.234D.245

61.若有chars[10],*p=s;,则下面表达式正确的是()。

A.s=p+s;B.p=s+10;C.s[2]=p[4];D.p=s[0];

62.关于结构类型的成员类型,下列说法正确的是()。

A.成员类型必须是基本数据类型B.每个成员类型必须为同一种

C.成员不可以定义为自身类型的指针D.以上说法均不正确

63.若运行时给变量x输入12,则以下程序的运行结果是()。

main()

{

    int x,y;

    scanf("%d",&x);

    y=x>12?

x+10:

x-12;

    printf("%d\n",y);

}

A.0B.22C.1D.2

 

二、填空题

1.算法具有有穷性、可行性、确定性、、输出等5个主要特征。

2.设A为int型的一维数组,如果A的首地址为p,那么A中第i个元素的地址为。

3.人们根据特定的需要,预先为计算机编制的指令序列称为。

4.若以指数形式输出一个浮点数,则对应的格式控制字符为。

5.设变量i已正确定义为整型,且初值为0,则printf(“%d,%”,i++,i++)的输出结果是。

6.设有变量定义为inta[3]={1,4,7},*p=&a[2];,*p的值是。

7.结构变量可以作为函数的参数和返回值类型,以方式传递参数。

8.结构指针是结构变量的内存地址,保存该指针的变量称为。

9. 逻辑运算的值也为“真”和“假”两种,在C语言中“真”用,“假”用0来表示。

10.for(i=0;;i++);如果此for语句要执行10次,则需要在空白处填写。

11.若k为整型变量,则下面while循环执行的次数为:

k=10;

while(k==0)k=k-1;

12.若有定义:

intk;,以下程序段的输出结果是。

for(k=2;k<6;k++,k++)printf("##%d",k);

13.有以下定义:

floatb[20];

则数组b共有20个元素,其中的第一个元素为b[0],最后一个元素为。

14.若有定义:

intk;,以下程序段的输出结果是。

for(k=2;k<6;k++,k++)printf("##%d",k);

15.for(i=0;i<10;i++);结束后,i的值是。

16.对定义语句chars[]="abcd";则数组的长度是。

17.函数调用语句“f((e1,e2),(e3,e4,e5))”中参数的个数是。

18.在C语言中,一个函数一般由两个部分组成,它们是函数头和。

19.根据变量作用域的不同可以将变量分为局部变量和。

20.指针是C语言的重要特色,实际上它代表了机器的。

21.结构类型的定义需要以关键字开始,其关键字为。

22.for(i=0;i<10;i++);结束后,i的值是。

23.for(i=0;;i++);如果此for语句要执行10次,则需要在空白处填写。

24.有以下定义:

floatb[20];

则数组b共有个元素,

25.在C语言中,递归函数分为直接递归和。

26.有定义intarr[10]={0,1,2,3,4,5,6,7,8,9},*p,i=2;若执行语句:

p=arr;

printf(“%d”,*(p+i));

输出结果为:

27.结构数组是以为基类型的数组,下标运算可以访问每个结构元素。

28.指针变量虽然都是存放指针,但不同。

29.使用结构中成员变量必须先写上结构变量名,中间以分割。

30.若有定义:

intk;,以下程序段的输出结果是。

for(k=2;k<6;k++,k++)printf("##%d",k);

31.有以下定义:

floatb[20];

则数组b共有20个元素,其中的第一个元素为,最后一个元素为b[19]。

32.变量的存储类型有、static、register和extern四种。

33.在C语言中,递归函数分为直接递归和。

34.指针变量虽然都是存放指针,但不同。

35.使用结构中成员变量必须先写上结构变量名,中间以分割。

三、分析程序结果

1.以下程序的输出结果为。

#include

main()

{intn=12345,d;

while(n!

=0){d=n%10;printf("%d",d);n/=10;}

}

2.以下程序的输出结果为。

#include"stdio.h"

main()

{inti,a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

for(i=0;i<3;i++)printf("%d,",a[i][i]);

}

3.以下程序的输出结果

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

当前位置:首页 > PPT模板 > 卡通动漫

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

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