程序设计基础科学出版社第五章指针Word下载.docx
- 文档编号:16960233
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:10
- 大小:16.96KB
程序设计基础科学出版社第五章指针Word下载.docx
《程序设计基础科学出版社第五章指针Word下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础科学出版社第五章指针Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
for(i=0;
i<
k;
i++)
if(s[i]>
='
a'
&
s[i]<
z'
)
a++;
elseif(s[i]>
A'
Z'
b++;
elseif(s[i]=='
'
c++;
'
0'
9'
d++;
elsee++;
}
printf("
小写字母个数%d\n"
a);
大写字母个数%d\n"
b);
空格个数%d\n"
c);
数字个数%d\n"
d);
其它字符个数%d\n"
e);
2.0
#include"
stdio.h"
inti,j,k,a,b;
int*p1,*p2,*p3;
p1=&
i,p2=&
j,p3=&
输入三个数,用逗号隔开,分别给i,j,k\n"
scanf("
%d,%d,%d"
p1,p2,p3);
a=*p2;
b=*p3;
*p2=*p1;
//i的值给j
*p3=a;
//j的值给k
*p1=b;
//k的值给i
i的值为:
*p1);
j的值为:
*p2);
*p3);
3.0(意思不理解,也不会。
行指针ss所指的字符串数组共有m个字符串,且所有字符串长度小于N。
求ss所指字符串数组中最长的字符串所在的行下标。
4.0
chara[100],b[2];
intnum1=0;
gets(a);
gets(b);
k=strlen(a);
k-1;
if(a[i]==b[0]&
a[i+1]==b[1])
num1++;
输入的长度为2的字符串个数为%d\n"
num1);
5.0
//这一步多余
inta[10],*p=a,min,max,i;
输入10个数字,每次输入完成后按Enter结束\n"
//来一个提醒,更好
10;
%d"
p++);
p=a;
/*第二次循环时,起始地址已经不是&
a[0]了,所以要让它再次指向&
a{0].*/
min=*p;
max=*p;
/*最好把min,max,赋与数组中元素的值,不然会有误差*/
{
if(min>
p[i])
min=p[i];
if(max<
max=p[i];
}
min=%d\nmax=%d\n"
min,max);
6.0
用指针实现计算矩阵对角线元素之和,老师说可以具体。
(注意指针的层级用法,在本题中指针取数应该是*(p+i*3+j)而不是*(*(p+i)+j)。
你的这种写法在语法是没错的,但是指定的内存就不知道是内存中的
哪个单元,所以编译无错,运行出错)
main()
inta[4][4],i,j,sum=0;
int(*p)[4]=a;
输入4*4的矩阵的元素:
\n"
4;
for(j=0;
j<
j++)
*(p+i)+j);
输入的矩阵为\n"
{
for(j=0;
%-6d"
a[i][j]);
i++)//求左对角线
for(j=i;
sum+=*(*(p+i)+j);
break;
for(i=0,j=3;
i++,j--)//求右对角线
sum=%d\n"
sum);
7.0
ints[3][3];
inti,j,t;
int*p;
请输入的3*3的矩阵中元素\n"
for(i=0;
3;
&
s[i][j]);
输入的3*3的矩阵为\n"
%5d"
s[i][j]);
t=0;
p=&
s[0][0];
for(i=1;
i;
if(*(p+3*i+j)==0)t++;
if(t==3)printf("
是下三角形\n"
elseprintf("
不是下三角形\n"
8.0(只做了一半)
8题
一个班4个学生,共学习5门课程,用指针实现下面三个功能。
a求第五门功课的平均分
b找出二门功课不及格的学生,输出他们的学号和全部课程成绩以及平均成绩。
c找出平均成绩在90分以上者,或者全部课程成绩在85分以上的学生.
intstr[4][5],s[4];
inti,j,num,*p;
longintk;
doublesum=0,ave=0;
p=str;
for(k=0;
k<
k++)
{printf("
请输入第%d个学生的学号:
k+1);
%ld"
s[k]);
{for(j=0;
5;
{printf("
请输入第%d个学生的,第%d门成绩:
i+1,j+1);
scanf("
str[i][j]);
printf("
for(i=0,j=4;
sum=sum+*(p+5*i+j);
ave=sum/4.0;
sum=%lf\n"
第五门课的评价成绩为%.2lf\n"
ave);
sum=0;
ave=0;
num=0;
if(str[i][j]<
60)num++;
//61
if(num==2)
{printf("
二门不及格的学生五科成绩分别为%d\n"
str[i][j]);
9.0
假设有10个人围成一圈,从开始顺序编号,从第一个人开始报数,1,2,3重复,凡是报到3的出圈,问最后出圈的是几号?
(做了一个表格,大家可以看一看,报三的我记为0,代表推出的意思)
1
2
3
4
5
6
7
8
9
10
0/
ints[10],i,j,*p;
intm=0,num=0;
s[i]=i+1;
i++)//以下三步只是为了检验,数组是否正确,没有用
s[i]);
p=s;
m<
9;
)//m是出局的人数,因有n个人,最后剩一个人,最多出局(n-1)个人
if(*(p+i)!
=0)num++;
if(num==3)
*(p+i)=0;
m++;
i++;
if(i==10)i=0;
while(*p==0)
p++;
最后一个报三的是原来的:
*p);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础科学 出版社 第五 指针