2.执行以下程序后,a的值为( )b的值为( ) main()
{ 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);
}
A.-1 B.1 C.0 D.4
A.5 B.6 C.7 D.10
3.下面程序应能对两个整型变量的值进行交换以下正确的说法是( ) main()
{ int a=10,b=20;
printf(“(1)a=%d,b=%d\\n”,a,b);
swap(&a,&b);
printf(“(2)a=%d,b=%d\\n”a,b);
}
swap(int p,int q)
{ int t; t=p; p=q; q=t; } A.程序完全正确
B.程序有错,只要将语句swap(&a,&b);中的参数改成a,b即可
C.程序有错,只要将swap()函数中的形参p和q 以及t均定义为指针(执行语句不变)即可 D.以上说法都不对
4.有四组对指针变量进行操作的语句,以下判断正确的选项是( ) (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; (4) int a=20,*p,*q=&a; p=q; int p,*q; p=q; A.正确(1) 不正确(2)(3)(4) B.正确(1)(4) 不正确(2)(3) C.正确(3) 不正确(1)(2)(4) D.以上结论都不正确
5.以下程序中调用scanf 函数给变量a输入值的方法是错误的,其错误原因是( ) main() { int*p, a ;
p=&a;
printf(“input a:”); scanf(“%d”,*p); ??
}
A.*p表示的是指针变量p的地址
B.*p表示的是变量a的值,而不是变量a的地址
C.*p表示的是指针变量p的值
D.*p只能用来说明p是一个指针变量
6.已有定义int k=2; int *ptr1=&k, *ptr2=&k;下面不能正确执行赋值语句的是( )
A. k=*ptr1+*ptr2; B.ptr2=k; C.ptr1=ptr2; D. k=*ptr1*(*ptr2); 7.变量的指针,其含义是指该变量的( )
A.值 B.地址 C.名 D.一个标志
8.若有语句int *point , a=4和point=&a;下面均代表地址的一组选项是( ) A. a, point, *&a B.&*a, &a, *point C. &point, *point, &a D.&a, &*point, point 9.若有说明: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;
10.若有说明:int *p1,*p2,m=5,n;以下不正确的赋值语句的选项是( )
A. p1=&m; p2=&p1; B.p1=&m; p2=&n; *p1=*p2; C. p1=&m; p2=p1; D.p1=&m; p2=p1;
11已有变量定义和函数调用语句: int a=25; print_value(&a);下面函数的正确输出结果是( ) void print_value(int *x) {printf(“%d\\n”,++*x);}
A. 23 B. 24 C. 25 D. 26 12.下面判断正确的是( )
A. char *a=”china”; 等价于 char *a; *a=”china”; B. char str[10]={“china”}; 等价于 char str[10]; C. char *s=”china”; 等价于 char str[10]
D. char c[4]=”abc”, d[4]=”abc” 等价于 char c[4]=b[4]=”abc”;
13.设char*s=”\\ta\\017bc”;则指针变量s指向的字符串所占的字节数是 ( ) A.9 B.5 C.6 D.7 14.下面能正确进行字符串赋值的操作的是( )
A. char s[5]={“ABCDE”}; B. char s[5]={?A?,?B?,?C?,?D?,?E?,}; C. char*s; s=”ABCDE”; D.chars;scanf(“%s”,s); 15.下面程序段的运行结果是( )
char *s=”abcde”; s+=2; printf(“%d”,s);
A.cde B.字符?c? C.字符?c?的地址 D.无确定结果 16.设有以下程序段:char s[]=”china”; char*p; p=s; 则下列叙述正确的是( ) A.s和p完全相同
B.数组s中的内容和指针变量p中的内容相等 C.s数组长度和p所指向的字符串长度相等 D.*p与s[0]相等 17.以下正确的程序段是( )
A.char str[20]; scanf(“%s”,&str); B.char *p; scanf(“%s”,p);
C.char str[20];Scanf(“%s”,&str[2]); D.char str[20], *p=str; scanf(“%s”,p[2]); 18.下面程序段的运行结果是( ) char str[]=”ABC”, *p=str; printf(“%d\\n”,*(p+3));
A. 67 B. 0 C.字符?C?的地址 D.字符?C? 19.下面程序段运行结果是( ) char a[]=”language”,*p; p=a;
while(*p!=?u?) { pirntf(“%c”,*p-32); p++; }
A. LANGUAGE B. language C. LANG D. language 20.下面说明不正确的是( )
A.char a[10]=”china”; B.char a[10], *p=a; p=”china”; C.char *a; a=”china”; D.char a[10], *p; p=a=”china”; 21. 若有说明语句: char a[]=”It is mine”; char *p=”It is mine”; 则以下不正确的叙述是( ) A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制 C.p变量中存放的地址值可以改变 D.a中只能存放10个字符
22.若已定义char s[10];则在下面表达式中不 表示s[1]的地址是( ) A.s+1 B.s++ C.&s[0]+1 D. &s[1] 23.下面程序段的运行结果是( )
char s[6]; s=”abcd” printf(“\\”%s\\”\\n”,s);
A.”abcd” B.”abcd” C。\\”abcd\\” D编译出错
24.当运行以下程序时,从键盘输入Happy!
{ char str [10], *p=str;
gest(p); printf(“%d\\n”,stre(p)); }
stre(char str[ ] ) { int num=0;
while(*(str+num)!=?0?) num++; return(num);
}
A.7 B.6 C.5 D.10 25.下面程序的运行结果是( ) #include
a=s;
for(I=0,j=0;a[I]!=?\\0?;I++)
if(a[I]>=?0?&&a[I]<=?9?) { s[j]=a[I]; j++; } s[j]=?\\0?; }
main()
{ char *item=”a34bc”;
delch(item); printf(\
}
A.abc B.34 C.a34 D.a34bc
26.下面程序运行结果是( )
#include
{ char*s1=”AbDeG”; char *s2=”ABdEg”;
s1+=2; s2+=2;
printf(“%d\\n”,strcmp(sl,s2));
}
A.正数 B.负数 C.零 D.不确定的值 27.下面和序的运行结果是( ) #include
main()
{ char* p1,*p2,str[50]=”abc”;
p1=”abc”; p2=”abc”;
strcpy(str+1,strcat(p1,p2)); printf(“%s\\n”,str);
}
A.abcabcabc B.bcabcabc C.aabcabc D.cabcabc 28.若有以下定义int a[5],*p=a; 则对a数组元素的正确引用是
A.*&a[5] B.a+2 C.*(p+5) D.*(a+2)
29.若有定义:int a[2][3];则对a数组的第I行,第j列元素值的正确引用是( ) A.*(*a+I)+j) B.(a+I)[j] C*(a+I+j) D.*(a+I)+j
30.若有以下定义和语句int a[2][3], (*P)[3]; p=a;则对a数组的地址的正确引用为( ) A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2
31.若有以下定义和语句int a[2][3],(*p)[3]; p=a;则对a数组元素的正确引用为( ) A.(p+1)[0] B.*(*(p+2)+1) C.*(p[1]+1) D.p[1]+2 32.若有定义:int a[5];则a数组中首元素地址可以表示为( ) A.&a B.a+1 C.a D.&a[1] 33.若有定义: int(*p)[4]; 则标识符p是( ) A.是一个指向整形变量的指针 B.是一个指针数组名
C.是一个指针,它指向一个含有四个整形元素的一维数组 D.定义不合法
34.若有以下定义和赋值语句,则以s数组的第I行第j列元素地址的合法引用为( ) int s[2][3]={0}, (*p)[3]; p=s;
A.*(*p+I)+j) B.*(p[I]+j) C.(p+I)+j D.(*(p+I))[j] 35.以下与int *q[5];等价的定义语句是( )
A.int q[5]; B.int *q; C.int *(q[5]); D.int (*q)[5]; 36.设有以下程序段:
char str[4][10]={“frist”,”second”,”third”,”forurth”},*strp[4]; int n; for(n=0;n<4;n++) strp[n]=str[n];
若k为int型变量且0<=k<4,则对字符串的不正确引用是( ) A. strp B. str[k] C.strp[k] D.*strp
37.若有以下定义int a[10],*p=a; 则*(p+5)表示( )
A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值 38.以下选项中,对指针变量p的不正确操作是( )
A.int a[5],*p; p=&a; B.int a[5],*p; p=a;
C.int a[5]; int *p=a; D.int a[5]; int*p1,*p2=a; *p1=*p2;
39.若有以下定义int a[5],*p=a; 且0<=I<5,则对a数组元素的非法引用是( ) A.a[1] B.*(a+1) C.*(p+1) D.*(&a+I)
40.若有以下定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; 则数值不为3的表达式是( ) A.x[3] B.p1=x+3,*p1++ C.p1=x+2,*(p1++) D.p1=x+2,*++p1 41.阅读以下程序:
main()
{ int a[10]={2,4,6,8,10,12,14,16,18,20},*p;
p=a; printf(“%x\\n”,p); printf(“%x\\n”,p+9);
}
若第一个printf语句输出的是ffca,则第二个printf语句输出的是( ) A.ffdd B.ffdc C.ffde D.ffcd
42.设有以下定义: char *cc[2]={“1234”,”5678”}; 则正确的叙述是( ) A.cc数组的两个元素中各自存放了字符串”1234”和”5678”的首地址
B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 C.cc是指针变量,它指向含有两个数组元素的字符型一维数组 D.cc数组元素的值分别是”1234”和”5678”
43.若有以下定义int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*p)[3]=x; 则能够正确表示数组元素x[1][2]的表达式是( )
A *((*p+1)[2]) B (*p+1)+2 C *(*p+5) D *(*p+1)+2) 44.下面程序的运行结果是( ) main()
{ int x[5]={2,4,6,8,10},*p,**pp;
p=x; pp=&p;
printf(“%d”,*(p+1)); printf(“=\\n”,**pp); }
A 4 4 B 2 4 C 2 2 D, 4 6
45.若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则表达式language[1]>*language[3]比较的是( )
A.字符f和字符p B.字符串basic和字符串java
C.字符b和字符j D.字符串fortran和字符串pascal 46.若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则language[2]的值是( )
A.一个字符 B.一个地址 C.一个字符串 D.一个不定直
47. 若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则以下不正确的是( )
A.language+2表示字符串”pascal”的首地址
B.language[2]的值是字母p
C.language是一个字符行指针数组,它包含5个元素每个元素都是一个指向字符串变量的指针
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2012C语言程序设计试题(8)在线全文阅读。
相关推荐: