实验4-数组
C语言实验册完整答案

实验2答案五.程序改错#include<stdi o.h>int main(void){int x=3,y;y = x*x;printf("%d = %d * %d\n",y,x,x); /* 输出*/printf("%d * %d = %d\n",x,x,y);return 0;}六、一般编程题6.1#include<stdio.h>int main(void){int x,y;printf("Input x: ");scanf("%d",&x);printf("Input y: ");scanf("%d",&y);printf("%d + %d = %d\n",x,y,x+y);printf("%d - %d = %d\n",x,y,x-y);printf("%d * %d = %d\n",x,y,x*y);printf("%d / %d = %d\n",x,y,x/y);printf("%d %% %d = %d\n",x,y,x%y);return 0;}6.2#include<stdio.h>int main(void){ float x; double y;printf("Input x: ");scanf("%f",&x);printf("Input y: ");scanf("%lf",&y);printf("%f + %f = %f\n",x,y,x+y);printf("%f - %f = %f\n",x,y,x-y);printf("%f * %f = %f\n",x,y,x*y);printf("%f / %f = %f\n",x,y,x/y);return 0;}6.3#include<stdio.h>int main(void){ char c;printf("Input c: ");scanf("%c",&c);printf("%c\n",c+32);return 0;}6.4#include<stdio.h>int main(void){int celsius,fahr;fahr = 150;celsius = 5*fahr/9 - 5*32/9;printf("fahr = %d, celsius = %d\n", fahr, celsius);return 0;} 如果使用公式9)32(5-⨯=f c 计算结果不一样,celsius = 65。
C语言程序设计课程教学大纲

《C语言程序设计》课程教学大纲适用专业信息与计算科学总学时90学分 4一、编写说明(一)本课程的性质、地位和作用本课程属于信息与计算科学的专业课,C程序设计语言的语法规则、数据类型、数据运算、语句、函数、指针、程序结构等方面的学习,掌握应用C语言进行程序设计的技能,为今后进一步学习程序开发以及科学与工程计算的软件开发奠定一个良好的基础。
(二)本大纲制定的依据根据本专业人才的培养目标和人才培养规格所需要的基本理论和基本技能的要求,根据本课程的教学性质、条件和教学实践而制定。
(三)大纲内容选编原则与要求通过对本课程的学习,使学生掌握基本概念、基本原理、基本知识和实际操作能力,重点落实到“用”上。
在对大纲内容选编时,在注重基本原理、基本概念的同时,特别强调实用系统的设计与开发,做到了理论与实践有效结合。
(四)实践环节实验1:C程序的运行环境和运行一个C程序的方法, 2学时主要内容与要求:了解所用的计算机系统的基本操作方法,学会独立使用该系统;了解在该系统上如何编辑、编译、连接和运行一个C程序;通过运行简单的C程序,初步了解C 程序的特点。
实验2:简单的C程序设计,2学时主要内容与要求:掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法;掌握不同类型数值之间赋值的规律;学会使用C的有关算术运算符,以及包含这些运算符的表达式;掌握赋值语句的使用方法;掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。
实验3:逻辑结构、循环控制程序设计,4学时主要内容与要求:了解C语言表示逻辑量的方法;学会正确的使用逻辑运算符和逻辑表达式;熟练掌握if语句和switch语句;熟悉掌握用while 语句,do while语句和for语句实现循环的方法;掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等);进一步学习调试程序。
实验4:数组、函数,4学时主要内容与要求:掌握一维数组和二维数组的定义、赋值和输入输出方法;掌握字符数组和字符串函数的使用;掌握与数组有关的算法(特别是排序算法);掌握定义函数的方法;掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法;学习对多文件程序的编译和运行。
第四章 数组作业

第四章数组4.1 选择题1. 以下关于数组的描述正确的是( )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。
A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。
A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5. 若有定义:int bb[ 8];。
则以下表达式中不能代表数组元bb[1]的地址的是( )。
A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A. 3B. 6C. 10D. 207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。
#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为( )。
实验4 排序和检索程序设计

实验4 排序和检索程序设计编写程序1:将内存中10个无符号数(长度为2字节)由小到大排序。
编写程序2:在上述已排好序的数据区里查找某一个数。
若找到,显示其在数据区中的位置,否则显示‘N’字符。
编写主程序,通过调用程序1和程序2,实现排序和检索。
【编程参考】1.子程序1流程图(选择排序法,见图)说明:N:数据个数A:有序数组首地址CX:内外循环计数DX:暂存外循环计数BX、BX+SI+2:数组元素相对偏移下标2.子程序2流程图(折半查找法,见图3-2)说明:A:有序数组首地址KEY:查找关键字DH:查找区间上限DL:查找区间下限CH:查找区间中间值DI:存放查找关键字SI:数组元素相对偏移图实验4程序1流程图实验5 系统调用程序设计编程1:将内存中的一串字符输出,再从键盘上输入一串字符,再输出。
编写出源程序。
编程2:在屏幕中间部位开出一个窗口,随后接收用户按键,并把按键字符显示在窗口的最底行;当窗口底行显示满时,窗口内容就自动向上滚动一行;用户按Ctrl+C键时,结束运行。
程序5_1:字符串输入输出程序清单; 程序名:ZHSY4_2_1DATA SEGMENTA DB ‘How do you do?’,0AH,0DHDB ‘$’B DB 20,?,20 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX, DATAMOV DS, AXMOV AH, 09HLEA DX, AINT 21HLEA DX, BMOV AH, 0AHINT 21HMOV DL, 0AH ; 输出换行MOV AH, 02HINT 21HMOV AL, B+1 ; 键盘输入的字符个数送ALMOV AH, 0MOV SI, AX ; 字符个数值存SIMOV DX, OFFSET B+2MOV BX, DXMOV BYTE PTR [BX+SI], ‘$’; 末尾添‘$’以便输出MOV AH, 09HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START程序5_2:窗口字符显示程序清单; 程序名:ZHSY4_2_2; 常量定义WINWIDTH = 40 ; 窗口宽度WINTOP = 8 ; 窗口左上角行号WINLEFT = 20 ; 窗口左上角列号WINBOTTOM = 17 ; 窗口右下角行号WINRIGHT = WINLEFT+WINWIDTH-1 ; 窗口右下角列号COLOR = 74H ; 属性值PAGEN = 0 ; 显示页号CTRL_C = 03H ; 结束符ASCII码CODE SEGMENTASSUME CS:CODESTART: MOV AL, PAGEN ; 选择显示页MOV AH, 5INT 10HMOV CH, WINTOP ; 清规定窗口MOV CL, WINLEFTMOV DH, WINBOTTOMMOV DL, WINRIGHTMOV BH, COLORMOV AL, 0MOV AH, 6INT 10HMOV BH, PAGEN ; 定位光标到窗口左下角MOV DH, WINBOTTOMMOV DL, WINLEFTMOV BH, COLORMOV AH, 2INT 10HNEXT: MOV AH, 0 ; 接受一个键INT 16HCMP AL, CTRL_C ; 是否结束键JE EXITMOV BH, PAGEN ; 在当前光标位置显示所按键MOV CX, 1MOV AH, 0AHINT 10HINC DL ; 光标列数加1,准备向右移动光标CMP DL, WINRIGHT+1 ; 是否越出窗口右边界JNE SETCURMOV CH, WINTOP ; 窗口内容上移一行MOV CL, WINLEFT ; 空出窗口的最底行MOV DH, WINBOTTOMMOV DL, WINRIGHTMOV BH, COLORMOV AL, 1MOV AH, 6INT 10HMOV DL, WINLEFT ; 光标要回到最左面SETCUR: MOV BH, PAGEN ; 置光标MOV AH, 02HINT 10HJMP NEXTEXIT: MOV AH, 4CHINT 21HCODE ENDSEND START实验6 模块化程序设计主模块A编程:设计一个能实现加、减、乘、除计算的程序,要求该程序接受从键盘输入的两个十六进制数,调用相应的程序模块执行相应的计算后,计算结果以十六进制数输出。
《C语言程序设计课件》第四章-数组

#include <stdio.h> #define N 10 int main(void)
{ int a[N], i; printf("Enter %d numbers: ", N);
for (i = 0; i < N; i++)
for(i=0;i<1;i++) if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; }
a[0]
20
a[1]
02
a[2]
44
a[3]
55
a[4]
88
a[5]
99
for(i=0;i<5;i++) if (a[i]>a[i+1]) { ……}
for(i=0;i<4;i++) if (a[i]>a[i+1]) { ……}
4.2 一维数组
一维数组主要用来存储一组类型相同并且数量一定 的数据。其中,每个数据称为数组的一个元素。
4.2.1 一维数组定义 一维数组的定义形式如下: 类型名 数组名[常量表达式]; int x[100]; char string[10]; double data[10];
常量表达式给出了数组的长度,在C语 言中定义数组时必须确定数组的长度。
600
xxx[[[654]]]
700
xxx[[[765]]]
800
xxx[[[876]]]
900
xxx[[[987]]]
Java练习题 实验4-2新

实验4-2 数组与字符串【实验目的】1、熟练掌握String类的构造方法以及一些常用的方法的使用;2、熟练掌握StringBuffer类的构造方法以及一些常用的方法的使用;【实验内容】1、运行//TestStringCase2.java程序,分析该程序的作用。
public class TestStringCase2 {public static void main(String[] args) {String str = "Chinese New Year is the most important festival for Chinese people all over the world. It is also called the Spring Festival or the Lunar New Year.";String sFind = "Chinese";int count = 0;int index = -1;while(str.indexOf(sFind) !=-1) {index = str.indexOf(sFind);str = str.substring(index + sFind.length());count ++;}System.out.println(count);}}考虑:能否用indexOf(String str,int fromIndex)方法在不截取字符串的情况下实现。
2、编程实现下列问题,判断下列两个字符串是否相等:str1 = “The Lion King”,str2 = “THE LION KING”,若忽略大小写,是否相等?//Test.java3、编写一个方法,返回一个Double的二维数组。
数组中的元素通过解析字符串参数获得,如字符串参数:"1, 2;3, 4, 5;6, 7, 8"对应的数组应为:a[0][0] = 1.0; a[0][1] = 2.0;a[1][0] = 3.0; a[1][1] = 4.0; a[1][2] = 5.0;//TestArrayParser.java。
C语言上机实验

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
实验4-函数

实验4 函数程序填空1.普通参数本题分值:4题目描述:输入日期的年份和月份,求该月有多少天。
要求编写函数int daynum(int year,int month),求出以year为年份、以month为月份的某个月的天数。
以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。
代码://通过日期求某月的天数。
#include<iostream>using namespace std;int main(){int daynum(int year,int month);int y,m,d;cin>>y>>m;if(y<1900 || y>=3000 || m<1 || m>12){cout<<"输入错误!"<<endl;return 0;}d=daynum(__(1)__); //以y、m作实参调用函数,求出该月的天数cout<<"此月的天数为"<<d<<endl;return 0;}int daynum(int year,int month){int days;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31; break;case 4:case 6:case 9:case 11: days=30; break;case 2: if(year%4==0&&year%100!=0 || year%400==0)days=29;elsedays=28;break;}return __(2)__;}答案:(1) y,m(2) days每空分值:2参考答案:yx3-t1.cpp2.字符数组参数本题分值:4题目描述:编写一个函数,用来求字符串s的任意子串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组
一维数组
1. 用Array函数生成一个包含10个整数的一维数组,并在窗体上输出,然后分别统计其中正数之和与负数之和,运行效果如图所示。
2. 随机生成10个两位正整数,求其中的最大值和平均值,并将结果显示出来,运行效果如图所示。
3. 实现以下程序功能:程序运行后,在四个文本框中各输入一个整数。
然后单击命令按钮,即可使数组按升序排序,并在文本框中显示出来。
提示:可用array函数生成数组。
二维数组
1. 设有一个二维数组A(5,5),给所有数组元素赋值为1-9之间的随机整数,试计算:
●所有元素之和。
●所有靠边元素之和。
●正对角线上元素之和。
2. 设有一个二维数组A(5,5),试计算矩阵第三行各项的和,并在窗体上显示出来。
3. 设有一个二维数组A(5,5),试找出正对角线上最大的值。
4.产生一个二维数组A(5,5),要求中心位置值为9,对角线位置值为1,其余位置值为0。
5.设有一个二维数组A(4,4),请交换其中的第二列和第四列,并显示。
6. 实现以下程序功能:运行程序时,随机产生一个4行4列的二维数组,单击“计算”命令按钮时,将统计矩阵两个对角线的元素中能被3整除的个数,统计结果显示在标签lblfirst中;同时计算矩阵主对角线的元素之和,计算结果显示在标签lblSecond中。
列表框和组合框
1. 设在窗体中有一个名称为List1的列表框,其中有若干项目。
要求选中一项后单击Command1按钮,就删除选中的项,运行效果如图所示。
点击前选中”北京”点击按钮后删除
2. 窗体上有一个组合框,其中已输入了若干项目。
程序运行时,单击其中一项,即可以把该项与上面的一项交换,运行效果如图所示。
点击前选中”重庆”点击后交换
3.有10位同学的VB课程的期末成绩,信息如下:82、75、91、65、57、44、78、64、95、62,请将他们的信息保存到数组中,显示在列表框中,在“优秀”、“通过”和“不通过”三个分数段的人数进行统计。
其中85分以上(含85分)为“优秀”,60-85分之间(含60分)为“通过”, 60分以下的为“不通过”。
4. 实现以下程序功能:单击“生成”按钮,随机生成一个由100个2位正整数组成的数组a,同时显示在Text1文本框中;单击“分组”按钮,则将数组a中所有3的倍数的元素存入数组b中,并对数组b中的元素从小到大排序后显示在文本框Text2中。
控件数组
实现以下程序功能:程序运行时,向文本框控件数组Text1(有5个文本框)中任意输入5个数,单击名称为Command1的命令按钮,则找出其中最小数并显示在标签lblResult中。