c语言选择题 我做了就是想对答案
1.若有以下定义,则对a数组元素的正确引用是_________.
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列元素地址的正确引用为______.
a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j
3.若有以下定义,则p+5表示_______.
int a[10],*p=a;
a)元素a[5]的地址 b)元素a[5]的值
c)元素a[6]的地址 d)元素a[6]的值
4.下面程序段的运行结果是_________.
char *s="abcde";
s+=2;printf("%d",s);
a)cde b)字符'c' c)字符'c'的地址 d)无确定的输出结果
5.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确
执行的赋值语句是________.
a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);
6.以下正确的程序段是_________.
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]);
7.若有说明语句
char a[]="It is mine";
char *p="It is mine";
则以下不正确的叙述是________.
a)a+1表示的是字符t的地址
b)p指向另外的字符串时,字符串的长度不受限制
c)p变量中存放的地址值可以改变
d)a中只能存放10个字符
8.下面程序的运行结果是_______.
#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)不确定的值
9.下面程序的运行结果是_______.
#include <stdio.h>
#include <string.h>
fun(char *w,int n)
{char t,*s1,*s2;
s1=w;s2=w+n-1;
while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}
}
main()
{char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
a)7654321 b)1714171 c)1711717 d)7177171
10.变量的指针,其含义是指该变量的_________.
a)值 b)地址
c)名 d)一个标志
11.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是_____.
a)a,point,*&a b)&*a,&a,*point
c)*&point,*point,&a d)&a,&*point ,point
12.若有说明;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; 展开
(一)选择题
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列元素地址的正确引用为___A___.
a)*(a[i]+j) b)(a+i) c)*(a+j) d)a[i]+j
3.若有以下定义,则p+5表示___C____.
int a[10],*p=a;
a)元素a[5]的地址 b)元素a[5]的值
c)元素a[6]的地址 d)元素a[6]的值
4.下面程序段的运行结果是_____C____.
char *s="abcde";
s+=2;printf("%d",s);
a)cde b)字符'c' c)字符'c'的地址 d)无确定的输出结果
5.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确
执行的赋值语句是____B____.
a)c=*p1+*p2; b)p2=c c)p1=p2 d)c=*p1*(*p2);
6.以下正确的程序段是____C_____.
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]);
7.若有说明语句
char a[]="It is mine";
char *p="It is mine";
则以下不正确的叙述是___D_____.
a)a+1表示的是字符t的地址
b)p指向另外的字符串时,字符串的长度不受限制
c)p变量中存放的地址值可以改变
d)a中只能存放10个字符
8.下面程序的运行结果是__B_____.
#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)不确定的值
9.下面程序的运行结果是___C____.
#include <stdio.h>
#include <string.h>
fun(char *w,int n)
{char t,*s1,*s2;
s1=w;s2=w+n-1;
while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}
}
main()
{char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
a)7654321 b)1714171 c)1711717 d)7177171
10.变量的指针,其含义是指该变量的____B_____.
a)值 b)地址
c)名 d)一个标志
11.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__D___.
a)a,point,*&a b)&*a,&a,*point
c)*&point,*point,&a d)&a,&*point ,point
12.若有说明;int *p,m=5,n;以下正确的程序段的是____A____.
a)p=&n; b)p=&n;
scanf("%d",&p); scanf("%d",*p);
c)scanf("%d",&n); d)p=&n;
*p=n; *p=m;