C语言程序设计习题6文档格式.docx

上传人:b****5 文档编号:19933561 上传时间:2023-01-12 格式:DOCX 页数:12 大小:17.59KB
下载 相关 举报
C语言程序设计习题6文档格式.docx_第1页
第1页 / 共12页
C语言程序设计习题6文档格式.docx_第2页
第2页 / 共12页
C语言程序设计习题6文档格式.docx_第3页
第3页 / 共12页
C语言程序设计习题6文档格式.docx_第4页
第4页 / 共12页
C语言程序设计习题6文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言程序设计习题6文档格式.docx

《C语言程序设计习题6文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题6文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

C语言程序设计习题6文档格式.docx

(1)#include<

>

intmain()

{

char*p;

p="

DATA"

;

printf("

%s\n"

*p);

return0;

}

该程序错。

应为:

p);

(2)#include<

int*p;

*p=25;

%d"

指针变量没有赋初值。

4.输入3个整数,输出其中最大数。

要求用指针变量实现。

#include"

"

{

inta=0,b=0,c=0;

int*aa=NULL,*bb=NULL,*cc=NULL,*p=NULL;

aa=&

a,bb=&

b,cc=&

c;

input3number:

);

scanf("

%d%d%d"

&

a,&

b,&

c);

a=%db=%dc=%d\n"

a,b,c);

p=aa;

if(*p<

*bb)p=bb;

*cc)p=cc;

%d\n"

程序运行情况如下:

459↙

a=4b=5c=9

9

5.有3个整型变量i,j,k。

请编写一个程序,设置3个指针变量p1,p2,p3,分别指向i,j,k,然后通过指针变量使i,j,k3个变量的值顺序交换,即原来i的值赋给j,把j的原值赋给k,把k的原值赋给i。

i,j,k的原值由键盘输入,要求输出i,j,k的原值和新值。

#include<

inti,j,k,tmp;

int*p1,*p2,*p3;

scanf("

%d%d%d"

i,&

j,&

k);

printf("

Beforechange:

%d\t%d\t%d\n"

i,j,k);

p1=&

i;

p2=&

j;

p3=&

k;

tmp=*p3;

*p3=*p2;

*p2=*p1;

*p1=tmp;

Afterchange:

return0;

123↙

123

312

6.输入一个10个元素的一维数组,在主函数中用scanf函数输入。

用指针方式编程找出最大和最小数,并指出最大数和最小数的位置。

inty_max(int*p,intn)

intmax=*p,i,k=0;

for(i=0;

i<

n;

i++)/*这里判断到i<

n,而不是i<

=n*/

if(max<

*(p+i))

k=i;

max=*(p+i);

/*记得要在这里更新一下max的记录*/

}

returnk;

#defineN10

intmain()

inta[N];

inti,m,max;

N;

i++)

a[i]);

%d"

a[i]);

m=y_max(a,N);

\nmax=a[%d]=%d"

m,a[m]);

15678964723↙

15678964723

max=a[3]=78

7.输入一段文字,统计其中所包含的数字字符和字母字符个数。

#defineN80

intcnum=0,dnum=0;

/*全局变量用于在两个函数之间传递数据*/

charch[N];

voidcount(charc);

inti,n;

gets(ch);

n=strlen(ch);

i++)

count(ch[i]);

/*数组元素作为函数的实参*/

%d,%d\n"

cnum,dnum);

voidcount(charc)

if(c>

='

0'

&

c<

9'

dnum++;

if((c>

A'

Z'

)||(c>

a'

z'

))

cnum++;

hello12345↙

5,5

8.请写出下列程序段的输出结果。

(1)#include<

inta[]={1,2,3,4,5,6},*p;

p=a;

*(p+3)+=2;

%d,%d"

*p,*(p+3));

解:

1,6

intmain()

inta[]={1,2,3,4,5,6};

int*p;

p=a;

%5d%5d%5d%5d\n"

*p,*(++p),*++p,*(p--));

%5d%5d\n"

*p,*(a+2));

3321

23

(3)#include<

#include<

char*s1="

AbDeG"

char*s2="

AbdEg"

s1+=2;

s2+=2;

strcmp(s1,s2));

}

-1

(4)#include<

#include<

fun(char*w,intn)

{

chart,*s1,*s2;

s1=w;

s2=w+n-1;

while(s1<

s2)

t=*s1;

*s1=*s2;

*s2=t;

s1++;

s2--;

}

charp[]="

1234567"

fun(p,strlen(p));

puts(p);

7654321

(5)#include<

char*a[]={"

Pascal"

"

Clanguage"

dBase"

Coble"

};

char(**p)[];

intj;

p=a+3;

for(j=3;

j>

=0;

j--)

*(p--));

Coble

dBase

Clanguage

Pascal

9.用一个函数实现两个字符串的比较,即自己写一个strcmp函数:

strcmp(s1,s2)

如果s1==s2,则函数返回值为0;

如果s1!

=s2,返回它们两者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字符不同,“O”与“A”之差为79-65=14);

如果s1>

s2,则输出正值,如果s1<

s2,则输出负值。

两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数中输出。

intstrcmp(char*s1,char*s2)

for(;

*s1==*s2&

*s1&

*s2;

s1++,s2++);

/*找不同的字符*/

return(*s1-*s2);

voidmain()

chara[10],b[10];

gets(a);

gets(b);

strcmp(a,b));

程序运行结果如下:

hello↙

world↙

-15

10.设计一个程序,管理一个班的计算机成绩,要求采用一维数组来存储学生的成绩。

#include<

intmain(void)

floata[10];

inti=0;

doublesum=;

floatavg=;

for(i=0;

10;

请输入第%d个同学的成绩:

i+1);

%f"

\n"

sum+=a[i];

avg=sum/;

printf("

%f\n"

avg);

请输入第1个同学的成绩:

85↙

请输入第2个同学的成绩:

89↙

请输入第3个同学的成绩:

90↙

请输入第4个同学的成绩:

78↙

请输入第5个同学的成绩:

69↙

请输入第6个同学的成绩:

58↙

请输入第7个同学的成绩:

请输入第8个同学的成绩:

95↙

请输入第9个同学的成绩:

100↙

请输入第10个同学的成绩:

11.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,用指针来实现。

#include<

voidaa(int*array)

inti;

scanf("

%d,"

array[i]);

voidbb(int*array)

int*max,*min,t;

max=min=array;

for(p=array;

p<

=array+9;

p++)

if(*max<

*p)max=p;

if(*min>

*p)min=p;

t=*max;

*max=array[9];

array[9]=t;

t=*min;

*min=array[0];

array[0]=t;

voidcc(int*array)

intnumber[10];

aa(number);

bb(number);

cc(number);

0-91020304050607066↙

-9,0,10,20,30,40,50,60,66,70

12.分析下列程序的运行结果。

intf1(intx)

returnx+1;

intf2(intx)

returnx-1;

intsum_square(int(*f)(),intm,intn)

intk,sum=0;

for(k=m;

k<

=n;

k++)

sum+=(*f)(k)*(*f)(k);

returnsum;

result=%d\n"

sum_square(f1,1,2)+sum_square(f2,1,2));

result=14

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1