C语言秋季作业试题和答案.docx
《C语言秋季作业试题和答案.docx》由会员分享,可在线阅读,更多相关《C语言秋季作业试题和答案.docx(20页珍藏版)》请在冰豆网上搜索。
C语言秋季作业试题和答案
[0039]《C语言》讲师:
邹显春
Z的值是3
i=1,max=0或max=i=0;max=i; a[max]
36、设intm=3;floatn=12.6;charch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:
3,12.6a<回车换行>,则scanf语句应是___________。
“%d,%f%c”,&m,&n,&ch
37、设inti;floatf=3.14;,执行i=(int)f;后,变量f的值是____________。
3.14
38、若定义函数时类型缺省,则该函数默认的类型是___________。
extern
39、 设chars[]=”’Name\Address”;,s的长度是___________。
15
40、 设floata,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是____________。
(a+b=c)&&(a+c=b)&&(b+c>a)
41、编写C语言程序的一般步骤什么?
在VC环境下,调试程序的基本步骤有哪些?
调试程序中常见的错误有哪些?
如何解决发现这些错误?
编写C语言程序的一般步骤:
分析问题、构建算法、描述算法、编码、调试。
在VC环境下,调试程序的基本步骤有编辑、编译、连接、执行
调试程序中常见的错误有语法错误和逻辑错误。
其中语法错误通过编译来实现,逻辑错误通过单步追踪和设置断点的方法来发现逻辑错误。
42、在C语言为什么规定对所有用到的变量要"先定义,后使用”?
这样的做有什么好处?
对所有用到的变量进行"先定义,后使用”的原因:
凡未被事先定义的,C语言不把他认作变量,这样的目的能是为了保证程序中的变量能被正确的使用。
好处:
(1)每一个变量被指定为一个确定类型,在编译时C语言就能为其分配相应的存储单元。
(2)指定每一个变量属于一个类型,便于在编译时检查在程序变量进行的运算合法性。
43、请给出C语言的主要数据类型,请你至少给出4种以上的数据类型实例。
主要数据类型有:
C语言包括基本类型(整型、字符型、浮点型(单、双精度型)枚举类型)、构造类型(数组、结构体、共用体类型)、指针类型、空类型。
整数型inta=2;短整型shortb=3;单精度floatc=1;字符型chard=abc
44、一个C程序由哪些要素构成,请给出一个C语言程序进行说明。
一个C程序由若干函数组成,但至少一个主函数。
而每个函数包括函数的首部和函数体。
程序:
/*注释开始
**filename:
pun.c
**
**(C)2013RongbingTang
**
**Thisprogramprintsastatement
**"ToC,ornottoC:
that'snotaproblem."
注释结束*
45、 编一程序求:
1+(1+2)+(1+2+3)+……+(1+2+3+……+10)。
#include"stdio.h"
main()
{
inti,s=0,t=0;
for(i=1;i<=10;i++)
{t+=i;s+=t;}
printf("%d",s);
}
46、C语言程序包括哪些三种基本结构?
请给出这三种基本结构的传统流程图或N-S图
C语言程序包括哪些三种基本结构:
顺序结构、选择(或分支)结构、循环结构.三种基本结构图示依据作业情况评定
Ø顺序结构
顺序结构是一种最基本、最简单的程序结构。
先执行A,再执行B,A与B是按照顺序执行。
Ø选择(或分支)结构
根据条件是否成立而去执行不同的程序模块。
当条件P为真时,执行A,否则执行B,即要么执行A,要么执行B。
Ø循环结构
循环结构是指重复执行某些操作,重复执行的部分称为循环体。
47、什么是函数的原型?
其作用是什么?
在这些作用中如何使用?
答:
若自定义了一个函数,则该函数的首部称之为该函数的原型
函数原型的作用:
调用函数的接口;用于原型声明
其中函数的调用方法:
函数(实在参数)
函数的原型声明:
当被调用函数在调用函数之后时,必须进行原型声明,在程序最前面或在调用函数中进行声明,声明方法:
函数的首部;
48、什么是内部函数和外部函数?
内部函数:
一个函数只能被本文件中的其它函数调所用,在定义时使用static。
外部函数:
一个函数不光是被本文件中其它函数调用,还可以被其它文件中的函数调用,定义时用extern。
extern可缺省。
49、讨论题
1.设floata,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是____________。
2.设inti;floatf=3.14;,执行i=(int)f;后,变量f的值是____________。
3.设chars[]=”\t\’Name\\Address\n”;,s的长度是___________。
4.设intx=1,y=3,z;,执行z=x>y?
++x:
y++;后,z的值是____________。
5.设intm=3;floatn=12.6;charch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:
3,12.6a<回车换行>,则scanf语句应是___________。
6.若定义函数时类型缺省,则该函数默认的类型是___________。
7.设inta[5]={l,3,5,7,9},*p=&a[2];,则++(*p)的值是_______
8.以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
请填空。
main()
{floatx[1000],sum=0.0,ave,a;
intn=0,i;
printf("Entermark:
\n”);scanf("%f”,&a);
while(
(1) )
{sum___
(2)____;x[n]=a ;n++;
scanf("%f”,&a);}
ave=____(3)___;
printf("Output:
\n”);
printf("ave=%f\n”,ave);
for(i=0;i;i++) if(x[i] }
9.下列程序的功能是在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。
请填空:
#include"stdio.h"
voidmain()
{inta[10],i,max;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(
(1) ;i<10;i++)
if(a[i]>a[max])
(2)
printf("最大值为:
%d ,下标是:
%d", (3) ,max);
}
10、下列程序的功能是:
从键盘输入10数,找出其中的素数并按降序输出这些素数。
请根据给定的程序和程序的功能完善该程序。
(每空2分,共6分)。
#include
#include
intf(intx)
{inti;
for(i=2;i<=sqrt(x);i++)
if(x%i==0)return0;
(1)
}
voidmain()
{inta[10],i,n=0,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(
(2))n++;
elsea[i]=0;
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if((3) ){t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("共有%d个素数,它们是:
",n);
for(i=0;i<9;i++)
if(a[i]!
=0)printf("%d ",a[i]);
}
11.从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。
#defineN10
structstudent
{
charname[20];
charsex;
intscore;
}stu[N];
voidmain()
{
inti;
floataver,sum=0;
for(i=0;i;i++)
{scanf(“%d,%c%s”,
(1)_________);/*第一空*/
sum=sum+_
(2)________;/*第二空*/
}
aver=_(3)_________;/*第三空*/
printf(“aver=%6.2f\n”,aver);
}
12.从键盘输入一串字符(以“?
”作为结束标志),保存到文本文件text.txt中。
#include“stdio.h”
voidmain()
{
FILE
(1)______;/*第一空*/
charch;
if((fp=fopen(“text.txt’’,_
(2)______))==NULL)exit(0);/*第二空*/
while((ch=getchar())!
=’?
’)fputc(ch,_(3)_______);/*第三空*/
fclose(fp);
}
13.用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
递归公式如下:
age(n)=
intage(intn)
{
if(n==1)return(__
(1)_____);/*第一空*/
elsereturn(_
(2)________);/*第二空*/
}
voidmain()
{
printf(‘‘%d\n”,_(3)________);/*第三空*/
}
14.依据下列提供的程序回答问题
(1)提供程序的功能是什么?
#include"stdio.h"
voidmain()
{intscore[10],i,max;
for(i=0;i<10;i++)
{printf("请输入第%d个学生的成绩(0-100):
\n",i+1);
scanf("%d",&score[i]);}
for(i=1,max=0;i<10;i++)
if(score[i]>score[max]) max=i;
printf("最高成绩为:
%d,最高成绩是第%d个:
%d",score[max],max+1);
}
(2)请依据提供的程序画出其中的传统流程图或N-S图。
(3)在VC6.0环境下,运行上述程序时,若输入数据如89、87、77、67、87、80、97、80、97、74、58、84,则输出结果是什么?
50、下列表达式的值是多少?
处理表达式后,a的值是多少?
假设整数类型变