C语言 第5章 数组
- 格式:ppt
- 大小:3.12 MB
- 文档页数:89


第1章绪论2.(1)×(2)×(3)√3.(1)A(2)C(3)C5.计算下列程序中x=x+1的语句频度for(i=1;i<=n;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)x=x+1;【解答】x=x+1的语句频度为:T(n)=1+(1+2)+(1+2+3)+……+(1+2+……+n)=n(n+1)(n+2)/6
6.编写算法,求一元多项式pn(x)=a0+a1x+a2x2+…….+anxn的值pn(x0),并确定算法中每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能小,规定算法中不能使用求幂函数。注意:本题中的输入为ai(i=0,1,…n)、x和n,输出为Pn(x0)。算法的输入和输出采用下列方法(1)通过参数表中的参数显式传递(2)通过全局变量隐式传递。讨论两种方法的优缺点,并在算法中以你认为较好的一种实现输入输出。【解答】(1)通过参数表中的参数显式传递优点:当没有调用函数时,不占用内存,调用结束后形参被释放,实参维持,函数通用性强,移置性强。缺点:形参须与实参对应,且返回值数量有限。(2)通过全局变量隐式传递优点:减少实参与形参的个数,从而减少内存空间以及传递数据时的时间消耗缺点:函数通用性降低,移植性差算法如下:通过全局变量隐式传递参数PolyValue(){inti,n;floatx,a[],p;printf(“\nn=”);scanf(“%f”,&n);printf(“\nx=”);scanf(“%f”,&x);for(i=0;i
通过参数表中的参数显式传递floatPolyValue(floata[],floatx,intn){floatp,s;inti;p=x;s=a[0];for(i=1;i<=n;i++){s=s+a[i]*p;/*执行次数:n次*/p=p*x;}return(p);}算法的时间复杂度:T(n)=O(n)第2章线性表
第五章 数组
一、单项选择
1.若要定义一个具有5个元素的整型数组,以下错误的定义语句是( C)
2.下列选项中,能正确定义数组的语句是( D)
3.下面是有关C语言字符数组的描述,其中错误的是( D)
4.有以下程序,程序运行时若输入:how are you? I am fine则输出结果是( C)
#include int main() { char a[30],b[30];
scanf("%s",a);
gets(b);
printf("%s\n %s\n",a,b);
return 0;
}
5.以下选项中正确的语句组是( D)
6.若有定义语句:int m[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是( A )
7.以下数组定义中错误的是( A)
8.下列选项中,能够满足"若字符串s1等于字符串s2,则执行ST"要求的是 ( A )
9.有以下程序,程序运行后的输出结果是( C)
#include
#include
int main()
{
char x[]="STRING";
x[0]='0';x[1]='\0';x[2]=0;
printf("%d %d\n",sizeof(x),strlen(x)); return 0;
10.有以下程序,程序运行后的输出结果是( B )
#include
#include
int main()
{
char a[20]=”ABCD\0EFG\0”,b[]=”IJK”;
strcat(a,b); printf(“%s\n”,a);
return 0;
二、程序设计
1./* 编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
c语言程序设计现代方法第二版
C语言程序设计现代方法第二版是针对计算机科学与技术专业学生的一本教材,它不仅涵盖了C语言的基础知识点,还融入了现代编程实践和软件工程的概念。这本书的目的是帮助学生掌握C语言编程的技巧,并培养他们解决实际问题的能力。
第一章:C语言概述
本章介绍了C语言的发展历程和特点,以及为什么C语言仍然是现代编程语言中不可或缺的一部分。C语言以其高效性、灵活性和广泛的应用领域而著称。本章还简要介绍了C语言的基本语法结构和编程环境的搭建。
第二章:数据类型和运算符
在这一章中,详细讨论了C语言中的基本数据类型,如整型、浮点型、字符型等,以及它们在内存中的存储方式。同时,介绍了各种运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符等。
第三章:控制结构
控制结构是程序设计中的核心概念。本章深入讲解了C语言中的三种基本控制结构:顺序结构、选择结构(if语句和switch语句)和循环结构(for、while和do-while循环)。
第四章:函数
函数是模块化编程的基础。本章介绍了如何定义和调用函数,参数传递机制,以及如何使用递归。此外,还讨论了函数的返回类型、作用域和生命周期等概念。
第五章:数组和字符串
数组是存储固定数量相同类型元素的集合。本章详细讨论了一维数组和多维数组的使用,以及字符串的处理方法。包括字符串的输入输出、字符串处理函数和字符串的内存管理。
第六章:指针
指针是C语言中一个强大的特性,它允许程序员直接操作内存地址。本章介绍了指针的基本概念、指针与数组的关系、指针的算术运算,以及函数指针和指针数组。
第七章:结构体和联合体
结构体和联合体是C语言中用于创建复杂数据类型的工具。本章讲解了如何定义和使用结构体和联合体,以及它们在数据封装和信息组织中的作用。
第八章:预处理器和宏
预处理器是C语言编译过程中的一个工具,它在编译之前处理源代码。本章介绍了预处理器的指令,如宏定义、文件包含、条件编译等。
C程序设计第05章(数组)作业答题纸 第 1 页 共 4 页 C程序设计第05章(数组)作业答题纸
学号 119064257 姓名 葛冉浩 班级 电112
一、选择题:
1~5: DCABB 6~8:DCC
二、写出下列程序的输出结果或填空题:
9、2;2;\0
10、5
11、a[k][k]
12、1;a[20]
13、a[m];k<12
14、
*
***
*****
*******
*********
15、 1 1 1
16、a[0]=3
C程序设计第05章(数组)作业答题纸 第 2 页 共 4 页 a[1]=2
a[2]=3
a[3]=3
a[4]=3
a[5]=2
a[6]=3
a[7]=2
三、编程题:
17、已知整型数组a中有10个元素,整型数组b中有6个元素。编程将那些在数组a中而不在数组b的数据组成新数组c并输出。
#include "stdio.h" void main() {int a[10],b[6],c[10]; int i,j,t=-1; for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n"); for(j=0;j<6;j++)scanf("%d",&b[j]);printf("\n"); for(j=0;j<6;j++) {if(a[i]==b[j])break; if(j>=6){t++;c[t]=a[i];} } for(i=0;i<=t;i++) printf("c=%d",c[i]); }
18、已知a是3×4的整型二维数组,编程求数组a中所有外围元素之和。
#include "stdio.h" void main() {int i,j,sum=0,a[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]);