




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C程序设计复习要点第一章概述1. C程序的构成与结构特点2. C程序上机调试过程与流程第二章数据类型、运算量与表达式1. 数据类型的种类(基本数据类型和构造数据类型)2. 常量的数据类型及其表示(表示方法、存储字节数与表数范围)整、实、字符、字符串和转义字符3. 变量的命名、定义方法与赋初值4. 各种表达式及其运算规则优先级、结合性、类型自动转换与强制转换l 算术运算符、表达式及其构造(注意“/”和“%”特殊性)l 自增、自减运算符及其简单表达式运算l 赋值运算符及其表达式(注意复合赋值运算符的运算方法)l 逗号运算符及其表达式第三章流程控制1. 赋值语句的一般形式、赋值过程及赋值规则(注意左
2、右数据类型的一致或兼容)2. 输入和输出函数的格式、功能及用法(只要求常用的格式控制符d, f, c, s),提醒注意:l 格式输出中域宽和小数位数的控制l 格式输入与输出中普通字符的原样输入和输出问题l 熟悉并区别以下函数:putchar()、printf()、puts();getchar()、scanf()、gets()3. 关系运算符及其表达式、逻辑运算符及其表达式和条件运算符及其表达式的运算规则(优先级、结合性)4. 关系表达式与逻辑表达式的构造(根据已知条件写表达式)5. if语句的三种形式:if 语句、if else 语句、if 语句的嵌套l if 语句的格式与用法:简单if、嵌套
3、if、并列ifl 逻辑关系与执行过程l 嵌套规则(重点掌握if else if else if else)6. switch语句的格式与用法7. *熟练使用if和switch语句阅读和编写较为简单的选择结构程序8. 三种循环语句:while() 、do while()、for()的格式、执行过程及其用法l 循环变量初始化、循环条件构造、循环体所要实现的任务和控制变量修改l 注意循环期间与结束时循环控制变量的取值问题9. 结合例题理解和区别break与continue语句的作用及其用法10. 本章涉及的主要算法:累加(计数)、累乘、递推、穷举、判素数、求最大公约与最小公倍等11. *熟练使用三种
4、循环语句并结合以上算法阅读和编写较为简单的循环结构及其嵌套程序第四章复杂数据类型1. 一维、二维数组的定义、初始化及其引用方法(数据输入、输出、存储与处理)2. 字符数组的定义、初始化及其引用(字符串输入、输出、存储与处理)3. 常用字符串处理函数:gets()、puts()、strlen()、strcmp()、strcpy()4. 数组涉及的主要算法:排序、极值、逆序、回文和字符串的连接、复制、求长度等5. *熟练使用数组并结合以上算法阅读和编写较为简单的程序6. 指针的概念:指针、指针变量、指针运算(、&、+、-、+、-)7. 变量、数组和字符串指针的定义、指向与引用(仅限于一维数
5、组)8. 了解指针数组与二级指针的概念和定义9. *能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)10. 结构体与共用体的概念、定义与引用(仅限概念)第五章 结构化程序设计与应用1. 熟悉程序的三种基本结构:顺序、选择和循环2. *通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法第六章 函数与编译预处理1. 掌握函数的定义、声明和调用方法及参数传递方式2. *结合相关例题掌握一般函数和递归函数的定义与使用3. 熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期4. 了解内部函数与外部函数的定
6、义及调用规则5. 掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)6. 了解文件包含的作用及其使用场合第七章 文件1. 了解文件的基本概念2. 熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现C语言程序设计参考题型说明:本题仅反映考试的题型,作为考前复习参考。要通过这些典型题目,掌握复习要点中所列内容。所给题目不可死记硬背,而是通过题目掌握其涉及要点和重要算法。一、单项选择题1. C程序的基本构成单位是【 】A)文件B)命令C)函数D)语句2. 下列叙述中错误的是【 】A)C程序中main(
7、)函数的位置可以任意B)C程序可以由多个程序文件组成, 而一个程序文件又可以由一个或多个函数组成C)每个C程序文件中都必须有一个main( )函数D)C程序总是从main( )开始执行,也是由它结束3. 将C源程序转换为目标程序的过程称为【 】A)编辑B)编译C)连接D)运行4. C语言中最基本的数据类型包括【 】A)整型、实型、逻辑型B)整型、实型、字符型C)整型、逻辑型、字符型D)整型、实型、字符串型5. 以下不合法的用户标识符是【 】A)j2_KEY B)Double C)4d D)_8_6. C源程序中不能表示的数制是【 】A)二进制 B)八进制 C)十进制 D)十六进制7. 以下合法
8、的字符常量的是【 】A)'x13' B)'081'C)'65' D)"n "8. 以下选项中,能用作数据常量的是【 】A)o115 B)0118C)1.5e1.5 D)115L9. C语言中,要求运算对象必须是整型数据的运算符是【 】A)%B)/C)D)&&10. 表示数学关系“xyz”的C语言表达式是【 】A)x>=y>=zB)x>=y | y>=zC)x>=y&&y>=zD)xyz11. 若变量均已正确定义并赋值,以下合法的C语言赋值语句是【 】A)x=y
9、=5; B)x=n%2.5; C)x+n=j; D)x=5=4+1;12. 设有定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是【 】A)k+ B)k+=1 C)+k D)k+113. 若有代数式:以下错误的C语言表达式是【 】A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*314. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为【 】A)intB)floatC)doubleD)不确定15. 若p和x已经正确定义,x已赋值,并且p=&x,则下列关系表达式之值为1的是【
10、】A)p=xB)*p=xC)&p=xD)*x=p16. 当用户要求输入的字符串中含有空格时,应使用的输入函数是【 】A)scanf() B)getchar() C)gets() D)getc()17. 下列能输出字符数组str中字符串的语句是【 】A)printf("%c",str0);B)printf("%s",str);C)printf("%s",str);D)putchar(str);18. 有输入语句:scanf("%d,%d",&a,&b);为使变量a、b分别为5和3,从键盘输入数
11、据的正确形式为【 】A)5 3<回车>B)5,3<回车>C)a=5 b=3<回车>D)a=5,b=3<回车>19. 定义如下变量和数组:int j;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是【 】for(j=2; j>=0; j-)printf("%2d",xj2-j);A)1 5 9B)1 4 7C)7 5 3D)3 6 920. 执行下面程序后,a的值是【 】#define SQR(x) x*xvoid main( )int a=10,k=2,m=1;a=SQR(k+m);printf
12、("%dn",a);A)10B)5C)2D)121. 简单if语句的基本形式:if(表达式)语句。其中“表达式”【 】A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式22. 在嵌套使用if语句时,C语言规定else总是【 】A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对23. 下列叙述中正确的是【 】A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的c
13、ase配对使用D)在switch语句中,不一定使用break语句24. 有以下程序段:x=-1;do x=x*x;while(!x);执行时,循环体执行的次数为【 】A)0B)1C)2D)不确定25. 以下不正确的if语句形式是【 】A)if(x>y&&x!=y);B)if(x=y) x+=y;C)if(x!=y) scanf("%d",&x) else scanf("%d",&y);D)if(x<y) x+;y+;26. 以下程序的输出结果是【 】void main( )int x=2,y=-1,z=2;if
14、(x<y)if(y<0)z=0;elsez+=1;printf("%dn",z);A)0B)1C)2D)327. 以下能正确计算1×2×3××10的程序段是【 】A)i=1,s=1;B)s=1;i=1;dowhile(i<=10)s=s*i;i+; s=s*(+i);while(i<11);C)for(i=1,s=0;i<=10;i+)D)for(i=1,s=1;i+) s=s*i;s=s*i;28. 若j为整型变量,则以下循环执行次数是【 】for(j=0;j=0;)printf("%d&qu
15、ot;,j-);A)无限次B)0次C)1次D)2次29. 若有说明:int a10;则对a数组元素的正确引用是【 】A)a3.5B)a(8)C)a6-5D)a1030. 若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0, *p=x;则错误引用x 数组元素的是【 】A)*p B)x5 C)*(p+1) D)*x31. C中,一个char类型的数据在内存中占用的字节数是【 】A)1 B)2 C)4 D)832. 设有程序段:int k=5;while (k<=0) k-;则下列描述中正确的是【 】A)while循环执行5次B)循环是无限循环 C)循环语句一次也不执行D
16、)循环体语句执行一次33. 下面程序段的运行结果是【 】char c5= 'a', 'b', '0', 'c', '0' ; printf(“%s”, c);A)'a''b' B)ab C)Abc D)"abc"34. 以下不正确的字符串赋值语句是【 】A)char *s; s="abcde"B)char s ="abcde"C)char s10; s="abcde"D)char *s="abc
17、de"35. 设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是【 】A)k=*p1+*p2;B)p2=k;C)p1=p2;D)k=p2-p1;36. 下面程序的输出结果是【 】void main( ) char s = "ABCD" char *p; for (p=s;p<s+4;p+) printf(“%sn”, p);A)ABCDB)AC)DD)ABCDBCDBCABCCDCBABDDAA37. 以下正确的函数定义形式是【 】A)double fun( int x,int y )B)double fun( int x;in
18、t y )C)double fun( int x;int y );D)double fun( int x,y )38. 以下关于C函数的定义和调用描述正确的是【 】A)函数的定义可以嵌套,但函数的调用不可嵌套B)函数的调用可以嵌套,但函数的定义不可嵌套C)函数的定义和调用均可以嵌套D)函数的定义和调用均不可嵌套39. 以下关于变量的存储类型和作用域说法错误的是【 】A)函数内定义的变量默认存储类型为auto,函数调用结束时释放其值B)静态局部变量的生存期虽然被延长,但作用范围依然只限于所在函数内有效C)寄存器变量主要用于使用频度较高的变量,其资源依然使用计算机内存D)外部变量可以跨文件使用,但
19、静态外部变量不允许跨文件使用40. 以下关于变量的作用域叙述不正确的是【 】A)在函数内部定义的变量是局部变量B)函数中的形式参数是局部变量C)局部变量的作用范围仅限于其所在函数或复合语句D)全局变量的作用范围仅限于其所在的文件41. 以下关于C函数参数说法不正确的是【 】A)实参可以是常量、变量和表达式B)形参可以是常量、变量和表达式C)实参和形参可以为任意数据类型D)实参与对应的形参类型一致42. 以下关于C函数返回值的叙述正确的是【】A)被调函数中只有使用return语句才能返回主调函数B)使用一个return语句可以返回多个函数值C)函数返回值类型取决于return语句中的表达式类型D
20、)函数返回值类型取决于定义该函数时所指定的类型43. 以下数组定义中错误的是【】A)int x3=0;B)int x23=1,2,3,4,5,6;C)int x3=1,2,3,4,5,6;D)int x23=1,2,3,4,5,6;44. 若有定义语句:char s10="123456700" 则strlen(s)的值是【】A)7 B)8 C)9 D)1045. 给定以下程序段:int n=10;while (n>6)n-; printf(“%3d”,n);以上程序段输出结果是【】A)10 9 8B)9 8 7C)10 9 8 7D)9 8 7 646. 若i,j已定
21、义为int型,则以下程序段中内循环总的执行次数是【】for (i=5; i>0; i-) for (j=1; j<6; j+) A)30B)24C)25D)2047. 若已定义:float *p, m=3.14159; 则使p指向m正确的赋值语句是【】A)p=m;B)p=&m;C)*p=m;D)*p=&m;48. 若已定义:char s10; 则下面表达式中不能作为s1地址的是【】A)s+B)s+1C)&s0+1D)&s149. 已知:int a=3, b=5, t; 要将a和b中的数值进行交换,错误的程序段是【 】A)a=a+b; b=a-b; a
22、=a-b;B)t=a; a=b; b=t;C)t=a; b=a; a=t;D)t=b; b=a; a=t;50. 关于C程序中的#include <math.h>,错误的描述是【 】A)它是C语言的预编译命令B)在程序中该行尾部不需要分号C)用于将math.h包含进来D)math.h是一个函数51. 下列C程序段的输出结果是【 】int a=0;switch(a)case 0: printf(“a=0”);case 1: printf(“a=1”);default: printf(“default”);A)a=0B)a=0defaultC)a=0a=1defaultD)defaul
23、t52. 已知:int a, x, y; 有语法错误的C语句是【 】A)while(x) y+;B)while(x+y=0) a+;C)while(x<y);D)while(y=5) +x;53. 对于do while( )语句,错误的说法是【 】A)用条件控制循环体的重复执行B)循环体至少要执行一次C)循环体有可能一次也不执行 D)循环体中可以包含若干条语句54. 已知:int a5, *p=a; 利用p为数组元素a4赋值的正确C语句是【 】A)scanf(“%d”, p+3);B)scanf(“%d”, p+4);C)scanf(“%d”, *(p+3);D)scanf(“%d”,
24、*(p+4);55. 对于C语句:char *a2=“abcd”, “ABCD”; 叙述正确的是【 】A)a是指针变量B)a是指针数组C)a是数组指针 D)a是字符串56. 设有如下说明语句:struct ex int x; float y; char z; example;则下面叙述中不正确的是【 】A)struct是结构体类型的关键字B)example是结构体类型名C)x, y, z都是结构体成员名D)struct ex是结构体类型名57. 有以下程序#include <stdio.h>struct ord int x,y; dt2=1,2,3,4;void main() st
25、ruct ord *p=dt; printf(“%d,”,+p->x); printf(“%dn”,+p->y);程序的运行结果是【 】A)1,2 B)2,3 C)3,4 D)4,158. 设有以下定义:union data int d1; char d2; demo;则下面叙述中错误的是【 】A)变量demo与成员d2所占的内存字节数相同B)变量demo中各成员的地址相同C)变量demo和各成员的地址相同D)若给demo.d1赋99后, 则demo.d2中的值也是9959. 设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为【 】A)EOF B)
26、非0值 C)0 D)NULL60. 读取二进制文件的函数调用形式为:fread(buffer,size,count,fp); 其中buffer代表的是【 】A)一个文件指针,指向待读取的文件B)一个整型变量,代表待读取的数据的字节数C)一个内存块的首地址,即读入数据存放的地址D)一个内存块的字节数61. C语言编译系统对宏命令的处理是【 】进行的。A)在程序运行时B)与源程序中的其他语句同时C)在程序连接时D)在对源程序中的其它成分正式编译之前62. 若要用fopen函数打开一个新的二进制文件,既能读也能写,则打开方式是【 】A)rb+B)wb+C)ab+D)ab二、填空题1. 赋值表达式x*
27、=y+5的另一种书写形式为_。2. 已知a=10,b=20,c=3,则表达式!a>b | c的值为_。3. 表达式(int)(double)(5/2)+2.5)的值是_。4. 若j=3,则表达式(+j)+(j+)的值为_。5. 若a的原值为4,则表达式“a*=a-=3”运算后,a的值是_。6. 若a=5、b=3、c=1,则表达式“a>b>c”的值为_。7. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为_。8. 整数m既能被3整除又能被4整除的逻辑表达式为_。9. 写出代数式0<x<1的C逻辑表
28、达式为_。10. 写出判断字符变量c所存字符是否为字母的逻辑表达式为 。11. 实现变量a和b交换的语句或语句序列是 。12. 若整型变量a 和b 中的值分别为7 和9,要求按以下格式输出a和b的值:a=7b=9请完成输出语句:printf(" ", a, b);13. 若有定义:double a105; 则数组a中行下标最大值为_,列下标最大值为_。14. 若有定义:int a 1,4,6,5,8,9; 则 *(a+5) 的值为_。15. 设有如下定义int a56,*p; 使p指向数组元素a42的语句为_。16. 若有定义:int a10,*p=a; 则元素a5的值用p
29、表示的形式是_。17. 若有定义:int *p4; 则标识符p表示_。18. 凡是函数中未指定存储类型的局部变量,其默认的存储类型为_。19. 函数有内部函数和外部函数,函数定义时用来说明该函数仅限本文件调用的关键字是_。20. 未加特别说明(说明为静态)的全局变量是外部变量,能被其它文件使用,而在引用它的文件中,需要用关键字_说明。三、程序填空1. 下面程序的功能是:从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小写字母则直接输出。include <stdio.h>void main( ) char ch; ch=getchar( ); if (_) ch+=32
30、; printf(“%c”, ch);2. 下面程序的功能是:求1100间的偶数和。#include <stdio.h>void main( )int num, sum=0; for (num=2; num<=100; num=num+2) _; printf("1-100间的偶数和是:%dn", sum);3. 下面程序段是:求n!的递归函数。double fac(int n)double result;if (n=1)result=1;elseresult=_;_;4. 以下程序的功能是:输入一整数n,判断是否为素数。#include <stdi
31、o.h>void main( )int i, n;scanf(“%d”,&n);for (i=2; _; i+)if (n%i=0)break;if (_)printf(“%d is a prime number.n”, n);elseprintf(“%d is not a prime number.n”, n);5. 如下程序实现字符串逆序。#include <stdio.h>#include <string.h>void main()char *p1, *p2, c, s50;scanf(“%s”, s);p1=s, p2=s+strlen(s)-1;
32、for(; ; p1+, p2-) ;printf(“The new string is %sn”, s);6. 如下程序判断字符串是否回文。#include <stdio.h>#include <string.h>void main()char *p1, *p2, c, s50;gets(s);p1=s;p2=_;for(; p1<p2; p1+, p2-)if( ) break;if( )printf(“该字串不回文n”);elseprintf(“该字串回文n”);7. 下列程序用来求任意两整数的最大公约数。#include <stdio.h>vo
33、id main( )int temp, m, n, x;printf("Enter two numbers:n");scanf("%d,%d", &m, &n);if (m<n) temp=m, m=n, n=temp;for(x=n; ; x-)if (m%x=0&&n%x=0) _;printf("n最大公约数为:%dn",x);8. 下列程序用“起泡法”对输入的字符串降序排序。#include <stdio.h>#include <string.h>void main
34、( )_;char str20;printf("请输入字符串:n");scanf("%s", str);_;printf("排序结果:n");puts(str );void sort(char *s)int i, j, n;char c;n=_;for(i=0; i<n-1; i+)for(j=i; j<n-i-1; j+)if(sj<sj+1)c=sj, sj=sj+1, sj+1=c;9. 下列程序功能是:统计给定数据中09数字个数。#include<stdio.h>void main()int i,
35、data20=0,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,0 ;int count10=_;for(i=0; i<20; i+)_;for(i=0; i<10; i+)printf("数字%d的个数:%dn",i,counti);10. 如下程序功能是:在十个数中删除指定数据#include<stdio.h>void main()int a10,x,*p,*q;printf("请输入十个整数:n");for(p=a;p<a+10;+p)scanf("%d",p);print
36、f("请输入待删数据:");scanf("%d",&x); for(p=q=a;p<a+10;p+)if(x!=*p)_;if(q=p)printf("查无此数!n");elsefor(p=a;p<q;) printf("%5d",_);printf("n");四、阅读程序1. include <stdio.h>void main( )char ch;int cnt1=0,cnt2=0;while (ch=getchar( )!='n')if (c
37、h>='a'&&ch<='z') cnt1+;else cnt2+;printf("COUNT=%dn",cnt1);若输入“This is a C program.”,运行结果:_2. #include <stdio.h>void main( )int i, j, temp;int a=0,1,2,3,4,5,6,7,8,9;for(i=0, j=9; i<j; i+, j-)temp=ai, ai=aj, aj=temp;for(j=0; j<10; j+)printf("%2
38、d", aj);运行结果:_3. #include <string.h>#include <stdio.h>void main( )char str1="good",str2="morning"int i, j;for(i=strlen(str1),j=0;str2j!='0' i+, j+)str1i=str2j;str1i='0'printf("string1=%s",str1);运行结果:_4. #include <stdio.h>void main(
39、 )int i, j, pos;float val, a10;for(i=0; i<10 ;i+)scanf("%f", &ai);val=a0;for(j=0; j<10; j+)if (aj>val)val=aj, pos=j;printf("Max=%f,position:%d", val, pos);本程序的功能是:_5. #include <stdio.h>float average(int x, int n)int i;float sum=0;for(i=0;i<n;i+)sum+=xi;return(sum/n);void main( )int a5=2,4,6,8,10;float rst;rst=average(a,5);printf("result=%fn",rst);运行结果:_6. 给定如下程序:#include <stdio.h>void main( )char grade;scanf(“%c”, &grade);switch (grade)case 'A': printf("85100n"); break;case 'B': print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议男方放弃抚养费支付及子女抚养责任协议书
- 离婚股权处置及子女抚养权共享协议书
- 北极和南极生物多样性保护-洞察及研究
- 后现代主义与数字伦理-洞察及研究
- 科学竞赛经典试题及答案
- 咨询服务品牌建设-洞察及研究
- 河北数学竞赛试题及答案高中
- 健康知识竞赛试题及答案
- 公司办公房屋租赁合同
- 《标书实例土建园林装饰范文大全》某国道212线兰州-临洮高速公路建设工程LL3工程施工组织设计
- 2025-2030中国枸杞种植及深加工市场销售格局及未来营销创新研究报告
- 环氧地坪维修施工方案
- 家庭医生签约服务培训课件
- 通信系统建模与仿真(基于MWORKS) 课件 第2章 MWORKS 科学计算与系统建模仿真基础
- 大数据治理与服务平台建设及数据服务运营实施技术方案
- 某铁路站前工程安全生产管理办法
- 无人机集群控制技术-深度研究
- 部编版小学道德与法治六年级上册配套表格式教案(全册)
- 商务星球版八年级地理上册4.1《因地制宜发展农业》听课评课记录
- 厨房6S管理培训
- 临床常用他评量表
评论
0/150
提交评论