教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

C语言习题集合(指针)(4)

来源:网络收集 时间:2026-08-19
导读: 第七章 指 针 ·16· #include \string.h\ main() { char s[80], *t1, *t2; int m; gets(s); m=strlen(s); t1=s; t2=【s+m-1】; while(t1 { if (*t1!=*t2) break; else { t1++; 【t2--】;} } if (t1 } 13.当运行以

第七章 指 针 ·16·

#include \string.h\ main() {

char s[80], *t1, *t2; int m; gets(s); m=strlen(s); t1=s;

t2=【s+m-1】; while(t1

{ if (*t1!=*t2) break; else { t1++;

【t2--】;}

}

if (t1

}

13.当运行以下程序时,从键盘输入:apple↙

tample↙

???? 则下面程序的运行结果是__aptample______。

#include \stdio.h\

main() {

char s[80], *t;

t=s; gets(t);

while (*(++t)!='\\0') if (*t=='a') break; else { t++; gets(t); }

puts(t);

} 14.当运行以下程序时,从键盘输入6↙,则下面程序的运行结果是__????___97671___。

#include \stdio.h\

#include \string.h\ main()

{

char s[]=\97531\, c; c=getchar(); f(s,c); puts(s); }

f(char *t, char ch) {

while (*(t++)!='\\0');

第七章 指 针 ·17·

while(*(t-1)

*(t--)=*(t-1); *(t--)=ch;

}

????15.若有定义:int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[3], m; 则下面程序段的输出是

____11____。

for ( m=0; m<3; m++) p[m]=&a[m*4]; printf(\%d\\n\, p[2][2]);

16.下面程序的运行结果是_1,2_______。

#include \stdio.h\ main() {

char s[]=\1357\, *t; t=s;

printf(\%c, %c\\n\, *t, ++*t);

}

17.以下程序将数组a中的数据按逆序存放。请填空。

#include \stdio.h\ #define M 10

main()

{

int a[M], m, n, temp;

for( m=0; m

m=0;

n=M-1; while(m

temp=*(a+m);

【*(a+m)=*(a+n)】; *(【a+n】)=temp;

m++; n--;}

for (m=0;m

}

18.以下程序在a数组中查找与x值相同的元素的所在位置。请填空。

#include \stdio.h\ main() {

int a[11], x, m;

printf(\please input ten numbers:\\n\); for(m=1;m<11;m++) scanf(\%d\, a+m); printf(\please input x:\);

第七章 指 针 ·18·

scanf(\%d\, &x); *a=【x】; m=10;

while (x!=*(a+m)) 【m--】;

if (m>0) printf(\]'s position is : M\\n\, x, m); else printf(\%d not been found!\\n\, x);

}

19.以下程序的功能是________。

#include \stdio.h\

main() {

char * s[]=={ \PASCAL\, \FORTRAN\, \COBOL\, \BASIC\}; char **p; int n; p=s;

for (n=0;n<4;n++)

printf(\%s\\n\, *(p++));

}

20.若有定义和语句:int a[4]={1,2,3,4},*p; p=&a[2]; ,则*--p的值是_2_______。 21.若有定义和语句:int a[2][3]={0}, (*p)[3]; p=a;,则p+1表示数组__指向数组a的第二行。

22.若有如下定义和语句:

int *p[3], a[6], n;

for (m=0;m<3;m++) p[m]=&a[2*m]; 则*p[0]引用的是a数组元素【a[0]】;*(p[1]+1)引用的是a数组元素【a[3]】。

23.若有以下定义和语句,在程序中引用数组元素a[m]的四种形式是:【*(p+m)】、【*(a+m)】、【p[m]】和a[m]。(假设m 已正确说明并赋值) int a[10], *p; p=a;

24.下面程序的输出结果是__1 3 5 7 9 11______。 #include \stdio.h\

main() {

int b[2][3]={1,3,5,7,9,11}; int *a[2][3]; int i,j;

int **p, m;

for(i=0;i<2;i++) for(j=0;j<3;j++) a[i][j]=*(b+i)+j; p=a[0];

for(m=0;m<6;m++) {

第七章 指 针 ·19·

printf(\M\, **p);

p++; }

}

25.定义语句int *f();和int (*f)();的含义分别为【返回值的类型为int *型的函数f】和【指向返回值的类型为int 型的函数的指针】。

26.请根据运行结果,完成main函数中的填空。 Array_add( int a[], int n) {

int m, sum=0;

for (m=0;m

main()

{

int Array_add(int a[], int n);

static int a[3][4]={2,4,6,8,10,12,14,16,18,20,22,24}; int *p, total1, total2; 【int (*pt)()】; pt=Array_add; p=a[0];

total1=Array_add(p,12); total2=(*pt)(【a[0],12】);

printf(\total1=%d\\ntotal2=%d\\n\, total1,total2);12 }

运行结果:total1=156 total2=156

…… 此处隐藏:486字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言习题集合(指针)(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/443629.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)