C语言程序设计实验4 数组 周信东

合集下载

实验四 数组应用程序设计实验

实验四  数组应用程序设计实验

实验四数组的应用程序设计一、实验目的1.掌握C语言的一维数组和二维数组的应用;2.掌握常用的排序算法;3.掌握字符数组和字符串函数的使用;二、实验内容编写程序,完成如下功能1. 编写程序实现如下功能,输入了20个整数,把这些整数存放在一个数组中,并且输出其中的最大者与最小者及他们在数组中的下标、这20个数的和及它们的平均值。

2. 从键盘输入15整数,对这些数进行从大到小排序后按次序显示各个数。

3. 在整型数组M中存放12个非0 整数,使用scanf( )函数将12个整数从键盘读入到M中,并要求M中有正数和负数,编写程序,将数组M中的所有正数存放在数组的前面,负数存放在数组的后面,并显示数组M中的各个元素的值。

4.从键盘输入一个字符串并存入字符数组中,分别统计其中的数字字符、字母、空格和其它字符的个数。

5. 从键盘输入一个字符串(小于50个字符,该字符串中可以含有字母、数字和空格),并存入字符数组strArray中,将数组strArray中的字符颠倒后存入另外一个数组reverseArray 中(也就是第一个字符变成最后一个字符,第二个字符变成倒数第二个字符…,), 再把reverseArray数组中的各个字母变成其后的第5个字母(如A变成F,B变成G,…,Z变成E等),分别显示这两个数组中的各元素。

6*. 从键盘输入16个数组成一个4行4列的二维数组,(1)求对角线上的各个元素的和与积;(2)求所有靠边元素的和与积;(3)求所有不靠边元素的和与积7*. 已知有两个矩阵:求矩阵的乘积:C = AB,并按行列显示矩阵C的各个元素。

8*.使用随机函数rand( ), 产生50个[0,100]之间的整数,并把这一批整数存在一个整型数组A中,定义另外一个整形数组B,请把A数组中的数按照从大到小的顺序放入数组B中,最后,分别显示数组A和数组B的各个元素。

提示:随机函数int rand(void) 在头文件stdio.h中,该函数可以返回一个在[0,32767]之间的整数,本实验后面附有例子。

周信东主编C语言程序设计基础实验一实验报告精编

周信东主编C语言程序设计基础实验一实验报告精编

周信东主编C语言程序设计基础实验一实验报告精编实验一实验报告:C语言程序设计基础一、实验目的本实验旨在通过实践的方式学习C语言程序设计的基本概念和语法规则,初步掌握C语言的编程思想和方法,提高编程能力和解决实际问题的能力。

二、实验内容1. 编写一个简单的C程序,要求输出"Hello, World!"。

2.编写一个C程序,实现两个整数的加法。

3.编写一个C程序,实现给定半径的圆的面积和周长的计算。

三、实验步骤及结果1.实验步骤第一步:编写HelloWorld程序#include <stdio.h>int maiprintf("Hello, World!\n");return 0;第二步:编写两个整数相加的程序#include <stdio.h>int maiint num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum); return 0;第三步:编写圆的面积和周长计算程序#include <stdio.h>#define PI 3.14int maifloat radius, area, perimeter;printf("请输入圆的半径:\n");scanf("%f", &radius);area = PI * radius * radius;perimeter = 2 * PI * radius;printf("圆的面积为:%f\n", area); printf("圆的周长为:%f\n", perimeter); return 0;2.实验结果HelloWorld程序运行结果:Hello, World!两个整数相加程序运行结果:请输入两个整数:35两个整数的和为:8圆的面积和周长计算程序运行结果:请输入圆的半径:四、实验总结通过本次实验,我学习了C语言的基本语法规则和编程思想,掌握了使用printf和scanf函数进行输入输出操作、变量的定义和赋值、简单的数学运算,进一步了解了C语言的使用场景和基本应用。

《C语言程序设计》实验报告数组

《C语言程序设计》实验报告数组

《C语言程序设计》课程实验报告≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡3.有一个已排序好的数组,要求输入一个数后,按原来排序规律插入到数组中。

编写以下程序:#include<stdio.h>main(){ int a[6] = {1,3,6,7,9};int i,j,x,t;printf("insert data:");scanf("%d",&x);for(i=0;i<5;i++)if(x<a[i])break;for(j=5;j>i;j--)a[j]=a[j-1];a[j]=x;printf("Now array a:\n");for(i=0;i<6;i++)printf("%4d",a[i]);printf("\n");}结果如下:4.有一篇文章,共有3行文字,要求分别统计出大写字母、小写字母、数字、空格以及其它字符的个数。

编写以下程序:#include <stdio.h>int main(){int i,j,upp,low,dig,spa,oth;char text[3][10];亲爱的朋友,上文已完,为感谢你的阅读,特加送另一篇范文,如果下文你不需要,可以下载后编辑删除,谢谢!道路施工方案1、工程概况2、编制说明及编制依据3、主要施工方法及技术措施3.1施工程序3.2施工准备3.3定位放线3. 4土方开挖3.5卵石路基施工3.6天然砾基层施工3. 7高强聚酯土工格楞3.8水泥稳定砂砾基层施工3.9路缘石施工3. 10玻璃纤维土工格栅施工3.11沥青面层施工3. 12降水施工4、质量控制措施5、雨季施工安排6、安全技术措施1.工程概况本项目建设的厂址位于新疆石河子市。

工程场地位于石河子高新技术开发区经七路西。

场地原为麦田,地势南高北低。

C语言程设计实验与案例周信东主编机试试卷011

C语言程设计实验与案例周信东主编机试试卷011

C语言程设计实验与案例周信东主编机试试卷考前准备:请在E盘根目录下建一个以自己学号命名的文件夹,试题中的所有程序所对应的工程目录都创建在学号文件夹下。

第1题:改错题(30分)要求:该程序文件中有1~5个错误,请改正程序中的错误,使程序能输出正确的结果。

不得增加行或删除行,也不得更改程序的结构。

否则为0分。

该程序C10.c的功能:计算1/n!的值,例如:获至给n输入5,则输出0.008333。

【C10.c】【评分标准】每一错误处改正正确后得分5分,否则不得分。

各处错误设置如下:#include <stdio.h>int fun(int n) /*(1)函数类型错,int应改为double */{double res=1.0;if(n=0) /*(2)等号写错,应改为:n==0 */return 1.0;while(n>1 && n<170); /*(3)应去掉行末分号*/res*=n--;res=1/res;return res;}main(); /*(4)应去掉行末分号*/{int n;printf("Input N:");scanf("%d",n); /*(5)未加地址符,n应改为&n */printf("\n%d!=%f\n",n,fun(n)); /*(6)输出格式%f应改为%lf */}第2题:编程题1(30分)题目描述:输入4*4的数组,编写程序实现找出数组中其值最大和最小的元素以及它们在数组中的位置。

要求:编程题对应的工程名为“prog1”,工程目录放在学号文件夹下。

【参考程序】#define M 4#define N 4main(){int a[M][N],i,j;int min_row,min_col,max_row,max_col;for (i=0; i<M; i++)for (j=0; j<N; j++)scanf("%d",&a[i][j]);min_row=min_col=max_row=max_col=0;for (i=0; i<M; i++)for (j=0; j<N; j++){if (a[i][j]<a[min_row][min_col]){min_row=i;min_col=j;}if (a[i][j]>a[max_row][max_col]){max_row=i;max_col=j;}}printf("max:a[%d][%d]=%d\n",max_row,max_col,a[max_row][max_col]);printf("min:a[%d][%d]=%d\n",min_row,min_col,a[min_row][min_col]);}【评分标准】1、程序结构完整:2分2、变量定义、语句、表达式书写正确、规范:2分3、算法描述正确:数组输入:3查找最大/最小值:6分查找最大/最小值下标:6分4、程序优化:5分5、有输入/输出操作信息提示:1分6、输入数据错误检测:1分7、编译无错误:2分8、结果正确:2分第3题:编程题2(40分)题目描述:定义一个函数:void sortArray(float*a,int n,short mode);该函数的功能是对一个数组a进行排序,n为参与排序的元素的个数,mode为排序方式,当mode=0时,按升序排序,mode不为0时按降序排序。

周信东主编版C语言程序设计基础实验一实验报告

周信东主编版C语言程序设计基础实验一实验报告

周信东主编版C语言程序设计基础实验一实验报告实验报告:C语言程序设计基础实验一一、实验目的本实验的主要目的是让学生熟悉C语言的基本语法和数据类型,培养运用C语言进行编程的能力。

通过实验,学生将深入理解C语言的程序结构、变量的定义和赋值、数据类型的转换、运算符的使用等基本知识点,并能够独立编写简单的C程序。

二、实验内容本实验主要包括以下三个部分:1.简单的输入与输出程序:要求用户输入姓名和年龄,然后输出用户的个人信息。

2.简单的数值运算程序:用户输入两个整数,程序计算并输出这两个整数的和。

3.三个整数排序程序:用户输入三个整数,程序对这三个整数进行排序,并输出结果。

三、实验过程与结果1.简单的输入与输出程序:实验过程:首先,我们使用`scanf(`函数从用户输入中获取姓名和年龄,然后使用`printf(`函数输出用户的个人信息。

实验结果:例如,用户输入姓名为“张三”,年龄为18,则程序输出“姓名:张三,年龄:18”。

2.简单的数值运算程序:实验过程:首先,我们使用`scanf(`函数从用户输入中获取两个整数,然后使用`+`运算符将这两个整数相加,并将结果保存在一个变量中。

最后,使用`printf(`函数输出这两个整数的和。

实验结果:例如,用户输入整数1和整数2分别为3和5,则程序输出“整数1+整数2的和:8”。

3.三个整数排序程序:实验过程:首先,我们使用`scanf(`函数从用户输入中获取三个整数,然后使用条件语句和循环语句对这三个整数进行排序。

最后,使用`printf(`函数输出排序后的结果。

实验结果:例如,用户输入的三个整数为2、1和3,则程序输出“排序后的结果为:1、2、3”。

四、实验总结通过本实验,我进一步熟悉了C语言的基本语法和数据类型,并通过实际编写程序来加深对这些知识的理解。

在实验过程中,我遇到了一些问题,例如如何正确使用`scanf(`函数从用户输入中获取数据,如何使用条件语句和循环语句对数据进行处理等。

c语言程序设计 周信东 实验四 数组

c语言程序设计 周信东 实验四 数组
程序运行结果如下图所示:
6-6(选作):我使用的算法为:请用文字描述一下
程序运行结果如下图所示:
6-7(选作):我使用的算法为:请用文字描述一下
程序运行结果如下图所示:
7-1该程序的功能是:从键盘中输入一个字符串,如果其中的一些字符串的值不在0到9之间,则把这些值赋值到数组b中
程序运行结果如下图所示:
for( i = 0; i < 10; i++ )
{
scanf( "%d", &arr[ i ] );
brr[ i ] = arr[ i ];
}
for( pass = 1; pass < 10;pass++)
for( i = 0; i < 9; i++ )
{
if( arr[ i ] > arr[ i+1 ] )
brr[ i + 1 ] = hold;
}
}
printf( "\nThe solution is: \n" );
for( i = 0; i < 11; i++ )
{
printf( "%d\t", brr[ i ] );
}
system( "pause" );
return 0;
程序运行结果如下图所示:
6-5:我使用的算法为:运用字符串的循环筛选
scanf( "%d", &brr[ 10 ] );
for( pass = 1; pass < 11;pass++)
for( i = 0; i < 10; i++ )

C语言4:数组

C语言4:数组

C语言实验——排列Time Limit: 1000MS Memory limit: 65536K题目描述有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列。

输入4个整数。

输出所有排列,输出顺序见样例。

示例输入1 2 3 4示例输出1 2 31 3 22 1 32 3 13 1 23 2 11 2 41 4 22 1 42 4 14 1 24 2 11 3 41 4 33 1 43 4 14 1 34 3 12 3 42 4 33 2 43 4 24 2 34 3 2#include<stdio.h>void main(){int a,b,c,d;scanf("%d %d %d %d",&a,&b,&c,&d);printf("%d %d %d\n",a,b,c);printf("%d %d %d\n",a,c,b);printf("%d %d %d\n",b,a,c);printf("%d %d %d\n",b,c,a);printf("%d %d %d\n",c,a,b);printf("%d %d %d\n",c,b,a);printf("%d %d %d\n",a,b,d);printf("%d %d %d\n",a,d,b);printf("%d %d %d\n",b,a,d);printf("%d %d %d\n",b,d,a);printf("%d %d %d\n",d,a,b);printf("%d %d %d\n",d,b,a);printf("%d %d %d\n",a,c,d);printf("%d %d %d\n",a,d,c);printf("%d %d %d\n",c,a,d);printf("%d %d %d\n",c,d,a);printf("%d %d %d\n",d,a,c);printf("%d %d %d\n",d,c,a);printf("%d %d %d\n",b,c,d);printf("%d %d %d\n",b,d,c);printf("%d %d %d\n",c,b,d);printf("%d %d %d\n",c,d,b);printf("%d %d %d\n",d,b,c);printf("%d %d %d\n",d,c,b);}C语言实验——矩阵转置Time Limit: 1000MS Memory limit: 65536K 题目描述输入N*N的矩阵,输出它的转置矩阵。

桂林电子科技大学-实验C语言-程序设计-习题-答案(周信东)-6--指-针

桂林电子科技大学-实验C语言-程序设计-习题-答案(周信东)-6--指-针

实验6 指针姓名:学号:实验日期:2013/12/11 1.实验目的和要求(1)掌握指针的概念、指针变量定义格式和引用。

(2)掌握指针的运算方法。

(3)掌握数组的指针和指向数组的指针变量。

(4)掌握指针与函数的关系。

(5)能正确使用字符串的指针和指向字符串的指针变量。

(6)了解指向函数的指针。

(7)了解指向指针变量的指针。

2.实验内容:实验指导书中的实验九。

3.实验步骤9.1 调试程序,找出程序的错误。

改正后的程序代码(贴图):运行结果(帖图):9.2 运行程序:运行结果:;9.3 修改程序错误,并运行。

改正后程序代码:运行结果(帖图):9.4. 程序填空:运行结果(请帖图):9.5. 程序填空:程序填空:#include <stdio.h>main(){int a[5][5]={0},*p[5],i,j;for(i=0; i<5; i++) p[i]= &a[i][0] ;for(i=0; i<5; i++){ *(p[i]+ i)=1;*(p[i]+5- (i+1)) =1;}for(i=0; i<5; i++){for(j=0; j<5; j++)printf("%2d", p[i][j]);printf("\n");}}运行结果(请帖图):9.6 编程(选作)程序代码(请帖图):运行结果(请帖图):97. 运行程序(选作):运行结果(请帖图):4、实验心得:通过实验,我对指针的领悟进一步加深。

指针是C语言学习中非常重要的内容,所以要通过实验进行验证,加深记忆。

只有理论学习与上机验证相结合,才能更好地掌握指针。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4数组
姓名:XXX学号:XXX实验日期:XXX
1.实验目的和要求
(1)掌握一维数组与二维数组的定义、使用及初始化方法。
(2)学习数组作为函数参数的用法。
(3)掌握字符数组和字符串函数的使用方法。
(4)掌握与数组有关的常用排序算法,进一步理解模块化程序设计的方法。
(5)掌握字符、字符串的输入/输出方法。
printf ("Enter your number\n") ;
for (i=1; i<=20;++i)
{scanf (" %d",&number) ;
if (!number) break;
++vote[number];
}
printf (" \n\nResalt of vote\n") ;
printf (" --------------------------\n") ;
if((password[i]>='a'&&password[i]<='z'))
{
password[i]=password[i]+3;
if(password[i]>'z')
{
password[i]='a'-1+password[i]-'z';
}
}
i++;
}
printf("对应的明文为:\n");
puts(password);
i=-1;
break;
}
}
if(i!=-1)
{
if(res>0)
{
printf("字符串1包含字符串2");
}
else
{
printf("字符串2包含字符串1");
}
}
}
getchar();
}
程序运行结果如下图所示:
4实验小结
通过本实验的学习,学会了数组的应用和字符数组的应用。
printf("请输入字符串2:\n");
gets(s2);
res=strcmp(s1,s2);
if(res==0)
{
printf("两个字符串相同!");
}
else
{
for(;s1[i]!='\0'&&s2[i]!='\0';i++)
{
if(s1[i]!=s2[i])
{
printf("两个字符串第1个不相同字符的ASCII码之差为:%d",s1[i]-s2[i]);
程序运行结果如下图所示:
6-5:我使用的算法为:
#include<stdio.h>
#include<string.h>
void main()
{
char str1[100],str2[100];/*str2表示要在str1中寻找的字符串*/
int len1,len2;/*str1,str2的长度*/
int i,j,k;/*循环变量*/
{
nNum++;
}
else
nOther++;
}
printf("您刚才输入的小写字母个数为:%d\n",nLower);
printf("数字字符个数为: %d\n",nNum);
printf("其他字符个数为:%d\n",nOther);
}
程序运行结果如下图所示:
7-4:我使用的算法为:
#include<stdio.h>
getchar();
}
程序运行结果如下图所示:
6-6(选作):我使用的算法为:请用文字描述一下
程序运行结果如下图所示:
6-7(选作):我使用的算法为:请用文字描述一下
程序运行结ห้องสมุดไป่ตู้如下图所示:
7-1该程序的功能是:
程序运行结果如下图所示:
将字符串a中的数字去掉,形成新的字符串b
7-2:我使用的算法为:
程序运行结果如下图所示:
6-3:该程序的功能是:
对a数组中n种商品价格进行分段统计,商品各段价格的数目存放到b数组中。
程序运行结果如下图所示:
6-4.:我使用的算法为:
先对11个元素进行定义,在对10个元素进行排序,之后读入一个待插入的数,与排好的10个数进行比较,找到插入位置,之后的数组元素进行后移,数组后移的实现,是将j赋值给j+1,最后,将待插入的数赋值到空位。
void main()
{
char a[]="this is a program";
int i=0;
while(a[i]!='a')
{
i++;
}
printf("字符'a'第1次出现的位置(从0开始记)是%d\n",i);
}
程序运行结果如下图所示:
7-5:我使用的算法为:
#include<stdio.h>
int count;/*计数*/
/*输入*/
printf("请输入原始字符串:");
gets(str1);
printf("请输入要在原始字符串中查找的子字符串:");
gets(str2) ;
/*初始化变量*/
len1=strlen(str1);
len2=strlen(str2);
count=0;
/*开始计数,请务必读懂如下程序段*/
for (i=1;i<=5;++i)
printf (" %4d %d\n",i,vote[i])
程序的运行测试结果如下图所示(考虑各种情况下的运行结果):
6-2:该程序的功能是:
用循环,先把数组的第一个元素暂存起来,为了实现数组的前移,把j赋给j-1;再将暂存的第一个元素赋给最后一个元素;再用循环输出数组。
{
str3[i]=str1[i];
}
j=i;
for(i=0;str2[i]!='\0';i++,j++)
{
str3[j]=str2[i];
}
printf("两个字符串的组合结果为:\n");
puts(str3);
}
程序运行结果如下图所示:
7-3:我使用的算法为:
#include<stdio.h>
void main()
#include <ctype.h>
void main()
{
char password[100];
int i=0;
printf("请输入原始密码(以@作为结束符号):\n");
gets(password);
while(password[i]!='@')
{
password[i]=tolower(password[i]);
getchar();
}
程序运行结果如下图所示:
7-6:我使用的算法为:
#include<stdio.h>
#include<string.h>
void main()
{
char s1[100];
char s2[100];
int i=0;
int res;
printf("请输入字符串1:\n");
gets(s1);
(6)掌握字符数组的使用。
(7)学会使用字符串的指针和指向字符串的指针变量。
2.实验内容:实验指导书中的实验六、实验七
3.实验步骤
实验六数组部分:
6-1:我使用的算法:
先使投票初始化为0
int vote[6];
int i,number;
for (i=1;i<=5;++i)
vote[i]=0;
之后用一个循环进行投票进行叠加
for(i=0;i<len1-len2+1;i++)
{
k=i;
//从str1的下标为k的元素开始,逐个
for(j=0;j<len2;j++,k++)
{
if(str2[j]!=str1[k])
{
break;
}
}
if(j==len2)
{
count++;
i=k-1;
}
}
/*输出*/
printf("字符串\"%s\"中包含%d个子字符串\"%s\"",str1,count,str2);
#include<stdio.h>
#include<conio.h>
main()
{
char str1[100],str2[100],str3[202];
int i,j;
printf("请输入字符串1:\n");
gets(str1);
printf("请输入字符串2:\n");
gets(str2);
for(i=0;str1[i]!='\0';i++)
相关文档
最新文档