C语言源代码(二维数组对角线置0,求其余元素之和)

合集下载

c语言二维数组初始化的三种方式

c语言二维数组初始化的三种方式

c语言二维数组初始化的三种方式
C语言中,二维数组是由多个一维数组组成的。

我们可以通过以下三种方式来初始化二维数组:
1. 手动赋值:通过逐个给数组元素赋值的方式来初始化数组。

例如:
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
2. 嵌套循环:通过嵌套循环的方式来依次给数组元素赋值。

例如:
int b[2][3];
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
b[i][j] = i+j;
}
}
3. 部分赋值:可以只给部分数组元素初始化,没有赋值的元素自动被初始化为0。

例如:
int c[2][3] = {[0][0]=1, [0][2]=3, [1][1]=5};
以上三种方式都可以用来初始化二维数组,具体选择哪一种方式取决于情况和个人偏好。

C语言程序设计题

C语言程序设计题
{k--;
if((k%13= =0) | | (k%17= =0))
{a=a+k;b++;}
}
Return a;
}
【第3题】题目:产生15个[20,80]上的随机整数:用顺序法(比较法)按从小到大排序输出。
void fun(int a[], int n)
{ int I,j,t;
for(i=0;i<n-1;i++)
int fun(int w)
{
int k,s=0;
do
{s=s+(w%10)*(w%10);
w=w/10;
}while(w!=0);
if(s%5= =0)k=1;
else k=0;
return(k);
}
【第8题】题目:编写函数fun其功能是:求给定正整数n以内的素数之积。(n<28)
long fun(int n)
if(average>a[i]) k++;
return(k);
}
【第13题】题目:用函数将第2个字符串连接到第1个字符串之后,不允许使用strcat函数。
void len_cat(char cl[],char c2[])
{
int i,j;
for(i=0;c1[i]!=’\0’;i++);
for(i=0;c2[i]!=’\0’;i++)
2 3 5 4 9 7 3 1
3 8 10 2 3 8 10 2
9 7 3 1 2 3 5 4
void fun(int pp[3][4])
{int t,n;
for(n=0;n<4;n++)

C语言二维数组的初始化

C语言二维数组的初始化

C语言二维数组的初始化
一、对二维数组进行初始化时应该注意以下四项:
1:所赋初值个数与数组元素的个数相同:可以在定义二维数组的同时给二维数组的各元素赋初值。

2:每行所赋初值个数与数组元素的个数可以不同:当某行一对花括号内的初值个数少于该行中元素的个数时,系统将自动给后面各行的元素补初值0。

3:所赋初值行数少于数组行数:当代表着给每行赋初值的花括号数少于数组的行数时,系统自动给后面各行的元素补0。

4:赋初值时省略的花括号对:在给二维数组赋初值时可以不用行花括号对。

例如:int a[3][4]={1,2,3,4}; 在编译时,系统将按a数组元素在内存中排列的顺序将花括号内的数据一一对应地赋给各个元素,若数据不足,系统将给后面的元素自动赋初值0。

二、通过赋初值定义二维数组的大小
对于二维数组通过所赋初值的个数来确定数组的大小。

在这种情况下,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式。

例如:int a[][3]={1,2,3,4,5}; 当用这种形式赋初值时,第一维的大小按以下规则决定:1:当初值的大小能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;2:当初值的个数不能被第二维的常量表达式的值除尽时,则第一维的大小等于所得的商数
+1。

因此,以上数组第一维的大小应该是2.。

C语言编程练习之数组

C语言编程练习之数组

1.输出整数各位数字本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。

输入格式:输入在一行中给出一个长整型范围内的非负整数。

输出格式:从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。

输入样例:123456输出样例:1 2 3 4 5 6(1)编程思路。

将一个非负整数number各位上的数字依次分离出来,其操作步骤为:1)分离出number的个位数,即number%10。

2)将number除以10,作为新的number,即新的number丢掉了个位数。

3)如果number等于0,分离完毕,结束。

否则,转第1)步,继续显示。

例如,number=1234,number%10=4,number=1234/10=123,得到数字4;number%10=3,number=123/10=12,得到数字3;number%10=2,number=12/10=1,得到数字2;number%10=1,number=1/10=0,得到数字1;结束。

将分离的各位数字依次存储到数组a中,然后逆序输出数组a中保存的各元素值即可。

(2)源程序。

#include <stdio.h>int main(){long long n;scanf("%lld",&n);int a[20]={0},cnt=0;while (n!=0){a[cnt++]=n%10;n=n/10;}if (cnt==0)printf("0 \n");else{for (int i=cnt-1;i>=0;i--)printf("%d ",a[i]);printf("\n");}return 0;}2.冒泡法排序将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。

C语言练习3(数组)=参考解答

C语言练习3(数组)=参考解答

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

二维数组元素的计算公式

二维数组元素的计算公式

二维数组元素的计算公式二维数组元素的计算公式1. 平均值计算二维数组中所有元素的平均值的公式为:平均值= (∑数组元素) / (数组元素个数)例如,对于以下二维数组:[[1, 2, 3],[4, 5, 6],[7, 8, 9]]计算平均值的步骤如下: 1. 累加所有数组元素:1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45 2. 计算数组元素个数:3 * 3 = 9 3. 计算平均值:45 / 9 = 52. 最大值找出二维数组中所有元素的最大值的公式为:最大值 = max(数组元素)例如,对于以下二维数组:[[11, 22, 33],[44, 55, 66],[77, 88, 99]]最大值的计算步骤如下: 1. 找出所有数组元素中的最大值:99 3. 最小值找出二维数组中所有元素的最小值的公式为:最小值 = min(数组元素)例如,对于以下二维数组:[[9, 8, 7],[6, 5, 4],[3, 2, 1]]最小值的计算步骤如下: 1. 找出所有数组元素中的最小值:1 4. 和计算二维数组中所有元素的和的公式为:和= ∑数组元素例如,对于以下二维数组:[[1, 1, 1],[2, 2, 2],[3, 3, 3]]计算和的步骤如下: 1. 累加所有数组元素:1 + 1 + 1 + 2 + 2 + 2 + 3 + 3 + 3 = 185. 方差计算二维数组中所有元素的方差的公式为:方差= (∑(数组元素-平均值)²) / (数组元素个数)例如,对于以下二维数组:[[1, 2, 3],[4, 5, 6],[7, 8, 9]]计算方差的步骤如下: 1. 计算平均值(参考平均值公式) 2.对每个数组元素,计算其与平均值的差的平方,并累加所有结果:(1-5)² + (2-5)² + … + (9-5)² = 20 3. 计算数组元素个数:3 * 3 =9 4. 计算方差:20 / 9 ≈以上是针对二维数组元素的几个常见计算公式及其解释。

c语言等差数列求和程序

c语言等差数列求和程序

c语言等差数列求和程序如何用C语言编写一个求等差数列和的程序在C语言编程中,求解等差数列的和是一个常见的问题。

等差数列可以定义为一个数列中每个元素与它前一个元素之差相等的数列。

求解等差数列的和可以帮助我们快速计算一系列数的总和。

在这篇文章中,我将以一个示例程序为基础,一步一步地介绍如何使用C语言编写一个求等差数列和的程序。

首先,我们需要明确具体的需求。

假设我们想要计算一个等差数列的和,其中首项为a,公差为d,共有n项。

我们的目标是编写一个程序,输入a、d和n,然后输出等差数列的和。

接下来,我们需要创建一个新的C文件,并在文件的开头包含标准输入输出库。

c#include <stdio.h>然后,我们需要定义一个函数来计算等差数列的和。

我们可以使用一个循环来遍历等差数列的每一项,并将其累加到一个变量中。

cint calculateSum(int a, int d, int n) {int sum = 0;for (int i = 0; i < n; i++) {sum += a + i * d;}return sum;}在上述函数中,我们使用一个变量sum来保存等差数列的和,并初始化为0。

然后,我们使用一个循环,从0到n-1遍历等差数列的每一项。

在循环的每一次迭代中,我们通过a + i * d来计算当前项的值,并将其累加到sum中。

最后,函数返回sum作为结果。

接下来,我们需要在主函数中调用calculateSum函数。

我们可以通过用户输入来获取等差数列的参数,并将其传递给calculateSum函数。

cint main() {int a, d, n;printf("请输入等差数列的首项:");scanf("d", &a);printf("请输入等差数列的公差:");scanf("d", &d);printf("请输入等差数列的项数:");scanf("d", &n);int sum = calculateSum(a, d, n);printf("等差数列的和为:d\n", sum);return 0;}在上述代码中,我们使用printf函数提示用户输入等差数列的首项、公差和项数,并使用scanf函数将用户输入的值保存到相应的变量中。

东北石油大学C实验教案2017年度第3学期

东北石油大学C实验教案2017年度第3学期

$ $$$ $$$$$ $$$$$$$ $$$$$$$$$
$$$$$ $$$$ $$$ $$ $
$$$$$ $$$$$ $$$$$ $$$$$ $$$$$
实 验 项 目
5. 按如下格式打印直角九九乘法表 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
1. 图形输出的分析步骤为什么? 2. 在使用循环的过程中应注意哪些问题?
思 考 题
一、实验目的 二、实验项目(3、4 题) 三、实验内容(程序)
实 验 报 告 要 求
四、实验结果(运行结果)
实验名称
一维数组
实验次数
第 6 次
是否上交报告

备注
实验内容(教学过程) 实 验 目 的
1.掌握一维数组定义、初始化和元素引用的方法。 2.掌握一维数组的输入、输出方法。 3.掌握一维数组存储和移动的方法。 4.掌握一维数组的常用算法。 1.有一数组内放 5 个整数,要求找出第一次出现的最小数和它的下标,然后 把它和数组中最前面的元素即第一个数对换位置。 2.找出含有 10 个元素一维组数中的最大值和最小值,并互换这两个数的位 置。 3.从键盘上输入若干(<20)个学生的成绩,统计计算出平均成绩,并输出 低于平均分的学生成绩,用输入负数结束输入。 4.用数组存储并输出 Fibonacci 数列的前 20 项,按 5 个一行输出 5.一个数列的前三个数是 0、0、1,以后的每个数都是前三个数的和,编程 求改数列的前 20 项,并按每行 4 个数的格式输出。 6.对 n 个整数组成的一维数组按逆序重新存储并输出(n<10) 。 7.一个数组有 8 个元素,将前 3 个元素通过移动串到后 3 个位置上,如果其 初始数据为: 1 2 3 4 5 6 7 8 不增加数组,也不增加数组的存储单元,通 过移动数组元素将数组变化为: 4 5 6 7 8 1 2 3 8.在一维数组中有 10 个整数,求出其中能被 5 整除的所有数的和。 9.将 10 个数中的所有偶数除以 2,所有奇数乘以 2 后输出这些数值。 10.在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序 排列,已知升序数组{1, 2, 4, 6, 8, 9, 12, 15, 149, 156 }。 11.从键盘上输入 10 元素的值存入一维数组 m 中,然后将下标为(0. 2. 4. 6. 8)的元素值赋值给数组 n,最后输出数组 n 的内容。 12.输入 10 个正整数到 a 数组中,求 a 数组中素数的平均值。 13.输入 10 个无序的整数,用选择法对 10 个整数按升序排序,注意要求只 排 3 轮。 14.对 n 个整数组成的一维数组用顺序法按从小到大排序后输出(4<n<10) , 要求排序只排 3 轮。 1. 使用一维数组时应注意哪些问题? 2. 怎样使随机函数每次运行产生不同组的测试数据? 3. 选择法排序的算法是怎样描述的?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档