验证性实验1:数组,指针,结构体练习
- 格式:docx
- 大小:136.29 KB
- 文档页数:4
实验一数组与指针【实验目的】1.准确理解数组和指针的定义,合理运用数组和指针解决问题2.熟练掌握一维数组、二维数组的运用方法3.熟练掌握指针运算符&和*【实验内容】1.写一个程序,要求用户输入10个数据到数组中,然后将数组中的最大值和最小值显示出来,同时显示其下标。
#include<iostream>#include<iomanip>using namespace std;int main(){inti,m,n,a[10],max,min;for(i=0;i<10;i++)cin>>setw(5)>>a[i];cout<<endl;min=max=a[0];for(i=0;i<10;i++){if(a[i]<min){min=a[i];m=i;}if(a[i]>max){max=a[i];n=i;}}cout<<setw(6)<<"min="<<min<<setw(6)<<"下标为:"<<m<<endl;cout<<setw(6)<<"max="<<max<<setw(6)<<"下标为:"<<n<<endl;return 0;}4编写程序,让用户输入一个账号,检验该账号是否出现在下面的列表中。
如果属于下面列表中的账号,则输出合法信息,否则输出非法信息。
采用现行查找法。
5658845,4520125,7895122,8777541,8451277,1302850,8080152,4562555,5552012, 5050552,7825877,1250255,1005231,6545231,3852085,7576651,7881200,4581002 #include<iostream>using namespace std;constint a=18;int s(int L[],intn,int v);int main(){intt[a]={5658845,4520125,7895122,8777541,8451277,1302850,8080152,4562555,5552 012,5050552,7825877,1250255,1005231,6545231,3852085,7576651,7881200,45810 02};intresult,x;cin>>x;result=s(t,a,x);if(result==-1)cout<<x<<"为非法信息"<<endl;elsecout<<x<<"为合法信息"<<endl;return 0;}int s(int L[],intn,int v){for(int i=0;i<n;i++)if(v==L[i])return i;return -1;}5.采用二分查找的方法实现上述程序。
c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C语言程序设计实习报告一、实习目的1. 巩固和加深对C语言程序设计的理解。
2. 掌握C语言编程的基本技巧和方法。
3. 提高分析问题、解决问题的能力。
4. 学会将理论知识应用于实际编程中。
二、实习内容XXX语言基础语法练习变量、数据类型、运算符、表达式等基础语法练习。
控制结构(顺序、分支、循环)的实现。
函数的定义和调用方式练习。
2. 模块化程序设计将一个大的程序分解成多个模块,每个模块完成特定的功能。
通过模块间的调用和传递数据来实现整个程序的功能。
3. 文件操作与文件读写文件的打开、关闭、读写操作练习。
文件格式的转换和数据统计处理。
4. 预处理指令与宏定义使用预处理指令进行条件编译和宏定义替换。
练习使用常见的预处理指令如include、define、ifdef等。
5. 结构体、链表与指针结构体的定义和使用。
链表的创建、插入、删除、遍历等操作。
指针的概念和指针运算。
深入理解指针与数组、结构体等数据结构的关系。
6. 位运算与嵌入式系统编程学习位运算符的使用和位段操作的实现。
嵌入式系统的基本概念和编程方法。
7. 综合项目实践参与或独立完成一个综合性C语言程序设计项目。
项目可以包括基于命令行参数的程序设计、基于文件操作的程序设计、基于网络编程的程序设计等。
三、实习过程1. 理论学习:通过教材、网络资源等途径学习C语言的基础知识和编程技巧。
2. 上机实践:在计算机上编写和调试C语言程序,不断巩固所学知识。
3. 问题解决:遇到问题时,通过查阅资料、请教老师或同学等方式解决问题。
4. 团队合作:在小组项目中与他人协作,共同完成任务。
四、实习收获1. 知识技能方面:深入理解了C语言的基本概念和编程技巧,掌握了模块化程序设计和文件操作等常用算法。
2. 解决问题能力方面:学会了如何分析问题、寻找解决方案并通过实践验证解决方案的正确性。
3. 团队协作能力方面:学会了与他人合作,共同完成任务,提高了团队协作能力。
4. 职业素养方面:培养了耐心、细致的工作态度和勇于尝试、敢于创新的探索精神。
创新源于实践《高级语言程序设计》课程实验教学手册高级语言程序设计课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。
2、实验结束后填写通过后的源程序和对实验的总结。
3、通过后的源程序可以手写也可以打印粘贴。
实验项目一览表学号:姓名:成绩:实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境(VC++、Cfree、Turboc2.0等)2.了解C程序的基本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程示例在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。
学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开)1.3 编程在屏幕上显示如下网格。
+---+---+| | || | |+---+---+# include <stdio.h>int main(){printf("+---+---+\n");printf("| | |\n");7printf("| | |\n");printf("+---+---+\n");return 0;1.4 调试示例改正下列程序中的错误,在屏幕上显示“Welcome to You !”。
(掌握找错、改错的方法)源程序:# include <stdio.h>int mian(void)//mian改为main{printf(Welcome to You! \n")//括号后加”getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:学号:姓名:成绩:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握基本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。
四川师范大学计算机科学学院《C语言程序设计》实验手册2010年2月年级: 2009级专业:计算机科学与技术班级:一班姓名:谢丹学号: 2009110156 指导教师:廖雪花《C语言程序设计》实验课程简介课程名称:C语言程序设计实验课程性质:专业必修课课程属性:专业必修课学时学分:学时32 学分1开课实验室:软件实验室面向专业:网络工程、软件工程、计算机科学与技术一、课程的任务和基本要求C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C 语言程序设计》课程而开设的实验性教育环节。
本课程的主要任务是让学生充分掌握C语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。
C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。
通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。
二、实验项目【实验一】最简单的C程序---顺序程序设计【实验二】逻辑运算和判断选取控制【实验三】循环结构程序设计(一)【实验四】循环结构程序设计(二)【实验五】函数【实验六】数组(一)【实验七】数组(二)【实验八】指针【实验九】结构体、共用体和文件【实验十】C程序综合性实验三、有关说明1、与其它课程和教学环节的联系:先修课程:计算机文化后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程2、教材和主要参考书目:(1)教材:《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。
(2)主要参考书目:《C语言程序设计》谭浩强主编,清华大学出版社,2003年。
三、实验内容实验一最简单的C程序---顺序程序设计(验证性实验 2学时)(一)、实验目的1.熟悉win-tc程序运行环境2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法3.掌握C语言中使用最多的一种语句——赋值语句4.掌握数据的输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序的运行结果(1)#include <stdio.h>void main(){printf(“*****************\n”);printf(“This is a c program. \n”);printf(“****************\n”);}运行结果及分析:结果:****************** 分析:在C语言中,\n表示换行,因此运行结果为三行。
实验五指针与结构体一、实验目的1.掌握指针和指针变量的概念。
2.掌握简单指针变量的定义和基本使用方法。
3.熟悉指针和一维数组的关系,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素。
4.了解指针和二维数组的关系,了解用指针表示二维数组元素的方法。
5.了解指针与字符串的关系,能熟练使用指针处理字符串。
6.掌握结构体类型变量的定义和使用;二、实验预习1.理解为什么要引入指针,引入指针是为了解决什么问题。
指针和地址之间的关系是什么?2.指针和指针变量有什么区别?3.如何理解指针的类型和变量空间存储数值的类型之间的对应关系?当指针自增时,跳过的地址为多少,与什么因素有关?4.理解指向数组的指针与数组名之间的联系与区别?数组名可以通过自增来实现地址空间的变化吗?5.指向数组的指针和指针数组之间有什么样的区别,在定义的时候如何区分?6.理解为什么要引入结构体?结构体类型和结构体变量分别指什么?三、实验内容(一)阅读并调试下列程序,根据要求给出程序结果。
1.用指针访问简单变量。
⑴ 编程分析定义指向整型变量的指针变量,然后通过“*指针变量”的形式即可访问相应的简单变量。
⑵ 参考程序/* 用指针访问简单变量的程序 */#include "stdio.h"void main(){int a,b,c,temp;int *p1,*p2,*p3;printf("请输入三个整数值(a,b,c):\n");scanf("%d,%d,%d",&a,&b,&c);p1=&a; /* 使指针p1指向简单变量a */p2=&b; /* 使指针p2指向简单变量b */p3=&c; /* 使指针p3指向简单变量c */if(*p1<*p2){temp=*p1;*p1=*p2;*p2=temp;}if(*p1<*p3){temp=*p1;*p1=*p3;*p3=temp;} /* 至此p1指向了三个数中的最大数 */if(*p2<*p3){temp=*p2;*p2=*p3;*p3=temp;} /* 至此p3指向了最小数,p2指向了中间数 */printf("%d,%d,%d\n",*p3,*p2,*p1);}⑶ 程序调试① 运行程序,任意输入三个整数(之间以逗号分隔),察看并分析程序运行结果。
C++实验报告——数组和指针评分签名日期湖南商学院实验报告课程名称 C++语言程序设计实验名称数组和指针专业班级姓名学号实验日期第四周星期三七八节实验地点E6032011—2012学年度第二学期一、实验目的1.掌握一维数组和二维数组定义的方法、初始化方法及数组元素的引用方法。
2.熟练掌握一维数组和二维数组的使用。
3.掌握字符数组与字符串的关系以及字符串变量的表示;熟练字符串处理函数的应用。
4.熟练掌握指针、地址、指针类型、void指针、空指针等概念。
5.熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式。
6.会使用数组的指针和指向数组的指针变量。
7.会使用字符串的指针和指向字符串的指针变量。
8.学会使用指向函数的指针变量。
9.了解指针与链表关系。
二、实验内容1.用筛法求100之内的素数。
2.编写程序,输入10个整数,并对其进行从小到大排序,输出排序结果。
3.打印出以下的杨辉三角形(要求打印出10行)。
11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 14.输入两个字符串,比较这两个字符串,并输出比较的结果, 不要用strcmp 函数。
5.编一程序,将两个字符串连接起来,不要用strcat函数。
6.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写3个函数:输入10个数;进行处理;输出10个数。
7.编写一个函数,将一个4×5的矩阵转置。
8.有一篇文章,共有3行文字,每行有80个字符。
要求使用指针变量分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
9.对5个字符串进行排序,并输出排序后的字符串。
三、实验环境VC++6.0四、相关知识1.排序方法有多种,可以选择不同的排序方法实现,并比较不同算法排序的效率。
排序可以用最简单的选择排序法。
选择排序法:1) 从n个数中选择最小的一个,把它和第一个数组元素交换;2) 从剩下的n-1个数中选择最小的一个,把它和第二个数组元素交换;3) 依此类推,直到从最后两个元素中选出倒数第二小的元素并把它和倒数第二个元素交换为止。
实验十:数组、指针和函数综合编程练习一:实验目的:–1.掌握指针变量的定义和使用–2.指针变量作为函数参数的实际意义。
–3.体会数组名作为函数参数与指针变量作为函数参数的区别。
二:实验内容及要求:1 打印最高分和学号假设每班人数最多不超过40人,具体人数由键盘输入,用一维数组和指针变量作为函数参数,编程打印某班一门课成绩的最高分及其学号。
2 字符串拷贝分别用字符数组和字符指针编程实现字符串拷贝。
三:程序源代码:题目1:#include <stdio.h>#define ARR_SIZE 40void Findmax(int score[],long num[],int n,int *pmaxScore,long *pmaxNum);main(){int i,n;int score[ARR_SIZE],maxScore;long num[ARR_SIZE],maxNum;printf("Please enter total number:");scanf("%d",&n);printf("Please enter the number and score:\n");for(i=0;i<n;i++){scanf("%ld%d",&num[i],&score[i]);}Findmax(score,num,n,&maxScore,&maxNum);printf("maxScore=%d,maxNum=%06ld\n",maxScore,maxNum);}void Findmax(int score[],long num[],int n,int *pmaxScore,long *pmaxNum){int i;*pmaxScore=score[0];*pmaxNum=num[0];for(i=0;i<n;i++){if(score[i]>*pmaxScore){*pmaxScore=score[i];*pmaxNum=num[i];}}}题目2:#include <stdio.h>void Mystrcpy(char *dstStr,const char *srcStr); main(){char dstStr[80],srcStr[80];printf("Please enter a string:");scanf("%s",srcStr);Mystrcpy(&dstStr,&srcStr);printf("The copy is:%s\n",dstStr);}void Mystrcpy(char *dstStr,const char *srcStr) {while(*srcStr!='\0'){*dstStr=*srcStr;dstStr++;srcStr++;}dstStr='\0';}四:运行结果、分析与讨论:题目1:Please enter total number:5 Please enter the number and score: 00001 8500002 6500003 9800004 8700005 45maxScore=98,maxNum=000003 Press any key to continue... 在程序需要多个返回变量值时,return因无法实现其目的而显现出它的劣势,而通过使用指针变量来实现对存储地址内的内容的交换,并返回相应的值是很好的选择。
学号:012301114138 姓名:王志禄
验证性实验1:数组,指针,结构体练习
1.实验目的
(1)复习C(或C++)语言数组的用法。
(2)复习C(或C++)语言指针的用法。
(3)复习C(或C++)语言结构体的用法。
(4)理解算法时间复杂度分析的基本方法。
(5)通过实验程序,分析它们的时间复杂度。
2.实验内容
(1)将1~10存入数组a[10],并将其逆序输出。
(2)用指针方式编写程序:从键盘输入10个整型数据,并存入数组,要求将10个数中最大的数与第1个输入的数交换;将10 个树中最小的数与最后1个输入的数交换。
(3)有5个学生,每个学生的数据包括学号,姓名,3门课的成绩,平均分。
要求:从键盘依次输入5个学生的学号,姓名,3门课成绩,自动计算3门课成绩的平均分,并将5个学生的数据在屏幕上输出。
3.参考程序
(1)
#include<stdio.h>
void main()
{inti,a[10];
for(i=0;i<=9;i++)
a[i]=i+i;
for(i=9;i>=0;i--)
printf("%3d",a[i]);
printf("\n");
}
(2)
#include<stdio.h>
void main()
{int a[10],*p,*max,*min,k;
for(p=a;p<a+10;p++)
scanf("%d",p);
max=min=a;
for(p=a+1;p<a+10;p++)
{ if(*max<*p)
max=p;
if(*max>*p)
min=p;
}
p=a;
if(*max==*(p+9)&&*min==*p)
{k=*p;
*p=*(p+9);
*(p+9)=k;
}
else
if(*max==*(p+9))
{k=*max;*max=*p;*p=k;k=*min;*min=*(p+9);*(p+9)=k;} else
{k=*min;*min=*(p+9);*(p+9)=k;k=*max;*max=*p;*p=k;} for(p=a;p<a+10;p++)
printf("%4d",*p);
printf("\n");
}
(1)
#include"stdio.h"
struct STUDENT
{char id[10];
char name[8];
int score[3];
doubleave;
}stu[5];
void main()
{intnum=5,i,j;
for(i=0;i<num;i++)
{printf("\t请输入第%d学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
printf("\t姓名:");
scanf("%s",stu[i].name);
intTave=0;
for(j=0;j<3;j++)
{printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
Tave+=stu[i].score[j];
}
stu[i].ave=(double)Tave/3.0;
}
printf("\n\t学号\t姓名\t成绩1\t成绩2\t成绩3\t平均分\n"); for(i=0;i<num;i++)
{printf("\t%d\t%s",stu[i].id,stu[i].name);
for(j=0;j<3;j++)
printf("\t%d",stu[i].score[j]);
printf("\t%f\n",stu[i].ave);
}
}。