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

合集下载

C语言指针经典练习题-及答案

C语言指针经典练习题-及答案

C语言指针练习题及答案一、选择题1. 变量的指针,其含义是指该变量的____.a)值b)地址c)名d)一个标志2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ _.a)a,point,*&a b)&*a,&a,*pointc)*&point,*point,&a d)&a,&*point ,point3.若有说明;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. 以下程序中调用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是一个指针变量5. 已有变量定义和函数调用语句:int a=25; print_value(&a); 下面函数的正确输出结果是______.void print_value(int *x){ printf(“%d\n”,++*x);}a)23 b)24 c)25 d)266.若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是A) *p=&a;scanf("%ld",p);B) p=(long *)malloc(8);scanf("%ld",p);C) scanf("%ld",p=&a);D) scanf("%ld",&a);7.有以下程序#include<stdio.h>main(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1C)2,1,2,1 D)2,1,1,28. 有以下程序main(){ int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1 B)2 C)3 D)49. 有以下程序main(){ int a,k=4,m=4,*p1=&k,*p2=&m;a=p1==&m;printf("%d\n",a);}程序运行后的输出结果是()A)4 B)1 C)0 D)运行时出错,无定值10. 在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是()A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价11.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], b; b=p[5]; b中的值是()A)5 B)6 C)8 D)912.若有以下定义,则对a数组元素的正确引用是_________.int a[5],*p=a;a)*&a[5] b)a+2 c)*(p+5) d)*(a+2)13.若有以下定义,则p+5表示_______.int a[10],*p=a;a)元素a[5]的地址b)元素a[5]的值c)元素a[6]的地址d)元素a[6]的值14.设已有定义: int a[10]={15,12,7,31,47,20,16,28,13,19},*p; 下列语句中正确的是()A) for(p=a;a<(p+10);a++);B) for(p=a;p<(a+10);p++);C) for(p=a,a=a+10;p<a;p++);D) for(p=a;a<p+10; ++a);15.有以下程序段#include <stdio.h>int main(){ int x[] = {10, 20, 30};int *px = x;printf("%d,", ++*px); printf("%d,", *px);px = x;printf("%d,", (*px)++); printf("%d,", *px);px = x;printf("%d,", *px++); printf("%d,", *px);px = x;printf("%d,", *++px); printf("%d\n", *px);return 0;}程序运行后的输出结果是( )A)11,11,11,12,12,20,20,20 B)20,10,11,10,11,10,11,10C)11,11,11,12,12,13,20,20 D)20,10,11,20,11,12,20,2016.设有如下定义则程序段的输出结果为int arr[]={6,7,8,9,10};int *ptr;ptr=arr;*(ptr+2)+=2;printf ("%d,%d\n",*ptr,*(ptr+2));A)8,10 B)6,8 C)7,9 D)6,1017.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是_4__. *(a+5)的值是__12__.18.若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是___ __.A) p+1 B) *(p+3) C) *(p+1)+3 D) *(p[0]+2))19.若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为__ __.a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j20.若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是_8_. *(*(a+1)+0)的值是_ _8.21.有以下定义char a[10],*b=a; 不能给数组a输入字符串的语句是()A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b);22.下面程序段的运行结果是___ __.char *s="abcde";s+=2;printf("%d",s);a)cde b)字符'c' c)字符'c'的地址d)无确定的输出结果23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()A) char s[10]="abcdefg"; B) char t[]="abcdefg",*s=t;C) char s[10];s="abcdefg"; D) char s[10];strcpy(s,"abcdefg");24.设已有定义: char *st="how are you"; 下列程序段中正确的是()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);25.有以下程序输出结果是()main(){char a[]="programming",b[]="language";char *p1,*p2;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}A)gm B)rg C)or D)ga26.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是_____.a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);27.以下正确的程序段是____.a)char str[20]; b)char *p;scanf("%s",&str); scanf("%s",p);c)char str[20]; d)char str[20],*p=str;scanf("%s",&str[2]); scanf("%s",p[2]);28.若有说明语句则以下不正确的叙述是____.char a[]="It is mine";char *p="It is mine";a)a+1表示的是字符t的地址b)p指向另外的字符串时,字符串的长度不受限制c)p变量中存放的地址值可以改变d)a中只能存放10个字符29.下面程序的运行结果是___.#include <stdio.h>#include <string.h>main(){ char *s1="AbDeG";char *s2="AbdEg";s1+=2;s2+=2;printf("%d\n",strcmp(s1,s2));}a)正数b)负数c)零d)不确定的值30.有以下程序运行后的输出结果是____。

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

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

(一)选择题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)floatb)intc)longd)double5.已有以下数组定义和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,127.以下正确的描述是____________.a)C语言的预处理功能是指完成宏替换和包含文件的调用b)预处理指令只能位于C源程序文件的首部c)凡是C源程序中行首以"#"标识的控制行都是预处理指令d)C语言的编译预处理就是对源程序进行初步的语法检查8.在"文件包含"预处理语句的使用形式中,当#include后面的文件名用< >(尖括号)括起时,找寻被包含文件的方式是_______.a)仅仅搜索当前目录b)仅仅搜索源程序所在目录c)直接按系统设定的标准方式搜索目录d)先在源程序所在目录搜索,再按照系统设定的标准方式搜索9.当调用函数时,实参是一个数组名,则向函数传送的是_____.A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值10.函数的值通过return语句返回,下面关于return语句的形式描述错误的是_____.表达式; (表达式);C.一个return语句可以返回多个函数值D.一个return语句只能返回一个函数值11.设函数fun的定义形式为void fun(char ch,float x){…}则以下对函数fun的调用语句中,正确的是_____.("abc",; =fun('D',; ('65',; (32,32);12.以下程序的输出结果是_____.void reverse(int a[],int n){ int i,t;for(i=0;i<n/2;i++){ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}}main( ){ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf(" %d\n ",s);}B.1013.阅读下列程序,则运行结果为_____.fun( ){ static int x=5;x++;return x;}main( ){ int i,x;for(i=0;i<3;i++)x=fun( );printf("%d\n",x);}B.614.若使用一维数组名作函数实参,则以下正确的说法是_____.A.必须在主调函数中说明此数组的大小B.实参数组类型与形参数组类型可以不匹配C.在被调用函数中,不需要考虑形参数组的大小D.实参数组名与形参数组名必须一致15.在C语言中,定义函数时函数的类型可以缺省,此时函数的隐含类型是_____. 16.在C语言中,形参的缺省存储类别是( ).17.以下关于字符串的叙述中正确的是_____.语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小18.阅读程序,选择程序的运行结果。

c语言指针的习题答案

c语言指针的习题答案

指针练习题1.有以下程序main(){char a[]="programming",b[]="language";char *p1,*p2;int i;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}输出结果是A)gm B)rg C)or D)ga2.设有说明int(*ptr)[m];其中的标识符ptr是A)M个指向整型变量的指针B)指向M个整型变量的函数指针C)一个指向具有M个整型元素的一维数组的指针D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量3.若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是A) p+1 B) a+1 C) a++ D) ++p4.若有语句int *point ,a=4;和point =&a;下面均代表地址的一组选项是A. a,point,*&aB. &*a,&a,*pointC. &point,*point,&aD. &a,&*point,point5.下面程序段的运行结果是char a[]=”language”,*p;p=a;while(*p!=’u’) {printf(“%c”, *p-32);p++;}A. LANGUAGEB. LANGuageNGngUAGE6.以下程序的运算结果是*p=1,m=3,n=5 。

#include<stdio.h>void main(){int a[5]={1,2,3,-4,5};int m,n,*p;p=&a[0];m=*(p+2);n=*(p+4);printf("*p=%d,m=%d,n=%d",*p,m,n);}7.写一通用函数slength,求出一个字符串的长度,并用main函数调用slength。

人教版五年级下册数学第五单元《图形的运动》练习题(含答案)

人教版五年级下册数学第五单元《图形的运动》练习题(含答案)

人教版五年级下册数学第五单元《图形的运动》练习题(含答案)一、填空题。

1.如图,指针从A开始,逆时针旋转了90°到________点,逆时针旋转了180°到________点;要从A旋转到D,可以按________时针方向旋转________°,也可以按________时针方向旋转________°2.下面的现象中是平移的画“△”,是旋转的画“○”。

(1)扶梯的运动。

________(2)推拉门的移动。

________(3)分针的运动。

________(4)直升飞机的螺旋桨的运动。

________(5)电风扇叶子的运动。

________(6)拉动吹风机。

________3.由变成,是绕A点________方向旋转了________.4.钟面上分针从6绕中心点旋转到12点,顺时针要旋转________度,逆时针要旋转________度.5.下面各图形中()不能通过图①平移或旋转得到。

(多选)A. B. C. D.6.看图填一填(1)图①绕点O旋转________度得到图②。

(2)图③绕点A经过________时针旋转________度得到图④。

(3)图⑤经过________得到图⑥。

(4)图⑦经过________时针旋转________度,再平移________格得到图⑧。

二、选择题7.想一想,下列哪一组都是旋转现象()。

A. 拉抽屉,电风扇转动B. 转动转盘,风车转动C. 时针转动,电梯升降8.下列现象中,既有平移现象,又有旋转现象的是()。

A. 正在工作的风扇叶片B. 在笔直道路上行驶的汽车C. 运行中的观光电梯D. 传输带上的物品9.下图中,是以A点为中心旋转的是()A. B. C.10.绕A 点顺时针旋转90○后的图形是()A. B. C.11.从3时15分到3时45分,钟面上的分针()。

A. 旋转了120°B. 旋转了180°C. 旋转了30°D. 旋转了360°12.等边三角形有()条对称轴.A. 1B. 2C. 3D. 无数13.下面每组中的两个图形,经过平移后,可以完全重合的是()。

《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。

2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。

3.字符数组中字符串可以整体输入输出。

4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。

5.C语言中数组名是指针常量。

6.结构体类型中的各成员项数据类型可以不相同。

7.函数必须有返回值,否则不能使用函数。

8.C程序执行总是从第一个函数开始。

9.可以用关系运算符对字符串进行大小比较。

10.For循环只能用于循环次数已确定的场合。

试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。

1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。

int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知: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;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。

指针字符串练习题及答案

指针字符串练习题及答案

单项选择==================================================题号:4074若有定义语句:int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是().A、p=aB、p=&a[2][1]C、q[i]=a[i]D、p=a[i]答案:A题号:4333执行下列语句后的结果为().int x=3,y;int *px=&x;y=*px++;printf("x=%d,y=%d\n",x,y);A、x=3,y=3B、x=4,y=4C、x=3,y不知D、x=3,y=4答案:A题号:4876下列程序的运行结果是void fun(int *a,int *b) {int *k;k=a;a=b;b=k;}main(){int a=3,b=6,*x=&a,*y=&b; fun(x,y);printf("%d %d",a,b);}A、0 0B、3 6C、编译出错D、6 3答案:B题号:4116若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是().A、scanf("%d",n);B、p=&n;scanf("%d",&p);C、p=&n;scanf("%d",*p);D、p=&n;scanf("%d",p);答案:D题号:4120下面程序:int aa[3][3]={{2},{4},{6}};main(){int i,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是().A、25B、30C、26D、23答案:D题号:4124若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是().A、i=*p;B、*p=*&j;C、i=**p;D、i=&j;答案:B题号:4165阅读下面程序,程序执行后的结果为().#include"stdio.h"main(){ char *str="abcdefghijklmnopq";while(*str++!='e');printf("%c\n",*str);}A、fB、qC、eD、a答案:A题号:4167关于指针概念说法不正确的是().A、指针变量可以由整数赋,不能用浮点赋B、只有同一类型变量的地址才能放到指向该类型变量的指针变量之中,C、一个指针变量只能指向同一类型变量D、一个变量的地址称为该变量的指针答案:A题号:4173设有以下定义:int w[2][3],(*pw)[3];pw=w;,则对w数组元素非法引用是().A、pw[0][0]B、*(pw[1]+2)C、*(pw+1)[2]D、*(w[0]+2)答案:C题号:4532若有定义:char s[3][10],*k[3],*p;,则以下赋值语句正确的是().A、k=s;B、p=k;C、p=s;D、p=s[0];答案:D题号:4174当运行以下程序时输入OPEN THE DOOR<CR>,则输出结果是#include<stdio.h>char fun(char *c){if(*c<='Z' && *c>='A')*c -='A' - 'a';return *c;}main(){char s[8],*p=s;gets(s);while(*p){*p=fun(p);putcahr(*p);p++;}putchar('\n');}A、Open The DoorB、OPEN THE DOORC、open the doorD、oPEN tHE dOOR答案:C题号:4175下列程序执行后的输出结果是().void func(int *a,int b[]){b[0]=*a+6;}main(){int a,b[5]={0};a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]);}A、8B、9C、7D、6答案:D题号:4390已知有声明"char a[]="prongram",*p=a+1;",则执行以下语句不会输出字符a的是()oA、putchar(*p+4);B、putchar(*(p+4));C、putchar(a[sizeof(a)-3]);D、putchar(*(a+5));答案:A题号:4181定义语句int *swap();指的是A、其他说法都不对B、swap是一个返回指向整型值指针的函数C、swap是一个返回整型值的函数D、swap是一个指向函数的指针答案:B题号:4184有以下程序:#include<stdio.h>void swap(char *x,char *y){char t;t=*x;*x=*y;*y=t;}main(){char *s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2); }程序执行后的输出结果是().A、1bc,a23B、123,abcC、321,cbaD、abc,123答案:A题号:4211若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,则输出结果不为5 的语句为().A、printf("%d",p[5]);B、printf("%d",*p[5]);C、printf("%d",*(a+5));D、printf("%d",*(p+5));答案:B题号:4215有以下程序:void fun(int *a,int i,int j){int t;if(i<j){t=a[i];a[i]=a[j];a[j]=t;fun(a,++i,--j);}}main(){int a[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}执行后输出结果是().A、6 5 4 3 2 1B、2 1 4 3 6 5C、3 2 4 1 5 6D、1 2 3 4 5 6答案:A题号:4113以下程序运行后的输出结果是(). main(){char ch[]="uvwxyz",*pc; pc=ch;printf("%c\n",*(pc+5));}A、字符y的地址B、0C、元素ch[5]地址D、z答案:D题号:4695有以下程序#include<stdio.h>main(){int a[]={1,2,3,4},y,*p=&a[3]; --p; y=*p; printf("y=%d\n",y); }程序的运行结果是().A、y=0B、y=2C、y=1D、y=3答案:D题号:4298若有语句:char *line[5];下列叙述中正确的是().A、定义line是一个指针数组,语句中的*号称为间址运算符B、定义line是一个数组,每个数组元素是一个基类型为char 的指针变量C、定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组D、定义line是一个指向字符型函数的指针答案:B题号:2457设有数组定义:char array[]="China";,则数组 array所占的空间为().A、5个字节B、4个字节C、6个字节D、7个字节答案:C题号:2468下述对C语言字符数组的描述中错误的是().A、字符数组中的字符串可以整体输入,输出.B、不可以用关系运算符对字符数组中的字符串进行比较.C、字符数组中可以存放字符串.D、可以通过赋值运算符"="对字符数组整体赋值.答案:D题号:2479以下程序:#include<stdio.h>#include<string.h>main(){ char str[]="abcd\n\123\xab";printf("%d",strlen(str));}运行后的输出结果是().A、10B、9C、14D、7答案:D题号:2485已知有声明"char s[20]="Hello";",在程序运行过程中若要想使数组s中的内容修改为"Good",则以下语句能够实现此功能的是().A、strcpy(s,"Good");B、strcat(s,"Good");C、s[20]="Good";D、s="Good";答案:A题号:2499以下程序段的输出结果是pritnf("%d\n",strlen("ATS\n012\1\\"));A、11B、8C、9D、10答案:C题号:2510char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是().A、strcat(a2,a1);B、strcpy(a2,a1);C、strcpy(a1,a2);D、strcat(a1,a2);答案:A题号:2530设有以下语句,若0<k<4,下列选项中对字符串的非法引用是().char str[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];int j;for(j=0;j<4;j++)strp[j]=str[j];A、*strpB、strpC、strp[k]D、str[k]答案:B题号:2543选择正确的输入语句().(其中:char string[10];)使得string的内容为"Hello".A、scanf("%s",&string);B、scanf("%c",string);C、scanf("%c",&string);D、scanf("%s",string);答案:D题号:2874下列数组说明中正确的是().A、static char str1[5],str2[]={"China"};str1=str2;B、static char str[];str="China";C、static char str1[],str2[];str2={"China"};strcpy(str1,str2);D、static char str[]="China";答案:D题号:2633已定义char string[20];使得string的内容为"You are student"的正确输入语句是().A、scanf("%c",&string);B、gets(string);C、scanf("%s",&string);D、scanf("%s",string);答案:B填空题==================================================题号:4875若有定义: char ch;定义指针p,并使其指向变量ch的初始化语句是_____。

国家开放大学C语言试题及答案

国家开放大学C语言试题及答案

1.C语言中的循环类语句有3条,它们是()。

选择一项:A. for,if,whileB. for,while,doC. while,do,switchD. for,break,do正确答案是:for,while,do2.C语言中的跳转类语句有四条,它们是goto,return和()。

A. break,constB. static,continueC. break,continueD. while,extern正确答案是:break,continue3.当不需要函数返回任何值时,则所使用的返回类型为()。

A. IntB. unionC. voidD. Void 正确答案是:void4.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。

选择一项:A. 表达式B. 语句C. 函数体D. 参数表正确答案是:参数表5.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为A. #cludeB. #constC. #includeD. #defile正确答案是:#include6.在#include预处理命令中,不可以包含()。

A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件正确答案是:目标文件7.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。

选择一项:A. 5B. 6C. 4D. 2正确答案是:68.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。

选择一项:A. 5B. 6C. 4D. 2正确答案是:29.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。

A. 6B. 4C. 3D. 2正确答案是:310.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。

(完整word版)C语言指针练习+答案+讲解

(完整word版)C语言指针练习+答案+讲解

第七章指针7.1 选择题1.若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。

A. p=q; B. *p=*q; C. a=*q; D. q=a;a是整型数,int *p,*q定义了指针,p,q是指向整型的指针.p取得a的地址,而q取得p的地址p,q是指针(也就是一个地址),而*p和*q是这个指针指向的整型数值(存放在这个地址的值).A)把q的地址赋给p,则p和q完全一样了,都指向一个数2B)把q中数据个pC)把q中数据给aD)a中数据是2,不能够给一个地址。

除非*q=a2.若定义:int a=511, *b=&a;,则printf("%d\n”, *b);的输出结果为:D A.无确定值 B. a的地址 C. 512 D. 511int a=511,*b=&a;a 是整形变量b 是整形指针变量,指向 aprintf("%d\n",*b);就是输出指针变量 b,所指变量的值输出结果5113.已有定义int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(B)。

A. a=*p1+*p2; B. p1=a; C. p1=p2; D. a=*p1*(*p2);47、已知在程序中定义了如下的语句:int *P1,*P2;int k;p1=&k;p2=&k;则下列语句中不能正确执行是( B )A、k=*P1+*P2;B、p2=k;C、P1=P2;D、K=*P1 * (*P2);P1 P2是指针,K是整型变量,变量怎么可以赋值给指针呢?A其实是执行了K=K+K(P1和P2都指向K,所以*P1 *P2其实都是指K)C是赋值语句D其实执行了K=K*K4.变量的指针,其含义是指该变量的(B)。

A.值 B.地址 C.名 D.一个标志5.若有说明语句:int a, b, c, *d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)。

中考物理《电流和电路》专项练习题(附答案)

中考物理《电流和电路》专项练习题(附答案)

中考物理《电流和电路》专项练习题(附答案)一、单选题1.如图所示,比较A、B、C三处的电流大小,其中正确的是()A.I A+I B<I C B.I A+I B>I C C.I A+I B=I C D.I A=I B=I C2.医用外科口罩与N95级口罩可根据飞沫颗粒的大小和气流速度,通过拦截、惯性碰撞附着、扩散吸附、静电吸引等多种机制捕捉含病毒分子的飞沫,起到良好的防病毒作用。

下列说法正确的是()A.病毒分子没有惯性B.病毒分子间没有引力和斥力C.温度越高病毒分子的动能越小D.带静电物体对轻小物体有吸引作用3.有两个电阻,R1=10Ω,R2=6Ω,如果把它们串联在电路中,通过它们的电流分别为I1、I2,它们两端的电压分别为U1,U2,则,I1、I2、U1,U2分别为()A.1∶1 5∶3B.5∶3 1∶1C.1∶1 1∶1D.5∶3 2∶34.如图所示,用手接触验电器的金属球,观察到验电器的两片金属箔闭合,下列说法正确的是()A.验电器的原理是同种电荷相互排斥,异种电荷相互吸引B.若验电器带负电,在这一过程中的瞬时电流方向是从手到金属箔C.若验电器的金属箔片未张开时,说明两箔片带有异种电荷D.若带上绝缘手套接触验电器验电器金属箔张角不变,是因为绝缘手套是绝缘体它不易导电也不能带电5.如图(a)所示,当开关S闭合时,两只电流表的指针所指位置均为如图(b)所示,则电灯L1中的电流是()A.1.6A B.0.32A C.1.28A D.1.92A6.如图所示,A1、A2、A3三个电流表的示数分别为I1、I2、I3,则有()A.I1=I2+I3 B.I1=I2=I3C.I1>I2>I3D.I1<I2<I37.下列说法不正确的是()A.摩擦起电并没有创造电荷,而是电荷的转移B.固体和液体很难被压缩是因为分子间存在斥力C.用手捏海绵,海绵的体积缩小了,说明分子间有空隙D.远远地闻到酒香是由于分子的无规则运动引起的8.下列说法中正确的是()A.非金属都是绝缘体B.金属里的电子都是自由电子C.发生电中和现象时,物体所带的电荷都消失了D.绝缘体不容易导电是因为它几乎没有自由电荷9.在用滑动变阻器改变灯泡亮度的实验中,对于连接实验电路的注意事项,不必要的一点是()A.连入变阻器时,应使滑片位于变阻器值最大的位置B.开关、电流表应接在靠近电源电流流出的一端C.连接电路时,应先将开关断开D.电流表应与灯泡串联,并使它的“+”接线柱,靠近电源的“+”极一端.10.电流表测某并联电路中两支路的电流分别为0.4安、1.3安,则干路中的电流为()A.0.9安B.1.7安C.0.4安D.1.3安11.小刚拆开了家庭电路中常用的白炽灯泡和灯头,如图所示,则以下灯泡和灯头上的各部件中全部属于绝缘体的是()A.灯头后盖、螺旋B.玻璃泡、锡块C.螺旋、金属片D.灯头后盖、玻璃泡12.下列哪一组全是绝缘体()A.纯净的水、丝线、橡胶B.盐水、空气、陶瓷C.玻璃、摩擦过的塑料棒、碳棒D.钨丝、水银、碳棒二、填空题13.如图所示,路由器是一种支持有线和无线连接的网络设备,通过后排接口可以同时连接多台电脑,各接口之间是(选填“串联”或“并联”)的.工作时间长了,外壳发烫,是由于能转化成了能.14.在如图所示的电路中,电源电压保持不变.闭合电键S,当滑动变阻器的滑片P向右移动时,电压表V的示数将,电流表A1示数的变化值与电流表A示数的变化值的比值将.(均选填“变小”、“不变”或“变大”)15.如题图甲所示,验电器A带正电,B不带电,A带正电的原因是它(选填“得到”或“失去”)电子,验电器A两金属箔张开的原因是。

第3章 数据类型——指针习题(有答案)

第3章 数据类型——指针习题(有答案)
22.int (*pfa)(int,char*)=fa;
23.char *(*pfb)(const char *)=fb;
24.B
25.B
int(*pf1)(int);
pf1=f1;//或合并为:int(*pf1)(int)=f1;
char *(*pf2)(int,char *);
pf2=f2;//或合并为:char *(*pf2)(int,char*)=f2;
(2)函数指针的应用:
#include<iostream.h>
intadd(inta,intb){returna+b;}
20.已知变量a,b定义为:inta=99,&b=a;则cout<<a-1<<’,’<<b+1;的输出是()。
21.已知变量x,y定义为:intx[]={99,98,97},&y=x[1];则cout<<y-1<<’,’<<y*2;的输出是()。
22.已知函数fa的原形是:intfa(int,char*);,pfa是指向fa的指针,则pfa的定义是()
D.*(*(X+I)+j)
16.(单选)要使指针变量p指向2维数组A的第一个元素(0行0列元素),正确的赋值表达式是()。
A.p=A或p=A[0][0]
B.p=A[0]或p=A[0][0]
C.p=A[0]或p=&A[0][0]
D.p=A或p=&A[0][0]
17.下列程序功能是:将字符串中的小写字母都改成对应的大写字母,其他字母不变。请更改程序中的错误。
23.已知函数fb的原形是:char *fb(const char *);,pfb是指向fb的指针,则pfb的定义是()。

【三套试卷】小学五年级数学上册第四单元练习试题带答案(4)

【三套试卷】小学五年级数学上册第四单元练习试题带答案(4)

第四单元过关检测卷(附答案解析)一.选择题(共5题,共12分)1.下列事件:①射击时,射中10环.②你1分钟可以跑10000米.③随意掷硬币一枚,“国徽”向上.④某班有男生25人,女生30人,从中选出1名女生当领操员.事件发生的可能性大于0而小于1的有()。

A.1B.2C.3D.42.天气预报已经成为人们日常生活必不可少的每日信息,这里应用了统计与可能性的知识.请你想一想:(1)某日天气预报为:多云转小雨,27℃~12℃,降水概率80%,这天一定下雨吗?()A.一定B.不一定(2)某日天气预报为:晴转多云,28℃~14℃,降水概率30%,这天一定不下雨吗?()A.一定B.不一定3.盒子里有6个球,除颜色外完全相同,在()条件下,摸出白球的可能性大。

A.5白1红B.2白4红C.5红1白4.超市“双休日”,利用“快乐大转盘”举行促销活动.下面这转盘中,指针落在白色区域的可能性是()。

A. B.12.5% C. D.5.根据题意选择恰当的词语填空:四个红色的玻璃球放在一起,任意摸出其中一个,()是红色的玻璃球。

A.不一定B.不可能C.可能D.一定二.判断题(共6题,共12分)1.口袋里装有2个红球、3个黄球。

“摸出一个球,若是红球,小明胜;若是黄球,小华胜”。

()2.1~9,9张数字卡片,抽到单数的可能性和抽到双数的可能性一样大。

()3.可能性很大的事件就是一定会发生的事件。

()4.扔一百次硬币不可能一百次都是正面。

()5.明明和圆圆在这次数学考试中都可能得满分。

()6.儿子的年龄能超过爸爸。

()三.填空题(共6题,共19分)1.掷一个正方体骰子,出现3的可能性和出现6的可能性()。

2.妈妈把许多大小相同的红球和蓝球放入一个木箱中,让璐璐连续摸了20次(摸后放回),其中15次摸到了蓝球,5次摸到了红球。

由此我们可以推测出木箱中的()球多,()球少。

3.用“可能”“不可能”或“一定”填空。

(1)某地今天晴天,那么明天________下雨。

复习题七答案及详细分析

复习题七答案及详细分析

字符串1.以下能正确定义字符串的语句是A char str[]={'\064'};B char str="\x43";C char str='';D char str[]="\0";1 D解析:在C语言中,字符串常量是由双引号括起来的,由若干个字符所组成的序列。

所以A选项中的字符是由一对单引号括起来,C选项中只有一个双引号,皆错。

对于B选项,定义了一个字符变量,却给它赋了字符串常量,错误。

若该改为char str[] =”\x43”,则也正确。

2.以下语句中存在语法错误的是A char ss[6][20];ss[1]="right?";B char ss[][20]={ "right?"};C char *ss[6]; ss[1]="right?";D char *ss[]={" right?"};2 A解析:A选项中ss[1]可以看作是一个地址常量,其值不能改变,所以不可以对其赋值。

但是在定义二维数组的时候,对其进行初始化是允许的,如选项B。

选项C和D定义的是字符指针变量,可以对其进行赋值。

3.设有以下定义和语句:char str[20]="Program",*p;p=str;则以下叙述中正确的是A *p与str[0]中的值相等。

B str与p的类型完全相同。

C str数组长度和p所指向的字符串长度相等。

D 数组str中存放的内容和指针变量p中存放的内容相同。

3 A解析:Str是地址常量,P是指针变量,两者类型不一致,选项B错误。

Str数组的长度是20,而P所指的字符串遇到’\0’就结束,本题中其长度应该为7,选项C错误。

同理,既然Str 数组的长度与P所指字符串长度不同,所以存放的内容肯定不同,选项D错误。

4.有以下程序运行后的输出结果是main(){ char p[]={ 'a','b','c' },q[]="abc";printf("%d %d\n",sizeof(p),sizeof(q));}A 4 4B 3 3C 3 4D 4 34 C解析:对于数组P,只有三个元素,分别是’a’,’b’,’c’,所以sizeof(P)的输出结果应该是3 ,对于数组q,存储了四个元素,分别是’a’,’b’,’c以及’\0’。

初中物理“秒表的读数”专项练习题_专题同类题【含答案;详细解释,word版;可编辑】

初中物理“秒表的读数”专项练习题_专题同类题【含答案;详细解释,word版;可编辑】

初中物理“秒表的读数”专项练习题专题同类题【含答案;详细解释,word版;可编辑】学校:__________ 班级:__________ 姓名:__________ 考号:__________ 一、选择题(本题共计 1 小题,共计3分,)1. (3分)以下读数正确的是()A.5min37.5sB.7.30cmC.27∘CD.35mL二、填空题(本题共计 30 小题,每题 3 分,共计90分,)2. 如图所示,温度计的示数为________ ∘C,图中秒表的读数为________s.3.(1)物体的宽度是________cm;(2)停表的读数是________min________s;(3)体温计的读数是________;(4)温度计的示数是________。

4. 测量是物理实验中的基本操作.甲图中纽扣的直径为________ cm,乙图中秒表的示数为________s,丙图中体温计的示数为________∘C,它的工作原理是液体的________.5. 在测量平均速度的实验中,某同学用刻度尺测量小车通过的路程(如图甲所示),用停表测量小车通过该段路程所用时间(如图乙所示),则小车通过的路程为________cm,所用时间为________,该段路程中小车运动的平均速度为________m/s。

6. 请你读出图中所示的各测量工具的示数,并把它们填写在下面的横线上:如图甲物体的长度是________mm,乙是记录的时间为________s,丙温度计的示数为________∘C。

7. 图中秒表的读数为________s。

8. (1)小明用刻度尺测物体的长度,如图甲所示,他所用的刻度尺的分度值是________,物体的长度是________。

8.(2)如图所示,甲、乙是两种常用的测量时间的工具。

如果我们想测一集电视剧的时间应该用________,体育课上测百米成绩用的是________。

9. 如图甲所示所测圆柱体的直径为________cm;如图乙所示的时间为________s。

c++指针练习题答案

c++指针练习题答案

12.不能将一个对象复制到自己。 x=12,y=22 14.Constructor5 5 Destructor5 16.2
20.Default Constructor called Default Constructor called Default Constructor called Default Constructor called Destructor called Constructor1 called Destructor called Constructor2 called Destructor called x=0,y=0 x=7,y=0 x=5,y=9 Destructor call Destructor call Destructor call
{ if((*p1)->retotal()<(*p2)->retotal()) { student *tmp=*p1; *p1=*p2; *p2=tmp; } 6. } class stack; class node { int data; node *prev; public: node(int d,node *n) { data=d; prev=n; } friend class stack; }; class stack { node * top; public: stack( ){top=0;} void push(int i); int pop( ); }; void stack::push(int i) { node *n=new node(i,top); top=n; } int stack::pop( ) { node *t=top; if(top) { top=top->prev; int c=t->data; delete t; return c; }

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

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

1、利用指针,编写用于交换两个整型变量值的函数。

程序运行结果如下:输入:5 6输出:6 5#include <iostream>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<<a<<" "<<b<<endl;return 0;}2、编写主程序,将输入字符串反序输出。

程序运行结果如下:输入:ABCDEFGHIJK输出:KJIHGFEDCBA#include<iostream>#include<cstring>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<<endl;return 0;}3、使用指针编写一个用于对整型序列进行排序的函数,排序方法使用简单选择排序法。

程序的运行结果如下所示:输入(第一个数是序列的长度):62 7 2 23 1输出:1 2 2 2 3 7#include <iostream>using namespace std;void selectsort(int *list,int count){for(int i=0;i<count-1;i++){int k=i;for(int j=i+1;j<count;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<n;j++)cin>>array[j];selectsort(array,n);for(int i=0;i<n;i++)cout<<array[i]<<" ";return 0;}4、用指针编写一个对整型数组进行冒泡排序函数。

六、指针_选择题(答案)

六、指针_选择题(答案)

六、指针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两个指针变量可以相减(结果表示介于二者之间元素的个数),可以比较大小,但不能相加。

CH6-指针练习题及答案

CH6-指针练习题及答案

第六章指针练习题及答案一、填空题1、定义int a[]={1,2,3,4,5,6},*p=a;语句printf("%d",(*++p)++);的输出结果是()。

2、以下程序的执行结果是()。

main(){ char s[]="abcdefg"; char *p;p=s; printf("ch=%c\n",*(p+5)); }3、以下程序的执行结果是()。

main(){ int a[][={1,2,3,4,5,6};for(p=&a[5];p>=a;p--) printf("%d",*P);printf("\n"); }4、以下程序的执行结果是()。

main(){ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf("%d\n",p[3][2]);}5、设包含如下程序的文件名为myprog.c,编译后键入命令:myprog one two three,则执行结果是()。

main(int argc,char *argv[]){ int i;for(i=1;i<argc;i++)printf("%s%c",argv[i],(i<argc-1)?":');}6、下面程序的运行结果是()char s[80],*sp="HELLO!";sp=strcpy(s,sp); s[0]='h'; puts(s);7、下面程序段的运行结果是()char *s1="AbcdEf",*s2="aB";s1++; t=(strcmp(s1,s2)>0); printf("%d\n",t);8、下面程序段的运行结果是()char str[]="abc\0def\0ghi"; char *p=str; printf("%s",p+5)9、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[1]; 则++(*p)的值是()。

SDH练习题(有答案)1

SDH练习题(有答案)1

SDH练习题一、填空题1.SDH的开销分为(通道开销)和(段开销)。

2.SDH的帧结构是一种(块)状结构,帧频为每秒( 8000 )帧。

STM-1一帧共有( 8 )字节。

3.SDH的帧结构由(管理单元指针)、(净负荷区)、(段开销)三部分组成。

4.将PDH各支路信号装入SDH的传送模块,需经(映射)、(定位)、(复用)三个步骤。

5.我国的SDH复用映射结构中的标准容器中C-12装载( 2 )Mbit/s,C-3装载( 34 )Mbit/s,C-4装载( 140 )Mbit/s。

二、单项选择题1.一个STM-4可接入(C )2M信号。

A 63B 64C 2522.在SDH的帧结构中,通道开销用( C )表示。

A:RSOH B:MSOH C:POH D PAYLOAD3.SDH 信号每秒传送( C )帧。

A:4000 B:6000 C:8000 D:100004. 2.5G系统中( B )监控的是整个STM-16的信号传输状态。

A:SOH B:RSOH C:MSOH D:POH5.在SDH系统中( C )个TUG-3复用进VC-4A:1 B:2 C:3 D:46.( B )是用来完成各种速率接口适配功能的信息结构单元。

A:虚容器B:容器C:支路单元D:管理单元7.SDH的速率等级不包括( C )A:STM-1 B:STM-4 C:STM-8 D:STM-168.下列信号中,不能为SDH所容纳的是(B、D )A:2M B:6M C:8M D:45M9.SDH帧可分为( B )3个区域。

A:RSOH、PAYLOAD、AU-PTRB:SOH、PAYLOAD、AU-PTRC:SOH、PAYLOAD、POHD:RSOH、PAYLOAD、MSOH10.在STM-1模块中,用于段开销传输信息速率为( B )A:155.520Mbit/s B:2.048 Mbit/s C:4.608 Mbit/s D:0.576 Mbit/s11.在STM-1模块中,用于AU-PTR传输信息速率为( D )A:155.520Mbit/s B:2.048 Mbit/s C:4.608 Mbit/s D:0.576 Mbit/s三、理论题1.SDH指针分为AU指针和TU指针。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指针综合练习题
一、选择题
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;
if(*a>*b) __num=*b____;
if(num>*c) _num=*c_____;
cout<<"输出最小整数:"<<num<<endl;
}
3 下面程序段的运行结果是___ef_____.
char str[]="abc\0def\0ghi",*p=str;
cout<<p+5;
4若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是__4____. *(a+5)的值是___12______.
5若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是__8___. *(*(a+1)+0))的值是____8____.
6以下程序将数组a中的数据按逆序存放,请填空。

#define M 8 //定义宏M代表了8
void main()
{int a[M],i,j,t;
for(i=0;i<M;i++)
cin>>a[i];
i=0;j=M-1;
while(i<j)
{
t=*(a+i);_*(a+i)=*(a+j)_______;*(_a+j______)=t;
i++;j--;
}
for(i=0;i<M;i++)
cout<<*(a+i);
}
三、简答题
1 指针变量与整型量的加减运算代表什么意义?
答:指针变量与整型量的加减表示移动指针,以指向当前目标前面或后面的若干个位置的目标。

指针与整型量i的加减等于指针值(地址)与i*sizeof(目标类型)积的加减,得出新的地址。

2 设a为数组名,那么a++是否合法?为什么?
答:非法。

因为a是指针常量。

3 有如下定义:
int ival=60021;
int *ip;
double *dp;
下面哪些赋值非法或可能带来错误,并加以讨论。

ival=*ip; ival=ip; *ip=ival; ip=ival; *ip=&ival;
ip=&ival; dp=ip; dp=*ip; *dp=*ip;
解:ival=*ip; 错,未确定指针ip初值,用随机内存地址中的数据给ival赋值是危险的。

但语法对。

ival=ip; 错,赋值类型错,指针型不能赋给整型。

*ip=ival; 错,未确定指针ip初值,用ival给随机内存赋值是危险的。

但语法对。

ip=ival; 错,赋值类型错,整型不能赋给指针型。

*ip=&ival; 错,赋值类型错,地址(指针型)不能赋给整型。

ip=&ival; 对,地址赋给指针型。

dp=ip; 错,整型指针不能赋给双精度指针。

dp=*ip; 错,赋值类型错,整型不能赋给指针型。

*dp=*ip; 对,赋值类型转换
四、编程题
要求用指针的方法完成:输入一串英文文字,统计其中字母(不区分大小写)的数目。

相关文档
最新文档