数组习题及参考答案

数组习题及参考答案
数组习题及参考答案

第七章数组

一、单项选择题

1.若有说明“int a[3][4]={0};”,则下面正确的是_____。

A.只有元素a[0][0]可得到初值0

B. 此说明语句不正确

C. 数组a各元素都可得到初值,但其值不一定是0

D. 数组a中每个元素均可得到初值0

2.以下不能正确定义二维数组的选项是_____。

A. int a[2][2]={{1},{2}}

B. int a[2][2]={{1},2,3}

C. int a[2][]={{1,2},{3,4}}

D. int a[][2]={1,2,3,4}

3.在下列对字符数组进行初始化中正确的是_____。

A.char s1[]=”abcd”

B.char s2[3]=”xyz”

C.char s3[][]={…a?,?x?,?y?}

D.char s4[2][3]={“xyz”,”mnp”}

二、写出下列程序的运行结果

有以下程序:

1. #include

int main ()

{

int a[]={4,0,2,3,1},i,j,t;

for(i=1;i<5;i++)

{

t=a[i];j=i-1;

while(j>=0&&t>a[j])

{

a[j+1]=a[j];

a[j]=t;

j--;

}

}

for(i=0;i<5;i++)

{

cout<

}

return 0;

}

三、编程题

1. 任意输入15个正整数,将这15个数排成一圈,编程找出其中的连续4个数,使得它们的和最大(不小于任意其他连续4个数的和)。

2. 设有4行4列队数组b,其元素为b[i][j]=i+j+1(i,j=0,1,2,3)。编程实现:

(1)求第二列元素之和。

(2)求第三列元素的平均值。

(3)求数组b中的最大数,最小数及主对角线元素的平方和。

第七章数组一、单项选择题

二、写出下列程序的运行结果

1. 4 3 2 1

三、编程题

1.

#include

void main()

{

const int n=15;

int i,a[n];

cout<<"Input"<

for(i=0;i

cin>>a[i];

int max4=0,s4,start,t1,t2,t3,t4;

for(i=0;i

{

t1=i%n;

t2=(i+1)%n;

t3=(i+2)%n;

t4=(i+3)%n;

s4=a[t1]+a[t2]+a[t3]+a[t4];

if(s4>max4)

{

max4=s4;

start=i;

}

}

t1=start;

t2=(start+1)%n;

t3=(start+2)%n;

t4=(start+3)%n;

cout<<"max4="<

}

输出结果:

Input 15 positive integers:

88 99 1 2 3 4 5 6 7 8 9 10 55 66 1

max4=66+1+88+99 最大,这四个数的下标为13,14,0,1

2.

#include

void main()

{

int b[4][4],i,j;

/*为数组b各元素赋值*/

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

{

b[i][j]=i+j+1;

cout<<" "<

}

cout<

}

cout<<"--The result--"<

//求第二行元素之和

int sum_line2=0;

for(j=0;j<4;j++)

sum_line2+=b[1][j];

cout<<"sum_line2="<

//求第三行元素之平均值

int sum_col3=0;

for(i=0;i<4;i++)

sum_col3+=b[i][2];

cout<<"ave_col3="<

//求最大数,最小数及主对角线元素之平方和

int max_elem=b[0][0],min_elem=b[0][0],sum_diag=0;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

{

if(b[i][j]>max_elem)max_elem=b[i][j];

if(b[i][j]

if(i==j)sum_diag+=b[i][j]*b[i][j];

}

}

cout<<"max_elem="<

cout<<"min_elem="<

cout<<"sum_diag="<

}

输出结果:

1 2 3 4

2 3 4 5

3 4 5 6

4 5 6 7

--the result—

sum_line2=14

ave_col3=4.5

max_elem=7

min_elem=1

sum_diag=84

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是() 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB #include "stdio.h" main() { char str[]="SSSWLIA",c; int k; for(k=2;(c=str[k]!='\0');k++) { switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue; } putchar('*'); } } A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0;

测量计算题库及参考答案

计算题库及参考答案 1、设A 点高程为15.023m ,欲测设设计高程为16.000m 的B 点,水准仪安置在A 、B 两点之间,读得A 尺读数a=2.340m ,B 尺读数b 为多少时,才能使尺底高程为B 点高程。 【解】水准仪的仪器高为=i H 15.023+2.23=17.363m ,则B 尺的后视读数应为 b=17.363-16=1.363m ,此时,B 尺零点的高程为16m 。 2、在1∶2000地形图上,量得一段距离d =23.2cm ,其测量中误差=d m ±0.1cm ,求该段距离的实地长度 D 及中误差D m 。 【解】==dM D 23.2×2000=464m ,==d D Mm m 2000×0.1=200cm=2m 。 3、已知图中AB 的坐标方位角,观测了图中四个水平角,试计算边长B →1,1→2,2→3, 3→4的坐标方位角。 【解】=1B α197°15′27″+90°29′25″-180°=107°44′52″ =12α107°44′52″+106°16′32″-180°=34°01′24″ =23α34°01′24″+270°52′48″-180°=124°54′12″ =34α124°54′12″+299°35′46″ -180°=244°29′58″ 4、在同一观测条件下,对某水平角观测了五测回,观测值分别为:39°40′30″,39°40′48″,39°40′54″,39°40′42″,39°40′36″,试计算: ① 该角的算术平均值——39°40′42″; ② 一测回水平角观测中误差——±9.487″; ③ 五测回算术平均值的中误差——±4.243″。 5、在一个直角三角形中,独立丈量了两条直角边a ,b ,其中误差均为m ,试推导由a ,b 边计算所得斜边c 的中误差c m 的公式? 【解】斜边c 的计算公式为22b a c += ,全微分得 db c b da c a bdb b a ada b a d c +=+++=--2)(212)(21212 22122 应用误差传播定律得2 22 222222222m m c b a m c b m c a m c =+=+= 6、已知=AB α89°12′01″,=B x 3065.347m ,=B y 2135.265m ,坐标推算路线为B →1→2,测得坐标推算路线的右角分别为=B β32°30′12″,=1β261°06′16″,水平距离分别为=1B D 123.704m ,=12D 98.506m ,试计算1,2点的平面坐标。 【解】 1) 推算坐标方位角 =1B α89°12′01″-32°30′12″+180°=236°41′49″ =12α236°41′49″-261°06′16″+180°=155°35′33″ 2) 计算坐标增量 =?1B x 123.704×cos236°41′49″=-67.922m , =?1B y 123.704×sin236°41′49″=-103.389m 。 =?12x 98.506×cos155°35′33″=-89.702m , =?12y 98.506×sin155°35′33″=40.705m 。 3) 计算1,2点的平面坐标 图 推算支导线的坐标方位角

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,",( )); } 则在程序中的两个园括号中分别应填入:C A) &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) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;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) 120 5. 以下定义语句中,错误的是( 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] B) a[1] C) a[9] D) a[10] 9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )? A) a[8] 的值为0 B) a[1] 的值为1 C) a[3] 的值为4 D) a[9] 的值为0 10. 指出以下错误语句( A ).

第4章 串与数组 习题参考答案

习题四参考答案 一、选择题 1.下面关于串的叙述中,哪一个是不正确的?(B ) A.串是字符的有限序列 B.空串是由空格构成的串 C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储 2.串的长度是指( A ) A. 串中包含的字符个数 B. 串中包含的不同字符个数 C. 串中除空格以外的字符个数 D. 串中包含的不同字母个数 3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( C )A.求子串B.联接C.模式匹配D.求串长 4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( C )。 A. O(m) B. O(n) C. O(n + m) D. O(n×m) 5. 串也是一种线性表,只不过( A )。 A. 数据元素均为字符 B. 数据元素是子串 C. 数据元素数据类型不受限制 D. 表长受到限制 6.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主进行存储,a11为第一元素, 其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。 A. 13 B. 33 C. 18 D. 40 7. 有一个二维数组A[1..6, 0..7] ,每个数组元素用相邻的6个字节存储,存储器按字节编址, 那么这个数组占用的存储空间大小是(D )个字节。 A. 48 B. 96 C. 252 D. 288 8.设有数组A[1..8,1..10],数组的每个元素占3字节,数组从内存首地址BA开始以列序 为主序顺序存放,则数组元素 A[5,8]的存储首地址为( B )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225 9. 稀疏矩阵的三元组存储表示方法( B ) A. 实现转置操作很简单,只需将每个三元组中行下标和列下标交换即可 B. 矩阵的非零元素个数和位置在操作过程中变化不大时较有效 C. 是一种链式存储方法 D. 比十字链表更高效 10. 用十字链表表示一个稀疏矩阵,每个非零元素一般用一个含有( A )域的结点表示。 A.5 B.4 C. 3 D. 2 二、填空题 1. 一个串的任意连续字符组成的子序列称为串的子串,该串称为主串。2.串长度为0的串称为空串,只包含空格的串称为空格串。 3. 若两个串的长度相等且对应位置上的字符也相等,则称两个串相等。 4. 寻找子串在主串中的位置,称为模式匹配。其中,子串又称为模式串。 5. 模式串t="ababaab"的next[]数组值为-1001231,nextval[]数组值为-10-10-130。 6. 设数组A[1..5,1..6]的基地址为1000,每个元素占5个存储单元,若以行序为主序顺序 存储,则元素A[5,5]的存储地址为1140。

六年级数学简便计算练习题及答案.doc

一、基础知识。(5小题,共26分。) 1.读音节,找词语朋友。(10分) táo zuì nínɡ zhònɡ wǎn lián ēn cì ()()()() zī rùn kuí wú zhēn zhì miǎn lì ()()()() xuán yá qiào bì hú lún tūn zǎo ()() 2.读一读,加点字念什么,在正确的音节下面画“_”。(4分) 镌.刻(juān juàn)抚摩.(mó mē)扁.舟(biān piān)阻挠.(náo ráo)塑.料(suò sù)挫.折(cuō cuò)归宿.(sù xiǔ)瘦削.(xiāo xuē)3.请你为“肖”字加偏旁,组成新的字填写的空格内。(4分) 陡()的悬崖胜利的()息俊()的姑娘 ()好的铅笔弥漫的()烟畅()的商品 ()遥自在的生活元()佳节 4.按要求填空,你一定行的。(4分) “巷”字用音序查字法先查音序(),再查音节()。按部首查字法先查()部,再查()画。能组成词语()。 “漫”字在字典里的意思有:①水过满,向外流;②到处都是;③不受约束,随便。 (1)我漫.不经心地一脚把马鞍踢下楼去。字意是() (2)瞧,盆子里的水漫出来了。字意是() (3)剩下一个义项可以组词为() 5.成语大比拼。(4分) 风()同()()崖()壁()()无比 和()可()()扬顿()()高()重 ( )不()席张()李() 二、积累运用。(3小题,共20分。) 1.你能用到学过的成语填一填吗?(每空1分) 人们常用来比喻知音难觅或乐曲高妙,用来赞美达芬

(1)鲁迅先生说过:“,俯首甘为孺子牛。” (2),此花开尽更无花。 (3)必寡信。这句名言告诉我们。 (4)但存,留与。 (5)大漠沙如雪,。 3.按要求写句子。(每句2分) (1)闰土回家去了。我还深深地思念着闰土。(用合适的关联词组成一句话)(2)老人叫住了我,说:“是我打扰了你吗?”(改成间接引语) (3)这山中的一切,哪个不是我的朋友?(改为陈述句) (4)月亮升起来了。(扩句) (5)小鱼在水里游来游去。(改写成拟人句) 三、口语交际。(共3分。) 随着“嫦娥一号”卫星的发射成功,作为中华少年的我们,面对祖国的飞速发展的科技,你想到了什么?想说点什么呢? 四、阅读下面短文,回答问题。(10小题,共26分。) 1.课内阅读。(阅读文段,完成练习) 嘎羧来到石碑前,选了一块平坦的草地,一对象牙就像两支铁镐,在地上挖掘起来。它已经好几天没吃东西了,又经过长途跋涉,体力不济,挖一阵就 喘息一阵。嘎羧从早晨一直挖到下午,终于挖出了一个椭圆形的浅坑。它滑下

第4章 数组练习题答案

第4章数组练习题 一、选择题 1.在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式 2.要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3.对以下说明语句的正确理解是()。 int a[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)因为数组长度与初值的个数不相同,所以此语句不正确 4.已知:int a[10];则对a数组元素的正确引用是()。 A) a[10] B) a[3.5] C) a(5) D) a[10-10] 5.以下对一维整型数组a的正确说明是()。 A) int a(10); B)int n=10,a[n]; C) int n; D)#define SIZE 10; scanf("%",&n); int a[SIZE]; int a[n]; 6.要定义一个int型一维数组art,并使其各元素具有初值89,-23,0,0,0,不正确的定义 语句是()。 A) int art[5]={89,-23}; B) int art[ ]={89,-23}; C) int art[5]={89,-23,0,0,0}; D) int art[ ]={89,-23,0,0,0}; 7.在C语言中,二维数组元素在内存中的存放顺序是()。 A)按行存放 B)按列存放 C)由用户自己定义 D)由编译器决定 8.以下对二维数组a的正确说明是()。 A)int a[3][] B) float a(3,4) C) double a[1][4] D) float a(3)(4) 9.已知:int a[3][4];则对数组元素引用正确的是()。 A)a[2][4] B)a[1,3] C) a[2][0] D) a(2)(1) 10.已知:int a[3][4]={0};则下面正确的叙述是()。 A)只有元素a[0][0]可得到初值0 B)此说明语句是错误的 C)数组a中的每个元素都可得到初值,但其值不一定为0 D)数组a中的每个元素均可得到初值0 11.以下各组选项中,均能正确说明二维实型数组a的是()。 A) float a[3][4]; B) float a(3,4); float a[][4]; float a[3][4]; float a[3][]={{1},{0}}; float a[][]={{0},{0}}; C) f loat a[3][4]; D) float a[3][4]; float a[][4]={{0},{0}}; float a[3][]; float a[][4]={{0},{0},{0}}; float a[][4]; 12.已知:int a[][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是()。 A)2 B)3 C)4 D)无确定值 13.若二维数组a有m列,则在a[i][j]之前的元素个数为()。 A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 14.要使字符数组str存放一个字符串"ABCDEFGH",正确的定义语句是()。 A) char str[8]={'A','B','C','D','E','F','G','H'};

C语言数组作业编程题答案

1、请先用记事本创建文件original.txt,往其中写入一组已排好序的整型数,今输入一个整数,要求按原来排序的规律将它插入数中,仍写入文件。例如:原来整数依次为4、6、8、41、56、77、102(数据间的分隔符为空格)。若将42插入数中,则插入后整数依次为4、6、8、41、4 2、56、77、102。 答案: #include #include void main() { int a[100]; int ijnumber; int n; FILE *fp; fp=fopen("e:\\C语言\\original.txt""r"); if(fp==NULL) { printf("open error"); exit(0); }

i=0; while(!feof(fp)) { fscanf(fp"%d"&a[i++]); fgetc(fp); } number=i-1; //number中存最后一个数据的下标 fclose(fp); scanf("%d"&n); //以下的while循环用来找n要放的位置循环结束时正好是a[i]的位置i=0; while(n>a[i]) { i++; } //for循环的功能是将a[i]到最后一个元素全后移一个位置 for(j=number;j>=i;j--) a[j+1]=a[j]; //将n放入找到的位置

a[i]=n; number=number+1; //加入n后,元素个数增1,用来控制向文件中的写入次数 fp=fopen("e:\\C语言\\original.txt""w"); if(fp==NULL) { printf("open error"); exit(0); } //写入数据 for(i=0;i<=number-1;i++) fprintf(fp"%d "a[i]); fprintf(fp"%d"a[i]); //最后一个数据后没有空格 fclose(fp); } 2、假定整型数组中的元素值不重复。今输入一个整数,先查找,如数组中存在此元素,则删除,否则不做操作。例如:原来数组的元素依次为14、6、28、41、96、77、89、102。若将96删除,则删除后数组元素依次为14、6、28、41、77、89、102。 答案:

数组习题及参考答案

第七章数组 一、单项选择题 1.若有说明“int a[3][4]={0};”,则下面正确的是_____。 A.只有元素a[0][0]可得到初值0 B. 此说明语句不正确 C. 数组a各元素都可得到初值,但其值不一定是0 D. 数组a中每个元素均可得到初值0 2.以下不能正确定义二维数组的选项是_____。 A. int a[2][2]={{1},{2}} B. int a[2][2]={{1},2,3} C. int a[2][]={{1,2},{3,4}} D. int a[][2]={1,2,3,4} 3.在下列对字符数组进行初始化中正确的是_____。 A.char s1[]=”abcd” B.char s2[3]=”xyz” C.char s3[][]={…a?,?x?,?y?} D.char s4[2][3]={“xyz”,”mnp”} 二、写出下列程序的运行结果 有以下程序: 1. #include int main () {

int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) { t=a[i];j=i-1; while(j>=0&&t>a[j]) { a[j+1]=a[j]; a[j]=t; j--; } } for(i=0;i<5;i++) { cout<

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组a 的正确说明是。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【题3】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

数组典型例题及参考答案

第7章数组 7-1输入一个正整数n(1≤n≤10),再输入n个整数 (1)输出最大数和最小数,并输出平均值。 (2)将最小数与第一个数交换,最大数与最后一个数交换,然后输出交换后的结果。 (3)输出所有比平均值大的数。 (4)找到最接近平均值的数。(提示:考虑差的绝对值)

/* 将最小数与第一个数交换,最大数与最后一个数交换*/ t=a[0]; a[0]=a[q]; a[q]=t; t=a[N-1]; a[N-1]=a[p]; a[p]=t; printf("After exchange: "); for(i=0; iave) printf("%d ", a[i]); /* 找到最接近平均值的数*/ printf("\nThe number closest to the average is: "); sub = a[0]>ave? a[0]-ave: ave-a[0]; p=0; for(i=1; iave? a[i]-ave: ave-a[i]) < sub ) { sub = a[i]>ave? a[i]-ave: ave-a[i]; p=i; } } printf("%d.", a[p]); } Output Please input 10 integers: 17 34 -11 2 5 10 7 -9 0 25 /* input */ The maximum is: 34, the minimum is: -11, the average is 8.00 After exchange: -11 25 17 2 5 10 7 -9 0 34 Larger than the average: 25 17 10 34 The number closest to the average is: 7 7-2输入一个日期(按照year-month-day格式),计算该日期为当年的第几天。 (提示:注意闰年)

土木工程测量6_计算题库及参考答案

土木工程测量6_计算题库 及参考答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

计算题库及参考答案 1、设A 点高程为,欲测设设计高程为的B 点,水准仪安置在A 、B 两点之间,读得A 尺读数a=,B 尺读数b 为多少时,才能使尺底高程为B 点高程。 【解】水准仪的仪器高为=i H +=,则B 尺的后视读数应为 b==,此时,B 尺零点的高程为16m 。 2、在1∶2000地形图上,量得一段距离d =,其测量中误差=d m ±,求该段距离的实地长度D 及中误差D m 。 【解】==dM D ×2000=464m ,==d D Mm m 2000×=200cm=2m 。 3、已知图中AB 的坐标方位角,观测了图中四个水平角,试计算边长B →1,1→2,2→3,3→4的坐标方位角。 【解】=1B α197°15′27″+90°29′25″-180°=107°44′52″ =12α107°44′52″+106°16′32″-180°=34°01′24″ =23α34°01′24″+270°52′48″-180°=124°54′12″ =34α124°54′12″+299°35′46″-180°=244°29′58″ 4、在同一观测条件下,对某水平角观测了五测回,观测值分别为:39°40′30″,39°40′48″,39°40′54″,39°40′42″,39°40′36″,试计算: ① 该角的算术平均值——39°40′42″; ② 一测回水平角观测中误差——±″; ③ 五测回算术平均值的中误差——±″。 5、在一个直角三角形中,独立丈量了两条直角边a ,b ,其中误差均为m ,试推导由a ,b 边计算所得斜边c 的中误差c m 的公式 【解】斜边c 的计算公式为22b a c +=,全微分得 db c b da c a bdb b a ada b a d c +=+++=--2)(212)(2121 222 1 22 应用误差传播定律得2 22 222222222m m c b a m c b m c a m c =+=+= 6、已知=AB α89°12′01″,=B x ,=B y ,坐标推算路线为B →1→2,测得坐标推算路线的右角分别为=B β32°30′12″,=1β261°06′16″,水平距离分别为=1B D ,=12D ,试计算1,2点的平面坐标。 【解】 1) 推算坐标方位角 =1B α89°12′01″-32°30′12″+180°=236°41′49″ =12α236°41′49″-261°06′16″+180°=155°35′33″ 2) 计算坐标增量 =?1B x ×cos236°41′49″=, =?1B y ×sin236°41′49″=。 =?12x ×cos155°35′33″=, 图 推算支导线的坐标方位角

C语言数组典型例题分析与解答

数组练习解答 1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是________________ 【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。 【答案】方法一:float a[4]={0.0,0.0,0.0,0.0}; 方法二:float a[]={ 0.0,0.0,0.0,0.0}; 方法三:float a[4]= {0.0}; 方法四:static float [4]; 2 下列数组定义语句中,错误的是() ①char x[1]='a';②auto char x[1]={0}; ③static char x[l];④char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。 【答案】① 3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列 41 1 14 2 32 4 23 3 【答案】l、2、4、3 4 用"选择排序法"对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。 【分析】开始排序前的排列为:413 2 执行第1步后的排列为:143 2 执行第2步后的排列为:123 4 【答案】1、2、3、4 5 下列数组定义语句中,正确的是() ①int a[][]={1,2,3,4,5,6};②char a[2]「3]='a','b'; ③int a[][3]= {1,2,3,4,5,6};④static int a[][]={{1,2,3},{4,5,6}}; 【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以备选答案②也是错误的。显然备选答案③符合题意。【答案】③ 6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是() ①char s[]={‘1','2','3','\0 '};②char s「」={"123"}; ③char s[]={"123\n"};④char s[4]={'1','2','3'};

《C++数组》习题参考答案

《C++数组》习题 学号姓名 一、选择题 1、下列对字符数组进行初始化的语句正确的是 A A.char a[]= "Hello"; B.char a[][]= {'H','e','l','l','o'}; C.char a[5]="Hello"; D.char a[2][5]= {"Hello","World"}; 2、以下一维数组a的正确定义是 D A.int a(10) ; B.int n=10,a[n]; C.int n; D.#define size 10 cin>>n; int a[size]; int a[n]; 3、以下对二维数组a进行不正确初始化的是 C A.int a[2][3]={0}; B.int a[][3]={{1,2},{0}}; C.int a[2][3]={{1,2},{3,4},{5,6}}; D.int a[][3]={1,2,3,4,5,6); 4、执行以下程序后,s的值为 A int a[]={5,3,7,2,1,5,4,lO); int s=0,k; for(k=0;k<8;k+=2) s+=*(a+k); A.17 B.27 C.13 D.无定值 5、为了判断两个字符串sl和s2是否相等,应当使用 D A.if (s1==s2)

B.if (s1=s2) C.if(strcpy(S1,s2)) D.if(strcmp(s1,s2)==O) 6、有定义int a[2][5];,若a[0][1]的地址为x,则a[0][O]、a[1][3]地址分别为(假设一个整型数据占用两个字节的内存空间): A A.x-2,x+14 B.x-1,x+7 C.x+1,x+7 D.x-1,x+14 7、若有定义float a[m][n];,且a[1][1]的地址为x,每个float元素占用4个字节,则a[il[j]的地址为 A A.x+4*(i-1)*n+4*(j-1) B.x+(i-1)*n+(j-1) C.x+4*(i-1)*j+(j-1) D.x+4*i*j+4*j 二、填空题 1、char st[20] = "SEU\0\t\\"; cout<

Java数组练习题(带答案)

一填空题 1)数组的元素通过下标来访问,数组Array的长度为Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)JVM将数组存储在栈(堆或栈)中。 4)数组的二分查找法运用的前提条件是数组已经排序。 5)Java中数组的下标的数据类型是整型。 6)数组最小的下标是0 。 7)arraycopy()的最后一个参数指明复制元素的个数。 8)向方法传递数组参数时,传递的是数组的引用。 9)数组初始化包括数组的申明,创建和初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组的默认值是0.0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是_ABD__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B__ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是____ A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 4.引用数组元素时,数组下标可以是_D___ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是__B__ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中 A. 栈 B. 队列 C. 堆 D. 链表 8.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

广技师C语言复习题5.练习(数组)(有答案)

一、选择题 1. 以下对一维整型数组a的正确说明是。 A.int a(10); B.int n=10, a[n]; C.int n; scanf(“%d”,&n); int a[n]; D.#define SIZE 10 int a[SIZE] 2. 若有说明:int a[10]; ,则对a数组元素的正确引用是。A.a[10] B.a[ 3.5] C.a(5) D.a[10-10] 4. 以下对二维数组a的正确说明是。 A.int a[3][ ]; B.float a(3,4); C.double a[ ][4]; D.float a(3)(4); 5. 若有说明:int a[3][4]; 则对a数组元素的正确引用是。A.a[3][4] B.a[1, 3] C.a[1+1][0] D.a(2)(1) 6. 以下能对二维数组a进行正确初始化的语句是。A.int a[2][ ]={{1, 0, 1}, {5, 2, 3}}; B.int a[ ][3]={{1,2,3},{4,5,6}}; C.int a[2][4]={{1,2,3},{4,5},{6}}; D.int a[ ][3]={{1,0,1,0},{ },{1,1}}; 7. 下面程序段(每行代码前面的数字表示行号)。 1 int a[3]={3*0}; 2 int i 3 for(i=0; i<3; i++) scanf(“%d”,&a[i]);

4 for(i=1; i<3; i++) a[0]=a[0]+a[i]; 5 printf(“%d\n”,a[0]); A.第1行有错误B.第5行有错误 C.第3行有错误D.没有错误 8. 若有定义float x[4]={1.3, 2.4, 5.6},y=6; 则错误的语句是。A.y=x[3]; B.y=x+1; C.y=x[2]+1 D.x[0]=y; 9. 定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是。 for(k=0; k<3; k++) printf(“%d”,a[k][2-k]); A.3 5 7 B.3 6 9 C.1 5 9 D.1 4 7 11. 下面是对数组s的初始化,其中错误的语句是。 A.char s[5]={“abc”}; B.char s[5]={‘a’, ‘b’, ‘c’}; C.char s[5]= “”; D.char s[5]= “abcde”; 12. 下面程序段的运行结果是。(□表示1个空格) char c[5]={'a','b','\0','c','\0'}; printf("%s",c); A.'a''b' B.ab C.ab□c D.ab□ 13. 有两个字符数组a、b,则以下正确的输入格式是。 A.gets(a,b); B.scanf(“%s%s”,a,b); C.scanf(“%s%s”,&a,&b); D.gets(“a”),gets(“b”);

相关文档
最新文档