《C语言程序设计基础实验报告8》由会员分享,可在线阅读,更多相关《C语言程序设计基础实验报告8(5页珍藏版)》请在人人文库网上搜索。
1、实验8 指针一、 实验目的1、通过实验进一步掌握指针的概念,会定义和使用指针变量;2、能正确使用数组的指针和指向数组的指针变量;3、能正确使用字符串的指针和指向字符串的指针变量;二、实验内容和步骤1、改错(1)指出下面程序错误的原因.欢迎下载main( )int x=10,y=5,*px,*py;px=py;px=&x;py=&y;printf(*px=%d,*py=%d,*px,*py);#includevoid main()int x=10,y=5,*px,*py;px=&x;py=&y;printf(px=%d,py=%d,*px,*py);(2)下面的程序试图有如下运行结果:which。
2、 style you want to :Capital ( c ) or uncapital ( a ):c COMPUTERWhich sytle you want to :Capital ( c ) or uncapital ( a ) : ucomputer请调试下面的程序,使其有如上执行结果.#include main () char s*;char c;printf(which style you want to :ln);printf(capital ( c ) or uncapital(a):);c=getchar();if(c=c)strcpy(s,COMPUTER);else。
3、 strcpy(s,computer);put(s);#include#include#includevoid main()char *s;char c;printf(which style you want to :n);printf(capital(c) or uncapital(a):);c=getchar();s=calloc(20, sizeof(char); /分配存储空间if(c=c)strcpy(s,COMPUTER);elsestrcpy(s,computer);puts(s);(3)下面的程序能获得上述运行结果吗 main()char *S=COMPUTER;char c;。
4、printf(which style you want to n);printf(capital (c) or uncapital(u););c=getchar();if(c=c)put(s);else s=computer;puts(s);#includevoid main()char *s=COMPUTER;char c;printf(which style you want to:n);printf(capital(c) or uncapital(u););c=getchar();if(c=c)puts(s);else s=computer;puts(s);(4)设计一个C程序,用以测试。
5、下列各表达式的运算.(1) y=*px+(2) y=*+py(3) y=(*py)+(4) y=-*ppx+(5)想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的 swap(int *p1,int *p2)int *p;p=p1;p1=p2;p2=p;main()int a,b;scanf(%d,%d,&a,&b);pt1=&a;pt2=&b;if(avoid swap(int *p1,int *p2)int p;p=*p1;*p1=*p2;*p2=p;void main()int a,b,*pt1,*pt2;scanf(%d,%d,&a,&b);pt1=&a;。
6、pt2=&b;if(avoid main()int a10,i,max;for(i=0;ivoid main()int a10,i,max;for(i=0;ivoid main()int a10;int *p,max;for(p=a;pvoid main()char s20;int i;gets(s);for(i=0;i=A&sivoid main()char s20;char *p;scanf(%s,s);p=s;while(*p!=0)if(*p=A&*pvoid sort(int *a,int *b,int *c)int t=0;if (*a*b)t=*a;*a=*b;*b=t;if (。
7、*a*c)t=*a;*a=*c;*c=t;if (*b*c)t=*b;*b=*c;*c=t;void main()int a=0,b=0,c=0;scanf(%d%d%d,&a,&b,&c);sort(&a, &b, &c);printf(%d %d %dn,a,b,c);#include#includevoid swap(char *s120,char *s220)char *t;t=*s1;*s1=*s2;*s2=t;void main()char str120,str220,str320;char *p120,*p220,*p320;gets(str1);gets(str2);gets(。
8、str3);strcpy(p1,str1);strcpy(p2,str2);strcpy(p3,str3);if(strcmp(p1,p2)0)swap(p1,p2);if(strcmp(p1,p3)0)swap(p1,p3);if(strcmp(p2,p3)0)swap(p2,p3);puts(p1);puts(p2);puts(p3);(2)将一个33的矩阵转置,用一函数实现之。 在主函数中用scanf函数输入以下矩阵元素:l 3 57 9 1113 15 19将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。(3)用一个函数实现两个字符串的比。
9、较,即自己写一个strcmp函数,函数原型为:int strcmp (char * p1, char * p2);设p1指向字符串s1,p2指向字符串s2,要求当s1s2时,函数返回值为 0, 如果sls2,则返回它们二者第一个不相同字符的ASCII码差值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为7965=14);如果sls2,则输出正值;如果sls2则输出负值。 两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。(4)编程统计一个字符串中大写字母、小写字母、数字和其他字符的个数。提示:只要逐个检查字符串中的字符,然后将相应的计数器加1就可以统计出各类字符的数量,设up用于记录大写字母数量,low用于记录小写字母数量,digit用于记录数字数量,other用于记录其他字符的数量,(5)编写函数,函数原型如下:int getdata( char *str );判断字符串str是否为十进制串,若是转换为十进制数返回,若不是则返回-1。并编写主函数,调用该函数,输入一行字符,将其转换为十进制数输出。