当前位置:文档之家› 习题6(第七章)数组

习题6(第七章)数组

习题6(第七章)数组
习题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 。

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.11】若有说明:int a[3][4]={0};则下面正确的叙述是 D 。

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

B)此说明语句不正确

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

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

【题7.12】若有说明:int a[][4]={0,0};则下面不正确的叙述是 D 。

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 【题7.13】若有说明:int a[3][4];则数组a中各元素B。

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

【题7.14】以下各组选项中,均能正确定义二维实型数组a的选项是 C 。

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)float a[3][4]; D)float a[3][4];

static float a[][4]={{0},{0}}; float a[3][];

auto float a[][4]={{0},{0},{0}}; float a[][4];

【题7.15】下面程序 A (每行程序前面的数字表示行号)。

1 main()

2 {

3 float a[3]={3*0};

4 int i;

5 for(i=0;i<3;i++) scanf(“%d”,&a[i]);

6 for(i=1;i<3;i++) a[0]=a[0]+a[i];

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

8 }

A)第3行有错误B)第7行有错误

C)第5行有错误D)没有错误

【题7.16】下面程序 C (每行程序前面的数字表示行号)。

1 main()

2 {

3 float a[10]={0.0};

4 int i;

5 for(i=0;i<3;i++) scanf(“%d”,&a[i]);

6 for(i=1;i<10;i++) a[0]=a[0]+a[i];

7 printf(“%f\n”,a[0]);

8 }

A)没有错误B)第3行有错误

C)第5行有错误D)第7行有错误

【题7.17】下面程序中有错误的行是 D (每行程序前面的数字表示行号)。

1 main()

2 {

3 float a[3]={1};

4 int i;

5 scanf(“%d”,&a);

6 for(i=1;i<3;i++) a[0]=a[0]+a[i];

7 printf(“a[0]=%d\n”,a[0]);

8 }

A)3 B)6 C)7 D)5

【题7.18】下面程序 D (每行程序前面的数字表示行号)。

1 main()

2 {

3 float a[3]={0};

4 int i;

5 for(i=0;i<3;i++) scanf(“%d”,&a[i]);

6 for(i=1;i<4;i++) a[0]=a[0]+a[i];

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

8 }

A)没有错误B)第3行有错误

C)第5行有错误D)第6行有错误

【题7.19】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 D 。

(假设a[0][0]位于数组的第一个位置上。)

A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1

【题7.20】对以下说明语句的正确理解是 B 。

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)因为数组长度与初值的个数不相同,所以此语句不正确

【题7.21】以下不正确的定义语句是 B 。

A)double x[5]={2.0,4.0,6.0,8.0,10.0};

B)int y[5]={0,1,3,5,7,9};

C)char c1[]={‘1’,‘2’,‘3’,‘4’,‘5’};

D)char c2[]={‘\x10’,‘\xa’,‘\x8’};

【题7.22】若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 B 。

A)2 B)3 C)4 D)无确定值

【题7.23】若二维数组a有m列,则在a[i][j]前的元素个数为 B 。

A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1

【题7.24】定义如下变量和数组:

int k;

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

则下面语句的输出结果是 A 。

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

【题7.25】若有以下程序段:

……

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]; j--; }

a[j+1]=t;

}

……

则该程序段的功能是 B 。

A)对数组a进行插入排序(升序)

B)对数组a进行插入排序(降序)

C)对数组a进行选择排序(升序)

D)对数组a进行选择排序(降序)

【题7.26】以下正确的定义语句是 D 。

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};

【题7.27】下面程序的运行结果是 C 。

main()

{

int a[6][6],i,j;

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

for(j=1;j<6;j++)

a[i][j]=(i/j)*(j/i);

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

{

for(j=1;j<6;j++)

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

printf(“\n”);

}

}

A)1 1 1 1 1 B)0 0 0 0 1 C)1 0 0 0 0 D)1 0 0 0 1

1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0

1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0

1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0

1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1

【题7.28】下面程序的运行结果是 C 。

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

【题7.29】下面是对s的初始化,其中不正确的是 D 。

A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’};

C)char s[5]=“”;D)char s[5]=“abcdef”;

【题7.30】下面程序段的运行结果是 B 。

char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};

printf(“%s”,c);

A)‘a’‘b’B)ab C)ab c

【题7.31】对两个数组a和b进行如下初始化

char a[]=“ABCDEF”;

char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’};

则以下叙述正确的是 D 。

A)a与b数组完全相同B)a与b长度相同

C)a和b中都存放字符串D)a数组比b数组长度长

【题7.32】有两个字符数组a、b,则以下正确的输入格式是 B 。

A)gets(a,b); B)scanf(“%s %s”,a,b);

C)scanf(“%s %s”,&a,&b);D)gets(“a”),get(“b”);

【题7.33】有字符数组a[80]和b[80],则正确的输出形式是 D 。

A)puts(a,b); B)printf(“%s %s”,a[],b[]);

C)putchar(a,b); D)puts(a),puts(b);

【题7.34】下面程序段的运行结果是 D 。

char a[7]=“abcdef”;

char b[4]=“ABC”;

strcpy(a,b);

printf(“%c”,a[5]);

A)空格B)\0 C)e D)f

【题7.35】有下面的程序段

char a[3],b[]=“China”;

a=b;

printf(“%s”,a);

则 D 。

A)运行后将输出China B)运行后将输出Ch

C)运行后将输出Chi D)编译出错

【题7.36】下面程序段的运行结果是 B 。

char c[]=“\t\v\\\0will\n”;

printf(“%d”,strlen(c));

A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定

【题7.37】判断字符串a和b是否相等,应当使用 D 。

A)if(a==b) B)if(a=b)

C)if(strcpy(a,b)) D)if(strcmp(a,b))

【题7.38】判断字符串s1是否大于字符串s2,应当使用 D 。

A)if(s1>s2) B)if(strcmp(s1,s2))

C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)

【题7.39】下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。

char x[]=“programming”; A

char y[]=“Fortran”;

int i=0;

while(x[i]!=‘\0’&&y[i]!= ‘\0’)

{

if(x[i]==y[i]) printf(“%c”,【1】);

else i++;

}

【1】 A)x[i++] B)y[++i] C)x[i] D)y[i]

【题7.40】下面描述正确的是 D 。

A)两个字符串所包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串“STOP ”与“STOP”相等

D)字符串“That”小于字符串“The”

【题7.41】下述对C语言字符数组的描述中错误的是 C 。

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

B)字符数组的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

【题7.42】有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。请选择填空。 BB

#include

main()

{

char a[20]=“cehiknqtw”;

char s[]=“fbla”;

int i,k,j;

for(k=0;s[k]!=‘\0’;k++)

{

j=0;

while(s[k]>=a[j]&&a[j]!=‘\0’) j++;

for(【1】) 【2】;

a[j]=s[k];

}

puts(a);

}

【1】 A)i=strlen(a)+k; i>=j; i-- B)i=strlen(a); i>=j; i--

C)i=j; i<=strlen(a)+k; i++ D)i=j; i<=strlen(a); i++

【2】 A)a[i]=a[i+1] B)a[i+1]=a[i]

C)a[i]=a[i-1] D)a[i-1]=a[i]

【题7.43】下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。请选择填空。 ADA

#include

main()

{

char a[]=“acegikm”;

char b[]=“bdfhjlnpq”;

char c[80],*p;

int i=0,j=0,k=0;

while(a[i]!=‘\0’&&b[j]!=‘\0’)

{

if(a[i]

else { 【2】 }

k++;

}

c[k]= ‘\0’;

if(【3】) p=b+j;

else p=a+i;

strcat(c,p);

puts(c);

}

【1】 A)c[k]=a[i]; i++; B)c[k]=a[j]; i++;

C)c[k]=a[i]; j++; D)c[k]=a[j]; j++;

【2】 A)c[k]=a[i]; i++; B)c[k]=a[j]; i++;

C)c[k]=a[i]; j++; D)c[k]=a[j]; j++;

【3】 A)a[i]==‘\0’B)a[i]!=‘\0’

C)a[i-1]==‘\0’D)a[i-1]!=‘\0’

【题7.44】下面程序的功能是将字符串s中所有的字符c删除。请选择填空。 A #include

main()

{

char s[80];

int i,j;

gets(s);

for(i=j=0;s[i]!=‘\0’;i++)

if(s[i]!=‘c’) 【1】;

s[j]=‘\0’;

puts(s);

}

【1】 A)s[j++]=s[i] B)s[++j]=s[i]

C)s[j]=s[i]; j++ D)s[j]=s[i]

【题7.45】下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。 B

#include

main()

{

char s[80],c1,c2=‘’;

int i=0,num=0;

gets(s);

while(s[i]!=‘\0’)

{

c1=s[i];

if(i==0) c2=‘’;

else c2=s[i-1];

if(【1】) num++;

i++;

}

printf(“There are %d words.\n”,num);

}

【1】 A)c1==‘’&&c2==‘’B)c1!=‘’&&c2==‘’

C)c1==‘’&&c2!=‘’D)c1!=‘’&&c2!=‘’

【题7.46】下面程序的运行结果是 A 。

#include

main()

{

char ch[7]={“12ab56”};

int i,s=0;

for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)

s=10*s+ch[i]-‘0’;

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

}

A)1 B)1256 C)12ab56 D)1

2

5

6

【题7.47】当运行以下程序时,从键盘输入:aa bb

cc dd

(表示回车),则下面程序的运行结果是 A 。

#include

main()

{

char a1[5],a2[5],a3[5],a4[5];

scanf(“%s %s”,a1,a2);

gets(a3); gets(a4);

puts(a1); puts(a2);

puts(a3); puts(a4);

}

A)aa B)aa C)aa D)aa bb

bb bb bb cc

cc cc dd dd

cc dd dd ee

【题7.48】当运行以下程序时,从键盘输入:ab

c

def

(表示回车),则下面程序的运行结果是 D 。

#include

#define N 6

main()

{

char c[N];

int i=0;

for(;i

for(i=0;i

}

A)abcdef B)a C)b D)ab

b c c

c d d

d

e

f

【题7.49】当运行以下程序时,从键盘输入:AhaMA Aha(表示回车),则下面程序的运行结果是 A 。

#include

main()

{

char s[80],c=‘a’;

int i=0;

scanf(“%s”,s);

while(s[i]!=‘\0’)

{

if(s[i]==c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32;

i++;

}

puts(s);

}

A)ahAMa B)AhAMa C)AhAMa ahA D)ahAMa ahA

【题7.50】下面程序的运行结果是 D 。

#include

main()

{

char a[80]=“AB”,b[80]=“LMNP”;

int i=0;

strcat(a,b);

while(a[i++]!=‘\0’) b[i]=a[i];

puts(b);

}

A)LB B)ABLMNP C)AB D)LBLMNP

【题7.51】下面程序的运行结果是 B 。

#include

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

【题7.52】下面程序的运行结果是 B 。

#include

main()

{

char a[]=“morning”,t;

int i,j=0;

for(i=1;i<7;i++) if(a[j]

t=a[j]; a[j]=a[7];

a[7]=a[j]; puts(a);

}

A)mogninr B)mo C)morning D)mornin

7.2 填空题

【题7.53】在C语言中,二维数组的定义方式为:类型说明符数组名[【1】常量表达式][【2】常量表达式];

【题7.54】在C语言中,二维数组元素在内存中的存放顺序是【】按行主顺序存放。

【题7.55】若有定义:double x[3][5];则x数组中行下标的下限为【1】,列下标的上限为【2】。

【题7.56】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为:【】。

(假设a[0][0]位于数组的第一个位置上。)

【题7.57】若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是【1】,a[2][1]得到的初值是【2】。

【题7.58】若有以下输入(代表回车符),则下面程序的运行结果是。

7 10 5 4 6 7 9 8 3 2 4 6 12 2 -1

main()

{

int b[51],x,i,j=0,n=0;

scanf(“%d”,&x);

while(x>-1) { b[++n]=x; scanf(“%d”,&x); }

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

if(b[i]%2==0) b[++j]=b[i];

for(i=1;i<=j;i++) printf(“%3d”,b[i]);

printf(“\n”);

}

【题7.59】下面程序以每行4个数据的形式输出a数组,请填空。

#define N 20

main()

{

int a[N],i;

for(i=0;i

for(i=0;i

{

if(【2】) 【3】

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

}

printf(“\n”);

}

【题7.60】下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。

main()

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

int b[3][2],i,j;

printf(“array a:\n”);

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

{

for(j=0;【1】;j++)

{

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

【2】;

}

printf(“\n”);

}

printf(“array b:\n”);

for(i=0;【3】;i++)

{

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

printf(“%5d”,b[i][j]);

printf(“\n”);

}

}

【题7.61】下面程序的运行结果是。

main()

{

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

int b[3][2] ,i,j;

printf(“array a:\n”);

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

{

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

{

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

b[j][i]=a[i][j];

}

printf(“\n”);

}

printf(“array b:\n”);

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

{

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

printf(“%5d”,b[i][j]);

printf(“\n”);

}

【题7.62】下面程序可求出矩阵a的两条对角线上的元素之和。请填空。

main()

{

int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;

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

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

if(i==j) sum1=sum1+a[i][j];

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

for(【1】;【2】;j--)

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

printf(“sum1=%d,sum2=%d\n”,sum1,sum2);

}

【题7.63】下面程序的运行结果是。

main()

{

int a[5][5],i,j,n=1;

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

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

a[i][j]=n++;

printf(“The result is:\n”);

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

{

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

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

printf(“\n”);

}

}

【题7.64】下面程序可求出矩阵a的主对角线上的元素之和。请填空。

main()

{

int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

if(【1】) sum=sum+【2】;

printf(“sum=%d\n”,sum);

}

【题7.65】以下程序可求出所有的水仙花数。(提示:所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。例如:407=4×4×4+0×0×0+7×7×7,

故407是一个水仙花数。)请填空。

main()

{

int x,y,z,a[8],m,i=0;

printf(“The special numbers are(in the arrange of 1000):\n”);

for(【1】;m++)

{

x=m/100;

y=【2】;

z=m%10;

if(x*100+y*10+z==x*x*x+y*y*y+z*z*z)

{ 【3】; i++; }

}

for(x=0;x

printf(“%6d”,a[x]);

}

【题7.66】下面程序的功能是生成并打印某数列的前20项,该数列第1,2项分别为0和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生

成的20个数存在一维数组x中,并按每行4项的形式输出。请填空。

main()

{

int x[21],i,j;

x[1]=0; x[2]=1;

i=3;

do{

x=【1】;

x[i+1]=【2】;

i=【3】;

}while(i<20);

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

{

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

if(i%4==0)

printf(“\n”);

}

}

【题7.67】若有以下输入(代表回车换行符),则下面程序的运行结果是。

1 4

2

3 3

4 1 2 3 3 2 2 2 3 3 1 1 1 4 1 1 1 -1

#define M 50

main()

{

int a[M],c[5],i,n=0,x;

printf(“Enter 0 or 1 or 2 or 3 or 4, to end with -1\n”);

scanf(“%d”,&x);

while(x!=-1)

{

if(x>=0&&x<=4)

{ a[n]=x; n++; }

scanf(“%d”,&x);

}

for(i=0;i<5;i++) c[i]=0;

for(i=0;i

printf(The result is:\n”);

for(i=1;i<=4;i++) printf(“%d:%d\n”,i,c[i]);

printf(“\n”);

}

【题7.68】下面程序的运行结果是。

main()

{

int i,j,a[2][3]={{2,4,6},{8,10,12}};

printf(“The original array is:\n”);

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

{

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

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

printf(“\n”);

}

printf(“\nthe result is:\n”);

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

{

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

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

printf(“\n”);

}

}

【题7.69】设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空。

main()

{

int a[10],b[10],i;

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

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

for(【1】;i<10;i++)

【2】

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

{

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

if(【3】==0) printf(“\n”);

}

}

【题7.70】下面程序将十进制整数转换成n进制。请填空。

main()

{

int i,base,n,j,num[20];

printf(“Enter data that will be converted\n”);

scanf(“%d”,&n);

printf(“Enter base\n”);

scanf(“%d”,&base);

do{

i++;

num[i]=n【1】base;

n=n【2】base;

}while(n!=0);

printf(“The data %d has been converted into the %d--base

data:\n”,n,base);

for(【3】)

printf(“%d”,num[j]);

}

【题7.71】下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。

main()

{

int a[5],max,min,i,j,k;

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

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

min=a[0];

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

if(a[i]

max=a[0];

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

if(a[i]>max) { max=a[i]; 【2】; }

【3】

printf(“\nThe position of min is:%3d\n”,k);

printf(“The position of max is:%3d\n”,j);

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

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

}

【题7.72】下面程序的运行结果是。

main()

{

int i,f[10];

f[0]=f[1]=1;

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

f[i]=f[i-2]+f[i-1];

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

{

if(i%4==0) printf(“\n”);

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

}

}

【题7.73】下面程序的运行结果是。

main()

{

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

int n=0,i,j,c,k;

for(i=0;i<10-n;i++)

{

c=a[i];

for(j=i+1;j<10-n;j++)

if(a[j]==c)

{

for(k=j;k<10-n;k++)

a[k]=a[k+1];

n++;

}

}

for(i=0;i<(10-n);i++)

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

printf(“\n”);

}

【题7.74】下面程序的功能是给一维数组a输入任意6个整数,假设为:

7 4 8 9 1 5

然后建立一个具有以下内容的方阵并打印。请填空。

5 7 4 8 9 1

1 5 7 4 8 9

9 1 5 7 4 8

8 9 1 5 7 4

4 8 9 1

5 7

7 4 8 9 1 5

main()

{

int a[6],i,j,k,m;

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

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

for(i=5;i>=0;i--)

{

k=a[5];

for(【1】;j>=0;j--)

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

【2】;

for(m=0;m<6;m++)

printf(“%d”,a[m]);

printf(“\n”);

}

}

【题7.75】下面程序的功能是输出以下9*9阶方阵。请填空。

1 1 1 1 1 1 1 1 1

1 2 2 2 2 2 2 2 1

1 2 3 3 3 3 3 2 1

1 2 3 4 4 4 3 2 1

1 2 3 4 5 4 3 2 1

1 2 3 4 4 4 3 2 1

1 2 3 3 3 3 3 2 1

1 2 2 2 2 2 2 2 1

1 1 1 1 1 1 1 1 1

main()

{

int a[10][10],n,i,j,m;

scanf(“%d”,&n);

if(n%2==0) m=n/2;

else 【1】;

for(i=0;i

for(j=i;j

{

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

a[【2】][j]=i+1;

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

a[j][【3】]=i+1;

}

for(i=0;i

{

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

printf(“\n”);

}

}

【题7.76】当从键盘输入18时,下面程序的运行结果是。

main()

{

int x,y,i,a[8],j,u,v;

scanf(“%d”,&x);

y=x; i=0;

do{

u=y/2;

a[i]=y%2;

i++; y=u;

}while(y>=1);

for(j=i-1;j>=0;j--)

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

}

【题7.77】下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b。请填空。

例如:array a: array b:

4 5 6 6 4 5

1 2 3 3 1 2

main()

{

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

int i,j;

printf(“array a:\n”);

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

{

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

{

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

【1】;

}

printf(“\n”);

}

for(【2】;i++) b[i][0]=a[i][2];

printf(“array b:\n”);

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

{

人教版八级数学三角形知识点考点典型例题含答案

第七章三角形 【知识要点】 一.认识三角形 1.关于三角形的概念及其按角的分类 定义:由不在同一直线上的三条线段首尾顺次相接所组成的图形叫做三角形。 2.三角形的分类: ①三角形按内角的大小分为三类:锐角三角形、直角三角形、钝角三角形。 ②三角形按边分为两类:等腰三角形和不等边三角形。 2.关于三角形三条边的关系(判断三条线段能否构成三角形的方法、比较线段的长短) 根据公理“两点之间,线段最短”可得: 三角形任意两边之和大于第三边。 三角形任意两边之差小于第三边。 3.与三角形有关的线段 ..:三角形的角平分线、中线和高 三角形的角平分线:三角形的一个角的平分线与对边相交形成的线段; 三角形的中线:连接三角形的一个顶点与对边中点的线段,三角形任意一条中线将三角形分成面积相等的两个部分; 三角形的高:过三角形的一个顶点做对边的垂线,这条垂线段叫做三角形的高。 注意:①三角形的角平分线、中线和高都是线段,不是直线,也不是射线; ②任意一个三角形都有三条角平分线,三条中线和三条高; ③任意一个三角形的三条角平分线、三条中线都在三角形的内部。但三角形的高却有不同的位置:锐角三角形的三条高都在三角形的内部;直角三角形有一条高在三角形的内部,另两条高恰好是它两条直角边;钝角三角形一条高在三角形的内部,另两条高在三角形的外部。 ④一个三角形中,三条中线交于一点,三条角平分线交于一点,三条高所在的直线交于一点。(三角形的三条高(或三条高所在的直线)交与一点,锐角三角形高的交点在三角形的内部,直角三角形高的交点是直角顶点,钝角三角形高(所在的直线)的交点在三角形的外部。) 4.三角形的内角与外角 (1)三角形的内角和:180° 引申:①直角三角形的两个锐角互余; ②一个三角形中至多有一个直角或一个钝角; ③一个三角中至少有两个内角是锐角。 (2)三角形的外角和:360° (3)三角形外角的性质: ①三角形的一个外角等于与它不相邻的两个内角的和;——常用来求角度 ②三角形的一个外角大于任何一个与它不相邻的内角。——常用来比较角的大小 5.多边形的内角与外角 多边形的内角和与外角和(识记)

第六章数组习题答案

第六章数组习题答案 一、单项选择题 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( )

第六章习题

6-1 某一X 射线管发出的连续X 光谱的最短波长为0.0124nm ,试问它的工作电压是多少?解:依据公式 6-2莫塞莱的实验是历史上首次精确测量原子序数的方法.如测得某元素的K αX 射线的波长为0.068 5 nm ,试求出该元素的原子序数. ) (0Z ;将值代入上式, 10 246.0)??= = =1780 Z=43 即该元素为43号元素锝(Te). 6-3 钕原子(Z=60)的L 吸收限为0.19nm ,试问从钕原子中电离一个K 电子需作多少功? 6-4 证明:对大多数元素K α1射线的强度为K α2射线的两倍. 6-5 已知铅的K 吸收限为0.014 1nm,K 线系各谱线的波长分别为:0.016 7nm(K α);0.0146nm(K β);0.0142nm(K γ),现请: (1) 根据这些数据绘出有关铅的X 射线能级简图;(2) 计算激发L 线系所需的最小能量与L α线的波长. 分析要点:弄清K 吸收限的含义. K 吸收限指在K 层产生一个空穴需要能量. 即K 层电子的结合能或电离能. 解: (1) K K α L α K β K γ (2) 激发L 线系所需的能量: (3) K 层电子的电离能为

在L 壳层产生一个空穴所需的能量 E LK = φK -φL φL =φK - E LK =87.94 keV -84.93keV=3.01 keV φ 即有0.116nm. 6-6 一束波长为0.54 nm 的单色光入射到一组晶面上,在与入射束偏离为120?的方向上产生一级衍? 解:由于入射束在偏离120?的方向上产生一级衍射极大 sin θ =sin120?依据公式 θ=λ sin 2d n n=1 解得 d=0.312 nm 6-7 在康普顿散射中,若入射光子的能量等于电子的静止能,试求散射光子的最小能量及电子的最大动量. 6-8 在康普顿散射中,若一个光子能传递给一个静止电子的最大能量为10 keV ,试求入射光子的能量. 解:(1)其中c m ν 光子去的能量为电子获得的能量依题意,如果电子获得最大能量,则出射光子的能量为最小,(1)式有最小值的条件是θ=π 由E 由此可算出:E E =+ν E c E =+ 2)(2c m E E h h o =-νν 代入数据 ?-光E 226-9 若入射光子与质子发生康普顿散射,试求质子的康普顿波长.如反冲质子获得的能量为:由康普顿波长定义 m E E p = 6.54=νh MeV 6-10 康普顿散射产生的散射光子,再与原子发生相互作用,当散射角θ>60°时,无论入射光子能量多么大,散射光子总不能再产生正负电子偶.试证明之. 6-11 证明:光子与自由电子相碰,不可能发生光电效应. 6-12 证明:在真空中不可能发生“光子一电子对”过程.

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

图 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条边,则。

管理学第五章、第六章、第七章练习题

第五章决策、六章计划与计划工作、第七章计划的实施练习题 一、单项选择题 1. 决策所遵循的原则是() A. 最优原则 B.实用原则 C.科学原则 D.满意原则 2. 决策的依据是() A. 完全信息 B. 适量信息 C. 少量信息 D. 与信息无关 3. 西蒙把决策活动分为程序化决策与非程序化决策两类,二者区分标准是:() A.经营活动与业务活动 B.例行问题与非例行问题 C. 最优标准或满意标准 D. 计算机决策或非计算机决策 4. 某一决策方案,只有一种执行后果并能事先测定,此种类型的决策称为() A. 确定型决策 B. 风险型决策 C. 非肯定型决策 D. 概率型决策 5. 在可供选择的方案中,存在两种或两种以上的自然状态,哪种状态最终会发生是不确定的,但是每种自然状态发生的可能性即概率大小是可以估计的,这类决策是() A.确定型决策 B.战术决策 C.不确定型决策 D.风险型 决策 6. 将对某一问题有兴趣的人集合在一起,在完全不受约束的条件下,敞开思路、畅所欲言的决策方法是() A. 因果分析法 B. 名义小组法 C. 德尔菲法 D. 头脑风暴法 7. 选取若干专家,以函询方式请专家们独立书面发表意见,并几经反馈的方法,称为() A. 德尔菲法 B. 通讯预测法 C. 名义小组法 D. 头脑风暴法 8. 在经营单位组合分析法(波士顿矩阵法)中,某种产品的业务增长率高而市场占有率较低,这种产品是() A. 明星产品 B. 金牛产品 C. 幼童产品 D. 瘦狗产品 9. “目标就是路标,确定目标如同识别北极星”这句话主要说明了目标()方面的作用

A. 指明方向 B. 提供标准 C. 激励因素 D. 管理基准 10. 在经营单位组合分析法(波士顿矩阵法)中,某种产品的市场占有率较高而业务增长率较低,这种产品是() A.明星产品 B.金牛产品 C.幼童产品 D.瘦狗产品 11. 在经营单位组合分析法(波士顿矩阵法)中,确定各个经营单位的活动方向的二维因素是() A. 市场占有率和利润增长率 B .市场占有率和业务增长率 C .市场竞争能力和市场引力 D .市场占有率和销售增长率 12. 某产品的单价为20 元,单位变动成本16元,固定成本4 万元,其保本点销 售量为() A.1 万件 B.2 万件 C.10 万件 D.20 万件 13. 甲公司生产某种产品的固定成本是30万元,该产品的单位变动成本为4元,市场售价为10 元,若要达到 6 万元销售毛利的目标,该产品产销量应为多少? () A.30000 件 B.45000 件 C.60000 件 D.75000 件 14. 下面哪一项不是目标管理的特点() A. 目标制定快捷 B. 注重成果 C .强调自我控制D. 促使权力下放 15. 有X、Y、Z 三种方案,各方案的投资额分别为1000、1300、1500(万元),三种方案增加投资后可能增加的销售收入分别是3000、4000、5000(万元),其可能概率分别为0.9、0.8 、0.7 ,问哪一个方案最好?(注:不考虑税收的影响)() A.X方案 B.Y方案 C.Z方案 D.三个方案都一样 16. 常用的风险型决策方法有() A. 小中取大法 B. 大中取大法 C. 线性规划法 D. 决策树法 17. 选择在最差的自然状态下收益最大或损失最小的方案作为所要方案的准则是() A. 小中取大法 B. 大中取大法 C. 后悔值法 D. 决策树法 18. 选择在最好的自然状态下收益最大的方案作为所要方案的准则是() A. 小中取大法 B. 大中取大法 C. 后悔值法 D. 决策树法

第七章 微分方程经典例题

第七章 微分方程 例7 有高为1米的半球形容器,水从它的底部小孔流出,小孔横截面积为1平方厘米. 开始时容器内盛满了水, 求水从小孔流出过程中容器里水面的高度h (水面与孔口中心间的距离)随时间t 的变化规律. 解 由力学知识得,水从孔口流出的流量为 62.0dt dV Q ?== 孔口截面面积 重力加速度 ,12cm S = .262.0dt gh dV =∴ ① 设在微小的时间间隔],,[t t t ?+水面的高度由h 降至,h h ?+则,2dh r dV π-= ,200)100(100222h h h r -=--= .)200(2dh h h dV --=∴π ② 比较①和②得: ,262.0)200(2dt gh dh h h =--π 即为未知函数得微分方程. ,)200(262.03dh h h g dt --- =π ,1000==t h ,1015 14 262.05?? = ∴g C π 所求规律为 ).310107(265.45335h h g t +-?= π 例10 求解微分方程 .2222xy y dy y xy x dx -=+- 解 原方程变形为=+--=222 2y xy x xy y dx dy ,1222 ? ?? ??+--??? ??x y x y x y x y 令,x y u =则,dx du x u dx dy +=方程化为,1222u u u u dx du x u +--=+ 分离变量得? ? ????-+--??? ??--112212121u u u u ,x dx du = 两边积分得 ,ln ln ln 2 1 )2ln(23)1ln(C x u u u +=----

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什么叫函数模板?什么叫模板函数?什么叫类模板?什么叫模板类? 答:不受数据类型限制的通用型的函数使代码的可重用性大大提高。把数据类型改为

习题答案(6数组)《C语言程序设计》课后习题解答

一、单项选择题 1. D 2. D 3.A 4. B 二、程序设计题 1、 #include void main() { int math_score[10],max,min,sum=0,count=0,m,i; float average; for(i=0;i<10;i++) { printf("请输入第%d个同学的数学分数:\n",i+1); scanf("%d",&math_score[i]); } max=min=math_score[0]; for(i=0;i<10;i++) { sum+=math_score[i]; if(math_score[i]>max) max=math_score[i]; if(math_score[i]average) count++; printf("十名同学的数学成绩为:\n"); for(i=0;i<10;i++) printf("%d ",math_score[i]); printf("\n最高分为:%d",max); printf("\n最低分为:%d",min); printf("\n高于平均分的人数为:%d\n",count); } 2、 #include void main() { int a[11]={-1,3,5,6,12,34,55,67,76,88}; int number,i,j,m; printf("输入需要参入的数据:\n"); scanf("%d",&number); printf("原数组序列为:\n");

第七章-平面直角坐标系知识点归纳及典型例题

第七章平面直角坐标系的复习资料 一、本章的主要知识点 (一)有序数对:有顺序的两个数a与b组成的数对。 1、记作(a ,b); 2、注意:a、b的先后顺序对位置的影响。 (二)平面直角坐标系 1、历史:法国数学家笛卡儿最早引入坐标系,用代数方法研究几何图形; 2、构成坐标系的各种名称; 3、各种特殊点的坐标特点。 (三)坐标方法的简单应用 ; 1、用坐标表示地理位置; 2、用坐标表示平移。 二、特殊位置点的特殊坐标:

六、用坐标表示平移:见下图 ~ 五、经典例题 知识一、坐标系的理解 例1、平面内点的坐标是( ) A 一个点 B 一个图形 C 一个数 D 一个有序数对 { 坐标不同 同 y >0 y <0 ) P (x ,y -a ) P (x -a ,y ) P (x +a ,y ) P (x ,y +a ) 向上平移a 个单位 ~ 向左平移a 个单位

学生自测 1.在平面内要确定一个点的位置,一般需要________个数据; 在空间内要确定一个点的位置,一般需要________个数据. 2、在平面直角坐标系内,下列说法错误的是( ) A 原点O 不在任何象限内 B 原点O 的坐标是0 C 原点O 既在X 轴上也在Y 轴上 D 原点O 在坐标平面内 知识二、已知坐标系中特殊位置上的点,求点的坐标 ( 点在x 轴上,坐标为(x,0)在x 轴的负半轴上时,x<0, 在x 轴的正半轴上时,x>0 点在y 轴上,坐标为(0,y )在y 轴的负半轴上时,y<0, 在y 轴的正半轴上时,y>0 第一、三象限角平分线上的点的横纵坐标相同;坐标点(x ,y )xy>0 第二、 四象限角平分线上的点的横纵坐标相反;坐标点(x ,y )xy<0 例1 点P 在x 轴上对应的实数是3 ,则点P 的坐标是 ,若点Q 在y 轴上 对应的实数是 3 1 ,则点Q 的坐标是 , 例2 点P (a -1,2a -9)在x 轴负半轴上,则P 点坐标是 。 学生自测 … 1、点P(m+2,m -1)在y 轴上,则点P 的坐标是 . 2、已知点A (m ,-2),点B (3,m -1),且直线AB ∥x 轴,则m 的值为 。

数据结构第六章树和二叉树习题及答案

习题六树和二叉树 一、单项选择题 1.以下说法错误的是() A. 树形结构的特点是一个结点可以有多个直接前趋 B. 线性结构中的一个结点至多只有一个直接后继 C. 树形结构可以表达(组织)更复杂的数据 D. 树(及一切树形结构)是一种”分支层次”结构 E. 任何只含一个结点的集合是一棵树 2. 下列说法中正确的是() A. 任何一棵二叉树中至少有一个结点的度为2 B. 任何一棵二叉树中每个结点的度都为2 C. 任何一棵二叉树中的度肯定等于2 D. 任何一棵二叉树中的度可以小于2 3. 讨论树、森林和二叉树的关系,目的是为了() A. 借助二叉树上的运算方法去实现对树的一些运算 B. 将树、森林按二叉树的存储方式进行存储 C. 将树、森林转换成二叉树 D. 体现一种技巧,没有什么实际意义4.树最适合用来表示() A. 有序数据元素 B .无序数据元素 C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B .11 C .15 D .不确定 6. 设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1, M2和M3与森林F 对应的二叉树根结点的右子树上的结点个数是()。 A.M1 B .M1+M2 C .M3 D .M2+M3 7.一棵完全二叉树上有1001个结点,其中叶子结点的个数是() A.250 B .500 C .254 D .505 E .以上答案都不对 8. 设给定权值总数有n 个,其哈夫曼树的结点总数为() A. 不确定 B . 2n C . 2n+1 D . 2n-1 9.二叉树的第I 层上最多含有结点数为() I I-1 I-1 I A.2I B .2 I-1 -1 C .2 I-1 D .2 I -1 10.一棵二叉树高度为h, 所有结点的度或为0,或为2,则这棵二叉树最少有()结点A.2h B .2h-1 C .2h+1 D .h+1 11. 利用二叉链表存储树,则根结点的右指针是()。 A.指向最左孩子 B .指向最右孩子 C .空D .非空 12.已知一棵二叉树的前序遍历结果为为()。 A.CBEFDA B .FEDCBA 13.已知某二叉树的后序遍历序列是()。 ABCDEF中序遍历结果 为 C .CBEDFA D dabec, 中序遍历序列是 CBAEDF则后序遍历的结 果 .不定 debac , 它的前序遍历是

第七章习题答案

第七章习题答案

第六章 大中取大法:乙方案最优 小中取大法:丙方案最优 大中取小法:后悔值计算如下: 故甲方案最优 第七章 1. 生产甲产品每机时提供的边际贡献=(30-15)/5=3(元/机时) 生产乙产品每机时提供的边际贡献=(45-20)/8=3.125(元/机时) 80000机时分别生产甲、乙产品所能提供的边际贡献: 甲产品边际贡献=80000×3=240000(元) 乙产品边际贡献=80000×3.125=250000(元)

结论:企业应选择生产乙产品。 2. (1) A产品单位边际贡献=300×92%-135=141(元/件) B产品单位边际贡献=330×87%-140=147.1(元/件) C产品单位边际贡献=230×95%-105=113.5(元/件) D产品单位边际贡献=250×98%-112=133(元/件) (2) A产品单位原材料边际贡献=141÷12=11.75(元/公斤) B产品单位原材料边际贡献=147.1×12=12. 26 (元/公斤) C产品单位原材料边际贡献=113.5×7.6=14.93(元/公斤) D产品单位原材料边际贡献=133×10=13.3(元/公斤) 结论:当原材料用于生产C产品时,平均每公斤材料带来的边际贡献最多,即在现有条件下,只要销路有保障,该企业应将原材料优行用于C产品生产。

3.(1) 甲产品虽然亏损,但其销售收入(60000元)仍大于变动成本(51000元),即亏 损产品甲还可以提供9000元的边际贡 献,并弥补企业部分固定成本,在没有更 好产品替代的情况下,仍应继续生产下 去。 (2) 亏损产品的设备对外承接加工、维修服务 预计收益=50000-28000=22000(元) 由于大于甲产品提供的边际贡献9000元,故此时若继续生产甲产品从经济上不划算。或:生产甲产品净边际贡献=甲产品边际贡献-机会成本(对外加工收益) =9000- (50000-28000) =-13000(元)即继续生产甲亏损产品比停止生产将设备 对外承接加工少获得收益13000元,故应 停 止甲产品生产,并将设备对外加工。 (3) 转产丁产品的边际贡献净额=2500× (26-12)-3000=32 000(元) 由于丁产品边际贡献净额大于甲产品的

一元一次不等式典型例题(第七章)

一元一次不等式 典型例题 相关练习 1.不等式基本性质的应用:(比较大小) 已知:b a < (1) 11+<+b a ; (2) c b c a -<-; (3) b a 22<; (4) b a 2 1 21->- ; (5)2323-<-b a ; (6) c b c a +->+-. 注:能说出具体理由. 2.求不等式32-x ≤5的正整数解. 解:求解集为 x ≤4, ∴正整数解为4,3,2,1=x . 注:不等式的“特殊解”(正整数解、非负整数解…). 3.如果010<<--<-0 , 312a x x 无解,则求a 的 取值范围. 解: ○ ○ 3 m

习题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 。

数据结构 第六章 图 练习题及答案详细解析

图 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

半导体物理习题第六章第七章答案

第6章 p-n 结 1、一个Ge 突变结的p 区和n 区掺杂浓度分别为N A =1017cm -3和N D =5?1015cm -3,求该pn 结室温下的自建电势。 解:pn 结的自建电势 2(ln )D A D i N N kT V q n = 已知室温下,0.026kT =eV ,Ge 的本征载流子密度1332.410 cm i n -=? 代入后算得:1517 132 510100.026ln 0.36(2.410)D V V ??=?=? 4.证明反向饱和电流公式(6-35)可改写为 202 11()(1)i s n n p p b k T J b q L L σσσ=++ 式中n p b μμ= ,n σ和p σ分别为n 型和p 型半导体电导率,i σ为本征半导体电导率。 证明:将爱因斯坦关系式p p kT D q μ= 和n n kT D q μ=代入式(6-35)得 0000( )p n p n S p n n p n p n p p n n p J kT n kT p kT L L L L μμμμμμ=+=+ 因为002i p p n n p =,0 2 i n n n p n =,上式可进一步改写为 221111( )( )S n p i n p i n p p p n n n p p n J kT n qkT n L p L n L L μμμμμμσσ=+ =+ 又因为 ()i i n p n q σμμ=+ 22222222()(1)i i n p i p n q n q b σμμμ=+=+ 即 22 2 2222 2 ()(1) i i i n p p n q q b σσμμμ==++ 将此结果代入原式即得证

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

西方经济学第六章第七章课后题(含答案解析)

完全竞争市场P172-173 4、已知某完全竞争行业中的单个厂商的短期成本函数为STC=0.1Q3-2Q2+15Q+10。试求: (1)当市场上产品的价格为P=55时,厂商的短期均衡产量和利润; (2)当市场价格下降为多少时,厂商必须停产? (3)厂商的短期供给函数。

5、已知某完全竞争的成本不变行业中的单个厂商的长期总成本函数LTC=Q3-12Q2+40Q。试求: (1)当市场商品价格为P=100时,厂商实现MR=LMC时的产量、平均成本和利润;(2)该行业长期均衡时的价格和单个厂商的产量; (3)当市场的需求函数为Q=660-15P时,行业长期均衡时的厂商数量。

9、已知完全竞争市场上单个厂商的长期成本函数为LTC=Q3-20Q2+200Q,市场的产品价格为P=600。求: (1)该厂商实现利润最大化时的产量、平均成本和利润各是多少? (2)该行业是否处于长期均衡?为什么? (3)该行业处于长期均衡时每个厂商的产量、平均成本和利润各为多少? (4)判断(1)中的厂商是处于规模经济阶段,还是处于规模不经济阶段?

不完全竞争市场P206 6.已知某垄断厂商利用一个工厂生产一种产品,其产品在两个分割的市场上出售,他的成本函数为Q Q TC 402 +=,两个市场的需求函数分别为111.012P Q -=,224.020P Q -=。求:(1)当该厂商实行三级价格歧视时,他追求利润最大化前提下的两市场各自的销售量、价格以及厂商的总利润。 (2)当该厂商在两个市场实行统一的价格时,他追求利润最大化前提下的销售量、价格以及厂商的总利润。 (3)比较(1)和(2)的结果。

第七章-平面直角坐标系知识点归纳及典型例题

第七章 平面直角坐标系的复习资料 一、本章的主要知识点 (一)有序数对:有顺序的两个数a 与b 组成的数对。 1、记作(a ,b ); 2、注意:a 、b 的先后顺序对位置的影响。 (二)平面直角坐标系 1、历史:法国数学家笛卡儿最早引入坐标系,用代数方法研究几何图形 ; 2、构成坐标系的各种名称; 3、各种特殊点的坐标特点。 (三)坐标方法的简单应用 1、用坐标表示地理位置; 2、用坐标表示平移。 二、特殊位置点的特殊坐标: 六、用坐标表示平移:见下图 五、经典例题 知识一、坐标系的理解 例1、平面内点的坐标是( ) A 一个点 B 一个图形 C 一个数 D 一个有序数对 学生自测 1.在平面内要确定一个点的位置,一般需要________个数据; 在空间内要确定一个点的位置,一般需要________个数据. 2、在平面直角坐标系内,下列说法错误的是( ) A 原点O 不在任何象限内 B 原点O 的坐标是0 坐标轴上 点P (x ,y ) 连线平行于 坐标轴的点 点P (x ,y )在各象限 的坐标特点 象限角平分线上 的点 X 轴 Y 轴 原点 平行X 轴 平行Y 轴 第一象限 第二象限 第三象限 第四象限 第一、 三象限 第二、四象限 (x,0) (0,y) (0,0) 纵坐标相同横坐标不同 横坐标 相同纵 坐标不 同 x >0 y >0 x <0 y >0 x <0 y <0 x >0 y <0 (m,m) (m,-m) P (x ,y ) P (x ,y -a ) P (x -a ,y ) P (x +a ,y ) P (x ,y +a ) 向上平移a 个单位向下平移a 个单位向右平移a 个单位向左平移a 个单位

微观经济学第六章第七章考试习题

第六章市场结构理论 一、单项选择题 1、在完全竞争市场上,厂商实现短期均衡的条件是() A、P=AR B、P=MR C、P=SMC D、P=SAC 2、在微观经济学中,对()行业的长期均衡状态的分析通常被用来作为对消费者统治说法的一种证明。 A、完全垄断 B、完全竞争 C、垄断竞争 D、寡头竞争 3、短期内,一个完全竞争厂商所得到的价格若低于以下哪种成本就会停止营业()。 A、平均总成本 B、平均可变成本 C、短期边际成本 D、平均固定成本 4、根据完全竞争市场的条件,下列()行业最接近完全竞争行业。 A、自行车行业 B、服装行业 C、玉米行业 D、烟草行业 5、在一个完全竞争的市场上,厂商所面临的需求曲线与其长期平均成本曲线相切 是()。 A、厂商在长期内要得到最大利润的充要条件 B、该行业内厂商的数目不再变化的条件 C、厂商在长期内要得到最大利润的条件 D、厂商在长期内要实现亏损最小的条件 6、在短期内,()是完全竞争厂商的停止营业点。 A、SAC曲线与SMC曲线的交点 B、MR曲线与SMC曲线的交点 C、AVC曲线与SMC曲线的交点 D、AFC曲线与SMC曲线的交点 7、假定一个完全竞争行业内某厂商在目前产量水平上的边际成本、平均总成本和 平均收益均等于1美元,则这家厂商()。 A、肯定只得到正常利润 B、肯定没得到最大利润 C、是否得到了最大利润还不能确定 D、肯定得到了最少利润 8、在短期内,()是完全竞争厂商的收支相抵点。 A、SAC曲线与SMC曲线的交点 B、MR曲线与SMC曲线的交点 C、AVC曲线与SMC曲线的交点 D、MR曲线与SAC曲线的切点 9、在完全竞争的条件下,如果厂商把产量调整到平均总成本曲线最低点所对应的 水平()。 A、他将获得最大利润 B、他不能获得最大利润 C、他是否获得最大利润仍无法确定 D、他一定亏损 10、如果某厂商的边际收益大于边际成本,那么为了取得最大利润()。 A、他在完全竞争的条件下应该增加产量,在不完全竞争条件下则不一定 B、他在不完全竞争条件下应该增加产量,在完全竞争条件则不一定

第七章典型作业题

7-10 用细绝缘线弯成的半圆形环,半径为R ,其上均匀地带正电荷Q ,求圆心O 点处的电场强度。 解:如图所示,设0Q >。在半圆形环上任取一电荷元d d q l λ=,在圆心处的电场强度的大小为 2 01d d 4l E R λπε= 方向如图所示。式中,d d Q l R R λθπ= = 由电荷的对称分布可知,圆心O 点处的电场强度沿x 轴正方向。有 220001d d cos 2cos d 44x l E E R R πλλθθθπεπε===????22 0022Q R R λπεπε== 7-12 一半径为r 的半球面均匀带电,电荷面密度为σ,求球心处的电场强度。 解:如图所示,图中圆环对ox 轴对称,所带电量为()d d 2sin d q S r r σσπθθ==,圆环半径为sin r θ,环心在x 轴处。 根据带电圆环轴线上的电场强度(见课本260页公式(7-11)) () 32 2 201 4xq E x R πε= + 作相应的代换,cos x r θ=,sin R r θ=, 222x R r +=, 可得到细圆环在O 点的电场强度为 ()300 cos 2sin d 1d 4sin cos d 2r r r E r θσπθθπεσ θθθε?= = 通过积分,得到球心处的电场强度为 2 d sin cos d 24E E πσσθθθεε=== ?? E 指向x 正方向。

7-17 在半径分别为10 cm 和20 cm 的两层假想同心球面中间,均匀分布着电荷体密度为 9310C m ρ-=的正电荷。求离球心5 cm 、15 cm 和50 cm 处的电场强度。 解:以1R 和2R 分别表示均匀带电球壳的内、外半径。 (1)设离球心10.05r m =处的电场强度为1E r ,在以1r 为半径的高斯球面1S 上,1E r 的大小 应该相同,并处处与1S 的法线方向平行。对1S 运用高斯定理,有 1 10 d d 0S V E S ρε= =????? r r g ò 所以,离球心5 cm 处的电场强度10E =r 。 (2)以20.15r m =为半径作高斯球面2S ,设2S 上各点的电场强度为2E r ,对2S 运用高斯 定理,有 2 22220 d d 4S V E S E r ρπε== ????? r r g ò 式中d V ρ???是2S 所围的电荷量()21 2 33214d 4d 3 r R V r r r R π ρρπρ== -???? 所以,离球心15 cm 处的电场强度2E r 的大小为 () 33212202 4.03r R E V m r ρε-= = 2E r 的方向与2S 的法线方向一致,即沿径向向外。 (3)以30.50r m =为半径作高斯球面3S ,带电球壳在3S 内,对3S 运用高斯定理,有 ()3 23 33332 10 d 4d 43S V E S E r R R ρππρεε == =-????? r r g ò 所以,离球心50 cm 处的电场强度3E r 的大小为 () 3 32122 02 1.053R R E V m r ρε-= = 3E r 的方向与3S 的法线方向一致,即沿径向向外。

相关主题
文本预览
相关文档 最新文档