11._
(1)_&stu[i].score,&stu[i].sex,stu[i].name
(2)_stu[i].score________;
(3)__sum/N_________;
12.
(1)__*fp____
(2)_\"w\"_____(3)__fp_____
13.
(1)___10___
(2)__age(n-1)+2____(3)___age(5)_____
14.
(1)在数组a中寻找最大值的下标,输出数组a中的最大值及其下标。
(2)依据学生答题评阅<\p="">
(3)则输出结果为:
最高成绩为:
97,最高成绩是第7个
55、
下列表达式的值是多少?
处理表达式后,a的值是多少?
假设整数类型变量a的值为12
(1)a+=a
(2)a-=2
(3)a*=2+3 (4)a/=a+a
(5)a%=(n%=2) n的值等于5 (6)a+=a-=a*a
参考答案:
表达式计算
(1)表达式a=a+a的值是24?
处理表达式后,a的值是24
(2)表达式a=a-2的值是10处理表达式后,a的值是10
(3)表达式a=a*(2+3)的值是60处理表达式后,a的值是60
(4)表达式a=a/(a+a)的值是0,处理表达式后,a的值是60
(5) 表达式a%=(n%=2)的值是0,处理表达式后,a的值是12
(6)表达式a+=a-=a*a的值是-264,处理表达式后,a的值是-264
56、请简述算法、程序设计语言与程序的区别与联系
参考答案:
区别:
算法(Algorithm)就是对解决某问题所采用的方法和步骤的描述。
程序设计语言设计上就是一组符号及规则的集合。
它是由语法、语义、语用三个要素组成。
一个程序一般包括数据类型和算法两个方面的内容。
其中数据类型(即数据结构)是对程序中的数据进行描述,指定数据在程序中的类型和数据的组织形式,它决定了数据的在内存中所占的存储空间和数据在内存中存放形式。
而算法是对程序中数据的操作描述,是解决“做什么”和“怎么做”的问题,源程序中的操作语句就是算法的体现。
正如著名计算机科学家沃思(NikiklausWirth)所提出的观点:
程序=数据结构+算法。
联系:
程序设计语言是编写程序实现算法的语言工具
57、什么是算法?
算法的特征?
算法的描述方法有哪些?
参考答案:
所谓算法(Algorithm)就是对解决某问题所采用的方法和步骤的描述。
一个算法应该具有以下特点:
(1)确定性:
一个算法给出的每个计算步骤都必须是准确的、无二义性。
在【例1.6】中每一个步骤的含义都是确定的。
(2)有穷性:
一个算法必须在执行有穷多个计算步骤后终止。
在【例1.6】中执行4个步骤后问题处理结束。
(3)有效性:
算法中的每一个步骤必须能够有效地执行,并能够得到确定的结果。
(4)输入:
一个算法可以有0个或1个以上的输入。
在【例1.6】中需要输入a,b,c三个数。
(5)输出:
一个算法有1个或多个的输出,一个算法得到的结果就是算法的输出。
在
算法的描述方法有:
自然语言、流程图、N-S图等。
58、
4.写出下列表达式所对应的C语言表达式,其中x,y为整数,a,b,c为实数类型
内容见附件写C语言表达式
参考答案:
(1)x*x-3.0*x*y/(2-y)
(2)sqrt(fabs(a*b-c*c))
(3)sqrt(abs(a*b-c*c)*cos(x)/a)
(4)(1+sqrt(x))/(1-y/x)
(5)cos(x)+sqrt(3*a*b)/(2-y)
(6)sqrt(abs(a*b-c*c)*sin(x)/b)
59、在下列程序中,函数f的功能是什么?
该程序的运行结果是多少?
#include"stdio.h"
intfun(intnum)
{intk=1;
do
{k*=num%10;
num/=10;
}while(num>0);
returnk;
}
intmain()
{intx=651,y=123;
printf("%d,%d",fun(x),fun(y));
}
参考答案:
函数f的功能是求任意整数的各位数字之积,
该程序的运行结果是15,6
60、在下列程序中,函数p的功能是什么?
该程序的运行结果是多少?
#include"stdio.h"
void sort(intx[],intn)
{inti,j,k,t;
for(i=0;i {k=i;
for(j=i+1;j if(x[k]>x[j])k=j;
if(i!
=k)
{t=x[k];x[k]=x[i];x[i]=t;}
}
}
intmain()
{inta[10]={34,50,89,67,102,11,75,30,125,145},i;
sort(a,10);
for(i=0;i<10;i++)
printf("%10d",a[i]);
}
参考答案:
函数p的功能是对n个整数排序
该程序的运行结果是11 30 34 50 67 75 89 102 125145
61、结构化程序设计方法的内容是什么?
划分模块的基本原则?
采用结构化方法的好处?
参考答案:
结构化程序设计方法是一种自顶向下、逐步求精、模块化的程序设计方法。
按照结构化程序设计方法的思想,就是将给定的一个功能较多的复杂问题合理地划分为若干个较简单的子问题,还可以将这些子问题再分解为若干功能更简单的子任务(可将每个子任务看作一个模块),以便于“分而治之”
在模块划分时,应该尽可能地保证数据的独立性和模块功能的唯一性。
也就是说,各模块间的耦合性要尽量弱,即一个模块最好像是一个黑盒子,模块间的数据交换要尽量少;模块的内聚性要尽量强,即每个模块只完成单一的功能。
结构化程序设计强调程序设计风格和程序结构的规范化,提倡结构清晰。
良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护。
著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
采用结构化程序设计方法的好处是:
可以使每个模块功能明确,模块间的关系简单、清晰(即可读性强),每个模块内部的修改尽可能不影响其他模块(即独立性好),同时每个模块的正确性容易验证(即可维护性好)。
62、通过你对C语言程序设计课程的学习,你认为C语言程序设计具有哪些特点?
并简要说明。
C语言有哪些局限性?
针对这些局限性,是如何解决这些问题的?
参考答案:
(1)C语言是一种结构化的语言
一个C语言程序是由一个或多个函数组成,函数是C语言的基本单位。
(2)C语言有强大的表现能力和处理能力
C语言具有丰富的运算符和数据类型,并且引入了结构、指针、地址、位运算、寄存器存储等功能,使C语言实现了对硬件编程操作,大大提高了C语言的表现能力和处理能力。
(3)C语言程序易于移植
同汇编语言相比,C语言将与硬件相关的部分也通过库函数或其他相关函数来实现,不再依赖于具体的机器,广泛地移植到了各种类型计算机上,从而体现了C语言的易移植性。
(4)C语言的运行效率高
用C语言编写的程序可通过编译获得高效的可执行代码
C语言也存在着一些局限:
(1)C语言的类型检查机制相对较弱,使得程序中的一些错误不能在编译时由编译程序指出;
(2)C语言缺乏支持代码重用的语言结构;
(3)C语言不适合开发大型程序,当程序的规模达到一定程度时,程序员很难控制程序的复杂性。
C++语言正是为了解决上述问题而设计的。
C++语言继承了C语言的精髓,如高效率、灵活性等,并增加了面向对象机制,弥补C语言不支持代码重用的不足,这对于开发大型的程序非常有效。
C++语言成为一种既可用于表现过程模型,又可用于表现对象模型的优秀的程序设计语言。
63、程序的功能是从键盘上任意输入一个正整数,求各位数字之和。
请用模块化方法改写下列程序,功能不变。
#include"stdio.h”
voidmain()
{intn;
intr,s=0;
scanf("%d”,&n);
do{r=n%10;
s+=r; n=n/10;
}while(n>0);
printf("%d”,s);
}
参考答案:
参考答案
#include“stdio.h”
int add(intn)
{intr,s=0;
do{r=n%10;
s+=r; n=n/10;
}while(n>0);
return(s);
}
void main()
{intm;
scanf(“%d”,&m);
printf(“%d”,add(m));
}
64、有如下程序
#include"stdio.h"
int fun(int x)
{int p;
if(x==0||x==1) return3;
else p=x-fun(x-2);
return p;
}
int main()
{printf("%d",fun(9));
}
该程序的输出结果是多少?
参考答案:
该程序的输出结果是7
65、下列函数的功能是什么
intfun(char*x)
{char*y=x;
while(*y++);
returny-x-1 }
参考答案:
函数的功能是求字符串的长度
66、什么是指针,什么是指针变量?
指针所指向的变量?
给一实例说明
参考答案:
指针:
就是一个变量的地址
指针变量:
有一个变量专门用来存放另一变量的地址(即指针)。
如果将一个变量的地址(指针)赋给同一类型的指针变量,则该变量为指针变量所指向的变量。
如intx=10,*p=&x;
则:
整数变量x的值为10,指针变量为p,指针所指向的变量为*p.
67、从键盘上任意输入20个2位或3位整数存放在array数组中,找出array数组中的能够被7整除的数存放在数组b中,并对b数组的值按升序排列。
要求:
(a)编写一个sort(intword,inta[])函数实现排序功能。
(b)除sort函数外,其余在主函数内完成,但主函数必须调用sort函数实现排序功能。
(c)程序必须有输入输出提示。
参考答案:
#include"stdio.h"
voidsort(inta[],intn)
{
inti,j,t;
for(i=0;ifor(j=0;jif(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("排序以后的数:
");
for(i=1;i<=n;i++)
printf("%d",a[i]);
printf("\n");
}
intmain()
{
intarray[20];
intb[20];
inti,j=0;
printf("请输入20个整数:
");
for(i=0;i<20;i++){
scanf("%d",&array[i]);
if(array[i]%7==0)
b[j++]=array[i];
}
printf("这20个整数中,能被7整除的有:
");
for(i=0;iprintf("%d",b[i]);
printf("\n");
sort(b,j);
return0;
}
68、依据下列提供的程序回答问题
#include"stdio.h"
doublefun(inta[],intm)
{inti;
doublesum=0;
for(i=0;i return(sum/m);
}
voidmain()
{intx, count=0,a[300];
for(x=1;x<=30;x++)
if(x%2==0){
a[count]=x;
count++;
}
printf("\n这些偶数的平均值是:
%6.0lf\n",aver(a,count));
}
(1)上述提供程序中,函数fun的功能是什么?
(2)请依据上述程序思想,画出其中的传统流程图或N-S图。
(3)在VC6.0环境下,运行上述程序时,其输出结果是什么?
参考答案:
(1)fun的功能是求m个数的平均值
(2)依据学生答题评定分数
(3)这些偶数的平均值是16
69、编写一个函数计算函数f(x,y)=x2+y2+sin(x)的值,要求有输入输出提示,结果保留小数点后3位
参考答案:
#include
#include
voidmain()
{
doublex,y,result;
printf("请分别输入x,y的值:
");
scanf("%lf%lf",&x,&y);
result=x*x+y*y+sin(x);
printf("函数f(%.0lf,%.0lf)=%.3lf\n",x,y,result);
}
70、输出100-900之间的所有奇数,并求出这些奇数的平均值输出
参考答案:
#include"stdio.h"
voidma