指针部分选择题讲解
《C++指针》习题参考答案
《C++指针》习题学号姓名一、选择题1、有定义如下:int a[5], *p; 则下列描述错误的是 BA.表达式p=p+1是合法的B.表达式a=a+1是合法的C.表达式p-a是合法的D.表达式a+2是合法的2、函数定义为Fun(int &i),变量定义n=100,则下面调用该函数正确的是 CA.Fun(20) B.Fun(20+n) C.Fun(n) D.Fun(&n)3、若有说明int I,j=2,*p=&i;则能完成i=j赋值功能的语句是 BA.i=*p; B.*p=*&j; C.i=&j; D.i=**p;4、设已有定义char *st = "how are you";下列程序中正确的是 AA.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],下列引用数组元素的方法中错误的是 DA.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中元素引用的正确的是 CA.ps+1 B.*(ps+3) C. ps[0][2] D. *(ps+1)+37、设有说明int b[4][4],以下不能等价表示元素b[3][3]的是: BA.*&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]比较的是 BA."1234"和"9012" B.'5'和'3' C.'l'和'9' D."5678"和"3456"9、设语句"char *s[]={"Student","Teacher","Father","Mother"},*ps=s[2];",执行语句"cout<<*s[1]<<','<<ps<<','<<*ps<<'\n';",则输出结果是 A A.T,Father,F B.Teacher,F,FatherC.Teacher,Father,Father D.语法错无输出10、设有以下说明语句:char sl[20]="hello",s2[20]="china";const char *ptr=s1;以下语句中不符合C++语法规则的语句是 DA.strcpy(s2,ptr); B.ptr=s2; C.ptr=ptr+4; D.*ptr=*s2; 11、设s和t分别为指向两个长度相同的字符数组的指针,则循环语句while( C );可以正确实现字符串t到s的完整复制功能。
教材课后题答案-第6章_指针习题答案
习题解答一、单项选择题1.若定义了int n=2, *p=&n, *q=p;则下面【】的赋值是非法的。
A.p=qB. *p=*qC. n=*qD. p=n【答案】D2.若定义了double *p, a;则能通过scanf函数给输入项读入数据的程序段是【】。
A.p=&a; scanf(“%1e”,p);B. *p=&a; scanf(“%1f”,p);C. p=&a; scanf(“%f”,p);D. p=&a; scanf(“%1f”,a);【答案】C3.若定义了int a[10], i=3, *p; p=&a[5];下面不能表示为a数组元素的是【】。
A.p[-5]B. a[i+5]C. *p++D. a[i-5]【答案】D4.若有如下定义:int n[5]={1,2,3,4,5},*p=n;则值为5的表达式是【】。
A.*+5B. *(p+5)C. *p+=4D. p+4【答案】C5.设变量b的地址已赋给指针变量ps,下面为“真”的表达式是【】。
A.b==&psB. b==psC. b==*psD. &b==&ps【答案】C6.设有以下定义和语句:int a[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];则*(p[0]+1)所代表的数组元素是【】。
A.a[0][1]B. a[1][0]C. a[1][1]D. a[1][2]【答案】C7.若定义了char *str=”Hello!”;下面程序段中正确的是【】。
A.char c[ ], *p=c; strcpy(p,str);B.char c[5], *p; strcpy(p=&c[1],&str[3]);C.char c[5]; strcpy(c,str);D.char c[5]; strcpy(p=c+2,str+3);【答案】B8.若有下面的程序段,则不正确的fxy函数的首部是【】。
小学指南针试题及答案
小学指南针试题及答案一、选择题(每题2分,共10分)1. 指南针的发明者是:A. 张衡B. 毕昇C. 蔡伦D. 祖冲之答案:A2. 指南针的指针指向地球的:A. 南极B. 北极C. 赤道D. 地心答案:B3. 指南针的工作原理是利用:A. 地球的磁场B. 地球的重力C. 地球的自转D. 地球的公转答案:A4. 指南针上红色的指针通常指向:A. 南方B. 北方C. 东方D. 西方答案:A5. 指南针在航海中的主要作用是:A. 测量速度B. 测量深度C. 确定方向D. 记录时间答案:C二、填空题(每题2分,共10分)1. 指南针是利用地球的_________来指示方向的。
答案:磁场2. 指南针的发明可以追溯到中国的_________时期。
答案:战国3. 指南针的英文是_________。
答案:Compass4. 指南针上的指针在静止状态下,一端指向地球的_________,另一端指向地球的_________。
答案:北极,南极5. 在使用指南针时,应确保指南针与地面保持_________。
答案:水平三、判断题(每题1分,共10分)1. 指南针是中国古代四大发明之一。
(对)2. 指南针的发明对航海和地理探索有着重要的影响。
(对)3. 指南针只能在陆地上使用,不能在海上使用。
(错)4. 指南针的指针总是指向地球的北极。
(对)5. 指南针的发明者是毕昇。
(错)6. 指南针上的红色指针指向南方。
(对)7. 指南针的工作原理与地球的重力有关。
(错)8. 在使用指南针时,不需要考虑指南针与地面的角度。
(错)9. 指南针的发明对人类文明的发展有着深远的影响。
(对)10. 指南针在现代导航中已经完全被GPS所取代。
(错)四、简答题(每题5分,共20分)1. 简述指南针的发明对人类历史的影响。
答案:指南针的发明极大地促进了航海技术的发展,使得远洋航行成为可能。
它为地理大发现提供了重要的工具,促进了世界各地区的交流与贸易,对人类历史产生了深远的影响。
c语言二级选择题考点
c语言二级选择题考点C语言是一门广泛应用于计算机科学和软件开发领域的编程语言。
在C语言的学习过程中,选择题是常见的考核方式之一。
本文将针对C语言二级选择题的考点进行讨论,帮助读者更好地理解和应对这些考题。
一、数据类型和运算符1. 数据类型的选择在C语言中,数据类型是非常重要的概念。
选择题通常会涉及数据类型的选择,如int、float、char等。
对于这类问题,我们需要掌握不同数据类型的存储范围、精度以及对应的格式符。
同时,我们还需要了解数据类型之间的转换规则,以便正确选择数据类型。
2. 运算符的优先级和结合性选择题还会涉及运算符的优先级和结合性的问题。
我们需要熟悉C语言中运算符的优先级和结合性规则,以便正确判断表达式的运算结果。
二、控制结构1. 条件语句的判断选择题中常会涉及条件语句的判断,如if语句、switch语句等。
我们需要了解条件语句的语法结构和执行流程,并能正确判断条件的真假以及相应的执行结果。
2. 循环结构的选择循环结构也是选择题中常见的考点。
我们需要熟悉C语言中的循环语句,如for循环、while循环、do-while循环等,并能正确选择适合的循环结构以实现特定的功能。
三、函数和数组1. 函数的选择和调用选择题中会涉及函数的选择和调用的问题。
我们需要了解函数的定义和调用的语法规则,包括函数的返回值类型、参数的传递方式以及函数的调用方式等。
2. 数组的使用和操作选择题中也会涉及数组的使用和操作。
我们需要了解数组的定义和初始化的语法规则,以及数组的访问和操作方式。
此外,我们还需要掌握数组的内存分配和释放的知识,以便正确选择和使用数组。
四、指针和内存管理1. 指针的选择和操作选择题中常会涉及指针的选择和操作的问题。
我们需要了解指针的定义和初始化的语法规则,以及指针的访问和操作方式。
同时,我们还需要了解指针的指向和指针的运算的相关知识,以便正确选择和操作指针。
2. 动态内存管理选择题中还会涉及动态内存管理的问题。
c语言中fseek选择题
c语言中fseek选择题在C语言中,`fseek()`函数用于改变文件的位置指针的位置。
以下是一些关于`fseek()`的常见选择题:1. `fseek()`函数的原型是:A. `int fseek(FILE stream, int offset, int whence);`B. `int fseek(FILE stream, long offset, int whence);`C. `void fseek(FILE stream, long offset, int whence);`D. `long fseek(FILE stream, long offset, int whence);`答案:B。
2. 在`fseek()`函数中,`whence`参数的值是:A. 文件位置指针的当前位置B. 文件位置指针的起始位置C. 文件位置指针的结束位置D. 文件的大小答案:B。
3. 如果要在文件内部移动文件位置指针,应将`whence`参数设置为:A. `SEEK_SET`B. `SEEK_CUR`C. `SEEK_END`D. 以上都可以答案:A。
4. 如果要在文件开头和文件尾部之间移动文件位置指针,应将`whence`参数设置为:A. `SEEK_SET`B. `SEEK_CUR`C. `SEEK_END`D. 以上都可以答案:C。
5. 如果要在文件内部移动文件位置指针,并将偏移量设置为0,应将偏移量参数设置为:A. 0B. `ftell()`函数的返回值C. `fsize()`函数的返回值D. `fread()`函数的返回值答案:A。
C语言指针练习题解析
一、知识点1.掌握指针、地址、指针类型、空指针(NULL)等概念;2.掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;3.掌握指针与数组、函数、字符串等的联系;4.掌握动态空间操作(new,delete);5.掌握引用参数的使用。
二、例题分析与解答例题1:若有以下定义,则说法错误的是( )。
int a=100,*p=&a ;A.声明变量p,其中*表示p是一个指针变量B.变量p经初始化,获得变量a的地址C.变量p只可以指向一个整形变量D.变量p的值为100答案:D分析:有指针变量定义可知A、C说法是正确的,故不能选。
在语句中&p=a,表示指针变量取得变量a地址,B说法也正确,也不能选择。
D中不能说变量p的值为100,应该*p的值为100,所以选择D。
例题2:若有以下定义,则赋值正确的是( )。
int a ,b , *p;float c, *q;A.p=&c B.q=p C.p=NULL D.q=new int答案:C分析:指针变量使用规定,不同类型的指针变量不能赋值,也不能取得普通变量地址,故A、B不正确,不能选择。
因为q是float类型指针变量,不能申请int 类型地址,D不正确,也不能选择。
因为任何类型的指针变量都能取得NULL指针,所以C正确。
例题3:如果x是整型变量,则合法的形式是( )。
A.&(x+5) B.*x C.&*x D.*&x答案:D分析:因为C++语言表达式没有地址,A不正确。
C++语言普通变量不能用*运算,因此B和C也不正确。
&x 表示变量x的地址,*&x是x 地址的值,所以D正确。
例题4:若要建立如下关系,错误的语句组是( )。
span style='mso-ignore:vglayout; ;z-index:1;left:0px;margin-left:144px;margin-top:1px;width:256px;height:38px'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;答案:A分析:在变量类型说明语句中 *表示变量是指针变量,在其他语句中,*称为指针运算,用于访问指针所指向的对象的值,&称为取地址运算,用来得到一个对象的地址。
C++语言选择题40道:C++智能指针:auto_ptr
C++智能指针试题1.auto_ptr在C++11中被标记为已弃用,主要因为它具有哪个性质导致资源管理混乱?o A. 所有权转移时的浅拷贝o B. 可以显式释放资源o C. 强制类型转换的构造函数o D. 没有引用计数答案: A解析: auto_ptr在拷贝构造和赋值操作时,仅进行所有权转让,而不是深拷贝,这可能导致原对象的资源被释放后,新对象仍试图使用已被释放的资源,造成悬挂指针。
2.假设有一个unique_ptr对象uptr,以下哪个操作是非法的?o A. uptr->func();o B. (*uptr).func();o C. uptr = nullptr;o D. uptr = uptr;答案: D解析: unique_ptr不允许自我赋值,因为这会导致资源管理混乱,即两次释放相同的资源。
3.shared_ptr的主要优势是什么?o A. 自动管理资源的生命周期o B. 所有权的唯一性o C. 可以在不同线程间安全地传递o D. 消耗的资源比auto_ptr和unique_ptr少答案: A解析: shared_ptr通过引用计数管理资源的生命周期,当引用计数为0时自动释放资源,从而允许多个shared_ptr实例共享相同的资源。
4.以下哪项描述了unique_ptr和shared_ptr之间的一个关键区别?o A. unique_ptr可以使用new[]分配的数组o B. shared_ptr可以被复制和转移o C. unique_ptr支持任意类型o D. shared_ptr的析构函数是公有的答案: B解析: unique_ptr不支持复制和转移所有权,而shared_ptr通过引用计数机制支持复制和所有权的共享。
5.在以下代码片段中,ptr指向的对象何时被销毁?o B. 当weakPtr离开作用域时o C. 当ptr引用计数变为0时o D. 代码编译错误,无法执行答案: C解析: shared_ptr在引用计数为0时会释放资源,当ptr被赋值为weakPtr (实质上是一个shared_ptr)时,原ptr指向的对象的引用计数变为0。
指针练习题及答案
六、指针习题及答案一、单项选择题1. *p最终值是( D)int *p,b=10;static int a[]={2,3,4,1,5,6};p=a;p+=3;a[3]=b;A. 1B. 3C. 4D. 102. *p最终值是( A )char b[10]= "abcdefghi",*p;p=b+5;A. ’f’B. ’g’C. ’h’D. ’e’3. 有一个二维数组a[3][4],其2行3列元素a[2][3]的正确表示方法为( D )。
A. &a[2][3]B. a[2]+3C. *(a+2)+3D. *(a[2]+3)4. 指向一个包含4个整型元素的一维数组的行指针变量的定义形式为( D )。
A. int (*p)[]B. int *p[4]C. int *(p[])D. int (*p)[4]5. 4个指向int型元素的指针构成一个一维指针数组的定义形式为( B )。
A. int (*p)[]B. int *p[4]C. int *(p[])D. int (*p)[4]6. 若char *str1="china",char *str2="student";则语句strcpy(str2,str1)执行后,str2的值为( A )。
A. chinaB. studentC. studentchinaD. chinastudent7.若有以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}, *p=a;则值为3的表达式是( B )。
A. p+=2,*(++p)B.p+=2,*p++C.p+=3,p++D. p+=2,++*p8.若有以下定义:char s[20]="programming", *ps=s;则下列不能代表字符“o”的表达式是( A )。
A. ps+2B. s[2]C. ps[2]D.ps+=2,*ps9. 若有定义和语句:int **pp,*p, a=10,b=20;pp=&p;p=&a;p=&b;cout<<*p<<","<<**pp;则输出结果是: ( D )。
百分表的选择题目与答案
百分表的选择题目与答案
1、使用百分表测量时,测量值为(A)。
A、大指针读数
B、小指针读数
C、大指针读数-小指针读
D、大指针读数+小指针读
2、百分表的小指针可指示(B)。
A、大指针转过的格数
B、大指针转过的圈数
C、小指针转过的格数
D、小指针转过的圈数
3、使用万用表的R×100挡位测量电阻时,标度尺上指针读数是
21.5,则被测电阻的实际值为(B)。
A、21.5Ω
B、2150Ω
C、0.215Ω
D、215Ω
4、在使用指针式万用表的R×100挡位测量电阻时,在标度尺上的指针读数是则被测电阻的实际值为(A)。
A、21.5Ω
B、2150Ω
C、0.215Ω
D、215Ω
5、在百分表、千分表(D)的轴上装有小指针,用以指示指针回转的圈数,其测力由弹簧产生。
A、轴齿轮
B、中心齿轮
C、片齿轮
D、传动齿轮
6、ADF自检时,现象如何(C)
A、指针指向135度
B、指针与机头夹角为135度
C、指针指向90度
D、指针与机头夹角为90度
7、从理论上讲游动滑车每股钢丝绳的受拉力值(C)拉力计的指针读数。
A、大于
B、等于
C、小于
D、大于或小于。
指针选择题练习
指针选择题练习1、以下程序段运行后*(++p )的值为(C )char a[6]=“work ”;char *p;p=a;A 、‘w ’B 、存放‘w ’的地址C 、‘o ’D 、存放的‘o ’地址2.以下程序运行后*(P+3)的值为( A )char a[]=“good ”; char *P ;P=a ;A.‘d ’B.‘\0’C.存放‘d ’的地址 .D.‘0’3.以下程序运行段运行后x 的值为( D )int a[]={1,2,3,4,5,6,7,8};int i,x *p;x=1;p=&a[2];for(i=0,i <3,i++)x*=(p+i);A. 不确定B. 24C. 120D. 604、下面程序的输出结果是(A )#include<stdio. h>int main ( ){int i;char *s= “ abc ”;for ( i=0 ; i<3; i++)printf ( “% s\n ” , s+i );}A B C D 5.执行以下程序段的输出结果是( B )int a=10,*p=&a;printf(“%d ”,++*p);A .10 B.11 C.变量a 的地址 D.变量a 的地址加16. 语句int a=10,*point=&a ; D 其值不为地址。
A. pointB. &aC. &pointD. *point7. 若有说明:int *p, a=1, b; 以下正确的程序段是(D )。
A . p=&b;B . scanf("%d", &b);scanf("%d", &p); *p=b;C . p=&b;D . p=&b;scanf("%d", *p); *p=a8. 变量的指针,其含义是指该变量的(B )。
A . 值B . 地址C . 名D . 一个标志9.若定义:int a=511, *b=&a ;,则printf("%d\n", *b);的输出结果为: D a b c b c c c b ca b c a b c c b c aa ba b cA.无确定值B.a的地址C.512 D.51110. 已有定义int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(B)。
C语言指针章节选择题(新)
1. 若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是A) a[p-a] B) *(&a[i])C) p[i] D) a[10]D2. 已知指针p的指向如下图所示,则执行语句*--p;后*p的值是a[0] a[1] a[2] a[3] a[4]┌──┬──┬──┬──┬──┐│10 | 20 | 30 │40 | 50 |└──┴──┴──┴──┴──┘p↑A) 30 B) 20C) 19 D) 29B3. 下面程序运行时,如果从键盘上输入3,5<回车>,程序输出的结果是________。
main( ){ int a,b,*pa,*pb;pa=&a; pb=&b;scanf("%d,%d",pa,pb);*pa=a+b;*pb=a+b;printf("a=%d,b=%d\n",a,b);}A) a=13,b=13 B) a=8,b=8C) a=8,b=13 D) 出错C4. 下面程序段的输出结果是________。
main( ){ char string1[20],string2[20]={"ABCDEF"};strcpy(string1,string2);printf("%s\n",string1+3);}A) EF B) DEFC) CDEF D) ABCDEFB5. 下列程序执行后的输出结果是________。
main(){ int a[3][3],i,*pmul;pmul=&a[0][0];for(i=0;i<9;i++) pmul[i]=i+1;printf("%d\n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数B6. 有如下程序段int *p,a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为________。
时钟问题详细讲解
时钟问题详细讲解我只是在论坛看到相关内容,并加以整理:一、重合问题1、钟表指针重叠问题中午12点,时针与分针完全重合,那么到下次12点时,时针与分针重合多少次?(2006国家考题)A、10B、11C、12D、13 答案B2、中午12点,秒针与分针完全重合,那么到下午1点时,两针重合多少次?A、60B、59C、61D、62 答案B讲讲第2题,如果第2题弄懂了第1题也就懂了!给大家介绍我认为网友比较经典的解法:考友1.其实这个题目就是追击问题,我们现在以钟表上的每一刻度为一个单位,这时秒针的速度就是是分针速度的60倍,秒针和分针一起从12点的刻度开始走,多久分针追上时针呢?我们列个方程就可以了,设分针的速度为1格/秒,那么秒针的速度就是60格/秒,设追上的时候路程是S,时间是t,方程为(1+60)t=S 即61t=S,中午12点到下午1点,秒针一共走了3600格,即S的范围是0<S<3600,那么t的范围就是0<t<3600/61,即0<t<59.02,因为t只能取整数,所以t为1~59,也就是他们相遇59次。
第1题跟这个思路是一样的,大家可以算算!给大家一个公式吧61T=S (S为题目中最小的单位在题目所要求的时间内所走的格数,确定S后算出T的最大值就知道相遇多少次了)如第1题,题目中最小单位为分针,题目所要求的时间为12小时,也就是说分针走了720格T(max)=720/61.8,取整数就是11。
1、钟表指针重叠问题中午12点,时针与分针完全重合,那么到下次12点时,时针与分针重合多少次?A、10B、11C、12D、13考友2.这道题我是这么解,大家比较一下:解:可以看做追及问题,时针的速度是:1/12格/分分针的速度是:1格/分.追上一次的时间=路程差/速度差=60/(1-1/12)=720/11分从12点到12点的总时间是720 分钟,所以重合次数n=总时间/追上一次的时间=720/720/11 次二、关于成角度的问题,我推荐个公式及变式给你:设X时时,夹角为30X ,Y分时,分针追时针5.5,设夹角为A.(请大家掌握)钟面分12大格60小格每一大格为360除以12等于30度,每过一分钟分针走6度,时针走0.5度,能追5.5度。
C语言题库第6章指针
第六章指针一、单项选择1.若已定义char s[10];则在下面表达式中不表示s[1]的地址是()。
A.&s[1]B.&s[0]+1C.s+1D.s++2.下面程序段的运行结果是()。
char a[ ]=”language” , *p ;p=a ;while (*p!='u') { printf(“%c”,*p-32); p++ ; }nguagengUAGENGUAGENG3.下面能正确进行字符串赋值操作的是( )A.char s[5]={'A','B','C','D','E'};B.char s[5]={"ABCDE"};C.char *s ; s="ABCDE" ;D.char *s; scanf("%s",s) ;4.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下能正确执行并得到有意义的结果的赋值语句是( )。
A.p2=c;B.c=*p1+*p2;C.p1=p2;D.c=*p1*(*p2);5.已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是( )。
A.*p=max(a,b);B.*p=max;C.p=max;D.p=max(a,b);6.以下正确的叙述是( )。
A.C语言允许main函数带形参,且形参个数和形参名均可由用户指定B.当main函数带有形参时,传给形参的值只能从命令行中得到C.若有说明: int main(int argc,char **argv),则argc的值必须大于1D.C语言允许main函数带形参,形参名只能是argc和argv7.若有定义:int (*p)[4];则标识符p( )。
A.是一个指针数组名B.定义不合法C.是一个指向整型变量的指针D.是一个指针,它指向一个含有四个整型元素的一维数组8.设有程序段:char s[ ]="china"; char *p ; p=s ;则下面叙述正确的是()。
C语言指针经典练习题 及答案
C语言指针经典练习题及答案c语言指针经典练习题-及答案C语言指针练习和答案一、选择题1.指向变量的指针,表示变量a)值b)地址C)名称d)标志2.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是___.a)a,point,*&ab)&*a,&a,*pointc)*&point,*point,&ad)&a,&*point,point3.如有;int*p,m=5,n;下面正确的部分是____;a)p=&n;b) p=&n;scanf(\scanf(\c)scanf(\d)p=&n;*p=n;*p=m;4.在下面的过程中,调用scanf函数向变量a输入数值是错误的。
main(){int*p,*q,a,b;p=&a;printf(“输入:”);scanf(“%d”,*p);…}a)*p表示的是指针变量p的地址b) *P代表变量a的值,而不是变量a.C的地址)*P代表指针变量P的值d)*p只能用来说明p是一个指针变量5.现有变量定义和函数调用语句:inta=25;打印值(&a);以下函数的输出为_voidprint_value(int*x){printf(“%d\\n”,++*x);}a) 23b)24c)25d)266.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是a)*p=&a;scanf(\,p);b) p=(长*)malloc(8);scanf(\,p);c)scanf(\,p=&a);d)scanf(\,&a);7。
有以下程序:#includemain(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(\}程序运行后的输出结果是a) 1,2,1,2b)1,2,2,1c)2,1,2,1d)2,1,1,28。
认识钟表的试卷题整点
认识钟表的试卷题整点
一、选择题
1.在钟表上,粗的指针通常表示小时数,细的指针通常表示什么? A.
分钟数 B. 秒数 C. 毫秒数 D. 每周的天数
2.以下哪个选项表示钟表上最小的刻度? A. 小时 B. 分钟 C. 秒 D. 毫秒
3.如果钟表指针指向6和12之间的刻度,表示几点? A. 3点 B. 6点 C.
9点 D. 12点
二、填空题
1.当钟表的时针和分针同时指向12点,表示__点__分。
2.若钟表上的时针指向4,分针指向6,那么表示的时间是__点__分。
三、简答题
1.请简要介绍钟表的指针分为哪几种?各自代表的时间单位是什么?
2.如果钟表上的时针指向8,分针指向9,那么表示的时间是什么?请
说明如何计算出这一时间点。
四、解答题
1.请解释钟表的制作原理以及如何校准钟表的时间准确性。
2.请描述一下钟表背后的故事以及钟表在人类生活中扮演的角色。
以上题目为考试试卷题型,希望你能认真思考后给出答案,并在规定时间内完成答题。
祝好运!。
六、指针_选择题(答案)
六、指针183.下程序的运行结果是(A)。
void ast (int x,int y,int *cp,int *dp){ *cp=x+y; *dp=x-y;}main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf("%d,%d\n",c,d);}A.7,1B.1,7C.7,-1D.c、d未赋值,编译出错执行ast(a,b,&c,&d);调用ast 函数,把a传递给x,b传递给y,c 的地址传递给cp,d的地址传递给dp.因为cp=&c(cp的值为c变量的地址),所以*cp等价于c,执行*cp=x+y ;后c=4+3=7同理,因为dp=&d,所以*dp等价于d,执行*dp=x-y;后d=4-3=1执行printf("%d,%d\n",c,d);后输出7,1184.有以下语句:int a[5]={0,1,2,3,4,5},i;int *p=a;设0≤i<5,对a数组元素不正确的引用是(C)。
A.*(&a[i])B.a[p-a]C.*(*(a+i))D.p[i]1.指针运算符取地址运算符&:其功能是取变量的地址。
2.取内容运算符*:用来表示指针变量所指的变量。
在*运算符之后跟的变量必须是指针变量。
A . *(&a[i]) 等价于a[i]B. a[p-a]等价于a[0]C. 因为*(a+i) 等价于a[i] 所以*(*(a+i))等价于*(a[i]) ,又因为在*运算符之后跟的变量必须是指针变量,我们断定*a[i]是错的,所以*(*(a+i))也是错。
D.因为P=a,所以P[i]等价于a[i]185.若有定义int *p1,*p2; 则错误的表达式是(A)。
A.p1+p2B.p1-p2C.p1<p2D.p1=p2两个指针变量可以相减(结果表示介于二者之间元素的个数),可以比较大小,但不能相加。
C习题指针部分
指针一、选择题1.变量的指针,其含义是指该变量的____________。
A.值B.地址C.名D.一个标志2.已知int *p,a;则语句“p=&a;”中的运算符“&”的含义是____________。
A. 逻辑与运算B.位与运算C.取指针内容D.取地址变量3.对于类型相同的指针变量,不能进行()运算。
A.+B.—C. =D.==4.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是____________。
A.a,point,*&aB.&*a,&a,*pointC.*&point,*point,&aD.&a,&*point ,point5.设指针x指向的整型变量值为28,则printf(“%d\n”,++*x);的输出是____________。
A.27B.28C. 29D.306.若有说明:int *p,m=5,n;以下正确的程序段是____________。
A.p=&n; scanf(“%d”,&p);B.p=&n; *p=m;C.scanf(“%d”,&n); *p=n;D.p=&n; scan(“%d”,*p);7.若有以下定义和语句:则下列说法正确的是____________。
double r==99,,*p=&r*p=r;A.以上两处的*p含义相同,都说明给指针变量p赋值B.在double r==99,*p=&r,把r的地址赋给了p所指的存储单元C.语句“*p=r”,把变量r的值赋给指针变量pD.语句“*p=r”,取变量r的值放回r中8.执行下面程序段后,变量a的值为____________。
int *p,a,b=1;p=&a;*p=l0;a=*p+b;A.12B.11C.10D.编译错误9.若有说明:int i, j=7,*p=&i; 则i与j;等价的语句是____________。
中南大学daydayupt题库中指针选择题
正确答案
下面关于二维数组的说法错误的是( )。 A.同行的数据在内存中连续存放。 B.对全部数组元素都赋初值时,可以不指定数组第 二维的长度。 C.不能将二维数组作为一个整体输入与输出。 D.将二维数组看作是一维数组时,该一维数组的每 个元素本身又是一个一维数组。 B 对于定义语句: int *pa[5]; 的描述( )是正确的。 A.pa是一个指向数组的指针,所指向的数组是5个 int型元素。 B.pa是一个指向某数组中第5个元素的指针,该元 素是int型。 C.pa[5]表示某个数组的第5个元素的值。 D.pa是一个具有5个元素的指针数组,每个元素是 一个int型指针。 D 设有int x[][3]={ {0},{1,2},{3,4,6},{5}}; 则x[2][2]的值 是( )。 A.3 B.2 C.6 D.4 C 已知char a[][20]= {"beijing","shanghai","changsha"};语句 cout<<a[3]; 得到的输出是: A.j B.changsha C.输出结果不确定 D.数组定义有错 C
题目
y+=p[x]; cout<<y<<endl;} 程序运行后输出的结果是( ) A.10 B.11 C.14 D.15 C 若有定义int a[3][5]={{2,2},{2,6},{2,6,2}}; 则数组a共有( )个元素。 A.7 B.9 C.6 D.15 D 以下能正确定义一维数组的语句是( )。 A.int num[ ]; B.#define N 100 C.int num[0 to 100]; D.const int N=100; int num[N]; D 在下列对字符数组进行初始化的语句中( )是 正确的。 A. char s1[]=”abcd”; B. char s2[3]=”xyz”; C. char s3[][]={′a′,′x′,′y′}; D.char s4[2][3]={“xyz”, ”mnp”}; A 若函数形参是数组,则对应的实参 ( ). A.只能是数组名 B.只能是指针 C.可以是数组名或指针 D.任何类型的数据
指针题库
第五章指针一、选择题1. 以下程序的输出结果是。
#include <stdio.h>void main( ){char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;int i;i=8;p=a+i;printf ("%s\n",p-3);}A)6 B)'6' C)6789 D)789答案:C2. 若有语句:char *line[5];,以下叙述中正确的是______。
A)定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针答案:A3. 设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是 A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;答案:A4.若有定义:int x=0, *p=&x;,则语句printf("%d\n",*p);的输出结果是______。
A)随机值 B)0 C)x的地址 D)p的地址答案:B5.有以下程序#include<stdio.h>void main(){int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;printf("%d\n", *p + *q);}程序运行后的输出结果是______。
A)16 B)10 C)8 D)6答案:B6.有以下程序void main(){int a[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++) p[i]=i;for(i=0;i<3;i++) printf("%d",a[1][i]);}程序运行后的输出结果是______。
高中生物第2章神经调节微专题1膜电位的测量及电表指针偏转问题分析新人教版选择性必修1
图1是测量神经纤维膜内外电位的装置,图2是测得的膜电位变化。
下列有关叙述错误的是
()
A.图1中a能测出静息电位的大小,相当于图2中A点的电位 B.若细胞外Na+浓度适当升高,在适宜条件刺激下图2中C点上移 C.神经纤维的状态由A转变为B的过程中,膜对钠离子的通透性增 大 D.若要画出如图2的动作电位,需要多个图1装置测量神经纤维不 同位点的电位变化 【答案】D
【解析】神经纤维在静息状态下表现为外正内负,电表会测出膜内 外的电位差,A错误;神经纤维受刺激后,由于膜外Na+大量流入膜内, 所以兴奋部位膜两侧的电位是外负内正,B错误;神经纤维受刺激时, 兴奋传导方向与膜内局部电流方向相同,与膜外局部电流方向相反,C 错误;从静息状态受刺激到形成动作电位,电表指针会通过0电位偏转 一次;由动作电位恢复到静息电位,电表指针又会通过0电位偏转一次, 共两次,D正确。
个电极(b、c)置于蛙的坐骨神经纤维上,然后在a处给予适宜的电刺激。
பைடு நூலகம்
下列叙述正确的是
()
A.刺激a处后,电流表会发生两次方向和幅度都不同的偏转 B.刺激a处,兴奋在神经纤维上的传导不消耗能量
C.静息时,电流表指针没有偏转,说明电流表两个电极处的膜外 没有电位差
D.此实验能说明神经冲动沿着神经纤维双向传导 【答案】C 【解析】当a处刺激产生的兴奋先传到b,然后再传到d之后,电表 指针发生的两次偏转幅度相同,但方向相反,A错误;刺激a处后,兴 奋在神经纤维上的传导通过形成局部电流进行,消耗能量,B错误;电 流表的两电极接在坐骨神经纤维的外表面,静息时膜外均为正电位,两 电极的电位差为0,C正确;此实验只能说明电流表会发生两次偏转, 不能说明神经冲动沿着神经纤维双向传导,D错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.下面判断正确的是 。 (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”;
• 12.设p1和p2 是指向同一个字符串的指针 变量,c为字符变量,则以下不能正确执行 的赋值语句是 。
• (A)c=*p1+*p2; • (C)p1=p2; (B)p2=c; (D)c=*p1*(*p2);
13.下面程序段的运行结果是 。 char *format=”%s, a=%d, b=%d\n”; int a=1, b=10; a+= b; printf(format, “a+=b”, a, b); (A)for, “a+=b”,ab (C)a+=b, a=11, b=10 (D)以上结果都不对 (B)format, “a+=b”
(A)strcpy(s1, “string1”); (B)strcpy(s4, ”string9”); (C)strcpy(s3, “string3”); (D)strcpy( s2, s1 );
17.下面程序的功能是从输入的10个字符串中找出 最长的一串,请选择填充。
# include “stdio.h” # include “string.h” #define N 10 main( ) { char str[N][81], *sp; int i ; for( i=0; i<N; i++ ) gets(str[ i ]); sp=【 1 】; for( i=1; i<N; i++ ) if(strlen(sp)<strlen(str[i])) sp=【2】; cout<<strlen(sp)<<“ “<<sp <<endl; }
• 3.有四组对指针变量进行操作的语句,判断正确 的选项是 。 (1)int *p, *q; q = p; int a, *p, *q; p=q=&a; (2)int a, *p, *q; q=&a; p=*q; int a=20, *p; *p=a; (3)int a=b=0, *p; p=&a; b=*p; int a=20, *p, *q=&a; *p=*q; /*p无指向*/ (4)int a=20, *p, *q=&a; p=q; int p, *q; q=&p;
• 7.已有说明:float *p, m=3.1415; 则正确 的赋值语句是 。 • • • • (A)p=m; (B)p=&m; (C)*p=m; (D)*p=&m;
• 8.若有说明:int *p, m=5, n; 以下正确的程 序段是 。 • • • • (A)p=&n; cin>>p; (B)p=&n; cin>>&p; (C)cin>>n; *p=n; (D)p=&n; *p=m;
20.下面程序的功能是统计子串substr在母串str 中出现的次数,请填充。 #include <stdio.h> main( ) { char str[80], substr(80); int n; gets( str ); gets( substr ); cout<< count(str, substr) <<endl; } count( char *str, char *substr ) { int i, j, k , num=0 ; for( i=0; 【1】;i++ ) for(【2】, k=0; substr[k]== str[j]; k++, j++ ) if( substr[k+1]= =‟\0‟ ) { num ++; break ; } return( num ); } • 【1】(A)str[i]==substr[i] (B) str[i]!=‟\0‟ • (C)str[i]==‟\0‟ (D)str[i]>substr[i]
。
( #include “stdio.h” void delch( char *s ) { int i, j; char *a; a=s; for( i=0, j=0; a[i]!=‟\0‟; i++ ) if( a[i]>=‟0‟ && a[i]<=‟9‟ ) { a[ j ]=a[ i ]; j++; } s[ j ]=‟\0‟; } main( ) { char *item=”abc345def”; delch( item ); cout<<item <<endl; } (A) abc (B) 345 (C)abcdef (D)abc345def
【1】(A)*a!=‟\0‟ (B)*a!=NULL (D) !a* ==0 【2】(A)*(a-1) (B)*a (D)*(a- -) (C)!*a
(C) *(a+1)
22. 下面程序的运行结果是 。 #include “stdio.h” main( ) { static char a[ ]=”Language”, b[ ]=”program”; char *p1, *p2 ; int k; p1=a; p2=b; for( k=0; k=7 ; k++ ) if( *(p1+k)= =*(p2+k) ) cout<<*(p1+k ) ; cout<<endl; } • (A)gae (B)ga (C) Language • (D)语法错
14.下面程序段的运行结果是 。 char *p= “%d, a=%d, b=%d\n ”; int a=111, b=10, c; c= a%b; p+=3; printf( p, c, a, b );
(A)1,a=111,b=10 (B)a=1,b=1 (C)a=111,b=10 (D)以上结果不对
指针部分选择题讲解
1.写出以下程序的运行结果 void 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 ); cout<<a<<“ ,” << b<<“,”<< c<<endl; } (A)5,2,3 (B)-5,-12,-7 (C)-5,-12,-17 (D)5,-2,-7
• 19.下面程序的功能是将八进制正整数字符串转换为十进 制整数,请选择填空。 #include “stdio.h” #include “string.h” main( ) { char *p , s[6]; int n; p=s ; gets( p ); n=【1】; while(【2】!=‟\0‟) n=n*8+ *p-„0‟ ; cout<<n<<endl; } 【1】(A)0 (B) *p (C) *p-„0‟ (D)*p+‟0‟ 【2】(A)*p (B) *p+ + (C) *(+ + p ) (D)p
• 10.设 char *s=”\ta\017bc”; 则指针变量s 指向的字符串所占的字节数是 。 • (A)9 • (C)6 (B)5 (D)7
为什么是6, 结束符占位.
• 11.下面能正确进行字符串赋值操作的 是 。 • • • • (A) (B) (C) (D) char s[5]={“ABCDE”}; char s[5]={ „A‟,‟B‟,‟C‟,‟D‟,‟E‟}; char *s; s=”ABCDE”; char *s; scanf(“%s”, *s);
• 5.若有以下定义和语句,则选项中错误的 语句是 。 int a=4, b=3, *p, *q, *w; p=&a; q=&b; w=q; q=NULL; (A) *q = 0; (C) *p=a;
分析: 由于q=NULL; 所以 *q=0; 为错.
(B) w=p; (D)*p = *w;
• 6.若有语句 int *point, a=4; 和 point=&a; 下面均代表地址的一组选项是 。 • • • • (A) (B) (C) (D) a, point, *&a &*a, &a, *point *&point, *point, &a &a, &*point, point
• 【2】(A)j=i+1 (B)j= i (C)j=0 (D)j=1
21. 下面程序的功能是将字符串s 中的内容按逆序输出,但 不改变串中的内容,请选择填充。 #include “stdio.h” main( ) { char s[10]=”I love China!”; inverp(s); } inverp( char *a ) { if (【1】) return 0; inverp( a+1 ); cout<< 【2】; cout<<endl; }
• 4.以下程序中调用cin 函数给变量 a 输入数值的方 法是错误的,其错误原因是 。 • main( ) • { int *p, *q, a, b; • p= &a; • cout<<“input a:”; cin>>p; • … • }