




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计课程重点、难点及例题分析第一章 重点:(1)算法的特性;(2)简单算法的设计;(3)c程序的基本结构。难点:算法设计以及表示方法是本章的难点。算法在程序设计中占有重要的地位,是程序设计的灵魂。算法设计师程序设计必不可少的步骤。结构化的程序设计方法在其中起着重要的作用。用结构化程序设计方法设计算法可使编写的程序结构清晰,易于调试和修改。算法的表示有流程图、N-S图、PAD图以及伪代码等,图形表示使得程序的控制结构清晰。伪代码不能在计算机上执行。例题:1.1 C语言源程序的最小单位是: A 程序行B 语句C 函数D 字符【分析】程序行、语句和函数都是由字符构成的,字符是C语言最小单位。正确答案:【D】1.2 C语言源程序文件的后缀是 ,经过编译后生成文件的后缀是 ,经过连接后生成的文件后缀是 。【分析】文件的后缀即是文件的冠名,主要用来标示该文件的类型。C语言源程序文件的扩展命为”c”;经过编译后生成目标程序,其文件的扩展名为”obj”,目标程序必须经过连接生成可执行程序才能运行,其扩展名为”exe”,本题的答案分别是”c”、 ”obj”、 ”exe”。第二章 重点:(1)标示符的正确使用;(2)变量和常量的定义与应用;(3)C语言的各种基本数据类型及其标示方法;(4)C语言的各种运算符的优先级和结合性;(5)C语言表达式的运算以及计算过程的类型转换; 难点:数据类型的概念;各种类型的数据在内存中的存储方式;运算符对运算对象类型的要求和限制,这涉及到运算对象类型的自动转换和牵制转换的概念;C语言表达式的运算,特别是自增/自减运算等。例题:2.1 不是C语言基本数据类型的是: 。 A 指针类型B 整型C 无符号长整型D 单精度型【分析】c语言的数据类型分为两大类,基本类型和构造类型。指针类型即不是基本类型也不是构造类型。正确答案:【A】2.2 表达式!2+12&15%5+2的值是: A0 B1 C2 D3【分析】本题是考核对运算符优先级的掌握程度,注意逻辑运算符“!”的优先级高于所有的算数运算符,而“&”和“|”的优先级则低于所有的关系运算符。正确答案 :【A】2.3 执行下面的程序断后,输出结果为: int x=1,y=1,z=1; x=x+y+z+; printf(“%d,%d,%d”,x,+y,z+); A4,3,2 B3,3,2 C3,3,3 D3,2,2【分析】语句x=x+y+z+;可以改写成x=(x+)+(y+)+(z+),执行此语句后,得到结果x=4,y=2,z=2,在执行printf语句,注意printf语句中变量y是一个自增(前缀)运算,所以输出的y的值是3,变量z是一个后缀的自增运算,输出的z的值为2。正确答案:【A】第三章 重点:(1)顺序、选择、循环三种结构的设计与使用;(2)格式输入/输出函数的各种使用方法;(3)条件的表示方法与运算策略;(4)if 语句的执行过程:三种形式的if 语句的正确使用方法;(5)switch语句的流程控制;(6)分支嵌套的执行过程以及嵌套的使用;(7)循环语句while、dowhile 、for的构成、区别与转换;(8)循环前套的执行过程与前套的使用;(9)break、continue、goto语句的使用方式。(9)难点:运用三种基本结构实现简单算法是本章的重点。因此下面的内容需要注意:格式输入/输出函数中的各种格式控制形式的变化与使用,例如精度的使用等;在构成选择条件时的逻辑表达式设置形式;ifelse 语句的匹配原则(不以形式上相邻,而从最内层开始);if语句的嵌套;switch语句的嵌套以及switch语句break的正确使用;For 语句表达式的各种省略方式、处理方法;多重循环初始值的设置值与设置点; break、continue、goto三个语句的区别和联系。例题:3.1 已知:int x;float y;语句scanf的调用格式为:scanf(“x=%d,y=%f”,&x,&y);则为了将数据10和66.6分别赋给x和y,正确的输入应当是( )。 Ax=10,y=66.6 B. 10,66.6C. 1066.6 D. x=10y=66.6【分析】本题考察的使scanf函数的输入格式,在scanf函数中,如果格式字符串中除了格式字符外还有其他字符,则在输入数据时,其他字符应原样输入。本题中格式字符中由” x=”、”,”、”y=”等字符,这些字符在输入时应原样输入。正确答案:A3.2 下面程序的执行的结果为: #include main() int x=5;int y=x,z;int x=10;z=x;printf(“%d,%d,%dn”,x,y,z);【分析】x在开始和后面的复合语句块中分别被定义,它们被赋予了不同的初值.在复合语句块中x等于5的值赋给了y,接着在重新定义x的同时将10赋给了它,所以z的值为10。最后的输出结果为x=10,y=5,z=10。3.3 下面程序的执行的结果为: #include main() int a,b;for (a=1,b=1;a=20) break;if (b%3= =1) b+=3;continue;b=-5; printf(“%dn”,a);【分析】for语句的表达式1是一个逗号表达式,这是for语句很有用的一个特性,可一次完成对多个变量的赋初值的功能,应学会使用。循环体中有一条break语句和一条 continue语句,分析程序时要注意它们的作用:当b=20时,执行break语句直接跳出循环体而执行最后一条printf语句;当b%3= =1时,b+=3后,执行continue语句跳出此次循环,进行下一次循环处理。所以最后的输出结果为8。3.4程序的功能是统计用09之间不同的三个数字构成一个三位数的个数。请填空。 #include main() int a,b,c,count;for (a=1;a9;a+)for(b=0;b=9;b+)if( 【1】 ) continue;for(c=0;c=9;c+)if ( 【2】 ) count+;printf(“%d”,count);【分析】构成三个数字不同的一个三位数的采用三重循环处理,百位上的数字的取值范围在19之间;十位数字和个位数字的取值范围是:09。不同的条件是百位、十位、个位上的数不能相等。正确答案: 【1】a= =b 【2】c!=a&c!=b 第四章 重点:(1)库函数的正确调用(头文件的正确包含);(2)函数的定义;(3)函数的声明与return语句使用;(4)函数的调用与参数传递原则(传值/传址);(5)函数的嵌套调用与递归调用;(6)变脸个存储类型及其特性。难点:函数定义、声明、调用三者之间的联系和区别;函数的调用(无值/带值);参数传递过程中传值与传址之间的区别与正确使用方法;递归函数的构建(条件及形式)和动态执行过程;不同函数中变量的适用范围;变量的生存期和作用域。递归和递推、迭代之间色区别和联系。正确包含库函数的头文件,不同的库函数可能头文件不同;例题:4.1 以下函数值的类型是 。fun( float x) float y; y=3*x-4; return y;【分析】本题考察函数返回值的应用。当使用return语句返回的值的类型与函数定义时规定的返回值类型不一致时,应意定义时的类型为准。将return语句返回时的值的类型转换为定义是规定的类型,定义函数时如果没有给出返回值的类型,则默认类型为int。所以正确答案应为int类型。4.2 对于C语言的函数,下列说法正确的是: A 函数的定义不能嵌套,但函数的调用可以嵌套。B 函数的定义可以嵌套,但函数的调用不能嵌套。C 函数的调用和定义都不能嵌套。D 函数的定义和调用都可以嵌套【分析】C语言不允许嵌套定义,但是允许嵌套调用。正确答案:【A】4.3 下面程序的执行的结果为: #include main()int x=2,p;p=f(x,+x);printf(“%d”,p);int f(int a,int b)int c;if(ab) c=1;elseif (a= =b) c=0;else c=-1;return(c);【分析】在程序中的第四行有p=f(x,+x);语句,它的作用是将一个函数调用的结果赋给变量p中。在函数体f(a,b)中,a和b所对应的实参为2和3,通过函数体内的条件语句进行判断可知执行的是c=-1这条语句,所以返回值为-1。最后的输出结果为-1。第五章 重点:(1)一维数组的定义、引用和初始化;(2)二维数组的定义、引用和初始化;(3)字符数组(字符串)的定义、引用和初始化;(4)各类数组的存储方式;(5)字符串库函数的调用和使用。难点:利用数组解决实际问题。c语言的数组必须先定义后使用,不允许动态定义;对数组的存储方式按行存储的理解;二维数组初始化的不同形式;字符数组与字符串之间的关系,字符数组与字符串初始化的区别;字符串库函数的正确使用。例题:5.1 以下正确的数组定义为: A int a13=1,2,3,4;B float b3 =1,2,3,4;C long c24=1,2,3,1,2,3,4;D double t 2=0;【分析】如果二维数组在说明的同时进行初始化,则一维长度可以省略,但不允许省略二维长度,初始化的数据个数不允许超过二维数组定义的数组元素的个数。正确答案:【D】5.2 若有以下的数组定义: char a =“12345”; char b =1,2,3,4,5; 则正确的描述是: Aa 数组和b数组的长度相等Ba 数组的长度大于b数组的长度Ca 数组的长度小于b数组的长度D两个数组中存放相同的内容【分析】可以利用字符串常量给字符数组赋初值,但是要注意:在存储一个字符串时,系统自动在其末尾加一个字符串结束标志“0”。虽然字符串的长度为5,但在内存占6个字节,因此数组a的长度应该为6,而数组b赋的初值是字符常量,在内存中分配5个字节。正确答案:【B】5.3 设有下列程序段,执行后的输出结果是: char a =“ ”An%d%c” ; printf(“%dn” ,strlen(stract(a,“good” ); A5 B6 C11 D12【分析】函数strlen的功能是求字符串参数的长度并返回,stract函数的功能是进行两个字符串的合并,即将一个字符串追加到另一个字符串的结尾处。需要注意的是:a =“ ”An%d%c”中的%d%c不是输入输出函数的格式控制符,而是字符串中的4个普通字符;另外这两个函数实现过程中是不对字符串的结束标志进行处理的,所以在函数stract(a,“good” )执行后,a的值为“ ”An%d%cgood”对该字符串求长度,结果为12。5.4 下面findmax函数将返回数组a中最大元素的下标,数组元素的个数由x传入。请填空。findmax(int a ,int x) int k,p;for (p=0,k=p;pak) 【1】 ;return (k);【分析】函数的功能是返回数组中最大的元素的下标,函数中用于返回的变量是k,所以k就是记录最大数组元素下标的变量,在程序中,应对其赋值。for循环中,当apak时,元素ap的值为本次循环中的最大值,应该记录p的值到k中。正确答案:【1】k=p第六章 重点:(1)指针的概念;(2)指针与指针变量的区别;(3)指针变量的引用与指针运算;(4)指针处理一维数组;(5)指针处理字符串;(6)指针作为参数进行函数的传址调用。难点:指针变量的概念、利用指针传址调用以及一维数组的数组名/起始地址与指针变量的关系。指针变量与内存地址的关系;指针变量与指针所指向变量的区别和联系;指针运算的不同表示方式;函数指针的处理。 例题:6.1 下面程序段运行的结果是: 。 char *s=“abcde” ;s+=1;printf(“%d” ,s);A bcdeB 字符b的地址C 字符c的地址D 字符b的ASCII码【分析】定义一个指针类型变量指向一个字符串,该变量的值即为该字符串的首地址。语句s+=1执行后地址值改变,s的值是指向字符串中字符b所在单元的地址,通过printf函数输出变量s的值,即输出的是字符b所在单元的地址。正确答案:【B】6.2 选择下面程序运行后的结果是: 。#include stdio.h.main()int x=10,*p;*p=x;printf(“%d,%d”,x+,+*p);A.11,11 B.10,11 C.10,10 D.有错误,无确定值【分析】本题出现了一种典型的致命错误。本题中定义p是一个int 型的指针变量,而后没有为指针变量p赋初值(注意不是间接引用),就直接做*p=x;这个动作,这样的p的值是不定的,所以*p的存储地址就不是一个确定的存储地址,这样*p将可能覆盖任何区域,这种错误上致命的错误,甚至可能引起整个系统的瘫痪,所以在使用指针时,一定要先定义完后,对其本身赋值,使其有一个具体的指向。在本题中,*p=x;语句之前要增加一条p=&x;语句才能保证程序正确。正确答案:【D】6.3 下面程序的输出结果 。 #include main() int a=10,20,30,40,50; int *p=&a3;printf(“%d”,*-p);【分析】本题主要考察对指针引用与自减运算以及一维数组在内存中的存放方式的理解。C语言中,自减运算(-)与取内容运算(*)的优先级为同一级别,即先执行p操作,使指针迁移一个位置,然后再取指针p当前指向位置的内容。本题中,p首先指向了a3,迁移一个为之后指向a2,取p指向的内容既a2的值,因此数出结果为30。第七章 重点:(1)结构体类型的定义;(2)结构体类型变量的定义;(3)结构体类型变量的引用方式;(4)结构体类型数组的定义、初始化、应用;(5)结构与指针。难点:结构体类型定义与结构体类型变量定义之间的区别;通过指向结构体的指针引用结构体成员的方法以及通过操作符“.”引用成员的方法;结构体变量与公用体变量在内存中不同存储方式。例题:7.1 设有以下说明语句,则下面的叙述不正确的是_struct abc int m; float n; stype;A、struct是结构体类型的关键字B、abc是用户定义的结构体类型名C、m和n都是结构体成员名D、stype是用户定义的结构体变量名【分析】本题重点考察对结构体类型的概念掌握情况。Struct时一个关键字,在定义结构体类型的同时可以定义结构体变量, stype是结构体变量名,结构体中可以包含有各种类型的成员,m和n分别是结构体成员名,在定义结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 给蚊子的一封信400字15篇范文
- 阿房宫赋文化内涵解析教案
- 时间像小马车旋律线课件
- 教师节歌颂老师的作文范文15篇
- 老师不在课室的时候350字(9篇)
- 交通出行领域智慧城市建设合作项目投资合同
- 贵州省遵义市余庆县2024-2025学年八年级下学期期末考试物理试题(含答案)
- 项羽之死:秦汉战争背景及英雄精神分析教案
- 路边见闻1500字15篇
- 合作开发研制合同书
- 一中第一学期高一年级组工作计划
- 辽宁省丹东市《教师基本素养及教育教学综合能力知识》教师教育
- 2023年全国保密知识竞赛全套复习题库及答案(共460道题)
- (推荐下载)家族性结肠息肉病教学课件
- 水生产企业(自来水公司)安全生产责任制(含安全手册)
- 《材料成型装备及自动化》课程大纲
- 临时用电JSA分析表
- 建设工程 施工档案数字化方案
- 如何提高护士对患者病情掌握的知晓率
- 议论文阅读训练 (针对初一学生)附答案
- 固定式压力容器年度检查报告
评论
0/150
提交评论