c语言 二维数组 做返回值
- 格式:docx
- 大小:3.92 KB
- 文档页数:4
计算机⼆级考试C语⾔例题(1)第⼀套给定程序的功能是:求⼆分之⼀的圆⾯积,函数通过形参得到圆的半径,函数返回⼆分之⼀的圆⾯积(注:圆⾯积公式为:2,在程序中定义的变量名要与公式的变量相同)。
例如,输⼊圆的半径值:19.527,输出为:s=598.949991。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在横线上填⼊所编写的若⼲表达式或语句。
试题程序:#includedouble fun( double r){return 3.14159*【1】/2.0;}void main(){double x;printf("Enter x: ");scanf("%lf",【2】);printf("s=%lf\n",fun(【3】));}【参考答案】 (1)r*r (2)&x (3)x【考点分析】本题考查:圆⾯积计算公式*r*r;scanf( )函数的形式,其⼀般形式为"scanf("格式控制字符串",地址表列);",注意地址是由地址运算符"&"后跟变量名组成的;printf( )函数的形式,其⼀般形式为"printf("格式控制字符串",输出表列);";函数实参调⽤,函数作为另⼀个函数调⽤的实际参数出现。
【解题思路】填空1:计算圆的⾯积,公式为:*r。
填空2:scanf( )函数⼀般形式为scanf(格式控制,地址表列),因此填⼊&x。
填空3:函数的实际参数是圆的半径x。
下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。
例如,当n为5时,函数值应为10.407143。
f(x)函数定义如下:f(x)=请改正程序中的错误,使它能得出正确的结果。
自信考试 诚信做人哈尔滨工业大学(威海)2011/2012学年春季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 综合 (30%) 总分分数1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。
一、单项选择题。
请把答案填入下面框中,不允许出框线。
(本题16分,每小题1分)题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1.有以下定义:int a; long b; double x,y;则下列正确的是( )。
A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x2. 以下C 语言标识符中,不合法的是( )。
A) _2 B) a_b C) a--b D) AaBc3. C 语言允许函数类型默认定义,此时该函数值隐含的类型是( )。
A) float B) int C) long D) double4. 若有定义 int (*p)[3];则下列说法正确的是( )。
A) 定义了基类型为int 的三个指针变量B) 定义了一个名为 *pt 、具有三个元素的整型数值C) 定义了一个名为pt 的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int 的具有三个元素的整型数组号学名姓注意行为规范 遵守考试纪律自信考试诚信做人5.有以下程序#include <stdio.h>main(){int a=1,b=0;if(!a)b++;else if(a==0)if(a) b+=2;else b+=3;printf("%d\n",b);}则程序输出( )。
A) 0 B) 1 C) 2 D) 36.有以下程序段#include <stdio.h>main(){int x=10;while(x--);printf("x=%d\n",x);}则最后的输出结果是:( )。
全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。
A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。
答案选择B选项。
[单选题]4.下面不属于需求分析阶段任务的是()。
A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。
制定软件集成测试计划属于概要设计阶段的任务。
答案选择D选项。
[单选题]5.结构化程序的三种基本控制结构是()。
A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。
答案选择A选项。
[单选题]6.构成计算机软件的是()。
A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
答案选择D选项。
[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。
1. 计算并输出下列级数和:1 1 1S = ── + ── + … + ───1×2 2×3 n(n+1)例如: 当n = 15时, 函数值为: 0.9375002. 已知一个数列的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。
计算并输出该数列前n项的平方根之和sum。
n的值通过键盘输入。
例如, 当n=10时, 程序的输出结果应为: 23.197745。
3. 定义了N×N的二维数组, 输入该数组的值。
编写程序使数组上半三角元素中的值全部置成0。
例如:a数组中的值为| 1 9 7 | | 0 0 0 |a = | 2 3 8 | 则返回主程序后a数组中的值应为| 2 0 0 || 4 5 6 | | 4 5 0 |4. 编写程序把a数组中的n个数和b数组中逆序的n个数一一对应相加,结果存在c数组中。
例如: 当a数组中的值是: 1、3、5、7、8, b数组中的值是: 2、3、4、5、8, c数组中存放的数据是9、8、9、10、105.给定程序的功能是将十进制正整数m转换成k进制(2≤k≤9)数的数字输出。
例如, 若输入8和2, 则应输出1000(即十进制数8转换成二进制表示是1000)。
6.读入一个长度小于63个字符的英文句子,将其中每个单词的最后一个字母改成大写,然后输出此句子(这里的“单词”是指由空格隔开的字符串)。
例如, 若输入"I am a student to take the examination.",则应输出"I aM A studenT tO takE thE examination."。
7.定义了N×N的二维数组, 并在主函数中自动赋值。
编写程序使数组中第一行元素中的值与倒数第一行元素中的值对调、第二行元素中的值与倒数第二行元素中的值对调、……、其他依次类推。
例如: a数组中的值为|0 11 12 7 9||1 9 7 4 5|a = |20 13 18 3 1||14 5 6 8 2||15 9 17 4 1||15 9 17 4 1||14 5 6 8 2|则返回主程序后a数组中的值应为|20 13 18 3 1||1 9 7 4 5||0 11 12 7 9|8.将未在字符串s中出现、而在字符串t中出现的字符, 形成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,但去掉重复字符。
桂林电子科技大学非计算专业学生计算机水平考试(C语言)A卷答案第一卷出卷人:大学生创新创业综合实践基地软件部策划:大学生创新创业综合实践基地软件部科技发展部1、( )是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程正确答案:A概念题目需要记下!2、以下说法中正确的是( )。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分正确答案:C[解析]C程序是由函数构成的。
一个C源程序至少包含一个MAIN函数,也可以包含一个MAIN函数和若干个其他函数,因此,函数是C程序的基本单位。
3、下列四组字符串中都可以用作C语言程序中的标识符的是( )。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age正确答案:A4、C语言中的简单数据类型包括( )。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型正确答案:D5、C语言中,关系表达式和逻辑表达式的值是( ) 。
A、0B、0或1C、1D、'T'或'F'正确答案:B6、下面( )表达式的值为4.A、 11/3B、 11.0/3C、 (float)11/3D、 (int)(11.0/3+0.5)正确答案:D解析:选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3。
选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666。
一、介绍在C语言中,函数调用是程序设计中十分重要的一个环节。
而对于二维数组和指针的运用也有着相当大的作用。
本文将围绕C语言中函数调用二维数组和指针的相关知识展开讨论,希望能够为读者们提供一些帮助。
二、C语言中的二维数组1. 定义二维数组在C语言中,二维数组可以看做是一个数组的数组,其定义方式为:```cint arr[3][4];```这里定义了一个3行4列的二维数组。
可以通过arr[i][j]的方式访问其中的元素。
2. 二维数组作为函数参数当我们需要将二维数组作为参数传递给函数时,可以使用以下方式:```cvoid func(int arr[][4], int row, int col){// 代码实现}```在函数参数中使用arr[][4]的方式,其中的4表示列数,而行数则需在函数内通过额外的参数传递。
三、C语言中的指针1. 指针的基本概念在C语言中,指针是一种保存变量位置区域的变量,其定义方式为:```cint *ptr;```ptr保存了一个整型变量的位置区域。
2. 指针和数组的关系指针和数组在C语言中有着密切的通联,实际上数组名就是一个指向数组第一个元素的指针。
```cint arr[5];int *ptr = arr;```在上面的代码中,ptr指向了arr数组的第一个元素。
3. 指针作为函数参数指针作为函数参数可以实现对变量的引用传递,从而在函数内部改变变量的值。
例如:```cvoid changeValue(int *ptr){*ptr = 10;}int num = 5;changeValue(num);```通过将指针作为函数参数传递,可以在函数内部改变num的值。
四、函数调用中的二维数组和指针1. 函数中操作二维数组在函数中操作二维数组需要传递数组的行数和列数作为参数,以便在函数内正确地处理数组元素,并且可以通过指针来操作数组元素:```cvoid operateArray(int arr[][4], int row, int col){for(int i=0; i<row; i++){for(int j=0; j<col; j++){printf("d ", arr[i][j]);}}}```在函数中通过arr[i][j]的方式访问二维数组元素。
c语言函数调用二维数组C语言中,函数调用二维数组的方法有以下几种:1. 将二维数组作为函数参数传递:在函数定义时,将二维数组作为参数传递给函数,函数内部可以直接对数组进行操作。
例如:void change_array(int arr[][3], int row){//对二维数组进行操作}int main(){int arr[2][3] = {{1,2,3},{4,5,6}};change_array(arr, 2);return 0;}2. 将二维数组作为函数返回值:在函数内部定义一个二维数组,并将其返回,调用函数时可以将返回值赋值给一个二维数组。
例如: int** get_array(int row, int col){int** arr = (int**)malloc(sizeof(int*)*row);for(int i=0; i<row; i++){arr[i] = (int*)malloc(sizeof(int)*col);for(int j=0; j<col; j++){//对二维数组进行赋值}}return arr;}int main(){int** arr;arr = get_array(2, 3);//对返回的二维数组进行操作return 0;}3. 将二维数组作为全局变量:在函数外部定义一个二维数组,并将其声明为全局变量,在函数内部可以直接对数组进行操作。
例如: int arr[2][3];void change_array(){//对全局二维数组进行操作}int main(){//对全局二维数组进行初始化或操作change_array();return 0;}总结:函数调用二维数组需要注意二维数组的行、列数和数组元素类型,可以选择将二维数组作为函数参数传递、作为函数返回值或声明为全局变量。
二级C语言笔试379(总分100, 做题时间90分钟)一、选择题1.语句“printf("a\bhow\'are\'y\\\bou\n");”的输出结果是( )。
SSS_SINGLE_SELA a\bhow\'are\'y\\bouB a\bhow\'are\'y\bouC how'are'youD ahow'are'y\bou分值: 2答案:C[解析] “\b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“\b'’ 格式符前面的字母不能输出;“\'”格式符表示输出单引号字符;“\\”格式符表示输出反斜线字符。
2.下列程序中c的二进制值是( )。
char a=2,b=4,C;c=a^b>>2;SSS_SINGLE_SELA 00000011B 00010100C 00011100D 00011000分值: 2答案:A[解析] 本题主要考查按位异或和右移运算。
b=4的二进制为00000100,b>>2后为00000001,a=2的二进制为00000010,两者异或为00000011。
3.下列描述中正确的是( )。
SSS_SINGLE_SELA 软件工程只是解决软件项目的管理问题B 软件工程主要解决软件产品的生产率问题C 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D 软件工程只是解决软件开发过程中的技术问题分值: 2答案:C[解析] 软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。
4.两次运行下列的程序,如果从键盘上分别输入3和1,则输出结果是( )。
main(){ int x;scanf("%d",&x);if(x++>2) printf("%d",x);else printf("%d\n",x--);}SSS_SINGLE_SELA 4和2B 4和1C 4和0D 3和1分值: 2答案:A[解析] 本题考查if else语句。
C语⾔⼆维数组作为函数的参数 前⾔:今天在实现装配线调度程序时候,⽤到了⼆维数组,并将其作为函数的参数。
在写程序的时候,遇到⼀些问题,即⼆维数组做函数的参数应该如何正确表⽰。
我写程序的错误如下程序所⽰:1 #include <cstdio>2 void print(int *a[3])3 {4 printf("%d\n",a[0][0]);5 }67 int main()8 {9 int a[2][3] = {1,2,3,4,5,6};10 print(a);11 return 0;12 }编译程序时候,在第10⾏提⽰错误信息:|10|error: cannot convert 'int (*)[3]' to 'int**' for argument '1' to 'void print(int**)'|。
根据错误提⽰我明⽩了, int *a[3]表⽰⼀个⼀维数组,数组的数据类型为整型指针(int*),数组的⼤⼩为3,这是因为[]的优先级⾼于*的优先级。
如是我将程序改写如下,顺利通过编译,得到正确结果。
1 #include <cstdio>2 void print(int (*a)[3]) //⽤括号将指针括起来3 {4 printf("%d\n",a[0][0]);5 }67 int main()8 {9 int a[2][3] = {1,2,3,4,5,6};10 print(a);11 return 0;12 }下⾯来总结⼀下⼆维数组作为函数参数该如何表⽰。
1、⼆维数组的概念 在C语⾔中,⼆维数组实际上是⼀种特殊的⼀维数组,它的每个元素也是⼀个⼀维数组。
因此,⼆维数组下标形式正确写法如下:int arrays[i][j]。
数组元素是按照⾏顺序存储的,因此当按存储顺序访问树时,最右边的数组下标(列)变化的最快。
C 语言程序设计 笔试试题题号 一 二 三 四 五 六 笔试(70%)综合 (30%)总分分数试卷说明:1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。
一、单项选择题。
将正确答案填入下面框中。
(本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1. 有以下程序 main() {int a=1,b=0; if(!a) b++;else if(a==0) if(a) b+=2; else b+=3;printf(“%d\n ”,b); }则程序输出( A )。
A) 0B) 1C) 2D) 32. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。
A) a%(int)(x-y) B) a=x!=yC) (a*y)%b D) y=x+y=x3. 若有定义 int (*p)[3];则下列说法正确的是( C )。
号学名姓注意行为规范 遵守考试纪律A) 定义了基类型为int的三个指针变量B) 定义了一个名为*pt、具有三个元素的整型数值C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具有三个元素的整型数组4. 有以下程序段main(){ int x=10;while(x--);printf("x=%d\n",x);}则最后的输出结果是:( B)。
A) x=0 B) x= -1 C) x=1 D)while构成无限循环5. 有以下程序:int fun(){static int x=1;x *= 2;return x;}main( ){ int i,s=1 ;for(i=1 ;i<=2 ;i++) s=fun() ;printf(“%d\n ”,s) ;}执行后的输出结果为( D)。
c语言二维数组做返回值
二维数组在C语言中是一种重要的数据结构,它可以用来存储和处理二维的数据集合。
本文将围绕二维数组展开,介绍其定义、初始化、访问和常见应用等方面的内容。
一、定义和初始化二维数组
二维数组可以理解为由多个一维数组组成的数组。
在C语言中,可以使用以下语法来定义一个二维数组:
```c
data_type array_name[row_size][column_size];
```
其中,data_type表示数组元素的数据类型,array_name为数组的名称,row_size表示数组的行数,column_size表示数组的列数。
例如,定义一个3行4列的整型二维数组可以如下所示:
```c
int matrix[3][4];
```
对于二维数组的初始化,可以采用以下两种方式:
1. 逐个元素初始化:按照行优先的顺序,将每个元素的值逐个赋给数组。
```c
int matrix[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
```
2. 按行初始化:直接将每行的值赋给二维数组。
```c
int matrix[3][4] = {
1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12
};
```
二、访问二维数组元素
通过使用下标运算符[],可以访问二维数组中的元素。
下标的取值范围是从0到row_size-1和0到column_size-1。
例如,要访问二维数组matrix的第2行第3列的元素,可以使用以下代码:
```c
matrix[1][2] = 7;
```
这将把7赋值给matrix的第2行第3列的元素。
三、常见应用场景
1. 矩阵运算:二维数组常用于表示和处理矩阵。
例如,可以使用二维数组进行矩阵的相加、相乘等运算。
2. 图像处理:图像可以看作是由像素点组成的二维数组。
通过操作二维数组中的像素值,可以实现图像的旋转、缩放、滤波等处理。
3. 单词查找:可以使用二维数组来存储一个文本文档中的单词,通过遍历二维数组来查找指定的单词。
4. 迷宫求解:二维数组可以表示迷宫的结构,通过遍历二维数组中的元素,可以求解迷宫的最短路径或者判断是否存在一条路径。
四、注意事项
1. 二维数组的行数和列数在定义时需要确定,并且不能动态改变。
2. 二维数组的下标从0开始,越界访问会导致程序出错。
3. 二维数组在内存中的存储是连续的,可以通过指针操作来遍历和
访问数组元素。
总结:
本文介绍了C语言中二维数组的定义、初始化、访问和常见应用等方面的内容。
二维数组在处理二维数据集合时非常有用,能够简化程序的设计和实现。
在实际应用中,我们可以根据具体的需求灵活运用二维数组,发挥其强大的功能。
通过学习和掌握二维数组的使用,可以提高程序的效率和可读性,为解决实际问题提供更加便捷的方法。