西安交通大学实验报告
课程_计算机程序设计_实验名称__指针__第 页 共 页
一.实验目的
(1)掌握指针的概念,学会定义指针变量和使用指针变量进行间接引用; (2)掌握数组的指针和指向数组的指针变量; (3)掌握二维数组中行指针的概念和使用。
二.实验内容
(一)编写程序,将一个输入位数不确定的正整数按照标准的3位分节格式输出,例如当用户输入8214235时,程序应输出82,142,235. 1.要点分析
略
2.程序源代码
#include
long n,i=1; char a[20], *p; p=a;
cout<<\请输入待转换的整数:\ cin>>n; do {
if(i%4!=0) {
*p=n+'0'; n=n/10; }
else *p=','; p++; i++;
}while (n!=0); cout<<\结果为:\ do {
p--; i--;
cout<<*p;
}while(i>1); cout< 3.实验结果 (二)实验题目二: 用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其字符的个数,还能分别指出其中大、小写字母,数字以及其他字符的个数。 1.要点分析 略 2.程序源代码 #include char s[30],*ps=s; int a,b,c,d; cout<<\请输入一个任意字符串:\ cin>>s; a=0; b=0; c=0; d=0; while (*ps!='\\0') { if (*ps>='a'&&*ps<='z')a++; else if (*ps>='A'&&*ps<='Z') b++; else if (*ps>='0'&&*ps<='9') c++; else d++; ps++; } cout<<\该字符串字符个数为\ cout<<\该字符串小写字母个数为\ cout<<\该字符串大写字母个数为\ cout<<\该字符串数字个数为\ cout<<\该字符串其它字符个数为\ return 0; } 3.实验结果 (三)实验题目三 编写一个函数,用于将一个字符串转换为整型数值。其原型如下: Int atoi(char *string); 其中string为待转换的字符串(其中包括正负号及数字),返回值为转换结果。 要点分析 略 1.程序源代码 #include char s[30],*ps=s; int a[30],*pa=a; int n; cout<<\请输入一个任意字符串:\ cin>>s; n=0; while (*ps!='\\0') { *pa=int(*ps); pa++; ps++; n++; } cout<<\转换的结果是:\ pa=a; while (n>0) { cout<<*pa<<\ pa++; n--; } cout< 2.实验结果 (四)实验题目四 编写一个函数,用于生成一个空白字符串,其原型如下: Char *mystrspc(char *string,int n); 其中,参数string为字符串,n为空白字符串的长度(空格字符数)。返回值为指向string的指针。 1.要点分析 略 2.程序源代码 #include char *mystrspc(char *string, int n) { char *p=string; while (n>0) { *p=' '; p++; n--; } *p=0; return string; } int main() { char s[50]; int i,n; cout<<\请输入空格的长度:\ cin>>n; for (i=0; i<=n; i++) cout<<(i-i)/10; cout< for (i=0; i<=n; i++) cout< cout< 3.实验结果 (五)实验题目五 修改选择排序函数,使每轮挑选最大元素,函数原型如下: voidselectsort( int *array, int n); 编写主函数对其进行测试。 1.要点分析 略 2.程序源代码 #include void selectsort(int *array,int n) { int k,j,t; for(int i=0;i for (j=i+1;j if(*(array+j)>*(array+k)) k=j; if(k!=i) { t=*(array+i); *(array+i)=*(array+k); *(array+k)=t; } } } int main() { const m=5; int a[m] ,i; cout<<\请输入\个待排序的数:\ for (i=0; i