C程序设计实验指导与习题集.docx

上传人:b****1 文档编号:2383785 上传时间:2023-05-03 格式:DOCX 页数:45 大小:48.44KB
下载 相关 举报
C程序设计实验指导与习题集.docx_第1页
第1页 / 共45页
C程序设计实验指导与习题集.docx_第2页
第2页 / 共45页
C程序设计实验指导与习题集.docx_第3页
第3页 / 共45页
C程序设计实验指导与习题集.docx_第4页
第4页 / 共45页
C程序设计实验指导与习题集.docx_第5页
第5页 / 共45页
C程序设计实验指导与习题集.docx_第6页
第6页 / 共45页
C程序设计实验指导与习题集.docx_第7页
第7页 / 共45页
C程序设计实验指导与习题集.docx_第8页
第8页 / 共45页
C程序设计实验指导与习题集.docx_第9页
第9页 / 共45页
C程序设计实验指导与习题集.docx_第10页
第10页 / 共45页
C程序设计实验指导与习题集.docx_第11页
第11页 / 共45页
C程序设计实验指导与习题集.docx_第12页
第12页 / 共45页
C程序设计实验指导与习题集.docx_第13页
第13页 / 共45页
C程序设计实验指导与习题集.docx_第14页
第14页 / 共45页
C程序设计实验指导与习题集.docx_第15页
第15页 / 共45页
C程序设计实验指导与习题集.docx_第16页
第16页 / 共45页
C程序设计实验指导与习题集.docx_第17页
第17页 / 共45页
C程序设计实验指导与习题集.docx_第18页
第18页 / 共45页
C程序设计实验指导与习题集.docx_第19页
第19页 / 共45页
C程序设计实验指导与习题集.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C程序设计实验指导与习题集.docx

《C程序设计实验指导与习题集.docx》由会员分享,可在线阅读,更多相关《C程序设计实验指导与习题集.docx(45页珍藏版)》请在冰点文库上搜索。

C程序设计实验指导与习题集.docx

C程序设计实验指导与习题集

第一章C语言概述

一、选择题

1.以下叙述中正确的是C。

A、在C程序中,main函数必须位于程序的最前面

B、C程序的每行中只能写一个语句

C、C语言本身没有输入输出语句,输入输出靠调用函数实现

D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2.下面叙述不是C语言特点的是B。

A、C程序简洁紧凑

B、能够方便地编写可视化程序

C、C程序可移植性好

D、C语言可以直接对硬件实现操作

3.下列叙述正确的是C。

A、程序应该尽可能短

B、为了编写的方便,程序设计者应该随意实现流程的转移

C、虽然注释会占用编程者的大量时间,但还是要尽可能对程序进行注释

D、在TurboC环境下,运行的程序就是源程序

4.C程序可以由若干函数构成,那么程序的执行是D。

A、从第一个函数开始,到最后一个函数结束

B、从第一个语句开始,到最后一个语句结束

C、从主函数(main)开始,到最后一个函数结束

D、从主函数开始,在主函数结束

5.C语言规定,在程序中相对于其它函数的位置,主函数的位置C。

A、必须在最前面

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

C、可以任意

D、必须在最后

二、填空题

1.一个C源程序中应至少包含一个主函数(或main函数)。

2.在一个C源程序中,注释部分两侧的定界符是/**/。

3.C语言源程序文件的扩展名是c,经编译后生成的目标代码的扩展名是obj,经过连接后生成可执行文件的扩展名是exe

第一章C语言概述答案

一、选择题

1.C2.B3.C4.D5.C

二、填空题

1.主函数(或main函数)2./**/3.cobjexe

第二章程序的灵魂——算法

一、选择题

1.以下叙述中错误的是D。

A、可以用N-S图表示算法

B、可以用流程图表示算法

C、可以用伪代码表示算法

D、可以用数据流图表示算法

2.下面关于算法的描述中错误的是B。

A、算法具有可执行性

B、算法具有唯一性

C、算法的每一步具有确切的含义,即确定性

D、算法的有穷性

3.下面关于算法的描述中正确的是B。

A、一个好的算法必须包含一个或多个输入

B、一个好的算法必须包含一个或多个输出

C、一个好的算法必须用流程图描述

D、一个好的算法必须用N-S图描述

4.下面不属于结构化程序设计方法的是A。

A、自内向外B、自顶向下

C、逐步细化D、模块化设计

二、填空题

1.结构化程序设计中包含的三种基本结构是顺序结构选择结构循环结构

第二章答案

一、选择题

1.D2.B3.B4.A

二、填空题

1.顺序结构选择结构循环结构

第三章数据结构、运算符与表达式

一、选择题(可能有多个选项)

1.下面标识符中,属于不合法用户标识符的是DF。

A、PAdB、a_10C、IntD、signedE、_intF、a#b

2.下面标识符中,属于合法的用户标识符是ABE。

A、dayB、E2C、3ABD、enumE、aF、long

3.以下C是不正确的转义字符。

A、'\\'B、'\''C、'\081'D、'\0'E、'\n'F、'\xab'

4.若干个int型、char型数据进行算术运算,其结果的数据类型是A。

A、intB、charC、longD、doubleE、float

5.若干个char型、float型数据进行算术运算,其结果的数据类型是D。

A、intB、charC、longD、doubleE、float

6.若干个int型、unsigned型、char型数据进行算术运算,其结果的数据类型是C。

A、intB、charC、longD、doubleE、float

7.若x为int型变量,且x=6,则执行下面的赋值运算后,表达式的值是B。

x+=x-=x*x

A、36B、-60C、60D、-24

8.以下选项中,合法的实型常量是ADF。

A、.2345B、8C、1E2.0D、.1e3E、23.2eF、1.24

9.下面非法的整型常量有AB。

A、019B、ox123C、2LD、0XffE、0x4deF、0L

10.若干变量已正确定义,以下合法的赋值表达式是C。

A、a=1/b=2B、++(a+b)C、a=a/(b=5)D、y=int(a)+b

11.以下叙述中错误的是C。

A、在C程序中,Abc和abc是两个不同的标识符

B、在C程序中,变量代表内存中的一个存储单元,它的值可以根据需要变化

C、在C程序中,无论是整数还是实数,都能准确无误地表示

D、在C程序中,一个正整数可以用十进制、八进制和十六进制的形式表示

二、填空题

1.无符号整型变量共有3种形式,其类型标识符的简单形式为unsigned、和。

2.C语言中共提供了6种整型变量,不同类型的整型变量其能够表达的数据的范围是不一样的,写出下面几种类型能表示数据的范围。

int:

,unsigned:

3.写出下面各种类型变量在内存中占据的字节数:

char:

,int:

,long:

,float:

,double:

三、问答题

1.字符常量与字符串常量有什么区别?

2.一个变量被定义后没有被初始化,是不是表示变量中没有值?

3.写出下面表达式运算后a的值,假设最初a=10,n=3,a、n均为整型。

a+=a

a-=2

a*=2+3

a/=a+a

a%=(n%=2)

a+=a-=a*=a

4.计算下面算术表达式的值,设a,b为int型,x,y为float型,且a=2,b=3,x=3.5,y=2.5。

x+a%3*(int)(x+y)%2/4

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

5.计算表达式的值和a,b,c的值。

a=b=c=3

a=13+(c=18%4)

a=(b=12/5)+(c=3)

a=(b=5)+(c=4)

x=3*4,x*5

(a=4*5,a*3),a+10

x='A',x%5

x=30%8/2,x+10

x=8,x%=x+5

6.将下面的数学式子写成C语言表达式。

第三章答案

一、选择题

1.DF2.ABE3.C4.A5.D6.C

7.B8.ADF9.AB10.C11.C

二、填空题

1.unsignedshortunsignedlong

2.-32768~327670~65535

3.12448

三、问答题

1.字符常量是用单撇号括起来的一个字符,而字符串常量是用一对双撇号括起来的一串字符,每个字符串的最后都有一个字符串终止标记\0。

可以用字符常量为字符变量赋值,但是不能将一个字符串给字符变量赋值。

2.一个变量定义后如果没有被初始化,其存储单元中会有一个不确定的值,只是该值没有意义,所以我们说该变量没有定义。

3.⑴20⑵8⑶50⑷0⑸0⑹0

4.⑴3.5⑵3.5

5.⑴表达式的值是3,a=3,b=3,c=3⑵表达式的值是15,a=15,c=2

⑶表达式的值是5,a=5,b=2,c=3⑷表达式的值是9,a=9,b=5,c=4

⑸表达式的值是60⑹表达式的值是30,a=20

⑺表达式的值是0⑻表达式的值是13

⑼表达式的值是8

6.sqrt(x+2*y)-exp(3*x)+fabs(x)

第四章最简单的C程序设计—顺序结构程序设计

一、选择题

1.已知a,b是int型数据,x,y是float型数据,且各变量已经被正确赋值。

以下正确的赋值语句是。

A、a=1,b=2B、y=(x%2)/10;C、x*=y+2;D、a+b=x;

2.a,b,c是整型变量且已正确赋值,下面符合C语法的表达式是。

A、a%=7.6B、a++,a=7+b+cC、int(12.3)%4D、a=c+b=a+7

3.若m为float型变量,则执行以下语句后的输出为。

m=12.567

printf("%-8.2f\n",m);

printf("%8.2f\n",m);

4.若n为int型数据,x为float型数据,则执行下面语句后的输出结果为。

n=12345;x=12.0;

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

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

5.若x是int型变量,y是float型变量,所用的scanf形式如下:

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

则为了将数据10和66.6分别赋值给x和y,正确的输入应该是。

x=10

y=66.6

10

66.6

A、x=10,y=66.6B、1066.6C、D、

6.若有下面的定义和语句:

inta,b,c;

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

为了给变量a,b,c分别输入10,20,30,下面不正确的输入形式是。

10,20,30

1020

30

10

20

30

10

2030

A、B、C、D、

7.若有以下的定义和语句:

intu=010,v=0x10,w=10;

printf("%d,%d,%d\n",u,v,w);

则输出结果是。

A、10,10,10B、8,8,10C、8,10,10D、8,16,10

8.若有下面的定义和语句:

inta=-2;

printf("%d,%u,%o,%x\n",a,a,a,a);

则输出结果为:

A、-2,-2,-2,-2B、65534,65534,65534,65534

C、-2,65534,177776,ffffeD、-2,-2,177776,ffffe

9.有以下程序:

main()

{unsigneda=32768;intb;

b=a;

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

}

程序执行后的输出结果是。

A、b=32768B、b=32767C、b=-32768D、b=-1

10.已知int型变量i,j,k的值分别为3,4,5,执行下面的表达式:

k+=++i+j++

后,k,i,j的值为。

A、7,3,4B、14,4,5C、13,4,4D、13,4,5

二、填空题

1.后面给出的表达式x++、++x、x=x+1、x=1+x计算后都可以使x的值增加1,请写出一条具有同一功能的表达式,用来代替上面各表达式。

2.对于下面的程序

main()

{intx,y;

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

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

}

程序执行的时候输入:

1234567

则输出结果是。

3.在C程序中,很多函数的使用必须要包含相应的库函数,例如:

使用getchar函数要包含,使用fabs函数要包含等。

但是使用scanf和printf就不需要包含相应的库函数,因为启动TC的时候已经自动将其加载了。

4.对于下面的程序

main()

{chara,b,c;

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

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

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

}

程序运行时输入123,输出结果是。

三、问答题

1.C语句用来让计算机产生一定的操作,每个C语句都由分号(;)结束,但到目前为止有一类程序行是用分号结束的,但不是语句,请说出这类程序行的名称并说明不是语句的原因。

2.TurboC中,什么情况下int型数据与char型数据是可以通用的?

3.如果将一个超出int型表示范围的long数据给一个int型数据赋值,是否会出现语法错误?

为什么?

第四章答案

一、选择题

1.C2.B3.A4.B5.A6.D

7.D8.C9.D10.D

二、填空题

1.x+=12.5793.stdio.hmath.h4.495051123

三、问答题

1.变量声明部分(如inta,b,c;)虽然含有分号,但不是语句,因为其作用是在编译期间为变量分配存储空间,在执行的时候不产生操作,因此不是语句。

2.由于char数据占据一个字节的存储空间,而int型数据占据两个字节的存储空间,因此在其交集范围内就是可以通用的。

也就是说当int型数据范围在0~255时就是可以通用的范围。

3.不会出现语法错误。

因为long数据占四个字节存储空间,int型数据占两个字节存储空间,当将一个long型数据给int型数据赋值时,是将其两个低字节的内容赋值给int型变量。

但是此时数据的值会发生变化。

第五章选择结构程序设计

一、选择题(第1小题的答案多于一个)

1.选择出合法的if语句(假设其中出现的变量均为整型且已正确赋值)

A、if(a=b)x++;B、if(a=

D、if(a>=b)x++E、if(a<=b<=c)x++;F、if

(1)x++;

2.以下运算符中优先级最高的是,优先级最低的是。

A、&&B、!

C、!

=D、||E、?

:

F、==

3.用以判断字符型变量c1的值是否为小写字母的最简单且正确的表达式为。

A、'a'<=c1<='z'B、c1>=a&&c1<=z

C、'a'<=c1||'z'>c1D、c1>='a'&&c1<='z'

4.已知a是int型变量,不能正确表达数学关系10

A、1010&&a<15

C、a==11||a==12||a==13||a==14D、!

(a<=10)&&!

(a>=15)

5.x为奇数时值为“真”,x为偶数时值为“假”的表达式是。

A、!

(x%2==1)B、x%2==0

C、x%2D、!

(x%2)

6.有以下程序:

main()

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

if(b

if(b<0)c++;b++;

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

}

程序的输出结果是。

A、b=1,c=2B、b=1,c=0C、b=2,c=2D、b=1,c=1

7.有以下程序

main()

{intn;

scanf("%d",&n);

if(n++<5)printf("%x\n",n);

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

}

若程序执行时从键盘输入9,则输出结果是。

A、11B、AC、9D、8

8.若变量x=3,y=2,z=1,则表达式z*=(x>y?

++x:

y++)的值是。

A、4B、3C、1D、0

9.若有以下定义:

floatx;inta,b,c=2;

且a,b,x都有合理的值,则正确的switch语句是。

A、

switch(int(x))

{case1:

printf("*\n");

case2:

printf("**\n");

}

switch(x)

{case1.0:

printf("*\n");

case2.0:

printf("**\n");

}

C、

 

B、

switch(a+b)

{case1:

printf("*\n");

casec:

printf("**\n");

}

switch(a+b)

{case1:

printf("*\n");

case1+2:

printf("**\n");

}

D、

 

10.已知x=6,y=4,z=5,执行以下语句后,能正确表示x,y,z值的选项是。

if(x

A、x=4,y=5,z=6B、x=4,y=6,z=6

C、x=4,y=5,z=5D、x=5,y=6,z=4

二、填空题

1.C语言中提供了6个关系运算符,这些运算符的优先级分为两个档次,其中优先级较高的运算符是,优先级较低的是。

2.在逻辑运算符中,先级最高的是,次是,最低的是。

3.表达式3&&4的值是。

4.已知:

a=4,b=5,c=6,执行下面的表达式:

(a=5)||(b=4)||(c=3)后,a,b,c的值为。

5.若w=1,x=2,y=3,z=4,则条件表达式w

w:

y

y:

z的值为。

三、问答题

1.将以下条件写成C语言逻辑表达式:

p

x>0并且x≤15

x+y>10并且x-y<0

1≤a≤8并且1≤b≤8

2.语言中如何表示“真”和“假”?

系统如何判断一个量的“真”和“假”?

第五章答案

一、选择题

1.ACEF2.B3.D4.A5.C6.C

7.B8.A9.B10.C

二、填空题

1.优先级较高的四个运算符:

>>=<<=优先级较低的两个运算符:

==!

=

2.!

&&||3.14.5565.1

三、问答题

1.⑴p0&&x<=15

⑶x+y>10&&x-y<0⑷(a>=1&&a<=8)&&(b>=1&&b<=8)

2.语言中用1表示“真”,用0表示“假”。

系统把值为非零的量当作“真”处理,把零当成“假”处理。

例如3&&4认为是两个“真”的量做逻辑与运算。

第六章循环控制

一、选择题

1.以下while循环中,循环体执行的次数是。

k=1;

while(--k)k=10;

A、10次B、无限次C、一次也不执行D、1次

2.有以下程序段,其中n是整型变量,其输出结果是。

n=2;

while(n--);printf("%d",n);

A、2B、10C、-1D、0

3.若变量已正确定义,以下不能正确计算1+2+3+4+5的程序段是。

A、i=1;s=1;do{s=s+i;i++;}while(i<5);

B、i=0;s=0;do{i++;s=s+i;}while(i<5);

C、i=1;s=0;do{s=s+i;i++;}while(i<6);

D、i=1;s=0;do{s=s+i;i++;}while(i<=5);

4.有以下程序段,其中x为整型变量:

x=-1;do{;}while(x++);printf("x=%d",x);

以下选项中正确的是。

A、该循环没有循环体,程序错误B、输出:

x=1

C、输出:

x=0D、输出:

x=-1

5.下面程序的输出结果是。

main()

{inti;

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

if(i>4){printf("%d",i++);break;}

printf("%d",i++);

}

A、55B、56

C、程序错误,没有输出D、循环条件永远为真,死循环

6.设已定义i和k为int型变量,则以下for循环语句。

for(i=0;k=-1,k=1;i++,k++)

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

A、判断循环结束的条件不合法B、是无限循环

C、循环一次也不执行D、循环只执行一次

7.以下程序的输出结果是。

main()

{inti;

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

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

elsecontinue;

printf("#");

}

printf("$\n");

}

A、*#*#*#$B、#*#*#*$C、*#*#$D、#*#*$

8.下面程序的输出结果是。

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

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

main()

{inty=10;

doy--;while(y--);

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

}

A、程序错误B、死循环C、-1D、0

10.有如下程序

main()

{inti,sum;

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

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

}

该程序的执行结果是。

A、6B、3C、死循环D、0

二、填空题

1.当while或do-while结构中while后括号中的表达式为空的时候,相当于循环条件是。

2.for语句中含有三个表达式,其中表达式1循环,表达式2相当于循环的,表达式3循环,且在之后执行。

*

***

*****

*******

*********

3.找规律,打印出如图所示的图形。

其中最上部的*出现在第15列上。

main()

{inti,j,k;

for(i=0;i<=【1】;i++)

{

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

printf("%c",'');

for(k=0;k<=【3】;k++)

printf("%c",'*');

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2