《C语言程序设计》练习题.docx

上传人:b****5 文档编号:8386366 上传时间:2023-01-31 格式:DOCX 页数:21 大小:26.02KB
下载 相关 举报
《C语言程序设计》练习题.docx_第1页
第1页 / 共21页
《C语言程序设计》练习题.docx_第2页
第2页 / 共21页
《C语言程序设计》练习题.docx_第3页
第3页 / 共21页
《C语言程序设计》练习题.docx_第4页
第4页 / 共21页
《C语言程序设计》练习题.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》练习题.docx

《《C语言程序设计》练习题.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》练习题.docx(21页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》练习题.docx

《C语言程序设计》练习题

一、选择题(在A、B、C、D中选择一个正确的)

1、以下叙述不正确的是()。

A、一个C源程序可由一个或多个函数组成

B、一个C源程序必须包含一个main函数

C、C程序的基本组成单位是函数

D、在C程序中,注释说明只能位于一条语句的后面

2、C语言规定:

在一个源程序中,main函数的位置()。

A、必须在最开始

B、必须在系统调用的库函数的后面

C、可以任意

D、必须在最后

3、一个C程序的执行是从()。

A、本程序的main函数开始,到本程序main函数结束

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C、本程序的main函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main函数结束

4、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。

A、必须为字母B、必须为下划线

C、必须为字母或下划线D、可以是字母、数字和下划线中任一种字符

5、在计算机内部用来传送、存储、加工处理的数据或指令都是以()形式表示的。

A、十进制B、八进制C、二进制D、十六进制

6、十进制数127转换为二进制数是()。

A、1111110B、1111111C、1000000D、10000001

7、十六进制数10H转换为八进制是()。

A、10B、2C、20D、16

8、1KB表示()。

A、1024位B、1000位C、1024字节D、1000字节

9、以下不正确的标识符是()。

A、scoreB、_abcC、x+yD、Hello

10、十进制数107转换成二进制数是()。

A.01101011B.10001101C.01101101D.11101101

11、二进制数1011011转换为十进制数是()。

A、91B、87C、107D、123

12、若x、i、j和k都是int型变量,则计算下面的表达式后,x的值为()。

x=(i=4,j=16,k=32)

A、4B、16C、32D、52

13、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

A、7B、8C、6D、2

14、若有说明语句:

charc=‘\72’;则变量c()。

A、包含1个字符B、包含2个字符

C、包含3个字符D、说明不合法,c的值不确定

15、若有说明语句:

charc=‘\82’;则变量c()。

A、包含1个字符B、包含2个字符

C、包含3个字符D、说明不合法,c的值不确定

16、设变量a是整型,f是单精度实型,i是双精度实型,则表达式

10+‘a’+i*f值的数据类型为()。

A、intB、floatC、doubleD、不确定

17、表达式18/4*sqrt(4.0)/8值得数据类型是()。

A、intB、floatC、doubleD、不确定

18、设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围是()。

A、0~255B、0~32767C、0~65535D、0~2147483647

19、在C语言中,char型数据在内存中的存储形式是()。

A、补码B、反码C、原码D、ASCII码

20、下列标识符中,不能作为合法的C语言变量名的是()。

A.s_1B.intC._floatD._123

21、下列变量定义不合法的是()。

A.short_a=1.1e-1;B.doubleb=1+5e2;

C.intlongc=0xfdaL;D.floatand=1.e-3;

22、若变量x、y已正确定义并赋值,下列符合C语言语法的表达式()。

A.++x,y=x——B.x+1=yC.x=x+10=x+yD.double(x)/10

23、将字符‘A’(ASCII码值为65)赋值给变量c,不正确的表达式是()。

A.c=65B.c=‘A’C.c=‘\65’D.c=‘\101’

24、下列合法的字符常量是()。

A.“n”B.‘ab’C.‘\x3t’D.‘\n’

25、getchar()函数可以从终端输入一个()。

A.字符串B.整型变量表达式值C.实型变量值D.字符

26、以下程序段的输出结果是()。

floatx=-1234.567;

printf(“%-8.3f,”,x);

printf(“%12.3f\n”,x);

A.1234.567,-1234.567B.-1234.567,-1234.567

C.1234.567,-1234.567D.-1234.567,-1234.567

27、以下程序段的输出结果是()。

charc=‘a’;

inta=99;

printf(“%d,%d,%c,%c”,c,a,c,a);

A.97,99,a,cB.a,99,a,99C.99,99,a,aD.97,99,a,97

28、以下程序段的输出结果是()。

inta=3,b=4,c=5;

printf(“%d,%d,%d”,++a+c,c+b++,c+2);

A.9,9,7B.8,10,7C.9,10,7D.9,9,5

29、有以下程序段:

intk1,k2,k3,k4;

scanf(“%d%d”,&k1,&k2);

scanf(“%d,%d”,&k3,&k4);

若将10赋值给变量k1,k2,将20赋值给k3,k4,下列正确的数据输入是()。

A.1010↙20,20↙B.10,10,20,20↙

C.10↙10↙20,20↙D.10102020↙

30、若x为double型变量,则能正确输入x值的语句是()。

A.scanf("%lf",&x)B.scanf("%ld",&x)

C.scanf("%f",&x)D.scanf("%5.1f",&x)

31、阅读以下程序,当输入数据的形式为:

25,13,10,正确的输出结果为()。

代表回车

#include

voidmain()

{intx,y,z;

scanf("%d%d%d",&x,&y,&z);

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

}

A、x+y+z=48

B、x+y+z=35

C、x+z=35

D、不确定值

32、阅读以下程序,当输入数据的形式为:

25,13,10,正确的输出结果为()。

代表回车

#include

voidmain()

{intx,y,z;

scanf("%d,%d,%d",&x,&y,&z);

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

}

A、x+y+z=48

B、x+y+z=35

C、x+z=35

D、不确定值

33、有输入语句:

scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是()。

□表示空格

A、1□3□2B、1,3,2<回车>

C、a=1□b=3□c=2<回车>D、a=1,b=3,c=2<回车>

34、关于逻辑运算的对象,下面说法正确的是()。

A.只能是0或者1B.只能是0或非0正数

C.只能是整型或字符型数据D.可以是任何类型的数据

35、关于以下程序,说法正确的是()。

#include

voidmain()

{intx,y;

scanf("%d,%d",&x,&y);

if(x>y)

t=x;

x=y;

y=t;

else

x++;

y++;

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

}

A.有语法错误,不能通过编译B.若输入:

2,3↙,则输出:

3,4

C.若输入:

3,2↙,则输出:

2,3D.若输入:

4,3↙,则输出:

4,5

36、若有如下数据描述:

intx=1,y=3,z=5;

”执行表达式“z+=x--&&y++&&z++”后,x,y,z的值分别为()。

A.0、3、5B.0、4、7C.2、3、6D.2、3、7

37、关于以下程序,描述正确的是()。

#include

voidmain()

{inta=1;

if(a)

printf(“*****”);

else

printf(“#####”);

}

A.有语法错误,不能通过编译B.输出:

*****

C.可以通过编译,但不能通过连接D.输出:

#####

38、以下程序段

程序1:

inti=5,s=0;

while(i>0)

i--;

s=s+i;

程序2:

inti=5,s=0;

while(i=1)

{

i--;

s=s+i;

}

两段程序执行后变量s的值分别是()。

A.15,0B.15,15C.0,死循环D.程序1语法错误,死循环

39、以下程序段

程序1:

inti=5,s=0;

while(i>0)

{

s=s+i;

break;

i--;

}

程序2:

inti=5,s=0;

while(i>0)

{

s=s+i;

continue;

i--;

}

两段程序执行后变量s的值分别是()。

A.0,15B.5,15C.15,15D.死循环,死循环

40、在C语言中,关于函数以下说法正确的是()。

A.函数都要完成一定的功能,函数必须有返回值

B.函数声明和函数定义的作用是相同的,没有区别

C.如果没有return语句,被调函数就无法返回主调函数

D.函数声明和函数定义中的函数类型、形参数量和形参类型必须完全相同

41、在C语言程序中,以下描述正确的是()。

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

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

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

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

42、下列变量定义以后,变量p1,p2是指针变量的是()。

A.int*p1,p2;B.int*p1,*p2;C.*intp1,p2;D.int*p1;*p2;

43、若有如下变量定义:

inta=10,b=20,*p1=&a,*p2=&b;

下列赋值语句与语句b=a;等价的是()。

A.p2=p1;B.*p2=*p1;C.p2=&a;D.p2=*p1;

44、下列二维数组的定义正确的是()。

A.inta[3][];B.floata(3,4);C.floata(3)(4);D.floata[3][4];

45、下列二维数组的初始化,正确的是()。

A.inta[2][]={{1,2,1},{4,3,2}};B.inta[][3]={{1,2,1},{4,3,2}};

C.inta[2][4]={{1,2,3},{4,5},{6}};D.inta[][3]=(0,1,2);

46、若有如下定义inta[3][4]={1,2,3,4,5,6,7,8,9,10};则a[1][1]和a[2][2]的初始化值分别为()。

A.6、0B.2、4C.1、4D.0、0

47、若有如下定义:

charstr[]=”English”;

charstr[]={'E','n','g','l','i','s','h'};

则两个数组str的长度分别为()。

A.8,6B.9,7C.8,7D.7,7

48、下列对字符数组s赋值,不合法的()。

A.chars[]=”Quzhou”;  B.chars[20]={”Quzhou”};

C.chars[20];s="Quzhou\0"; D.chars[20]={'Q,'u','z','h','o','u'};

33、以下枚举类型定义,枚举常量Thu的值为()。

enumweekday{Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};

A.0B.2C.4D.6

49、若有以下定义,int类型占2个字节,float类型占4个字节,char类型占1个字节。

程序1:

unionmydata程序2:

structmydata

{charc;{charc;

inti;inti;

floatd;floatd;

}data1;}data1;

变量data1占用内存空间大小分别为()字节。

A.4,7B.4,4C.7,4D.7,7

50、若有以下定义,int类型占2个字节

structstu

{charname[10];

intnum;

floatscore;

}student1,*p1=&student1;

则对结构体变量student1的成员num的引用不正确的是()。

A.p1.numB.student1.numC.p1->numD.(*p1).num

51、fopen()函数打开文件错误后的返回值和文件结尾的返回值分别为()。

A.NULL,NULLB.NULL,EOFC.1,0D.无返回值,0

52、变量的指针,其含义是指该变量的()。

A、值B、地址C、名D、一个标志

53、下面程序段的运行结果是()。

charstr[]="ABC",*p=str;

printf("%d\n",*(p+3));

A、67B、0C、字符'C'的地址D、字符'C'

54、若有以下定义,则对a数组元素的正确引用是()。

inta[5],*p=a;

A、*&a[5]B、a+2C、*(p+5)D、*(a+2)

55、若有以下定义,则对a数组元素地址的正确引用是()。

inta[5],*p=a;

A、p+5B、*a+1C、&a+1D、&a[0]

56、语句while(!

E);中的表达式等价于()。

A、E==0B、E!

=1C、E!

=0D、E==1

二、填空题

1、若a是int型变量,则下面表达式的值为。

(a=4*5,a*2),a+6

2、若a是int型变量,则计算表达式后a的值为。

a=25/3%3

3、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为,n的值为。

x+=n++

4、若有定义:

intb=7;floata=2.5,c=4.7;则下面表达式的值为。

a+(int)(b/3*(int)(a+c)/2)%4

5、若有定义:

charc='\010';则变量c中包含字符个数为。

6、假定用2个字节存储有符号整数。

-35的原码是H,反码是H,补码是H。

7、标识符只能由、和组成,并且其第一个字符必须是。

8、若有如下数据描述:

inta=1,b=2,c=3;

表达式a>b?

(c=(a++)+(--b)):

(c=(--a)+(b++))运算后,变量a、b、c分别为、、。

9、数学式的C语言表达式为。

10、假设变量a和b均为整型,以下语句不借助其他变量把a、b中的值进行交换。

请填空。

a+=;b=a-;a-=;

11、当a=3,b=2,c=1时,表达式f=a>b>c的值是。

12、当a=5,b=4,c=2时,表达式a>b!

=c的值是。

13、设y为int型变量,请写出描述“y是奇数”的表达式。

14、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式。

15、若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是。

16、若a=1,b=4,c=3,则表达式!

(a

c&&1的值是。

17、执行语句for(i=1;i++<4;);后变量i的值是。

18、在C语言中,二维数组元素在内存中的存放顺序是。

19、若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是,a[2][1]得到的初值是。

三、阅读程序写结果

1、以下程序执行后的输出结果是。

main()

{inta,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=15;

elsex=25;

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

}

2、设有程序段

switch(grade)

{case'A':

printf("85-100\n");

case'B':

printf("70-84\n");

case'C':

printf("60-69\n");

case'D':

printf("<60\n");

default:

printf("error!

\n");

}

若grade的值为'C',则输出结果是。

3、以下程序执行后的输出结果是。

main()

{intx=1,y=0;

switch(x)

{case1:

switch(y)

{case0:

printf("**1**\n");break;

case1:

printf("**2**\n");break;

}

case2:

printf("**3**\n");

}

}

4、以下程序执行后的输出结果是。

main()

{intnum=0;

while(num<=2)

{num++;

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

}

}

5、以下程序执行后的输出结果是。

#include

main()

{inti;

for(i=1;i<5;i++)

{if(i%2)printf("*");

elsecontinue;

printf("#");

}

printf("$\n");

}

6、以下程序执行后的输出结果是。

#include

main()

{inti,t,sum=0;

for(t=i=1;i<=10;)

{sum+=t;

++i;

if(i%3==0)t=-i;

elset=i;

}

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

}

7、以下程序执行后的输出结果是。

#include

main()

{intf[10],i;

f[0]=f[1]=1;

for(i=2;i<10;i++)

f[i]=f[i-2]+f[i-1];

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

{if(i%5==0)printf("\n");

printf("%3d",f[i]);

}

}

8、以下程序执行后的输出结果是

#include

main()

{intk=4,m=1,p;

p=func(k,m);printf("%d,",p);

p=func(k,m);printf("%d\n",p);

}

func(inta,intb)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

returnm;

}

9、以下程序执行后的输出结果是。

#include

intf(inta);

voidmain()

{inta=2,i;

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

printf("%4d",f(a));

}

intf(inta)

{intb=0;

staticintc=3;

b++;c++;

return(a+b+c);

}

10、以下程序执行后的输出结果是。

#include

voidmain()

{inta[5]={5,10,-7,3,7},i,j;

sort(a);

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

printf("%4d",a[i]);

}

intsort(inta[])

{inti,j,t;

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

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

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

11、以下程序执行后的输出结果是。

#include

voidmain()

{inta=1,b=2,c=3;

++a;

c+=++b;

{intb=4,c;

c=b*3;

a+=c;

printf("first:

%d,%d,%d\n",a,b,c);

a+=c;

printf("second:

%d,%d,%d\n",a,b,c);

}

printf("third:

%d,%d,%d\n",a,b,c);

}

12、以下程序执行后的输出结果是。

#include

voidmain()

{inti,j;

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

{for(j=i;j<=5;j++)

printf("*");

printf("\n");

}

}

13、以下程序执行后的输出结果是。

#include

int main(){

    int a=1;

    switch(a)

{

        case 0:

printf("a");

        case 1:

printf("b");

        case 2:

printf("c");break;

        case 3:

printf("d");

    }

    return 0;

}

14、以下程序执行后的输出结果是。

#include

intfunc(inta,intb);

voidmain()

{intx=6,r;

r=func(x,x+=2);

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

}

intfunc(inta,intb)

{intc;

c=a+b;

returnc;

}

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

当前位置:首页 > 表格模板 > 合同协议

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

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