西安交通大学计算机程序设计指针实验

更新时间:2024-06-14 00:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安交通大学实验报告

课程_计算机程序设计_实验名称__指针__第 页 共 页

一.实验目的

(1)掌握指针的概念,学会定义指针变量和使用指针变量进行间接引用; (2)掌握数组的指针和指向数组的指针变量; (3)掌握二维数组中行指针的概念和使用。

二.实验内容

(一)编写程序,将一个输入位数不确定的正整数按照标准的3位分节格式输出,例如当用户输入8214235时,程序应输出82,142,235. 1.要点分析

2.程序源代码

#include using namespace std; int main() {

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 using namespace std; int main() {

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 using namespace std; int main() {

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 using namespace std;

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 using namespace std;

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>a[i];

本文来源:https://www.bwwdw.com/article/8x36.html

Top