VC++学习实例Word文件下载.docx
《VC++学习实例Word文件下载.docx》由会员分享,可在线阅读,更多相关《VC++学习实例Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
}
intmain(intargc,char*argv[])
{intnGrade[]={45,78,25,96,105,12};
intnLen=sizeof(nGrade)/sizeof(int);
//获取数组的长度
Sort(nGrade,nLen);
//for(inti=0;
i++)//升序排列
for(inti=nLen-1;
i>
=0;
i--)//降序排列
{cout<
<
nGrade[i]<
endl;
//无论是void函数或int函数,结尾都加“return”
2.统计成绩的最高分、最低分和平均值
intAverage(intnGrade[],intnLen)
{intnSum=0;
for(inti=0;
i<
nLen;
i++)
{nSum+=nGrade[i];
}
returnnSum/nLen;
//此处应该返回的是平均成绩,而不是0
intMaxGrade(intnGrade[],intnLen)
{intnMax=nGrade[0];
{nMax=(nMax>
nGrade[i])?
nMax:
nGrade[i];
}//两数比较,取较大的
returnnMax;
//此处应该返回的是最高成绩
intMinGrade(intnGrade[],intnLen)
{intnMin=nGrade[0];
{nMin=(nMin>
nGrade[i]:
nMin;
}//两数比较,取较小的
returnnMin;
{intnArray[]={5,3,4,1,2};
intnLen=sizeof(nArray)/sizeof(int);
//cout<
nLen<
endl;
intAver=Average(nArray,nLen);
cout<
"
平均成绩为:
"
<
Aver<
intnMax=MaxGrade(nArray,nLen);
最高成绩为:
nMax<
intnMin=MinGrade(nArray,nLen);
最低成绩为:
nMin<
return0;
3.描述分段函数
{intx,y;
请输入x的值:
;
cin>
>
x;
if(x<
1){y=x;
elseif(x>
=1&
&
x<
30){y=5*x;
=30){y=10*x;
y的值为:
y<
intcalcu(intx)
{inty;
returny;
{intx;
x;
inty=calcu(x);
4.判断1998-2050之内的所有闰年
闰年:
能被4整除,不被100整除;
或者,能被100整除,能被400整除。
{
for(inti=1998;
2050;
{
if(i%4==0&
i%100!
=0)
{
cout<
}
elseif(i%100==0&
i%400==0)
cout<
}
stdafx.h"
//判断某一年是否是闰年
boolIsLeapyear(intnYear)
{
if(nYear%4==0&
nYear%100!
{returntrue;
elseif(nYear%100==0&
nYear%400==0)
returnfalse;
for(intnYear=1998;
nYear<
2051;
nYear++)
{
if(IsLeapyear(nYear))
{
cout<
——在主函数中,尽量只调用子函数。
5.寻找某个元素的位置
intFindElement(intnArray[],intnLen,intnData)
if(nArray[i]==nData)
找到数据"
nData<
位于"
下标位置"
return0;
//发现了元素,函数返回
cout<
没有发现数据"
intnArray[]={1,5,3,6,4,2};
intFindData=FindElement(nArray,nLen,6);
//cout<
FindData<
6.
//静态变量的应用
voidinvoke()
staticints_nNum=0;
//“s_”静态变量的命名
//ints_nNum=0;
s_nNum<
s_nNum++;
for(inti=0;
10;
invoke();
静态变量s_nNum的结果
普通变量s_nNum的结果
7.
//两个字符串的连接
//#include"
stdio.h"
//C库printf,scanf
//C++库cout,cin
char*Strcat(char*str1,char*str2)
//char*s=str1;
//此句的作用?
while(*str1)
str1++;
while(*str2)
*str1++=*str2++;
*str1=0;
//returnstr1;
//returns;
intmain()
chars1[100],s2[100]={0};
/*
printf("
输入第一个字符串:
);
scanf("
%s"
s1);
输入第二个字符串:
s2);
*/
s1;
s2;
Strcat(s1,s2);
//printf("
连接之后的字符串:
%s\n"
s1);
s1<
return(0);
上述程序的运行结果
将上述程序的“*str1=0;
”注释掉的结果如下,为什么?
8.
//使用指针变量访问和修改相应变量的值
//张顺,2013年6月18日14:
32:
12
//#include"
intnLen=10;
//int*pLen;
//pLen=&
//将变量的地址赋给指针变量
int*pLen=&
//定义指针并初始化,代替以上两句
指针pLen指向的地址为"
pLen<
指针pLen指向的数据为"
*pLen<
nLen的值为"
//通过修改指针指向的数据,来修改变量的值
//pLen=pLen+1;
*pLen=100;
//指针变量之间的赋值
intnCount=11;
int*pCount=&
nCount;
pLen=pCount;
//将指针变量pCount赋值给指针变量pLen
指针pCount指向的地址为"
pCount<
若增加“pLen=pLen+1;
”语句,则结果如下;
pLen指向的数据变为100,而nLen的值未变,仍为10.
注意:
“pLen=100;
”赋值方法是错误的,“'
='
:
cannotconvertfrom'
constint'
to'
int*'
”,因为“pLen”是整型指针变量,而“100”是整型常量。
9.使用指针变量遍历数组
指针,可以指向变量和数组。
数组名表示的是,数组的首地址,即数组中第一个元素的地址。
因此,将数组之间赋值给指针对象是完全合法的。
//使用指针变量遍历数组
//张顺,2013年6月17日17:
15:
29
//Cannotopenincludefile:
'
stdafx.h'
:
Nosuchfileordirectory
intnArray[]={1,2,3,4,5};
//定义一个数组
//获取数组的长度
//将数组(首地址)赋给指针变量
int*pIndex=nArray;
//定义一个指针,指向所定义的数组
i++)//使用指针遍历数组
*pIndex<
//输出数组的元素值
pIndex++;
//使指针指向下一个元素
//cout<
*pIndex++<
//将以上两句合并
10.
//指针数组
51:
41
intmain(intargc,int*argv[])
int*pArray[3][3];
//定义一个指针数组
intnArray[3][3]={
{1,2,3},
{4,5,6},
{7,8,9}};
3;
j++)
//pArray[i][j]=&
nArray[i][j];
//为指针数组的各元素赋值
//cout<
*pArray[i][j]<
pArray[j][i]=&
nArray[j][i];
*pArray[j][i]<