C语言程序设计任务驱动式教程-课后练习题及答案_第1页
C语言程序设计任务驱动式教程-课后练习题及答案_第2页
C语言程序设计任务驱动式教程-课后练习题及答案_第3页
C语言程序设计任务驱动式教程-课后练习题及答案_第4页
C语言程序设计任务驱动式教程-课后练习题及答案_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XJ向北X会聊2我本秀落

HEBEICOLLEGEOFINDUSTRYANDTECHNOLOGY

©语言福本核计偏后思考与制称

1

第一单元

1.讨论题

(I)讨论C程序的结构是由哪几个部分组成的。

(2)C语言中注释的作用。

(3)在编写C语言程序时,需要注意的编码规范有哪些?

2.选择题

(I)C语言属于下列哪类计算机语言?

A.汇编语言B.高级语言C.机器语言D.以上均不属于

(2)一个C程序是由(X

A.f主程序和若干子程序组成

B.一个或多个函数组成

C.若干过程组成

D.若干子程序组成

(3)TC程序的执行是从(\

A.main函数开始,直到main函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D.main函数开始,直到最后一个函数结束

(4)C语言语句的结束符是(工

A.回车符B.分号C.句号D.逗号

(5)以下说法正确的是(X

A.C程序的注释可以出现够序的任何位置,它对程的编请隔亍不起任I可作用

B.C程序的注释只能是一行

C.C程序的注释不能是中文文字信息

D.C程序的注释中存在的错误会被编译器检查出来

(6)以下说法正确的是(1

A.C程序中的所有标识符都必须小写

B.C程序中关键字必须〃与,其他标识符不区分大小写

C.C程序中所有标识符都不区分大小写

D.C程序中关键字必须/J泻,其他标识符区分大小写

3.填空题

(DC语言源程序文件的后缀是,编译后生成目标文件的扩展名是,经

过连接后生成可执行文件的扩展名是。

(2)C程序多行注释是由和所界定的文字信息组成的。

(3)源程序的执行要经过、、和4个步骤。

4.编程题

(1)试编写一个C程序并上机调试,运行后能输出以下信息。

**************************************

Thisismyfirstprogram.

**************************************

(2)编写程序,用"*"输出字母C。

第二单元

1.讨论题

(I)C语言为什么规定对所有用到的变量都要"先定义,后使用"?

(2)定义变量时一定要赋初值吗?不赋初值的变量一定不能用吗?

(3)不同类型数据之间在进行运算时,结果类型应该如何确定?

(4)C语言中常量、变量命名规范是什么?

2.选择题

(1)以下正确的C语言标识符是(\

A.%XB.a+bC.al23D.test!

(2)已定义inta,b;则以下不正确的C语句是(\

A,a*=5;B.b/=2;C.a+=1.75;D.b%=a;

(3)若x、i、j和k都是整型变量,则执行下面的表达式后x的值为(1

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

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

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

A.必须是字母B.必须为下画线

C.必须为字母或下画线D.可以是字母、数字、下画线中的任一字符

(5)下面正确的字符常量是(

A."c"B.'\\"C.'w'D."

6)设x、y均为float型变量,则以下赋值语句不合法的是(

A,++x;B.y=(x%2)/10;

C.x*=y+8;D.x=y=0;

(7)下列不正确的转义字符是(

A.*\\'B.'C.'\19'D.1\01

(8)下列不是C语言常量的是(

A.e-2B.074C.%"D.''0'

9)若定义了intx;则将x强制转化成双精度类型应该写成(

A.(double)xB.x(double)

C.double(x)D.(x)double

10)在C语言中,要求参加运算的数必须是整数的运算符是(

A./B.*C.%D.=

4

第单元c语言程序设计基础

(11)为了计算s=10!(即10的阶乘),贝h变量应定义为(I

A.intB.unsignedC.longD.以上3种类型均可

3.填空题

(1)字符常量使用一对界定单个字符,而字符串常量使用一对来界定若

干个字符的序列。

(2)在C语言中,不同运算符之间运算次序存在的区别,同一运算符之间运

算次序存在的规则。

(3)字符串“hell。”的长度是。

(4)下列程序的运行结果是_______。

voidmain()

(

intx=5;

inty=10;

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

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

)

4.编程题

⑴请用C语言描述一个学生的年龄、身高、体重、性别,并输出到显示器上。

(2)编写程序:假定银行定期存款的年利率为2.25%,并已知存款期为n年,存款本

金为x元,试编程计算n年后可得到本利之和是多少。

第三单元

1.讨论题

(1)在使用输入输出函数时,若不写上编译预处理命令#linclude<stdio.h>,对程序执

行的结果有何影响?

(2)在C语言中,我们经常使用的语句有哪些?

(3)常用的输入输出格式控制符有哪些?

(4)格式化的输入函数和格式化的输出函数使用方法有哪些区别?

2.单选题

(1)阅读下列程序,当输入数据的形式为:25,13,10,正确的输出结果为(\

#include<stdio.h>

voidmain()

(

intx,y,z;

n

scanf(%dz%d”,&x,&y,&z);

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

)

A.x+y+z=48B.x+y+z=35

C.x+z=35D,不确定值

(2)以下程序的运行结果是(\

include<stdio.h>

voidmain()

(

inta=2,b=5;

printf(na=%%d,b=%带d",己,b);

)

A.a=%2,b=%5B.a=2,b=5

C.a=%%d,b=%%dD.a=%d,b=%d

(3)putchar函数可以向终端输出一个(I

A.整型变量表达式值B.实型变量值

C.字符串D.字符或字符型变量值

(4)已知有定义inta=-2和输出语句printf("%81x",a);,以下叙述正确的是(\

A.整型变量的输出格式只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据

C.%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的

6

第•单元选择结构程序设计

D.%81x不是错误的格式符,其中数字8规定了输出字段的宽度

(5)已知ch是字符型变量,下面不正确的赋值语句是(I

A.ch=1a+b1;B.ch=1\Or;C.ch='7'+'9';D.ch=7+9;

3.分析程序并上机操作

(1)以下程序的输出结果是(X

include<stdio.h>

voidmain()

(

intn=2,m=2;

printf3d〃,++m,n―);

}

(2)以下程序的输出结果是(1

#include<stdio.h>

voidmain()

(

inta=325;

doublex=3.1415926;

printf(na=%dx=%4,2f\nn,a,x);

)

(3)若x为int型变量,则执行下列语句后x的值是(1

x=7;

x+=x-=x+x;

(4))程序运行时输入:12〈回车〉,执行后输出结果是(I

#include<stdio.h>

voidmain()

{charchlzch2;intnlzn2;

chl=getchar();ch2=getchar();

nl=chl-10,;n2=nl*10+(ch2-*0*);

u

printf(%d\n"zn2);

4.编程题

(1)求ar+b=0的解,a、b的值由键盘输入。

第•单元选择结构程序设计

(2)正确分离出一3位正髅的个位十位、百彳谈字,并将结果分别显示在屏幕上。

第四单元

1.讨论题

(1)嵌套if语句和多重if语句有何区别?举例说明在实际编程过程中,这两种选择依

据能否用来解决相同的问题?

(2)多重if语句与switch语句能否相互替换?考虑其分别适用的场合。

2.选择题

(1)逻辑运算符两侧运算对象的数据类型(I

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

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

(2)判断char型变量ch是否为大写字母的正确表达式是(1

A.'A'<=ch<='Z'B.(ch>='A')&(ch<=Z)

C.(ch>='A')&&(ch<='Z')D.(ch>='A')AND(ch<='Z')

(3)已知intx=10,y=20,z=30;,以下语句执行后x、y、z的值是(1

if(x>y)

z=x;x=y;y=z;

A.x=10,y=20,z=30B.x=20,y=30,z=30

C.x=20,y=30,z=10D.x=20,y=30,z=20

(4)当a=l,b=3,c=5,d=4时,执行完下面的程序段后,x的值是(\

if(a<b)

if(c<d)

elseif(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

A.1B.2C.3D.6

3.分析程序并上机操作

(1)下列程序的运行结果是什么?

main()

第•单元选择结构程序设计

intx,y,z;

x=y=z=l;

——x&&——y||——z;

Hn

printf(x=%d\ty=%d\tz=%d\nfxryfz);

x=y=z=-l;

++x||++y||++z;

printf(nx=%d\ty=%d\tz=%d\nn,x,y,z);

x=y=z=O;

x——&&++v&&++z;

printf(nx=%d\ty=%d\tz=%d\nn,x,y,z);

)

(2)下列程序的运行结果是什么?

main()

{

inta=l,b=0;

switch(a)

(

case1:

switch(b)

(

caseO:printf(n**o**");break;

case1:printf(H**l**n)/break;

)

case2:printf(n**2**n);break;

)

}

4.填空题

(1)以下程序运行后的了输出结果是______.

#include<stdio.h>

voidmain()

{inta=lzb=2zc=3;

n

if(c=a)printf(%d\n"zc);

H

elseprintf(%d\n"zb);

}

(2)设y是int型变量,请写出判断y为奇数的关系表达式______

第•单元选择结构程序设计

(3)若从键盘输入58,则以下程序输出的结果是_____。

#include<stdio.h>

voidmain()

{inta;

scanf("超d",&a);

n

if(a>50)printf("%dza);

if(a>40)printf(n%dH,a);

if(a>30)printf(n%dn,a);

}

(4)以下程序的输出结果是_____。

#include<stdio.h>

voidmain()

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

d=(a>b>c);

,,

printf(%d\n"zd);

}

(5)以下程序运行后的输出结果是______«

#include<stdio.h>

voidmain()

{intp=30;

printf(n%d\n",(p/3>0?p/10:p%3));

)

5.编程题

(I)编写程序,判断通过键盘输入的字符属于哪一类字符(大写字母、小写字母、数

字或其其它字符I

(2)假设国家对个人收入所得税起征点为5000元,超过部分要征收个人所得税,未超

过3000的部分征收3%,超过3000至I」12000的部分征收10%,超过12000到25000的部

分征收20%。编写程序输入个人当月税前收入,计算个人所得税及个人实际收入。

(3)从键盘输入3个数据,然后按照从小到大的11褥输出。

(4)某厂对产品进行分级,产品性能在90分以上,则该产品定为A级产品;性能在

80-89分,则定为B级产品;如果性能得分为60-79分之间,则定为C级;产品性能在60

分以下,则该产品定为D级产品。试编写一程序实现对该厂产品进行分级评定。

第五单元循环

1.讨论题

三种循环语句适用什么循环的情况,比如:固定次数的循环和不固定次数的循环

等。

2.选择题

(1)以下程序段是(I

x=-l;

do

(

x=x*x;

)

while(!x);

A.死循环B.循环执行二次C.循环执行一次D.有语法错误

(2)执行语句for(i=l;i++<4;);后变量i的值是(\

A.3B.0C.5D.不定

(3)循环语句for(x=0,y=0;(y!=I23)||(x<4);x++);的循环执行次数为(\

A.无限次B.不确定次数C.4次D.3次

(4)假定a和b为int类型变量,则执行以下语句后b的值为(X

a=l;b=10;

do

{

b-=a;

a++;

}while(b―<0);

A.9B.-2C.-1D.8

(5)C语言中while和do-while循环的主要区别是(I

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能为复合语句

(6)以下描述正确的是(\

11

第单元循环结构程序设计

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循环体内使用break语句和continue语句的作用相同

D.从多层循环嵌套中退出时,只能用goto语句

3.分析程序并上机操作

(1)以下循环体的执行次数。

#include<stdio.h>

voidmain()

(

intizj;

for(i=0,j=l;i<=j+l;i+=2,j-)

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

}

(2)以下程序的输出结果。

#include<stdio.h>

voidmain()

(

ints,i;

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

printf("gd\n",s);

)

(3)以下程序的输出结果。

#include<stdio.h>

voidmain()

{

inty=10;

while(y——);

printf(ny=%d\n'\y);

}

4.填空题

(1)以下程序的功能是计算:1+12+123+1234+12345。请填空。

#include<stdio.h>

voidmain()

第单元循环结构程序设计

intt=O,s=O,i;

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

(

t=i+_;

s=s+t;

)

printf(、's=%d\n〃,s);

}

(2)以下程序的功能是计算自然数1-10的偶数和。请填空。

#include<stdio.h>

voidmain()

(

inti,s=0;

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

n

printf(%d\n"zs);

}

5.编程题

(1)判断字符类型,直到输入‘#‘结束。

(2)循环输入年份月份,输出该月份的天数,直到年份输入0结束。

(3)请将计算器程序改为循环程序。

(4)尝试将第4章的选择结构程序改为循环。

(5)输出以下图案:

**

***

****

第六单元数组

1.选择题

(1)在C语言中,引用数组元素时,其数组下标的数据类型允许是(\

A.整型常量B.整型表达式

C.整型常量或整型表达式D.任意类型的表达式

(2)以下程序段执行后,输出结果是(1

charstr[]="ab\n\\012\\\";

printf(n%d",strlen(str));

A.1B.9C.7D.10

(3)判断字符串si是否大于字符串s2,应当使用(\

A.if(sl>s2)B.if(strcmp(sl,s2))

C.if(strcmp(s1,s2)>0)D.以上都不正确

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

#include<stdio.h>

voidmain()

(

inta[6]zi;

for(i=l;i<6;i++)

(

a[i]=9*(i-2+4*(i>3))%5;

nn

printf(%2dza[i]);

)

)

A.-40403B.-40443

C・-40404D.-40440

(5)下面的说明语句正确的是(\

A.intA[][]B.intA['a']

C・int*A[10]D.intA[]

(6)以下程序的输出结果是(\

#include<stdio.h>

voidmain()

(

intiza[10];

for(i=9;i>=0;i——)

14

第单元数组

a[i]=10-i;

n

printf(%d%d%d",a[2]za[5],a[8]);

}

A、258B、741C^852D、369

(7)以下不能正确定义二维数组的选项是()。

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

C.inta[2][2]={{l},2,3};D.inta[2][]={{1,2},{3,4});

(8)以下程序的输出结果是(1

#include<stdio.h>

voidmain()

(

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=O;

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

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

s+=a[i][j];

printf(u%d\nn,s);

}

A.18B.19C.20D.21

(9)以下程序的输出结果是(I

#include<stdio.h>

voidmain()

(

inti,x[3][3]={1,2,3,4,5,6,7,8,9};

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

nn

printf(%dz,x[i][2-i]);

)

A、1,5,9B、1,4,7C、3,5,7D、3.6.9

(10)合法的数组定义是(\

A.inta[]=,,stringn;B.inta[5]={0,l,2,3,4,5);

C.chars=ustringn;D.chara口二{0,1,2,345};

2.填空题

(1)下面程序的功能是输出数组s中最大元素的下标,请填空。

#include<stdio.h>

voidmain()

第单元数组

intk,p;ints[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])___;

printf(n%d\nn,k);

}

(2)以下程序以每行5个数据的形式输出a数组,请填空。

#include<stdio.h>

voidmain()

(

inta[50],i;

printf("输入10个整数:”);

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

scanf(%dn,_);

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

(

if(___)

printf(n%3d\nu,_______);

printf("%3d"za[i-l]);

)

)

(3)下面程序实现以下输出数组(右上半三角),请填空。

1234

678

1112

16

#include<stdio.h>

voidmain()

(

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=l;j<=i;j++)

printf("%4c",1');

for(j=;j<4;j++)

第单元数组

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

printf("\nn);

)

}

3.编程题

(I)用冒泡法对10个数进行排序(由小到大X

(2)编程实现两个字符串的连接(不用strcat函数\

(3)统计字符串中输入数字字符的个数。

第七单元函数

1.讨论题:

(1)在程序中为什么要使用函数?

(2)有参函数是如何声明的?调用时应注意什么?

(3)无返回函数和有返回值函数在声明和调用时分别注意什么?

(4)在项目开发中,为什么要强调团队合作?作为一份子,如何做好自己的工作?

2.选择题

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

A.return语句中的表达式

B.调用函数的主调函数

C.调用函数时临时

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

(2)下面的描述中不正确的是(X

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

B.调用函数时,实参和形参可以共用内存单元

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

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

(3)在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是(

A.地址传递

B.值传递

第单元数组

C.由实参传递给形参,并由形参传回给实参

D.由用户指定传递方式

(4)下面的函数调用语句中含有()个实参。

inta,b,c;

intsum(intxl,intx2);

total=sum((a,b),c);

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

(5)在C语言中(\

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

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

C.函数的定义不可以嵌套,但是函数的调用可以嵌套

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

(6)关于C语言中的return语句,下面的描述正确的是(\

A.只能在主函数中出现

B.在每个函数中都必须出现

C.可以在一个函数中出现多次

D.只能在除主函数之外的函数中出现

3.填空题

(1)C语言中定义函数时如果未指定函数类型,则默认的函数类型是。

(2)C语言中没有返回值的函数类型应指定为.

(3)下面函数返回值的类型是o

floatfun(floatazdoubleb)

{returna*b;}

(4)发生函数调用时,实参和形参间的数据传递有两种方式,即和。

(5)在一个函数内部调用另一个函数的调用方式称为,在一个函数内部直接或

间接调用该函数本身的调用方式称为函数的O

(6)如果被调函数在主调函数后定义,一般应该在主调函数中或主调函数前对被调函

数进^亍.

(7)C语言中的变量按其作用域分为和,按其生存期分为

和0

(8)已知如下函数定义,其函数声明的两种写法为,o

doublefun(longm,doublen)

第单元数组

{return(m+n);}

(9)C语言中变量的存储类别包括,,和,

(10)下面程序的执行结果是.

#include<stdio.h>

intd=l;

voidfun(intp)

(

intd=5;

d+=p++;

printf(H%dn,d);

)

voidmain()

(

inta=3;

fun(a);

d+=a++;

printf(,'%d,\d);

)

4.编程题

(1)编写程序,用函数实现小型计算器的加、减、乘、除功能。

(2)编写有参函数,求两个整数中的最大值。

第八单元

1.讨论题

指针变量、指针变量作为函数参数、数组的指针和指针数组的概念与应用。

2.选择题

(1)若charsflOl,*p=s;,则下列语句错误的是(\

A.p=s+5B.s=[p+s]C.s[2]=p[4]D.*p=sfO]

(2)已知定义char**s;,下列语句正确的是(\

A.s=',computernB.*s="computer"

C.**s="computer"D.*s='A'

3)C语言主函数最多允许有()个参数。

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

4)说明语句int(*p)()的含义是(

A.p是一个指针型函数,返回值为指针

B.p是指针变量,它指向一个整型数据的指针

C.p是一个指向函数的指针,该函数的返回值为整型

D.以上答案都不对

(5)下列语句中,能表示p是一个指向整型变量的指针变量的是(X

A.int**pB.int*pC.int(*p)()D.int*pf]

(6)下列叙述中,错误的是(X

A.一个变量的地址称为该变量的指针

B.一个指针变量只能指向同一数据类型的变量

20

c.指针变量中只能存放地址

D.指针变量可以由整型数赋值

(7)若有以下定义语句:intvar,arr[10],*p;,则以下语句中非法的是(工

A.p=&varB.p=arrC.p=10D.p=&arr[5]

(8)两个指针变量不可以进行的操作是(X

A.相加B.相减C.指向同一个地址D.比较

3.填空题

(1)以下程序的功能是:从终端输入一行字符,以"$"作为结束,把该字符串存放在

字符数组S中,然后输出,请在空白处填上适当的语句使程序完整。

#include<stdio.h>

#defineMAXSIZE100

main()

(

charstr[MAXSIZE],*p;

intn;

printf(”请输入:\nn);

for(n=0;n<MAXSIZE-1;n++)

(

str[n]=getchar();

if(str[n]=='$1)

break;

)

str[n]=_______;

p=str;

printf("输出为:\n");

while(*p)

putchar(__________);

printf(”\n”);

)

(2)以下程序的执行结果是________»

#include<stdio.h>

voidf(inta,intb,int*plzint*p2)

(

*pl=a*b;

21

*p2=a%b;

)

voidmain()

(

intx,v,*P,*q;

x=10;y=4;

p=&x;

q=&y;

f(x,y,p,q);

H

printf(%dz%d\n"z*p,*q);

)

4.编程题

(1)利用指针的方法,输入学生的成绩判断等级。

(2)利用指针的方法,完成四则运算计算器。

(3)利用指针的方法,求数组中的最大数和最小数。

(4)利用指针的方法,完成10个数的排序。

第九单元:

1.讨论题

(1)简述结构体、共用体、枚举类型、动态链表的概念与特点。

(2)如何在动态链表中插入、删除结点?

(3)对于一个综合性的大型程序设计,按照软件工程理论如何进行分工合作?

2.选择题

(1)若有以下说明:

structstudent

(

charname[20];

intage;

charsex;

}b={nmahua*\20,'m'},*p=&b;

22

则下面对字符串mahua的引用方式不可以的是(

A.(*p).nameB.C.p->nameD.

(2)对于下列说明,不能使变量p->b的值增1的表达式是(1

structstr

(

inta;

int*b;

}*P;

A.*p->b++B.*++p->bC.(*(p++)->b)++D.*++((p++)->b

(3)以下程序企图把从终端输入的字符输出到名为abc.txt文件中,直到从终端读入字

符#号时结束输入和输出操作,但是程序有错误。

#includenstdio.h"

main()

(

FILE*fout;

charch;

fout=fopen(1abc.txt1,*w*);

ch=fgetc(stdin);

while(ch!=*#')

(

fputc(ch,fout);

ch=fgetc(stdin);

}

fclose(fout);

}

出错的原因是(X

A.函数fopen调用形式错误

B.输入文件没有关闭

C.函数fgetc调用形式错误

D.文件指针stdin没有定义

(4)若fp已经正确定义用旨向某个文件,当未遇到文件结束标志时函数feof(fp)的值是

23

A.0B.1C--1D.一个非0的值

(5)有如下程序:

#include<stdio.h>

main()

(

FILE*fpl;

fpl=fopen(*f1.txt*,1w');

fprintf(fpl,nabcH);

fclose(fpl);

若文本文件fl.txt中原有内容为good则运行以上程序后文件fl.txt中的内容为

A.goodabcB.abedC.abcD.abegood

(6)在fopen函数中使用的文件方式是“w+”,该方式的含义是(\

A.打开一个二进制文件读写B.打开一个文本文件读写

C.建立一个新的文本文件读写D.建立一个新的二进制文件读写

(7)在C语言中,用于关闭文件的函数是(X

A.fopenB.fseekC.ftellD.fclose

3.填空题

(1)以下程序用来统计文件中字符个数。请填空完成程序。

#include<stdio.h>

main()

(

FILE*fp;

Longnum=0L;

if(fp=fopen('fname.dat','r*)==NULL)

(

printf(nopenerror\nn);

exit(0);

}

while(_________)

(

fete(fp);num++

)

24

printf(nnum=%ld\nn,num-1);

fclose(fp);

)

(2)若fp已经正确定义为一个文件指针,dl.dat为二进制文件,请填空,以便为"读"

而打开此文件:fp=fopen();

(3)已知文本文件test.txt,其中的内容为:Hello.everyone!,以下程序中,文件test.txt

已经正确为"读"而打开,由文件指针「指向该文件,则程序的输出结果是。

•include<stdio.h>

main()

(

FILE*fr;

charstr[40];

fgets(str,5,fr);

nH

fprintf(%s\nzstr);

fclose(fr);

©语言程本微花偏后思考与制称

冬素

25

26

第一单元

1.讨论题(略)

2.选择题

(1)B(2)A(3)B(4)A(5)A(6)D

3.填空题

(1).c.obj.exe

(2)/**/

(3)编辑、编译、连接、运行

4.编程题

(1)

#include<stdio.h>

voidmain()

prjI,******************************"),

printf("Thisismyfirstprogram");

pr1tf(”******************************”)・

)

(2)

#include<stdio.h>

voidmain()

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

27

printf("*\n");

printf("*\n");

printf("*\n");

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

}

第二单元

L讨论题(略)

2,选择题(1)C(2)C(3)C(4)C(5)C(6)B(7)C(8)

A(9)A(10)C(11)C

3.填空题

(1)单引号双引号(2)优先级自左向右(3)5

(4)511

4.编程题

(1)

#include<stdio.h>

voidmain()

(

intage=18;

floatheight=180.5;

doubleweight=130.1;

chargender='M';

printf("age=%d/height=%.2f/weight=%.2lf/gender=%c\n",age/heig

28

ht,weight,gender);

)

(2)

#include<stdio.h>

#include<math.h>

voidmain()

intn;

floattotal,benjin;

print",请输入存款年限和本金:");

scanf("%d"/&n);

scanf("%f",&benjin);

total=benjin*pow(l+0.00225,11);

printf("total=%f"/total);

}

第三单元

L讨论题(略)

2.单选题

(1)A(2)D(3)D(4)D(5)A

4.分析程序题

(1)3,2(2)a=325x=3.14(3)-14(4)12

5.编程题

29

(1)

#include<stdio.h>

voidmain()

(

doublea,b,x;

printf("请输入a,b的值:");

scanf("%f%f”,&a,&b);

x=-b/a;

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

}

#include<stdio.h>

voidmain()

(

intx,a,b,c;

printf("请输入一个三位的整数:");

scanf("%d",&x);

a=x/100;

b=x/10%10;

c=x%10;

printf("百位数字a=%d十位数字b=%d个位数字c=%d”,a,b,c);

}

30

第四单元

L讨论题(略)

2.选择题

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

3.分析程序并上机操作

(1)

x=0y=lz=0

x=0y=0z=0

x=-ly=0z=0

(2)

**Q****2**

4.填空题

(1)1(2)y%2!=0或y%2(3)585858(4)0(5)3

5.编程题

(1)

#include<stdio.h>

voidmain()

(

charch;

printf("请输入一个字符:");

scanf(%c”,&ch);

if(ch>='A,&&ch<=Z)

31

printf("输入的字符为大写字母");

elseif(ch>='a'&&ch<='z')

printf("输入的字符为小写字母)

elseif(ch>=,0/&&ch<=,9,)

printf("输入的字符为数字字符)

else

printf("输入的字符为其它字符");

}

(2)

#include<stdio.h>

voidmain()

(

floatx,y,z,a;

printf("请输入个人工资:");

scanf("%f",&x);

a=x-5000;

if(a<=3000)

y=a*0.03;

elseif(a<=12000)

y=3000*0.03+(a-30

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论