程序设计基础C实验报告
str[i]=str[j-1]; str[j-1]=t; } }
①运行以上程序,输入1234567*?,程序运行结果是: 。 ②将inverse函数中的for语句改为
for (i=0,j=strlen(str); i 再运行以上程序,输入1234567*?,程序运行结果是: 。 题目6:在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素数的个数,在主函数中输出该素数的个数。(文件名:i6.cpp) 程序代码: #include } 题目7:在主函数中定义二维数组A[3][4]、B[4],用子函数对数组A[3][4]每一行求和,其值放在数组B[4]中,在主函数中输出该值。(文件名:i7.cpp) 程序代码: #include } 三、实验结果(用截图说明) 四、调试心得(选作) 15 程序设计基础C实验报告 实验11 指针实验 教学班级:_______ 学号:__________ 姓名:___________ 实验日期:___________ 实验地点:_________(机房) 实验成绩:___________ 一、 实验目的 1.掌握指针的概念,指针变量的定义和使用。 2.熟悉和了解C语言指针一般设计方法。 3.学会使用C语言指针进行程序设计。 4.学会使用数组的指针和指向数组的指针变量。 5.进行简单C语言指针语句的设计、调试、编译和运行。 二、 实验任务 1.基本内容 题目1:阅读以下程序。(文件名:k1.cpp #include { int x=1,y=2, *p, *q; p=x;q=y; /* error */ printf(“x=%d,y=%d\\n”,x,y); printf(“&x=%d,&y=%d\\n”,&x,&y); printf(“p=%d,q=%d\\n”,p,q); printf(“p=%d,q=%d\\n”,*p,*q); } 请改正程序中的错误。预测程序结果,并上机调试运行程序。 题目2:预测程序结果,并上机运行程序验证结果。(文件名:k2.cpp) #include { int a[]={1,3,5,7,9,11,13}; int *p=a ; printf(\ 16 程序设计基础C实验报告 printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ p=&a[2]; printf(\ printf(\ p++; printf(\ } 程序运行结果: 题目3:提示:静态变量的使用(文件名:k3.cpp) #include { static int a[6]={1,2,3,4}; /* 静态变量 */ int *p,i,s=1; p=a; for(i=0;i<6;i++) s*=*(p+i); printf(“%d\\n”,s); } 程序运行结果: 题目4:预测程序结果,并上机运行程序验证结果。(文件名:k4.cpp)#include { char a[]=“abcdef”; char *b=“ABCDEF”; int *p,i; for(i=0;i<3;i++) printf(“%c,%s\\n”,*a,b+i); printf(“-------------------------------\\n”); 17 程序设计基础C实验报告 for(i=3;a[i];i++) { putchar(*(b+i)); printf(“%c\\n”,*(a+i)); } } 程序运行结果: 题目5:预测程序结果,并上机运行程序验证结果。(文件名:k5.cpp) #include int *pointer_1,*pointer_2,*pointer_3; void swap(int *p1,int *p2); printf(“请输入三个整数 n1,n2,n3:”); scanf(“%d,%d,%d”,&n1,&n2,&n3); pointer_1=&n1; pointer_2=&n2; pointer_3=&n3; if (n1>n2) swap(pointer_1, pointer_2); if (n1>n3) swap(pointer_1, pointer_3); if (n2>n3) swap(pointer_2, pointer_3); printf(“三个整数为:%d,%d,%d\\n”,n1,n2,n3); } void swap(int *p1,int *p2) { int p; p=*p1;*p1=*p2;*p2=p; } ① 程序的功能: ② 如果输入4,2,6,程序运行结果: 题目6:预测程序结果,并上机运行程序验证结果。(文件名:k6.cpp) #include { char str1[20], str2[20], str3[20]; void swap(char *p1,char *p2); 18 程序设计基础C实验报告 printf(\请按行输入三个字符串:\\n\ scanf(\ scanf(\ scanf(\ if (strcmp(str1,str2)>0) swap(str1,str2); if (strcmp(str1,str3)>0) swap(str1,str3); if (strcmp(str2,str3)>0) swap(str2,str3); printf(\三个字符串为:\\n\ printf(\} void swap(char *p1,char *p2) { char *p; p=(char *)malloc(sizeof(char)); //malloc函数:动态分配内存 strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); } ①程序的功能: ②输入”mcb”,”bcd”,”Kbefr”,程序运行结果: 2.选择内容 题目7:输入一行字符,找出其中大写字母、小写字母、空格、数字及其字符各有多少? (文件名:k7.cpp) #include { int cle=0,sle=0,di=0,wsp=0,ot=0,i; char *p,s[100]={0}; printf(“请输入一行字符:”); i=0; while ((s[i]=getchar())!=?\\n?) i++; p=&s[0]; while (*p!=?\\0?) { if ((?A?<=*p)&&(*p<=?Z?)) ++cle; else if ((?a?<=*p)&&(*p<=?z?)) 19