C语言习题集.docx

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

C语言习题集.docx

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

C语言习题集.docx

C语言习题集

习题一

一.填空题

1.i为int型变量,且初值是3,有表达式i++3,则

该表达式的值是,变量i的值是。

2.i为int型变量,且初值是2,有表达式++i3,则

该表达式的值是,变量i的值是。

3.i为int型变量,且初值是3,有表达式i=i+=i5,则

该表达式的值是,变量i的值是。

4.i为int型变量,且初值是3,有表达式i=(a=5,b=10)+(i+=b,b+=a),

则该表达式的值是,变量i,a,b的值分别是。

5.i为int型变量,且初值是3,有表达式i=(i+=i,i=i),i10,i%4,则

该表达式的值是,变量i的值是。

6.说明变量为双精度的关键字是。

7.在TurboC中,整型数据的表示形式有种。

二.选择题

1.若a,b,c,d都是int型变量且初值均为10,不正确的赋值语句是()。

A.a=b=c=d;B.a=b++;C.a+b++;D.d=(a=b=125)c++;

2.若a,b,c,d都是float型变量且初值为10.95,不正确的赋值语句是()。

A.a=b=15;B.d=int(a+c);C.a=(int)(b+1);D.++a;

3.若a,b,c均为int型变量且有值,要交换变量a和b的值,正确的语句组是()。

A.c=a,a=b,b=c;B.a=b;b=a;

C.c=a;a=b;b=c;D.c=a;b=a;a=c;

4.若a,b均为int型变量,x,y均为float型变量,正确的输入函数是()。

A.scanf("%d%f",&a,&b);B.scanf("%d%f",&a,&x);

C.scanf("%d%d",a,b);D.scanf("%f%f",x,y);

5.若x,y均为double型变量,正确的输入函数是()。

A.scanf("%f%f",&x,&y);B.scanf("%d%d",&x,&y);

C.scanf("%lf%lf",&x,&y);D.scanf("%lf%lf",x,y);

6.若x为char型变量,y为int型变量,x,y均有值,正确的输出函数是()。

A.printf("%c%c",x,y);B.printf("%c%s",x,y);

C.printf("%f%c",x,y);D.printf("%f%d",x,y);

7.若x,y均为int型变量且有值,要输出x,y的值,正确的输出函数是()。

A.printf("%d%d",&x,&y);B.printf("%f%f",x,y);

C.printf("%f%d",x,y);D.printf("%d%d",x,y);

8.x为int型变量,且值为2345,不正确的输出函数是()。

A.printf("%d",x);B.printf("%3d",x);

C.printf("%c",x);D.printf("%s",x);

习题二

一.写出下列程序的运行结果

1.下面程序的运行结果是()。

main()

{inta,b;

a=23;b=87;

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

}

A.23B.23,87C.a=23D.2387

87b=87

2.下面程序的运行结果是()。

main()

{floatx,y;

x=12.34;y=0.00045;printf("%f,%f",x,y);

}

A.12.34,0.00045B.12.340000,0.000450

C.12.340.00045D.12.3400000.000450

3.下面程序的运行结果是()。

main()

{inth=34,k=56;

printf("h=%d\nk=%d\n",h,k);

}

A.h=34B.h=34k=56C.3456D.34

k=5656

4.下面程序的运行结果是()。

main()

{floatx=12.34567,y=345.2354;

printf("x=%5.3f,y=%5.3f",x,y);

}

A.12.346,345.235B.x=12.346,y=345.235

C.12.345670,345.235000D.x=12.34567,y=345.2354

5.下面程序的运行结果是()。

main()

{ints=3,w=5;

printf("%u,%u,%d,%d",s,w,s,w);

}

A.3,5,3,5  B.3535  C.65533,5,3,5  D.65533,65531,3,5

习题二

6.运行下面程序时若从键盘输入:

123456789输出结果是()。

main()

{inta,b,c;

scanf("%3d%3d%3d",&a,&b,&c);

printf("a=%d,b=%d,c=%d",a,b,c);

}

A.a=123,b=45,c=678B.a=123b=454c=678

C.123,45,678D.a=123,b=456,c=789

7.运行下面程序时若从键盘输入:

123456789输出结果是()。

main()

{inta,b,c;

scanf("%3d%3d%3d",&a,&b,&c);

printf("a=%d,b=%d,c=%d",a,b,c);

}

A.a=123,b=45,c=678B.a=123,b=456,c=789

C.123,456,789D.a=123b=456c=789

8.以下程序若a=12,b=45,c=3467,正确的数据输入方法是()。

main()

{inta,b,c;

scanf("a=%db=%dc=%d",&a,&b,&c);

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

}

A.a=12b=45c=3467B.12453467

C.a=12b=45c=3467D.a=12b=45c=3467

二.填空题

1.C语句的最后用结束。

2.执行printf("%d",045);函数的结果是。

3.执行printf("%u\n",-0x2a);函数的结果是。

4.若x是整型,且x=1,执行printf("%o\n",x);函数的结果是。

5.若一个C程序包含若干个函数,程序的执行总是从函数开始。

习题三

1.设a=1,b=2,c=3,写出下列关系表达式的值

(1)(a

(2)(c(a

(3)a+b==c。

(4)a+b>=c。

2.设a=1,b=2,c=3,d=4写出下列逻辑表达式的值

(1)a&&b&&c。

(2)a||!

b||!

c。

(3)++a||b++&&++c||d++。

(4)(!

(a+b)+c1)&&(b+c/2)。

(5)a!

=11&&b<4。

3.设x=y=z=1,则执行逻辑表达式++x||++y&&++z后,x,y,z的值分别为。

4.设x=y=z=1,执行逻辑表达式++x&&y||++z后,x,y,z的值分别为。

5.设a=1,b=2,c=3,d=4,x=1,y=1,则执行逻辑表达式(x=a>b)&&(y=c>d)后,x,y的值分别为。

6.在以下一组运算符中,优先级最高的运算符是()

A.<=B.=C.%D.&&

7.以下程序的运行结果是。

main()

{inta=1,b=4,k;

k=(++a<0)&&!

(b<=0);

printf("%d,%d,%d\n",k,a,b);

}

8.在C中,下列哪一个表达式能正确表示a10或a0()

A.a>=10ora<=0B.a>=10|a<=0

C.a>=10||a<=0D.a>=10&&a<=0

9.若a,b,c均为int型变量,则执行以下语句后,a,b,c的值分别为。

a=b=c=1;

++a||++b&&++c

习题三

10.给出下列程序的输出结果

(1)main()

{inta,b,c;

a='E';b='J';c='W';

if(a>b)

if(a>c)printf("%c\n",a);

elseprintf("%c\n",c);

elseif(b>c)printf("%c\n",b);

elseprintf("%c\n",c);

}

结果是:

(2)main()

{intx=100,a=10,b=20,OK1=5,OK2=0;

if(a

if(b!

=15)

if(!

OK1)x=1;

else

if(OK2)x=10;

x=1;

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

}

结果是:

(3)运行两次下面的程序,如果分别从键盘上输入数值6和4,其运行结果分别为

main()

{intx;

scanf("%d",&x);

if(x++>5)printf("%d",x);

elseprintf("%d\n",x);

}

输入6时,结果是:

输入4时,结果是:

11.若有定义:

floatx;inta,b;再有下面4个switch语句

A.switch(x)

{case1.0:

printf("\n");

case2.0:

printf("\n");}

B.switch(x)

{case1,2:

printf("\n";)

case3:

printf("\n");}

C.switch(a+b);

{case1:

printf("\n");

case1+2:

printf("\n");}

D.switch(a+b)

{case1:

printf("\n");

case2:

printf("\n");}

正确的switch语句是(),其它switch语句错在什么地方?

习题四

1.下面程序若在运行时从键盘输入3.62.4,运行结果为()。

#include"math.h"

main()

{floatx,y,z;

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

z=x/y;

while

(1)

{if(fabs(z)>1.0){x=y;y=z;z=x/y;}

elsebreak;

}

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

}

A.1.500000B.1.600000C.2.000000D.2.400000

2.下面程序的输出是()。

main()

{intx=3,y=6,a=0;

while(x++!

=(y=1))

{a+=1;

if(y

}

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

}

A.x=4,y=4,a=1B.x=5,y=5,a=1

C.x=5,y=4,a=3D.x=5,y=4,a=1

3.以下程序的功能是:

从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束,请填空。

main()

{floatx,amax,amin;

scanf("%f",&x);

amax=x;  amin=x;

while()

{if(x>amax)amax=x;

if()amin=x;

scanf("%f",&x);

}

printf("\namax=%f\namin=%f\n",amax,amin);

}

习题四

4.下面程序的输出是:

 。

main()

{intx=2;

while(x);

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

}

5.下面程序的运行结果为:

main()

{inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

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

}

6.C语句中,下列说法中正确的是()。

A.不能使用do-while语句构成的循环;

B.do-while语句构成的循环必须用break语句才能退出;

C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环;

D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环。

7.下面程序的输出结果是:

main()

{inty=9;

for(;y>0;y)

if(y%3==0)

{printf("%d",y);

continue;

}

}

8.若x是int型变量,且有下面的程序段,其运行结果为()。

for(x=3;x<6;x++)printf((x%2)?

("%d"):

("##%d\n"),x);

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

##434##55

5##5

习题四

9.以下程序的运行结果是()。

main()

{inti;

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

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

elsecontinue;

printf("#");

}

printf("$\n");

}

A.###$B.###$C.##$D.##$

10.下面程序的功能是根据以下的公式,返回满足精度eps要求下的值,请填空。

main()

{doubles=0.0,t=1.0;

intn;

floateps;

scanf("%f",&eps);

for(;t>eps;n++)

{s+=t;

t=nt/(2n+1);

}

printf("pi=%f\n",);

}

习题五

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

A.C语言的主函数是无参函数

B.C语言的主函数最多允许有1个参数

C.C语言的主函数最多允许有2个参数

D.C语言的主函数可以有2个以上的参数

2.C语言中函数返回值的类型是由()决定的。

A.return语句中的表达式类型

B.调用该函数的主调函数类型

C.调用函数时临时确定

D.定义函数时所指定的函数类型

3.以下不正确的描述是()。

A.调用函数时,实参可以是表达式

B.调用函数时,简单变量的实参与形参可以共用内存单元

C.调用函数时,将为形参分配内存单元

D.调用函数时,实参与形参的类型必须一致

4.若x为int型变量,则以下函数fun的返回值类型为()。

fun(x)

……

{printf("%d\n",x);}

A.返回值为void类型B.无法确定返回值

C.返回值为int类型D.没有返回值

5.C语言规定,调用一个函数时,实参变量与形参变量之间的数据传递是()

A.地址传递B.由实参传给形参,再由形参传回来给实参

C.值传递D.由用户指定传递方式

6.填空

①变量存储类别,从作用域的角度分为变量和变量。

②局部静态变量在时赋初值且只赋值一次。

7.判断以下说法的正误

一个源文件由一个或多个函数组成,C程序是以一个源文件为编译单位的。

()

局部静态变量在函数调用结束后仍存在,但其它函数不能引用它。

()

自动(auto)变量是由编译系统自动处理的,对自动变量分配存储空间后,就赋值为0,执行函数后自动释放。

()

由于全局变量的作用域增加了函数间数据联系的渠道,利用全局变量可以从函数得到一个以上的返回值,故建议在程序中尽量定义全局变量。

()

8.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量的存储类应该是()。

A.externB.registerC.autoD.Static

习题五

9.以下不正确的描述为()

A.在函数之外定义的变量称为外部变量,外部变量是全局变量

B.在一个函数中既可以使用局部变量,又可以使用全局变量

C.外部变量定义和外部变量说明的含义不同

D.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。

10.以下不正确的描述为()

A.不同函数中可以使用相同名字的变量

B.形式参数是局部变量

C.在一个函数内部定义的变量只在本函数范围内有效

D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效

11.在C语言中,对于存储类型为()的变量,只有在使用它们时才

占用内存单元。

A.static和autoB.静态(static)

C.register和staticD.auto和register

12.C语言中形参的缺省存储类别是()

A.自动(auto)B.静态(static)

C.寄存器(register)D.外部(extern)

13.下列程序的运行结果是:

unsignedfun3(unsignednum)

{unsignedk=1;

do

{k=num%10;

num/=10;

}while(num);

return(k);

}

main()

{unsignedn=26;

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

}

14.下列程序的运行结果是:

longfun4(intn)

{longs;

if((n==1)||(n==2))s=2;

elses=n+fun4(n1);

return(s);

}

main()

{longx;

x=fun4(4);  printf("%ld\n",x);

}

习题五

15.下列程序的运行结果是:

#include"stdio.h"

main()

{intn=4,x=2,s;

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

}

fun(intx,intn)

{if(n==1)return(x);

elsereturn(xfun(x,n1));

}

16.下列程序的运行结果是:

intfun2(intx,inty)

{intm=5;

return(xym);

}

main()

{inta=7,b=5;

printf("%d\n",fun2(a,b));

}

17.下列程序的运行结果是:

fun(intp)

{intd=5;

d+=p++;

printf("%d",d);

}

main()

{intd=1,a=3;

fun(a);

d+=a++;printf("%d\n",d);

}

18.下列程序的运行结果是:

fun(intn)

{if(n==1)return(0);

elseif(n==2||n==3)return

(1);

elsereturn(fun(n1)+fun(n2)+fun(n3));

}

main()

{intx;

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

}

习题五

19.下面程序的执行结果是:

intx=3;

main()

{inti;

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

{++x;f();}

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

}

f()

{staticinti;

intx=10;

x/=x++;printf("%d",x);

}

20.下列程序的运行结果是:

fun(intx)

{staticinta=3;

a+=x;

return(a);

}

main()

{intk=3,m=2,n;

n=fun(k);

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

n=fun(m);

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

}

21.下列程序的运行结果是:

#include"stdio.h"

f(inta)

{intb=0;

staticintc=3;

a=c++,b++;

return(a);

}

main()

{inta=2,i,k;

for(i=0;i<2;i++)k=f(a++);

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

}

22.下列程序的运行结果是:

#include"stdio.h"

inti=2,j=2;

main()

{inti=2;

printf("i=%d,j=%d\n",i,j);

i=(i+++j)+(j+++i);

{inti=0;

printf("i=%d,j=%d\n",i,j);

}

printf("i=%d,j=%d\n",i,j);

}

习题六

一、选择题

1.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用双引号(“”)括起时,寻找被包含文件的方式为()。

A.直接按系统设定的标准方式搜索目录

B.先在源程序所在目录搜索,再按系统设定的标准方式搜索

C.仅仅搜索源程序所在目录

D.仅仅搜索所在的当前目录

2.以下叙述中不正确的是()。

#defineIBM-PC

A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始都是预处理命令行

C.C程序在执行过程中对预处理命令行进行处理

D.以上定义是正确的宏定义

3.以下叙述中正确的是()。

#defineCR37.688

A.在程序的一行上可以出现多个预处理命令行

B.预处理行是C的合法语句

C.被包含的文件不一定以.h作为后缀

D.在以上定义中CR是称为“宏名”的标识符

4.以下有关宏替换的叙述中不正确的是()。

A.宏替换不占用运行时间B.宏名无类型

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

当前位置:首页 > 医药卫生

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

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