第四章 数组作业

第四章数组

4.1 选择题

1. 以下关于数组的描述正确的是( )。

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. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A. 整型常量

B. 整型表达式

C. 整型常量或整型表达式

D. 任何类型的表达式

4. 以下对一维数组m进行正确初始化的是( )。

A. int m[10]=(0,0,0,0) ;

B. int m[10]={ };

C. int m[ ]={0};

D. int m[10]={10*2};

5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( )。

A. &bb[0]+1

B. &bb[1]

C. &bb[0]++

D. bb+1

6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存

中所占字节数是( )。

A. 3

B. 6

C. 10

D. 20

7. 若有以下说明:

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

char c='a',d,g;

则数值为4的表达式是( )

A. a[g-c]

B. a[4]

C. a['d'-'c']

D. a['d'-c]

8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。

#include

main()

{

int a[10],i=0;

while(i<10) scanf("%d",________ );

}

A. a+(i++)

B. &a[i+1]

C. a+i

D. &a[++i]

9. 执行下面的程序段后,变量k中的值为( )。

int k=3, s[2];

s[0]=k; k=s[1]*10;

A. 不定值

B. 33

C. 30

D. 10

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

main()

{

int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]);

}

A. 258

B. 741

C. 852

D. 369

11. 以下程序运行后,输出结果是( )。

main()

{

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

for(i=0;i

printf("%d\n",n[k]);

}

A. 不确定的值

B. 2

C. 1

D. 0

12. 以下程序运行后,输出结果是( )。

main()

{

int y=18,i=0,j,a[8];

do

{ a[i]=y%2; i++;

y=y/2;

} while(y>=1);

for(j=i-1;j>=0;j--) printf("%d",a[j]);

printf("\n");

}

A. 10000

B. 10010

C. 00110

D. 10100

13. 以下程序运行后,输出结果是( )。

main()

{

int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;

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

if(a1[i]

else a[k]=a2[j++];

for(k=0;k<4;k++) printf("%d",a[k]);

}

A. 1234

B. 1324

C. 2413

D. 4321

14. 以下程序运行后,输出结果是( )。

main()

{

int i,k,a[10],p[3];

k=5;

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

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

for (i=0;i<3;i++) k+=p[i]*2;

printf("%d\n",k);

}

A. 20

B. 21

C. 22

D. 23

15. 以下程序运行后输出结果是( )。

main( )

{

int n[3],i,j,k;

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

n[i]=0;

k=2;

for (i=0;i

for (j=0;j

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

printf("%d\n",n[1]); }

A. 2

B. 1

C. 0

D. 3

16. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找

x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是 ( )。

main()

{

int i,a[10],x,flag=0;

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

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

scanf("%d",&x);

for(i=0;i<10;i++) if _______ {flag=i+1; break;}

printf("%d\n", flag);

}

A. x!=a[i]

B. !(x-a[i])

C. x-a[i]

D. !x-a[i]

17. 若说明:int a[2][3]; 则对a数组元素的正确引用是( ) 。

A. a(1,2)

B. a[1,3]

C. a[1>2][!1]

D. a[2][0]

18. 若有定义:int b[3][4]={0};则下述正确的是( ) 。

A. 此定义语句不正确

B. 没有元素可得初值0

C. 数组b中各元素均为0

D. 数组b中各元素可得初值但值不一定为0

19. 若有以下数组定义,其中不正确的是( ) 。

A. int a[2][3];

B int b[][3]={0,1,2,3};

C. int c[100][100]={0};

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

20. 若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。

A. t[2][4]

B. t[5][0]

C. t[0][0]

D. t[0,0]

21. 在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。

A. 4

B. 1

C. 2

D. 5

22. 在定义int n[5][6]后第10个元素是( )。

A. n[2][5]

B. n[2][4]

C. n[1][3]

D. n[1][4]

23. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为( )。

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

A. i*m+j

B. j*m+i

C. i*m+j-1

D. i*m+j+1

24. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是( )。

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A. 0.0

B. 4.0

C. 5.0

D. 6.0

25. 以下程序运行后,输出结果是 ( )。

main()

{

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

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

}

A. 0650

B. 1470

C. 5430

D. 输出值不定

26. 以下程序运行后,输出结果是( )。

main()

{

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

int i,s=0;

for(i=0;i<4;i++) s+=aa[i][1];

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

}

A. 11

B. 19

C. 13

D. 20

27. 有以下程序

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\n",s);

}

该程序的输出结果是( )。

A. 18

B. 19

C. 20

D. 21

28. 若定义如下变量和数组:

int i;

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

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

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 9

29. 下述对C语言字符数组的描述中错误的是( )。

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

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

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

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

30. 下述对C语言字符数组的描述中正确的是 ( )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续

占存储空间

B. 一维数组的元素在引用时其下标大小没有限制

C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的

方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素

31. 不能把字符串:Hello!赋给数组b的语句是( )。

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '};

B. char str[10];str="Hello!";

C. char str[10];strcpy(str,"Hello!");

D. char str[10]="Hello!";

32. 合法的数组定义是( )。

A. int a[]="string";

B. int a[5]={0,1,2,3,4,5};

C. int s="string";

D. char a[]={0,1,2,3,4,5};

33. 下列语句中,不正确的是( )。

A. static char a[2]={1,2};

B. static char a[2]={ '1', '2'};

C. static char a[2]={ '1', '2', '3'};

D. static char a[2]={ '1'};

34. 若给出以下定义:

char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为( )。

A. 数组x和数组y等价

B. 数组x和数组y的长度相同

C. 数组x的长度大于数组y的长度

D. 数组x的长度小于数组y的长度

35. 若有数组定义: char array [ ]="China"; 则数组 array所占的空间为( )。

A. 4个字节

B. 5个字节

C. 6个字节

D. 7个字节

36. 若有定义和语句:

char s[10];s="abcd";printf("%s\n",s);

代表空格)( )。

则结果是(以下

└┘

A. 输出abcd

B. 输出a

C. 输出abcd

D. 编译不通过

└┘└┘└┘└┘

37. 下面程序运行后,输出结果是( )。

main()

{

char ch[7]={ "65ab21"};

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. 12ba56

B. 6521

C. 6

D. 62

38. 运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是( )。

A. 123,456,789

B. 1,456,789

C. 1,23,456,789

D. 1,23,456

main()

{

char s[100]; int c, i;

scanf("%c",&c); scanf("%d",&i); scanf("%s",s);

printf("%c,%d,%s\n",c,i,s);

}

39. 运行下面的程序,如果从键盘上输入:

ab<回车>

c <回车>

def<回车>

则输出结果为( )。

A. a

B. a

C. ab

D. abcdef

b b c

c c d

d d

e

f

#include

#define N 6

main()

{

char c[N];

int i=0;

for( ;i

for( i=0;i

printf("\n");

}

40. 运行下面的程序,如果从键盘上输入:ABC时,输出的结果是( )。

#include

main()

{

char ss[10]="12345";

strcat(ss, "6789" );

gets(ss);printf("%s\n",ss);

}

A. ABC

B. ABC9

C. 123456ABC

D. ABC456789

41. 判断两个字符串是否相等,正确的表达方式是( )。

A.while(s1==s2)

B. while(s1=s2)

C. while(strcmp(s1,s2)==0)

D. while(strcmp(s1,s2)=0)

42. 以下程序的输出结果是()。

main()

{

char str[12]={ 's','t','r','i','n','g'};

printf("%d\n",strlen(str));

}

A. 6

B. 7

C. 11

D. 12

43. 若有以下程序片段:

char str[ ]="ab\n\012\\\"";

printf("%d",strlen(str));

上面程序片段的输出结果是 ( )。

A. 3

B. 4

C. 6

D. 12

44. 若有以下程序段,输出结果是( )。

char s[ ]="\\141\141abc\t";

printf ("%d\n",strlen(s));

A. 9

B. 12

C. 13

D. 14

45. 设有static char str[ ]="Beijing";

则执行printf("%d\n", strlen(strcpy(str,"China")));

后的输出结果为 ( )。

A. 5

B. 7

C. 12

D. 14

46. 以下程序运行后,输出结果是( )。

main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A. "AAAA"

B. "BBB"

C. "BBBCC"

D. "CC"

47. 以下程序运行后,输出的结果是( )。

#include

#include

main()

{

char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"},k;

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

printf("%s\n",&w[k][k]);

}

A. ABCD

B. ABCD

FGH EFG

KL IJ

M

C. EFG

D. FGH

JK KL

O

48. 以下程序运行后,输出结果是( )。

main()

{

char arr[2][4];

strcpy(arr,"you"); strcpy(arr[1],"me");

arr[0][3]='&';

printf("%s \n",arr);

}

A. you&me

B. you

C. me

D. err

4.2 填空题

1. C语言中,数组元素的下标下限为 ________。

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

3. 在定义时对数组的每一个元素赋值叫数组的________;C语言规定,只有________存储

类型和________存储类型的数组才可定义时赋值。

4. 下面程序的运行结果是________。

#define N 5

main()

{

int a[N]={1,2,3,4,5},i,temp;

for(i=0;i

{temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp;}

printf("\n");

for(i=0;i

}

5. 以下程序以每一行输出4个数据的形式输出a数组。

#include

main()

{

int a[20],i;

for(i=0;i<20;i++) scanf("%d", 【1】);

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

{if ( 【2】 ) 【3】;

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

}

printf("\n");

}

6. 以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个

数组中的数按由小到大的顺序归并到c数组中。

#include

main()

{

int a[10]={1,2,5,8,9,10}, an=5,b[10]={1,3,4,8,12,18},bn=5;

int i,j,k,c[20],max=9999;

a[an+1]=b[bn+1]=max;

i=j=k=0;

while((a[i]!=max)||(b[j]!=max))

if(a[i]

else {c[k]= 【3】; k++; 【4】;}

for(i=0;i

}

7. 以下程序的功能是:从键盘上输入若干个学生的成绩,计算出平均成绩,并输出低于平

均分的学生成绩,用输入负数结束输入。请填空。

main( )

{

float x[1000], sum=0.0, ave, a;

int n=0, i;

printf("Enter mark:\n");scanf("%f",&a);

while(a>=0.0&& n<1000)

{ sum+=【1】; x[n]= 【2】;

n++; scanf("%f",&a);

}

ave=【3】;

printf("Output:\n");

printf("ave=%f\n",ave);

for (i=0;i

if (【4】) printf ("%f\n",x[i]);

}

8. 以下程序把一个整数转换成二进制数,所得二进制数的每一位放在一维数组中,输出此

二进制数。注意:二进制数的最低位在数组的第一个元素中。

#include

main()

{

int b[16],x,k,r,i;

printf("please input binary num to x"); scanf("%d",&x);

printf("%d\n",x);

k=-1;

do

{r=x% 【1】 ;

b[++k]=r;

x/= 【2】 ;

}

while(x>=1);

for(i=k; 【3】 ;i--)

printf("%d",b[i]); printf("\n");

}

9. 输入10个整数,用选择法排序后按从小到大的次序输出。

#define N 10

main( )

{

int i,j,min,temp,a[N];

for(i=0;i

scanf("%d", 【1】);

printf("\n");

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

{min=i;

for(j=i;j

if(a[min]>a[j]) 【3】 ;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

for (i=0;i

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

printf("\n");

}

10. 当先后输入1,3,4,12,23时,屏幕上出现________;再输入12时,屏幕上出现________。

#include

#define N 5

main()

{

int i,j,number,top,bott,min,loca,a[N],flag;

char c;

printf("please input 5 numbers a[i]>a[i-1]\n");

scanf("%d",&a[0]); i=1;

while(i

{scanf("%d",&a[i]); if(a[i]>=a[i-1]) i++;} printf("\n");

for(i=0;i

flag=1;

while(flag)

{ scanf("%d",&number); loca=0; top=0; bott=N-1;

if ((numbera[N-1])) loca=-1;

while((loca==0)&&(top<=bott))

{min=(bott+top)/2;

if(number==a[min])

{loca=min;printf("%d is the %dth number\n",number,loca+1);}

else if (number

else top=min+1;

}

if (loca==0||loca==-1) printf("%d is not in the list \n",number);

c=getchar();

if (c==’N’||c==’n’) flag=0;

}

}

11. 以下程序运行结果是 ________.

#include

main()

{

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

for(i=0;i<=2;i++) { s1=s1+ a[i][i];

s2=s2*a[i][i];};

printf("s1=%d,s2=%d",s1,s2);

}

12. 以下程序完成功能是:计算两个3*4阶矩阵相加,并打印出结果。请填空。

#include

main()

{

int a[3][4]={{3,-2,1,2},{0,1,3,-2},{3,1,0,4}};

int b[3][4]={{-2,3,0,-1},{1,0,-2,3},{-2,0,1,-3}};

int i,j,c[3][4];

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

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

________;

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

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

printf("%d",c[i][j]);

printf("\n");

}

}

13. 以下程序的运行结果是________.

main()

{

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

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

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

{if(i==3) a[i][j]=a[i-1][a[i-1][j]]+1;

else a[i][j]=j;

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

}

printf("\t");

}

}

14. 阅读下列程序:

#include

main()

int i, j, row, column,m;

static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

m=array[0][0];

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

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

if (array[i][j]

{ m=array[i][j]; row=i; column=j;}

printf("%d,%d,%d\n",m,row,column);

}

上述程序的输出结果是 ________。

15. 若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该

是________。

:

.

char a[10],b;

scanf("a=%s b=%c",a,&b);

:

.

16. 以下程序段的输出结果是________。

main()

{

char b[]="Hello,you";

b[5]=0;

printf("%s\n", b );

}

17. 若有以下程序段,若先后输入:

English↙

Good↙

则其运行结果是________。

main()

{

char c1[60],c2[3];

int i=0,j=0;

scanf("%s",c1);

scanf("%s",c2);

while(c1[i]!= '\0') i++;

while(c2[j]!= '\0') c1[i++]=c2[j++];

c1[i]= '\0';

printf("\n%s",c1);

}

18. 从键盘输入由5个字符组成的单词,判断此单词是不是hello,并显示结果。

#include

main()

static char str[ ]={‘h’,’e’,’l’,’l’,’o’};

char str1[5];

【1】;

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

【2】;

flag=0;

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

if 【3】 {flag=1; break;}

if(flag) printf("this word is not hello");

else printf("this word is hello");

}

19. 以下程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

请填空。

#include

#include

main()

{

char a[]="clanguage",t;

int i, j, k;

k=strlen(a);

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

for(j=i+2; j<=k; 【1】)

if( 【2】 )

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

puts(a);

printf("\n");

}

20. 输入5个字符串,将其中最小的打印出来。

main()

{

char str[10],temp[10]; int i;

【1】;

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

{gets(str);

if (strcmp(temp,str)>0) 【2】;

}

printf("\nThe first string is:%s\n",temp);

}

21. 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不

相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。

#include

main( )

{

char str1[100],str2[100],c;

int i,s;

printf("\n input string 1:\n"); gets(str1);

printf("\n input string 2:\n"); gets(str2);

i=0;

while((strl[i]==str2[i]&&(str1[i]!= 【1】))

i++;

s= 【2】 ;

printf("%d\n",s);

}

22. 设有下列程序:

#include

#include

main()

{

int i;

char str[10], temp[10];

gets(temp);

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

{ gets(str);

if (strcmp(temp,str)<0) strcpy(temp,str);

}

printf("%s\n",temp);

}

上述程序运行后,如果从键盘上输入(在此代表回车符):

C++

BASIC

QuickC

Ada

Pascal

则程序的输出结果是 ________。

23. 以下程序功能是:统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束

标志,请填空。

#include

#include

main( )

{

int num[26],i; char c;

for(i=0; i<26; i++) num[i]=0;

while( 【1】 != '#') /*统计从终端输入的大写字母个数*/

if( isupper(c)) num[c-65]+=1;

for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/

if(num[i]) printf("%c:%d\n",i 【2】 , num[i]);

}

24. 下面程序段完成功能是:输出两个字符串中对应字符相等的字符。请填空。

char x[ ]= "language";

char y[ ]= "llngga";

int i=0;

while (x[i]!= 【1】 &&y[i]!= 【2】 )

{ if (x[i]==y[i]) printf("%c", 【3】);

else i++;

}

25. 下面程序完成功能是:计算一个字符串中子串出现的次数。

#include

main()

{

int i ,j, k,count;

char str1[20],str2[20];

printf("zhu chuan:");

gets(str1);

printf("zi chuan:");

gets(str2);

【1】;

for(i=0;str1[i];i++)

for(j=i,k=0;str1[j]==str2[k];j++,k++)

if ( 【2】 )

count++;

printf("chuxian cishu=%d\n",count);

}

26. 下面程序完成以下功能:从键盘输入一行字符,统计其中有多少个单词,单词之间用空

格分隔。

#include

main()

{

char s[81];

int i , c, num=0,word=0;

【1】;

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

if(c==32) 【2】;

else if (word==0) {word=1; 【3】;}

printf("there are %d words.\n",num);

}

27. 下面程序完成功能是:判定用户输入的正整数是否为“回文数”,所谓“回文数”是指

正读反读都相同的数。请填空。

#include

main()

{

int buffer[10], i,k,flag;

long number ,n;

printf("please input one number");

scanf("%ld",&number);

k=0;

n=number;

do

{ 【1】 ;

k=k+1;

n=n/10;

}while (n!=0);

flag=1;

for( i=0;i<=(k-1)/2;i++)

if ( 【2】 )

flag=0;

if(flag)

printf("%ld is huiwenshu\n",number);

else printf("%ld is not huiwenshu\n",number);

}

数字图像处理第四章作业

第四章图像增强 1.简述直方图均衡化处理的原理和目的。拍摄一幅较暗的图像,用直方图均衡化方 法处理,分析结果。 原理:直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。也就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。把给定图像的直方图分布改变成“均匀”分布直方图分布 目的:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。它通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过直方图均衡化,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。 Matlab程序如下: clc; RGB=imread('wxf.jpg'); %输入彩色图像,得到三维数组 R=RGB(:,:,1); %分别取三维数组的一维,得到红绿蓝三个分量 G=RGB(:,:,2); %为R G B。 B=RGB(:,:,3); figure(1) imshow(RGB); %绘制各分量的图像及其直方图 title('原始真彩色图像'); figure(2) subplot(3,2,1),imshow(R); title('真彩色图像的红色分量'); subplot(3,2,2), imhist(R); title('真彩色图像的红色分量直方图'); subplot(3,2,3),imshow(G); title('真彩色图像的绿色分量'); subplot(3,2,4), imhist(G); title(' 的绿色分量直方图'); subplot(3,2,5),imshow(B); title('真彩色图像的蓝色分量'); subplot(3,2,6), imhist(B); title('真彩色图像的蓝色分量直方图'); r=histeq(R); %对个分量直方图均衡化,得到个分量均衡化图像 g=histeq(G); b=histeq(B); figure(3), subplot(3,2,1),imshow(r); title('红色分量均衡化后图像');

第四章 数组作业

第四章数组 4.1 选择题 1. 以下关于数组的描述正确的是( )。 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. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 4. 以下对一维数组m进行正确初始化的是( )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是( )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存 中所占字节数是( )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( ) A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); ┇ } A. a+(i++) B. &a[i+1] C. a+i D. &a[++i]

(完整版)七年级下册数学第四章二元一次方程组知识点

七年级数学下册《二元一次方程组》复习 一、知识梳理: 1、二元一次方程,二元一次方程组的概念; 2、用一个未知数的代数式表示另一个未知数; 3、二元一次方程组及其解的概念; 4、代入消元法,加减消元法的概念及应用; 5、方程组的同解问题的应用。 二、例题讲解: 1、已知方程1023=+y x ,(1)若用x 的代数式表示y 应为_________________; (2)当x=-1时方程的解为 ;(3)任意写出方程的两个解: 。 2、二元一次方程组?????x+y=5a 2 x+3y=13的解也是二元一次方程5x-3y=1的解,求a 的值. 3、若???x=-1y=2是方程组? ??ax -y=1x+6y=7的解,则a=________,b=_________。 4、下列说法中正确的是……………………………………………………( ) (A)x=3,y=2是方程3x-4y=1的一组解. (B)方程3x-4y=1有无数组解,即x,y 可以取任何数值. (C)方程3x-4y=1只有两组解,两组解是:? ????x=1y= 12 、 ???x=-1y=-1。(D)方程3x-4y=1可能无解. 5、解下列方程组: (1)? ??=-=-7923y x y x (2) ? ??=+=-16321123y x y x 6、已知?? ???-==210y x 是方程组???=+=-y a x y b x 225的解,求a 、b 的值。

练习: 1、方程组? ??5x+4y=77x+3y=15的解是______________。 2、两数和是16,两数差是2,则这两数的积是_____________。 3、若2x -3y=5,则6-4x+6y=_____________; 4、解关于x 、y 的方程组。?????ax -by=b bx -a y=a (ab ≠0,a 2≠b 2) 5、解下列方程组: (1) ?????x -12 y=16x+3y-6=0 (2)? ????3(x+1)=4(y+2)5y-23 =2x-15 三、方程组实际应用相关知 1、行程问题:路程=速度×时间; 2、工作量问题:工作量=工作效率×时间 (总工作量看作1) 3、利率问题:利润=售价-进价(成本) 利润=进价×利润率 4、银行存款问题:利息=本金×利率 年利率=月利率×12 5、等积变换问题:形变面积(或体积)不变。 二、例题讲解: 1、列方程组解应用题: (1)小红到邮局寄挂号信,需要邮资3元8角,小有票额为6角和8角的邮票若干张,问各需多少张这两种邮票?若设需6角的邮票x 张,需8角的邮票y 张,则可列出方程:_______________________。 (2)有两种酒精,一种浓度是60%,另一种浓度为90%,现在要配制成浓度为70%的洒精300克,问:每种需各取多少克? (3)甲、乙两人都从A 地到B 地,甲步行,乙骑自行车,如果甲先走6千米乙再动身,则乙走34 小时后恰好与甲同时到达B 地;如果甲先走1小时,那么乙用12 小时可追上甲,求两人的速度及AB 两地的距离。

第四章 二元一次方程组

第4 . 1节二元一次方程 一、背景介绍及教学资料 《二元一次方程》是浙教版义务教育课程标准实验教科书数学七年级下册第四章的第一节概念课。本节课是在学生学习了一元一次方程及其应用后而学习的内容,它是学习二元一次方程组和其他方程组的基础。并且是同学们进一步学习数学其他内容和科学等其他学科的必备基础。 有关教学资料可以查阅“中国基础教育网”。网址:https://www.360docs.net/doc/2219371923.html, 二、教学设计 1课时 【教学内容分析】 本节课提出了二元一次方程和二元一次方程的解的概念,学习把二元一次方程化为用一个未知数的代数式表示另一个未知数的形式,是一节起始课。二元一次方程的解的不确定性和相关性比较抽象,是一个难点。这节课是二元一次方程组及其解法的基础。 【教学目标】 1、了解二元一次方程的概念,了解二元一次方程的解的含义。 2、会检验一对数是不是二元一次方程的解,会把二元一次方程化为用一个未知数的代数式表示另一个未知数的形式。 3、通过对实际问题的分析,使学生进一步体会方程是刻画现实世界的有效数学模型。同时培养学生探究、创新的精神和合作交流的意识。 【教学重点、难点】 重点是二元一次方程的意义和二元一次方程的解的意义。 难点是二元一次方程的解的不确定性和相关性。即二元一次方程的解有无数个,但不是任意的两个数是它的解。 【教学准备】 几张漂亮的邮票,多媒体、实物投影仪等

【设计思想】 这节课是用美丽的邮票引出数学问题,因为问题(1)不能一元一次方程解决使学生产生认知上的冲突,引发认知的渴求。让学生经历从实际问题中抽象出二元一次方程的过程,体会方程的模型思想。 在自主探究学习的基础上,通过小组交流,讨论、合作,给每个学生发表意见的机会,起到了相互交流和补充的作用,也使学生体会到成功的喜悦,感受数学与生活的密切联系。 通过设置一些开放题型如“你能编拟一个所列方程为:3210x y +=的实际问题吗?” 等使学生感受到了数学源之于生活又为生活服务的道理,学生可从已有的生活经验出发,选择不同的取材,不同的内容而编写出丰富多彩的题来。 在教学中弱化概念,强调建模思想,使学生经历知识的形成过程与运用过程。这是与传统教材的最大区别。 乐成公立寄宿学校 陈苏玲

第四章期末复习学案

一、有关概念: (1)________________________________________________________,简称直角坐标系。 水平方向的数轴称为___轴或___轴;竖直方向的数轴称为___轴或___轴。它们统称坐标轴。公共原点O 称为_______。 (2)①若平面内有一点P (如图),我们应该如何确定它 的位置?(过点P 分别作x 、y 轴的垂线,将垂足对应的 数组合起来形成一对有序实数,这样的有序实数对叫做 点的_______,可表示为P (a ,b ) ②若已知点Q 的坐标为(m ,n ),该如何确定点Q 的位 置?(分别过x 、y 轴上表示m 、n 的点作x 、y 轴的垂线,两线的交点即为点Q ) (3)点坐标的特征: ①四个象限内点坐标的特征:两条坐标轴将平面分成4个区 域称为象限,按逆时针顺序分别记作第一、二、三、四象限。 ②数轴上点坐标的特征: x 轴上的点的纵坐标为0,可表示为_____________; y 轴上的点的横坐标为0,可表示为_____________。 ③象限角平分线上点坐标的特征: 第一、三象限角平分线上点的横、纵坐标相等,可表示为 _________;第二、四象限角平分线上点的横、纵坐标互为相反数,可表示为__________。 ④对称点坐标的特征: P(a ,b)关于x 轴对称的点的坐标为___________;P(a ,b)关于y 轴对称的点的坐标为___________;P(a ,b)关于原点对称的点的坐标为___________。 二、例题讲解 例1:函数y 1 3x -中自变量x 的取值范围是 ( ) A .x ≤2 B .x =3 C .x <2且x ≠3 D .x ≤2且x ≠3 x

数字电视第四章作业参考答案

数字电视原理作业四 1.声音压缩的依据是什么?MPEG-1音频编码利用了听觉系统的什么特性? 音频压缩技术指的是对原始数字音频信号流(PCM编码)运用适当的数字信号处理技术,在不损失有用信息量,或所引入损失可忽略的条件下,降低(压缩)其码率,也称为压缩编码。它必须具有相应的逆变换,称为解压缩或解码。音频信号在通过一个编解码系统后可能引入大量的噪声和一定的失真。MPEG-1音频编码主要利用了以下听觉系统的特性:层1:使用频域掩蔽特性,编码器的输出数据率为384kb/s层2:除了使用频域掩蔽特性外还利用了时间掩蔽特性,编码器的输出数据率为256kb/s~192kb/s层3:除了使用频域掩蔽特性和时间掩蔽特性,还使用了立体声数据的冗余,编码器的输出数据率为64kb/s 8.压缩数字视频数据量的基本原理是什么? 视频数据中存在着大量的冗余,即图像的各像素数据之间存在极强的相关性。利用这些相关性,一部分像素的数据可以由另一部分像素的数据推导出来,结果视频数据量能极大地压缩,有利于传输和存储。视频数据主要存在以下形式的冗余。 1.空间冗余 视频图像在水平方向相邻像素之间、垂直方向相邻像素之间的变化一般都很小,存在着极强的空间相关性。特别是同一景物各点的灰度和颜色之间往往存在着空间连贯性,从而产生了空间冗余,常称为帧内相关性。 2.时间冗余 在相邻场或相邻帧的对应像素之间,亮度和色度信息存在着极强的相关性。当前帧图像往往具有与前、后两帧图像相同的背景和移动物体,只不过移动物体所在的空间位置略有不同,对大多数像素来说,亮度和色度信息是基本相同的,称为帧间相关性或时间相关性。 3.结构冗余 在有些图像的纹理区,图像的像素值存在着明显的分布模式。如方格状的地板图案等。已知分布模式,可以通过某一过程生成图像,称为结构冗余。 4.知识冗余 有些图像与某些知识有相当大的相关性。如人脸的图像有固定的结构,嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位于脸部图像的中线上。这类规律性的结构可由先验知识得到,此类冗余称为知识冗余。 5.视觉冗余 人眼具有视觉非均匀特性,对视觉不敏感的信息可以适当地舍弃。在记录原始的图像数据时,通常假定视觉系统是线性的和均匀的,对视觉敏感和不敏感的部分同等对待,从而产生了比理想编码(即把视觉敏感和不敏感的部分区分开来编码)更多的数据,这就是视觉冗余。人眼对图像细节、幅度变化和图像的运动并非同时具有最高的分辨能力。 人眼视觉对图像的空间分解力和时间分解力的要求具有交换性,当对一方要求较高时,对另一方的要求就较低。根据这个特点,可以采用运动检测自适应技术,对静止图像或慢运动图像降低其时间轴抽样频率,例如每两帧传送一帧;对快速运动图像降低其空间抽样频率。 另外,人眼视觉对图像的空间、时间分解力的要求与对幅度分解力的要求也具有交换性,对图像的幅度误差存在一个随图像内容而变的可觉察门限,低于门限的幅度误差不被察觉,在图像的空间边缘(轮廓)或时间边缘(景物突变瞬间)附近,可觉察门限比远离边缘处增大3~

第4章 java课后作业_数组

第4张课后作业_数组 知识点:一维数组、二维数组 一、填空及选择: 1.数组元素的小标总是从___0___开始。 2.对于数组int[][]={{1,2,3},{4,5,6}}来说,t.length等于__2____,t[0].length等于___3__。 3.已知数组a的定义为“int a[]={1,2,3,4,5};”,则a[2]=__3__,数组b的定义为“int b[]=new int[5];”,则b[2]=__ 0___,数组c的定义为“Object [] c=new Object[5];”,则c[2]=_____。 4.调用数组元素时,用__数组名__和__元素下标___来唯一确定数组中的元素。 5.下列___C__语句有错误 A.int [] a; B.int [] b=new int[10]; C. int []c=new int[]; D.int d[]=null; 6.下列___D__语句有错误 A.int a[][]=new int[5][5]; B.int [][] b=new int[5][5]; C.int []c[]=new int[5][5]; D.int [][]d=new int[5,5]; 7.关于下面的程序,正确的结论是___A__ public class Demo1{ public static void main(String [] args){ int a[]=new int[5]; boolean b[]=new boolean[5]; //布尔值自动初始化为false System.out.println(a[1]); System.out.println(b[2]); } } A.运行结果为0 false B.运行结果为1 true C.程序无法编译 D.可以通过编译但结果不确定 二、编程题: 1.定义一个整数定义的数组,求奇数个数和偶数个数。 2.用20个整数初始化数组,只是输出前10个数。用break控制 3.计算10~20的整数的平方值,将结果保存在一个数组中。 4.编写一个程序使之从键盘读入10个整数存入整型数组a中,然后逆序输出这10个数。 5.某人有5张3分和4张5分的邮票,请编写一个程序,计算由这些邮票中的1张或若 干张可以得到多少不同的邮资。 6.用冒泡法对10个不同的数进行排序(有小到大) 7.设计一程序: a)使其建立一个二维字符串数组名为javadays,其中每一维分别代表2008年 [月][日],其值为星期几,例如:2008年7月22日星期几可以下列方式取得 javadays[6][21]→星期二,程序最后以随机数方式随机抽今年的10个日子,并显 示星期几。P.S.注意每月的天数不同。

第四章 n阶线性微分方程(10学时)

第四章n阶线性微分方程(10学时) 教学目的: 本章主要讨论n阶线性微分方程的基本理论,常数变易法,常系数线性方程的解,n阶线性微分方程的降阶以及二阶线性方程的幂级数解法。 教学要求: 掌握线性微分方程的基本理论和常系数线性方程的解法,会把高阶微分方程降阶以及会用幂级数解法解某些二阶线性方程。 教学重点: 齐次和非齐次线性微分方程的解性质与结构;常数变易思想;常系数齐次线性方程的特征根法和待定系数法;高阶可积类型的解法;幂级数解法。 教学难点: 函数的线性相关性;Wronsky行列式的定义及其性质;特征根法和待定系数法; 幂级数解法。 教学方法:讲练结合教学法、提问式与启发式相结合教学法。 教学手段: 传统板书与多媒体课件辅助教学相结合。 课题导入 在第二章介绍了一阶微分方程的解法,在实际应用中,还常常遇到高阶微分方程,本章我们将介绍高阶微分方程的求解方法和理论,在微分方程的理论中,线性微分方程的理论占有非常重要的地位,这不仅是线性微分方程最简单,它的一般理论已被研究得十分清楚,而且线性微分方程是研究非线性微分方程的基础。本章重点介绍线性微分方程的基本理论和常系数方程的解法,对于高阶方程的降阶问题和二阶线性方程的幂级数解法也作简单介绍。 第一讲§ 4.1 n阶线性微分方程的一般理论(3学时) 教学目的: 本节主要讨论线性齐次和非齐次微分方程的基本概念、基本理论和常数变易法。教学要求: 掌握线性微分方程的基本概念和基本理论。 教学重点: 齐次和非齐次线性微分方程的解性质与结构;常数变易思想。 教学难点: 函数的线性相关性;Wronsky行列式的定义及其性质。 教学方法: 讲练结合教学法、提问式与启发式相结合教学法。 教学手段: 传统板书与多媒体课件辅助教学相结合。 n阶线性微分方程是常微分方程中一类很重要的方程,它的理论发展十分完善,本节将介绍它的基本理论。 4.1.1. 线性微分方程的一般概念 我们将未知函数x及其各阶导数dx dt ,…, n n dt x d 均为一次的n阶微分方程称为n线性微

第四章Matlab绘图

课程名称:Matlab应用 教材:Matlab应用与实验教程 讲授人:专业技术职务:讲师 学历:研究生学位:硕士 讲授题目:Matlab绘图 所属章节:第四章计划学时:4学时 教学目的和要求: MATLAB 7语言除了有强大的矩阵处理功能之外,它的绘图功能也是相当强大的。 学习完本章之后,将学会使用MATLAB 7的图形处理功能,包括基本的绘图命令、图形的简单控制、图形窗口的编辑以及图形的高级控制等。 教学重点: ?基本的绘图命令 ?各种图形注释方法 ?三维图形的绘制方法 ?特殊一些特殊图形的绘制 ?图形的高级控制技巧 教学难点: ?基本的绘图命令 ?各种图形注释方法

?三维图形的绘制方法 教学方法: 讲授、演示 使用教具: 多媒体课件 思考题: 1. 绘制正切函数tan x在0≤x≤1上的图像,并为x轴和y轴添加标签。增量设为0.1。 2. 显示同样的图像,把sin(x) 作为第二条曲线添加到第二个图形中。 3. 生成一个列向量表示-π≤x≤π、增量取0.2的数据点。分别使用linspace设置100个点和50个点再绘制图线。 4. 为一个三维图像绘制网格,取-3≤x≤2和-5≤y≤5,增量0.1。再取-5≤x≤5和-5≤y≤5,增量为0.2试试。 5. 使用plot3函数绘制曲线x = e-t cos t、y = e-t sin t和z = t的图像,不要添加坐标轴标签,但要打开网格。 参考资料: 【1】Matlab Programming for Engineers.(Second Edition).Stephen J.Champan 【2】精通Matlab 7王正林.刘明编著.电子工业出版社

【志鸿优化设计-赢在课堂】(人教)2021-2022高中数学必修二 第四章 圆与方程 4.3学案设计

第四章圆与方程 4.3空间直角坐标系 学习目标 1.把握空间直角坐标系的有关概念;会依据坐标找相应的点,会写一些简洁几何体的有关坐标. 2.把握空间中两点的距离公式. 学习过程 一、设计问题,创设情境 在房间(立体空间)内如何确定一个空间的物体所在位置?在同学思考争辩的基础上,老师明确:确定点在直线上,通过数轴需要一个数;确定点在平面内,通过平面直角坐标系需要两个数.那么,要确定点在空间内,应当需要几个数呢? 借助平面直角坐标系,我们就可以用坐标表示平面上任意一点的位置,那么空间的点如何表示呢? 二、同学探究,尝试解决 图1 借助平面直角坐标系,我们就可以用坐标表示平面上任意一点的位置,那么空间的点如何表示呢? 1.在学校,我们学过数轴,那么什么是数轴?打算数轴的因素有哪些?数轴上的点怎样表示? 2.在学校,我们学过平面直角坐标系,那么如何建立平面直角坐标系?打算平面直角坐标系的因素有哪些?平面直角坐标系上的点怎样表示? 3.我们是否可以建立一个坐标系,使空间中的任意一点都可用对应的有序实数组表示出来呢? 4.观看图1,体会空间直角坐标系该如何建立. 5.观看图2,建立了空间直角坐标系以后,空间中任意一点M如何用坐标表示呢? 三、信息沟通,揭示规律 1.在平面直角坐标系的基础上,通过原点再增加一根,就成了空间直角坐标系. 2.如无特殊说明,本书建立的坐标系都是直角坐标系. 3.空间直角坐标系像平面直角坐标系一样,有“三要素”:. 图2 4.在平面上画空间直角坐标系O xyz时,一般使∠xOy=∠xOz=135°,∠yOz=90°,且使y轴和z轴的单位长度相同,x轴上的单位长度为y轴(或z轴)的单位长度的一半,即用斜二测法画. 已知M为空间一点,过点M作三个平面分别垂直于x轴、y轴和z轴,它们与x轴、y轴和z轴的交点分别为P,Q,R,这三点在x轴、y轴和z轴上的坐标分别为x,y,z.于是空间的一点M就确定了一个有序数组x,y,z.这组数x,y,z就叫做点M的坐标,并依次称x,y,z为点M的.坐标为x,y,z的点M通常记为 M(x,y,z). 5.反过来,一个有序数组x,y,z,我们在x轴上取坐标为x的点P,在y轴上取坐标为y的点Q,在z轴上取坐标为z的点R,然后通过P,Q与R分别作的垂直平面.这三个垂直平面的交点M即为以有序数组x,y,z为坐标的点.数x,y,z就叫做点M的坐标,并依次称x,y和z为点M的横坐标、纵坐标和竖坐标.(如图2所示)坐标为x,y,z的点M通常记为M(x,y,z).我们通过这样的方法在空间直角坐标系内建立了空间的点M和有序数组x,y,z之间的关系. 留意:坐标面上和坐标轴上的点,其坐标各有肯定的特征. 6.假如点M在yOz平面上,则;同样,zOx面上的点;面上的点,z=0;假如点M在x 轴上,则;假如点M在y轴上,则;假如点M在轴上,则x=y=0;假如M是原点,则 x=y=z=0. 空间点的位置可以由空间直角坐标系中的三个坐标唯一确定,因此,常称我们生活的空间为“三度空间或三维空间”.事实上,我们的生活空间应当是四度空间,应加上时间变量t.即(x,y,z,t),它表示在时刻t所处的空间位置是(x,y,z). 7.你能用空间两点的坐标表示这两点间的距离吗?类比平面两点间距离公式的推导,猜想空间两点 P1(x1,y1,z1),P2(x2,y2,z2)间的距离公式. 四、运用规律,解决问题 8.如图,长方体OABC—D'A'B'C'中,|OA|=3,|OC|=4,|OD'|=2,写出D',C,A',B'四点的坐标. 总结规律:(试总结如何依据题设条件写出点的坐标?) 9.在z轴上求一点M,使点M到点A(1,0,2)与点B(1,-3,1)的距离相等. 总结规律:(试总结坐标轴上点的特征及空间中两点间的距离公式是什么?) 10.如图,在正方体ABCD—A1B1C1D1中,E,F分别是BB1和D1B1的中点,棱长为1,求E,F点的坐标. 总结规律:(试总结空间直角坐标系中中点坐标公式?) 五、变练演编,深化提高

Linux第四章作业答案

第四章 Linux编程作业参考答案 一,AWK命令行应用 1)处理/etc/passwd文件 a)打印第一列(userid)提示:awk -F 分隔符‘{print $第几列}’file b)打印root用户的1,2 field 2)打印用户home目录下所有文件的:owner和文件名(只打印这两列)提示:使用ls -l 和 awk 3)打印所有登录本机器的ip,并去掉重复。提示:使用last,awk,sort,uniq 二,AWK完整流程 创建order文件 (商品名,数量,单价) apple 20 6.5 orange 10 8 grape 7 12 berry 5 32 输出格式 awk -f order.awk order (参考employee.awk)

name count price (表头) apple 20 6.5 ... =================== (表尾) order.awk BEGIN{print "name\tcount\tprice"; OFS="\t"} {print $1,$2,$3} END{print "=========================\n"} 三,AWK变量,计算 使用order文件 (商品名,数量,单价) apple 20 6.5 orange 10 8 grape 7 12 berry 5 32 输出格式:awk -f order2.awk order name count price total ... Number of item: Total count: Order total price: order2.awk BEGIN{print "name\tcount\tprice\ttotal"; OFS="\t"; total=0; totalCount=0;} { totalCount += $2; total += ($2 * $3); print $1, $2, $3, $2*$3 } END{printf "Number of item: %d, Total count: %d, Order total price: %.2f\n", NR, totalCount, total}

vb数组作业

1、编写程序,产生50个互不相同的10~99的随机整数,统计各数值段(10~19,20~29,….80~89,90~99)有多少个数并输出。 提示:可另用数组b来存各分数段的人数,并用b(1)存10~19分的人数,b(2)存20~29分的人数,… b(9)存90~99分的人数。 关键代码:k = Int(a(i) / 10) b(k) = b(k) + 1 2、设有如下两组数据。编写一个程序,把两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,…,25+80,并把相应的结果放入第三个数组中,最后输出第三个数组的值。 A 2 8 7 6 4 28 70 25 B 79 27 32 41 57 66 78 80 关键代码:c(i) = a(i) + b(i) 3、产生10个互不相同的10~99的随机整数,将这10个值交换并输出,交换规则如下: 第1个与第10个交换 第2个与第9 个交换 第3个与第8 个交换 第4个与第7 个交换 第5个与第6 个交换 4、在文本框中输入一串字符,统计各字母出现的次数并将结果显示在图片框中(不区分字母的大小写)。 提示:英文字母共26个,可以分为26类。用数组的26个元素分别保存每种字母出现的次数。从输入的字符串中逐一取出字符,转换成大写字符来判断。再求得其在数组中的下标。关键代码:j = Asc(c) - 65 + 1 A(j)=A(j)+1 5、采用控件数组编写一个简单的计算器。要求该计算器能够实现简单的加、减、乘、除运算。

6、下图所示程序利用7个LABEL1控件创建了一个控件数组,程序运行时单击窗体,在窗体上显示由7段组成的一个阿拉伯数字“5”。请自行创建程序界面,并修改下列代码,使之能显示7段组成的数字“3”。 Private Sub Form_Click() Dim a As Variant Me.BackColor = vbWhite a = Array(1, 0, 1, 1, 1, 0, 1) For i = 0 To 6 If a(i) = 1 Then Label1(i).BackColor = vbRed Else Label1(i).BackColor = vbWhite End If Next i End Sub

《面向对象技术》期末复习资料

《面向对象技术》期末复习资料 《面向对象技术》期末复习资料 试卷题型说明:、填空题(10分)选择题(20道题40分)、判断题(10分)、简答题(3道16分)、写出程序运行结果(4道16分)、程序填空题(1道4分)编程题(1道4分)。 一~二、基础题(各章的编程实例不考) 1、第一章主要重点在1.2节,1.5节,其中1.6节最为重要。 1-2:面向对象程序语言的特征:抽象、封装、继承和多态。 1-5: 数值型数据的输入:读取时省略数据前的空白,如果遇到正负号或数字,就开始读数,包括浮点型数据的小数点,并在遇到空白符或其他非数字字符时停止。 1-5-4:输出格式控制符: Setprecision(n)n代表输出的有效数位,包括整数的数位和小数的数位。 Setw(n) n代表输出的数据占有的列宽(域宽) Setiosflags() / Resetiosflags()用于设置或取消输入或输出的各种格式包括改变数 制基数、设置浮点数的精度、转换字母的大小写、设置对齐方式等。 Ios::left / ios::right 左右对齐函数 用法:Setiosflags(Ios::left / ios::right) / Resetiosflags(Ios::left / ios::right) 1-5-5:hex十六进制输入时在其前加0x oct 八进制输入时在其前加0 dec十进制 2、第二章主要重点为: (1)指针的定义与使用(特殊指针类型不做为重点) (2)引用的定义与使用注意事项 (3)类型转换有所涉及,但分值不是很大 (4)重点中的重点是2.7节函数部分,尤其是函数重载。

二维数组作业

二维数组作业----fa1f2414-6ea7-11ec-ae2f-7cb59b590d7d 第1题: 编写一个程序,求M行N列二维数组中所有元素的最大值。输入分为m+1行:第一行 是m和n的值。下面的m行代表二维数组,其中每行包括n个数字。样本输入:33123456789 样例输出:9 问题2: 编写程序,从矩阵中找“鞍点”。如果某个元素是“鞍点”,那么该元素在所处的行 中最大,列上最小,也可能没有鞍点。要求:如果有鞍点,输出鞍点的值,以及其所处的 行和列下标,否则输出no。输入分m+1行:第一行为m和n的值,以下m行代表二维数组,其中每一行包括n个数。样例输入:34124356786894 样本输出:402 样例输入:34123456708765 样本输出:否 第3题:编写程序,计算二维数组中各列的平均值。输入分m+1行:第一行为m和n 的值,以下m行代表二维数组,其中每一行包括n个数。样例输入:33123456789 样本输出:456问题4: 编写程序,计算两个矩阵(均为2行3列)之和。输入分2*2行:前两行为第一个矩阵,后两行为第二个矩阵。样例输入:123456359176 样本输出:471251212 第5题: 编写一个程序来输出矩阵的右下三角形(3行3列)。样本输入:123456789 样例输出: 三十五万六千七百八十九 第6题: 写一个程序输出n层正方形图案。正方形图案的最外层是第一层,每层中使用的数字 与层数相同。样本输入:3样本输出:

1111112221123211222111111 问题7:编写一个程序,在M行和N列的二维数组中查找每个行元素的最大值和每个列元素的最小值。输入分为m+1行:第一行是m和n的值。下面的m行代表二维数组,其中每行包括n个数字。输出分为两行:第一行是每个行元素的最大值,第二行是每个列元素的最小值。示例输入: 3312-1-342798 样本输出:249-32-1

微机原理第四章课后习题答案

第四章课后作业(6—27) 6.试按下列要求分别编制程序段。 (1)把标志寄存器中符号位SF置“1”。 (2)寄存器AL中高、低四位互换。 (3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。 (4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。 (5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。 答: (1) LAHF OR AH,80H SAHF (2) MOV CL,4 ROL AL,CL (3) MOV CX,0 NEG BX JC CHG JMP GO CHG: MOV CX,1 GO: NEG AX SUB AX,CX (4) MOV CL,A MOV AL,B MOV X,AL CHECK:INC X DEC CL JNZ CHECK (5) OR CX,0001H 7.试给出下列各指令的机器目标代码。 (1)MOV BL,12H [SI] (2)MOV 12H [SI],BL (3)SAL DX,1 (4)AND 0ABH [BP] [DI],1234H

答:(1)100010 1 0 01 011 100 00010010=8A5C12H (2)100010 0 0 01 011 100 00010010=885C12H (3)110100 0 1 11 100 010=0D1E2H (4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010 =81A3AB003412H 8.执行下列指令: STR1 DW ‘AB’ STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT 执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少? 答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010; AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL 中,所以AX=4142H=0100,0001,0100,0010。 9.JMP FAR PTR ABCD (ABCD是符号地址)的转移方式是什么? 答:段间直接转移。 10.按下列指令写出相应指令或程序段。 (1)写出两条使AX寄存器内容为0的指令。 (2)使BL寄存器中的高、低4位互换。 (3)现有两个带符号数分别在X1和X2变量中,求X1/X2,商和余数分别送入Y1和Y2中。 (4)屏蔽BX寄存器中的b4、b6、b11位。 (5)将AX寄存器的b4、b14位取反,其它位不变。 (6)测试DX寄存器的b0、b9位是否为“1”。 (7)使CX寄存器中的整数变为奇数(如原已经是奇数,则不变)。 答:(1)MOV AX,0 XOR AX,AX (2)MOV CL,4 ROL BL,CL (3)MOV AX,X1 CWD IDIV X2 MOV Y1,AX MOV Y2,DX (4)AND BX,1111 O111 1O10 1111 (5)XOR AX,0100 0000 0001 0000 (6)MOV AX,DX RCR AX,1 JC B0Y ;转向表示b0是1的标号为B0Y的程序段

《C++语言程序设计》考纲

《C++语言程序设计》考试大纲 第一局部大纲说明 《C++语言程序设计》课程是中央电大计算机应用专业一门统设必修课和专业根底课,在整个教学体系中占据非常重要的地位。该课程主要介绍C++程序设计语言的根本语法规则,计算机程序的根本结构,一些典型应用问题的程序设计方法〔即算法〕,结构化和模块化的程序设计方法,面向对象程序设计的概念和方法等内容。学好该课程将为学习其他后续计算机专业课程打下良好的根底。 考核对象:电大系统“开放教育试点〞计算机应用专业学生。 命题依据:本考核说明严格按照中央电大“开放教育试点〞计算机应用专业《C++语言程序设计》课程教学大纲编写。本课程文字教材包含主教材和实验教材两本,均为李宁主编并由中央播送电视大学出版社出版,主教材为《C++语言程序设计》,实验教材为《C++程序设计实验》。本考核说明是考试命题的依据。 考核要求:考核学生掌握和运用C++语言根本语法规则进行典型程序设计的能力。具体考核要求分为以下3个层次: 了解:能够掌握C++语言的根本语法规则和一些根本概念。 理解:能够阅读和分析用C++语言编写的程序,即能够写出程序的运行结果或指出程序的功能。 应用:能够根据解决特定问题的要求利用C++语言编写出程序。 命题原则: 1. 严格按照该课程教学大纲和考核说明的要求命题。 2. 试题的覆盖面较广,并适当突出重点。 3.试题的难易程度和题量适当,按难易程度分为三个层次:简单占40%,一般占40%,较难占20%。 4.题型有三种:单项选择题、写出程序运行结果、指出程序或函数的功能。 考核形式: 采纳期末卷面考核与形成性考核相结合的方法。形成性考核占20分,视平常上机和作业完成情况而定,由所在班级的任课教师给定;期末卷面考核占80分,为开卷考试,答题时限为60分钟。两方面成绩累计到达60分者为及格。 第二局部考核内容及要求 第一章 C++语言概述 考核内容〔知识点〕: 1.程序、程序文件和函数的概念及其相互之间的关系。

算法设计与分析知到章节答案智慧树2023年天津大学

算法设计与分析知到章节测试答案智慧树2023年最新天津大学第一章测试 1.下列关于效率的说法正确的是()。 参考答案: 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法;效率主要指处理机时间和存储器容量两个方面 ;效率是一个性能要求,其目标应该在需求分析时给出 2.算法的时间复杂度取决于()。 参考答案: 问题的规模 ;待处理数据的初态 3.计算机算法指的是()。 参考答案: 解决问题的有限运算序列 4.归并排序法的时间复杂度和空间复杂度分别是()。 参考答案: O(nlog2n) ;O(n)

5.将长度分别为m,n的两个单链表合并为一个单链表的时间复杂度为O(m+n)。 () 参考答案: 错 6.用渐进表示法分析算法复杂度的增长趋势。() 参考答案: 对 7.算法分析的两个主要方面是时间复杂度和空间复杂度的分析。() 参考答案: 对 8.某算法所需时间由以下方程表示,求出该算法时间复杂度()。 参考答案: O(nlog2n) 9.下列代码的时间复杂度是()。 参考答案: O(log2N)

10.下列算法为在数组A[0,...,n-1]中找出最大值和最小值的元素,其平均比较次 数为()。 参考答案: 3n/2-3/2 第二章测试 1.可用Master方法求解的递归方程的形式为()。 参考答案: T(n)=aT(n/b)+f(n) , a≥1, b>1, 为整数, f(n)>0. 2. 参考答案: 对 3.假定,, 递归方程 的解是 . ( ) 参考答案: 对

4.假设数组A包含n个不同的元素,需要从数组A中找出n/2个元素,要求 所找的n/2个元素的中点元素也是数组A的中点元素。针对该问题的任何算法需要的时间复杂度的下限必为。 ( ) 参考答案: 错 5.使用Master方法求解递归方程的解为 (). 参考答案: 6.考虑包含n个二维坐标点的集 合S,其中n为偶数,且所有坐标点中的均不相同。一条竖直的直线若能把S集合分成左右两部分坐标点个数相同的子集合,则称直线L 为集合S的一条分界线。若给定集合S,则可在时间内找到这条分界线L。 ( ) 参考答案: 对 7.

VB资料及答案

课程作业 第一章VB基础知识 1 填空题 (1)在代码中设置属性,格式为。(2)调用对象方法的格式为:。(3)VB中的控件有三种类型,分别是。(4)窗体文件的扩展名为。(5)当完成完成的全部文件后,通过编译工程可以将此工程转换成。(6)在窗体上复制控件,如果复制的控件名称相同,系统会出现一个是否创建的对话框。 2 编程题 (1)窗体上放置一个标签,通过单击窗体,使标签内容改变为“窗体被单击”,双击窗体时,标签内容为“窗体被双击” (2)编写一个程序,要求用单击命令按钮要显示或隐藏标签或文本框。 第二章VB语言基础 1 填空题 (1)VB中有两种类型的字符串;分别是变长字符串与。 (2)定义aa 为一个10个字符的字符串,使用语句。(3)对象变量赋值,必须使用关键字。(4)要强制使用变量声明,使用语句。 (5)使用语句声明公有的模块级变量。(6)为了建立建立应用程序都有效的变量,应该在进行变量声明。(7)在VB中,对于没有声明的变量,其默认的数据类型是。 (8)如果今天是星期五,那么print weekday(now())输出的结果是。(9)输入对话框inputbox的返回值的数据类型是:。 (10)msgbox 函数提供了3个参数,它们是。 2 写出下列表达式的值 (1)(2+8*3)/2 (2)3^2+8 (3)#11/22/06# -10 (4)”zyx”&”123”&”abc” 3 写出下列函数的值 (1)int(-3.14159)(2)sqr(64)(3)fix(-3.14) (4)ABS(-50.76)(5)VAL(“A123”) (6)Format(Str(123.567), "0.00")(7)LEFT(“HELLO”,2) (8)LEN(“远程教育”) 4 如果X是正实数,对X的第4位小数四舍五入的表达式是()(1)0.001 * Int(1000 * (x + 0.0005)) (2)0.01 * Int(100 * (x + 0.005)) (3)0.001 * Int( (x + 0.0005)) (4)0.001 * Int (x + 0.005) 第三章顺序结构程序设计 1 填空题

相关主题
相关文档
最新文档