1、有如下语句int a=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示,若要实现图2所示的存储
结构,可选用的赋值语句是___________。
A)*p1=*p2; B)p1=p2; C)p1=*p2; D)*p1=p2;
2、变量的指针,其含义是该变量的______________。
A)值 B)地址 C)名 D)一个标志
3、若有说明: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;
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 a=25;print_value(&a);下面函数的正确输出结果是_____
void print_value(int *x) {cout<<++*x; }
A)23 B)24 C)25 D)26
6、下面判断正确的是____________。
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”;
7、下面程序段中,for循环的执行次数是___________。
char *s=”\ta\018bc”;
for( ;*s!=’\0’; s++) cout<<“*”;
A)2 B)5 C)6 D)7
8、下面能正确进行字符串赋值操作的是_________。
A)char s[5]={“ABCDE”}; B)char s[5]={‘A’,’B’,’C’,’D’,’E’};
C)char *s;s=”ABCDE”; D)char *s; cin>>s;
9、下面程序段的运行结果是__________。
char *s=”abcde”;
s+=2; cout<<s;
A)cde B)字符’c’ C)字符’c’的地址 D)无确定的输出结果
10、若有说明语句
char a[]=”It is mine”; char *p=”It is mine”;
则以下不正确的叙述是___________。
A)a+1表示的是字符t的地址
B)p指向另外的字符串时,字符串的长度不受限制
C)p变量中存放的地址值可以改变
D)a中只能存放10个字符
11、下面程序段的运行结果是_____________。
char s[6]; s=”abcd”; cout<<s;
A)”abcd” B)”abcd “ C)\”abcd\” D)编译出错
12、下面程序的运行结果是______________。
#include<iostream>
using namespace std;
main()
{ static char a[]=”Language”,b[]=”programe”;
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k)) cout<<*(p1+k); }
A)gae B)ga C)Language D)有语法错
13、下面程序的运行结果是___________。
#include <string.h>
#include <iostream>
using namespace std;
main()
{char p1[30]="abc",*p2,str[50]=”abc”;
p1=”abc”; p2=”abc”;
strcpy(str+1,strcat(p1,p2));
cout<<str;
}
A)abcabcabc B)bcabcabc C)aabcabc D)cabcabc
14、若有定义:int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素
值的正确引用为_____________。
A)*(*(a+i)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j
15、若有以下定义和语句,则对a数组元素地址的正确引用为________________。
int a[2][3], (*p)[3];
p=a;
A)*(p+2) B)p[2] C)p[1]+1 D)(p+1)+2
16、若有定义:int (*p)[4];则标识符p____________。
A)是一个指向整型变量的指针
B)是一个指针数组名
C)是一个指针,它指向一个含有四个整型元素的一维数组
D)定义不合法
17、若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正确说明并赋值)
元素的非法引用为______________。
int b[2][3]={0}, (*p)[3];
p=b;
A)*(*(p+i)+j) B)*(p[i]+j) C)*(p+i)+j D)(*(p+i))[j]
18、若有定义:int *p[4];则标识符p___________。
A)是一个指向整型变量的指针
B)是一个指针数组名
C)是一个指针,它指向一个含有四个整型元素的一维数组
D)定义不合法
19、以下正确的定义语句和赋值语句是_________。
A)int b[3][5],(*p)[3],(*q)[5];p=b;q=b;
B)float b[3][5],*p[3];p[0]=b[0];p[2]=*b+4;
C)double b[3][5],s[5][3],*q;q=b;s=q;
D)int b[10],*q;char *s;q=b;s=b;
20、若有以下定义,则数值不为3的表达式是__________。
int x[10]={0,1,2,3,4,5,6,7,8,9},*p1;
A)x[3] B)p1=x+3,*p1++
C)p1=x+2,*(p1++) D)p1=x+2,*++p1
答案:
bbbadcccad
dacacccbbc