C语言入门学习-C上机实验七要求

上机实验七 数组综合应用、指针练习一

【实验六参考答案见后】

目的和要求:

(1)掌握指向普通变量、字符串、一维数组的指针的基本要领; (2)熟练掌握数组的应用。

实验内容: 一、完善程序题

1.任意读入10个整数,输出其中所有偶数的和。(使用指针完成) #include main( )

{int a[10],s=0; int *p;

for(__________;p

if(*p%2==0) s+=__________; printf(\}

2.任意读入一个含有若干空格的字符串,将其中的每一个空格改用字符*替代。 例如,读入:“We like C very much!” 则输出:“We*like*C*very*much!” #include main()

{char s[80]; char *p;

__________; gets(p);

while(*p!='\\0') {if(*p==' ') *p='*'; __________; }

puts(_______); }

3.以下程序的功能是:求得数组a中的最大数和最小数,再交换这两个元素的值后输出数组a,并将结果保留到my文件夹下的sz.txt中。 例如,读入a数组中的值为:

45 7 最后输出:

12 64 97 50 123 9 18 20

45 123 12 64 97 50 7 9 18 20 #include #define N 10 main( ) {FILE *fp; int a[N],i ,t;

int *p=a,*max,*min;

fp=fopen(\ for(i=0;i*max) max=_______; else if(*(p+i)<*min) min=_______; t=*max; *max=*min; *min=t;

for(i=0;i

{printf(\ \

____________________________; }

fclose(fp); }

4.如果一个数及该数的反序数都是素数,则称该数为可逆素数。例如17是素数,17的反序数71也是素数,因此17便是一个可逆素数。以下程序判断给定的8个素数是否为可逆素数,并输出其中所有的可逆素数。

【程序的运行结果为】 17是可逆素数 37是可逆素数 739是可逆素数 1949是可逆素数 #include main()

{int ss[8]={17,19,23,37,67,103,739,1949},i; int fxs,flag,k,x; for(i=0;i<8;i++) {x=ss[i];

______________; while(x!=0)

{fxs=fxs*10+_______; x=_______;

}

______________;

for(k=2;k<=fxs-1;k++) if(______________) {flag=0; break; } if(flag) printf(\是可逆素数\\n\ } }

二、编程题

任意读入10个字符串,将它们降序排列后输出。

【实验六参考答案】 一、编程题:

1.任意读入一个十进制整数(包含0和负整数),将其转换成二进制序列后输出。 例如:读入-29,则输出 -11101 #include main()

{int ys[20],i,j,x; scanf(\

printf(\的二进制序列是:\ if(x<0) {x=-x;

putchar('-'); } i=0; do

{ys[i]=x%2; x=x/2; i++;

}while(x!=0); //思考为什么用do...while循环? for(j=i-1;j>=0;j--) printf(\ putchar('\\n'); }

2.任意读入10个字符串,将其中的最小串和最大串合并成一个串后输出。例如: 读入 I love

you very much We like C

Programming Language 则输出:Cyou #include #include #define N 10 main()

{char a[N][20],max[20],min[40]; //注意:因为合并后的串放在min中,min数组的空间要足够大 int i;

for(i=0;i

strcpy(max,a[0]); strcpy(min,a[0]); for(i=1;i

if(strcmp(a[i],max)>0) strcpy(max,a[i]);

else if(strcmp(a[i],min)<0) strcpy(min,a[i]);

strcat(min , max);

puts(min); }

3.任意读入一个字符串,统计输出其中每一个数字字符出现的次数。例如: 读入 “Hi19970701”。则输出 0---2 1---2 7---2 9---2

#include #include main()

{char a[20];

int i,n[10]={0}; //定义十个计数器并清0 gets(a);

for(i=0;a[i]!='\\0';i++)

if(isdigit(a[i])!=0) //isdigit函数的功能是判断某字符型变量是否为数字字符 n[a[i]-48]++;

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