文档库 最新最全的文档下载
当前位置:文档库 › c++指针类练习题及答案

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

c++指针类练习题及答案
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<

return 0;

}

2、编写主程序,将输入字符串反序输出。程序运行结果如下:

输入:ABCDEFGHIJK

输出:KJIHGFEDCBA

#include

#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<

return 0;

}

3、使用指针编写一个用于对整型序列进行排序的函数,排序方法使用简单选择排序法。

程序的运行结果如下所示:

输入(第一个数是序列的长度):

6

2 7 2 2

3 1

输出:

1 2 2 2 3 7

#include

using namespace std;

void selectsort(int *list,int count)

{

for(int i=0;i

{

int k=i;

for(int j=i+1;j

if(*(list+j)<*(list+k))k=j;

if(k!=i)

{

int tmp=*(list+i);

*(list+i)=*(list+k);

*(list+k)=tmp;

}

}

}

int main()

{

int n;

cin>>n;

int array[20];

for(int j=0;j

cin>>array[j];

selectsort(array,n);

for(int i=0;i

cout<

return 0;

}

4、用指针编写一个对整型数组进行冒泡排序函数。冒泡排序是指将相邻的元素进行比较,如果不符合所要求的顺序,则交换这两个元素;对整个数列中所有的元素反复运用上法,直到所有的元素都排好序为止。

程序运行结果如下:

输入(第一个数是数组的长度):

5

503 87 512 61 908

输出:

61 87 503 512 908

#include

using namespace std;

void bubble_up(int *ptr,int count)

{

for(int i=0;i

for (int j=count-1;j>i;j=j-1)

if(*(ptr+j-1)>*(ptr+j))

{

int tmp=*(ptr+j-1);

*(ptr+j-1)=*(ptr+j);

*(ptr+j)=tmp;

}

}

int main()

{

int n;

cin>>n;

int list[100];

for(int x=0;x

cin>>list[x];

bubble_up(list,n);

for(int i=0;i

cout<

return 0;

}

5、编写程序,将某一个输入的位数不确定的正整数按照标准的三位分节格式输出,例如,当用户输入82668634时,程序应该输出82,668,634。

程序运行结果如下:

输入:

82668634

输出:

82,668,634

#include

using namespace std;

int main()

{

int n,i=1;

char a[20],*ptr;

ptr=a;

cin>>n;

do{

if(i%4)

{

*ptr=n%10+'0';

n=n/10;

}

else *ptr=',';

ptr++;

i++;

}while(n);

do{

ptr--;

i--;

cout<<*ptr;

}while(i>1);

cout<

return 0;

}

6、编写程序,把10个整数赋予某个int型数组,然后用int型指针输出该数组元素的值。输入参数是待输出元素的个数。

输出:1 2 3 4 5 6 7 8 9 10

注:数组元素之间空一个空格。

#include

using namespace std;

int main( )

{

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

ptr=a;

for(int i =0;i<9;i++)

{

cout<<*ptr<<" ";

ptr++;

}

cout<

return 0;

}

7、用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能分别指出其中大、小写字母、数字以及其他字符的个数。

程序运行结果如下:

输入:

I am 21 years old.

输出(五个数值依次为大、小写字母、数字、其他字符和总共含有的字符个数):

1

10

2

5

18

#include

using namespace std;

int main()

{

char str[100];

char *ptr=str;

int total,cap,sma,num,oth;

total=cap=sma=num=oth=0;

cin.get(ptr,100);

while(*ptr!=0)

{

total++;

if(*ptr>='A'&&*ptr<='Z')cap++;

else if(*ptr>='a'&&*ptr<='z')sma++;

else if(*ptr>='0'&&*ptr<='9')num++;

else oth++;

ptr++;

}

cout<

cout<

cout<

cout<

cout<

return 0;

}

8、编写一个函数, 用于将一个字符串转换为整型数值。其原型为:

int myato i(char *string);

其中参数string为待转换的字符串(其中包括正、负号和数字),返回值为转换结果。

程序运行结果如下:

输入:

-529

输出:

-529

#include

using namespace std;

int atoi(char*string)

{

int num=0;

int s=1;

if(*string=='-')

{

s=-1;

string++;

}

if(*string=='+')

{

s=1;

string++;

}

while(*string!=0&&*string>='0'&&*string<='9')

{

num=num*10+*string-'0';

string++;

}

return s*num;

}

int main()

{

char str[50];

cin>>str;

cout<

return 0;

}

9、改善模拟梵塔问题的递归程序,打印移动过程的同时,再打印每一移动后个针上的金箔的数量。初始金箔的数量由用户输入。提示:其中关于步数和状态可用静态变量。

程序的运行结果如下所示:

输入:

3

输出:

Step 0A:3 B:0 C:0)

Step 1:From A to C,(A:2 B:0 C:1)

Step 2:Fro m A to B,(A:1 B:1 C:1)

Step 3:Fro m C to B,(A:1 B:2 C:0)

Step 4:Fro m A to C,(A:0 B:2 C:1)

Step 5:Fro m B to A,(A:1 B:1 C:1)

Step 6:Fro m B to C,(A:1 B:0 C:2)

Step 7:Fro m A to C,(A:0 B:0 C:3)

注意:冒号、逗号为英文符号,冒号、逗号后无空格。

#include

using namespace std;

int step,x,y,z;

void move(char from,char to)

{

if (from=='A') x=x-1;if (from=='B') y=y-1;if (from=='C') z=z-1; if (to=='A') x=x+1;if (to=='B') y=y+1;if(to=='C') z=z+1;

cout<<"Step "<

}

void hannoi(int n,char a,char b,char c)

{

if (n==1)

{

move(a,c);

step++;

}

else

{

hannoi(n-1,a,c,b);

move(a,c);

step++;

hannoi(n-1,b,a,c);

}

}

int main()

{

int n;

cin>>n;

step=1;

x=n;y=0;z=0;

cout<<"Step 0:(A:"<

hannoi(n,'A','B','C');

return 0;

}

10、重载求数组中最大元素的函数(两个函数,一个求整数的最大值,另一个求双精度的最大值),函数名为:max_element。测试数据如下:

数组A为整型,数值为{19,33,69,55,77,12,52};

数组B为实数,数值为{10.1, 21.3, 12.4, 321.42, 5.2, 7.1, 8.3, 12.31, 70.0};

程序运行结果如下:

输出:

77

321.42

#include

using namespace std;

int max(int a[],int n)

{

int max=a[0];

for(int i=0;i

max=a[i]>max?a[i]:max;

return max;

}

double max(double a[],int n)

{

double max=a[0];

for(int i=0;i

max=a[i]>max?a[i]:max;

return max;

}

int main()

{

int a[7]={19,33,69,55,77,12,52};

double b[9]={10.1,21.3,12.4,321.42,5.2,7.1,8.3,12.31,70.0};

cout<

cout<

return 0;

}

11、编写一个用于在字符串中查找某字符的函数。查找成功,函数返回该字符的地址(指针),查找失败,返回的指针为NULL。编写主函数测试该函数,在主函数中输入源字符串和要查找的字符,如果找到,显示字符在源字符串中的序号;如果找不到,显示“未找到”。

能找到时,程序运行结果如下:

输入(第一个参数是待查找的字符串,第二个是要查找的字符):

ABCDEFGHIJKLMN

D

输出:

4

查找不成功的情形:

输入:

ABCDEFG

S

输出:

未找到

#include

using namespace std;

char *s(char *q,char b)

{

while(*q!=b&&*q!=0)

q++;

if(*q==b)

return q;

else

return NULL;

}

int main()

{

char a[15],b;

char *k=a;

cin>>a;

cin>>b;

if(*s(a,b)==b)

cout<

else

cout<<"?′?òμ?"<

return 0;

}

12、用递归算法编写如下程序:对于任意给定的实数X和整数k>0,计算X的K次方。递归函数的名称必须为power。

程序运行结果如下:

输入(依次为X和K):

12.6 4

输出:

25204.7

#include

using namespace std;

double power(double x,int k)

{

if(x==0)

return 0;

else if(k==0)

return 1;

else

return x*power(x,k-1);

}

int main()

{

double a,b;

cin>>a>>b;

cout<

return 0;

}

13、使用递归算法编写求斐波那契数列的第n项的函数,函数名必须为fib,并编出主函数进行验证。

程序运行结果如下:

输入:

10

输出:

55

#include

using namespace std;

int fib(int n)

{

if(n==0)

return 0;

else if(n==1)

return 1;

else

return fib(n-1)+fib(n-2);

}

int main()

{

int k;

cin>>k;

cout<

return 0;

}

14、编写一个函数,用于去掉字符串尾部的空格符,其原型为:

char *mytrim(char *string);

其中参数string为字符串,返回值为指向string的指针。编写主函数测试,带空格的字符串由用户输入。提示,输入字符串可以使用cin.getline(str,100);

程序运行结果如下:

输入(尾部带有空格的字符串):

The art of co mputer programming

输出(字符串首尾加方括号):

[The art of co mputer pro gramming ]

[The art of co mputer pro gramming]

注意,输出中的方括号是为了看清字符串的边界,例中输入的字符串末尾有5个空格。

#include

using namespace std;

char *mytrim(char *string)

{

char *q=string;

while(*q!=0)

q++;

q=q-1;

while(*q==' ')

q--;

q=q+1;

*q=0;

return string;

}

int main()

{

char a[100];

cin.getline(a,100);

cout<<'['<

cout<<'['<

return 0;

}

15、编写一个函数,用于去掉字符串前面的空格,其原型为:

char *myltrim(char *string);

其中参数string为字符串,返回值为指向string的指针。编写主函数测试,开头带空格的字符串由用户输入。提示,输入字符串可以使用cin.getline(str,100);

程序运行结果如下:

输入:

The art of co mputer programming

输出:

[ The art of co mputer pro gramming]

[The art of co mputer pro gramming]

#include

#include;

using namespace std;

char *myltrim(char *string)

{

char *q=string;

while(*q==' ')

q++;

strcpy(string,q);

return string;

}

int main()

{

char a[100];

cin.getline(a,100);

cout<<'['<

cout<<'['<

}

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.使用天平测量物体的质量,下列说法错误的是() 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]

指针练习题

. 编程题 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章思考题及参考答案

第一章思考题及参考答案 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)仅仅搜索源程序所在目录

指针经典练习题及答案

二、程序题 1、计算字符串中子串出现的次数。要求:用一个子函数subString()实现, 参数为指向字符串和要查找的子串的指针,返回次数。 2、加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。 算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e), Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。 例如,China转换成密文为G l m r e。 要求:在函数change中完成字母转换,在函数insert中完成增加空格, 用指针传递参数。 3、字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E), 并返回替换字符的个数。 4、编写一个程序,输入星期,输出该星期的英文名。用指针数组处理。 5、有5个字符串,首先将它们按照字符串中的字符个数由小到大排列, 再分别取出每个字符串的第三个字母合并成一个新的字符串输出 (若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。 6、定义一个动态数组,长度为变量n,用随机数给数组各元素赋值, 然后对数组各单元排序,定义swap函数交换数据单元,要求参数使用指针传递。7、实现模拟彩票的程序设计:随机产生6个数字,与用户输入的数字进行比较, 输它们相同的数字个数(使用动态内存分配)。 /*1、计算字符串中子串出现的次数。要求:用一个子函数subString()实现, 参数为指向字符串和要查找的子串的指针,返回次数。*/ #include int subString(char *a, char *b) { int i = 0; int j = 0; int m = 0; char *p = b; while(*a) { while(*a) { if(*a == *b) { break; } a++; } while(*b) { if(*a != *b)

工艺思考题及参考答案模板

工艺思考题及参考 答案模板

机械制造工艺学( 上) 思考题及参考答案 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.二十世纪人类面临的环境危机是什么? ○1温室气体大量排放导致全球变暖○2臭氧层空洞○3生物多样性减少○4酸雨成灾○5森林锐减○6土地沙漠化○7大气污染○8淡水资源污染○9海洋污染○10垃圾围城—最严重的城市病○11核冬天(核污染) 2.绿色化学的定义、特点及其与环境化学和环境治理的区别。 定义:绿色化学,又称环境无害化学、环境友好化学、清洁化学。它是利用化学原理和方法来减少或消除对人类健康、社区安全、生态环境有害的反应原料、催化剂、溶剂和试剂、产物、副产物的使用和产生的新兴学科。是一门从源头上减少或消除污染的化学。 特点:从科学观点看,绿色化学是对传统化学思维方式的创新和发展;从经济观点看,绿色化学为我们提供合理利用资源和能源、降低生产成本、符合经济持续发展的原理和方法; 从环境观点看,绿色化学是从源头上消除污染,保护环境的新科学和新技术方法。绿色化学是更高层次的化学。 与环境化学和环境治理的区别:环境化学是一门研究污染物的分布、存在形式、运行、迁移及其对环境影响的科学。环境治理则是对已被污染了的环境进行治理,即研究污染物对环境的污染情况和治理污染物的原理和方法。而绿色化学是从源头上阻止污染物生成的新学科,它是利用化学原理来预防污染,不让污染产生,而不是处理已有的污染物。 3.绿色化学的十二条原则是什么? ○1防止污染优于污染治理;○2提高原子经济性;○3尽量减少化学合成中的有毒原料、产物;○4设计安全的化学品;○5使用无毒无害的溶剂和助剂;○6合理使用和节省能源;○7利用可再生资源代替消耗性资源合成化学品;○8减少不必要的衍生化步骤;○9采用高选择性催化剂优于使用化学计量助剂;○10产物的易降解性;○11发展分析方法,对污染物实行在线监测和控制;○12减少使用易燃易爆物质,降低事故隐患 第二章不产生三废的原子经济反应 1.什么是原子经济性及如何计算原子利用率。 绿色化学的“原子经济性”是指在化学品合成过程中,合成方法和工艺应被设计成能把反应过程中所用的所有原材料尽可能多的转化到最终产物中;化学反应的“原子经济性”(Atom economy)概念是绿色化学的核心内容之一。 2.原子经济性与环境效益的相关性. ○1原子利用率越低,环境因子就越大,生产过程产生的废物就越多,造成的资源浪费和环境污染就越大。○2产品越精细复杂,E值越大。因为产品越复杂,生产步骤越多,原子利用率越低。○3原子经济反应是最大限度利用资源、最大限度减少污染的必要条件,但不是充分条件。 3.提高化学反应原子经济性的途径有哪些? ○1开发新型催化剂;○2简化合成步骤;○3采用新合成原料。 第三章绿色合成让社区中毒的悲剧不再重演 1.光气和氢氰酸是生产哪些产品的原料?他们对人有什么危害? ○1光气(COCl2)又称碳酰氯,主要用于生产聚氨酯,也是生产染料、医药、农药和矿物浮选剂的原料。光气对人的危害:剧毒,吸入微量时可引起咳嗽、咽喉发炎、粘膜充血、呕吐等;重症时,引起肺部淤血和肺水肿;深度中毒时,引起血管膨胀、心脏功能丧失,导致急性窒息性死亡。 ○2氢氰酸主要用于生产聚合物的单体如甲基丙烯酸系列产品、己二腈等。前者主要用于生产有机玻璃,也用于制造涂料、胶粘剂、润滑剂、皮革整理剂、乳化剂、上光剂和防锈剂等;后者是尼龙-66的重要中间体。氢氰酸对人的危害:无色液体或气体,极易挥发,能迅速被血液吸收,口服致死量一般在0.1-0.3g之间。

指针练习题答案(1)

指针单元练习题 一、选择题: 1.以下程序的运行结果是() sub(int x,int y,int *z) {*z=y-x;} main() {int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%4d,%4d,%4d\n”,a,b,c);} A.5,2,3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-7 2.执行以下程序后,a的值为(),b的值为() main(0 {int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1= =&m; b=(- *p1)/(*p2)+7; printf(“a=%d\n”,a); printf(“b=%d\n”,b);} [1] A.-1 B.1 C.0 D.4 [2] A.5 B.6 C.7 D.10 3. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误的原因是()main() {int *p,*q,a,b; p=&a; printf(“input a:”); scanf(“%d’,*p); …….} A.*p表示的是指针变量p的地址 B.*p表示的是变量a的值,而不是变量a的地址 C.*p表示的是指针变量p的值 D.*p只能用来说明p是一个指针变量 4. 以下程序有错,错误原因是() main() {int *p,i; char *q,ch; p=&i; q=&ch; *p=40; *p=*q;……….} A.p和q的类型不一致,不能执行*p=*q;语句; B.*p中存放的是地址值,因此不能执行*p=40;语句 C.q没有指向具体的存储单元,所以*q没有实际意义 D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句 5. 已有定义:int k=2; int *ptr1,*ptr2;且ptr1和ptr2均指向变量k,下面不能正确执行的赋值语句是() A.k=*ptr1+*ptr2; B.ptr2=k; C.ptr1=ptr2; D.k=*ptr1*(*ptr2); 6. 变量的指针,其含义是指该变量的() A.值 B.地址 C.名 D.一个标志 7. 若有语句:int *point ,a=4;point=&a;下面均代表地址的一组选项是() A.a, point ,*&a B.&*a,&a,*point C.*&point ,*point ,&a D.&a,&*point,point 8. 若有说明:int *p,m=5,n; 以下正确的程序段是() A.p=&n; scanf(“%d”,&p); B.p=&n; scanf(“%d”,*p); C.scanf(“%d”,&n); *p=n; D.p=&n; *p=m; 9. 设char *s= “\ta\017bc”;则指针变量s指向的字符串所占的字节数是() A.9 B.5 C.6 D.7 10. 下面程序段中,for循环的执行次数是() char *s= “\ta\018bc”; for( ;*s!= ‘\0’;s++) printf(“*”); A.9 B.5 C.6 D.7 11. 下面能正确进行字符串赋值的操作是() 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); 12.下面程序段的运行结果是()。 char *s=”abcde”; s+=2;printf(“%d”,s); A.cde B.字符’c’ C. 字符’c’的地址 D.无确定的输出结果 13.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是() A.c=*p1+*p2; B.p2=c; C.p1=p2; D.c=*p1*(*p2); 14.设有下面的程序段: char a[]=”china”; char *p; p=s;则下列叙述正确的是() A.s和p完全相同 B.数组s中的内容和指针变量p中的内容相等 C.s数组长度和p所指向的字符串长度相等 D.*p 与s[0]相等 15. 下列程序段的运行结果是() char *format=”%s,a=%d,b=%d\n”; int a=1,b=10; a+=b;

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