C语言指针精选习题和答案

一、用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出

#include void swap(int *pa,int *pb) { int temp; temp = *pa; *pa = *pb; *pb = temp; }

void main() {

int a,b,c,temp;

scanf(\ if(a>b) swap(&a,&b); if(b>c) swap(&b,&c); if(a>c) swap(&a,&c);

printf(\ }

二、C语言 用指针方法 输入3个字符串 按由小到大顺序输出

.. ..

#include \#include \

int main(int argc, char* argv[]) {

printf(\

scanf(\fflush(stdin); p1=ch1; p2=ch2; p3=ch3; char *t;

char *p1=NULL,*p2=NULL,*p3=NULL; char ch1[20]={0},ch2[20]={0},ch3[20]={0};

printf(\

scanf(\fflush(stdin);

printf(\

scanf(\fflush(stdin);

.. ..

}

if(strcmp(p1,p2)>0) {t=p1;p1=p2;p2=t;}

if(strcmp(p1,p3)>0) {t=p1;p1=p3;p3=t;}

if(strcmp(p2,p3)>0) {t=p2;p2=p3;p3=t;}

printf(\ return 0;

9.4编程输入一行文字,找出其中的大写字母,小写字母,空格,数字,及

其他字符的个数 #include void main() {

int a=0,b=0,c=0,d=0,e=0,i=0; char *p,s[20];

while((s[i]=getchar())!='\\n')i++;

.. ..

p=s;

while(*p!=10) {

if(*p>='A'&&*p<='Z') a++;

else if(*p>='a'&&*p<='z') b++;

else if(*p==' ') c++;

else if(*p>='0'&&*p<='9') d++; else e++; p++; }

printf(\大写字母 %d 小写字母 %d\\n\ printf(\空格 %d 数字 %d 非字符 %d\\n\

}

9.5写一个函数,将3 3矩阵转置

#include \

void Transpose(int (*matrix)[3])

.. ..

{

int temp; int i, j;

for(i=1;i<3;i++)/*转置*/ {

for(j=0;j

temp = *(*(matrix+j)+i);

*(*(matrix+j)+i) = *(*(matrix+i)+j); *(*(matrix+i)+j) = temp; } } }

void main() {

int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; Transpose(a); for(int i = 0;i<3;i++) {

for(int j=0;j<3;j++)

.. ..

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4