c语言复习题+答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

int i,j; for(i=0;i<6;i++) {scanf("%ld%s%d%d%d",&stu[i].num, stu[i].name, &stu[i].mt, &stu[i].ph, &stu[i].cm); stu[i].sum=0; stu[i].sum= stu[i].mt+stu[i].ph+stu[i].cm;} for(i=0;i<5;i++) for(j=i+1;j<6;j++) { if(stu[j].sum< stu[i].sum) { temp= stu[i]; stu[i]= stu[j]; stu[j]=temp; } } for(i=0;i<6;i++) { printf("%ld\t%s%5d%5d%5d%5d",stu[i].num, stu[i].name, stu[i].mt,stu[i].ph,stu[i].cm, stu[i].sum); printf("\n"); } } 4. 判断101-200之间有多少个素数,并输出所有素数。 #include <stdio.h> #include <math.h> void main() { int m,i,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { for(i=2;i<=sqrt(m+1);i++) {
a[k]=(k+1)*2; for(k=0;k<30;k++) if(k%5= =0) {b[j]=sum/5; j++; sum=0; } else sum=sum+a[k]; for(j=0;j<6;j++) printf(“%4d”,b[j]); } 11.编一程序,从键盘输入10个整数并保存到数组,要求找出最小的数 和它的下标,然后把它和数组中最前面的元素对换位置。 main( ) {int i,array[10]; int min,k=0; printf(“\nPlease input array 10 elements\n”); for(i=0;i<10;i++) scanf(“%d”,&array [i]); printf(“Before exchange:\n”); for(i=0;i<10;i++) printf(“%5d”,array[i]); min=wk.baidu.comrray[0]; for(i=1;i<10;i++) if(min>array[i]) {min= array[i]; k=i; } array[k]=array[0]; array[0]=min; printf(“\nAfter exchange:\n”); for(i=0;i<10;i++) printf(“%5d”,array[i]); printf(“\nk=%d\nmin=%d\n”,k,min); } 12. 试编程完成如下功能:输入一个不多于4位的整数,求出它是几位 数,并逆序输出各位数字。 #include<stdio.h> main() { int x,n,t; scanf("%d",&x);
int FindMax(int score[], int n) { int max,i; max = score[0]; for (i=0; i<20; i++) { if (score[i] > max) max = score[i]; } return max; } int CountFail(int score[], int n) { int count,i; count = 0; for (i=0; i<20; i++) { if (score[i] < 60) count ++; } return count; } 3.一个班有6位同学,每位同学包括学号、姓名、数学、物理、计算机 成绩和总分,要求输入学号、姓名、数学、物理、计算机成绩,计算出 每位同学的总分,并按总分降序输出。要求每位同学的信息定义成一个 结构体。 #include <stdio.h> struct student { long num ; char name[10]; int mt; int ph; int cm; int sum; }stu[6],temp; void main() {
n=0; while(x>0) { t=x%10, printf("%d",t); x=x/10; n++; } printf("\n"); printf("n=%d\n",n); } 13.请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不 得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。 若两个字符串长度相等,则返回第1个字符串。 例如,输入nanjing <CR> nanchang <CR>(<CR>为回车键),函数将 返回nanjing。 #include<stdio.h> char *fun(char *s, char *t) { int i,j; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[j]!= '\0';j++); if(i<=j) /*比较两个字符串的长度*/ return s; /*函数返回较短的字符串,若两个字符 串长度相等,则返回第1个字符 串*/ else return t; } main() { char a[20],b[10],*p,*q; int i; printf("Input 1th string: "); gets(a); printf("Input 2th string: ");
gets(b); printf("%s",fun(a,b)); } 14.请编写函数fun(),它的功能是:求出1到1000之内能被5或13整除、 但不能同时被5和13整除的所有整数并将它们放在a所指的数组中,通过 n返回这些数的个数。 #include <stdio.h> void fun(int *a,int *n) { int i,j=0; for(i=1;i<=1000;i++) /*求1到1000之内能被5 或13整除、但不能同时被5和13整除的所有 整数,并放入数组a中*/ if((i%5==0||i%13==0)&&i%65!=0) a[j++]=i; *n=j; /*传回满足条件的数的个数*/ } main( ) { int aa[1000], n, k; fun(aa,&n); for(k=0;k<n;k++) if((k+1)%10==0) { printf("%5d ",aa[k]); printf("\n "); /*一行写10个数*/ } else printf("%5d ",aa[k]); } 15.请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为 偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。例 如,若输入ABC4efG,则应输出aBc4efg。 #include<stdio.h>
float sn=100.0,hn=sn/2; int n; for(n=2;n<=10;n++) { sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ } printf("the total of road is %f\n",sn); printf("the tenth is %f meter\n",hn); } 9.编一程序,将2000年到3000年中的所有闰年年份输出并统计出闰年 的总年数,要求每10个闰年放在一行输出。 #include <stdio.h> main( ) {int year=0,number=0; for(year=2000;year<3000;year++) {if((year%4==0&&year%100!=0)||year%400==0) {printf("%6d",year); number++; if(number%10==0) } } printf("\ntotal number of leap year is %d",number); } 10 试编一程序完成以下功能:定义一个含有30个整型元素的数组,按 顺序分别赋予从2开始的偶数;然后按顺序每5个数求出一个平均值,放 在另一数组中并输出。 #include <stdio.h> main() {int a[30],b[6], sum=0,k,j=0; for(k=0;k<30;k++) printf("\n");
putchar(*p); printf("\n"); } 7.编一程序,将字符串中的第m个字符开始的全部字符复制成另一个字 符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调函 数中完成复制。 #include <stdio.h> #include <string.h> void copystr(char *p1,char *p2,int m) {int n=0; while(n<m-1) {p2++,n++; } while(*p2!='\0') {*p1=*p2;p1++;p2++; } *p1='\0'; } void main( ) {int m; char str1[80],str2[80]; printf("Input a string:\n"); gets(str2); printf("Input m:\n"); scanf("%d",&m); if(strlen(str2)<m) printf("Err input!\n"); else {copystr(str1,str2,m); printf("Result is:%s\n",str1); } } 8.一个求从100米高度自由落下,每次落地后又反弹回原来高度的一 半,再落下,求它在第10次落地时共经过多少米?第10次反弹多高?编 写程序求解该问题。 #include <stdio.h> void main() {
c语言复习题-2010 1~5 ABCDB 6~10 BADAD 11~15 DABAB 16~20 ADDDC 1. 编程计算1!+2!+3!+……+n!的值, 其中n的值由用户输入。 #include <stdio.h> main() { long term = 1,sum = 0; int i,n; scanf(“%d”,&n); for (i = 1; i <= n; i++) { term = term * i; sum = sum + term; } printf("1!+2!+...n! = %ld \n", sum); } 2. 从键盘任意输入某班20个学生的成绩,打印最高分,并统计不及格 学生的人数。 要求按如下函数原型进行编程,分别计算最高分和统计 不及格学生的人数: int FindMax(int score[], int n); int CountFail(int score[], int n); #include <stdio.h> int FindMax(int score[], int n); int CountFail(int score[], int n); main() { int i, score[20],max,count; for (i=0; i<20; i++) { scanf("%d",&score[i]); } max = FindMax(score, 20); printf("max = %d\n",max); count = CountFail(score, 20); printf("count = %d\n",count); }
if(m%i==0) {leap=0;break;} } if(leap) {printf("%-4d",m);h++;} if(h%10==0) printf("\n"); leap=1; } printf("\nThe total is %d",h); } 5.编写程序,输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。 #include <stdio.h> void main() {char c; int letters=0,space=0,digit=0,others=0; printf("please input some characters\n"); while((c=getchar())!='\n') { if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++; else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else others++; } printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others); }6.编一程序,将字符串computer赋给一个字符数组,然后从第一个字 母开始间隔地输出该串,请用指针完成。 #include <stdio.h> void main( ) {static char x[ ]="computer"; char *p; for(p=x;p<x+7;p+=2)
相关文档
最新文档