1、C语言作业答案docC语言作业答案P15 三.2. 3.4、P55 5P36 三.1. 5. 7P74三P83 三.3. 4第三章作业:P44 2. 3. 42、有一个已排好序的数组,今有一个数,要求按原来排序的规律将它插入数组(从小 到大排列)中。#define N 10main ()int i, j, n;int aN = l, 3, 5, 7, 9, 11, 13, 15, 17;scanf(%d, &n);i=0;while(naiⅈ j)aj=aj-l;aj=n;for(i=0;iN;i+)printf(3d,ai);3、将数组中的值按逆序重新存放并输出。main() int
2、i, a10 ; /*定义循环变量i和一维数组a */for (i=0;i二9;i+)scanf(%d,&ai );for (i=9;i二0;i-)printf (zz%d,z, ai) ; /* 按照逆序输出 */printf (n);4、定义一个一维整形数组a 20】,由键盘随机输入20个2位数,统计其中6099各 值段元素的个数(10个数为一段)。main ()int a20, i, nl, n2, n3, n4;nl=n2=n3=n4=0;for (i=0;i20;i+)ai=rand()%100 ; printf (a%d=%dn,i, ai) ;for(i=0;i=60&ai=70
3、&ai=80&ai=90&ai99)n4+;printf (,zn 6069=%dn 7079=%dn 8089=%dn 9099二d,nl, n2, n3, n4) ; 第七章作业:P103 三.2. 4. 6. 7.9、2、统计100以内的所有素数。要求每行输出5个素数。void main () int i, j ;for(i=2;isqrt (i) printf (%5d, i) : /* 是素数 */4、编程输出100之间所有完数。#include niath. hmain () int sum, i, j;for(i=2; i = 100; i+) sum=0;for(j=2;j=
4、sqrt (i);j+)if(i%j 二二 0) sum二sum+j+i/j;if (sum二二iT) printf (%d “,i) ; 6、编写程序实现:输入两个整数,输出其最大公约数和最小公倍数。void main()int a, b, nl, n2, temp;printf(input two datas: “);scanf(d%d,&a, &b);if (al;nl-)if(EL%nl=0&b%nl=0) break; /*求最大公约数*/n2二a*b/nl; /*求最小公倍数*/printf(The GCD is: %dn nl);printf(z,The LCM is: %dn
5、,n2);7输出200以内能被7整除但是不能被3整除的数之和。main () int n, sum二0;for (n=l;nle4)辻(i%2二二0) s二-1;else s=l;suin+二s*( 1. 0/i);i+;printf(sum=%. 4f,sum);第八章作业P121三.3. 4. 53找出一个二维数组中的鞍点,即该位置上的元素在该行中最大,同时在该列中最小。 也可能不存在鞍点,如果有,打印出其位置和值。main ()int a3 4, x, y, i, j, k;int max, min;for (i=0;i3;i+)for(j=0;j4;j+)scanf(%d, &aij)
6、;for (i=0; i3; i+) /*外循环,行*/max=ai0;y二0;for(k=l;k5;k+)if(maxaky)x=k;min=ak y ; /*该列找出最小 min,和行号 x二k*/if(i=x) /*如果更新后的行号x和开始的行号相同,则是鞍点*/ printf (a_%d %d =%d is andiann/z, x, y, ax y);getch();4.编写程序,产生30个1, 100中的随机整数到5行6列数组中,任意输入一个正整数 k,输出数组中与k大小相差5以内的所有元素。main ()int i, a5 6, k, j, m=0, b30 = 0;for(i=
7、0;i5;i+)for(j=0;j6;j+)ai j=rand()%100;printf(n a:n);for (i=0;i5;i+) for(j=0;j6;j+)printf(3d, aij);printf(n);printf(input k:);scanf(d,&k);printf(n b:n);for(i=0;i5;i+)for(j=0;j6;j+)if(k-5)二aij&aij二(k+5)bm二ai j ;m+;for(i=0;im;i+)printf(3d,bi);getch();5有一篇文章,共有3行文本,每行80个字符。要求分别统计其中的英文大写字母,小 写字母,数字、空格及其他
8、字符的个数。#define N 80main () char a3N+l;int numxi&oxie, numdaxie, numshuzi, numkong, numother, i, j;printf(input a3N:n);for(i=0;i3;i+) gets(ai);for (i=0;i二a & aij二z) numxiaoxie+;else if(aij二A & aij二Z) numdaxie+;else if(aij二O & aij二9) numshuzi+;else if(aij二二)numkong+;else numother+;printf (n the %d : a
9、- z,=%d, A - Z =%d, O-9 =%d , kong=%d, other=%d,i+1, numxiaoxie, numdaxie, numshuzi, numkong, numother);第九章作业P150三.3. 93判读素数的函数,主函数中输入一个数,输出是否是素数。#include#includeisprime(int a) int i;if(a=l) return 0;for (i二2;i二sqrt(a);i+)if (a%i=0) tetum 0;return 1 ;main ()int n;scanf(%d, &n);if(isprime(n) printf(d
10、 is prime, n);else printf (d is not prime, n);getchO ; 9编程实现:输入一个自然数n,求组成n3的n个连续奇数。main ()int n, s二 1, zh, ch, i ;printf(n二);scanf &n);for(i二0;i3;i+) s*二n;if(n%2=l) zh=s/n; ch二zh- (n/2)*2; else zh=s/n; ch二zhT-(n/2T)*2; printf (cT3二,n);for (i=0;in;i+)if (i=n-l) printf (z/%dnz/, ch+i*2);else printf(%d
11、+, ch+i*2);第十章作业P180三.2. 52、编写程序实现将一个一维数组中的数据向右循环移动,移动次数由键盘输入。如数 组各元素为0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;移动三次后各元素的值依次为8, 9, 10, 0, 1, 2, 3, 4, 5, 6, 7.int main () int all, n, i, j, *p, t;int temp;printf(input llnum:n);for(p=a;pa+ll;p+)scanf(d,p);printf (n: n);scanf(%d, &n);P=a;for (i=l;i=n;i+) t二*(p+1
12、0);for (j二9; j二0; j) * (p+j+1)二* (p+j);*p=t;for(p=a;pstr2,则输出值正值;如果 strlstr2,则输出值负值.#include stdio. hint main() int n;char *sttl, *str2;printf(input string l:n );gets (strl);printf(input string 2:n );gets (str2);n二mysttcnip(stri, str2);pri ntf(the two st ring is %d : n , n ) ;int mysticnip(char *s,
13、char *t) wh订e(*s&*t&*s二二 *t) s+;t+; retum *s*t;第十二章作业P213 11编写函数rotate(int a4 4, int b4 4),将数组a中的元素逆时针旋转90o后的 元素保存在数组b中。计算数组b主对角线上全部元素之和作为函数的返回值。编写主函 数main(),从键盘输入16个数据放入一个二维数组中,调用rotate函数,将旋转后的二 维数组全部元素及旋转后数组中主对角线上的全部元素之和输出到显示器。int rotate(int a44, int b44) int i, j, t=0;for(i=0;i4;i+)for(j=0;j4;j+)
14、b3-j i=ai j;for(i=0;i4;i+)t=t+bii;tetumG);main () int i, j, sum;int aa44, bb44;printf (input aa44);for (i=0;i4;i+)for(j=0;j4;j+)scanf(%d, &aaij); sum=rotate(aa, bb);for (i-0;i4;i+) for(j=0;j#define STUDENT struct studentSTUDENT char name20;char addr20;char num10;;main () void input (STUDENT*, int) ;
15、 /*函数声明*/void print(STUDENT*, int);STUDENT stud 5 ; /*定义结构体数组*/input (stud, 5) ; /*依次调用自定义函数*/print (stud, 5);getchO ;void input(STUDENT arr, int n)/*输入n名联系人的信息*/ int i, j;printf(n Input Name, address, telephone:n); for (i=0;in;i+)scanf(s, arri. name);scanf(s, arri. addr); scanf(s,arri. num);void pr
16、int(STUDENT arr, int n)/*输出联系人信息*/ int i, j;printf( Name Address Telephone n);for (i-0;i三门课的成绩及总成绩(float score4,要求从键盘输入学生的前5项数 据,计算每个学生的总成绩,输出最高分的学生的数据(包括学号、姓名、3门课成绩及 总成绩)。#include stdio. h#define N 5struet studentint num;char name10;int score3; stuN;void main () int i, j, count二0;float ave, sum二0;i
17、nt max=0, k=0;for (i=0;iN;i+)printf(input no. %dn,i+1);scanf(%d,&stuinum); fflush(stdin);printf( input name %dn,i+1);gets (stui. name); fflush(stdin);printf(input 3 scores of %d :n,i+1);stui. score3=0;for(j二0;jmax) k二i;fflush(stdin);printf(the max is n no. name scorel score2 score3 all n);printf(%-5
18、d, stuk. num);printf(10s, stuk. name);for(j二0;jmain ()char str100;int i二0;FILE *fp;if(fp=fopen(test, txt, w)二二NULL) printf (Cant open the file. nzz);exit (0);printf(Input a string:n);gets (str);while (stri) if (stri二a&stri二z)fputc(str i, fp);i+;fclose (fp);fp二fopen(test, txt, r);fgets(str, strlen(st
19、r)+l, fp);printf(sn, str);fclose (fp);getch();2函数ReadDat ()实现从文件in. dat中读取10个整数存放到数组a中。请编制函数 sortO,函数的功能是:对10个整型数按从小到大排序,排序后的结果仍存入数组a 中,最后调用函数WriteDat ()把结果a输出到文件out. dat中。#include stdio. hint a 10;void sort() int i, j, t;for (i=0;i9;i+)for(j=0;jaj+l) t二aj; aj二aj+l; aj+l二t; void main ()readDat ();sort ();writeDat () ; getch();readDa t ()FILE *in;int i;in=iopenv in. dat , r 丿;for(i-0; i10; i+) fscanf(in, %d,&ai); fclose(in);writ eDa t ()FILE *out;int i;clrscr ();out=fopen(out. dat,w);for (i=0; i10; i+) printf (,za%d=%dn/z, i,ai) ; fprintf (out, zz%dn/z, ai);fclose (out);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1