1、c语言程序设计复习提纲与练习C语言复习提纲第1章 C 语言概述1.了解C语言的发展;2掌握C程序的基本结构;3.了解在Turbo C 下编辑、编译、连接和运行一个C程序的方法。第2 章 算法了解算法的概念和流程图第3章 数据类型、运算符、表达式、赋值语句和输入/输出1.掌握C语言的基本语法:C语言中保留字、标识符的命名规定、常量的合法表示形式;C语言的基本数据类型、定义变量及赋值方法;2.掌握运算符的功能、优先级、表达式及表达式的求值;注意以下运算符:/、%、+、-以及复合赋值符的优先级。第4章 顺序程序设计 1 掌握getchar()函数;2 掌握printf()函数,正确使用主要格式转换符
2、:%d,%md, %ld ,%f,%m.nf,%c,%s;3 掌握scanf()函数,正确使用主要格式转换符:%d,%f,%c,%s;特别要注意输入时数据的分隔。第5章 选择结构程序设计1了解C语言表示逻辑量的方法;2正确使用关系、逻辑运算符和表达式,注意短路运算符&和|。3熟练掌握if、switch语句的使用;要注意if和else的配对关系,switch 语句中的break的作用。第6章 循环控制 1 熟悉while 、do-while 、for 语句的形式、流程图;2 掌握用三种语句实现循环控制的方法;3 了解break语句的作用。4 掌握例6.6 、6.7、6.8、6.9第7章 数组 1
3、 掌握一维/二维数组的定义、赋值、初始化和输入、输出方法;2 掌握一维数组的有关应用:求最大值、平均值、排序(例7.3);3 掌握字符数组和字符串处理函数的使用;4 读懂例 7.2、7.3。第8章 函数1 掌握定义函数的方法;2 掌握函数调用方法,特别注意实参与形参的对应关系以及”值传递”方式;3 了解函数声明的方法和使用;4 了解函数的嵌套调用;5 理解递归函数的执行过程;6 理解数组作函数参数时实参与形参的传递方式;7 了解局部变量/全局变量,动态变量/静态变量的概念,要理解p.173例题8.17. 第9章 编译预处理 掌握带参数的宏定义第10章 指针 1 掌握指针的概念,会定义和使用指针
4、变量;2 掌握指针作为函数参数的作用;3 学会使用数组的指针和指向数组的指针变量;4 学会使用字符串的指针和指向字符串的指针变量.第11章 结构体和共用体1 掌握结构体类型、结构体变量的定义和使用;2 掌握结构体类型数组的概念和应用;3 掌握结构体变量、结构体数组的指针的使用;4 了解结构体指针作为函数参数的作用;5 掌握共用体类型、共用体变量的定义以及共用体变量的存储形式;练习题第3,4章1设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 A) 4 B) 16 C) 32 D) 522. 设有如下的变量定义: int i=8, a, b; dou
5、ble x=1.42, y=5.2; 则以下符合C语言语法的表达式是 A) a+=a-=(b=4)*(a=3) B) x%3; C) a=a*3=2 D)y=float(i) 3假定有以下变量定义: int k=7,x=12; 则能使值为3的表达式是 A) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)4. 以下选项中属于C语言的数据类型是 A) 复数型 B) 逻辑型 C) 双精度型 D) 集合型 5. 在C语言中,不正确的int类型的常数是 A)32768 B)0 C) 037 D)0xAF6. 设有以下变量定义,并已赋确定的值 ch
6、ar w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为 。7.若变量已正确定义并赋值,下面符合C语言语法的表达式是 A) a:=b+1 B) a=b=c+2 C) int a=5%3 D) a=a+7=c+b8. 设有 int x=11; 则表达式 (x+ * 1/3) 的值是 A) 3 B) 4 C) 11 D) 129. 下列程序的输出结果是 A) 3 B) 3.2 C) 0 D) 3.07 main() double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(%d n, d*y); 10.
7、 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是11.若变量a、i已正确定义,且i已正确赋值,合法的语句是 A) a=1 B) +i; C) a=a+=5; D) a=int(i); A) 1 B) 2 C) 2.0 D) 2.512. C语言中运算对象必须是整型的运算符是 A) %= B) / C) = D) = 13. 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是 A) 0 B) 0.5 C) 1 D) 2 14. 以下所列的C语言常量中,错误的是 A) 0xFF B) 1.2e0.5 C) 2L D)
8、7215. 下列选项中,合法的C语言关键字是A) VAR B) cher C) integer D) default 16.有如下程序 main0 int y=3,x=3,z=1; printf(“%d %dn”,(+x,y+),z+2); 运行该程序的输出结果是 A) 3 4 B) 4 2 C) 4 3 D) 3 3 17. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 A) -3 B) 9 C) -12 D) 618. 以下程序的输出结果是 【 】 main() int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(“%d,%dn
9、”, a, b ); 19. 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为 A) 1.4 B) 1 C) 2.0 D) 2 20. 若变量a是int类型,并执行了语句:a=A+1.6;,则正确的叙述是 A) a的值是字符C B) a的值是浮点型 C) 不允许字符型和浮点型相加 D) a的值是字符A的ASCII值加上1。 21. 以下选项中不属于C语言的类型的是 A) signed short imt B) unsigned long int C) unsigned int D) long short22. 设a和b均为double型变量,且a=5.5、b=2
10、.5,则表达式(int)a+b/b的值是 A)6.500000 B)6 C) 5.500000 D) 6.000000 23. 若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k);printf(“%d,%dn”,m,i); 执行后的输出结果是 A) 8,6 B) 8,3 C) 6,4 D) 7,4第5章(1). 语句:printf(%d,(a=2)&(b=-2);的输出结果是 A) 无输出 B) 结果不确定 C) -1 D) 1(2). 当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是 A) c=b=a; B) (a=c) (b=c) ; C) (
11、a=c) &(b=c); D) a=c=b;(3). 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为 A) 不定值 B) 4 C) 3 D) 1(4). 若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是 。 c=(a-=(b-5); c=(a%11)+(b=3); (5) 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 。(6). 已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 & y+z/2的值是 A) B) C) D) (7) 能正确表示逻辑关系:“a=10或a0”的C语言表达式是A)
12、 a=10 or a=0|a=10 &a=10a=0(8) 以下程序的输出结果是 A) -1 1 B) 0 1 C) 1 0 D) 0 0 main( ) int a=-1,b=1,k; if(+a0) & ! (b- 50) printf(%d,a); if(a40) printf(%d,a); if(a30) printf(%d,a); (10) 若执行以下程序时从键盘上输入9,则输出结果是 A) 11 B) 10 C) 9 D) 8 main ( ) int n; scanf(“%d”,&n); if(n+10) printf(“%dn”,n); else printf(“%dn”,n-
13、); (11) 有如下程序 main0 int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+ case 2: a+;b+ printf(“a=%d,b=%dn”,a,b); 该程序的输出结果是 A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 (12) 有如下程序 main() float x=2.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(“%fn”,y); 该程序的输出结果是 A) 0.000000 B) 0.250000
14、C) 0.500000 D) 1.000000(13).若有定义: float w; int a, b; 则合法的switch语句是 A) switch(w) B) switch(a); case 1.0: printf(*n); case 1 printf(*n); case 2.0: printf(*n); case 2 printf(*n); C) switch(b) D) switch(a+b); case 1: printf(*n); case 1: printf(*n); default: printf(n); case 2: printf(*n); case 1+2: print
15、f(*n); default: printf(n); 14. 执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是 。 main() int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b&c&d); A)1234 B)123,4 C) 1,2,3,4 D) 1,2,3415. 执行下面的程序后,输出结果是 。 main() int a=1234;float b=56.67821;char ch=97; printf(“a=%2d,b=%.2f,ch=%cn”,a,b,ch+3); 第6章1. 以下循环体的执行次数是( ) A) 3 B) 2 C) 1 D
16、) 0 main() int i,j; for(i=0,j=1; i=j+1; i+=2, j-)printf(%d n,i); 2. 有如下程序 main( ) int i,sum; for(i=1;i=3;sum+) sum+=i; printf(“%dn”,sum); 该程序的执行结果是( ) A) 6 B) 3 C) 死循环 D) 03. 有如下程序 main0 int x=23; do printf(“%d”,x-);while(!x); 该程序的执行结果是 A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环4. 有以下程序段 int k=0; while(k=1) k
17、+; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 5. 以下程序执行后sum的值是 A)15 B)14 C) 不确定 D)0 min() int i , sum; for(i=1;i6;i+) sum+=i; printf(“%dn”,sum); 6. 有以下程序段 int x=3; do printf(“%d”,x-=2); while (!(-x); 其输出结果是 A) 1 B) 3 0 C) 1 2 D) 死循环 7. 若输入字符串:abcde,则以下while循环体将执行 次。 While(ch=getchar()=e) p
18、rintf(“*”);8. 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。 #include main() int a, b, c, i; a=c=0; for(i=0;i=10;i+=2) a+=i; ; c+=b; printf(偶数之和=%dn,a); printf(奇数之和=%dn,c-11); 9 . 有以下程序段 int n=0,p; doscanf(“%d”,&p);n+;while(p!=12345 &n10 & x50) x+; if(x/3!=0)x+;break; else continue; printf(“%dn”,x); 11. 以下程序中,whil
19、e循环的循环次数是 main() int i=0; while(i10) if(i1) continue; if(i=5) break; i+; . A) 1 B) 10 C) 6 D) 死循环,不能确定次数 12. 以下程序的输出结果是 main() int a=0,i; for(i=1;i6) n-; printf(“%d”,n); 该程序段的输出结果是 A) 987 B) 876 C) 8765 D) 987614. 下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。 #include main() int i, j; for(i=0; ; i+) j=i*10+
20、6; if( ) continue; printf(%d,j); 15. 以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() int n,k; float score ,sum,ave; sum=0.0; for(n=1;n=10;n+) for(k=1;k=4;k+) scanf(“%f”,&score); sum+=score; ave=sum/4.0; printf(“NO%d:%fn”,n,ave); 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf(“NO%d:%fn”,n,ave);下面的程序是求满足下列条件的四位数:该数是完全平方数;第一、三位数字之和为10,第二、四位数字之积为12。请填空。main() int i,j,a,b,c,d; for(i=32;i=99;i+) a=j/1000; b=j/100-a*10; c= ; d=j%10; if( ) printf(“ %d ”,j);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2