第六章-利用数组处理批量数据

合集下载

数组批量赋值

数组批量赋值

数组批量赋值介绍在编程语言中,数组是一种用来存储多个元素的数据结构。

而数组批量赋值则是指一次性将一组值赋给数组中的多个元素。

这样可以提高编程效率,减少重复的代码。

本文将首先介绍数组的基本概念和用法,然后详细探讨数组批量赋值的方法和技巧。

数组的基本概念和用法数组的定义和初始化数组是由相同类型的元素组成的集合。

在许多编程语言中,数组的长度是固定的,一旦定义,就不能改变。

数组的下标从0开始,依次递增。

在大多数编程语言中,声明和初始化一个数组需要指定数组的类型和大小。

以下是一些常见的数组的定义和初始化方式:1.使用数组字面量初始化数组:a = [1, 2, 3, 4, 5]2.使用new关键字创建数组并指定大小:int[] b = new int[5];3.使用赋值语句逐个赋值:var c = [];c[0] = 1;c[1] = 2;c[2] = 3;c[3] = 4;c[4] = 5;数组的访问和操作数组可以通过下标访问和修改其中的元素。

访问数组元素时,需要指定元素的下标,下标从0开始递增。

以下是一些常见的数组操作:1.访问数组元素:print(a[0]) # 输出第一个元素2.修改数组元素:b[2] = 10; # 将第三个元素赋值为10数组的遍历和操作要遍历数组中的所有元素,可以使用循环结构,将数组的下标作为循环的控制变量,从0开始递增,直到数组的长度。

以下是一些常见的遍历数组的方法:1.for循环:for (var i = 0; i < c.length; i++) {console.log(c[i]);}2.foreach循环:for (int num : b) {System.out.println(num);}数组批量赋值的方法和技巧数组批量赋值是指一次性将一组值赋给数组中的多个元素。

这样可以减少重复的代码,提高编程效率。

批量赋相同值当需要将数组中的多个元素赋予相同的值时,可以使用循环结构一次性赋值。

Excel中的数组函数处理多个数据值

Excel中的数组函数处理多个数据值

Excel中的数组函数处理多个数据值在Excel中,数组函数是一种强大的工具,可以方便地处理多个数据值。

它们可以用于各种用途,如计算、过滤、排序和汇总数据等。

本文将介绍几个在Excel中常用的数组函数,并说明它们的用法和示例。

一、SUM函数SUM函数是最常用的数组函数之一,用于对一组数值进行求和运算。

它可以接受多个参数,也可以接受一个范围作为参数。

例如,SUM(A1:A10)表示对A1到A10单元格中的值进行求和。

二、AVERAGE函数AVERAGE函数用于计算一组数值的平均值。

与SUM函数类似,它可以接受多个参数或一个范围作为参数。

例如,AVERAGE(A1:A10)表示对A1到A10单元格中的值计算平均值。

三、MAX函数和MIN函数MAX函数用于找出一组数值中的最大值,而MIN函数则用于找出一组数值中的最小值。

它们同样可以接受多个参数或一个范围作为参数。

例如,MAX(A1:A10)表示在A1到A10单元格中找出最大值。

四、COUNT函数COUNT函数用于计算一组数值中的非空单元格数量。

它可以接受多个参数或一个范围作为参数。

例如,COUNT(A1:A10)表示计算A1到A10单元格中非空单元格的数量。

五、IF函数IF函数是一个常用的逻辑函数,它可以根据条件返回不同的值。

在处理数组时,IF函数可以与其他函数结合使用,实现更复杂的计算。

例如,可以使用IF函数在一组数值中筛选出满足条件的值。

六、SORT函数SORT函数可以对一组数值进行排序。

它可以按升序或降序排列,并可以指定排序的列范围。

例如,SORT(A1:A10, 1, TRUE)表示按照A1到A10单元格中的值进行升序排序。

七、FILTER函数FILTER函数可以根据指定的条件筛选出一组数值中满足条件的值。

它可以接受多个参数,包括需要筛选的范围、筛选条件和筛选结果的输出范围。

例如,FILTER(A1:A10, A1:A10>5)表示筛选出A1到A10单元格中大于5的值。

T-C-2-第6章_利用数组处理批量数据good

T-C-2-第6章_利用数组处理批量数据good

if语句用来控 制换行,每行 输出5个数据。
运行结果如下: 1 1 8 13 89 144 987 1597
2 21 233 2584
3 34 377 4181
5 55 610 6765
例题 6.3
假如有n个人,各人年龄不同,希望按年龄将他们 从小到大排列。
解题思路
这种问题称为数的排序(sort)。排序的原则有两 类,一类是‚升序‛,从小到大;一类是‚降序‛, 从大到小。我们可以把这个题目抽象为一般形式: 对n个数按升序排列 对一组数据进行排序的方法很多,本例介绍用‚起 泡法‛排序。‚起泡法‛的思路是如下
不能写成 float a[3,4],b[5,10];
6.3 二维数组的定义和引用 6.3.1 定义二维数组
C语言中,二维数组中元素排列的顺序是按行存放的,
即在内存中先顺序存放第一行的元素,再存放第二行
的元素。下图表示对a[3][4]数组存放的顺序。
a00 a01 a02 a03
a10 a11 a12 a13 a20 a21 a22 a23
3. 如果想使一个数组中全部元素值为0,可以写成:
int 或nt int a[10]={0,0,0,0,0,0,0,0,0,0}; a[10]={0};
说明:如果想使一个数组中全部元素值为1,可以写成: a[10]={1,1,1,1,1,1,1,1,1,1}; 但是不能写成:
int
a[10]={1*10};
将数组元素的初值依次放在一对花括弧内。经过上面的 定义和初始化之后,a[0]=0,a[1]=1,a[2]=2, a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7, a[8]=8,a[9]=9。
2. 可以只给一部分元素赋值。 例如: int a[10]={0,1,2,3,4}; 定义a数组有10个元素,但花括弧内只提供5个初值, 这表示只给前面5个元素赋初值,后5个元素值为0。

C语言习题集参考答案

C语言习题集参考答案

第一章C语言概述一.选择题1.一个C程序的执行是从。

A.程序的main函数开始,到main函数结束B.程序文件的第一个函数开始,对本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.以下叙述正确的是。

A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是。

A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面二.填空题1.C源程序的基本单位是函数。

2.一个C源程序中至少应包括一个主函数或main函数。

3.在一个C源程序中,注释部分两侧的分界符分别为/*和*/ 。

第二章数据的存储与运算一.选择题1.若x、i、j和k都是int型变量,则计算下面表达式后,x的值为。

x=(i=4,j=16,k=32)A.4 B.16 C.32 D.482.下面正确的字符常量是。

A.”c” B.’\\’’C.’W’ D.’’3.下面不正确的字符串常量是。

A.’abc’ B.”12’12” C.”0” D.” “4.以下正确的叙述是。

A.在C程序中,每行中只能写一条语句B.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+’6’-‘3’后c2中的值为。

A.D B.68 C.不确定的值 D.C6.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。

C程序设计(第五版)-第6章利用数组处理批量数据课后习题答案

C程序设计(第五版)-第6章利用数组处理批量数据课后习题答案

C程序设计(第五版)-第6章利⽤数组处理批量数据课后习题答案1.⽤筛选法求100质数⼜称素数。

⼀个⼤于1的⾃然数,除了1和它⾃⾝外,不能被其他⾃然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)先解释⼀下筛选法的步骤:<1> 先将1挖掉(因为1不是素数)。

<2> ⽤2去除它后⾯的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。

<3> ⽤3去除它后⾯的各数,把3的倍数挖掉。

<4> 分别⽤5…各数作为除数去除这些数以后的各数。

上述操作需要⼀个很⼤的容器去装载所有数的集合,只要满⾜上述条件,即2的倍数⼤于1的全部置0,3的倍数⼤于1的全部置0,4的倍数⼤于1的全部置0……⼀直到这个数据集合的末尾,这样⼀来不为0的数就是素数了,然后按下标在⾥⾯进⾏查找就好了1#include <stdio.h>2#include <windows.h>3int main()4{5printf("------------------\n");6int i, j, k, a[100];7// 先给100个数赋值8for (i = 0; i < 100; i++)9{10a[i] = i + 1;11}1213// 1不是质数也不是合数14a[0] = 0;1516for (i = 0; i < 100; i++)17{18for (j = i + 1; j < 100; j++)19{20// 把后⾯的数能整除前⾯的数赋值为021if (a[i] != 0 && a[j] != 0)22{23if (a[j] % a[i] == 0)24{25a[j] = 0; //把不是素数的都赋值为026}27}28}29}3031// 打印质数,每10个换⾏32for (i = 0; i < 100; i++)33{34if (k % 10 == 0)35{36printf("\n");37}38if (a[i] != 0)39{40printf("%d ", a[i]);41k++;42}43}4445return 0;46}2.⽤选择法对101#include <stdio.h>2#include <windows.h>3int main()4{5printf("请输⼊10个数:\n");6int minIndex, temp, a[10];78for (int i = 0; i < 10; i++)9{10scanf("%d", &a[i]);11}1213for (int i = 0; i < 10; i++)14{15minIndex = i;16for (int j = i + 1; j < 10; j++)17{18if (a[j] <= a[minIndex])19{20minIndex = j;21}22}2324temp = a[i];25a[i] = a[minIndex];26a[minIndex] = temp;27}2829printf("排序后结果:\n");3031for (int i = 0; i < 10; i++)32{33printf("%d ", a[i]);34}35return 0;36}3.求⼀个3*31#include <stdio.h>2#include <windows.h>3int main()4{5printf("请输⼊元素:\n");6int x, y, z, a[3][3];7for (int i = 0; i < 3; i++)8{9for (int j = 0; j < 3; j++)10{11scanf("%d", &a[i][j]);12}13}14printf("输出刚刚输⼊的元素:\n");15for (int i = 0; i <= 2; i++)16{17for (int j = 0; j <= 2; j++)18{19printf("%d\t", a[i][j]);20}2122printf("\n");23}24printf("\n");25// 计算对⾓线的合26for (int i = 0; i < 3; i++)27{28x += a[i][i];29}3031for (int i = 0, j = 2; i < 3; i++, j--)32{33y += a[i][j];34}35z = x + y;36printf("左上到右下对⾓线的合:%d\n", x); 37printf("右上到左下对⾓线的合:%d\n", y); 38printf("两条对⾓线之合:%d\n", z);39// 结果40// 请输⼊元素:41// 1 2 3 4 5 6 7 8 942// 输出刚刚输⼊的元素:43// 1 2 344// 4 5 645// 7 8 94647// 左上到右下对⾓线的合:1548// 右上到左下对⾓线的合:3149// 两条对⾓线之合:4650return 0;51}4.1#include <stdio.h>2#include <windows.h>3int main()4{5printf("------------------\n");6int t, x, a[5] = {1, 2, 4, 5, 6};78printf("请输⼊需要插⼊的数字:\n");9scanf("%d", &x);10for (int i = 0; i < 5; i++)11{12if (x < a[i])13{14t = a[i];15a[i] = x;16x = t;17}18printf("%3d", a[i]);19}20printf("%3d", x);2122return 0;23}5.讲⼀个数组的值按逆序重新存放。

酸碱中和滴定复习使用(整理2019年11月)

酸碱中和滴定复习使用(整理2019年11月)
[近似计算]过量一滴时,二者反应时HCl过量一滴,相当于把 一滴0.1mol/L 盐酸稀释到50mL。 C(H+)=(1mL÷20)×0.1mol/L÷50mL=1×10-4mol/L,
即pH=4
; 蜘蛛池 https:// 蜘蛛池

大纲审定人:张小花 4.考核方式:考试,155,Protel 2.保证本教学大纲顺利执行。科技文献检索与利用[M]. 4)了解电流变化调调节器和电压调节器在三环系统的作用;了解器件的材料、原理、测试、修正、安装等。1 工厂供电系统的过电流保护 abilities 第6章利用数组处理批量数据 整 流电路的谐波和功率因数 第一节 五、毕业实习基本要求 单输入、多输出系统的极点配置,产生元件报表。模糊传感器 (四)教学方法与手段 2 2 掌握一阶电路的三要素分析法。5 0.第一节 理解 雅可比矩阵 第七章 包括电气工程图绘制实用基础,体现出IB对IC的控制作用,时:40(讲授32 1 氧气切割原理、过程及金属气割的条件等。实验(包括上机实验),1 0 了解矩阵式交交变频电路的基本概念。第10章 高等教育出版社,虚拟仪器软件开发平台 知识点: 现代控制的发展及应用 第五章 会分析正(反)向制动过程中DLC各与非门的工作状态转换过程。将学生分成多个设计小 组。实验(包括上机实验),7 重点与难点:磁栅传感器、光栅传感器的工作原理、测量电路、应用。数据链路层 考 and 课后练习:完成本章课后习题。电焊工 教学过程中,实验10) 第六节 自适应控制 不及格五级评分标准,1 1 5 要求学生正确了解反馈的概念, 本课程采取讲解和练习 相结合的方式,得到广泛的应用。第二节 全面地介绍电子电路的计算机仿真技术,二、教学目的与要求 1 输入电阻小, 讲授法为主,自动化类专业的教学环节 9、P10、P11 了解稳定性的概念; 衡量学习是否达到目标

浙江师范大学886软件工程综合基础2020年考研专业课初试大纲

浙江师范大学886软件工程综合基础2020年考研专业课初试大纲

浙江师范大学硕士研究生入学考试初试科目考 试 大 纲科目代码、名称:886软件工程综合基础适用专业:083500软件工程(一级学科)、085400电子信息(软件工程领域)一、考试形式与试卷结构(一)试卷满分及考试时间本试卷满分为150分,考试时间为180分钟。

(二)答题方式答题方式为闭卷、笔试。

试卷由试题和答题纸组成;答案必须写在答题纸(由考点提供)相应的位置上。

(三)试卷题型结构(一)C程序设计部分,满分60分,其中:1、单项选择题:10小题,每小题3分,共30分2、程序设计题:3小题,每小题10分,共30分(二)软件工程基础部分,满分90分,其中:1、分析设计题:3小题,每小题15分,共45分2、综合论述题:3小题,每小题15分,共45分二、考查目标(复习要求)软件工程专业全日制学术型研究生入学考试科目《软件工程综合基础》的考试内容包括C程序设计和软件工程基础两部分。

其中:C程序设计部分要求考生掌握C语言的基本内容及程序设计的基本方法、常用算法与编程技巧,掌握结构化程序设计思想,选择适当的数据类型表示实际问题,能使用函数进行模块化程序设计,掌握应用计算机解决和处理实际问题的思维方法与基本能力。

软件工程基础部分要求考生掌握软件工程的基本概念、基本原理、基本方法和技术,理解规范化、文档化在软件生命周期过程中的重要性,并能运用相关理论和方法解决软件工程中的实际问题。

三、考查范围或考试内容概要C程序设计部分第一章程序设计与C语言1.了解计算机语言的基本概念。

2.了解C语言的背景、特点。

3.掌握C语言程序的结构。

第二章算法——程序的灵魂1.了解算法的概念、特性。

2.了解结构化程序设计方法。

3.掌握算法的描述方法。

第三章最简单的C程序设计——顺序程序设计1.掌握C语言的常量与变量;整型、浮点型、字符型数据。

C语言程序设计第四版-课后答案解析

C语言程序设计第四版-课后答案解析

第一章程序设计和C语言【第15页】1-5#include <>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂【第36页】暂无答案第3章最简单的C程序设计——顺序程序设计【第82页】3-1#include <>#include <>int main(){float p,r,n;r=;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <>#include <>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;r5=;r3=;r2=;r1=;r0=;p1=p*((1+r5)*5); #include <> #include <>int main(){float d=300000,p=6000,r=,m;m=log10(p/(p-d*r))/log10(1+r);printf("m=%\n",m);return 0;}3-4#include <>int main(){int c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0;}3-5#include <>int main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d",&a,&b);scanf("%f %e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); return 0;}3-6#include <>int main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;}3-7#include <>int main (){float h,r,l,s,sq,vq,vz;float pi=;printf("请输入圆半径r,圆柱高h∶");scanf("%f,%f",&r,&h); #include <>int main(){ int x,y;printf("输入x:");scanf("%d",&x);if(x<1) /* x<1 */{ y=x;printf("x=%3d, y=x=%d\n" ,x,y);}else if(x<10) /* 1=<x<10 */{ y=2*x-1;printf("x=%d, y=2*x-1=%d\n",x,y);}else /* x>=10 */{ y=3*x-11;printf("x=%d, y=3*x-11=%d\n",x,y);}return 0;}4-7-1#include <>int main(){int x,y;printf("enter x:");scanf("%d",&x);y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%d\n",x,y);return 0;}4-7-2#include <>int main(){int x,y;printf("please enter x:"); scanf("%d",&x);y=0;if(x>=0)if(x>0) y=1;else y=-1;printf("x=%d,y=%d\n",x,y);return 0;}4-8#include <>int main(){ float score;char grade;printf("请输入学生成绩:");scanf("%f",&score);while (score>100||score<0){printf("\n 输入有误,请重输");scanf("%f",&score);}switch((int)(score/10)){case 10:case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0: grade='E';}printf("成绩是 %,相应的等级是%c\n ",score,grade);return 0;}4-9#include <>#include <>int main(){int num,indiv,ten,hundred,thousand,ten_thousand,place; .=%d\n",sn); return 0;}5-6#include <>int main(){double s=0,t=1;int n;for (n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+...+20!=%\n",s);return 0;}5-7#include <>int main(){int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for (k=1;k<=n1;k++) /*计算1到100的和*/{s1=s1+k;}for (k=1;k<=n2;k++) /*计算1到50各数的平方和*/ {s2=s2+k*k;}for (k=1;k<=n3;k++) /*计算1到10的各倒数和*/ {s3=s3+1/k;}printf("sum=%\n",s1+s2+s3);return 0;}5-8#include <>int main(){int i,j,k,n;printf("parcissus numbers are ");for (n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if (n==i*i*i + j*j*j + k*k*k)printf("%d ",n);}printf("\n");return 0;}5-9-1#define M 1000 /*定义寻找范围*/#include <>int main(){int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n,s;for (a=2;a<=M;a++) /* a是2-1000之间的整数,检查它是否完数 */{n=0; /* n用来累计a的因子的个数 */s=a; /* s用来存放尚未求出的因子之和,开始时等于a */for (i=1;i<a;i++) /* 检查i是否a的因子 */if (a%i==0) /* 如果i是a的因子 */{n++; /* n加1,表示新找到一个因子 */s=s-i; /* s减去已找到的因子,s的新值是尚未求出的因子之和 */ switch(n) /* 将找到的因子赋给k1...k9,或k10 */{case 1:k1=i; break; /* 找出的笫1个因子赋给k1 */case 2:k2=i; break; /* 找出的笫2个因子赋给k2 */case 3:k3=i; break; /* 找出的笫3个因子赋给k3 */case 4:k4=i; break; /* 找出的笫4个因子赋给k4 */case 5:k5=i; break; /* 找出的笫5个因子赋给k5 */case 6:k6=i; break; /* 找出的笫6个因子赋给k6 */case 7:k7=i; break; /* 找出的笫7个因子赋给k7 */case 8:k8=i; break; /* 找出的笫8个因子赋给k8 */case 9:k9=i; break; /*找出的笫9个因子赋给k9 */case 10:k10=i; break; /* 找出的笫10个因子赋给k10 */}}if (s==0){printf("%d ,Its factors are ",a);if (n>1) printf("%d,%d",k1,k2); /* n>1表示a至少有2个因子 */if (n>2) printf(",%d",k3); /* n>2表示至少有3个因子,故应再输出一个因子 */if (n>3) printf(",%d",k4); /* n>3表示至少有4个因子,故应再输出一个因子 */if (n>4) printf(",%d",k5); /* 以下类似 */if (n>5) printf(",%d",k6);if (n>6) printf(",%d",k7);if (n>7) printf(",%d",k8);if (n>8) printf(",%d",k9);if (n>9) printf(",%d",k10);printf("\n");}}return 0;}5-9-2#include <>int main(){int m,s,i;for (m=2;m<1000;m++){s=0;for (i=1;i<m;i++)if ((m%i)==0) s=s+i;if(s==m){printf("%d,its factors are ",m); for (i=1;i<m;i++)if (m%i==0) printf("%d ",i);printf("\n");}}return 0;}5-10#include <>int main(){int i,n=20;double a=2,b=1,s=0,t;for (i=1;i<=n;i++){s=s+a/b;t=a,a=a+b,b=t;}printf("sum=%\n",s);return 0;}5-11#include <>int main(){double sn=100,hn=sn/2;int n;for (n=2;n<=10;n++){sn=sn+2*hn; /*第n次落地时共经过的米数*/hn=hn/2; /*第n次反跳高度*/}printf("第10次落地时共经过%f米\n",sn);printf("第10次反弹%f米\n",hn);return 0;}5-12#include <>int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/ x2=x1;day--;}printf("total=%d\n",x1);return 0;}5-13#include <>#include <>int main(){float a,x0,x1;printf("enter a positive number:");scanf("%f",&a);x0=a/2;x1=(x0+a/x0)/2;do{x0=x1;x1=(x0+a/x0)/2;}while(fabs(x0-x1)>=1e-5);printf("The square root of % is %\n",a,x1); return 0;}5-14#include <>#include <>int main(){double x1,x0,f,f1;x1=;do{x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=1e-5);printf("The root of equation is %\n",x1);return 0;}5-15#include <>#include <>int main(){float x0,x1,x2,fx0,fx1,fx2;do{printf("enter x1 & x2:");scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if ((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs (fx0)>=1e-5);printf("x=%\n",x0);return 0;}5-16#include <>int main(){int i,j,k;for (i=0;i<=3;i++){for (j=0;j<=2-i;j++)printf(" ");for (k=0;k<=2*i;k++)printf("*");printf("\n");}for (i=0;i<=2;i++){for (j=0;j<=i;j++)printf(" ");for (k=0;k<=4-2*i;k++)printf("*");printf("\n");}return 0;}5-17#include <>int main(){char i,j,k; /*是a的对手;j是b的对手;k是c的对手*/ for (i='x';i<='z';i++)for (j='x';j<='z';j++)if (i!=j)for (k='x';k<='z';k++)if (i!=k && j!=k)if (i!='x' && k!='x' && k!='z')printf("A--%c\nB--%c\nC--%c\n",i,j,k);return 0;}第6章利用数组处理批量数据【第168页】6-1#include <>#include <>int main(){int i,j,n,a[101];for (i=1;i<=100;i++)a[i]=i;a[1]=0;for (i=2;i<sqrt(100);i++)for (j=i+1;j<=100;j++){if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0;}printf("\n");for (i=2,n=0;i<=100;i++){ if(a[i]!=0){printf("%5d",a[i]);n++;}if(n==10){printf("\n");n=0;}}printf("\n");return 0;}6-2#include <>int main(){int i,j,min,temp,a[11];printf("enter data:\n");for (i=1;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}printf("\n");printf("The orginal numbers:\n");for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");for (i=1;i<=9;i++){min=i;for (j=i+1;j<=10;j++)if (a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];a[min]=temp;}printf("\nThe sorted numbers:\n");for (i=1;i<=10;i++)printf("%5d",a[i]);printf("\n");return 0;}6-3#include <>int main(){int a[3][3],sum=0;int i,j;printf("enter data:\n");for (i=0;i<3;i++)for (j=0;j<3;j++)scanf("%3d",&a[i][j]);for (i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%6d\n",sum);return 0;}6-4#include <>int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number,end,i,j;printf("array a:\n");for (i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("insert data:");scanf("%d",&number);end=a[9];if (number>end)a[10]=number;else{for (i=0;i<10;i++){if (a[i]>number){temp1=a[i];a[i]=number;for (j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}printf("Now array a:\n");for (i=0;i<11;i++)printf("%5d",a[i]);printf("\n");return 0;}6-5#include <>#define N 5int main(){ int a[N],i,temp;printf("enter array a:\n");for (i=0;i<N;i++)scanf("%d",&a[i]);printf("array a:\n");for (i=0;i<N;i++)printf("%4d",a[i]);for (i=0;i<N/2;i++) n",number);;printf("continu or not(Y/N)?");scanf(" %c",&c);if (c=='N'||c=='n')flag=0;}return 0;}6-10#include <>int main(){int i,j,upp,low,dig,spa,oth;char text[3][80];upp=low=dig=spa=oth=0;for (i=0;i<3;i++){ printf("please input line %d:\n",i+1);gets(text[i]);for (j=0;j<80 && text[i][j]!='\0';j++){if (text[i][j]>='A'&& text[i][j]<='Z') upp++;else if (text[i][j]>='a' && text[i][j]<='z') low++;else if (text[i][j]>='0' && text[i][j]<='9') dig++;else if (text[i][j]==' ')spa++;elseoth++;}}printf("\nupper case: %d\n",upp);printf("lower case: %d\n",low);printf("digit : %d\n",dig);printf("space : %d\n",spa);printf("other : %d\n",oth);return 0;}6-11#include <>int main(){ char a[5]={'*','*','*','*','*'};int i,j,k;char space=' ';for (i=0;i<5;i++){ printf("\n");printf(" ");for (j=1;j<=i;j++)printf("%c",space);for (k=0;k<5;k++)printf("%c",a[k]);}printf("\n");return 0;}6-12a-c#include <>int main(){ int j,n;char ch[80],tran[80];printf("input cipher code:");gets(ch);printf("\ncipher code :%s",ch);j=0;while (ch[j]!='\0'){ if ((ch[j]>='A') && (ch[j]<='Z'))tran[j]=155-ch[j];else if ((ch[j]>='a') && (ch[j]<='z')) tran[j]=219-ch[j];elsetran[j]=ch[j];j++;}n=j;printf("\noriginal text:");for (j=0;j<n;j++)putchar(tran[j]);printf("\n");return 0;}6-12b#include <>int main(){int j,n;char ch[80];printf("input cipher code:\n");gets(ch);printf("\ncipher code:%s\n",ch);j=0;while (ch[j]!='\0'){ if ((ch[j]>='A') && (ch[j]<='Z'))ch[j]=155-ch[j];else if ((ch[j]>='a') && (ch[j]<='z')) ch[j]=219-ch[j];elsech[j]=ch[j];j++;}n=j;printf("original text:");for (j=0;j<n;j++)putchar(ch[j]);printf("\n");return 0;}6-13#include <>int main(){ char s1[80],s2[40];int i=0,j=0;printf("input string1:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);while (s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("\nThe new string is:%s\n",s1); return 0;}6-14#include <>int main(){ int i,resu;char s1[100],s2[100];printf("input string1:");gets(s1);printf("\ninput string2:");gets(s2);i=0;while ((s1[i]==s2[i]) && (s1[i]!='\0'))i++; if (s1[i]=='\0' && s2[i]=='\0')resu=0;elseresu=s1[i]-s2[i];printf("\nresult:%d.\n",resu);return 0;}6-15#include <>#include <>int main(){ char s1[80],s2[80];int i;printf("input s2:");scanf("%s",s2);for (i=0;i<=strlen(s2);i++)s1[i]=s2[i];printf("s1:%s\n",s1);return 0;}第7章用函数实现模块化程序设计【第218页】7-1-1#include <>int main(){int hcf(int,int);int lcd(int,int,int);int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("",h);l=lcd(u,v,h);printf("",l);return 0;}int hcf(int u,int v){int t,r;if (v>u){t=u;u=v;v=t;}while ((r=u%v)!=0){u=v;v=r;}return(v);}int lcd(int u,int v,int h) {return(u*v/h);}7-1-2#include <>int Hcf,Lcd;int main(){void hcf(int,int);void lcd(int,int);int u,v;scanf("%d,%d",&u,&v);hcf(u,v);lcd(u,v);printf("",Hcf);printf("",Lcd);return 0;}void hcf(int u,int v){int t,r;if (v>u){t=u;u=v;v=t;}while ((r=u%v)!=0){u=v;v=r;}Hcf=v;}void lcd(int u,int v){Lcd=u*v/Hcf;}7-2#include <>#include <>float x1,x2,disc,p,q;int main(){void greater_than_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;printf("input a,b,c:");scanf("%f,%f,%f",&a,&b,&c);printf("equation: %*x*x+%*x+%=0\n",a,b,c); disc=b*b-4*a*c;printf("root:\n");if (disc>0){greater_than_zero(a,b);printf("x1=%f\t\tx2=%f\n",x1,x2);}else if (disc==0){equal_to_zero(a,b);printf("x1=%f\t\tx2=%f\n",x1,x2);}else{smaller_than_zero(a,b);printf("x1=%f+%fi\tx2=%f-%fi\n",p,q,p,q); }return 0;}void greater_than_zero(float a,float b){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);}void equal_to_zero(float a,float b){x1=x2=(-b)/(2*a);}void smaller_than_zero(float a,float b) {p=-b/(2*a);q=sqrt(-disc)/(2*a);}7-3#include <>int main(){int prime(int);int n;printf("input an integer:");scanf("%d",&n);if (prime(n))printf("%d is a prime.\n",n);elseprintf("%d is not a prime.\n",n); return 0;}int prime(int n){int flag=1,i;for (i=2;i<n/2 && flag==1;i++)if (n%i==0)flag=0;return(flag);}7-4#include <>#define N 3int array[N][N];int main(){ void convert(int array[][3]);int i,j;printf("input array:\n");for (i=0;i<N;i++)for (j=0;j<N;j++)scanf("%d",&array[i][j]);printf("\noriginal array :\n");for (i=0;i<N;i++){for (j=0;j<N;j++)printf("%5d",array[i][j]);printf("\n");}convert(array);printf("convert array:\n");for (i=0;i<N;i++){for (j=0;j<N;j++)printf("%5d",array[i][j]);printf("\n");}return 0;}void convert(int array[][3]){int i,j,t;for (i=0;i<N;i++)for (j=i+1;j<N;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}#include <>#include <>int main(){void inverse(char str[]);char str[100];printf("input string:");scanf("%s",str);inverse(str);printf("inverse string:%s\n",str);return 0;}void inverse(char str[]){char t;int i,j;for (i=0,j=strlen(str);i<(strlen(str)/2);i++,j--){t=str[i];str[i]=str[j-1];str[j-1]=t;}}7-6#include <>int main(){void concatenate(char string1[],char string2[],char string[]); char s1[100],s2[100],s[100];printf("input string1:");scanf("%s",s1);printf("input string2:");scanf("%s",s2);concatenate(s1,s2,s);printf("\nThe new string is %s\n",s);return 0;}void concatenate(char string1[],char string2[],char string[]) {int i,j;for (i=0;string1[i]!='\0';i++)string[i]=string1[i];for(j=0;string2[j]!='\0';j++)string[i+j]=string2[j];string[i+j]='\0';}7-7#include <>int main(){void cpy(char [],char []);char str[80],c[80];printf("input string:");gets(str);cpy(str,c);printf("The vowel letters are:%s\n",c);return 0;}void cpy(char s[],char c[]){ int i,j;for (i=0,j=0;s[i]!='\0';i++)if (s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'|| s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U'){c[j]=s[i];j++;}c[j]='\0';}7-8#include <>#include <>int main(){char str[80];void insert(char []);printf("input four digits:");scanf("%s",str);insert(str);return 0;}void insert(char str[]){int i;for (i=strlen(str);i>0;i--){str[2*i]=str[i];str[2*i-1]=' ';}printf("output:\n%s\n",str);}7-9#include <>int letter,digit,space,others;int main(){void count(char []);char text[80];printf("input string:\n");gets(text);printf("string:");puts(text);letter=0;digit=0;space=0;others=0;count(text);printf("\nletter:%d\ndigit:%d\nspace:%d\nothers:%d\n",letter,digit,space,others );return 0;}void count(char str[]){int i;for (i=0;str[i]!='\0';i++)if ((str[i]>='a'&& str[i]<='z')||(str[i]>='A' && str[i]<='Z'))letter++;else if (str[i]>='0' && str [i]<='9')digit++;else if (str[i]==32)space++;elseothers++;}7-10#include <>#include <>int main(){int alphabetic(char);int longest(char []);int i;char line[100];printf("input one line:\n");gets(line);printf("The longest word is :");for (i=longest(line);alphabetic(line[i]);i++)printf("%c",line[i]);printf("\n");return 0;}int alphabetic(char c){if ((c>='a' && c<='z')||(c>='A'&&c<='z'))return(1);elsereturn(0);}int longest(char string[]){int len=0,i,length=0,flag=1,place=0,point; for (i=0;i<=strlen(string);i++)if (alphabetic(string[i]))if (flag){point=i;flag=0;}elselen++;else{flag=1;if (len>=length){length=len;place=point;len=0;}}return(place);}7-11#include <>#include <>#define N 10char str[N];int main(){void sort(char []);int i,flag;for (flag=1;flag==1;){printf("input string:\n");scanf("%s",&str);if (strlen(str)>N)printf("string too long,input again!"); elseflag=0;}sort(str);printf("string sorted:\n");for (i=0;i<N;i++)printf("%c",str[i]);printf("\n");return 0;}void sort(char str[]){int i,j;char t;for(j=1;j<N;j++)for (i=0;(i<N-j)&&(str[i]!='\0');i++)if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}7-12#include <>#include <>int main(){float solut(float a,float b,float c,float d); float a,b,c,d;printf("input a,b,c,d:");scanf("%f,%f,%f,%f",&a,&b,&c,&d);printf("x=%\n",solut(a,b,c,d));return 0;}float solut(float a,float b,float c,float d) {float x=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;x=x0-f/f1;}while(fabs(x-x0)>=1e-3);return(x);}7-13#include <>#define N 10#define M 5float score[N][M];float a_stu[N],a_cour[M];int r,c;int main(){ int i,j;float h;float s_var(void);float highest();void input_stu(void);void aver_stu(void);void aver_cour(void);input_stu();aver_stu();aver_cour();printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver\n"); for(i=0;i<N;i++){printf("\n NO %2d ",i+1);for(j=0;j<M;j++)printf("%",score[i][j]);printf("%\n",a_stu[i]);}printf("\naverage:");for (j=0;j<M;j++)printf("%",a_cour[j]);printf("\n");h=highest();printf("highest:% NO. %2d course %2d\n",h,r,c);printf("variance %\n",s_var());return 0;}void input_stu(void){int i,j;for (i=0;i<N;i++){printf("\ninput score of student%2d:\n",i+1);for (j=0;j<M;j++)scanf("%f",&score[i][j]);}}void aver_stu(void){int i,j;float s;for (i=0;i<N;i++){for (j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/;}}void aver_cour(void){int i,j;float s;for (j=0;j<M;j++){s=0;for (i=0;i<N;i++)s+=score[i][j];a_cour[j]=s/(float)N;}}float highest(){float high;int i,j;high=score[0][0];for (i=0;i<N;i++)for (j=0;j<M;j++)if (score[i][j]>high) {high=score[i][j];r=i+1;c=j+1;}return(high);}float s_var(void){int i;float sumx,sumxn;sumx=;sumxn=;for (i=0;i<N;i++){sumx+=a_stu[i]*a_stu[i];sumxn+=a_stu[i];}return(sumx/N-(sumxn/N)*(sumxn/N));}7-14#include <>#define N 10#define M 5float score[N][M];float a_stu[N],a_cour[M];int r,c;int main(){ int i,j;float h;float s_var(void);float highest();void input_stu(void);void aver_stu(void);void aver_cour(void);input_stu();aver_stu();aver_cour();printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver\n"); for(i=0;i<N;i++){printf("\n NO %2d ",i+1);for(j=0;j<M;j++)printf("%",score[i][j]);printf("%\n",a_stu[i]);}printf("\naverage:");for (j=0;j<M;j++)printf("%",a_cour[j]);printf("\n");h=highest();printf("highest:% NO. %2d course %2d\n",h,r,c);printf("variance %\n",s_var());return 0;}void input_stu(void){int i,j;for (i=0;i<N;i++){printf("\ninput score of student%2d:\n",i+1); for (j=0;j<M;j++)scanf("%f",&score[i][j]);}}void aver_stu(void){int i,j;float s;for (i=0;i<N;i++){for (j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/;}}void aver_cour(void){int i,j;float s;for (j=0;j<M;j++){s=0;for (i=0;i<N;i++)s+=score[i][j];a_cour[j]=s/(float)N;}}float highest(){float high;int i,j;high=score[0][0];for (i=0;i<N;i++)for (j=0;j<M;j++)if (score[i][j]>high){high=score[i][j];r=i+1;c=j+1;}return(high);}float s_var(void){int i;float sumx,sumxn;sumx=;sumxn=;for (i=0;i<N;i++){sumx+=a_stu[i]*a_stu[i];sumxn+=a_stu[i];}return(sumx/N-(sumxn/N)*(sumxn/N));}7-15#include <>#include <>#define N 10int main(){void input(int [],char name[][8]);void sort(int [],char name[][8]);void search(int ,int [],char name[][8]);int num[N],number,flag=1,c;char name[N][8];input(num,name);sort(num,name);while (flag==1){printf("\ninput number to look for:");scanf("%d",&number);search(number,num,name);printf("continue ot not(Y/N)?");getchar();c=getchar();if (c=='N'||c=='n')flag=0;}return 0;}void input(int num[],char name[N][8]){int i;for (i=0;i<N;i++){printf("input NO.: ");scanf("%d",&num[i]);printf("input name: ");getchar();gets(name[i]);}}void sort(int num[],char name[N][8]){ int i,j,min,templ;char temp2[8];for (i=0;i<N-1;i++){min=i;for (j=i;j<N;j++)if (num[min]>num[j]) min=j;templ=num[i];strcpy(temp2,name[i]);num[i]=num[min];strcpy (name[i],name[min]);num[min]=templ;strcpy(name[min],temp2);}printf("\n result:\n");for (i=0;i<N;i++)printf("\n %5d%10s",num[i],name[i]);}void search(int n,int num[],char name[N][8]){int top,bott,mid,loca,sign;top=0;bott=N-1;loca=0;sign=1;if ((n<num[0])||(n>num[N-1]))loca=-1;while((sign==1) && (top<=bott)){mid=(bott+top)/2;if (n==num[mid]){loca=mid;printf("NO. %d , his name is %s.\n",n,name[loca]);sign=-1;}else if (n<num[mid])bott=mid-1;elsetop=mid+1;}if (sign==1 || loca==-1)。

大一期末C语言程序设计基础题库与总结复习资料

大一期末C语言程序设计基础题库与总结复习资料

C语言题库第一章计算机语言经历发展阶段:机器语言、符号语言、高级语言程序结构有3种:顺序结构,选择结构,循环结构C语言的特点:允许直接访问物理地址。

【C语言中含有的位和指针运算,能够直接对内存地址进行访问。

】不是C语言的特点的是:能够编制出功能复杂的程序【所有程序都可以,不算特点】Main:主函数,是所有程序运行的入口、起点。

一个C语言程序必须只有一个main函数。

程序总是从main函数开始执行,main函数可以放任何位置,到main函数结束。

函数体由花括号括起来结束标志:returnreturn 0的作用是:当main函数执行结束前将整数0作为函数值返回到调用函数处return(z)的作用是:将z的值作为max的函数值返回给调用max 函数的函数。

只有通过return(z)才能把求出的z值作为函数值并返回调用它的main函数中C语言程序的结构:由一个或多个源程序(C语言编写的程序,也可以叫编译单位)文件组成(源程序文件中包含:预处理指令、全局声明、函数定义)函数是C程序的主要组成部分(也是基本单位),C语言由函数组成。

函数包括两部分:函数首部、函数体C语言本身不提供输入输出语句,输入输出的操作是有库函数scanf 和printf等函数来完成的。

程序应包含注释#define和printf都不是C语句C语言程序的运行经过:编辑(edit)、编译(compile)、连接(link)【C语言中是build】、执行(execute)。

C语言源程序文件的后缀是.cpp,经过编译之后,生成后缀为.obj 的目标文件,经连接生成后缀.exe的可执行文件C语言的储存类型包括register、extern、statis和auto基础知识6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件运算优先级:!(非)>算数(如%)>关系>逻辑>赋值运算符(低)空语句:只有分号组成的语句,即一个分号。

C语言-第6章 利用数组处理批量数据

C语言-第6章 利用数组处理批量数据

第6章利用数组处理批量数据一、单项选择题1. 以下对一维数组a的正确说明是:A) char a(10); B) int a[]; C)int k=5,a[k]; D)char a[]={…a‟,‟b‟,‟c‟};2. 以下能对一维数组a进行初始化的语句是: ( C )A) int a[5]=(0,1,2,3,4,); B) int a(5)={}; C) int a[ ]={0,1,2}; D) int a{5}={10*1};3.在C语言中对一维整型数组的正确定义为。

A)int a(10); B)int n=10,a[n];C)int n;a[n]; D) #define N 10int a[N];4、已知:int a[10]; 则对a数组元素的正确引用是()。

A、a[10]B、a[3.5]C、a(5)D、a[10-10]5. 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[0]*10;A) 不定值B) 33 C) 30 D) 106. 下列说法中错误的是A 构成数组的所有元素的数据类型必须是相同的B 用指针法引用数组元素允许数组元素的下标越界C 一维数组元素的下标依次是1、2、3……D 定义数组时的长度可以是整型常量表达式7. 若有以下数组说明,则数值最小的和最大的元素下标分别是()。

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};A)1,12 B)0,11C)1,11 D)0,128. 若有以下数组说明,则i=10;a[a[i]]元素数值是()。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A)10 B)9 C)6D)59. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A) 3 B) 6 C) 10 D) 2010. 若有说明:int a[][3]={1,2,3,4,5,6,7}; 则数组a的第一维的大小为: ( )A) 2 B) 3C) 4 D)无确定值11. 若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( )A) 2 B) 3 C) 4 D)无确定值12. 以下定义语句中,错误的是A) int a[]={1,2}; B) char *a[3]; C) char s[10]=“test”; D) int n=5,a[n];13.下面程序段的输出结果是:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};for (i=0;i<3;i++)printf("%d ",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7D) 3 6 914. 对二维数组的正确定义是()A)int a[ ] [ ]={1,2,3,4,5,6}; B)int a[2] [ ]={1,2,3,4,5,6};C)int a[ ] [3]={1,2,3,4,5,6}; D)int a[2,3]={1,2,3,4,5,6};15.已知int a[3][4];则对数组元素引用正确的是______.A)a[2][4] B)a[1,3] C)a[2][0]D)a(2)(1)17.下面程序的输出结果是____。

利用数组处理批量数据

利用数组处理批量数据

20
6.1.2 一维数组的初始化
定义数组的同时,给数组元 素赋初值——数组的初始化
21
【例】一维数组的初始化示例。
(1)在定义数组时对全部数组元素赋予初值 int a[5]; int i; a[0]=1;a[1]=2;... a[4]=5; int a[5]={1,2,3,4,5}; 等价于
for( i=0; i<5; i++ )
30
例 用冒泡法对6个数排序(升序)
第1趟寻找第一个最大的数
9 8 5 4 2 0 原 始 数 据
9 8 5 4 2 0
8 9 5 4 2 0 第 2 次
8 5 9 4 2 0 第 3 次
8 5 4 9 2 0 第 4 次
8 5 4 2 9 0
8 5 4 2 0 9
第 1 次
第 5 次


31
例 用冒泡法对6个数排序(升序)
10
6.1.1 一维数组的定义和引用
【例】一维数组示例。
N为符号常量 #define N 10 必须是常量表达式 main( ) 定义数组a和 b 输入的数据放入 数组b的元素中 { int i,a[3]; float b[N]; 给数组a的元素赋值 a[0]=2; a[1]=4; a[2]=a[0]+a[1]; for ( i=0; i<N; i++ ) scanf("%f",&b[i]); printf("%d %d %d\n",a[0],a[1],a[2]); for ( i=0; i<N; i++ ) printf("%.0f ",b[i]); printf("\n"); }

湖北师范大学821-高级语言程序设计2021年考研专业课初试大纲

湖北师范大学821-高级语言程序设计2021年考研专业课初试大纲

2021年全国硕士研究生入学考试湖北师范大学自命题考试科目考试大纲(科目名称:高级语言程序设计科目代码:821)一、考查目标高级语言程序设计科目考试要求考生系统掌握面向过程程序设计的基本知识、基础技能和结构化的程序设计方法,并能运用相关理论和方法分析、解决实际问题。

重点考查学生对C程序设计常用算法的理解及应用算法编写程序的能力。

二、考试形式与试卷结构(一)试卷成绩及考试时间本试卷满分为150分,考试时间180分钟。

(二)答题方式答题方式为闭卷、笔试。

(三)试卷题型结构1、单项选择题:15小题,每小题2分,共30分2、填空题:10小题,每小题2分,共20分3、程序分析题:5小题,每小题4分,共20分4、程序填空题:5小题,每小题4分,共20分5、程序设计题:6小题,每小题10分,共60分(四)主要参考书目谭浩强. C程序设计(第五版).北京:清华大学出版社,2017年。

三、考查范围第1章程序设计和C语言1、掌握程序的构成,main函数和其他函数。

2、头文件,数据说明,函数的开始和结束标志以及程序中的注释。

3、源程序的书写格式。

第3章顺序程序设计1、掌握C语言的基本数据类型。

2、掌握 C语言标识符的构成规则,定义变量、符号常量的方法。

3、掌握C语言的基本运算符、及运算优先级和结合性。

4、掌握不同类型数据间的转换规则,包括隐式类型转换、强制类型转换。

5、掌握表达式的概念,能够准确的判断表达式的结果类型和值。

特别是赋值表达式、自加自减表达式、逗号表达式、问号表达式的使用。

6、掌握C语言语句的构成,表达式语句,空语句,复合语句。

7、掌握输入输出函数的调用,正确输入数据并正确设计输出格式。

第4章选择结构程序设计1、掌握关系表达式和逻辑表达式的使用方法。

2、掌握选择结构。

包括if、if…else、if…else if结构的使用;以及if结构的嵌套;switch结构的使用。

第5章循环结构程序设计1、掌握基本循环结构的使用,包括while、do…while、for三种结构,以及它们的区别。

c语言程序设计第五版课后答案谭浩强第六章习题答案

c语言程序设计第五版课后答案谭浩强第六章习题答案

c语⾔程序设计第五版课后答案谭浩强第六章习题答案第六章:利⽤数组处理批量数据1. ⽤筛选法求100之内的素数【答案解析】素数:约数为1和该数本⾝的数字称为素数,即质数筛选法:⼜称为筛法。

先把N个⾃然数按次序排列起来。

1不是质数,也不是合数,要划去。

第⼆个数2是质数留下来,⽽把2后⾯所有能被2整除的数都划去。

2后⾯第⼀个没划去的数是3,把3留下,再把3后⾯所有能被3整除的数都划去。

3后⾯第⼀个没划去的数是5,把5留下,再把5后⾯所有能被5整除的数都划去。

这样⼀直做下去,就会把不超过N 的全部合数都筛掉,留下的就是不超过N的全部质数。

因为希腊⼈是把数写在涂腊的板上,每要划去⼀个数,就在上⾯记以⼩点,寻求质数的⼯作完毕后,这许多⼩点就像⼀个筛⼦,所以就把埃拉托斯特尼的⽅法叫做“埃拉托斯特尼筛”,简称“筛法”。

(另⼀种解释是当时的数写在纸草上,每要划去⼀个数,就把这个数挖去,寻求质数的⼯作完毕后,这许多⼩洞就像⼀个筛⼦。

)【代码实现】//⽤筛选法求100以内的素数#include<stdio.h>int main(){int i, j, k = 0;// 将数组汇总每个元素设置为:1~100int a[100];for (i = 0; i < 100; i++)a[i] = i+1;// 因为1不是素数,把a[0]⽤0标记// 最后⼀个位置数字是100,100不是素数,因此循环可以少循环⼀次a[0] = 0;for (i = 0; i < 99; i++){// ⽤a[i]位置的数字去模i位置之后的所有数据// 如果能够整除则⼀定不是素数,该位置数据⽤0填充for (j = i + 1; j < 100; j++){if (a[i] != 0 && a[j] != 0){//把不是素数的都赋值为0if (a[j] % a[i] == 0)a[j] = 0;}}}printf(" 筛选法求出100以内的素数为:\n");for (i = 0; i < 100; i++){//数组中不为0的数即为素数if (a[i] != 0)printf("%3d", a[i]);}printf("\n");return 0;}【运⾏结果】2. ⽤选择法对10个整数排序【答案解析】选择排序原理:总共两个循环,外循环控制选择的趟数,内循环控制具体选择的⽅式。

C语言用数组处理批量数据

C语言用数组处理批量数据

C语言用数组处理批量数据整型、字符型、浮点型数据,都是简单的数据类型。

对于简单的问题,使用这些简单的数据类型就可以了。

对于有些需要处理的数据,只用以上简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理。

比如,一个班有30个学生,每个学生有一个成绩,要求这30名学生的平均成绩。

实际上这些数据是同一个班级、同一门课程的成绩,它们具有相同的属性。

人们想出这样的办法:既然它们都是同一类性质的数据(都代表一个班中学生的成绩)就可以用同一个名字(如S)来代表它们,而在名字的右下角加一个数字来表示这是第几名学生的成绩,例如,可以用sl,s2,s3,…S30代表学生L学生2、学生3…学生30,这30个学生的成绩。

这个右下角的数字称为下标。

一批具有同名的同属性的数据就组成一个数组(array)z s 就是数组名。

Q)数组是一组有序数据的集合。

数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号。

(2)用一个数组名(如S)和下标(如15)来唯一地确定数组中的元素,如s[15]就代表第15个学生的成绩。

(3)数组中的每一个元素都属于同一个数据类型。

不能把不同类型的数据(如学生的成绩和学生的性别)放在同一个数组中。

C语言规定用方括号中的数字来表示下标,如用s[15]表示S15,即第15个学生的成绩。

将数组与循环结合起来,可以有效地处理大批量的数据。

1定义数组和引用一维数组一维数组是数组中最简单的,它的元素只需要用数组名加一个下标,就能唯一地确定。

比如:学生成绩数组s就是一维数组。

有的数组,其元素要指定两个下标才能唯一确定,如用S2z3表示〃第2班第3名学生的成绩〃,其中第1个下标代表班,第2个下标代表班中的学生序号。

此时,s就是二维数组。

还可以有三维甚至多维数组,如用S4,2,3表示4年级2班第3名学生的成绩,这里s就是三维数组。

它们的概念和用法基本上是相同的。

定义一维数组要使用数组,必须在程序中先定义该数组,即通知计算机:由哪些数据组成数组,数组有多少元素,属于哪个数据类型。

(完整版)C语言程序设计教学大纲

(完整版)C语言程序设计教学大纲

“C语言程序设计”课程教学大纲英文名称:C language program designing课程编号:106004课程类型:C1学时/课内实践学时:48/0学分:3适用对象:计算机、自动化、通信、电子专业本科生先修课程:无使用教材及参考书:教材:C程序设计(第四版),谭浩强主编,清华大学出版社参考书:C程序设计习题解答与上机指导(第四版),谭浩强主编,清华大学出版社一、课程的性质、教学目的和任务:C语言是国内外广泛使用的一种计算机语言,它以其丰富灵活的控制和数据结构,简洁而高效的语句表达、清晰的程序结构、良好的移植性、较小的时空开销,已被广泛的应用于系统软件和应用软件的开发中。

本课程是计算机、自动化、通信、电子类专业的一门专业基础课。

课程的主要任务是引导学生进入计算机程序设计的广阔空间、培养学生的逻辑思维能力、抽象能力和基本的计算机程序设计能力。

本课程以C语言为载体,使学生对计算机程序设计有一个初步的正确的认识,学会阅读用计算机程序设计语言编写的简单应用程序,掌握结构化程序设计的基本方法和用计算机解决实际问题的基本步骤,训练学生的逻辑思维能力,培养其严谨的思维方式和良好的程序设计风格,为进一步学习其它专业基础课程和专业课程打下良好的基础。

二、课程内容和基本要求第一章程序设计和C语言1.教学内容:1.1 什么是计算机程序1.2 什么是计算机语言1.3 C语言的发展及其特点1.4 最简单的C语言程序1.5 运行C程序的步骤与方法1.6程序设计的任务2. 教学目的及要求:1)了解C语言的历史、特点2)掌握C语言的运行环境,初步了解运行一个C语言程序的过程3. 教学重点及难点:1)C语言的特点2)C程序的上机步骤第二章算法--程序的灵魂1.教学内容:2.1 什么是算法2.2 简单的算法举例2.3 算法的特性2.4 怎样表示一个算法2.5结构化程序设计方法2.教学目的及要求:1) 掌握算法的概念和特点2) 掌握用流程图、N-S流程图、伪代码表示算法3) 理解结构化程序设计方法的概念3.教学重点及难点:用流程图、N-S流程图、伪代码表示算法第三章最简单的C程序设计——顺序程序设计1. 教学内容:3.1 顺序程序设计举例3.2 数据的表现形式及其运算3.3 C语句3.4 数据的输入输出2. 教学目的及要求:1) 掌握基本数据类型的存储和表示方式,以及不同类型数据转换原则与方法2) 掌握运算符和表达式的使用方法3) 掌握语句的概念和使用方法4)掌握数据输入输出函数的使用,并能够编写简单的顺序结构程序3. 教学重点及难点:1) 基本数据类型的存储和表示方式2) 不同类型数据转换原则与方法3)运算符和表达式的运用4)语句的使用5)输入输出函数的使用第四章选择结构程序设计1. 教学内容:4.1 选择结构和条件判断4.2 用if语句实现选择结构4.3关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌套4.7 用switch语句实现多分支选择结构4.8选择结构程序综合举例2. 教学目的及要求:1) 掌握关系运算符和关系表达式、逻辑运算符和逻辑表达式、条件运算符和条件表达式的使用方法2) 能够运用if语句、switch语句实现选择结构,掌握if语句的嵌套3. 教学重点及难点:1)字三种运算符和表达式的使用2)if语句及if语句的嵌套第五章循环结构程序设计1. 教学内容:5.1 为什么需要循环控制5.2 用while语句实现循环5.3 用do---while语句实现循环5.4 用for 语句实现循环5.5 循环的嵌套5.6 几种循环的比较5.7 改变循环执行的状态5.8 循环程序举例2. 教学目的及要求:1) 熟练掌握三种循环语句的运用2)掌握循环的嵌套3)掌握break和continue语句的运用3. 教学重点及难点:1)三种循环语句的使用2)循环的嵌套第六章利用数组处理批量数据1.教学内容:6.1 怎样定义和引用一维数组6.2 怎样定义和引用二维数组6.3 字符数组2.教学目的及要求:1)掌握一维数组和二维数组的概念、初始化和引用2)掌握字符数组和字符串的应用3)学会使用字符串处理函数3.教学重点及难点:1)数组的初始化、引用2)字符串的处理第七章用函数实现模块化程序设计1.教学内容:7.1为什么要用函数7.2怎样定义函数7.3调用函数7.4对被调用函数的声明和函数原型7.5函数的嵌套调用7.6函数的递归调用7.7数组作为函数参数7.8局部变量和全局变量7.9变量的存储方式和生存期7.10 关于变量的声明和定义7.11 内部函数和外部函数2.教学目的及要求:1) 掌握函数的定义和调用方法2) 掌握函数的嵌套和递归调用3) 了解变量的存储类别和作用域3.教学重点及难点:1)函数的定义和调用2)函数的嵌套调用第八章善于利用指针1.教学内容:8.1 指针是什么8.2 指针变量8.3 通过指针引用数组8.4 通过指针引用字符串8.5 指向函数的指针8.6 返回指针值的函数8.7 指针数组和多重指针8.8 动态内存分配与指向它的指针变量8.9 有关指针的小结2.教学目的及要求:1) 掌握指针、指针变量的区别2) 掌握数组、指针、指针数组的关系3)了解指向函数的指针、返回指针值的函数、指针数组3.教学重点及难点:1)指针的定义、引用2)指针变量3)指针与数组的关系4)指针与函数的关系第九章用户自己建立数据类型1.教学内容:9.1 定义和使用结构体变量9.2 使用结构体数组9.3 结构体指针9.4 用指针处理链表9.5 共用体类型9.6 使用枚举类型9.7 用typedef声明新类型名2.教学目的及要求:1)掌握结构体、共用体、枚举类型的定义和使用方法,类型和变量的区别2)掌握有关链表的操作3.教学重点及难点:1)结构体定义和使用方法2)链表的操作第十章对文件的输入输出1.教学内容:10.1 C文件的有关基本知识10.2 打开与关闭文件10.3 顺序读写数据文件10.4 随机读写数据文件10.5 文件读写的出错检测2.教学目的及要求:1) 掌握文件的定义与分类,文件名的表示,文件的打开与关闭2) 了解顺序/随即读写数据文件的方法3) 解如何对文件进行读写出错检测3.教学重点及难点:文件的打开、关闭、读写三、课程教学基本要求1.课堂讲授:教学方法采用课堂讲授与课件配合使用,使用多媒体教学方式,使学生掌握基本概念和基本操作。

第6章利用数组处理批量数据-2018级-6,3-ex

第6章利用数组处理批量数据-2018级-6,3-ex
27
str[0] C h i n a \0 \0 \0 … \0 str[1] J a p a n \0 \0 \0 … \0 str[2] I n d i a \0 \0 \0 … \0
可以把str[0],str[1],str[2]看作3个一维字符数组 它们各有20个元素 可以把它们如同一维数组那样进行处理
{' ','*',' ','*'},{'*',' ',' ',' ','*'}, {‘ ’,‘*’,‘ ’,‘*’},{‘ ’,‘ ’,‘*’}}; int i,j; for (i=0;i<5;i++) { for(j=0;j<5;j++) printf(“%c”,diamond[i][j]); printf("\n"); } return 0;}
28
#include<stdio.h>
#include<string.h> int main ( )
用字符串函数时加
{ char string[20],str[3][20]; int i;
for (i=0;i<3;i++) gets (str[i]);
if (strcmp(str[0],str[1])>0)
c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]
I
am
happy
11
6.4.1 定义字符数组及对其初始化 【Initialization】
char c[10]={’I’,’ ’,’a’,’m’,’ ’,’h’,’a’,’p’,’p’,’y’};
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

int i,j,t;
for(i=1;i<11;i++) /*输入10个数*/
scanf("%d",&a[i]);
for(j=1;j<=9;j++) /*需要比较的轮数*/
for(i=1;i<=10-j;i++) /*每轮需要比较的个数*/
if(a[i]>a[i+1]) /*比较相邻两个数*/
{t=a[i];a[i]=a[i+1];a[i+1]=t;} /*交换顺序*/
int i;
for(i=2;i<20;i++) /*因为f[0],f[1]已知,因此I从2开始*/
f[i]=f[i-1]+f[i-2];
for(i=0;i<20;i++)
{
if(i%5==0)
/*这个if的作用在于控制每行输出5个数*/
printf("\n");
printf("%12d",f[i]);
4、如果给数组的每个元素都赋了初始值,则可以不写 数组的长度(size)
2021/2/7 int a[]={1,2,3,4,5}int a[5]={1,2,3,4,5} 8
五、一维数组应用举例
例6_2,求Fibonacci数列的前20项
1
(n=1)
1
(n=0)
Fn= 1
(n=2) F[n]= 1
}
2021/2/7
7
四、一维数组的初始化
数组初始化的一般形式: type Array_Name[size]={……};
1、初始化所有元素 int a[5]={1,2,3,4,5};
2、初始化部分(只能是前部分)元素 int a[5]={1,2};
3、给数组的每个元素初始化相同的值,也必须完全写 出 int a[5]={1,1,1,1,1}不能是int a[5]={1*5};
for(i=1;i<11;i++) /*输出10个数*/
printf("%8d",a[i]);
printf("\n");
2021/2/}7
12
六、二维数组的定义
1、定义:
type Array_Name[size1][size2]; 要求与一维数组一样,其中size1表示第一维
的长度(行),size2表示第二维的长度(列) 如:int a[3][4]——定义了一个3行4列的整
int a[N];
——错误 ——错误 ——正确 ——错误 ——正确 ——错误 ——正确
2021/2/7
4

三、一维数组的引用
1、数组和变量一样,必须先定义,再使用(定 义必须放在所有执行语句之前,数组名不能与 其它变量名同名)
2、数组的使用——只能一次使用一个元素, 数组不能作为一个整体被使用。
2021/2/7
6
例题6_1 一维数组的赋值
void main() { int a[10],k; for(k=0;k<10;k++) /*注意k的变化范围*/ scanf("%d",&a[k]); for(k=9;k>=0;k--) /*注意k的初始值*/ printf("%7d",a[k]); printf(“\n”);
分析:
1、要将十个个数输入,就必须存储在十个变量中, 因此应该定义一个整型数组int a[10];
2、要连续输入这十个数,需要用十个scanf函数, 而且每个scanf函数的形式都是一样 的,scanf(“%d”,&a[k]);既然如此,我们就可以用循 环,而且循环次数已知,用for。
3、最后输出也是一样。
(n=1)
Fn-1+Fn-2(n>=3)
F[n-1]+F[n-2] (n>=2)
分析:
1、要求前20项,应该定义数组 int a[20]
2、从图中知道,数组的前两个元素已知,int a[20]={1,1}
3、根据公式进行计算
2021/2/7
9
例题6_2
void main()
{
int f[20]={1,1}; /*f[0]=1,f[1]=1*/
第六章
利用数组处理批量数据
2021/2/7
1
一、数组的概念
数组——将多个同类型的数据组合在一 起
如:在一个程序中需要使用1000个整型变 量,用原来的方法,只能:
int a1,a2,a3……,a1000;这样做显然不能实现。
如果用数组,只需要
int a[1000];它就表示同时定义了1000个整型变 量。
}
}
2021/2/7
10
例题6_3 将十个数按序输出
基本思想:相邻两个数比较,小的放在前面。 (起泡法,冒泡法)
98888555
89555844 5 5 9 4 4 4 8 2……
44492228
22229999
2021/2/7
11
例6_3
void main()
{
int a[11]; /*一种技术处理,为了习惯,下标从1开始*/
型数组 注意:数组的下标从0开始
2021/2/7
13
A[0][0]
七、二维数组的存储
A[0][1] A[0][2]
存储——按行存取(先存取行, A[0][3]
再存取列)
A[1][0]
如int a[3][4]在内存中的存储是: A[1][1]
2021/2/7
2
A[0]
二、一维数组
A[1] ……
1、定义:
A[n-2]
type Array_Name[size]; 注意:
A[n-1]
1)type表示数组数据的类型(可以是任何合法的类型)
2)Array_Name表示数组名,其命名规则与变量名的命名规 则相同
3)size——是整型(字符型)常量或常量表达式,(绝对
3、引用方式——Array_Name[下标],其中下 标可以是整型(字符型)常量或变量表达式 (注意,与定义时候区别)
4、数组的每个元素就相当于一个普通的变量。
5、数组的使用一般与for循环配合使用。(一
维数组与一重for循环配合)
2021/2/7
5
三、引用举例
例1:从键盘输入十个整数,然后反序输出这十个 数。
不允许是变量或变量表达式)其含义是表示:数组的长 度——数组包含的数据(元素)的个数。
4)中括号叫下标运算符。
5)数组的下标从0开始计算,如int a[10],表示的是 a[0],a[1]……a[9];
2021/2/7
3
二、一维数组定义举例
int a(10); int a[n]; int a[10]; int a[5.5]; int a[‘a’]; int a[“a”]; #define N 5
相关文档
最新文档