




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选文库C语言复习题熟读理论教材,理解相关知识,并复习理论教材课后练习题(切记:以理论教材知识、例题和课后练习为主复习)熟读课本例题及知识,完成以下知识点的复习及总结。一填空1. 一个C语言的执行是从本程序的_开始,到_结束?2. C语言中用户的标识符命名规则是_。3. 在一个c语言程序中,main函数的位置是_。4. 若有代数式p(mne)/(bcd),其中p、m、n、e、b、c、d为变量,则该代数式的 C语言表达式为_。5. char a; int x; float y,m; double z,p;则表达式“a*x*m+z-y*x*p”值的数据类型为_。6. C语言的常用关键字有_(举例说明,越多越好)。7. printf函数中用到格式符%ms,其中数字m表示输出的字符串占用m列。如果字符串长度大于m,则输出时的规则是_。若如果字符串长度小于m,则输出时的规则是_。若如果字符串长度等于m,则输出时的规则是_。当m0时是左对齐还是右对齐?my)z=x;x=y;y=z;语句后,x、y、z的值是_。13.若m和n均为int型变量,则以下for语句循环执行的次数_及输出结果是_。for(n=8,m=8;m!=8;m+,+n) printf(“Welcome you!n”);14.若n为int型变量,则循环语句“for(n=0;n2) return(fib(n-1)+fib(n-2); else return (2); void main( ) printf(%ldn, fib(5); 34.若有以下语句int a,*p,*p; a=808;p=&a;pp=&p;则*PP的值是_。35. 设有如下定义:int *p( ); int a10, *q10;qi=&ai则p表示的意义是_,*q的表示的含义是_,其值是_。 38.若有 #define MU(x,y) x*y , 则表达式24/MU(1+2,2)的值是_。39.若有 int a=1; 则执行完循环语句while( a+100 );后a的值为_。40.以下所列的C语言常量中,错误的是_。A 0xFF B2.8e0.2 C25.3 DB41.所有的字符串都是以_字符结束的。42假定double类型变量占用8个字节,且有定义:double x10=1,2,3;,则数组x在内存中所占字节数是_ 43判断char型变量ch是否为小写字母的正确表达式是_44. 以下语句正确的有_,错误的有_ A char a=P, b=M; B float a=b=101.0;C int m=101, *n=&m; D double *a, b=&a; 45.以下4个选项中,不能看做一条语句的是_Aa-=23; Ba=8,b=12.5,c=13.68; B if(a15) p+; Dif(b!=5)x=2; y=6;46.关于if后一对圆括号中的表达式,可以是哪种类型的表达式_ 47.以下有关变量使用范围不正确的说法是_。 A 在不同函数中可以使用同名的变量 B 形式参数是局部变量 C 在函数内定义的变量只在本函数内有效 D 全局变量可以在所有函数中使用48.若有说明语句:int a,b,*d=&b;,则能正确从键盘读入2个整数分别赋给变量a、b的语句是_。Ascanf(%d%d, &a,d); Bscanf(%d%d, &a,&d); C scanf(%d%d ,a,d); Dscanf(%d%d, a,*d);49.已知 int p=20; 则执行 if(p=a&ch=z) ? (ch-32) : ch; 55.下面程序的运行结果是_。 char c8=a,0,b,0,c,0; printf(%s,c);56.以下程序的输出结果是_。 main() char st20= 10987654321ntnt; printf(%d n,strlen(st); 57.有如下程序, 该程序的输出结果是_。main( ) float x=2.0, y; if( x0.0 ) y=0.0; else if( x10.0 ) y=1.0/x+1/4; else y=10.0; printf( %fn, y); 58.以下程序段的输出结果是_。main( ) int a10=1,2,3,4,5,6,7,8,9,10, *p=&a2;printf( %d, *(p+3) );59.有如下程序, 该程序的执行结果是_。 main() int i, sum=0; for(i=1; i=10; i+) sum += i; printf( %dn, sum); 60.以下程序段,while 循环执行的次数是_。 int k=0; while( k = 2) k = k -1; 60.语言使用的磁盘文件系统中,数据文件存储的的形式有哪两种_。 61.文件函数中,用于打开文件的函数是_,用于关闭文件的函数是_,读写文件中字符的函数是_,将一个字符写入磁盘文件的函数是_。二编程1.已知某班10个学生的C语言成绩为学号9901990299039904990599069907990899099910C成绩65.486.769.888.510092.687.354.896.379.6要求:按成绩大小排序输出,格式如下:学号 成绩 名次 9905 100.0 1 9909 96.3 2 参考答案:#include stdio.hvoid main() static int num10=,i,j,p,t; static float sc10=65.4,86.7,69.8,88.5,100,92.6,87.3,54.8,96.3,79.6,f; printf(the original data:n); printf( 学号 成绩n=n); for(i=0;i10;i+) printf(%6d %6.1fn,numi,sci); for(i=0;i9;i+) p=i; for(j=i+1;j10;j+) if(scpscj) p=j; if(p!=i) for(j=0;j10;j+) t=nump; nump=numi; numi=t; f=scp; scp=sci; sci=f; printf(the sorted data:n); printf( 学号 成绩 名次n=n); for(i=0;i10;i+) printf(%6d %6.1f %dn,numi,sci,i+1);2.例8.3编写一个交换两个变量的函数,在主程序中调用,实现两个变量值的交换。#include void main() int a,b;int *pa,*pb;void swap(int *p1,int *p2);/*函数声明*/scanf(%d%d,&a,&b);pa&a; /* pa指向变量a */pb&b; /* pb指向变量b */swap(pa,pb);printf(na%d,b%dn,a,b);void swap(int *p1,int *p2)int temp; temp*p1; /*三行语句交换指针p1,p2所指向的变量的值*/ *p1*p2; *p2temp; 3. 例6.5编程求组合C=分别定义求组合的函数和求阶乘的函数:#include long fac(int k) /* 定义求阶乘的函数*/ long f1; int i; for(i1;ik;i)f f * i; return f;long comb(int n,int m) /* 定义组合函数*/ long c;c fac(m)/ (fac(n)* fac(mn); /* 嵌套调用阶乘函数*/return c;main() int n,m; long c; scanf(%d,%d,&n,&m); c comb (n,m); /* 调用组合函数*/ printf (%ld,c);4.例6.6输入两个数,输出其中较大的数。#include void main() int a,b,m; int max(int,int ); /*对函数max的声明*/ scanf(%d,%d,&a,&b); m max(a,b); /*调用函数max,a、b已有具体的值*/ printf(max%d,m);int max(int x,int y) int t; if (xy)t x; else t y;return t; 如果运行时输入:10,5输出为105. 例6.8用递归计算n!。程序:#include long fac(int n)long f;if (n0)f1;eslef n * fac(n1); /* 递归调用,求(n1)!*/return f;void main()long y; int n; scanf(%d,&n); y fac(n); /*调用fac(n)求n!*/ printf(%d!%ld,n,y);程序运行时如果输入:36. 例5.9找出31 000中的全部素数。程序:#include void main() unsigned int i,j,count,flag;/* 用flag作标志*/count0; /* 计数器清0*/for(i3;i1000;i)flag 0; for(j2;j sqrt(i);j)if (i % j 0) /*能整除,不是素数,标志设为1 */ flag 1;break; /* 内循环结束 */if (flag 0) /* 若flag为0,则i是素数 */ printf(%4d,i ); count;if (count % 8 0)printf(n); /* 每行输出8个素数*/* 外循环 */7.例8.1从键盘输入两个整数到a、b,按由大到小输出。#include void main()int a,b,*pa&a,*pb&b,*p;/*定义指针变量pa、pb,并进行初始化,如图8.4(a)所示*/scanf(%d%d,&a,&b); if (*pa*pb) ppa;/*进行指针交换,如图8.4(b)和图8.4(c)所示*/papb;pbp;printf(n a%d,b%dn,a,b);printf(n max%d,min%d,*pa,*pb);/* pa指向大数,pb指向小数*/输入:1222输出: a12,b22max22,min128.例8.14用指向一维数组的行指针输出二维数组,并输出数组中的最大元素及所在行列号。#include void main() int i,j,m,n,max; int a341,2,3,4,5,6,7,8,9,10,11,12; int (*p)4; /*定义p为指向一个有4个元素的一维数组的指针变量*/ pa; /*p指向第0行*/ max*p; /*将第一个元素送入max,*p相当于 *(*(p0)0) */ for(i0;i3;i) printf(n); for(j0;j4;j) printf(%5d,*(*pj); if(max*(*pj) max*(*pj); mi;nj; p; /*指向下一行*/ printf(nmax is:a%2d %2d%5d,m,n,max);9.例5.1编写一个程序,输入一个班的学生的成绩,求全班的平均成绩。 程序:#include void main() float score,average0; /* average存放平均成绩,初值为0 */ int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环境工程师执业资格认证考试试题及答案解析
- 2025年兽药协管员面试模拟题及详解
- 2025年幼师安全知识竞赛题含答案
- 微课课件和教学设计
- 2025年安全生产责任管理题集解析及答案
- 2025年无人机技术员面试模拟题库
- 课件9欢庆教学课件
- 2025年综治长助理笔试模拟题库及答案
- 2025年工程测量高级鉴定题库
- 2025年车队招聘面试问题解析
- 2025云南广南民族文化旅游产业有限公司招聘14人笔试备考试题及答案解析
- 2025年度剧院设施全面维修与日常维护服务协议
- 2025秋季开学第一次学校行政中层班子会上校长讲话:新学期班子履职聚力共促学校发展新跨越
- 2025年检验检测机构资质认定(授权签字人)试题(含答案)
- 建筑质量安全知识培训课件
- 抑郁症治疗个案分析文献综述
- 面试必杀技:保研面试实战模拟题库解析
- 2025年金融机具行业研究报告及未来发展趋势预测
- 2025年度中级经济师职称评审聘用合同样本
- 新业务开发管理办法
- 民事起诉状要素式(买卖合同纠纷)
评论
0/150
提交评论