文档库 最新最全的文档下载
当前位置:文档库 › 第六章数组习题答案

第六章数组习题答案

第六章数组习题答案
第六章数组习题答案

第六章数组习题答案

一、单项选择题

1. C语言中,一维数组下标的最小值是(B )。

A)1 B) 0 C) 视说明语句而定D) 无固定下限

2. 若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( B )。A)a[0][4] B) a[1][3] C) a[0][3] D) a[1][4]

3. 设有数组定义:char str[ ]=”China0”,则数组str所占的空间为( D )字节。

A)4个B) 5个C) 6个D) 7个

4. 若有定义语句:char str[ ]=”ab\n\012\\\n”;

则执行语句:printf(“%d”,strlen(str));后,输出结果是( A )。

A)3 B) 4 C) 6 D) 12

5. 下列描述中不正确的是( C )。

A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出

C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值

6. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。

A)scanf( ) B)getchar( ) C) gets( ) D) getc( )

7. 有以下程序

#include

main( )

{

int i,x[3][2]={0};

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

scanf(“%d”,x[i]);

printf(“%3d%3d%3d\n”,x[0][0], x[0][1], x[1][0]);

}

程序运行后的输出结果是()。

A)2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 6

8. 有以下程序

#include

#include

main( )

{ char p[20]={…a?,?b?,?c?,?d?},q[ ]=”abc”,r[ ]=”abcde”;

strcpy(p+strlen(q),r);

strcat(p,q);

printf(“%d %d\n”,sizeof(p),strlen(p));

}

程序运行后的输出结果是( C )。

A)20 9 B) 9 9 C) 20 11 D) 11 11

9. 有以下程序

#include

#include

main( )

{ char p[20]={…a?,?b?,?c?,?d?},q[ ]=”abc”,r[ ]=”abcde”;

strcat(p,r);

strcpy(p+strlen(q),q);

printf(“%d\n”, strlen(p));

}

程序运行后的输出结果是( B )。

A)9 B) 6 C) 11 D) 7

10.有以下程序

#include

main( )

{ char s[ ]=”abcde”;

s+=2;

printf(“%d\n”,s[0]);

}

程序运行后的输出结果是( D )。

A)输出字符a的ASCII码B) 输出字符c的ASCII码

C) 输出字符c D) 程序出错

二、填空题

1. 数组在内存中占一片连续的存储区,由数组名代表它的首地址。

2. C语言程序在执行过程中,不检查数组下标是否越界。

3. 若定义char str[20];则表示此数组有20 个元素,其下标从0 开始,最大为19 。

4. 设有定义语句:int i=3,a[ ]={1,2,3,4};,则数组a 的类型是整型;数组元素a[i]的值是 4 。

5. 设有定义:char s[5]={…a?,?b?};,则s[1]中的字符是…b?,s[2]中的字符是…\0?。

6. 定义一个名为x整型二维数组,其大小为3×4,要求每行第一个元素为1,其余均是0,则定义语句是int x[3][4]={{1},{1},{1}};

7. 以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推。用#号结束输入,请填空。

#include

#include

main( )

{

int num[26]={0},i;

char c;

while(( c=getchar() ))!=?#?)

if(isupper(c) num[c-…A?]+= 1 ;

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

printf(“%c:%d\n”,i+?A?,num[i];

}

8. 以下程序的输出结果是3715 。

#include

main( )

int i,n[4]={1};

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

{ n[i]=n[i-1]*2+1;

printf(“%d”,n[i]);

}

}

9. 以下程序的输出结果是9 。#include

#include

main( )

{ printf(“%d\n”,strlen(“IBM\n012\1\\”)); } 10. 以下程序的输出结果是 4 7 。#include

#include

main( )

{ char a[ ]={…\1?,?\2?,?\3?,?\4?};

printf(“%d %d\n”,sizeof(a),strlen(a));

}

三、阅读程序题

1. 以下程序的输出结果是 2 。#include

main( )

{

int a[5]={1,1,1,0},i,k=2;

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

a[i]=a[i]+1;

printf(“%d\n”,a[k]);

}

2. 以下程序的输出结果是。#include

main( )

{

int a[2][3]={1,3,5,2,4,6};

int i,j;

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

{ for(j=0;j<=2;j++)

printf(“%3d”,a[i][j]);

printf(“\n”);

}

}

运行结果:1 3 5

2 4 6

3. 以下程序的输出结果是2,2,1 。

#include

main( )

{

int i,j,t,row=0,col=0;

int a[4][3]={{8,22,14},{10,12,3},{11,2,33},{6,7,17}};

t=a[0][0];

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

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

if(a[i][j]

{t=a[i][j];row=i;col=j;}

printf(“%d,%d,%d\n”,t,row,col);

}

4. 以下程序的输出结果是 3 5 7 。

#include

main( )

{

int i,a[3][3]={1,2,3,4,5,6,7,8,9};

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

printf(“%d”,a[i][2-i]);

}

5. 以下程序的输出结果是12,13 。

#include

main( )

{

int a[][3]={1,3,5,7,2,4,6,8,9};

int i,j,s1=0,s2=0;

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

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

{if(i==j) s1=s1+a[i][j];

if(i+j==2) s2=s2+a[i][j];

}

printf("%d,%d\n",s1,s2);

}

6. 以下程序的输出结果是1234 。

#include

main( )

{

char str[ ]=”123456789”;

str[4]=?\0?;

printf(“%s\n”,str);

}

7. 以下程序的输出结果是。

#include

#include

main( )

{

char s1[8], s2[8], s3[8], s4[8];

scanf(“%s%s”,s1,s2);

gets(s3);

gets(s4);

puts(s1); puts(s2); puts(s3); puts(s4);

}

运行时输入以下数据:

AAA BB B↙

CCC DDD↙

运行结果:AAA

BBB

CCC DDD

8. 若输入ABC,以下程序的输出结果是ABC6789 。#include

#include

main( )

{

char str[10]=”abcde”;

gets(str);strcat(str,”6789”);printf(“%s\n”,str);

}

9. 以下程序的输出结果是632 。

#include

main( )

{

char ch[ ]=”632”;

int a,s=0;

for(a=0;ch[a]>=?0?&&ch[a]<=?9?;a++)

s=10*s+ch[a]-…0?;

printf(“%d\n”,s);

}

10. 以下程序的输出结果是。

#include

main( )

{

char str[ ]={…A?,?A?,?A?,?A?,?A?,?A?};

int i,j,k;

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

{printf(“\n”);

for(j=0;j

printf(““);

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

printf(“%c“,str[k]);

}

}

运行结果:AAAA

AAAA

AAAA

四、编程题

1. 将输入的n个整数按从小到大排序输出,并求出其中所有奇数的个数。

2. 输入n个整数,求出其中最大数及其所在的位置,以及此n个数中素数的个数。

3. 输入10学生的分数,计算平均分,并打印低于平均分数的成绩。

4. 求300以内的所有素数的和。

5. 编程求一个4×4矩阵两条对角线上所有元素之和。

6. 编程,输入一个3×4整数矩阵并求各行元素之和及各列元素之和。

7. 输入一个字符串,将指定位置的字符删除。

8. 输入一个字符串,在指定的位置插入一个字符。

9. 输入一个长度不超过80的字符串,编写程序,删除其中所有的数字字符。

10.不用strlen函数,求键盘输入的字符串长度。

11.不用strcat函数,将键盘输入的两个字符串连接起来形成一个新串

第六章数组习题答案

第六章数组习题答案 一、单项选择题 1. C语言中,一维数组下标的最小值是(B )。 A)1 B) 0 C) 视说明语句而定D) 无固定下限 2. 若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( B )。A)a[0][4] B) a[1][3] C) a[0][3] D) a[1][4] 3. 设有数组定义:char str[ ]=”China0”,则数组str所占的空间为( D )字节。 A)4个B) 5个C) 6个D) 7个 4. 若有定义语句:char str[ ]=”ab\n\012\\\n”; 则执行语句:printf(“%d”,strlen(str));后,输出结果是( A )。 A)3 B) 4 C) 6 D) 12 5. 下列描述中不正确的是( C )。 A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值 6. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。 A)scanf( ) B)getchar( ) C) gets( ) D) getc( ) 7. 有以下程序 #include main( ) { int i,x[3][2]={0}; for(i=0;i<3;i++) scanf(“%d”,x[i]); printf(“%3d%3d%3d\n”,x[0][0], x[0][1], x[1][0]); } 程序运行后的输出结果是()。 A)2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 6 8. 有以下程序 #include #include main( ) { char p[20]={‘a’,’b’,’c’,’d’},q[ ]=”abc”,r[ ]=”abcde”; strcpy(p+strlen(q),r); strcat(p,q); printf(“%d %d\n”,sizeof(p),strlen(p)); } 程序运行后的输出结果是( C )。 A)20 9 B) 9 9 C) 20 11 D) 11 11 9. 有以下程序 #include #include main( )

测量计算题库及参考答案

计算题库及参考答案 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语言必背的典型程序设计题目 - 数组、函数-------参考答案

1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。 n k=0; m t=0; //用于记录出列顺序 while(t #include <> void main() { int i,j,a[6][6]; for(i=0;i<=5;i++) { a[i][i]=1; a[i][0]=1; } for(i=2;i<=5;i++) { for(j=1;j<=i-1;j++) { a[i][j]=a[i-1][j]+a[i-1][j-1]; } } for(i=0;i<=5;i++) { for(j=0;j<=i;j++) { printf("%4d",a[i][j]); } printf("\n"); } } 5、编写程序,把下面的数据输入一个二维数组中。

25 36 78 13 12 26 88 93 75 18 22 32 56 44 36 58 然后执行以下操作: ①输出矩阵两个对角线上的数; ②分别输出各行和各列的和; ③交换第一行和第三行的位置; ④交换第二列和第四列的位置; ⑤输出处理后的数组。 #include<> #define SIZE 4 void main() { int a[SIZE][SIZE]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}}; int i,j,t,sum; //输出二维数组 printf("二维数组:\n"); for(i=0;i

数据结构-第六章-图-练习题及答案详细解析(精华版)

图 1. 填空题 ⑴ 设无向图G中顶点数为n,则图G至少有()条边,至多有()条边;若G为有向图,则至少有()条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵ 任何连通图的连通分量只有一个,即是()。 【解答】其自身 ⑶ 图的存储结构主要有两种,分别是()和()。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷ 已知无向图G的顶点数为n,边数为e,其邻接表表示的空间复杂度为()。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有n个结点,边表有2e个结点,共有n+2e个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸ 已知一个有向图的邻接矩阵表示,计算第j个顶点的入度的方法是()。 【解答】求第j列的所有元素之和 ⑹ 有向图G用邻接矩阵A[n][n]存储,其第i行的所有元素之和等于顶点i的()。 【解答】出度

⑺ 图的深度优先遍历类似于树的()遍历,它所用到的数据结构是();图的广度优先遍历类似于树的()遍历,它所用到的数据结构是()。 【解答】前序,栈,层序,队列 ⑻ 对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(),利用Kruskal 算法求最小生成树的时间复杂度为()。 【解答】O(n2),O(elog2e) 【分析】Prim算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼ 如果一个有向图不存在(),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk的相对次序为()。 【解答】vi, vj, vk 【分析】对由顶点vi, vj, vk组成的图进行拓扑排序。 2. 选择题 ⑴ 在一个无向图中,所有顶点的度数之和等于所有边数的()倍。 A 1/2 B 1 C 2 D 4 【解答】C 【分析】设无向图中含有n个顶点e条边,则。

六年级数学简便计算练习题及答案.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.课内阅读。(阅读文段,完成练习) 嘎羧来到石碑前,选了一块平坦的草地,一对象牙就像两支铁镐,在地上挖掘起来。它已经好几天没吃东西了,又经过长途跋涉,体力不济,挖一阵就 喘息一阵。嘎羧从早晨一直挖到下午,终于挖出了一个椭圆形的浅坑。它滑下

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C++程序设计习题答案第六章

第六章模板与数据结构习题 一、.基本概念与基础知识自测题 6.1 填充题 6.1.1 模板是为了实现代码的(1),它把数据类型改为一个(2),称为(3)程 序设计。模板包括(4)和(5)。 答案:(1)重用 (2)设计参数 (3)参数化(parameterize) (4)函数模板(function template) (5)类模板(class template) 6.1.2 调用函数模板时,可以显式指定模板参数类型,也可以隐式进行,称为(1),这是 根据(2)来决定的。 答案:(1)模板实参推演(template argument deduction) (2)一组实际类型或(和)值 6.1.3 顺序查找可以用于(1)线性表,而对半查找可以用于(2)线性表。 答案:(1)无序的(所有) (2)有序的 6.1.4 最常见的排序方式有(1)、(2)和(3)。如果现有一个已排好序的线 性表,在表尾添加了一个元素,采用(4)排序法使它重新成为有序的所需工作量最小。 答案:(1)选择 (2)插入 (3)交换 (4)交换(可利用原来的有序性) 6.1.5 给出以下指针的说明方式:指向一个4元素整型数组的指针为(1);指向一个返 回整型数,参数为两个整型数的函数的指针(2);指向一个数组的指针,而该数组元素都是指向一个返回整型指针的无参函数(3)。 答案:(1)int(*p)[4] (2)int(*p)(int,int) (3)以指向6元素数组为例:int*(*)() (*p)[6] 6.2简答题 6.2.1需要编写一个对多维数组通用的算法(即各维的大小未定),怎样才能把实参多维数 组的信息全部传递到函数中去? 答:最佳方法是用函数模板,多维数组用模板类型参数传递,各维的大小作为参数传递。也可以用一维数组加各维的大小都作为参数传递。 6.2.2什么叫函数模板?什么叫模板函数?什么叫类模板?什么叫模板类? 答:不受数据类型限制的通用型的函数使代码的可重用性大大提高。把数据类型改为

第六章 数组

第六章数组 一、选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是。(0级) A)整型常量B)整型常量或整型表达式 C)整型表达式D)任何类型的表达式 2.以下对一维整型数组a的正确说明是。(0级) A)int a(10); B)int n=10,a[n]; C)int n; scanf(“%d”,&n); int a[n]; D ) #define SIZ E 10 int a[SIZE];以下能对一维数组a进行正确初始化的语句是。(0级) A)int a[10]=(0,0,0,0,0); B)int a[10]={ }; C)int a[ ]={0}; D)int a[10]={10*1}; 4.不是给数组的第一个元素赋值的语句是。(0级) A)int a[2]={1}; B) int a[2]={1*2}; C)int a[2];scanf (“%d”,a);D)a[1]=1; 5.下面程序的运行结果是。(1级) main() {int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); } } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0 6.下列定义正确的是。(1级) A)static int a[]={1,2,3,4,5} B) int b[]={2,5} C) int a(10) D) int 4e[4] 7.若有说明int a[][4]={0,0};则下列叙述不正确的是。(0级) A) 数组a的每个元素都可以得到初值0 B) 二维数组a的第一维的大小为1 C) 因为对二维数组a的第二维大小的值除以初值个数的商为1,故数组a的行数 为1 D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值 8.设有char str[10],下列语句正确的是。(1级) A) scanf("%s",&str); B) printf("%c",str); C) printf("%s",str[0]); D) printf("%s",str); 9.下列说法正确的是。(0级) A) 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组 B) 在C语言中,数组元素的个数可以不确定,允许随机变动

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}; 规定,定义字符型数组时不允许直接使用 "字符常量"的方式赋初值,所以备选答案②也就是错误的。 备选答案③符合题意。【答案】③ 6定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句就是() ① char s[]={ '1','2','3',' \0 '}; ② char s 「」={"123"}; ③ char s[]={"123\n"}; ④ char s[4]={'1','2','3'}; 【分析】备选答案①中省略了数组长度 ,所以每个元素都赋了初值,共计4个元素,初值依次为T '3'、’ \0',最后一个元素的值为字符串结束标记 ,所以数组S 中存放的就是字符串"123",该答案不符合 题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组 s 的长度为4,其中的初值就是字符串 "123",不符合题意(即正确的);备选答案③中也就是给数组 s 赋予字符串的初值,但就是字符串不就是 方法三: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 较,小者调上;该操作反复执行 n- k 次。现在假设有 则利用"冒泡排序法"执行第2步后的结果就是 【分析】开始排序前的排列执行第 4 1 - 3 : (不能直接赋予字符常量,必须用花括号括住),所 步。其中第k 步的任务就是:自下而上,相邻两数比 4个数据:4、l 、3、2要排序,假定4为上、2为下, O 1步后的排列执行第 2步后的排列 1 2 4 2 【答案】l 、2、4、 3 4用"选择排序法"对n 个数据排序,需要进行n-1 据中寻找最小数,与第k 个数据交换。现在假设有 行第2步后的结果就是 ____________________ 【分析】 开始排序前的排列为: 4 执行第1步后的排列为: 执行第2步后的排列为: 【答案】1、2、3、4 5下列数组定义语句中,正确的就是() ① int a[][]={1,2,3,4,5,6}; ② char a[2] ③ int a[][3]= {1,2,3,4,5,6}; ④ static int a[][] 【分析】C 语言规定,二维数组定义时不允许省略第二维的长度 步。其中第k 步的任务就是:在第k 个数据到第n 个数 4个数据:4、 1、 3、2要排序,则利用"冒泡排序法"执 「3] = 'a','b'; ={{1,2,3},{4,5,6}}; ,所以备选答案①④就是错误 C 语言还 显然 、'2'、

第六章数组

第6章数组 知识要点 数组和记录的概念、分类 数组的声明和记录的定义 数组的使用方法 学习任务 了解数组的概念和分类 理解数组的功能 掌握数组的定义、声明及使用方法 6.1 数组的概念 Visual Basic中的数组和数学中数组的概念基本类似,都是由一批互相联系的、有一定顺序的数据组成的集合。与数学中的数组不同的是,Visual Basic中的数组必须先声明,然后才能在程序中使用。一个数组中的所有数据,称为该数组的数组元素。 6.2 常规数组 常规数组,即大小固定的数组,也就是说常规数组中包含的数组元素的个数不变,它总是保持同样的大小,占有的存储空间当然也就保持不变。 6.2.1 常规数组的声明 语法: {Dim|Static|Public|Global|Private}< 数组名>[类型说明符]([下界] To 上界[,[下界] To 上界] [,...])[As < 类型说明词>] 功能: 声明常规数组的数组名、维数、上下界及其类型。 说明: 1.数组名与变量名命名规则相同。 2.数组元素在上下界内编号是联续的,上下界的范围不超过LONG数据所表示的数 的范围。 例:DIM COUNT(1 TO 15) AS INTEGER :一维整型数组,共有15个元素,即COUNT(1)-COUNT(15) DIM SUM&(10 TO 20): 4.数组元素下界可以省略,默认为0 例:DIM COUNT(15) AS INTEGER :COUNT(0)-COUNT(15)共16个元素。 设置OPTION BASE 1 则数组下标默认值为1。 OPTION BASE 0则数组下标默认值为0。 说明: 1.该语句必须在模块顶部的声明中使用,在数组声明语句之前,只影响本模块中定 义的数组。 2.一个模块中只能出现一次。 3.OPTION BASE 对ARRAY函数不起作用,即ARRAY函数创建的数组,下标的下 界始终为0

C语言数组编程题

实验4 数组 一.实验目的: 1.掌握一维数组的定义、赋值和输入输出的方法; 2.掌握字符数组定义、初始化、赋值的方法; 3.了解常见的字符串函数功能及其使用方法; 4.掌握二维数组的定义与引用。 二.实验内容: 1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。 2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。 3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。 4.编写程序,求二维数组中元素的最大值和最小值。 5.编写程序,求一个4×4矩阵中所有元素之和。 6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。 7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。 8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。 9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按原来的规律将其插入并输出。 页脚内容1

10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。 11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。 12. 编程输出杨辉三角。(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大) 13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。 14. 编写程序,将两个字符串连接起来,不用strcat。 15. 编写程序实现strcpy函数功能。 16. 编程实现strlen函数功能。 17. 编程求2-4+6-8…-100+102的值。 18. 假设某人有100,000现金。每经过一次路口需要进行一次交费。交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000。请写一程序计算此人可以经过多少次这个路口。 19. 输入若干个正整数,以0结束,将其中大于平均值且个位为5的数排序后输出。(按由大到小的顺序排序) 20. 输入一个字符串,将其中ASCII码值为基数的字符排序后输出。(按由小到大的顺序) 21. 输入一个以回车结束的字符串(少于80个字符),滤去所有的非16进制字符后,组成一个新字符串(16进制形式),然后将其转换为10进制数后输出。 22. 读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一行、最后一列 页脚内容2

习题6(第七章)数组

第七章数组 7.1 选择题 【题7.1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 c 。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题7.2】以下对一维整型数组a的正确说明是 D 。 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]; 【题7.3】若有说明:int a[10];则对a数组元素的正确引用是 D 。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题7.4】在C语言中,一维数组的定义方式为:类型说明符数组名 A ; A)[常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[整型常量] 【题7.5】以下能对一维数组a进行正确初始化的语句是 C 。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]={10*1}; 【题7.6】以下对二维数组a的正确说明是 C 。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7.7】若有说明:int a[3][4];则对a数组元素的正确引用是 C 。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题7.8】若有说明:int a[3][4];则对a数组元素的非法引用是 D 。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题7.9】以下能对二维数组a进行正确初始化的语句是 B 。 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}}; 【题7.10】以下不能对二维数组a进行正确初始化的语句是 C 。

土木工程测量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语言数组例题

6.1.1 Fibonacci数列 /* Fibonacci数列递推求解 */ main() {int k,n; long s,f[50]; printf("求数列的第n项与前n项和,请输入n:"); scanf("%d",&n); f[1]=1;f[2]=1;s=2; /* 数组元素与和变量赋初值 */ for(k=3;k<=n;k++) {f[k]=f[k-1]+f[k-2]; /* 实施递推 */ s+=f[k];} /* 实施求和 */ printf("F数列第%d项为:%ld\n",n,f[n]); printf("F数前%d项之和为:%ld\n",n,s); } 6.1.2 幂序列 /* 幂序列程序 */ main() {int k,n; long a,b,s,f[100]; printf("求数列的第n项与前n项和,请输入n:"); scanf("%d",&n); a=2;b=3;s=0; for(k=1;k<=n;k++) {if(a

else {f[k]=b;b=b*3;} /* 用3的幂给f[k]赋值 */ s+=f[k];} printf("数列的第%d项为:%ld\n",n,f[n]); printf("数列的前%d项之和为:%ld\n",n,s); } 6.1.3 双关系递推数列 /* 双关系2x+1,3x+1递推 */ main() {int n,i,j,h,m[1500]; m[1]=1; scanf("%d",&n); for(i=1;i<=n;i++) {m[2*i]=2*m[i]+1;m[2*i+1]=3*m[i]+1; for(j=i+2;j<=2*i+1;j++) {if(m[i+1]>m[j]) /* m(i+1)与m(j)比较 */ {h=m[j]; m[j]=m[i+1];m[i+1]=h;} /* 交换,使m(i +1)最小 */ if(m[i+1]==m[j]) m[j]=20000+j;}} /* 置m(j)为一出界大数,以避免重复 */ for(i=1;i<=n;i++) {printf(" %4d",m[i]);

C语言第六章数组习题

C语言第六章数组习题 第六章数组 6.1 选择题 [题]在C语言中,引用数组元素时,其数组下标的数据类型允许是_____. A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 [题]以下对一维整型数组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]; [题]若有说明:int a[l0];则对a数组元素的正确引用是_____。 A) a[10] B)a[3.5] C)a(5) D)a[10-10] [题]在C 语言中,一维数组的定义方式为:类型说明符数组名_____。 A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式] D)[整型常量] [题]以下能对一维数组a进行正确初始化的语句是_____。 A)int a[l0]=(0,0,0,0,0); B)int a[l0]={}; C)int a={0};D)int a[10]={10*1}; [题]以下对二维数组a的正确说明是_____。

1 A)int a[3]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); [题]若有说明:int a[3][4];则对a数组元素的正确引用是_____。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) [题]若有说明:int a[3][4];则对a数组元素的非法引用是_____。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] [题]以下不能对二维数组a进行正确初始化的语句是_____。 A)int a[2][3]={0}; B)int a[3]={{1,2},{0}}; C)int a[2][3]={{l,2},{3,4},{5,6}}; D)int a[3]={1,2,3,4,5,6}; [题]若有说明:int a[3][4]={0};则下面正确的叙述是_____。 A)只有元素a[0][0]可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 [题]若有说明:int a[3][4];则数组a中各元素_____。 2

第六章数组

第6章数组 6.1 问题导引与分析 到目前为止,我们所接触的变量类型(除文件类型外)为简单数据类型,其特点是对单一的变量进行数据处理和操作。在解决实际问题时,常需要处理大量的数据,如对1000个学生的成绩排序、对一批数据进行各种处理等问题,如果用简单变量来存储这些数据,要用到大量的简单变量,无论从存储还是处理都很不现实。Pascal语言引入了数组类型,能方便地解决批量数据处理问题。 数组是程序设计中最常用的结构数据类型,用来描述由固定数目的同一类型的元素组成的数据结构。 从形式上看,Pascal语言数组元素书写格式为:变量名[下标1,下标2,下标3,……],数组的每个元素和下标相关联,根据下标指示数组的元素。 只有一个下标的变量集合称为一维数组。 如:a[1],a[2],a[3],a[4],a[5],……,俗称a数组。 使用数组的方便之处在于数组的下标可以用变量来表示,如上述的a数组元素可以写成a[i]形式,通过灵活控制下标变量i,达到对数组元素进行批量处理和操作的目的。 6.1.1 问题导引 问题6.1 选票统计(Votes) 【问题描述】 国际运动协会组织了一个评选N佳运动员的活动,评选方式很特殊,先由网民投票选举,各国的网民可以任选自己喜爱的运动员,然后从中选出得票高于100万张的运动员N个,对他们用1到N进行编号,重新投票,根据不同的得票值,颁发不同的奖项,现在组织者想知道重新投票后,这N个运动员的票数,请你帮他完成。 【输入格式】 第一行,一个数,表示N个运动员;(1≤N≤1000) 第二行开始为一组以空格隔开的选票,选票值为1到N间的数,以-1为数据结束标志。选票数量不超出长型范围。 【输出格式】 按编号顺序输出编号和票数。 【输入样例】 3 3 1 2 3 2 1 2 3 1 2 2 1 3 3 1 2 3 3 -1 【输出样例】 1 5 2 6 3 7

c语言数组例题

#include int prime(int c) { inta,b=1; for(a=2;a int *hs(int a[3][2]) {inti,j,s[3],*p=s; s[0]=a[0][0];s[1]=s[2]=1; for(i=0;i<3;i++) for(j=0;j<2;j++) {if(s[0]

return 0; } 3.源代码为: #include voidhanshu(char *s) { while(*s) { if(*s>='A'&&*s<='Z') *s+=32; else if(*s>='a'&&*s<='z') *s-=32; *s++; } } void main() { char s[]="shaHUAHDJhhduahNBUahujJAWDhuwh8u"; hanshu(s); printf("改写后的字符串为:\n"); puts(s); } 4.源代码为: #include int add(int n) { int s=0; if(n==0) return 0; if(n==1) s=1; else s=n+add(n-1); return s; } void main() { intk,i; printf("输入一个整数:\n"); scanf("%d",&i); k=add(i); printf("%d累加的结果为:%d\n",i,k); } 测试数据为:4 运行结果为:10

相关文档
相关文档 最新文档