}
int&fun(inta)
{
returnaa[a];
}
参考答案(非权威,仅仅是我自己的理解,如有错误,请批评指正!
)
第一题:
#include
voidmain()
{
floatx;
cout<<"请输入一个摄氏温度:
";
cin>>x;
cout<<"它的华氏温度为:
"<<9*x/5+32<}
第二题:
#include
#defineN1
structstudent//定义并声明结构变量
{
intnumber;
charname[20];
charsex[10];
intage;
floatscore[2];
}stu[N];
voidmain()
{
cout<<"请输入学号:
";
cin>>stu[0].number;
cout<<"请输入姓名:
";
cin>>stu[0].name;
cout<<"请输入性别:
";
cin>>stu[0].sex;
cout<<"请输入年龄:
";
cin>>stu[0].age;
cout<<"请输入A课程成绩:
";
cin>>stu[0].score[0];
cout<<"请输入B课程成绩:
";
cin>>stu[0].score[1];
cout<cout<cout<<"你的学号为:
"<cout<<"你的姓名为:
"<cout<<"你的性别为:
"<cout<<"你的年龄为:
"<cout<<"你的A课成绩为:
"<cout<<"你的B课成绩为:
"<}
第三题:
#include
usingnamespacestd;
intMAX(intx,inty){returnx>y?
x:
y;}
intMAX(inta,intb,intc){return(a>b?
a:
(b>c?
b:
c));}
voidmain()
{
intx,y,a,b,c;
cout<<"请输入x:
";
cin>>x;
cout<<"请输入y:
";
cin>>y;
cout<cout<<"请输入a:
";
cin>>a;
cout<<"请输入b:
";
cin>>b;
cout<<"请输入c:
";
cin>>c;
cout<cout<cout<<"MAX(x,y)="<cout<<"MAX(a,b,c)="<}
第四题:
#include
usingnamespacestd;
intsum=0;
voidmain()
{
intN,sum=0;
cout<<"请确定数组大小N的值:
";
cin>>N;
int*p=newint[N];
cout<<"请输入N个整数到数组p[N]中:
"<for(inti=0;i>p[i];
for(intk=0;k{
:
:
sum+=p[k];
if(p[k]%2!
=0)sum+=p[k];
}
cout<cout<<"数组p[N]的总和为:
";
cout<<:
:
sum<cout<cout<<"数组p[N]的奇数和为:
";
cout<delete[]p;
}
第五题:
#include
typedefstructNode
{
intdata;
Node*next;
}*LinkList;
LinkListCreateList(LinkList&L,intn)
{
LinkListp=NULL;
LinkListtemp=NULL;
intdata;
cout<<"请任意输入n个正整数:
"<cin>>data;
while(n>0)
{
p=newstructNode;
p->data=data;
p->next=NULL;
if(!
L)L=temp=p;
else
{
temp->next=p;
temp=p;
}
cin>>data;
n--;
}
returnL;
}
intPrintList(LinkListL)
{
LinkListp=L;
cout<<"链表的全部数据如下:
"<while(p)
{
cout<data<<"";
p=p->next;
}
cout<return0;
}
voidfreeLink(LinkListL)
{
LinkListp=NULL;
while(L)
{
p=L;
p->next=NULL;
L=L->next;
deletep;
}
}
voidmain()
{
LinkListL=NULL;
L=CreateList(L,3);//输入链表数据
PrintList(L);//输出链表数据
freeLink(L);//释放单链表的头指针
}
第六题:
(1)
修改前的程序:
include//头文件应定义应加上#号
voidmain()
{
cin>>x;//使用x之前应先申明x的内型
inty=x*x;
cout<<"y=<return0;//main函数定义为void类型,因此不应该有返回值,故去掉这句话。
}
修改后的程序:
#include
voidmain()
{
intx;
cin>>x;
inty=x*x;
cout<<"y="<}
(2)
修改前的程序:
#include
voidmain()
{
inta,b;//整个过程中b都没有赋值,因此a+b为一个不确定的数。
a=7;
ints=a+b;
cout<<"a+b="<
}
修改后的程序:
#include
voidmain()
{
inta,b;
a=7;
b=0;
ints=a+b;
cout<<"a+b="<
}
第七题:
(1)
#include
voidmain()
{
doubledd=3.9,de=1.3;//定义两个double类型的数据
double&rdd=dd,&rde=de;//分别对dd和de进行引用声明为rdd和rde
//由于引用与其所引用的变量的值永远保持相同。
故rdd+rde=dd+de=3.9+1.3=5.2
//因此输出为:
5.2,5.2
cout<rdd=2.6;//rdd=dd被赋值为2.6
cout<2.6,2.6
de=2.5;//de=rde被赋值为2.5
cout<2.5,2.5
}
(2)
#include
voidmain()
{
voidfun(int,int&);//函数原型说明
inta,b;//声明两个int类型的数据a,b
fun(2,a);//调用函数fun,使引用变量a=2*4=8
fun(3,b);//调用函数fun,使引用变量b=3*4=12
cout<<"a+b="<}
voidfun(intm,int&n)
{
n=m*4;
}
(3)
#include
int&fun(int);//声明一个函数来引用数组aa[5]
intaa[5];//声明一个数组
voidmain()
{
inta=5;
for(inti=0;i<5;i++)
//通过for循环,调用函数fun();为其建立引用,对数组aa[5]分别赋值
fun(i)=a+i;
for(i=0;i<5;i++)//通过for循环,分别输出显示数组aa[5]的值:
56789
cout<cout<}
int&fun(inta)
{
returnaa[a];
}