山东省潍坊市寿光市圣都职业高中2020-2021学年高一上学期考试《C语言程序与设计》试题及其答案
| 一、 选择题(共44题) |
1. 下列程序的输出结果是( )
main( )
{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf(“%d”,*--p);
}
A.非法 B.a[4]的地址 C.5 D.3
2. 若有定义语句int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是( )
A.p=a B.q[i]=a[i] C.p=a[1] D.p=&a[2][1]
3. 有定义语句int *p[4],以下选项中与此语句等价的是( )
A.int p[4]; B.int **p; C.int *(p[4]); D.int(*p)[4];
4. 若需要建立如图所示的存储结构,且已有说明double *p,x=0.2345;则正确的赋值语句是( )
A.p=x; B.p=&x; C.*p=x; D.*p=&x;
5. 若有说明:int *p,a=1,b;以下正确的程序段是( )
A.p=&b;
scanf
("%d",&p);
B.scanf
("%d",&b);
*p=b;
C.p=&b;
scanf
("%d",*p);
D.p=&b;
6. 有如下语句:int m=6,n=9,*p,*q;p=&m;q=&n;如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是( )
学科网(北京)股份有限公司
A.*p=*q; B.p=*q; C.p=q; D.*p=q;
7. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是
#include
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是一个指针变量
8. 若有定义int*p1,*p2,m=4,n;,以下均为正确赋值语句的选项是( )
A.pl=&m;p2=&pl;
B.pl=&m;p2=&n;*pl=*p2;
C.pl=&m;*pl=*p2;
D.p1=&m;*p2=*pl;
9. 设p1和p2均为指向一个int型数组的指针变量,x为int型变量,则以下不能正确执行的赋值语句是( )
A.x=*p1+*p2;
B.p2=x;
C.p1=p2;
D.x=*p1*(*p2);
10. 若已定义a为int型变量,则哪一项是对指针变量p的正确定义和初始化。( )
A.int *p=a; B.int *p=*a; C.int p=&a; D.int *p=&a;
11. 假设整型变量a的值为2,a的地址为2000,若欲使p为指向a的指针变量,则以下赋值正确的是( )
A.&a=3; B.*p=2; C.*p=2000; D.p=&a;
学科网(北京)股份有限公司
12. 若有定义int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )
A.p=q; B.*p=*q; C.n=*q; D.p=n;
13. 若有定义int *p,m=6,n;以下正确的程序段是( )
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.p=&n;*p=m;
D.scanf("%d",&n);* p=n;
14. 下面程序段的输出结果是( )
char str[]="ABCD",*p=str;
printf("%d\n",*(p+4));
A.68 B.0 C.字符'D’的地址 D.不确定的值
15. 下面程序的输出结果是( )
int a[]={2,4,6,8};
main( )
{int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p++;
printf("%d\n",a[2]);
}
A.6 B.8 C.4 D.2
16. 下面程序的输出结果是( )
main( )
{int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=a;
printf("%d\n",*(p+2));
}
A.3 B.4 C.1 D.2
17. 以下程序运行后的输出结果为
main( )
{char str[][20]={“One*World”,”One*Dream!”},*p=str[1];
学科网(北京)股份有限公司