当前位置:文档之家› 第九章 指针习题答案

第九章 指针习题答案

第九章 指针习题答案
第九章 指针习题答案

第九章指针习题答案

一、单项选择题

1.变量的指针,其含义是指该变量的__A___。

A)地址 B)值 C)一个标志 D)名

2.若以定义char s[10];,则下面表达式不表示s[1]的地址的是__B___。

A)s+1 B)s++ C)&s[1] D)&s[0]+1

3.设有int a=3;,则对整型指针p的定义和初始化正确的是__D____。

A)int *p=a; B)int p=a;

C)int *p=*a; D)int *p=&a;

4.设有int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a+2 ;,则p[2]的值是__C____。

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

5.对于类型相同的两个指针变量之间,不能进行的运算是___C___。

A)< B)= C)+ D)-

6.已知int型二维数组a[3][4],数组元素a[1][2]的地址不能表达为__C___。

A)&a[1][2] B)a[1]+2 C)*a[1]+2 D)*(a+1)+2

7.若有说明int m=8,n,*p1=&m,*p2=&n;,能将8赋值给n的是__D____。

A) p2=&p1; B) *p1=*p2; C) p2=p1; D) *p2=*p1;

8.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的语句是___B____。

A)c=*p1+*p2; B)p2=c C)p1=p2 D)c=*p1*(*p2);

9.已知声明:int *function(int i); 我们可以得知__C___。

A)函数返回一个int型的数

B)函数返回一个指向函数的指针

C)函数返回一个int型变量的指针

D)函数的名称为*function

10.下面的程序段运行结果是_C___。

char s[]="efg",*p=s;

printf("%d",*(p+3));

A)字符’g’ B)字符’g’的地址C)0 D)103

11.下面程序运行的结果是_D___。

main()

{

int i=2, *p1, **p2;

p1=&i;

p2=&p1;

(*p1)++;

printf("%d",*p1);

(**p2)++;

printf(",%d",**p2);

}

A)2,2 B)2,3 C)3,3 D)3,4

12.已知:char *str[]={“abcd”,”efgh”},**p=str;,那么*(*(p+1)+2)的值为__C___。

A)b B)f C)g D)h

13.下面程序运行的结果是_B____。

main()

{

int a[]={10,15,20,25},*p=a;

printf("%d,",++*p);

printf("%d,",*p++);

printf("%d",*p);

}

A)10,10,15 B)11,11,15 C)10,15,20 D)10,11,15

14.以下正确的叙述是(C)

A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定。

B)C语言允许main函数带形参,形参名只能是argc和argv。

C)当main函数带有形参时,传给形参的值只能从命令行中得到。

D)若有说明,main(int argc,char *argv),则形参argc的值必须大于1。

15.main函数的正确说明形式是(D)

A)main(int argc,char **argv[])

B)main(int abc,char *abv)

C)main(int argc,char argv)

D)main(int c,char *v[])

二、填空题

1.“&”称为_取地址__运算符,“*”称为_指针__运算符。

2.已有函数min(a,b),为了让函数指针变量p指向函数min,正确的赋值方法是_p=min_________。

3.若有定义int a[10],*p=a;,则p+5表示__&a[5]________。

4.若有定义int *p[5];,则p表示_p是一个指针数组,它由5个指向整型数据的元素组成5.若有char *a="xyz";,则printf("%s",a);的输出是xyz______;printf("%c",*a);的输出是__x______。

6.设有int a[3][3]={ 1,2,3,4,5,6,7,8,9};,则*(*(a+2)+2)的值是_6_____。

三、阅读题

1、welcome to anhui!

2、10,21

3、x=2,y=1

4、20,10

5、ABCDE

BCDE

CDE

DE

E

四、编程题(用指针完成)

1.从键盘输入的三个整数,利用指针变量,将三个数按从大到小的顺序输出。

方法一:直接在main函数中实现

main()

{int a,b,c,*pa=&a,*pb=&b,*pc=&c,t; //定义三个指针分别指向a,b,c,t作为中间变量实现交换printf(“Please input three datas:\n”);

scanf(“%d,%d,%d”,pa,pb,pc); //输入三个数

if(*pa<*pb) //如果第一个数比第二个数小

{t=*pa;*pa=*pb;*pb=t;} //交换a,b两个数

if(*pa<*pc)

{t=*pa;*pa=*pc;*pc=t;} //交换a,c两个数,经过前两次交换将最大数放到a中

if(*pb<*pc)

{t=*pb;*pb=*pc;*pc=t;} //交换b,c两个数

printf(“%d>%d>%d:\n”,a,b,c);

}

方法二:定义函数实现两个数交换

void swap(int *p1,*p2)

{int t;

t=*p1;*p1=*p2;*p2=t;

}

main()

{int a,b,c,*pa=&a,*pb=&b,*pc=&c;

printf(“Please input three datas:\n”);

scanf(“%d,%d,%d”,pa,pb,pc); //输入三个数

if(*pa<*pb) //如果第一个数比第二个数小

swap(pa,pb); //交换a,b两个数

if(*pa<*pc)

swap(pa,pc);

if(*pb<*pc)

swap(pb,pc);

printf(“%d>%d>%d:\n”,a,b,c);或printf(“%d>%d>%d:\n”,*pa,*pb,*pc);

}

2.输入字符数组,并输出ASCII码最小的字符。

#include

void main()

{char s[80],*ps=s,min; //定义一个指针用来指向字符串

printf("please input a string:\n");

gets(ps);

min=ps[0]; //将第一个字符赋值给min

for(;*ps!='\0';ps++) //判断字符串是否处理结束

if(*ps

min=*ps; //将当前较小字符赋值给min

printf("较小字符为:%c,ASCII值为%d\n",min,min);

}

3.输入三行字符,每行20个字符,统计出共有多少大写字母。

#include

void main()

{char str[3][21],*p[3]={str[0],str[1],str[2]};//将指针数组三个元素分别指向三个串

int i,count=0;

printf("please input three strings:\n");

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

gets(p[i]); //输入三个串

for(i=0;i<3;i++) //循环三次,判断每行

{for(;*p[i]!='\0';p[i]++) //p[i]为指向每个字符串的指针,移动到当前行的下一个字符

if(*p[i]>='A'&&*p[i]<='Z') //判断是否为大写字母

count++; //统计大写字母个数

}

printf("大写字母共有:%d\n",count);

}

4.有一个整型二维数组,大小为m×n,要求找出其中最大值所在的行和列,以及该最大值。请编一个函数max,要求数组元素在main函数中输入,结果在函数max中输出。

假设数组为3行4列

#include

#include

void max(int a[][4])

{int i,j,row,colum,*pm;

pm=&a[0][0];

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

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

if(*pm

{row=i;

colum=j;

pm=&a[i][j];}

printf("最大值是:%d,所在行为:%d,所在列为:%d\n",*pm,row,colum);

}

void main()

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

printf("请输入3行4列数组元素的值:\n");

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

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

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

max(b);

}

c++指针类练习题及答案

1 5 6 6 5 #include using namespace std; void swap(int *xp,int *yp) { int tmp; tmp=*xp; *xp=*yp; *yp=tmp; } int main() { int a,b; cin>>a>>b; swap(&a,&b); cout< #include using namespace std; int main() { char str[100]; cin>>str; int len; len=strlen(str); char *p=&str[len-1]; while(p>=str) { cout<<*p; p--; } cout<

1 2 2 2 3 7 #include using namespace std; void selectsort(int *list,int count) { for(int i=0;i>n; int array[20]; for(int j=0;j>array[j]; selectsort(array,n); for(int i=0;i using namespace std; void bubble_up(int *ptr,int count) { for(int i=0;ii;j=j-1)

第十章 指针

第十章指针 一、选择题 1.变量的指针,其含义是指该变量的_______________。 A) 值B) 地址C) 名D)一个标志 2.已有定义int k=2; int *ptr1, *ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值是________________。 A)k=*ptr1+*ptr2 B) ptr2=k C) ptr1=ptr2D)k=*ptr1*(*ptr2) 3.若有定义int *p, m=5,n;以下程序段正确的是________________。 A) p=&n; B) p=&n; scanf("%d",&p); scanf("%d",*p); C) scanf("%d",&n); D) p=&n; *p=n; *p=m; 4.若有定义:int *p1, *p2, m=5, n;以下____________是正确的赋值语句。 A) p1=&m; p2=&p1; B)*p1=*p2; C) p1=&m; p2=p1; D) p1=&m; *p2=*p1; 5.若有int *p, a=4;和p=&a;下面____________均代表地址。 A) a, p, *&a B)&*a, &a, *p C) *&p, *p, &a D)&a, &*p, p 6.若变量已正确定义并且指针p已经指向变量x,则*&x相当于____________。 A) x B) p C) &x D) &*p 7.若定义了int m, n=0, *p1=&m;则下列____________表达式与m=n等价。 A) m=*p1 B)*p1=&*n C) *&p1=&*n D) *p1=*&n; 8. 假如指针p已经指向整型变量x,则(*p)++相当于____________。 A) x++ B) p++ C) *(p++) D) &x++ 9. 对于基类型相同的两个指针变量之间,不能进行的运算是____________。 A) < B) = C) + D) - 10. 若程序中已包含头文件stdio.h,以下选项中正确运用指针变量的程序段是__________。 A) int *i=NULL; B) float *f=NULL scanf("%d",i); *f=10.5; C) char t='m',*c=&t; D) long *L; *c=&t; L='\0'; 11. 有如下函数和变量定义int a=25; 执行语句print_value(&a);后的输出结果是___________。 void print_value(int *x) { printf("%d",++*x); } A) 23 B) 24 C) 25 D) 26 12. 若有定义:char s[10]; 则在下面表达式中不表示s[1]的地址的是___________。 A) s+1 B) s++ C) &s[0]+1 D) &s[1] 13.若有定义:int a[5], *p=a; 则对a数组元素的正确引用是_____________。 A)*&a[5]B)a+2 C)*(p+5) D)*(a+2) 14. 若有定义:int a[5], *p=a; 则对a数组元素地址的正确引用是_____________。 A)p+5B)*a+1 C)&a+1 D)&a[0] 15. 若有定义:int a[5]; 则a数组中首元素的地址可以表示为_____________。 A)&a B)a+1 C)a D)&a[1] 16. 若要对a进行合法的自减运算,则之前应有下面___________的说明。 A) int p[3]; B) int k; C) char *a[3]; D) int b[10];

托盘天平的使用练习题(含答案)

托盘天平的使用练习 一、选择题 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.调节横梁平衡时,应先将游码移至横梁标尺左端“0”刻度线处 C.判断天平横梁是否平衡时,一定要等指针完全静止下来 D.称量时左盘应放置被称量的物体,右盘放置砝码 7.在使用天平测量物体的质量时,发现指针略向左偏,以下做法可行的是()A.将天平的平衡螺母向右移B.将天平的平衡螺母向左移 C.将天平的游码向右移D.将天平的游码向左移 8.在使用天平测量物体质量的过程中,下列操作不规范的是() A.用镊子夹取砝码,以免砝码生锈 B.待测物体放在天平的左盘,砝码放在天平的右盘里 C.在测量中,调节横梁上的螺母,使指针在分度盘中央,然后读出示数 D.不用天平测量质量过大、超过天平测量范围的物体 9.在用托盘天平测量质量的实验中,如果使用了沾有油污的砝码,则() A.测量值比真实值偏大B.测量值比真实值偏小 C.测量结果仍然很准确D.测量结果偏大偏小是不能确定的 10.小明用托盘天平称一块橡皮的质量.正确使用天平时称得质量为m1;在托盘天平未调平衡(当指针静止时,还偏在分度盘中央刻度线的右边)就去称量,称得橡皮质量为m2.则m1和m2的大小关系是() A.m1=m2B.m1<m2C.m1>m2D.无法确定 11.在使用天平测物体质量时,为了较快测出物体质量,向托盘内增加砝码正确的做法是()

宏观经济学思考题及参考答案

宏观经济学思考题及参考答案(1) 第四章 基本概念:潜在GDP,总供给,总需求,AS曲线,AD曲线。 思考题 1、宏观经济学的主要目标是什么?写出每个主要目标的简短定义。请详细解释 为什么每一个目标都十分重要。 答:宏观经济学目标主要有四个:充分就业、物价稳定、经济增长和国际收支平衡。 (1)充分就业的本义是指所有资源得到充分利用,目前主要用人力资源作为充分就业的标准;充分就业本不是指百分之百的就业,一般地说充分就业允许的失业范畴为4%。只有经济实现了充分就业,一国经济才能生产出潜在的GDP,从而使一国拥有更多的收入用于提高一国的福利水平。 (2)物价稳定,即把通胀率维持在低而稳定的水平上。物价稳定是指一般物价水平(即总物价水平)的稳定;物价稳定并不是指通货膨胀率为零的状态,而是维持一种能为社会所接受的低而稳定的通货膨胀率的经济状态,一般指通货膨胀率为百分之十以下。物价稳定可以防止经济的剧烈波动,防止各种扭曲对经济造成负面影响。 (3)经济增长是指保持合意的经济增长率。经济增长是指单纯的生产增长,经济增长率并不是越高越好,经济增长的同时必须带来经济发展;经济增长率一般是用实际国民生产总值的年平均增长率来衡量的。只有经济不断的增长,才能满足人类无限的欲望。 (4)国际收支平衡是指国际收支既无赤字又无盈余的状态。国际收支平衡是一国对外经济目标,必须注意和国内目标的配合使用;正确处理国内目标与国际目标的矛盾。在开放经济下,一国与他国来往日益密切,保持国际收支的基本平衡,才能使一国避免受到他国经济波动带来的负面影响。 3,题略 答:a.石油价格大幅度上涨,作为一种不利的供给冲击,将会使增加企业的生产成本,从而使总供给减少,总供给曲线AS将向左上方移动。 b.一项削减国防开支的裁军协议,而与此同时,政府没有采取减税或者增加政府支出的政策,则将减少一国的总需求水平,从而使总需求曲线AD向左下方移动。 c.潜在产出水平的增加,将有效提高一国所能生产出的商品和劳务水平,从而使总供给曲线AS向右下方移动。 d.放松银根使得利率降低,这将有效刺激经济中的投资需求等,从而使总需求增加,总需求曲线AD向右上方移动。 第五章 基本概念:GDP,名义GDP,实际GDP,NDP,DI,CPI,PPI。 思考题: 5.为什么下列各项不被计入美国的GDP之中? a优秀的厨师在自己家里烹制膳食; b购买一块土地; c购买一幅伦勃朗的绘画真品; d某人在2009年播放一张2005年录制的CD所获得的价值; e电力公司排放的污染物对房屋和庄稼的损害;

指针练习题

编程题 1用指向数组的指针变量输出数组的全部元素 2 使用函数调用,形参为指针,实参为数组,把一个数组逆序存放在输出 练习题: 一判断题 1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。 2.指针的类型是它所指向的变量或对象的类型。 3.定义指针时不可以赋初值。 4.指针可以赋值,给指针赋值时一定要类型相同,级别一致。 5.指针可以加上或减去一个int型数,也可以加上一个指针。 6.两个指针在任何情况下相减都是有意义的。 7.数组元素可以用下标表示,也可以用指针表示。 8.指向数组元素的指针只可指向数组的首元素。 9.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。 10.引用是一种变量,它也有值和地址值。 11.引用是某个变量的别名,引用是被绑定在被引用的变量上。 12.创建引用时要用一个同类型的变量进行初始化。 13.指针是变量,它可以有引用,而引用不能有引用。

二单选题 1.下列关于定义一个指向double型变量的指针,正确的是()。 A.int a(5);double *pd=a;B.double d(2.5),*pd=&d;C.double d(2.5),*pd=d;D.double a(2.5),pd=d; 2.下列关于创建一个int型变量的引用,正确的是()。 A.int a(3),&ra=a;B.int a(3),&ra=&a; C.double d(3.1);int &rd=d;D.int a(3),ra=a; 3.下列关于指针概念的描述中,错误的是()。 A.指针中存放的是某变量或对象的地址值 B.指针的类型是它所存放的数值的类型 C.指针是变量,它也具有一个内存地址值 D.指针的值是可以改变的 4.下列关于引用概念的描述中,错误的是()。 A.引用是变量,它具有值和地址值 B.引用不可以作数组元素 C.引用是变量的别名 D.创建引用时必须进行初始化 5.已知:int a[5],*p=a;则与++*p相同的是()。 A.*++p B.a[0] C.*p++ D.++a[0]

C程序设计第三版第十章题解

第十章指针 10.1 输入3个整数,按照从小到大的顺序输出 #include void main() { void swap(int *p1, int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf("input three integer:"); scanf_s("%d,%d,%d",&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1>n2) swap(p1,p2); if(n1>n3) swap(p1,p3); if(n2>n3) swap(p2,p3); printf("the order: %d,%d,%d\n",n1,n2,n3); } void swap(int *p1, int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } NOTE:scanf的参数为地址,printf参数为参数 10.2输入三个字符串,按照从小到大的顺序输出 #include #include void main() { void swap(char *p1, char *p2); char str1[20],str2[20],str3[20]; printf("input three string:"); gets_s(str1); gets_s(str2); gets_s(str3); if(strcmp(str1,str2)) swap(str1,str2);

if(strcmp(str1,str3)) swap(str1,str3); if(strcmp(str2,str3)) swap(str2,str3); printf("the order: %s,%s,%s\n",str1,str2,str3); } void swap(char *p1, char *p2) { char temp[20]; strcpy(temp,p1); strcpy(p1,p2); strcpy(p2,temp); } NOTE:gets()用于获取字符串输入。strcmp() 和strcpy()的应用 10.3 输入10个整数,将其中最小的数和第一个数对换,把最大的数和最后一个数对换,写三个函数:①输入十个数;②进行处理;③输出十个数 #include void main() { void input(int *); void output(int *); void proceed(int *); int number[10]; input(number); proceed(number); output(number); } void input(int *number) { int i; printf("input ten integer:\n"); for (i=0;i<10;++i) { scanf("%d",&number[i]); } } void proceed(int *number)

指针练习题

. 编程题 1用指向数组的指针变量输出数组的全部元素 2 使用函数调用,形参为指针,实参为数组,把一个数组逆序存放在输出 练习题: 一判断题 1.指针是变量,它具有的值是某个变量或对象的地址值,它还具有一个地址值,这两个地址值是相等的。 2.指针的类型是它所指向的变量或对象的类型。 3.定义指针时不可以赋初值。 4.指针可以赋值,给指针赋值时一定要类型相同,级别一致。5.指针可以加上或减去一个int型数,也可以加上一个指针。6.两个指针在任何情况下相减都是有意义的。 7.数组元素可以用下标表示,也可以用指针表示。 8.指向数组元素的指针只可指向数组的首元素。 9.字符指针是指向字符串的指针,可以用字符串常量给字符指针赋值。 10.引用是一种变量,它也有值和地址值。 11.引用是某个变量的别名,引用是被绑定在被引用的变量上。

12.创建引用时要用一个同类型的变量进行初始化。 13.指针是变量,它可以有引用,而引用不能有引用。 ;. . 二单选题 1.下列关于定义一个指向double型变量的指针,正确的是()。A.int a(5);double *pd=a; B.double d(2.5),*pd=&d;C.double d(2.5),*pd=d; D.double a(2.5),pd=d;。).下列关于创建一个int型变量的引用,正确的是(2A.int a(3),&ra=a; B int . a(3),&ra=&a;ra=a;D.int a(3), C.double d(3.1);int &rd=d;.下列关于指针概念的描述中,错误的是()。3 A.指针中存放的 是某变量或对象的地址值.指针的类型是它所存放的数值的类型 B .指针是变量,它也具有一个内存地址值 C .指针的值是可以改 变的D 。.下列关于引用概念的描述中,错误的是()4 A.引 用是变量,它具有值和地址值 B.引用不可以作数组元素 C.引用是变量的别名 D.创建引用时必须进行初始化。++*p相同的是()*p=a5.已知:int a[5],;则与a[0] . B.*++p A++a[0] .C*p++ D.;. . 6.已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表

(完整版)思考题及习题2参考答案

第2章思考题及习题2参考答案 一、填空 1. 在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为。答:2μs 2. AT89S51单片机的机器周期等于个时钟振荡周期。答:12 3. 内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为 和。答:28H,88H 4. 片内字节地址为2AH单元最低位的位地址是;片内字节地址为A8H单元的最低位的位地址为。答:50H,A8H 5. 若A中的内容为63H,那么,P标志位的值为。答:0 6. AT89S51单片机复位后,R4所对应的存储单元的地址为,因上电时PSW= 。这时当前的工作寄存器区是组工作寄存器区。答:04H,00H,0。 7. 内部RAM中,可作为工作寄存器区的单元地址为 H~ H。答:00H,1FH 8. 通过堆栈操作实现子程序调用时,首先要把的内容入栈,以进行断点保护。调用子程序返回指令时,再进行出栈保护,把保护的断点送回到,先弹出的是原来中的内容。答:PC, PC,PCH 9. AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S51单片机的PC是16位的,因此其寻址的范围为 KB。答:64 10. AT89S51单片机复位时,P0~P3口的各引脚为电平。答:高 11. AT89S51单片机使用片外振荡器作为时钟信号时,引脚XTAL1接,引脚XTAL2的接法是。答:片外振荡器的输出信号,悬空 12. AT89S51单片机复位时,堆栈指针SP中的内容为,程序指针PC中的内容为 。答:07H,0000H 二、单选 1. 程序在运行中,当前PC的值是。 A.当前正在执行指令的前一条指令的地址 B.当前正在执行指令的地址。 C.当前正在执行指令的下一条指令的首地址 D.控制器中指令寄存器的地址。 答:C 2. 判断下列哪一种说法是正确的?

指针综合练习题(带答案)

指针综合练习题 一、选择题 1.若有以下定义,则对a数组元素的正确引用是____d_____. int a[5],*p=a; a)*&a[5] b)a+2 c)*(p+5) d)*(a+2) 2.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为__d____. a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j 3.若有以下定义,则p+5表示___a____. int a[10],*p=a; a)元素a[5]的地址b)元素a[5]的值 c)元素a[6]的地址d)元素a[6]的值 4.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确 执行的赋值语句是____b____. a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2); 5.若有说明语句 char a[]="It is mine"; char *p="It is mine"; 则以下不正确的叙述是___d_____. a)a+1表示的是字符t的地址 b)p指向另外的字符串时,字符串的长度不受限制 c)p变量中存放的地址值可以改变 d)a中只能存放10个字符 二、填空题 1 指针变量保存了另一变量的(1)值,不可以任意给指针变量赋一个地址值,只能赋给 它(2)和(3)的地址。使用变量名来访问变量,是按(4)来直接存取变量称为(5)方式;而借助指针变量取得另一变量的地址,访问该变量称为(6)方式。 答案:(1)地址 (2)NULL (3)已经分配了内存的变量的地址 (4)按变量的地址 (5)直接访问 (6)间接访问 2 以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。 请填空。 void main() {int *a,*b,*c,num,x,y,z; a=&x;b=&y;c=&z; cou<<"输入3个整数:"; cin>>a>>b>>c; cout<<*a<<*b<<*c; num=*a;

思考题与习题答案

思考题与习题 1 1- 1 回答以下问题: ( 1)半导体材料具有哪些主要特性? (2) 分析杂质半导体中多数载流子和少数载流子的来源; (3) P 型半导体中空穴的数量远多于自由电子, N 型半 导体中自由电子的数量远多于空穴, 为什么它们对外却都呈电中性? (4) 已知温度为15C 时,PN 结的反向饱和电流 I s 10 A 。当温度为35 C 时,该PN 结 的反向饱和 电流I s 大约为多大? ( 5)试比较二极管在 Q 点处直流电阻和交流电阻的大小。 解: ( 1)半导体的导电能力会随着温度、光照的变化或掺入杂质浓度的多少而发生显着改变, 即半导体具 有热敏特性、光敏特性和掺杂特性。 ( 2)杂质半导体中的多数载流子是由杂质原子提供的,例如 供一个自由电子,P 型半导体中一个杂质原子提供一个空穴, 浓度;少数载流子则是由热激发产生的。 (3) 尽管P 型半导体中空穴浓度远大于自由电子浓度,但 P 型半导体中,掺杂的杂质原子因获得一个价电子而变成带负电的杂 质离子(但不能移动),价 电子离开后的空位变成了空穴,两者的电量相互抵消,杂质半导体从总体上来说仍是电中性的。 同理, N 型半导体中虽然自由电子浓度远大于空穴浓度,但 N 型半导体也是电中性的。 (4) 由于温度每升高10 C ,PN 结的反向饱和电流约增大 1倍,因此温度为 35C 时,反向 饱和电流为 (5) 二极管在 Q 点处的直流电阻为 交流电阻为 式中U D 为二极管两端的直流电压, U D U on ,I D 为二极管上流过的直流电流, U T 为温度的 电压当量,常温下 U T 26mV ,可见 r d R D 。 1- 2 理想二极管组成的电路如题 1- 2图所示。试判断图中二极管是导通还是截止,并确定 各电路的输 出电压。 解 理想二极管导通时的正向压降为零, 截止时的反向电流为零。 本题应首先判断二极管的工 作状 态,再进一步求解输出电压。二极管工作状态的一般判断方法是:断开二极管, 求解其端口 电压;若该电压使二极管正偏, 则导通; 若反偏, 则截止。 当电路中有两只或两只以上二极管时, 可分别应用该方法判断每只二极管的工作状态。 需要注意的是, 当多只二极管的阳极相连 (共阳 极接法)时,阴极电位最低的管子将优先导通;同理,当多只二极管的阴极相连(共阴极接法) 时,阳极电位最高的管子将优先导通。 (a) 断开二极管 D ,阳极电位为12V ,阴极电位为6V ,故导通。输岀电压 U O 12V 。 (b) 断开二极管 D 1、D 2, D 1、D 2为共阴极接法,其阴极电位均为 6V ,而D 1的阳极电位 为9V , D 2的阳极电位为5V ,故D 1优先导通,将 D 2的阴极电位钳制在 7.5V ,D 2因反向偏置而 截止。输岀电压 U O 7.5V 。 N 型半导体中一个杂质原子提 因此 多子浓度约等于所掺入的杂质 P 型半导体本身不带电。因为在

管理学思考题及参考答案

管理学思考题及参考答案 第一章 1、什么是管理? 管理:协调工作活动过程(即职能),以便能够有效率和有效果地同别人一起或通过别人实现组织的目标。 2、效率与效果 效率:正确地做事(如何做) 效果:做正确的事(该不该做) 3、管理者三层次 高层管理者、中层管理者、基层管理者 4、管理职能和(或)过程——职能论 计划、组织、控制、领导 5、管理角色——角色论 人际角色:挂名首脑、领导人、联络人 信息角色:监督者、传播者、发言人 决策角色:企业家、混乱驾驭者、资源分配者、谈判者 6、管理技能——技能论 用图表达。 高层管理概念技能最重要,中层管理3种技能都需要且较平衡,基层管理技术技能最重要。 7、组织三特征? 明确的目的 精细的结构 合适的人员 第二章 泰罗的三大实验: 泰罗是科学管理之父。记住3个实验的名称:1、搬运生铁实验,2、铁锹实验,3、高速钢实验 4、吉尔布雷斯夫妇 动作研究之父 管理界中的居里夫妇 5、法约尔的十四原则 法约尔是管理过程理论之父 记住“十四原则”这个名称就可以了。 6、法约尔的“跳板” 图。 7、韦伯理想的官僚行政组织组织理论之父。6维度:劳动分工、权威等级、正式甄选、非个人的、正式规则、职业生涯导向。 8、韦伯的3种权力 超凡的权力 传统的权力 法定的权力。 9、巴纳德的协作系统论 协作意愿 共同目标 信息沟通 10、罗伯特·欧文的人事管理 人事管理之父。职业经理人的先驱 11、福莱特冲突论 管理理论之母 1)利益结合、 2)一方自愿退让、 3)斗争、战胜另一方 4)妥协。 12、霍桑试验 1924-1932年、梅奥 照明试验、继电器试验、大规模访谈、接线试验 13、朱兰的质量观 质量是一种合用性 14、80/20的法则 多数,它们只能造成少许的影响;少数,它们造成主要的、重大的影响。 15、五项修炼 自我超越 改善心智 共同愿景 团队学习 系统思考 第三章 1、管理万能论 管理者对组织的成败负有直接责任。 2、管理象征论 是外部力量,而不是管理,决定成果。 3、何为组织文化 组织成员共有的价值观和信念体系。这一体系在很大程度上决定成员的行为方式。 4、组织文化七维度

多用电表的使用 经典练习题含答案)

(时间:60分钟) 1.甲、乙两同学使用多用电表欧姆挡测同一个电阻时,他们都把选择开关旋到“×100”挡,并能正确操作.他们发现指针偏角太小,于是甲把选择开关旋到“×1 k”挡,乙把选择开关旋到“×10”挡,但乙重新调零,而甲没有重新调零.则以下说法正确的是() A.甲选挡错误,而操作正确 B.乙选挡正确,而操作错误 C.甲选挡错误,操作也错误 D.乙选挡错误,而操作正确 答案 D 解析在使用多用电表的欧姆挡时一定要先进行欧姆调零,再测量;同时为了减小误差,要尽量使指针指在中间刻度附近,即要合理地选择倍率挡位. 2.用多用电表的欧姆挡(×1 kΩ)检验性能良好的晶体二极管,发现多用电表的指针向右偏转的角度很小,这说明() A.二极管加有正向电压,故测得电阻很小 B.二极管加有反向电压,故测得电阻很大 C.此时红表笔接的是二极管的正极 D.此时红表笔接的是二极管的负极 答案BC 3.关于多用电表表面上的刻度线,下列说法中正确的是() A.直流电流刻度线和直流电压刻度线都是均匀的,可以共用一个刻度盘 B.电阻刻度是不均匀的 C.电阻刻度上的零刻度与直流电流的最大刻度线相对应 D.电阻刻度上的零刻度与直流电流的最大刻度线不对应 答案ABC 解析多用表中,直流电流和电压刻度是均匀的,但电阻刻度不均匀,A、B选项正确;电阻零刻度对应I g.电阻∞刻度线对应I=0,故C选项正确.

4.如图2124所示为多用电表的刻度盘.若选用倍率为“×100”的电阻挡测电阻时,表针指示如图所示,则: 图2124 (1)所测电阻的阻值为________ Ω;如果要用此多用电表测量一个阻值约为 2.0×104Ω的电阻,为了使测量结果比较精确,应选用的欧姆挡是________(选填“×10”、“×100”或“×1 k”). (2)用此多用电表进行测量,当选用量程为50 mA的电流挡测量电流时,表针指于图示位置,则所测电流为________ mA;当选用量程为250 mA的电流挡测量电流时,表针指于图示位置,则所测电流为________ mA. (3)当选用量程为10 V的电压挡测量电压时,表针也指于图示位置,则所测电压为________ V. 答案(1)1.5×103×1 k(2)30.8(30.7~30.9都正确)154(3)6.2 解析(1)欧姆表读数:对应最上一行刻度值为15,倍率为“×100”,读数为 1.5×103Ω;测 2.0×104Ω电阻时应选“×1 k”的欧姆挡. (2)选50 mA直流电流挡,则每一大格表示10 mA,每一小格表示1 mA,测量的 精确度为1 mA,应估读到0.1 mA(此时为1 10估读),指针对应的读数为30.8 mA; 选择量程为250 mA的电流挡,则每一大格表示50 mA,每一小格表示5 mA,测 量的精确度为5 mA,应估读到1 mA(此时为1 5估读),指针对应的读数为154 mA. (3)选择10 V电压挡,则每一大格表示2 V,每一小格表示0.2 V,测量的精确度为 0.2 V,应估读到0.1 V(此时应为1 2估读),指针对应的读数为6.2 V. 5.用多用电表的欧姆挡测量一未知电阻的阻值,若将选择倍率的旋钮拨至“×100 Ω”的挡时,测量时指针停在刻度盘0 Ω附近处,为了提高测量的精确度,有下列可供选择的步骤: A.将两根表笔短接 B.将选择开关拨至“×1 kΩ”挡 C.将选择开关拨至“×10 Ω”挡

第十章(指针)

1.补充程序,程序实现从10个数中找出最大值和最小值。 #include #include int max,min; void find_max_min(int *p,int n) { int *q; max=min=*p; for(q=p; q*q) min=*q; } void main() { int i,num[10]; printf("Input 10 numbers: "); for(i=0;i<10;i++) scanf("%d",&num[i]); find_max_min(/**/ num /**/,10); printf("max=%d,num=%d\n",max,min); } 2.补充程序,其中main函数通过调用average函数计算数组元素的平均值。 #include float average(int *pa,int n) { int k; /**/ float avg=0; /**/ for(k=0;k #include

第1章思考题及参考答案

第一章思考题及参考答案 1. 无多余约束几何不变体系简单组成规则间有何关系? 答:最基本的三角形规则,其间关系可用下图说明: 图a 为三刚片三铰不共线情况。图b 为III 刚片改成链杆,两刚片一铰一杆不共线情况。图c 为I 、II 刚片间的铰改成两链杆(虚铰),两刚片三杆不全部平行、不交于一点的情况。图d 为三个实铰均改成两链杆(虚铰),变成三刚片每两刚片间用一虚铰相连、三虚铰不共线的情况。图e 为将I 、III 看成二元体,减二元体所成的情况。 2.实铰与虚铰有何差别? 答:从瞬间转动效应来说,实铰和虚铰是一样的。但是实铰的转动中心是不变的,而虚铰转动中心为瞬间的链杆交点,产生转动后瞬时转动中心是要变化的,也即“铰”的位置实铰不变,虚铰要发生变化。 3.试举例说明瞬变体系不能作为结构的原因。接近瞬变的体系是否可作为结构? 答:如图所示AC 、CB 与大地三刚片由A 、B 、C 三铰彼此相连,因为三铰共线,体系瞬变。设该 体系受图示荷载P F 作用,体系C 点发生微小位移 δ,AC 、CB 分别转过微小角度α和β。微小位移 后三铰不再共线变成几何不变体系,在变形后的位置体系能平衡外荷P F ,取隔离体如图所 示,则列投影平衡方程可得 210 cos cos 0x F T T βα=?=∑,21P 0 sin sin y F T T F βα=+=∑ 由于位移δ非常小,因此cos cos 1βα≈≈,sin , sin ββαα≈≈,将此代入上式可得 21T T T ≈=,()P P F T F T βαβα +==?∞+, 由此可见,瞬变体系受荷作用后将产生巨大的内力,没有材料可以经受巨大内力而不破坏,因而瞬变体系不能作为结构。由上分析可见,虽三铰不共线,但当体系接近瞬变时,一样将产生巨大内力,因此也不能作为结构使用。 4.平面体系几何组成特征与其静力特征间关系如何? 答:无多余约束几何不变体系?静定结构(仅用平衡条件就能分析受力) 有多余约束几何不变体系?超静定结构(仅用平衡条件不能全部解决受力分析) 瞬变体系?受小的外力作用,瞬时可导致某些杆无穷大的内力 常变体系?除特定外力作用外,不能平衡 5. 系计算自由度有何作用? 答:当W >0时,可确定体系一定可变;当W <0且不可变时,可确定第4章超静定次数;W =0又不能用简单规则分析时,可用第2章零载法分析体系可变性。 6.作平面体系组成分析的基本思路、步骤如何? 答:分析的基本思路是先设法化简,找刚片看能用什么规则分析。

第七章字符数组与指针练习题参考答案

第七章字符数组与字符串 【题7.29】下面是对s的初始化,其中不正确的是。 A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”;D)char s[5]=“abcdef”; 【题7.30】下面程序段的运行结果是。 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’}; 则以下叙述正确的是。 A)a与b数组完全相同B)a与b长度相同 C)a和b中都存放字符串D)a数组比b数组长度长 提示:‘\0’是字符串结束的标志 【题7.32】有两个字符数组a、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],则正确的输出形式是。 A)puts(a,b); B)printf(“%s %s”,a[],b[]); C)putchar(a,b); D)puts(a),puts(b); 【题7.34】下面程序段的运行结果是。 char a[7]=“abcdef”; char b[4]=“ABC”; strcpy(a,b); printf(“%c”,a[5]); A)空格B)\0 C)e D)f 提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’, a[4]=‘e’,a[5]=‘f’, a[6]=‘\0’,

指针练习及答案

1.以下程序的运行结果是()。(2004南师大一、6) int f(char *s){ char *p=s; while(*p!='\0')p++; return(p-s); } void main(){ printf("%d\n",f("ABCDEF")); } 6 2. 以下程序的运行结果是()。(2004南师大一、10) main(){ int a[2][3]={{1,2,3},{4,5,6}}; int (*p)[3]=&a[0]; int m=(**p)*(**(p+1)); printf("%d\n",m); } 4 3. 假定下列程序的可执行文件名为prg.exe ,则在该程序所在的子目录下输入命令行:prg hello world<回车>后,程序的输出结果是()。(2004南师大二、4) main(int c,char *v[]){ int i; if(c<=0)return; for(i=1;i void main(){ int a[5]={1,2,3,4,5},*p,**q; p=a; q=&p; printf(“%d\t”,*(p++)); printf(“%d”,**q); }

函数、指针与结构体练习题_参考答案

函数 (一)选择题 1.以下正确的说法是_________. 建立函数的目的之一是a)提高程序的执行效率 b)提高程序的可读性 c)减少程序的篇幅 d)减少程序文件所占存 2.以下正确的函数原型声明形式是________. a)double fun(int x,int y) b)double fun(int x; int y) c)double fun(int x, int y); d)double fun(int x,y); 3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为______. A)地址传递 B)单向值传递 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式 4.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是______. a)float b)int c)long d)double 5.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array 的错误定义方式为________. int a[3][4]; f(a); a)f(int array[][6])

b)f(int array[3][]) c)f(int array[][4]) d)f(int array[2][5]) 6.以下程序的正确运行结果是_________. #include void num() { extern int x,y;int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); } a)12,2 b)不确定c)5,25 d)1,12 7.以下正确的描述是____________. a)C语言的预处理功能是指完成宏替换和包含文件的调用 b)预处理指令只能位于C源程序文件的首部 c)凡是C源程序中行首以"#"标识的控制行都是预处理指令 d)C语言的编译预处理就是对源程序进行初步的语法检查 8.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______. a)仅仅搜索当前目录 b)仅仅搜索源程序所在目录

C语言第十章习题答案

C程序设计[谭浩强](第三版)课后答案第十章指针2010-06-25 14:04 第十章指针 10.1 main() {int n1,n2,n3; int *p1,*p2,*p3; scanf("%d,%d,%d",&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1>n2)swap(p1,p2); if(n1>n3)swap(p1,p3); if(n2>n3)swap(p2,p3); printf("%d,%d,%d\n",n1,n2,n3); } swap(p1,p2) int *p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; } 10.2 main() {char *str1[20],*str2[20],*str3[20]; char swap(); scanf("%s",str1); scanf("%s",str2); scanf("%s",str3); if(strcmp(str1,str2)>0)swap(str1,str2); if(strcmp(str1,str3)>0)swap(str1,str3); if(strcmp(str2,str3)>0)swap(str2,str3); printf("%s\n%s\n%s\n",str1,str2,str3); } char swap(p1,p2) char *p1,*p2; {char *p[20]; strcpy(p,p1); strcpy(p1,p2); strcpy(p2,p); } 10.3 main() {int number[10]; input(number);

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