回到课程主页,链接:C++程序设计课程主页-2012级
本次上机对应的教学内容:第5章 数组 - 字符数组,第六章 指针 指针的基本概念
第一部分 程序分析
阅读下面的程序,先写出其运行结果,再上机运行进行对比。必要时,单步执行程序,在监视(watch)窗口中观察变量的动态变化,从而掌握程序的运行机理。
(1)#include
using namespace std;
void prt(int*, int*, int*);
int a=10, b=40, c=20;
int main(void)
{
prt(&a, &b, &c);
prt(&a, &b, &c);
return 0;
}
void prt(int *x, int *y, int *z)
{
cout<<++*x<<','<<++*y<<','<<*(z++)<<'\n';
}
#include
using namespace std;
int sub(int*);
int main(void)
{
int i, k;
for (i=0; i<4; i++)
{
k=sub(&i);
cout<<"sum="<
#include
using namespace std;
int sub(int*);
int main(void)
{
int i, k;
for (i=0; i<4; i++)
{
k=sub(&i);
cout<<"sum="<
#include
using namespace std;
static int a[ ]={1,3,5,7,11,13};
main( )
{
int *p;
p=a+3;
cout<<*p<<'\t'<<(*p++)<
#include
using namespace std;
int main()
{
char str[50];
int i=0,n=0;
cout<<"输入字符串:";
gets(str);
while(str[i]!='\0')
{
if(str[i]>='0'&&str[i]<='9') n++;
i++;
}
cout<<"其中的数字个数是: "<
请自选下面有关字符串中字符统计的任务,完成两个即可。
#include
using namespace std;
int main()
{
char str1[50]="I am a happy boy\'s daddy.",str2[50];
int i=0,j=0;
for(i=0;str1[i]!='\0';i++)
{
if(str1[i]!=' ')
{
str2[j]=str1[i];
j++;
}
}
str2[j]='\0';//切记!!
cout<<"整理后的字符串"<
请自选下面有关字符串中字符统计的任务,完成两个即可。
【项目2-带姓名的成绩单(字符数组版)】(参考15周项目3)设score数组中存储同学们的C++成绩,增加一个数组char name[][20]并赋初值,表示同学们的姓名(注意:本周不使用更方便的string类)。这两个数组中,同学的姓名与成绩的下标保持一致(例如name[1]和score[1]表示同一位同学的姓名和C++成绩)。请(1)输出按成绩排序后的同学的名单;(2)输出按同学姓名排序后的成绩单(排序对象是字符串)。提示:比较、复制等需要用到字符串函数。
【项目3-打入“内部”寻“内幕”】下面是一段使用了指针的程序。请利用“单步”执行的方式运行程序,深刻理解“指针变量存储的是地址值”、“通过指针变量间接访问”等概念。将在执行过程中留下深刻映像的界面截屏下来(不限一个),并加以点评。——学会单步调试,这件事不能再拖了!
#include
using namespace std;
int main()
{
int a=2, b=3, c[5]={1,2,3,4,5};
int *p1, *p2, *p3;
p1=&a;
p2=&b;
p3=c;
p3++;
(*p3)+=10;
cout<
下图是我在单步运行时截屏出来的一个图,供参考:
#include
using namespace std;
int main( )
{
int *p1,*p2,a,b,t;
cin>>a>>b;
p1=&a;
p2=&b;
//下面加入代码,只许用p1,p2和t,不许用a和b,t作为交换时的中间变量
cout<<"max="<#include
using namespace std;
int main( )
{
int *p1,*p2,a,b,t;
cin>>a>>b;
jiaohuan(&a,&b);
cout<<"交换后:a="<#include
using namespace std;
const int N=8;
int main()
{
int a[N],*p,*q;
for(p=a; p