指针1-60(2)

2025-06-23

D、指针变量中只能存放地址 (3分)[21]以下程序的输出结果为 void move(int *pointer) {int i, j, t;

for(i=0; i<3; i++) for(j=i; j<3; j++) {t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i); *(pointer+3*j+i)=t; } }

main()

{int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, *p, i; p=&a[0][0]; move(p);

for(i=0; i<3; i++)

printf(“%d%d%d”, a[i][0], a[i][1], a[i][2]); }

A、147 258369 B、123456789 C、987654321(3分)[22]以下程序的输出结果是 main()

{char *alpha[5]={“a”, “bc”, “def”, “1”, “23”}, **p; int i; p=alpha;

for(i=0; i<3; i++, p++) printf(“%s”, *p); printf(“\\t”); p=p-3;

for(i=0; i<3; i++, p++) printf(“%c\\t”,**p); }

A、abcdef d e f B、abcdef a b d C、abcdef 1 23 (3分)[23]若输入10,以下程序的输出结果是 #define MAX 50 main()

{int i, k, m, n, num[MAX], *p; scanf(“%d”, &n); p=num;

for(i=0; i

{if(*(p+i)!=0) k++; if(k= =3)

{*(p+i)=0; k=0; m++;} i++;

D、127485639 D、defabc 1 23 if(i= =n) i=0; }

while(*p= =0) p++; printf(“%d\\n”, *p); }

A、10 B、4 C、50 D、60 (3分)[24]阅读程序: main( )

{int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; p=a;

printf(\,p); printf(\,p+9); }

该程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是

A、203 B、204 C、1a4 D、1a6 (3分)[25]以下程序的输出结果是 #include void fun(int *s) {static int j=0; do

s[j]+=s[j+1]; while (++j<2); }

main( )

{int k, a[10]={1, 2, 3, 4, 5}; for(k=1; k<3; k++) fun (a);

for(k=0; k<5; k++) printf (“%d”, a[k]); }

A、34756 B、23445 C、35745 D、12345 (3分)[26]若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是 A、i=*p; B、*p=*&j; C、i=&j; D、i=**p; (3分)[27]若有以下说明和定义 fun(int *C、{?} main()

{int (*a)()=fun,*b(),w[10],c; ┆ }

在必要的赋值之后,对fun函数的正确调用语句是

A、a=a(w); B、(*a)(&C、; C、b=*b(w); D、fun (b); (3分)[28]有以下函数: char * fun (char *p) {return p;}

该函数的返回值是

A、无确切的值 B、形参p中存放的地址值 C、一个临时存储单元的地址 D、形参p自身的地址值 (3分)[29]对于基类型相同的两个指针变量之间,不能进行的运算是 A、< B、= C、+ D、-

(3分)[30]假定以下程序经编译和连接后生成可执行文件PROG . EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCD EFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[ ])

{while(--argc>0) printf(\printf(\}

A、ABCDEFGH B、IJHL C、ABCDEFGHIJKL D、IJKLEFGHABCD (3分)[31]下面程序的输出结果是 main()

{int a[ ]={1,2,3,4,5,6,7,8,9,0},*p; p=a;

printf(\}

A、0 B、1 C、10 D、9 (3分)[32]下列程序的运行结果是 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(\}

A、6 3 B、3 6 C、编译出错 (3分)[33]下列程序的输出结果是 main()

{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(\}

A、非法 B、a[4]的地址 C、5 (3分)[34]以下定义语句中,错误的是

A、int a[ ]={1,2}; B、char *a[3]; C、char s[10]=\ D、int n=5,a[n]; (3分)[35]若有以下定义和语句: char *s1=“12345”,*s2=“1234”; printf(“%d\\n”, strlen(strcpy (s1, s2))); 则输出结果是

A、4 B、5 C、9 D、10

D、0 0 D、3 (3分)[36]以下程序的输出结果是 main( )

{int i, x[3][3]={9, 8, 7, 6, 5, 4, 3, 2, 1}, *p=&x[1][1]; for(i=0; i<4; i+=2) printf(\}

A、5 2 B、5 1 C、5 3 D、9 7

(3分)[37]设已有定义: char *st=\下列程序段中正确的是

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); (3分)[38]已知指针p的指向如下图所示,则执行语句 *- -p; 后*p的值是 a[0] a[1] a[2] a[3] a[4] 10 20 30 40 50 p A、30 B、20 C、19 D、29 (3分)[39]请选出正确的程序段

A、int *p; B、int *s, k; C、int *s, k; D、int *s, k; scanf(\ *s=100; char *p, c; char *p, c; s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; *s=1; (3分)[40]下列程序执行后的输出结果是 main()

{int a[3][3], *p, i; p=&a[0][0];

for(i=0; i<9; i++) p[i]=i+1; printf(\}

A、3 B、6 C、9 D、随机数 (3分)[41]下列程序执行后的输出结果是 void func(int *a, int b[ ]) {b[0]=*a+6;} main() {int a, b[5]; a=0; b[0]=3; func(&a, b);

printf(\}

A、6 B、3 C、8 D、9 (3分)[42]若已定义:

int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a, i;

其中0≤ i ≤9, 则对a数组元素不正确的引用是

A、a[p-a] B、*(&a[i]) C、p[i] D、*(*(a+i)) (3分)[43]若有以下定义和语句:

double r=99,*p=&r; *p=r;

则以下正确的叙述是

A、以上两处的*p含义相同,都说明给指针变量p赋值

B、在\,*p=&r; \中,把r的地址赋给了p所指的存储单元 C、语句\把变量r的值赋给指针变量p D、语句\取变量r的值放回r中 (3分)[44]下列程序段的输出结果是 void fun(int *x, int *y)

{printf(\main()

{int x=1,y=2; fun(&y, &x);

printf(\}

A、2 1 4 3 B、1 2 1 2 C、1 2 3 4 D、2 1 1 2 (3分)[45]以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 #include #include func(char str[ ]) {int num=0;

while(*(str+num)!=?\\0?) num++; return(num); }

main()

{char str[10], *p=str; gets (p);

printf(“%d\\n”, func (p)); }

A、8 B、7 C、6 D、5 (3分)[46]设有以下定义:

int a[4][3]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int (*prt)[3]=a, *p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是 A、*((*prt+1)[2]) B、*(*(p+5)) C、(*prt+1)+2 D、*(*(a+1)+2) (3分)[47]下列程序的输出结果是 #include main( )

{char *p1,*p2,str[50]=\; p1=\;p2=\;

strcpy(str+2, strcat(p1+2,p2+1)); printf(\,str); }


指针1-60(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2024年电大乡镇行政管理课程形成性考核册答案

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219