实验4数组(答案解析)

合集下载

C语言-数组-实验题目及答案

C语言-数组-实验题目及答案

实验六数组程序设计【实验目的】1、掌握使用一维数组编程方法2、掌握使用二维数组进行程序设计【实验内容】一、上机验证程序,并分析结果要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。

1、#include <stdio.h>int main(){ int a[ ]={1,2,3,4,5} , i, j, s=0 ;j = 1;for ( i = 4 ; i>=0 ; i--){s = s+ a[i] * j ;j = j * 10 ;}printf(" s= %d \n" , s );return 0;}二、程序改错题1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。

源代码如下,程序中存在错误,请将其改正。

#include <stdio.h>int main(){int a(10);/*定义数组*/int count,i;/* i循环变量 count 正数个数*/for(i=0;i<=10;i++){/*循环输入*/scanf("%d",a[i]);}count=1;for(i=0;i<=10;i++){/*查找正数*/if(a(i)>0)count++;}printf("数组中正数有:%d个\n",count);return 0;}三编写程序1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。

#include <stdio.h>#define N 30int main(){float score[N],sum=0,aver;int i;for(i=0;i<30;i++){scanf("%f",&score[i]);sum=sum+score[i];}aver=sum/30;printf("平均分为:%.2f\n",aver);for(i=0;i<N;i++)if(score[i]>aver)printf("%.2f ",score[i]);printf("\n");return 0;}2.编写程序:假设有13位评委参与评分工作。

C语言测试四(带有答案)

C语言测试四(带有答案)

测试四(数组)姓名:学号:一.选择题1.若有以下定义语句:int a[]={1,2,3,4,5,6,7,8,9,10}; 则值为5的表达式是:()a) a[5] b) a[a[4]]c) a[a[3]]d) a[a[5]]2.要求定义具有80个、char类型元素的一维数组,错误的定义语句是()a) #define N 80 b) int N=80;char s[N]; char s[N];c)#define N 40 d) char s[40+40];char s[2*N];3. 若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则对a数组元素正确的引用是:()a) a[10] b) a[a[3]-5] c) a[a[9]]d) a[a[4]+4]4.若有以下定义语句:float a[11]={0,1,2,3,4,5,6,7,8,9,10}; 则以下叙述中错误的是:()a) a数组在内存中占44个字节b) a数组的最后一个元素为a[10]c) a数组的第一个元素为a[0]d) 以上定义语句给a数组所赋初值是整数,不能正确赋值5.若有以下定义语句:double a[5]; int i=0; 能正确给a数组元素输入数据的语句是:()a) scanf(“%lf%lf%lf%lf%lf”,a);b)for(i=0 i<=5 i++) scanf(“%lf”,a+i);c) while(i<5) scanf(“%lf”,&a[i++]);d) while(i<5) scanf(“%lf”,a+i);6. 以下关于数组的描述正确的是:()a) 数组的大小是固定的,但可以有不同数据类型的数组元素b) 数组的大小是可变的,但所有数组元素的数据类型须相同c) 数组的大小是固定的,且所有数组元素的数据类型须相同d) 数组的大小是可变的,且可以有不同数据类型的数组元素7. 若有说明:int a[10];,则对a数组元素引用不正确的是:()a) a[5+5]b) a[5.5] c) a[10-10]d) a[5]8. 执行int a[ ][3]={1,2,3,4,5,6,7};语句后,a[1][0]的值是()a) 1 b) 3 c) 5d) 49. 若有以下程序:void main(){ int k[9]={19,16,17,15,13,11,10,9}, i=1,s=0;while(i<9 && k[i]%3)s=s+k[i++];printf(“%d\n”,s);}程序执行后的输出结果是:()a) 33b) 52 c) 101d) 11010. 若有以下程序:void main(){ int m[ ][3]={1,3,2,4,5,7,6,8,9,10,11};int i,k=2;for(i=0;i<3;i++)printf(“%d”,m[k][i]);}程序执行后的输出结果是:()a) 4 5 7 b) 2 7 9 c) 9 10 11d) 6 8 911. 若有以下程序:void main(){ int a[3][4]={1,0,2,1,0,2,1,0,1,1,0,1};int i,j,sum=0;for(i=0;i<=2;i++)for(j=0;j<=i;j++)sum+=a[i][j]; }程序执行后的输出结果是:()a) 0 b) 4 c) 5d)312. 下面程序段的输出结果是( )。

C语言实验册完整答案

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。

第4章_数组c++_习题答案解析

第4章_数组c++_习题答案解析

习题4一、单项选择题1.若有说明inta[3][4];则a数组元素的非法引用是【】A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]【答案】D【解析】数组下标从0开始,a[0][4]的列下标越界。

2.在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式【答案】C3.以下不正确的定义语句是【】A.doublex[5]={2.0,4.0,6.0,8.0,10.0};B.inty[5]={0,1,3,5,7,9};C.charc1[]={′1′,′2′,′3′,′4′,′5′};D.charc2[]={x1′0′x,a′′x,8′′};【答案】B【解析】初始值的个数大于数组的大小,系统会出现编译错误。

4.对以下说明语句的正确理解是【】inta[10]={6,7,8,9,10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值的个数不相同,所以此语句不正确【答案】B5.若有说明:inta[][4]={0,0};则下面不正确的叙述是【】A.数组a的每个元素都可得到初值0B.二维数组a的第一维大小为1C.当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值【答案】D【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。

元素a[0][0]和a[0][1]赋初值为0,其余元素初值系统默认为0。

6.以下能对二维数组c进行正确的初始化的语句是【】A.intc[3][]={{3},{3},{4}};B.intc[][3]={{3},{3},{4}};C.intc[3][2]={{3},{3},{4},{5}};D.intc[][3]={{3},{},{3}};【答案】B【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。

数组选择试题及答案解析

数组选择试题及答案解析

数组选择试题及答案解析一、选择题1. 下列关于数组的描述中,错误的是:A. 数组是一种基本的数据结构,可以存储相同类型的多个元素B. 数组在内存中是连续存储的C. 数组的大小在定义后可以改变D. 数组可以通过索引来访问元素2. 假设有一个整型数组 int[] arr = {1, 2, 3, 4, 5}; 以下哪个表达式是正确的:A. arr[0] = 10B. arr[5] = 6C. arr[-1] = 0D. arr[5]3. 在Java中,以下哪个方法可以用来获取数组的长度:A. length()B. size()C. count()D. total()4. 假设有一个数组 int[] numbers = new int[5]; 以下哪个操作是合法的:A. numbers[5] = 10B. numbers[-1] = 0C. numbers[4] = 100D. numbers[0] = 55. 在C语言中,以下哪个数组声明是正确的:A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = 1, 2, 3;D. int arr = {1, 2, 3};二、答案解析1. 答案:C解析:数组的大小在定义后是不可变的,这是数组的一个基本特性。

2. 答案:A解析:数组索引从0开始,arr[0]是第一个元素,可以赋值为10。

3. 答案:A解析:在Java中,数组的长度通过length属性获取。

4. 答案:C解析:数组索引从0到数组长度减一,所以索引4是合法的,可以赋值为100。

5. 答案:A解析:在C语言中,数组的声明可以不指定大小,编译器会根据初始化列表的长度自动计算数组的大小。

选项A是正确的声明方式。

数组实验报告的总结

数组实验报告的总结

一、实验背景随着计算机科学的不断发展,数组作为一种基本的数据结构,在编程中得到了广泛的应用。

为了更好地理解数组的原理和特性,我们进行了数组实验,通过实际操作和理论分析,加深对数组概念的理解。

二、实验目的1. 理解数组的定义、特点和应用场景;2. 掌握数组的创建、访问、修改和删除等基本操作;3. 分析数组在编程中的优势与不足,提高编程能力。

三、实验内容1. 数组的定义与特点数组是一种有序集合,用于存储具有相同数据类型的元素。

数组的元素在内存中连续存放,通过索引访问元素。

数组具有以下特点:(1)元素类型相同:数组中所有元素的数据类型必须相同;(2)连续存储:数组元素在内存中连续存放,便于提高访问速度;(3)索引访问:通过索引快速访问数组元素;(4)动态创建:根据需要动态创建数组,节省内存空间。

2. 数组的创建与初始化在Java中,创建数组主要有以下两种方式:(1)声明数组:int[] array = new int[10]; // 创建一个长度为10的整型数组(2)声明并初始化:int[] array = {1, 2, 3, 4, 5}; // 创建并初始化一个包含5个整数的数组3. 数组的基本操作(1)访问元素:通过索引访问数组元素,如array[0]表示访问第一个元素;(2)修改元素:直接通过索引修改数组元素,如array[1] = 10;;(3)删除元素:在Java中,无法直接删除数组元素,但可以通过重新排序或覆盖元素来实现;(4)查找元素:通过遍历数组,比较元素值,找到目标元素。

4. 数组的应用实例(1)冒泡排序:通过比较相邻元素的大小,实现数组的升序排序;(2)查找算法:如二分查找、线性查找等,通过遍历数组,找到目标元素;(3)动态规划:利用数组存储中间结果,实现复杂问题的求解。

四、实验结果与分析1. 通过实验,我们掌握了数组的定义、特点和应用场景,加深了对数组概念的理解;2. 实验过程中,我们学会了创建、访问、修改和删除数组元素等基本操作,提高了编程能力;3. 在实际应用中,数组在排序、查找、动态规划等方面具有广泛的应用,为编程提供了便利。

C语言教材提纲

C语言教材提纲

C语言教材编写提纲(湘潭工学院计算机科学与技术系蒋清明徐建波)前言作者简介:蒋清明付教授,1964年出生,1987年毕业于湖南师大,并获得硕士学位,1989年考上清华大学硕士研究生,1992年获得硕士学位,现任湘潭工学院计算机科学与技术系付主任,主管教学工作。

毕业后长期从事计算机基础教学与研究,1998年参加《C程序设语言》教材的编写,排名第一,1995 年参加编写了煤炭部规划教材《C语言程序设计基础》,排名第七。

主持并完成院级教研项目《计算机基础》一项,现主管湖南省第三批重点课程建设项目《计算机技术基础》的研究。

主持并完成院级科研项目一项,参加并完成省科委项目一项(第二),参加并完成横向项目多项,公开发表论文10篇,其中第一作者5篇。

本书特点:C语言作为计算机入门基础课,有关C语言的教材也非常多,且许多C 语言教材内容繁杂,学生拿到这样的教材不好学,教师拿到这样的教材不好组织教学内容,况且还有一些书错误较多。

作者多年从事计算机基础教学与研究,有丰富的教学组织经验,教学效果好。

本书特点主要有:(1)简单、精炼、易学、实用,内容够用,编排上逐步加深。

(2)组织系统化,全书编写按照学生易学的方式系统组织,对于常用算法也分别在各章中进行,避免内容重复、遗漏。

(3)全书强调编程技术、方法,并在附录C介绍常用Turbo C调试技术、方法,在附录D介绍出错信息。

《C语言程序设计》目录第一章绪论第一节C语言发展过程一高级语言发展过程二C语言发展过程第二节C语言特点第三节C程序结构与书写格式一C程序结构(举例)二书写格式第四节Turbo C上机操作一高级语言程序的产生过程二上机操作习题一第二章基本数据类型与运算符第一节基本数据类型与数据范围一类型说明格式二整数类型1 带符号的整数2 不带符号的整数3 进制三实数类型1 单精度实数2 双精度实数四类型转换1 算术转换2 赋值转换3 强制类型转换第二节运算符一优先级与结合规则二算术运算三关系运算四逻辑运算五位运算六(复合)赋值运算七条件运算第三节输入与输出函数一格式化输入函数二格式化输出函数(含字符串常量)三字符输入与输出第四节问题与解答习题二第三章控制结构第一节程序结构框图一流程图二N-S图(?)三结构化程序设计第二节二分支结构——if~else一二分支结构——if~else二不平衡if结构——if~(一元二次方程求解)三多分支结构——else if~(成绩分段)第三节多分支结构——switch~case(成绩分段)第四节循环结构一for~循环(判断是否为素数,求两个数的最大公因子)二while~循环(求勾股数)三do~while循环(牛顿迭代法求解非线性方程)四循环嵌套(求1000范围内的素数)第五节break 与continue一break语句(三位数中的最小回数)二continue语句三goto语句(找两数组中公共元素)第六节问题与解答(逻辑判断、表达式猜测、水仙花数)习题三第四章数组第一节一维数组一一维数组说明格式与初始化二一维数组的输入与输出三字符型数组与字符串(字符串转换为整数)第二节二维数组一二维数组的说明格式二二维数组的应用(班级学积分统计)第三节多维数组(年级学积分排序)第四节数组举例(气泡排序,二分法查找元素值,模式匹配)第五节问题与解答(Joseph问题)习题四第五章函数第一节函数调用过程第二节函数一函数说明格式二函数定义格式(求两个数的最大公因子,辗转除法)三举例(数学级数展开)第三节递归函数一递归概念二递归举例1 求n的阶乘2 汉诺塔问题第四节函数与数组一函数与一维数组(字符串长度、字符串比较、atol、atof)二函数与二维数组(迷宫问题的回溯法求解、古纸残数求解)三函数与多维数组第五节存储类型、生命期、可见性一存储类型二自动型变量三外部型变量四静态型变量(统计函数调用次数或求解数)第六节编译预自理一#include二#define1 宏常量2 宏函数第七节问题与解答习题五第六章指针第一节指针与变量(交换函数)第二节指针与一维数组(字符串拷贝函数,插入排序,浮点数转换为字符串)第三节二级指针一二级指针二指向数组的指针第四节指针数组(字符串数组选择排序)第五节指针与函数一形参为指针(字符串函数)二返值为地址型三举例(单词个数与空白字符个数统计)第六节命令行参数第七节函数指针*(计算器功能实现)第八节问题与解答习题六第七章结构与联合第一节结构类型一结构类型的定义、初始化、使用二结构类型数组(多重排序)三结构类型的嵌套结构四自引用结构与链表第二节共用类型第三节枚举类型第四节位域*第五节自定义类型第六节问题与解答习题七第八章文件第一节文件的格式化输入与输出一文件的字符和字符串操作二文件的格式化输入与输出(文件拷贝)第二节文件的块操作一文件的块操作二举例(记录操作)第三节文件的低层操作第四节问题与解答习题八附录A ASCII表附录B 常用库函数附录C Turbo C上机操作一操作过程二调试技术附录D 出错信息解释《C语言程序设计实验指导与习题解答》目录第1部分C语言程序设计实验指导1实验1 Visual C++ 6.0 IDE上机操作过程1 1.1 实验目的1 1.2 实验范例1 1.3 实验步骤1实验2输入/输出操作3 2.1实验目的3 2.2实验范例3 2.3实验4实验3分支结构5 3.1实验目的5 3.2实验范例5 3.3实验7实验4循环结构8 4.1实验目的8 4.2实验范例8 4.3实验9实验5break/continue语句11 5.1实验目的11 5.2实验范例11 5.3实验12实验6函数13 6.1实验目的13 6.2实验范例13 6.3实验14实验7递归函数15 7.1实验目的15 7.2实验范例15 7.3实验16实验8存储类型16 8.1实验目的16 8.2实验范例17 8.3实验18实验9一维数组19 9.1实验目的199.2实验范例20 9.3实验20实验10二维与多维数组21 10.1实验目的21 10.2实验范例21 10.3实验24实验11指针24 11.1实验目的24 11.2实验范例25 11.3实验25实验12命令行参数26 12.1实验目的26 12.2实验范例26 12.3实验27实验13结构体28 13.1实验目的28 13.2实验范例28 13.3实验30实验14共用体31 14.1实验目的31 14.2实验范例31 14.3实验32实验15文件操作32 15.1实验目的32 15.2实验范例33 15.3实验33第2部分C语言程序设计习题与解答35题解1绪论35 1.1习题35 1.2习题解答36题解2基本数据类型与运算符36 2.1习题36 2.2习题解答39 题解3控制结构40 3.1习题40 3.2习题解答44题解4函数504.1习题50 4.2习题解答54题解5数组585.1习题58 5.2习题解答63 题解6指针686.1习题68 6.2习题解答73题解7结构与共用787.1习题78 7.2习题解答86题解8文件918.1习题918.2习题解答97第3部分C语言程序设计等级考试二级模拟试卷104试卷1 104 1.1笔试试题104 1.2上机操作试题115 1.3参考答案117试卷2 119 2.1笔试试题119 2.2上机操作试题129 2.3参考答案132试卷3 134 3.1笔试试题134 3.2上机操作试题146 3.3参考答案148试卷4 150 4.1笔试试题150 4.2上机操作试题161 4.3参考答案164附录常见出错信息及排错示例167参考文献175C语言教材编写规范:1.章标题:第一章,宋体2号,居中,加粗,字距:加宽1磅,行距:多倍行距2.4,段距:段前1.5行,段后1.5行,段前分页。

(完整版)数据结构实验答案及解析

(完整版)数据结构实验答案及解析

《数据结构》实验指导2013 / 2014 学年第 2学期姓名:______________学号:_________班级:______________指导教师:______________潍坊学院计算机工程学院2014预备实验 C语言的函数数组指针结构体知识一、实验目的1、复习C语言中函数、数组、指针和结构体的概念。

2、熟悉利用C语言进行程序设计的一般方法。

二、实验内容和要求1、调试程序:输出100以内所有的素数(用函数实现)。

#include<stdio.h>/*判断一个数是否为素数*/int isprime(int n){for(int m=2;m*m<=n;m++){if(n%m= =0) return 0;return 1;}/*输出100以内所有素数*/int main(){int i;for(i=2;i<100;i++)if(isprime(i)= =1) printf(“%4d”,i);return 0;}运行结果:2、调试程序:对一维数组中的元素进行逆序排列。

#include<stdio.h>#define N 10int main(){int a[N]={0,1,2,3,4,5,6,7,8,9},i,temp;printf(“the original Array is:\n ”);for(i=0;i<N;i++)printf(“%4d”,a[i]);for(i=0;i<N/2;i++){ /*交换数组元素使之逆序*/temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}printf(“\nthe changed Array is:\n”);for(i=0;i<N;i++)printf(“%4d”,a[i]);return 0;}运行结果:3、调试程序:在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四数组实验课程名:高级语言程序设计4 数组专业班级:学号:姓名:实验时间:2016年4月27日实验地点:K4 指导教师:(3)结果分析:当i能被3整除时,就换一次行。

(二)实验任务2(1)程序代码:#include <stdio.h>void main( ){int i,a[5],sum=0;for(i=0;i<=4;i++)scanf("%d",&a[i]);for(i=0;i<=4;i++)sum+=a[i];printf("sum=%d\n",sum);}(2)程序运行结果:(3)程序分析:使用for循环依次输入5个数,并使5个数相加。

(三)实验任务3(1)程序代码:#include <stdio.h>int main( ){ int i,j,row=0,colum=0,max;int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for (j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf(" Max=%d, Row=%d, Colum=%d\n", max, row, colum);return 0;}(2)程序运行结果:(3)程序分析:分别将这12个元素同max相比较,当某个元素的值大于max时,则将此元素的值赋值给max,最后输出max及最大值的下标。

(四)实验任务4(1)程序代码:#include <stdio.h>void main( ){ int i, x, a[10]={1,2,3,4,5,6,7,8,9,10};scanf("%d",&x); /*输入x变量的值*/for ( i=0; i<10; i++ )printf("%4d",a[i]);printf("\n");for(i=0;i<10;i++) /* 循环查找与x相等的元素*/if ( x==a[i] )printf("%d\n",i); /* 输出查找结论,输出下标值*/else printf("Not found %d\n",x);}(2)运行结果:(3)程序分析:通过for循环查找与x相等地元素。

(五)实验任务5(1)程序代码:# include<stdio.h>#define N 11(3)程序分析:使用起泡算法将这10个数由大到小的顺序排列出来,后使用for循环语句把插入元素后的数组由大到小的顺序排列。

(六)实验任务6(1)程序代码:#include<stdio.h>int main(){int a[10];int i,k;printf("请输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);k=0;for(i=1;i<10;i++)if(a[k]<a[i])k=i;for(i=k;i<9;i++)a[i]=a[i+1];for(i=0;i<9;i++)printf("%d ",a[i]);printf("\n");}(2)运行结果:(3)程序分析:该程序先将输入的10个数有小到大的顺序列出来,最后输出前9个数。

(七)实验任务7(1)程序代码:#include <stdio.h>void main(){ float x[1000], sum=0.0, ave, a;int n=0, i;printf ("Enter mark : \n");scanf("%f", &a);while (a>=0.0 && n<1000){ sum+=a;x[n]= a ;n++;scanf("%f", &a);}ave= sum/n ;printf ("Output : \n");printf ("ave = %f\n", ave);for (i=0; i<n; i++)if ( x[i]<ave )printf("%f\n", x[i]);}(2)运行结果:(3)程序分析:输入若干个数,以负数为结束标志。

使用while选择语句,求出输入的整数的平均值。

(八)实验任务8(1)程序代码:#include<stdio.h>void main(){int i,j,a[6][6];for(i=0;i<6;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<6;i++){for(j=1;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for(i=0;i<6;i++){for(j=0;j<=i;j++)printf("%d ",a[i][j]);printf("\n");}}(2)运行结果:(3)程序分析:这可以看做一个6*6的矩阵,通过使用数组级for循环语句将杨辉三角表示出来。

(九)实验任务9(1)程序代码:#include <stdio.h> #include <string.h>void main(){ char a[10],b[10];int c,d,k,ch;scanf("%s",&a);scanf("%s",&b);printf("a=%s,b=%s\n",a,b);c=strlen(a);d=strlen(b);if(c>d){printf("a=%s\n",b);printf("b=%s\n",a);}else{printf("a=%s\n",a);printf("b=%s\n",b);}}(2)运行结果:(3)程序分析:运行程序的时候先输入country,再输入side,经过程序的运行,实现了将side连接到country的后面形成新的单词countryside,即实现了将第二个字符串连接到第一个字符串的后面从而·形成一个新的字符串的功能。

(十一)实验任务11(1)程序代码:#include "stdio.h"void main (){char str1[100],str2[100];int i,s;printf("\n Input string 1:\n");gets(str1);printf("\n Input string 2:\n");gets(str2);i=0;while((str1[i]==str2[i])&&(str1[i]!=" "))i++;s=str1[i]-str2[i];printf("%d\n",s);0020}(2)运行结果:(3)程序分析:先输入abcdefg,后输入abceef,让后求出两个字符数组中第一个不同元素的ASCII码之差。

(十二)实验任务12(1)程序代码:#include <stdio.h>#include <ctype.h>void main(){int num[26],i;char c;for(i=0;i<26;i++)num[i]=0;while ((c=getchar())!='#') /* 统计从终端输入的大写字母个数*/if (isupper(c)) num[c-65]+=1; //检查ch是否为大写字母//for (i=0;i<26;i++) /* 输出大写字母和该字母的个数*/if (num[i])printf("%c:%d\n",i+65,num[i]);}(2)运行结果:(3)程序分析:(十三)实验任务13(1)程序代码:#include<stdio.h>#include<string.h>void main(){char a[50][100]; //字符数组a[50][100]//int i=0,max=0,k;printf("请输入字符串,每次输入完成后请按一次“Enter”:\n");while(gets(a[i])&&strcmp(a[i],"stop")) //比较两个字符串//{if(strlen(a[i])>max) //统计字符数组中字符的个数//{max=strlen(a[i]);k=i;}i++;}printf("最长的字符串是:\n%s\n",a[k]);}(2)运行结果:(3)程序分析:运用while循环及if条件语句,测出每次输入字符串的长度,并比较他们的大小,最后输出最长的字符串。

(十四)实验任务14(1)程序代码:#include <stdio.h>#include <string.h>void insert(char *p1,char *p2,char pos){int m,n,i;char temp[20];m=strlen(p1);n=strlen(p2);for(i=0;i<n;i++){if(pos==*(p1+i)){strcpy(temp,p1+i+1);*(p1+i+1)='\0';strcat(p1,p2);strcat(p1,temp);puts(p1);break;}}}void main(){char s1[20], s2[20];char pos;printf("Please input s1:");gets(s1);printf("Please input s2:");gets(s2);printf("Please input pos:");pos=getchar();putchar(pos);insert(s1,s2,pos);}(2)运行结果:(3)程序分析:通过使用strcpy函数把str2指向的字符串复制到str1中1去。

相关文档
最新文档