C各章练习题及复习资料.docx

上传人:b****5 文档编号:28226400 上传时间:2023-07-09 格式:DOCX 页数:134 大小:75.40KB
下载 相关 举报
C各章练习题及复习资料.docx_第1页
第1页 / 共134页
C各章练习题及复习资料.docx_第2页
第2页 / 共134页
C各章练习题及复习资料.docx_第3页
第3页 / 共134页
C各章练习题及复习资料.docx_第4页
第4页 / 共134页
C各章练习题及复习资料.docx_第5页
第5页 / 共134页
点击查看更多>>
下载资源
资源描述

C各章练习题及复习资料.docx

《C各章练习题及复习资料.docx》由会员分享,可在线阅读,更多相关《C各章练习题及复习资料.docx(134页珍藏版)》请在冰豆网上搜索。

C各章练习题及复习资料.docx

C各章练习题及复习资料

 

《C程序设计》练习题

 

系:

班级:

学号:

姓名:

 

信息工程学院

2007.3.1

第一章C语言概述

一、选择题:

1.一个C程序的执行是从()

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

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

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

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

2.以下说法不正确的是( )

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

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

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

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

3.C语言规定:

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

A)必须在开始  B)必须在系统调用的库函数的位置 

C)可以任意   D)必须在最后

4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是()

A)program.bak和program.objB)program.obj和program.exe

C)program.exl和program.cD)program.bak和prgram.exe

5.在TurboC中,仅能连续完成编译和连接的操作热键是()

A)Alt_F9B)Ctrl+F9C)F9D)Alt+F5

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

A)C语言源程序经编译后生成后缀为.obj的目标程序

B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

7.以下关于函数的叙述中正确的是(  )

A)每个函数都可以被其它函数调用(包括main函数)

B)每个函数都可以被单独编译

C)每个函数都可以单独运行

D)在一个函数内部可以定义另一个函数

第二章算法

一、选择题:

1.结构化程序设计规定的三种基本控制结构是()

A)顺序、选择和转向B)层次、网状和循环

C)模块、选择和循环D)顺序、选择和循环

2.算法具有五个特性,以下选项中不属于算法特性的是()

A)有穷性B)简洁性C)可行性D)确定性

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

A)用C程序实现的算法必须要有输入和输出操作

B)用C程序实现的算法可以没有输出但必须要有输入

C)用C程序实现的算法可以没有输入但必须要有输出

D)用C程序实现的算法可以既没有输入也没有输出

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

A)算法正确的程序最终一定会结束

B)算法正确的程序可以有零个输出

C)算法正确的程序可以有零个输入

D)算法正确的程序对于相同的输入一定有相同的结果

5.下列不属于结构化程序设计的基本方法的是(   )

A)自顶现下  B)逐步细化  C)模块化  D)网络化

二、算法设计(用N-S结构流程图描述下列算法):

1.求两个数正整数的最大公约数。

2.求2/1,-3/2,5/3,-8/5,……前20 项之各

3.判断一个正整数是否为素数。

第三章数据类型、运算符与表达式

一、选择题

1.是合法的用户自定义标识符的()

A)ah-spksB)doubleC)D)_myapple

2.以下正确的C语言标识符是()

A)%xB)a+bC)a123D)test!

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

A)VoidB)b_2C)intD)name

4.15以下选项中可作为C语言合法整数的是()

A)11010BB)0583C)x2b2D)0xafb

5.C语言的短整型数值在计算机中占用的字节个数是()

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

6.设int型的数据长度为2个字节,则unsignedint类型数据的取值范围是()

A)均为2个字节B)0至65535C)-3276至32767D)-256至255

7.以下选项中可作为C语言合法常量的是(  )

A)-80.B)-080C)-8e1.0D)-80.0e

8.下列式中,值不为4的表达式是()

A)sizeof(unsignedlong)B)sizeof(long)C)sizeof(unsignedint)D)sizeof(float)

9.设有说明语句:

chara=’\123’;则变量a()

A)包含1个字符B)包含2个字符C)3个字符D)说明不合法

10.C语言中,“\x5d”在内存中占用的字节数是(  )

A)2B)5C)4D)1

11.设x为一数字字符,则其所对应的十进制数值为(  )。

 A)xB)x-‘0’C)*xD)&x

12.字符串“\t\x42\\bcd\n”的长度是(  )。

  A)7B)10C)12D)13

13.已知大写字母A的ASCII码值是65,a的ASCII码值是97,则用八进制表示的字符常量‘\101’为( )

A)字符AB)字符a  C)字符eD)非法常量

14.执行语句:

inta=’1’+1.5;后,正确的叙述是()

A)a的值是字符‘3’B)a的值是浮点数

C)不允许字符型和浮点型相加D)a的值是字符’1’的ASCII码加1

15.若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值是()

A)-5B)-40C)-15D)不确定

16.设整型变量a的值为2,下列表达式值为1的是()

A)a%3B)a/3C)--aD)a++

17.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是()

A)a=5++B)a=b=c++C)a=%2D)b=a+1=2

18.下列式中,最终运算结果的数据类型不是单精度的表达式的是()

A)(int)(3+3.0)B)1e-3C)(float)(3)D)(int)3.0+3.0

19.设整型变量x、y、z均为2,表达式(x++)+(y++)+(z++)的值是()

A)6B)7C)8D)9

20.C语言中计算a3的正确表达式是( )

A)a^3B)a**3C)pow(a,3)D)power(a,3)

21.下列表达式的值为0的是(  )

A)7/8B)7%8C)7/8.0D)7<8

22.设floatm=4.0,n=4.0;使m为10.0的表达式是(  )

A)m-=n*2.5B)m/=n+9C)m*=n-6D)m+=n+2

23.逗号表达式(a=4*5,a*2),a+15的值是(  )

A)35B)40C)55D)20

24.设inta=5,b=4;则表达式(a=b++)?

++a:

b++的值是(  )

A)4B)5C)6D)3

25.C语言中运算对象必须是整型的运算符是(  )。

A)%=B)/C)=D)<=

二、填空题

1.设inta=3,b=5;floatx=7.5,y=3.5;则表达式:

(float)a+b/2+(int)x%(int)y是值是。

2.设a为float型变量,则能将a中的数值保留一位小数的表达式是。

3.若ch是一小写英文字母,其对应的大写英文字母为。

4.一个三位整数n的中间一位数字可表示为。

5.代数式

表示成C表达式为 

 

第四章最简单的C程序设计-顺序程序设计

一、选择题

1.C标准函数中,数学函数原型在()头文件中。

A)stdio.hB)math.hC)string.hD)etype.h

2.Putchar函数可以向终端输出一个(   )

A)整数  B)实数  C)字符串  D)字符

3.设整型变量a、b的值均为8,printf(“%d,%d”,(a++,++b),b--);的输出是()

A)8,8B)8,7C)9,9D)8,9

4.设有语句scanf(%d,%d”,&m,&n);要使m、n的值依次是2、3,正确是输入是()

A)23B)2,3C)2;3D)2

3

5.设变量定义为inta,b;执行下列语句时,输入(),则a和b的值都是10

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

A)1010B)10,10C)a=10b=10D)a=10,b=10

6.有如下程序段:

inta=3,b=15;

floatf=7.5;

printf(“%.1f”,(float)a+b/2+(int)f%3);

执行该程序段后,运算结果为:

()

A)11.5B)11.0C)11D)12.0

7.数字字符0的ASCII值为48,若有以下程序

main()

{chara='1',b='2';

     printf("%c,",b++);

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

}

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

A)3,2  B)50,2  C)2,2  D)2,50

8.有以下程序

main()

{intm=12,n=34;

  printf("%d%d",m++,++n);

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

}

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

A)12353514  B)12353513  C)12343514  D)12343513

9.有以下程序

main()

{intm,n,p;

  scanf("m=%dn=%dp=%d",&m,&n,&p);

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

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(  )

A)m=123n=456p=789  B)m=123n=456p=789

C)m=123,n=456,p=789  D)123456789

10.inta=-2;printf(“%u”,a);输出为()

A)2B)-2C)65534D)65534

第五章选择结构程序设计

一、选择题

1.在C程序中,用()表示逻辑”真”。

A)1B)非0的数C)非1的数D)大于0的数

2.若有定义:

intx=2,y=3,z=4;则表达式!

(x+y)+z-1&&y+z%2的值为(  )

 A)4B)0C)1D)2

3.设inta=0,b=0,c=0;c=++a||b++;则a、b、c值分别为() 

A)010B)111C)110D)101

4.设intx=-1;执行表达式++x||++x||++x后,x的值是(  )

A)3B)2C)1D)0

5.执行语句:

inta=1,b=0,c;c=a>0||++b;后,b的值为()

A)0B)1C)2D)不确定

6.设intx,y,z=4;x=y=++z;x=(y>z)?

x+2:

x++;则x的值是()

A)4B)5C)6D)7

7.为表示关系x>y>=z,则正确的c语言表达方式为(  )。

A)(x>y>=z)B)(x>y)and(y>=z)

C)(y=z)D)(x>y)&(y>=z)

8.若变量ch为char类型,能正确判断出ch为大写字母的表达式是()

A)’A’<=CH<=‘Z’B)(ch>=’A’)||(ch<=’Z’)

C)(‘A’<=ch)and(‘Z’>=ch)D)(ch>=’A’)&&(ch<=’Z’)

9.若变量已正确定义,语句”if(x>y)z=0;elsez=1”和()等价。

A)z=(x>y)?

1:

0B)z=x>y;C)z=x<=y;D)x<=y?

0:

1

10.最适合解决选择结构”a>=0,则b=1;否则b=0”的语句是()

A)ifB)if—elseC)switchD)嵌套的if--else

11.若a=3,执行下列语句后,b的值为(  )

if(a>=2)if(a!

=2)b=3;elseb=2;elseb=1;

A)0B)1C)2D)3

12.若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a

a:

c

c:

d的值(  )

A)1B)2c)3D)4

13.有以下程序

main()

{

  inta,b,d=25;

a=d/10%9;

  b=a&&(-1);

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

}

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

A)6,1  B)2,1  C)6,0  D)2,0

14.有以下程序

main()

{inti=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

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

}

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

A)123B)234C)223D)233

15.有以下程序

main()

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

if(a=1)b=1;c=2;

elsed=3;

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

}

程序输出(   )

A)0,1,2,0  B)0,0,0,3  C)1,1,2,0  D)编译有错

二、填空题

1.条件判断语句包括if语句和语句。

2.判断两个(float)变量x,z是否相等,一般语句:

if()。

3.表达式1<0<2的值是

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

main()

{

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

  if(b

  if(a

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

}

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

main()

{

  inta,b,c

  a=10;b=20;c=(a%b<1)||(a/b>1);

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

}

三、写出程序运行的结果

【程序1】voidmain()

{ charc1=97;

if(c1>=’a’&&c1<=’z’)

printf(“%d,%c”,c1,c1+1);

elseprintf(“%c”,c1);

}

【程序2】#include

main()

{intx=1,y=1,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;

case1:

b++;

case2:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

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

 

【程序3】#include输入:

3210 输出结果:

main()

{charc;

while((c=getchar())!

=’\n’)

{switch(c-‘1’)

{case0:

case1:

putchar(c+2);

case2:

putchar(c+3);break;

case3:

putchar(c+4);

default:

putchar(c+1);break;

}

printf(“\n”);

}

 

四、程序设计

1.下列程序实现从键盘接收3个数,输出最大数和最小数

 

2.输入一百分制的成绩,输出他的等级,90以上“A”等,80-89为“B”等,70-79为“C”等,60-69为“D”等,60以下为“E”等。

 

第六章循环控制

一、选择题:

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

A)do-while语句构成的循环不能用其它语句构成的循环来代替

B)do-while语句构成的循环只能用break语句退出

C)do-while语句构成的循环,在while后的表达式为非零时结束循环

D)do-while语句构成的循环,在while后的表达式为零时结束循环

2.设有程序段:

    intk=10;

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

则循环体执行的次数为( )

A)10次  B)9次  C)0次  D)1次

3.有以下循环:

inti;

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

循环次数为:

()

A)10B)5C)6D)7

4.语句while(!

end);中的条件!

end等价于()

A)end==0B)end!

=1C)end!

=0D)-end

5.执行下列语句后,运行结果为()

main()

{inti=3,j;

j=++i+i++;

printf(“%d\n”,j);

}

A)6B)7C)8D)9

6.设变量y值为3,执行下列循环语句后,变量y的值的是()

doy++;while(y++<4);

A)3B)4C)5D)6

7.执行语句for(I=1;I++<4;);后变量I的值是()

A)3B)4C)5D)0

8.下列()循环不是无限循环

A)for(y=0;x=1;++y);B)for(;;x=0);

C)while(x=1){x=1;}D)for(y=0,x=1;x>++y;x++)

9.有以下程序

main()

{inta=1,b;

for(b=1;b<=10;b++)

{if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

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

A)3B)4C)5D)6

10.下列程序运行的结果是(  )

#include

main()

{inty=10;

do{y--;}while(--y);

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

A)-1B)-2D)1D)0

二、程序填空

【程序1】求两个整数m和n最大公约数。

#include

main()

{intm,n,a,b,r;

scanf(“%d%d”,&m,&n);

a=m;b=n;

do{r=;

a=b;

b=;

}while();

printf(“Thegreatestcommondivideof”);

printf(“%d,%dis%d\n”,m,n,a);

}

【程序2】下列程序的主要功能是计算并输出

(1)×(1+2)×(1+2+3)×…×(1+2+…+10),将程序中横线处缺少的部分填上。

Main()

{float,x;

inti,j;

for(I=1;i<11;i++)

{;

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

y=y*x;

}

printf(“%f\n”,y);

}

三、阅读程序,写出运行结果

[程序1]#include

main()

{intI,m=0,n=0,k=0;

for(I=5;I<=7;I++)

switch(i/6)

{case0:

m++;n++;

case6:

n++;break;

default:

k++;n++;

}

printf(“%d,%d,%d\n”,m,n,k);

}

 

【程序2】#include“stdio.h”

main()

{intI,j;

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

{for(j=0;j

printf”%d”,I);

printf(“*\n”);

}

}

 

【程序3】有如下程序

main()

{intn=8;

while(n>5)

{n--;

printf(“%d”,n);}

}

则该程序输出的结果是:

 

 

【程序4】main()

{inti,j,k;

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

{for(k=0;k<=5-i;k++)printf(“”);

for(j=0;j<2*i-1;j++)printf(“*”);

printf(“\n”);

}

}

 

四、程序设计

1.编写程序打印以下图案(必须使用循环结构,直接输出不给分)

1

23

456

7890

 

2.求出10到100内能同时被2、3、7整除的数,并输出。

 

3.从键盘输入若干学生成绩,找出并输出最高和最低成绩,当输入成绩为负值是结束。

 

4.计算1~500之间(即从1到500)的全部"完数"之和。

所谓"完数"是指一个数,它是所有因子之和等该数

5."百马百担"问题。

有100匹马驮100担货,每匹大马每次驮3担,每匹中马每次驮2担,2匹小马每次分驮1担。

编写程序求大、中、小马的匹数(大、中、小马的匹数均不得为0)。

6.求s=2/1-3/2+5/3-8/5+...前20项的值

7.输入一行字符(以回车结束输入),统计其中数字、字母和其它字符的个数。

第七章数组

一、选择题:

1.数组定义为inta[10][10];,则数组a有()个数组元素。

A)100B)81C)20D)121

2.以下一维数组a的正确定义是()

A)inta(10);B)intn=10,a[n];

C)intn;D)#defineN10

Scanf(“%d”,&n);inta[N];

Inta[n];

3.设有语句”inta[]={3,4,5,9,8,7};”则表达式a[1]-a[4]的值是()

A)-6B)6C)-4D)2

4.以下不能正确定义二维数组的是(  )

A)inta[2][2]={{4},{5}};B)inta[][2]={4,5,6,7};

C)inta[2][2]={{4},5,6};D)inta[2][]={{4,5},.{6,7}};

5.有以下程序

main()

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

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

    { for(j=1;j<=i;j++)printf("%c",'');

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

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

当前位置:首页 > 工程科技 > 能源化工

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

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