第1章C语言概述1.一个主函数多个2.main()3.c obj exe三、程序填空题main()printf四、运行结果$$$$$$$$$$$$$$$$AAAAAAAAASSSSSSSSSSSSSS五、编程题void main(){printf("**********************************\n");printf("* 请完成以下功能*\n");printf("* 1、进入程序2、切换用户*\n");printf("* 3、更新程序4、删除程序*\n");printf("* 请选择(1-4):*\n");printf("**********************************\n");}第2章数据类型、运算符、表达式与基本输入输出二、填空题1.3,12.不定值3.14.05.1,0,0,06.-2647.88.8,8,109.1三、运行结果题1.n=12.n=3,a=2,b=33.32767,327684.<1>7.<2>6<3>3.<4>2<5>6.<!>0.3.<1>0.<2>0<3>0<4>2<5>10<6>5第3章顺序程序设计二、填空题1.dec:-1,oct:,hex:ffffffff,unsigned:2.dec:1,oct:1,hex:1,unsigned:13.dec:65,oct:41,AXCII:A4.3.,,3.1425.3.,3.56.31.,3.e+0017.c=K8.a=1,b= ,c=29.a=12,b=34510.c=A三、编程题1.#include<stdio.h>void main(){float r,h,v;scanf("%f%f",&r,&h);v=3.14*r*r*h;printf("v=%f\n",v);}2.#include<stdio.h>void main(){int n,s=0;scanf("%d",&n);s=(n+1)*(n+2)*n/3;printf("1*2+2*3+...+n(n+1)=%d\n",s);}3.#include<stdio.h>void main(){int a,b,n=0;scamf("%d%d",&a,&b);n=a/2+b/4;printf("n=%d\n",n);}4.#include<stdio.h>void main(){printf(" O\n");printf("OOOOOOOOOOO000\n");printf("O O 0\n");printf("O O 0\n");printf("OOOOOOOOOOO000\n");printf(" O\n");}第4章分支结构程序设计习题解1.缺省{ }时,else总是与上面最近的、没有匹配过的if 匹配。
2.if(a<=b) {x=1; printf(“ # # # # x=%d\n”,x);}else { y=2; printf(“ * * * * y=%d\n”,y); }3.根据条件判定值,从两种选择对象中,选取一个作为整个运算的结果4.(1)整个条件表达式的结果就取自运算分量b的结果(2)整个条件表达式的结果就取自运算分量c的结果三、程序填空题char grade;gradedefault四、运行结果题1.1,0,12.x=63.32334.*&五、编程题#include <math.h>#include <stdio.h>void main( ){float a,b,c,s,s1;printf("Please enter 3 reals:\n");scanf("%f%f%f",&a,&b,&c);if((a+b)>c&&(a+c)>b&&(b+c)>a){s=(a+b+c)*0.5;s1=s*(s-a)*(s-b)*(s-c);s=sqrt(s1);printf("\nArea of the triangle is %f\n",s);}else printf("It is not triangle!\n");}2.#include <stdio.h>#define PI 3.14159void main( ){int k;float r,c,a;printf("input r,k\n");scanf("%f%d",&r,&k);switch(k){case 1: a=PI*r*r; printf("area=%f\n",a);break;case 2: c=2*PI*r;printf("circle=%f\n",c);break;case 3: a=PI*r*r;c=2*PI*r;printf("area=%f circle=%f\n",a,c);break; }}3.#include <stdio.h>void main(){int year;scanf("%d",&year);if(year%400==0||year%4==0&&year%100!=0)printf("%d is a leap year\n",year);elseprintf("%d is not a leap year\n ",year);}#include<stdio.h>void main(){float score;scanf("%f",&score);if(score>=90)printf("A");else if(score>=80)printf("B");else if(score>=70)printf("C");else if(score>=60)printf("D");elseprintf("E");}5.#include<stdio.h>void main( ){int num,a,b,c,d,p;scanf("%d",&num);if(num<=9999&&num>999)p=4;else if(num>99)p=3;else if(num>9)p=2;else if(num>0)p=1;printf("位数是:%d\n",p);a=num/1000;b=num/100-a*10;c=num/10-a*100-b*10;d=num%10;switch(p){case 4:printf("%d %d %d %d\n",d,c,b,a);break;case 3:printf("%d %d %d \n",d,c,b);break;case 2:printf("%d %d\n",d,c);break;case 1:printf("%d \n",d);}}第5章循环结构程序设计习题解1.(1)while (2)do-while (3)for2.do-while语句3.for语句4.(1)先判断条件是否成立(为真),若成立(为真)再执行循环语句(2)先执行循环语句,再判断条件是否成立(为真),若成立则继续执行循环,若不成立,则结束循环。
do-while至少执行一次循环语句5.表达式1;while(表达式2)表达式3;6.(1)结束本次循环,后进行循环的条件判定,即不终止整个循环的执行过程(2)终止整个循环的执行,不再进行条件判定7.一个循环体内包括另一个完整的循环结构8.死循环,不能确定次数三、程序填空题1.18或192.c=getchar( )四、运行结果题1.0 1 1 1 2 22.x=8五、编程题1.#include<stdio.h>void main(){int i, s=0;for(i=1;i<=101;i+=2)if((i-1)%4==0)s+=i;elses-=i;printf(“%d”,s);}2.#include<stdio.h>#include<math.h>void main(){long int i,x,y,z;for(i=1;i<;i++){x=sqrt(i+100); /*x为加上100后开方后的结果*/y=sqrt(i+268); /*y为再加上268后开方后的结果*/ if(x*x==i+100&&y*y==i+268)printf("\n%ld\n",i);}}3.#include<stdio.h>void main(){int n,i;printf("\nplease input a number:\n");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i++){while(n!=i){if(n%i==0){printf("%d*",i);n=n/i;}elsebreak;}}printf("%d",n);}4.#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++;elseothers++;}printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others); }5.#include<stdio.h>#include<math.h>void main(){int i,n,j,k,m,l=0;for(i=4;i<=2000;i+=2){for(n=2;n<i;n++){for(j=2,k=1;j<=(int)sqrt(n);j++)/*判断n是否素数*/{if(n%j==0) k=0;}if(k) /*若n是素数,则继续判断i-n是否素数*/for(j=2,m=1;j<=(int)sqrt(i-n);j++)/*判断i-n是否素数*/{if((i-n)%j==0) m=0;}if(m){printf("%d=%d+%d ",i,n,i-n);l++;if (l%5==0)printf ("\n");break;}}if(n==i) printf("error %d\n",i);/*n等于i,i不遵循哥德巴赫猜想*/}}6.#include<stdio.h>void main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1;day--;}printf("the total is %d\n",x1);}7.#include<stdio.h>void main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++) printf(" ");for(k=0;k<=2*i;k++) printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++) printf(" ");for(k=0;k<=4-2*i;k++) printf("*");printf("\n");}}8.#include<stdio.h>void main(){double p=1,t=1,v;int i;for(i=1;i<64;i++){p=p*2; /* p是当前格子中的麦子粒数*/t=t+p; /* t是当前麦子总粒数*/}v=t/1.42e8;printf("total=%e\n",t);printf("volume=%e\n",v);}第6章数组与指针二、读程序题1. ABC2. 4793. 194. 65. s=s+1.0/n;或s=s+1/(float)n;6. -17. 48. LANG三、程序填空1.i=strlen(s);i>=j;i—s[i+1]=s[i];!=’\0’i++2.(ch=st[i])ch==’’word==0n++四、编程题1.#include <stdio.h>#define NUM 10void main(){int i,count=0;float a[NUM],sum=0,aver;for(i=0;i<NUM;i++){scanf("%f",&a[i]);sum+=a[i];}aver=sum/NUM;printf("The average is : %.2f\n",aver);for(i=0;i<NUM;i++)if(a[i]>aver)count++;printf("the number that is over average is : %d\n",count); }2.#include <stdio.h>#define NUM 10void main(){int i;float a[NUM],max,min;scanf("%f",&a[0]);max=a[0];min=a[0];for(i=1;i<NUM;i++){scanf("%f",&a[i]);if(a[i]>max)max=a[i];else if(a[i]<min)min=a[i];}printf("max=%d\nmin=%d\n",max,min); }3.#include<stdio.h>#define NUM 20void main(){int a[NUM],i;for(i=0;i<NUM;i++)scanf("%d",&a[i]);printf("the result is:\n");for(i=0;i<NUM;i++)if(i%2==0&&a[i]%2==0)printf("%d\n",a[i]);}4.#include<stdio.h>void main(){int i,j,sum1=0,sum2=0,sum3=0;float aver;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%6d",a[i][j]);printf("\n");}sum1+=a[i][j]+a[2-i][i];printf("输出主对角线与次对角线元素的和是:%d\n",sum1);for(i=0;i<3;i++)sum2+=a[1][i];printf("输出第二行元素的和是:%d\n",sum2);for(i=0;i<3;i++)sum3+=a[i][2];aver=(float)sum3/3;printf("输出第三列元素的平均值是:%.2f\n",aver);}5.#include<stdio.h>void main(){int i,co1=0,co2=0,co3=0,co4=0;char s[1000],c;gets(s);for(i=0;(c=a[i])!='\0';i++)if(c>='a'&&c<='z'||c>='A'&&c<='Z')co1++;else if(c==' ')co2++;else if(c>='0'&&c<='9')co3++;elseco4++;printf("统计字符串中英文字母、空格符、数字字符及其它字符的个数分别是:%d,%d,%d,%d\n",co1,co2,co3,co4);}6.#include <stdio.h>#define N 10void main(){int a[N][N],i,j;for(i=0;i<N;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<N;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j]+a[i-1][j-1];{for(j=0;j<=i;j++)printf("%6d",a[i][j]);printf("\n");}}7.#include <stdio.h>void main(){int i,j;for(i=0;i<5;i++){for(j=0;j<i;j++)printf(" ");for(j=0;j<5;j++)printf("* ");printf("\n");}}第7章函数与变量二、填空题1.42.double avg(double a,double b)3.2114.i+1 1三、编程题1#include <stdio.h>double cylinder (double r, double h){double result;result =3. * r * r * h;return result;}void main( ){double height, radius, volume;double cylinder (double r, double h);printf ("Enter radius and height: ");scanf ("%lf%lf", &radius, &height);volume = cylinder (radius, height );printf ("Volume = %.3f\n", volume);return 0;}2#include <stdio.h>char* fun(char* s, char c){char* t = s;char* f = s;for(;*f;f++){if(*f==c)continue;*t = *f;t++;}*t = 0;return s;}void main(){char input[1000];char c;printf("请输入一个字符串: ");gets(input);printf("请输入一个字符: ");scanf("%c",&c);printf("结果: ");puts(fun(input,c));}3#include <stdio.h>long fun(int g){switch(g){case 0: return 0;case 1: case 2: return 1;}return (fun(g-1)+fun(g-2));}void main(){long fib; int n;printf("Input n:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}4#include <conio.h>#include <stdio.h>int fun (int x){if (x < 10)return !((x * x - x) % 10);elsereturn !((x * x - x) % 100);}void main(){int x,y;clrscr();printf("\nPlease enter a integer numbers:");scanf("%d",&x);if(x>100){printf("data error !\n");exit(0);}y=fun(x);if (y)printf("%d YES\n",x);elseprintf("%d NO!\n",x);}5#include <stdio.h>#include <conio.h>float fun (float h){long num;h=h+0.005;h=h*100;num=h;h=num;h=h/100;return h;}void main(){float a;clrscr();printf("Enter a:");scanf("%f",&a);printf("The original data is:");printf("%f \n\n",a);printf("The result: %f\n",fun(a));}6#include <conio.h>#include <stdio.h>#define N 81void fun (char *s){int i,length;char tmp;length=strlen(s);if(length==0)return;tmp=s[0];for(i=0;i<length-1;i++)s[i]=s[i+1];s[length-1]=tmp;}void main( ){char a[N];clrscr( );printf("Enter a string:");gets(a);printf("The original string is: ");puts(a);fun(a);printf("The string after modified: ");puts(a);}第8章编译与预处理二、填空题1.c2.93.704.1000 105.9911三、运行结果题1.a=62.a=3a=33.x= 934.a=14,b=15c=05.错误四、编程题1.#include<stdio.h>#include <math.h>#define BICIR(a,b,c) sqrt(((a+b+c)/2)*((a+b+c)/2-a)*((a+b+c)/2-b)*((a+b+c)/2-c)) void main(){float a,b,c;scanf("%f%f%f",&a,&b,&c);printf("%f",BICIR(a,b,c));}2.#include<stdio.h>#include <math.h>#define min(a,b,c) a>b?(b>c?c:b):(a>c?c:a)void main(){float a,b,c;scanf("%f%f%f",&a,&b,&c);printf("%f",min(a,b,c));}3.#include<stdio.h>#define sum(n) (1+(n))*(n)/2void main(){printf("enter your number:\n");scanf("%d",&n);sum=sum(n);printf("the sum is %d\n",sum);}第9章结构体与其他数据类型二、填空题1.emoclew2.13431三、编程题1.#include <stdio.h>#include <string.h>#define N 16typedef struct{char num[10];int s;}STREC;STREC fun(STREC *a,char *b){STREC k;int i,flag=0;for(i=0;i<N;i++)if(strcmp(a[i].num,b)==0){k=a[i];flag=1;}if(flag==1)return k;else{strcpy(k.num,"");k.s=-1;return k;}}void main(){s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA 08",64},{"GA06",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},{"GA011",91 },{"GA017",64},{"GA018",64},{"GA016",72}};STREC h;char m[10];int i;FILE *out;printf("The original data:\n");for(i=0;i<N;i++){if((i)%4==0)printf("\n");printf("%s %3d",s[i].num,s[i].s);}printf("\n\nEnter the number: ");gets(m);h=fun(s,m);printf("The data: ");printf("\n%s %4d\n",h.num,h.s);printf("\n");out=fopen("out17.dat","w");h=fun(s,"GA013");fprintf(out,"%s %4d\n",h.num,h.s);fclose(out);}2.#include <stdio.h>#include <stdlib.h>#define N 8struct slist{double s;struct slist *next;};typedef struct slist STREC;double fun(STREC *h){STREC *c;double max;c=h->next;max=c->s;while(c->next!=0){c=c->next;if(max<c->s)max=c->s;}return max;}STREC *creat(double *s){STREC *h,*p,*q;int i=0;h=p=(STREC*)malloc(sizeof(STREC));p->s=0;while(i<N){q=(STREC*)malloc(sizeof(STREC));q->s=s[i];i++;p->next=q;p=q;}p->next=0;return h;}outlist(STREC *h){STREC *p;p=h->next;printf("head");do{printf("->%2.0f",p->s);p=p->next;}while(p!=0);printf("\n\n");}void main(){double s[N]={85,76,69,85,91,72,64,87},max;STREC *h;h=creat(s);outlist(h);max=fun(h);printf("max=%6.1f\n",max);}第10章文件二、填空题1. 二进制文件、文本文件2. n,n3. 1,04. 一个指针,存放输入数据的首地址从fp所指的文件中,每次读size个字节(一个实数)送入实数组fa中,连续读count次,到buffer中5.”file2.txt”,fclose(fp)三、读程序题1.输入文件名,输入字符到输入#结束,把这些字符写入文件,最后写入字符数。