C语言复习题.docx

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

C语言复习题.docx

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

C语言复习题.docx

C语言复习题

C语言复习题

第一章知识点

1下列变量名中是否合法

A B.C.TomB 3a6bC _6a7bD $ABC

以下是否为正确的C语言标识符

A #defineB _123C %dD \n

2C语言的基本单位是函数

3C语言程序总是从main()【或主函数】开始执行,C源程序经编译和连接后才可直接运行产生结果;且C语言程序有且仅有一个main函数;

4C源程序文件的扩展名为 .c,经过编译后生成文件的后缀是.OBJ,经过链接后生成文件的后缀是.EXE。

5C语言源程序的语句分隔符是;。

6C语言程序开发的四个步骤是编辑、编译、连接、运行。

7在一个C源程序中,注释部分以/*开始,并且以*/结束。

第二章知识点

1以下哪些是不正确的实型常量

A 2.607e-1B 0.8103eC -77.77D 456e-2

2以下哪些是正确的整型常量

A 12B -20C 1,000D 456

3整型变量x=1,y=3,经下列计算后,x的值不等于6的是哪个?

A x=(x=1+2,x*2)B x=y>2?

6:

5C x=8-(--y)-(--y)D x=y*4.8/2

4在C语言中,错误的int类型的常数是哪个?

A 32768B 0C 037D 0Xaf

5逗号表达式"(a=3*5,a*4),a+15"的值是多少?

A 15B 60C 30D 不确定

6字符型常量在内存中存放的是【ASCⅡ代码】

7若有floatx;则sizeof(x)和sizeof(float)两种描述【都正确】

8有整型变量x,单精度变量y=5.5,表达式:

x=(float)(y*3+((int)y)%4)执行后,x的值为【17】

9在C语言中运算对象必须是整型的运算符是【%】

10若x、a、b和。

均是int型变量,则执行表达式x=(a=1,b=2)后的结果为2

11下列关于C语言的叙述错误的是【大写字母和小写字母的意义相同】

12C语句x*=y+2;还可以写成【x=x*(y+2);】

13若有以下定义:

intm=5,y=2;则计算表达式y+=y-=m*=y后y的值是【-16】.

14结构化程序设计的基本结构有三种,分别是【顺序结构、分支结构和循环结构】。

15若有inta=5,c=4;则表达式(——a==++c)?

——a:

c++的值是5,此时c的存储单元的值为【6】.

16若有说明语句:

intx=1,y=0;则表达式x>(y+x)?

10:

12.5>y++?

’a’:

’a’的值为【97】.

17若有intx=7,则表达式x+=x-=x+x;执行后,x的值为【-14】。

18设inta=1,b=2,c=3,d;执行d=!

(a+b+C)后,d的结果是【0】

19设intx=10,y,z;执行y=z=x;x=y==z后,变量x的结果是【1】。

20设intx=9,y=8;表达式x==y+1的结果是【0】.

21若有以下定义:

intm=5,y=2;则计算表达式y+=y-=m*=y后y的值是【-16】。

22若x,a都是int型变量,则表达式x=(a=4,6*2)的值是【12】,表达式x=a=4,6*2的值是【12】。

23若a是int型变量,则表达式(a=4*5,a*2),a+6的值是【26】。

24有inta;则执行a=25/3%3;后,a=【2】。

25若intb=7;floata=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值是【5.5】。

26若inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+B)/2+(int)x%(int)y的值是【3.5】。

27若intx=12,n=5;则表达式x%=(n%=2)的值是【0】。

28已知字母b的ascii码为98,且charch;则表达式ch=’b’+’8’-‘3’的值为【103】。

第三章知识点

1有程序段:

intx;

scanf(“%d\n”,&x);

printf(x%2==0?

“evennumber%d”:

“oddnumber%d”,x,x);

若输入3,则printf语句【输出oddnumber3】

2以下程序的输出结果是:

(1)main()

{intsum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

printf(“%d”,pad);

}【7】

3下面程序的输出结果是

#include

main()

{intx=10;

{intx=20;

printf("%d,",x);

}

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

}【20,10】

4以下程序的输出结果是:

main()

{

inta=177;

printf("%o\n",a);

}【261】。

5以下程序的输出结果是

main()

{inta=0

a+=(a=8);

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

}【16】

6以下程序输出的结果是

main()

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

d=(a>b>c);

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

}【0】

7以下程序运行后的输出结果是

main()

{charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

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

}【220】

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

main()

{inta,b,c;

a=25;

b=025;

c=0x25;

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

}【252137】

9编写一个程序,从键盘输入一个三位整数,将它们逆序输出。

例如输入127,输出721。

第四章知识点

1C语言中,逻辑“真”等价于【非零的数】

2以下程序的输出结果是 

main()

{inti;

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

{if(i%2)printf(“*”);

elsecontinue;

printf(“#”);

}

printf(“$”);

}【*#*#*#$】

3若有:

inta=1,b=2,c=3,d=4,m=2,n=2;

则执行(m=a>b)&&(n=c>d)后n的值是【2】

4main()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

输出的结果是【 2,1】

5若有intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

z=x;x=y;y=z;【 x=20,y=30,z=30】

6以下程序的输出结果是

main()

{inta=1,b=3,c=5,d=4,x;

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

printf(“x=%d”,x);

}【2】

7以下程序的输出结果是

main()

{intx=2,y=-1,z=2;

if(x

if(y<0)z=0;

elsez+=1;

printf(“%d\n”,z)

}【2】

8为了避免嵌套的if—else语句的二义性,C语言规定else总是与【在其之前未配对的最近的if】组成配对关系。

9已知intx=1,y;执行语句y=++x>5&&++x<10;后变量x的值是【2】。

10以下程序段的输出结果是

inta=10,b=50,c=30;

if(a>b)

a=b;

b=c;

c=a;

printf("a=%db=%dc=%d\n",a,b,c);【a=10b=30c=10】

11以下程序的输出结果是

main()

{inta=0,b=1,c=0,d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)d=15;

elsed=25;

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

}【d=20】

12下面程序的输出结果为

main()

{inta=1,b=0;

switch(a)

{case1:

switch(b)

{case0:

printf("**0**");break;

case1:

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

}

case2:

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

}

}【**0****2**】

13从键盘上输入"446755"时,下面程序的输出是

#include

main()

{intc;

while((c=getchar())!

=''\n'')

switch(c-''2'')

{case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

printf("\n");

}【88898787】

14请阅读以下程序并填空。

main()

{ints,t,a,b;

scanf(“%d,%d”,&a,&b);

s=1;t=1;

if(a>0)s+=1;

if(a>b)t+=s;

elseif(a==b)t=5;

elset=2*s;

printf(“s=%d,t=%d”,s,t);

}

为了输出结果t=4,输入量a和b应满足的条件是【0

为了输出结果s=1,t=5,输入量a和b应满足的条件是【a=b<=0】.

15执行以下程序,输入-10的结果是【y=0】,输入5的结果是【y=5】,输入10的结果是【y=10】,输入30的结果是【y=5】。

main()

{intx,c,m;

floaty;

scanf(“%d”,&x);

if(x<0)c=-1;

elsec=x/10;

switch(c)

{

case-1:

y=0;break;

case0:

y=x;break;

case1:

y=10;break;

case2:

case3:

y=-0.5*x+20;break;

default:

y=-2;

}

if(y!

=-2)printf(“y=%d\n”,y);

elseprintf(“error\n”);

}

16将下列数学式改写成C语言的关系表达式或逻辑表达式A)a≠b或a<=c;【a!

=b||a<=c】

B)|x|>=4;【x>=4||x<=-4】.

17C语言中用【1】表示逻辑值“真”,用【0】表示逻辑值“假”。

18以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。

当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:

a+b>c,a+c>b,b+c>a。

请填空。

main()

{

floata,b,c;

scanf(“%f%f%f”,&a,&b,&c);

if()printf(“YES\n”);/*a,b,c能构成三角形*/

elseprintf(“NO\n”);/*a,b,c不能构成三角形*/

}【a+b>c&&a+c>b&&b+c>a】

19以下程序的运行结果是

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

else

if(n>=2){m=fun(t,n-1);returnm;}

}

main()

{

inta[]={11,4,6,3,8,2,3,5,9,2};

printf(“%d\n”,fun(a,10));

}【11】

20打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该

数本身。

例如:

153是一水仙花数,因为153=1^3+5^3+3^3.

21编写一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。

设:

90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

第五章知识点

1有程序段:

inta;

for(scanf(“%d”,&a);!

a;)

printf(“continue”);

则for语句中的!

a等价于【a==0】

2有程序段:

intx,y,z;

x=20,y=40,z=60;

while(x

y-=4;z/=2;

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

则此程序执行的输出结果为【32,28,30】

3有程序段:

intj=0,k=0,a=0;

while(j<2)

{j++;

a=a+1;

k=0;

while(k<=3)

{k++;

if(k%2!

=0)

continue;

a=a+1;

}

a=a+1;

}

执行完成后,a的值为【8】

4以下程序的输出结果是

main()

{intnum=0;

while(num<=2)

{num++;

printf(“%d,”,num);

}

}【 1,2,3,】

5有程序段:

(1)intn=1;

do{n=++n*5;}

while(n=10);

则此循环的循环体【 执行无限次】

(2)x=-1;

do

{x=x*x;}while(!

x);

语句执行次数是:

【循环执行一次】

(3)intk=10;

while(k=0)k--;

语句执行次数【循环体语句一次也不执行】

(4)for(x=0,y=10;(y>0)&&(x<4);x++,y--);【循环执行4次】

6以下程序的输出结果是

main()

{intn=0;

while(n++<=2);

printf(“%d”,n);

}【4】

7以下程序的输出结果是

main()

{inti,j,m=0;

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

for(j=3;j<=19;j+=4)m++;

printf(“%d”,m);

}【20】

8以下程序的输出结果是

main()

{intn=10;

while(n>7)

{n--;

printf(“%d,”,n);

}}【9,8,7,】

9以下程序的输出结果是

main()

{inta=1,b=10;

do{b-=a;a++;}while(b--<0);

printf(“a=%d,b=%d”,a,b);

}【a=2,b=8】

10已知inti=1;执行语句while(i++<4);后,变量i的值为【5】

11下面程序的输出结果是

main()

{inti;

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

printf(“%d”,i);

}【10】

12下面程序的输出结果是

main()

{inta=1,b=0;

do

{switch(a)

{case1:

b=1;break;

case2:

b=2;break;

default:

b=0;

}

b=a+b;

}while(!

b);

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

} 【a=1,b=2】

13下面程序的输出结果是

main()

{intk=0;

charc=''A'';

do

{switch(c++)

{case''A'':

k++;break;

case''B'':

k--;

case''C'':

k+=2;break;

case''D'':

k=k%2;contiue;

case''E'':

k=k+10;break;

default:

k=k/3;

}

k++;

}while(c<''C'');

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

} 【k=4】

14下面程序的输出结果是

main()

{inti,j,k=10;

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

{k++;

{intk=0;

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

{if(j%2)continue;

k++;

}

}

k++;

}

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

}【 k=14】

15下面程序的输出结果是

#include

main()

{intn[3][3],i,j;

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

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

n[i][j]=i+j;

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

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

n[i+1][j+1]+=n[i][j];

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

}【6】

16break语句只能用于【循环】语句和【多分支选择】语句。

17当执行以下程序段后

inta=10,b=5,c=5,d=5,i=0,j=0,k=0;

for(;a>b;++b)i++;

while(a>++c)j++;

dok++;while(a>d++);【i=5,j=4,k=6】

18有以下程序段:

s=1.0;

for(k=1;k<=n;k++)

s=s+1.0/(k*(k+1));

printf(“%f”,s);

请填空,使下面的程序的功能完全与之相等。

s=0.0;

_______;【d=1.0】

k=0;

do

{s=s+d;

________;【k=k+1】

d=1.0/(k*(k+1));

}

while(________);【k<=n】

printf(“%f”,s);

19以下程序的输出结果是

main()

{ints,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}【5】

20以下程序的功能是:

输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

main()

{inti,j;

for(i=0;________;i++)【i<=9】

{j=i*10+6;

if(______)continue;【j%3!

=0】

printf(“%d”,j);

}

}

21以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数5时(注意:

n不得大于10),程序运行结果如下:

ABCDE

FGHI

JKL

MN

O

请填空完成该程序。

main()

{inti,j,n;charch=''A'';

scanf(“%d”,&n);

if(n<11)

{

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

{for(j=1;j<=n-i+1;j++)

{printf(“%2c”,ch);

________;【ch=ch+1】

}

________【printf("\n")】

}

}

elseprintf(“nistoolarge!

\n”);

printf(“\n”);

}

22以下程序的功能是计算:

s=1+12+123+1234+12345。

请填空。

main()

{intt=0,s=0,i;

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

{t=i+________;s=s+t;}

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

}【t*10】

23以下程序运行后的输出结果是

main()

  {

   charc1,c2;

   for(c1=''0'',c2=''9'';c1

   printf("%c%c",c1,c2);

   printf("");

  }【0918273645】

24有以下程序

 main()

  {intt=1,i=5;

  for(;i>=0;i--)t*=i;

  printf(“%d\n”,t);

  }

执行后输出结果是【0】.

25以下程序运行后的输出结果是

main()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

printf(“%d\n”,x);

}【17】

26键盘输入10个实型数,求其倒数的和并输出.

27键盘输入10个正实型数,求其方根的和并输出。

28计算s=1-2!

+3!

-4!

+…-10!

的值并输出。

29计算s=1-1/3+1/5-1/7+…1/101的值并输出。

30输入一个正整数,要求以相反的顺序输出该数。

例如输入12345,输出位54321。

31任意输入一个偶数,请将它分解为两个素数之和。

32编写程序,输入三角型的三条边长,求其面积。

注意:

对于不合理的边长输入要输出数据错误的提示信息。

33输入n值,输出如图所示矩形。

******

******

******

******

******

******

n=6时的矩形

按照上述思路,实现打印矩形。

34编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。

35统计在[1030-25830]之间有多少个数能同时被13和27整除。

第六章知识点

1在函数的说明和定义时若没有指出函数的类型,则【系统自动地认为函数的类型为整型】。

2算法具有五个特性,不属于算法特性的是【简洁性】

3C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是【int型】

4C语言规定,函数返回值的类型是由【在定义该函数时所指定的函数类型所决定】。

5函数func((exp1,exp2),(exp3,exp4,exp5));调用语句含有实参的个数为【2】

6函数直接或者间接地自己调用自己,被称为函数的【递归调用】。

7C语言中唯一一个不能被别的函数调用的函数是【main函数】

C语言规定,可执行程序的开始执行点是【main()】。

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

当前位置:首页 > 农林牧渔 > 农学

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

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