版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 C语言概述 一、简答题1(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。2顺序结构,分支结构,循环结构3所谓算法就是为解决一个问题而采取的方法和步骤。算法的特性:有穷性、确定性、输入、输出、可行性。表示算法的方式:(1)用自然语言表示;(2)用流程图表示
2、;(3)用NS流程图表示;(4)用伪代码表示;(5)用计算机语言表示。二、算法1瓶子A里盛有醋瓶子B里盛有酱油有一个空瓶C将A中的醋倒入C将B中的酱油倒入A将C中的醋倒入B2输入一个数放在a中max = a以下步骤重复9次:输入一个数放在a中如果a>max,max=a打印max的值3如果a<btemp=aa=bb=temp如果 c>atemp = a a=cc=temp否则如果c>btemp=bb=cc=temp打印a,b,c的值4i=1sum=0以下程序循环100遍:sum=sum+ii=i+1打印sum的值5如果(n除以3的余数为0 并且 n除以5的余数为0)n能够
3、同时被3和5整除否则n不能够同时被3和5整除6i=101以下语句循环50遍:j=2flag=1当j<(i除以2的整数部分)时循环以下语句:如果i除以j的余数为零flag=0退出该循环如果flag=1打印i的值i=i+27如果m<ntemp=mm=nn=tempi=n做以下循环,直到m,n能够被i整除:如果m能够被i整除并且n能够被i整除i即是m和n的最大公约数跳出循环否则i=i-1打印i的值8data=b*b4*a*c如果data0否则 如果data=0x1=x2=b/2否则无实数解三、编程题1main()printf(“#n”);printf(“ How do you do? n
4、”);printf(“#n”);2main()int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“sum=%d”,a+b+c);第二章 数据类型与表达式一、单项选择题1. B 2. C 3. A 4. A 5. D 6. B 7.A 8.C 9.D 二、写出下列程序的运行结果1.aabb cc abcAN2.ab97983. 9,11,9,104.a=2,b=3,c=25.s1=2.500000s2=3三、编程题main()char c1='c',c2='h',c3='i',c4='
5、;n',c5='a'c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("%c%c%c%c%cn",c1,c2,c3,c4,c5);第三章 顺序程序设计选择题1)B 2)D 3)D 4)A 5)A 6)B 7)B 8)A 9)D 10)C 11)D 12)A 填空题1)b 2)261 3)25 21 37 4)abc 5)5.0,4,c=3 6)3编程题#define PI 3.1415926main( ) float h, r, l, sv, sz ;printf(“请输入圆的半径r,圆柱高h:n”) ;s
6、canf(“%f,%f”,&r, &h) ;l=2* PI *r ;s= PI *r*r ;sv=3.0/4.0* PI *r*r*r ;sz= PI *r*r*h ;printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2fn”, l, s) ;printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2fn”, sv, sz) ;2、main( ) float c, f ;printf(“请输入一个华氏温度:n”) ;scanf(“%f”, &f) ;c=5.0/9.0*(f-32) ;printf(“摄氏温度为:%6.2fn”, c) ;第四
7、章 循环程序设计一、选择题1.D 2.D 3.D 4.C 5.D 6.A 7.B 8.B 9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D 21.A二、填空题5858580188921,8Year%400=0year%100!=0count+三、编程题1.main()long a;scanf(“%ld”,&a);if (a>=10000&&a<=99999)printf(“这是个五位数”);else if (a>=1000&&a<=9999)printf(“这是个
8、四位数”);else if (a>=100&&a<=999)printf(“这是个三位数”);else if (a>=10&&a<=99)printf(“这是个二位数”);else if (a>=0&&a<=9)printf(“这是个一位数”);else printf(“输入错误”);3.main()int a;int g,s,b;/个位、十位、百位printf("水仙花数有:n");for(a=100;i<=999;a+)g=a%10;s=a/10%10;b=a/100;if (a=
9、g*g*g+s*s*s+b*b*b)printf("%d ",a);printf("n");4、main()int i,n;printf("input n:");scanf("%d",&n);printf("n%d=",n);for(i=2;i<=n;i+)while(i!=n)if(n%i=0)printf("%d*",i);n/=i;else break;printf("%dn",n);5、#include “stdio.h”main()
10、char c;int w,x,y,z;w=x=y=z=0;while(c=getchar()!=n)if(c>a&&c<z)|(c>A&&c<Z)w+;else if (c= )x+;else if (c>0&&c<9)y+;else z+;printf(“英文字母个数:%dn”,w);printf(“空格个数:%dn”,x);printf(“数字个数:%dn”,y);printf(“其他字母个数:%dn”,z);6、main()float h=100,t=100;int j;for(j=1;j<10;j
11、+)t=t/2;h=h+t*2;printf(“共经过:%f 米n”,h);printf(“第十次反弹 %f 米n”,t/2);第五章 数 组一、单项选择题1. B 2. A 3. C 4. C 5. D 6. B 7.C 8.B 9.C 10. B二、写出下列程序的运行结果1S=3682*3S1=18S2=104!margorP5数字0的出现次数是:3数字1的出现次数是:2数字2的出现次数是:2数字3的出现次数是:2数字4的出现次数是:0数字5的出现次数是:1数字6的出现次数是:1数字7的出现次数是:1数字8的出现次数是:1数字9的出现次数是:1三、编程题1#include "st
12、dio.h"main()int a11;int i,j,t;printf("input 10 number:n");for (i=1;i<11;i+)scanf("%d",&ai);printf("n");for (i=1;i<=9;i+)for (j=1;j<=10-i;j+)if (aj<aj+1)t=aj;aj=aj+1;aj+1=t;printf("the sorted number is:n");for (i=1;i<11;i+)printf("%
13、4d",ai);2#include "stdio.h"main()int a11,i,b;printf("imput 10 sorted number:n");for (i=0;i<10;i+)scanf("%d",&ai);printf("input an integer:n");scanf("%d",&b);for (i=9;i>=0&&ai>b;i-) ai+1=ai;ai+1=b;printf("sorted numb
14、ers:n"); for (i=0;i<11;i+)printf("%5d",ai); 3#include "stdio.h"main()int a5,i,j,t;printf("input 5 integer:n");for (i=0;i<5;i+) /*输入5个整数*/scanf("%d",&ai);for (i=0,j=4;i<j;i+,j-) /*逆序存放*/t=ai;ai=aj;aj=t;for (i=0;i<5;i+) /*逆序存放后重新输出*/printf(&
15、quot;%5d",ai);4#include "stdio.h"main()int i,j,a1010=1,1,1;for (i=2;i<10;i+) /*给二维数组每个元素赋值*/ai0=1;for (j=1;j<=i;j+)aij=ai-1j-1+ai-1j;for (i=0;i<10;i+) /*输出二维数组*/for (j=0;j<=i;j+)printf("%-5d",aij);printf("n");5#include "stdio.h"main()int a34,i
16、,j,max,row,col;printf("input 3*4 matrix:n");for (i=0;i<3;i+) /*输入3*4矩阵*/for (j=0;j<4;j+)scanf("%d",&aij);max=a00; row=0; col=0;for (i=0;i<3;i+) /*寻找矩阵中的最大值及其行列号*/for (j=0;j<4;j+)if (max<aij)max=aij; row=i, col=j;printf("n数组中最大的数是%d,其行号是%d,列号是%dn",max,
17、row,col);6#define N 3#define M 4#include "stdio.h"main()int aNM,i,j,k,max,row,col;printf("input %d*%d matrix: n",N,M);for (i=0;i<N;i+) /*输入二维矩阵*/for (j=0;j<M;j+)scanf("%d",&aij);for (i=0;i<N;i+) /*求鞍点*/max=ai0; row=i; col=0;for(j=1;j<M;j+) /*求矩阵中每一行的最大值及
18、其所行列号*/if (max<aij)max=aij; col=j;for (k=0;k<N;k+) /*判断每一行的最大值在其所在列是否最大*/if (akcol<max)break;if (k=N) /*得到鞍点*/printf("the point is %d,row=%d,col=%dn",max,row,col);break;if (i=N) /*没有鞍点*/printf("no pointn");7#include "stdio.h"main()int num=0,word=0; /*word=0表示未出
19、现单词,如出现单词就置word为1.num用来统计单词个数*/char c;printf("please input a string :n");while (c=getchar()!='n')if (c=' ')word=0;else if (word=0)word=1; num+;printf("There are %d words in the linen",num);8#include "stdio.h"main()int i,j,uppn,lown,dign,span,othn; /*uppn
20、,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/char text380;uppn=lown=dign=span=othn=0;for(i=0;i<3;i+)gets(texti);for(j=0;j<80&&textij!='0'j+)if(textij>='A'&&textij<='Z')uppn+;else if(textij>='a'&&textij<='z')lown+
21、;else if(textij>='0'&&textij<='9')dign+;else if(textij=' ')span+;else othn+;for(i=0;i<3;i+)printf("%sn",texti);printf("uppn=%dn",uppn);printf("lown=%dn",lown);printf("dign=%dn",dign);printf("span=%dn",span);pr
22、intf("othn=%dn",othn);9#include "stdio.h"main()int i,j;char str120,str220;printf("input two strings:n");gets(str1);gets(str2);j=strlen(str1); /*求字符串1的长度*/for (i=0;str2i!='0'i+,j+) /*字符串合并*/str1j=str2i;str1j='0' /*加上字符串结束标志*/puts(str1);10#include "st
23、dio.h"main()int i,n;char str120,str220;printf("input two strings:(no more than 20 characters)n");gets(str1); gets(str2);n=strlen(str1)<strlen(str2)?strlen(str1):strlen(str2); /*n中存放较短字符串的长度*/for (i=0;i<n&&str1i=str2i;i+);printf("%dn",str1i-str2i); 第六章 函数与编译预处理一
24、、单项选择题1. C 2. B 3. B 4. B 5. A 6. B 7.A 8.C 9.D 10. A二、写出下列程序的运行结果1924,B8,B3-4.0000004a=6,b=5548三、编程题1main() int prime(int n);int n;printf("input n(n>0):n");scanf("%d",&n);if (prime(n)printf("%d is a sushun",n);else printf("%d is not a sushun",n);int pr
25、ime(int n)int flag=1,i;for (i=2;i<=n/2&&flag=1;i+)if (n%i=0) flag=0;return(flag);2.#define N 3convert(int array33) int i,j,t;for (i=0;i<N-1;i+)for (j=i+1;j<N;j+)t=arrayij;arrayij=arrayji;arrayji=t;main()int i,j;int aNN;printf("input a:n");for (i=0;i<N;i+)for (j=0;j<N
26、;j+)scanf("%d",&aij);printf("Array a:n");for (i=0;i<N;i+)for (j=0;j<N;j+)printf("%5d",aij);printf("n");convert(a);printf("a de zhuanzhi is:n");for (i=0;i<N;i+)for (j=0;j<N;j+)printf("%5d",aij);printf("n");3. #inclu
27、de <stdio.h>#include <string.h>main()char str100;printf("input a string:n") ;gets(str);inverse(str);printf("the reversed string is:%sn",str);inverse(char str)char t;int i,j;for (i=0,j=strlen(str)-1;i<j;i+,j-)t=stri;stri=strj;strj=t;4. #include <stdio.h>concat
28、(char str1,char str2) int i=0,j;while (str1i!='0')i+;for (j=0;str2j!='0'i+,j+)str1i=str2j;str1i='0'main()char str1100,str2100;gets(str1);gets(str2);concat(str1,str2);puts(str1);5. main()char str80;printf("input a string (4 ge shu zi zi fu):n");scanf("%s",s
29、tr);insert(str);printf("result is:n%sn",str);insert(char str)int i;for (i=strlen(str);i>0;i-)str2*i=stri;str2*i-1=' '6. #include "stdio.h"int i,ndight,nwhite,nletter,nother;count(char str)ndight=nwhite=nletter=nother=0;for (i=0;stri!='0'i+)if (stri>='0
30、39;&&stri<='9')ndight+;else if (stri>='A'&&stri<='Z')|(stri>='a'&&stri<='z')nletter+;else if (stri=' ')nwhite+;else nother+;main()char text80;printf("input a string:n");gets(text);count(text);printf(&quo
31、t;ndight=%d,nletter=%d,nwhite=%d,nother=%dn",ndight,nletter,nwhite,nother);7. #define N 10#include <stdio.h>sort(char str)int i,j;char t;for (i=1;i<N;i+)for (j=0;j<N-i;j+)if (strj>strj+1)t=strj;strj=strj+1 ;strj+1=t;main()char strN;int i ;printf("Input 10 ge zi fu:n");g
32、ets(str);sort(str);printf("The sorted result:n") ;for(i=0;i<N;i+)printf("%c",stri);8.这题较复杂#include <stdio.h>#include <string.h>#define N 10void input_e(int num,char nameN8)int i;for (i=0;i<N;i+) printf("input gong hao:");scanf("%d",&numi)
33、;printf("input name:");getchar();gets(namei);for (i=0;i<N;i+)printf("%5d%10sn",numi,namei);void sort(int num,char nameN8) /*选择法排序*/int i,j,min,temp1;char temp28;for (i=0;i<N-1;i+)min=i;for (j=i+1;j<N;j+)if (numj<nummin) min=j;temp1=numi;strcpy(temp2,namei);numi=nummin
34、;strcpy(namei,namemin);nummin=temp1;strcpy(namemin,temp2);printf("the sorted result:n");for (i=0;i<N;i+)printf("%5d%10sn",numi,namei);void search(int n,int num,char nameN8) /*折半查找法*/int top,bott,mid,find;find=0;top=0;bott=N-1;if (n<num0)|(n>numN-1)find=-1;while (find=0)&
35、amp;&(top<=bott)mid=(bott+top)/2;if (n=nummid)find=1; printf("%d name is:%sn",n,namemid);else if (n<nummid)bott=mid-1;else top=mid+1;if (find=-1)|(find=0)printf("%d is not found.n",n);main()int numN,number,c,flag;char nameN8;input_e(num,name);sort(num,name);for (flag=1;
36、flag;)printf("please input chazhao de gonghao:"); /*输入查找的工号*/scanf("%d",&number);search(number,num,name);printf("continue Y/N?"); /*是否继续查找*/getchar();c=getchar();if (c='N'|c='n')flag=0;9. #include "stdio.h"#define MAX 10main()char strMAX;ch
37、ar c;int i;i=0;printf("input number(16 jinzhi): "); /*输入一个十六进制的数*/while(c=getchar()!='n'&&i<MAX) stri=c;i+;stri='0'printf("result is :%dn",htod(str);int htod(char s)int i,n;n=0;for(i=0;si!='0'i+)if (si>='0'&&si<='9'
38、)n=n*16+si-'0'if (si>='a'&&si<='f')n=n*16+si-'a'+10;if (si>='A'&&si<='F')n=n*16+si-'A'+10;return(n);10. #define SWAP(a,b) t=a;a=b;b=tmain()int a,b,t;printf("input a,b:") ;scanf("%d,%d",&a,&
39、;b);SWAP(a,b);printf("result:a=%d,b=%dn",a,b);11. #define SURPLUS(a,b) (a)%(b)main()int a,b;printf("input a,b:");scanf("%d,%d",&a,&b);printf("result is: %dn",SURPLUS(a,b);12. main()int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&
40、amp;a,&b,&c);printf("max=%dn",max(a,b,c);int max(int x,int y,int z)int t;t=(x>y ? x : y);return(t>z?t:z);#define MAX(x,y) (x)>(y)?(x):(y)main()int a,b,c;printf("input a,b,c:");scanf("%d,%d,%d",&a,&b,&c);printf("max=%dn",MAX(MAX(a,b
41、),c);13. #include "stdio.h"#define CHANGE 1#define MAX 80main()char strMAX;int i;printf("input a string:n");gets(str);#if (CHANGE) for (i=0;stri!='0'i+)if (stri>='a'&&stri<'z'|stri>='A'&&stri<'Z')stri=stri+1;else
42、 if (stri='z'|stri='Z')stri=stri-25;#endifprintf("%sn",str);第七章 指针一、选择题1)A 2)D 3)D 4)C 5)B 6)B 7)B 8)C 9)B 10)C 11)A 12)A 13)A 14)C 15)B 16)A 17)C 18)B 19)D 20)B二、阅读下面程序,写出程序运行结果1)abcdeedcba 2)1113151719 3)(TurboC中是11,97,11 ) (VisualC是9,9 7,11)4)3 6 5)6385三、编程题1、main( ) int
43、 a10,i,temp,*p=a;printf("Please input array a:n");for(i=0;i<10;i+)scanf("%d",&ai);printf("array a:n");for(i=0;i<10;i+)printf("%4d",ai);for(i=0;i<5;i+) temp=pi;pi=p10-i-1;p10-i-1=temp;printf("n Now array a:n");for(i=0;i<10;i+)printf(&q
44、uot;%4d",ai);2、main( ) int a33,*p,i,j;printf("please input matrix:n");for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d",&aij);p=&a00;move(p);printf("n Now matrix:n");for(i=0;i<3;i+) for(j=0;j<3;j+)printf("%4d",aij);printf("n");move(in
45、t *q) int i,j,t;for(i=0;i<3;i+)for(j=i;j<3;j+) t=*(q+3*i+j);*(q+3*i+j)=*(q+3*j+i);*(q+3*j+i)=t;3、#include <stdlib.h>#include <alloc.h>#include <string.h>#include <stdio.h>main( )int binary();void insert();char *temp,*ptr16="BASIC","DATA","PASCAL
46、","SQL","USE"int i;ptr15=malloc(20);printf("n");printf("original string:n");for(i=0;i<5;i+)printf("%sn",ptr1i);printf("input search string:n");temp=malloc(20);gets(temp);i=binary(ptr1,temp,5);printf("i=%dn",i);insert(ptr1,
47、temp,5,i);printf("output strings:n");for(i=0;i<6;i+)printf("%sn",ptr1i);int binary(char *ptr,char *str,int n)int hig,low,mid;low=0;hig=n-1;if(strcmp(str,ptr0)<0) return(0);if(strcmp(str,ptrhig)>0) return(n);while(low<=hig)mid=(low+hig)/2;if(strcmp(str,ptrmid)<0)hig
48、=mid-1;else if(strcmp(str,ptrmid)>0)low=mid+1;else return(mid);return(low);void insert(char *ptr,char *str,int n,int i)int j;for(j=n;j>i;j-)strcpy(ptrj,ptrj-1);strcpy(ptri,str);4、main( ) int i;char *p6,str620;for(i=0;i<6;i+)pi=stri;printf("Input 6 strings:n");for(i=0;i<6;i+)sca
49、nf("%s",pi);sort(p);printf("Now the strings:n");for(i=0;i<6;i+)printf("%sn",pi);sort(char *q ) int i,j;char *t;for(i=0;i<5;i+)for(j=0;j<5-i;j+)if(strcmp(*(q+j),*(q+j+1)>0) t=*(q+j);*(q+j)=*(q+j+1);*(q+j+1)=t;5、main( ) int m;char str120,str220,*p1,*p2;printf(
50、"please input two strings:n");scanf("%s",str1);scanf("%s",str2);p1=str1;p2=str2;m=stringcmp(p1,p2);printf("result is %d:n",m);stringcmp(char *p1,char *p2) int i=0;while(*(p1+i)=*(p2+i)if(*(p1+(i+)='0') return(0);return(*p1+i)-*(p2+i);6、main( ) char str
51、130,str230,str3100;int i=0,j=0,k=0;printf("please input two strings:n");scanf("%s",str1);scanf("%s",str2);while(str1i!='0' && str2j!='0') str3k+=str1i+;str3k+=str2j+;while(str1i!='0')str3k+=str1i+;while(str2j!='0')str3k+=str2j+;st
52、r3k='0'printf("n%sn",str3);第八章 结构体一、选择题1、C 2、B 3、C 4、D 5、B 6、A 7、D 8、C 9、C 10、B二、填空题1、34 2、0 3、51 4、10,x 5、364041三、编程题1、 struct complexfloat x; /*实部*/float y; /*虚部*/main()struct complex c1=5,3,c2=2,6;float t1,t2;t1=c1.x*c2.x - c1.y*c2.y;t2=c1.x*2.y + c1.y*c2.x;printf(“The two compl
53、exs product is:”);printf(“%.2f%+.2f in”,t1,t2);2. struct studentchar name10; /*姓名*/int number; /*学号*/float x; /*成绩*/float y; /*成绩*/ main( )struct student s45;int i;void max();void average();void sort();for (i=0;i<45;i+)scanf(“%s%d%f%d”,,&si.number,&si.x,&si.y);/*输入学生的姓名、学号、两门课程
54、成绩*/max(s,45);average(s,45);sort(s,45);void max(struct student *a,int n)float temp;char na10;int i ,num;temp=a0.x+a0.y;for (i=1;i<n;i+)if(temp<ai.x+ai.y) /*求总分最高的学生姓名、学号*/temp=ai.x+ai.y;strcmp(na,);num=ai.number;printf(“%s,%d”,na,num);void average(struct student *b,int n)float aver1,ave
55、r2,s1,s2;int i ;s1=s2=0;for(i=0;i<45;i+) /*求每门课程的总成绩*/s1+=bi.x;s2+=bi.y;aver1=s1/45;aver2=s2/45;for(i=0;i<45;i+)if(bi.x<aver1&&bi.y<aver2) /*输出两门课程都低于平均成绩的学生*/printf(“%s,%dn”,,bi.number);void sort(struct student *c,int n)float t;int i,j ;struct student temp;for (i=0;i<n-1;i+) /*改进的选择法排序可参考课本P89页*/k=i ;for(j=i+1;j<n;j+)if(ck.x<cj.x)k=j;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度户外展示柜安装与广告投放合同3篇
- 幼儿桌游游戏化课程设计
- 英语句子结构的课程设计
- 热工课程设计自我评价
- (标准员)基础知识练习(共六卷)
- 幼儿园回忆过年课程设计
- 红色精神体育课程设计
- 物流行业配送技巧分享
- 生物实验教学案例分享计划
- 网络实验课课程设计书
- 水库回水计算(实用)
- 人力资源管理概论全套课件
- 伊索寓言-狗和影子课件
- 卸船机用行星减速机的设计-毕业设计
- 中班美术活动美丽的蝴蝶教案【含教学反思】
- 北师大版九年级数学上册教学教学工作总结
- 光储电站储能系统调试方案
- (完整)小学语文考试专用作文方格纸
- 管理供应商 供应商绩效评估
- 烟花爆竹工程设计安全规范
- 1000MW机组锅炉过渡段T23水冷壁管检修导则(征求意见稿)
评论
0/150
提交评论