当前位置:文档之家› 指针练习题

指针练习题

指针练习题
指针练习题

编程题

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]

6.已知:int a[ ]={1,2,3,4,5},*p=a ;在下列数组元素地址的表示中,正确的是()。

A .&(a+1)

B .&(p+1)

C .&p[2]

D .*p++

7.已知:int a(5),&ra=a ;下列描述中,错误的是( )。

A .ra 是变量a 的引用,即为变量的别名

B .ra 的值为5

C .ra 的地址值为&a

D .改变ra 的值为10,变量a 值仍为5 8若有以下定义,则说法错误的是( )。

int a=100,*p=&a ;

A .声明变量p ,其中*表示p 是一个指针变量

B .变量p 经初始化,获得变量a 的地址

C .变量p 只可以指向一个整形变量

D .变量p 的值为100

9若有以下定义,则赋值正确的是( )。

int a ,b , *p;

float c, *q;

A .p=&c

B .q=p

C .p=NULL

D .q=new int

10如果x 是整型变量,则合法的形式是( )。

A .&(x+5)

B .*x

C .&*x

D .*&x

11若要建立如下关系,错误的语句组是( )。

A .

B .

C .

D .

int *p=&x, x; int x, *p=&x; int *p, x=10; int *p, x;

*p=10; *p=10; p=&x; p=&x ; x=10;

12若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a ;则( )不是对a 数组元素的正确引用(其中0≤i<10)。

A .p[i]

B .*(*(a+i))

C .a[p-a]

D .*(&a[i])

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

#include

x

p

void main()

{ int a[3]={10,15,20};

int *p1=a,*p2=&a[1];

*p1=*(p2-1)+5;

*(p1+1)=*p1-5;

cout<

}

A.5 B.10C.15 D.20

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

#include

void fun(int x,int y,int *cp,int *dp)

{ cp=x+y;

dp=x-y;

}

void main()

{ int a,b,c,d;

a=30,b=50;

fun(a,b,&c,&d);

cout<

}

A.50,30 B.30,50 C.80,-20 D.80,20 15要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确执行此功能的函数是( )。

A.funa(int *x,int *y) B.funb(int x,int y)

{ int *p=new int ; { int t;

p=*x; t=x;

*x=*y; x=y;

*y=*p; } y=t; }

C.func(int *x,int *y) D.fund(int x,int y)

{ *x=*y; { *x=*x+*y;

*y=*x; *y=*x-*y;

} *x=*x-*y; }

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

#include

void main()

{ char *s="12134211";

int v1=0,v2=0,v3=0,v4=0;

for (int k=0;s[k];k++)

switch(s[k])

{ default:v4++;

case '1':v1++;

case '3':v3++;

case '2':v2++;

}

cout<

}

A.4,2,1,1 B.4,9,3,1 C.5,8,6,1 D.8,8,8,8 如果程序做下面修改:

switch(s[k])

{ default:v4++; break;

case '1':v1++; break;

case '3':v3++;break;

case '2':v2++;break;

}

运行结果是()

二、读下列程序结果

1:写出下列程序运行结果:

#include

void main()

{int *pn, n=10,m=20;

float *pf, px=3.14159,py=2.71828;

pn=&n;

*pn+=m;

cout<<”n 现在的值是:”<<*pn<

pf=&px;

py+=5*(*pf);

cout<<”py现在的值是:”<

}

运行结果是:

n 现在的值是:

pf 现在的值是:

2:写出下列程序运行结果:

void grt(int *x , int *y , int *z)

{ cout<< ++*x<<‘,’<< ++*y<<‘,’<<*(z++)<

int a=10, b=40, c=20;

void main( )

{ prt (&a, &b, &c);

prt (&a, &b, &c);

}

答案:

static int a[ ]={1, 3,5, 7, 11, 13};

main( )

{ int *p;

p=a+3;

cout<<*p<<'\t'<<(*p++)<

cout<<*(p-2)<<'\t'<<*(a+4)<

}

答案

三;填空题

1.下列函数change的功能是,将字符串中的小写字母转成大写字母,请填空。

#include

#include

void change( ) //1

{int i=0;

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

if(a[i]>='a'&&a[i]<='z')

; //3

}

void main()

{char p[80];

cout<<" \n";

cin.getline(p,80) ; //读一行字符,中间可以有空格

change(p);

cout<

}

例题2 :下列函数swap实现数据交换功能功能,请填空。#include

void swap(int *p,int *q)

{int temp;

temp=*p;

; //1

; //2

}

void main()

{int a,b;

int *p1,*p2;

cout<<"请输入两个正数:";

cin>>a>>b;

p1=&a;

p2=&b;

swap(p1,p2);

cout<<"结果a和b的值:"<

}

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

托盘天平的使用练习 一、选择题 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.在使用天平测物体质量时,为了较快测出物体质量,向托盘内增加砝码正确的做法是()

指针习题

指针(C语言程序设计习题解答与上机指导) 1.以下说法正确的是() A.一个变量的地址称为该变量的指针 B.变量的地址和指向它的指针变量的地址是相同的 C.指针变量的指向一旦确定就不能改变 D.不能定义两个指针变量指向同一个变量 答案:A 2.执行下面程序的输出结果为() int m=1,j,+p=&m; for (j=0;j<3;j++) *p=*p+j; printf(“%d,%d”,m,*p); A. 1,4 B. 4,4 C.1,1 D.4,1 答案:B 3.若有“int a[6],*p;p=a;”,则不能正确对数组元素进行引用的是() A.a[0] B. *p C. *(p+2) D. p+2 答案:D 4.下列语句正确的是() A. char a[]=”dcba”; B. char a[10];a[]=”dcba”; C. char *p;*p=”dcba”; D. char a[10];a=”dcba”; 答案:A 5.若有“char *a[2]={“321”,“654”};”,以下说法正确的是() A.数组a为2*4的二维数组 B.可以用puts(*a[0]);输出“321” C.a[0]的值为“321”的首地址 D.定义错误 答案C 6.设有定义:float x,*p= &x;则下列表达式中错误的是() A.*&p B. *&x C. &*p D. &*x 答案:D 7.若定义short num[][3]={2,4,6,8,10,12};则num[1][1]的值是() A.8 B.4 C.2 D.10 答案:D 8.设有定义语句“float s[10],*p1=s,*p2=s+9;”,则下列表达式中,不能表示数组s的合法数组元素的是() A.*(p1--)B.*(++p1)C.*(--p2)D.*(++p2) 答案:D 9.设有:char s[3][8]={“1”,“21”,“321”},*p=s;则正确的语句是() A.printf(“%s”,*(p+1*8+0)) B.puts(*(*(p+1)+0)) C.scanf(“%s”,*(*(p+1)+0)) D.gets(&s[1][1]) 答案:D 10.执行下列程序段后,*(p+5)的值是()

指针习题

三、填空题 1. 下列函数change的功能是,将字符串中的小写字母转成大写字母,请填空。#include void change(char *a) //1 { int i=0; for(i=0;a[i]!=NULL;i++) //2 if(a[i]>='a'&&a[i]<='z') a[i]-=32; ; //3 } int main() { char p[80]; cout<<" \n"; cin.getline(p,80) ; //读一行字符,中间可以有空格 change(p); cout< void swap(int *p,int *q) { int temp; temp=*p; ; //1 ; //2 } int main() { int a,b; int *p1,*p2; cout<<"请输入两个正数:"; cin>>a>>b; p1=&a; p2=&b; swap(p1,p2);

cout<<"结果a和b的值:"< void sort( ) //1 { char ; //2 int i,j; for(i=0;i0 (4)p[j]=p[j+1] 4.函数find功能是:在指针p所指数组中,查找值为x的元素,找到后,返回该元素的下标,否则返回-1,改正程序中语句错误,能够正确运行。 #include #include const int N=10; int find(int *p,int n,int x) //1

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

宏观经济学思考题及参考答案(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;。).下列关于创建一个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;在下列数组元素地址的表

指针典型例题分析与解答

指针典型例题分析与解答 1 对于变量x,其地址可以写成________;对于数组y[10],其首地址可以写成________或__________;对 于数组元素y[3],其地址可以写成__________或_________。 【分析】变量的地址可以写成“&变量名”。数组的首地址就是数组名,也可以写成第 1个元素的地址“&数组名[0]”。数组元素的地址可以写成“&数组元素”,也可以写成“数组首地址十下标”。 【答案】&x y &y[0] &y[3] y+3 2 设有定义语句“int k,*p1=&k,*p2;”,能完成表达式“p2=&k”功能的表达式可以写成 _______________。 【分析】注意原来表达式“p2=&k”的主要功能是将变量k的地址存放到指针变量p2中。现 在变量k的地址已经存放在指针变量pl中,所以完成“p2=&k”功能的表达式是:p2=p1. 【答案】p2=p1 3 设有两条语句“int a,*p=&a;”和“*p= a;”,则下列说法中正确的是() ①两条语句中的“*p”含义完全相同 ②两条语句中的“*p=&a”和“*p=a”功能完全相同 ③第 1条语句中的“*p=&a”是定义指针变量 p并对其初始化 ④第2条语句中的“*p=a”是将a的值赋予变量p 【分析】分析备选答案①:第1条语句是数据定义语句,其中的“*p”表示定义的变量p是指针型变量;第2条语句是赋值语句,其中的“*p”代表它所指向的变量a,所以该备选答案是错误的,不符合题意。分析备选答案②:第 1条语句中的“*p=&a”是将变量 a的地址以初值方式赋予指针变量 p;而第 2条语句中的“*p=a”是将变量 a中的值赋予指针变量 P指向的变量(注意也是 a,即该语句的作用和 a = a完全相同),显然该备选答案是错误的,不符合题意。再分析备选答案③:显然该答案是正确的,符合题意。至于备选答案④,显然是错误的“*p”是代表指针变量p指向的变量,不能代表指针变量p。 【答案】③ 4 设有定义语句“ int x,*p= &x;”,则下列表达式中错误的是() ①*&x②&*x ③*&p④&*p 【分析】注意“*”和“&”运算将是同一优先级别的,结合性是自有向左。接着来分报备选答案①:&x 代表变量x的地址,*(&x)代表“&x”地址对应的变量,即变量X,一股说“*&变量”就是该变量,所以该答案是正确的,不符合题意。备选答案②中的“*x”是错误的,因为x是普通变量,不是指针型变量,而运算符“*”的运算对象必须是地址,所以该答案符合题意。显然备选答案③和④都是正确的。我们来分析一下。备选答案③的格式属于“*&变量”,所以其结果为指针型变量p,是正确的。备选答案④中的“*P”代表指针变量P指向的变量x,(*p)代表变量X的地址,也是正确的。一般说“&*指针变量”,则代表

《C++指针》习题参考答案

《C++指针》习题 学号姓名 一、选择题 1、有定义如下:int a[5], *p; 则下列描述错误的是B A.表达式p=p+1是合法的B.表达式a=a+1是合法的 C.表达式p-a是合法的D.表达式a+2是合法的 2、函数定义为Fun(int &i),变量定义n=100,则下面调用该函数正确的 是C A.Fun(20) B.Fun(20+n) C.Fun(n) D.Fun(&n) 3、若有说明int I,j=2,*p=&i;则能完成i=j赋值功能的语句是B A.i=*p; B.*p=*&j; C.i=&j; D.i=**p; 4、设已有定义char *st = "how are you";下列程序中正确的是A A.char a[11],*p;strcpy(p=a+1,&st[4]); B.char a[11];strcpy(++a,st); C. char a[11];strcpy(a,st); D. char a[],*p;strcpy(p=a[1],st+2); 5、设有数组int array[3][4],下列引用数组元素的方法中错误的是D A.array[i][j] B.*(*(array+i)+j) C. *(array[i]+j) D. *(array+i*4+j) 6、有定义int s[4][5],(*ps)[5];ps=s;则对数组s中元素引用的正确 的是C A.ps+1 B.*(ps+3) C. ps[0][2] D. *(ps+1)+3 7、设有说明int b[4][4],以下不能等价表示元素b[3][3]的是:B A.*&b[3][3] B.(*(*(b+3))+3) C.*(b[3]+3) D.*(*(b+3)+3) 8、若有说明"char *s[]={"234","5678","9012","3456","7890"};",则表达 式*s[1]> *s[3]比较的是B A."1234"和"9012" B.'5'和'3' C.'l'和'9' D."5678"和"3456" 9、设语句"char *s[]={"Student","Teacher","Father","Mother"},*ps=s[2];",执行语句"cout<<*s[1]<<','<

(完整版)思考题及习题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. 判断下列哪一种说法是正确的?

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

第七章字符数组与字符串 【题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 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 使用函数调用,形参为指针,实参为数组,把一个数组逆序存放在输出 练习题: 一判断题 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语言指针习题及答案54902

指针习题及答案 一.选择题 1.变量的指针,其含义是指该变量的 B 。 A)值B)地址C)名D)一个标志 2.已有定义int k=2;int *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是 B 。 A)k=*ptr1+*ptr2 B)ptr2=k C)ptr1=ptr2 D)k=*ptr1*(*ptr2) 3.若有说明:int *p,m=5,n;以下程序段正确的是 D 。 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 a=25;print_value(&a);下面函数的输出结果是 D 。 void print_value(int *x) { printf(“%d\n”,++*x); } A)23 B)24 C)25 D)26 5.若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是 C 。 A)p1=&m; p2=&p1 ; B)p1=&m; p2=&n; *p1=*p2 ; C)p1=&m; p2=p1 ; D)p1=&m; *p1=*p2 ; 6.若有语句:int *p,a=4;和p=&a;下面均代表地址的一组选项是 D 。 A)a,p,*&a B)&*a,&a,*p C)*&p,*p,&a D)&a,&*p,p 7.下面判断正确的是 C 。 A)char *a=”china”; 等价于char *a; *a=”china” ; B)char str[10]={“china”}; 等价于char str[10]; str[ ]={“china”;} C)char *s=”china”; 等价于char *s; s=”china” ; D)char c[4]=”abc”,d[4]=”abc”; 等价于char c[4]=d[4]=”abc” ; 8.下面程序段中,for循环的执行次数是 C 。 char *s=”\ta\018bc” ; for ( ; *s!=’\0’ ; s++) printf(“*”) ; A)9 B)7 C)6 D)5 9.下面能正确进行字符串赋值操作的是 C 。 A)char s[5]={“ABCDE”}; B)char s[5]={‘A’,’B’,’C’,’D’,’E’}; C)char *s ; s=”ABCDE” ; D)char *s; scanf(“%s”,s) ; 10.下面程序段的运行结果是 C 。 char *s=”abcde” ; s+=2 ; printf(“%d”,s); A)cde B)字符’c’C)字符’c’的地址D)不确定 11.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是 B 。 A)c=*p1+*p2 B)p2=c C)p1=p2 D)c=*p1*(*p2) 12.设有程序段:char s[ ]=”china”; char *p ; p=s ;则下面叙述正确的是 D 。A)s和p完全相同 B)数组s中的内容和指针变量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、组织文化七维度

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

指针综合练习题 一、选择题 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. 无多余约束几何不变体系简单组成规则间有何关系? 答:最基本的三角形规则,其间关系可用下图说明: 图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.作平面体系组成分析的基本思路、步骤如何? 答:分析的基本思路是先设法化简,找刚片看能用什么规则分析。

指针练习及答案

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、 什么叫生产过程, 工艺过程, 工艺规程? 答: 生产过程: 从原材料变成成品的劳动过程的总和。 工艺过程: 在生产过程中, 直接改变生产对象的形状、 尺寸、 性能及相对位置关系的过程。 工艺规程: 在具体生产条件下, 将最合理的或较合理的工艺过程, 用文字按规定的表格形式写成的工艺文件。 2、 某机床厂年产CA6140 卧式车床 台, 已知机床主轴的备品率为15%, 机械加工废品率为5%。试计算主轴的年生产纲领, 并说明属于何种生产类型, 工艺过程有何特点? 若一年工作日为280天, 试计算每月(按22天计算)的生产批量。 解: 生产纲领公式 N=Qn(1+α)(1+β)=??12000( 1+15%) ( 1+5%) =2415台/年 查表属于成批生产,生产批量计算: 241522 189.75280 NA n F ?= ==(件) 3、 结合具体实例, 说明什么是基准、 设计基准、 工艺基准、 工序基准、 定位基准、 测量基准、 装配基准。 答: 基准: 是用来确定生产对象的点或面, 包括设计基准和工艺基准, 设计基准: 在零件图上标注设计尺寸所采用的基准。 工艺基准: 在零件的工艺过程中所采用的基准叫做工艺基准。

按其场合不同, 可分为工序基准、定位基准、测量基准和装配基准。 工序基准: 在工序图中, 用以确定本工序被加工表面加工后的尺寸、形状、位置所采用的基准。 定位基准: 加工时, 用以确定工件在机床上或夹具中的正确位置; 测量基准: 加工中或加工后, 测量工件形状尺寸采用的基准; 装配基准: 装配时用以确定零件或部件在产品上相对位置所采用的基准。 举例: ( a) 如一阶梯轴零件, Φ60外圆的设计基准是Φ40外圆的中心 线 (b)如图的工序图中,加工ΦD 孔 ,

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

函数 (一)选择题 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)仅仅搜索源程序所在目录

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