全国计算机二级C基础知识重点讲解_第1页
全国计算机二级C基础知识重点讲解_第2页
全国计算机二级C基础知识重点讲解_第3页
全国计算机二级C基础知识重点讲解_第4页
全国计算机二级C基础知识重点讲解_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级C基础知识重点讲解第一章 程序设计和C语言本章考纲:1. 程序的构成,main函数和其他函数。2. 头文件,数据说明,函数的开始和结束标志以及程序中的注释。3. 源程序的书写格式。4. C语言的风格。本章知识要点:1. 了解程序设计的基本概念2. 熟记计算机语言的分类3. 重点掌握算法的概念及特性4. 重点掌握C程序构成及书写格式5. 重点掌握上机步骤及编程环境本章考试方式:笔试(4分)本章内容:一、 程序:是指可以被计算机连续执行的一条条指令的集合,是人与机器进行对话的语言。用程序设计语言编写程序的过程称为程序设计。二、 计算机语言是人与计算机进行交流的工具。分为机器语言、汇编语言和高级语言。三、 算法:是为解决一个问题而采取的方法和步骤,可以采用伪代码、流程图和N-S图等进行算法描述。算法具有:有穷性、确定性、有效性、零个或多个输入、一个或多个输出的特性。四、 三种基本的控制结构:顺序、选择、循环结构。五、 C程序构成及书写特点C程序的基本单位是函数。一个C程序由一个或多个函数构成,有且只能有一个主函数(main)。不论main函数在整个程序中的位置如何,C程序的执行总是从main开始到main结束,各函数之间可以相互调用,但其他函数不能调用主函数。构成:编译预处理命令返回值类型 函数名称(形参类型 形参)变量定义 执行语句 /*注释*/ 执行语句书写格式:标识符区分大小写,一般变量采用小写,符号常量采用大写。C语句用分号(;)表示结束。但是在预处理命令、函数头、花括号之后不能加分号。六、 上机步骤及开发环境1. 编辑源程序,源程序以“.c”作为扩展名2. 编译,将源程序转换成目标代码,形成“.obj”的二进制文件3. 连接,将目标文件和库函数及其他文件连接,形成可执行的二进制文件“.exe”4. 运行开发环境:VC6.0考试真题:1、下列叙述中错误的是( D )2006年4月选择第44题A. C语言源程序经编译后生成后缀为.obj的目标程序B. C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令2、下列叙述中错误的是(B)2006年4月选择第45题A. 算法正确的程序最终一定会结束B. 算法正确的程序可以有零个输出C. 算法正确的程序可以有零个输入D. 算法正确的程序对于相同的输入一定有相同的结果3、下列叙述中错误的是(A)2006年9月选择第11题A. 一个C语言程序只能实现一种算法B. C程序可以由多个程序文件组成C. C程序可以由一个或多个函数组成D. 一个C函数可以单独作为一个C程序文件存在4、下列叙述中正确的是(D)2006年9月选择第12题A. 每个C程序文件中都必须要有一个main()函数B. 在C程序中main()函数的位置是固定的C. C程序中所有函数之间都可以相互调用,与函数所处位置无关D. 在C程序的函数中不能定义另一个函数5、在算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C)2007年4月选择第11题A. 正当性B. 可行性C. 确定性D. 有穷性6、下列叙述中错误的是(D)2007年4月选择第12题A. 计算机不能直接执行用C语言编写的源程序B. C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C. 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D. 后缀为.obj和.exe的二进制文件都可以直接运行7、下列叙述中错误的是(C)2007年4月选择第14题A. C语言是一种结构化程序设计语言B. 结构化程序由顺序、分支、循环3种基本结构组成C. 使用3种基本结构构成的程序只能解决简单问题D. 结构化程序设计提倡模块化的设计方法8、对于一个正常运行的C程序,下列叙述中正确的是(A)2007年4月选择第15题A. 程序的执行总是从main函数开始,在main函数结束B. 程序的执行总是从程序的第一个函数开始,在main函数结束C. 程序的执行总是从main函数开始,在程序的最后一个函数中结束D. 程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数结束9、C语言源程序名的后缀是(B)2007年9月选择第11题A. .exeB. .cC. .objD. .cp10、下列叙述中正确的是(C)2007年9月选择第14题A. C语言程序将从源程序中第一个函数开始执行B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C. C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D. Main可作为用户标识符,用以命名任意一个函数作为主函数第二章 数据类型及运算(记忆加理解)本章考纲:1. C的数据类型(基本类型、构造类型、指针类型、空类型)及定义方法。2. C运算符的种类、运算优先级和结合性。3. 不同类型数据间的转换与运算4. C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。本章知识要点:1. 重点掌握标识符的合法性判断,符号常量的使用2. 重点掌握整型变量和实型变量的分类及说明以及整型常量和实型常量的表示方法3. 熟记字符常量和字符串常量的表示,重点掌握字符运算原理4. 重点掌握数据类型的转换原理及执行过程5. 重点掌握算术运算符的分类及运算符的优先级和结合性6. 重点掌握复合的赋值表达式及表达式类型转换7. 重点掌握自增自减运算符的用法(优先级、结合性和执行过程)8. 重点掌握逗号运算符的执行过程本章考试方式:笔试(16分)+上机(5分)本章内容:一、标识符:由字母、数字和下划线组成,并且必须以字母或下划线开头。C语言中的关键字不能用作其他用途,如不能用作变量或函数名。l 以下选项中合法的标识符是(2009年3月)A) 1_1 B)1-1 C)_11 D)1_l 以下选项中不合法的标识符是(2008年4月) A)print B)FOR C)&a D)_00l 可在C程序中用做用户标识符的一组标识符是(2007年9月)A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigll 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是 (2007年4月)A)大写字母 B)连接符 C)数字字符 D)下划线l 以下不合法的用户标识符是(2006年4月)A)j2_KEY B)Double C) 4d D) _8_二、常量和变量在程序运行过程中,其值不能被改变的量称为常量。符号常量的表示:#define 标识符 常量#define PI 3.14159 /* PI 就是一个符号常量,代表3.14159 */main()float r,area; r=3; area=PI*r*r;printf(narea=%f,area);在程序运行过程中,其值可以改变的量称为变量。一个变量具有两个要素:变量名和变量值。一个变量名实质上是代表内存中的一个存储单元,该单元中的存储的内容就是变量值,通过变量名来引用变量的值。三、整型数据整型常量有3种表示方法:十进制表示法:123,-456,112L等八进制表示法:014,077十六进制表示法:0xA0F注: 只有十进制数可以是负数,其余进制只能是无符号数。无符号数可用后缀u(U)表示。整型变量分为以下3类:基本整型:用int表示,在VC6内存中占4个字节短整型:用short int或short表示,在内存中占2个字节长整型:用long int或long表示,在内存中占4个字节还可以加上unsigned,将变量定义为无符号型。四、实型数据实型常量有两种表示方式:十进制小数形式:3.1415、0.123、.145、34.、123f指数形式:6.0E3(E或e之前必需有数,之后必须是整数)实型变量分3类:单精度:float 占4个字节,有6-7位有效位数双精度:double 占8个字节,有15-16位有效位数长双精度:long double 占16个字节,有18-19位有效位数五、字符型数据(在内存中存放的是字符量的ASCII码)字符常量:一对单引号括起来的单个字符。(转义字符),a、n字符变量:类型说明符char,在内存中占一个字节。C语言允许对整型变量赋字符值,也允许对字符变量赋整型值。main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c %cn,c1,c2);printf(%d %d,c1,c2);l 以下选项中不属于字符常量的是(2008年4月) A)C B)C C)xCC0 D)072l 以下合法的字符常量的是 A)x13 B)081 C)65 D)”n”转义算一个字符l 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。下列不能将变量c中的大写字母转换为对应小写字母的语句是(2007年4月)A)c=(c-A)%26+a B)c=c+32 C)c=c-A +a D)c=(A+c)%26-al 以下选项中,值为1的表达式_。(2006年9月) A)1-0 B)1-0 C)1-0 D)0-0六、字符串常量:用一对双撇号括起来的零个或多个字符序列。如:”china”在存储字符串时,系统会在字符串的末尾自动加上一个0作为字符串的结束标志,所以“china”在内存中实质是占6个字节的空间。C语言没有字符串变量,对字符串的处理都是通过字符数组来完成。l 以下选项中,能用作数据常量的是(2009年3月)A)o115 B) 0118 C)1.5e1.5 D) 115LA如果是0115就是一个合法的8进制常量,不过以o开头就成了变量名B以0开头是八进制,不过八进制只能是07,于是错误C的尾数是1.5正确,但是阶码为1.5错误,只能为整数D的后缀L代表长型,115L则表示长整型,因此正确l 以下选项中不能作为C 语言合法常量的是( )。A)cd B)0.1e+6 C)a D)011l 以下不合法的数值常量是A)011 B)lel C) 8.0 E0.5 D) 0xabcdl C 源程序中不能表示的数制是()。(2008年9月)A) 二进制 B)八进制 C)十进制 D)十六进制%d十进制,%o八进制,%x十六进制l 以下关于long、int和short类型数据占用内存大小的叙述中正确的是(2007年9月)A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定l 以下选项中,合法的一组C语言数值常量是(2007年9月)A)028 B)12. C).177 D)0x8A. 5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e5A中028是八进制,不该出现8,C中4e1.5错了,e后面不该是小数,D中10,000错误,没有这种写法。七、变量的定义C语言规定,变量在使用时必须先定义后使用。变量定义形式: 数据类型 变量名1,变量名2,.; 如:int sum,a; float score,b; char c; 变量在定义时可以初始化,如: int sum=0,a=1; float score=0.0,b=1.5; char c=a; 此赋初值错误:int sum=a=1;赋初值只能对单个变量进行。l 以下选项中正确的定义语句是( )。(2008年9月)A) double a; b; B)double a=b=7; C)double a=7, b=7; D)double, a, b;B中b应先定义再使用l 以下定义语句中正确的是(2008年4月) A)int a=b=0 ; B)char A=65+1,b=b; C)float a=1,*b=&a,*c=&b ; D)double a=0.0;b=1.1;A 错在b未定义 应改为 int a,b; a=b=0;B 正确C 错,错在无法初始化convert from float * to float *D 错 应该为double a=0.0,b=1.1;把分号改为逗号l 下列定义变量的语句中错误的是_。(2006年9月) A)int _int; B)double int_; C)char For; D)float US$八、不同数据类型之间的转换doublefloatlongunsignedintchar,short一个运算符两边的运算数类型不一致时,需转换成相同类型,即较低类型转换成教高类型(此过程编译系统自动完成)。 类型转换图:可以使用强制类型转换,格式:(类型说明符)(表达式)如:(double)a; (int)(x+y); (int)x+y;main()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d,x,i);结果:x=3.,i=3main()float x,y;int i,j;x=3.6;y=3.8;i=(int)x+(int)y;j=(int)(x+y);printf(i=%f,j=%d,i,j);九、算术运算符加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(+)、自减(-)注:当两个整数进行除法运算时,得到的结果仍然为整数,如5/2=2,要想得到小数,必须将分子或分母中的任意一个转换成浮点数,如1.0/2=0.5。求余运算要求两侧的操作数均为整型。运算符都有优先级和结合性,见书后附录。除单目运算、赋值运算符和条件运算符是右结合性外,其他运算都是左结合性。l 表达式(int)(double)(5/2)+2.5)的值是【6】(2009年3月)答案:4l 以下不能正确表示代数式2ab/cd(2008年9月)的C 语言表达式是( )。A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*dl 以下选项中,当x为大于1的奇数时,值为0的表达式 A)x%2= =1 B)x/2 C)x%2!=0 D)x%2= =0l 表达式3.6-5/2+1.2+5%2的值是(2006年4月)A)4.3 B) 4.8 C) 3.3 D) 3.8十、赋值运算符合表达式C语言中的赋值运算符是“=”,其功能是将右侧表达式的值赋给左侧的变量如:a=5;b=c=8;复合的赋值表达式:变量operater=表达式,operater代表运算符。如:a+=5,等价于a=a+5;a+=x+y,等价于a=a+(x+y)l 设变量已正确定义并赋值,以下正确的表达式是(2008年4月) A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,+y D)x=25%5.0l 若变量均已正确定义并赋值,以下合法的C语言赋值语句是(2007年9月)A)x=y=5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;l 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是_。(2006年9月) A)+x,y=x- B)x+1=y C)x=x+10=x+y D)double(x)/10l 设变量a 和b 已正确定义并赋初值。请写出与a-=a+b 等价的赋值表达式 【6】 。(2008年9月)答案:a=-b;十一、自增和自减运算+和-运算,其功能是使变量的值自动加和减1。如:a+,等价于a=a+1自增和自减有两种用法:前置运算:如+a,其运算规则是先使变量的值增(减)1,然后再以变化后的表达式值参与其他运算。后置运算:如a+,其运算规则是变量先参与其他运算,然后再使变量的值增(减)1。l 设有定义:int x=2;,以下表达式中,值不为6的是(2009年3月)A) x*=x+1 B) x+,2*x C)x*=(1+x) D)2*x,x+=2l 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是 (2007年4月)A) k+ B)k+=1 C)+k D)k+1K+意味着0赋予该表达式然后K加1。像printf(%d,K+)它要输出的是后十二、逗号表达式表达式1,表达式2,表达式3,.,表达式n其计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。#include void main()int a,b; a=1; b=(a+,a+3); printf(a=%dn,a); printf(b=%dn,b);l 有以下程序(2006年9月) main() int x,y,z; x=y=1; z=x+,y+,+y; printf(%d,%d,%dn,x,y,z); 程序运行后的输出结果是_。 A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1=(右结合)的优先级比,(左结合)高1级优先级 左结合 () 圆括号 下标运算符 - 指向结构体成员运算符 . 结构体成员运算符2级优先级 右结合 ! 逻辑非运算符 按位取反运算符 + 自增运算符 - 自减运算符 - 负号运算符 (类型) 类型转换运算符 * 指针运算符 & 地址与运算符 sizeof 长度运算符3级优先级 左结合 * 乘法运算符 / 除法运算符 % 取余运算符4级优先级 左结合 + 加法运算符 ? 减法运算符5级优先级 左结合 右移运算符6级优先级 左结合 、= 关系运算符7级优先级 左结合 = 等于运算符 != 不等于运算符8级优先级 左结合 & 按位与运算符9级优先级 左结合 按位异或运算符10级优先级 左结合 | 按位或运算符11级优先级 左结合 & 逻辑与运算符12级优先级 左结合13级优先级 右结合 ? : 条件运算符14级优先级 右结合 = += -= *= /= %= = = &= = |= 全为赋值运算符15级优先级 左结合 , 逗号运算符 l 设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为 答案:3l 以下程序输出结果是 (2007年4月)Main() int a=10; a=(3*5,a+4); printf(“a=%dn”,a);答案:14第三章 基本语句本章考纲:1. 表达式语句、空语句、复合语句。2. 输入输出函数的调用,正确输入数据并正确设计输出格式。本章知识要点:1. 重点掌握各种语句的使用。2. 熟记scanf和printf函数的格式3. 重点理解scanf函数中地址列表的含义,重点掌握格式控制串中不同字符的作用。4. 点理解printf函数中格式控制串的含义,重点掌握格式控制串中不同字符的作用。5. 重点理解getchar和putchar函数的作用。本章考试方式:笔试(7分)+上机(15分)本章内容:一、C语句分类C语句可以分为5类:1. 控制语句:用来实现对程序流程的选择、循环、转向和返回等进行控制。如:if等2. 函数调用语句,如:printf(this is a c program”);3. 表达式语句:在表达式的末尾加上分号构成的语句。如:a=a+4; 4. 空语句:单独的一个分号“;”构成的语句。空语句的执行不产生任何动作,有时用来作流程的转向点,也可以用来作循环语句的循环体。5. 复合语句:由一对花括号“”把一些语句括起来,在语法上作为一个整体对待,相当于一条语句。如:z=x+y;z+;l 若函数中有定义语句:int k;,则(2009年3月)A)系统将自动给k赋初值0B)这时k中值无定义C)系统将自动给k赋初值-1D)这时k中无任何值l 以下能正确定义且赋初值的语句是()。(2005年9月)A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;二、scanf函数用来从标准输入设备(键盘)输入数据到计算中。一般格式: scanf(格式控制串,地址表列)如:scanf(“%d%f%c”,&a,&b,&c);“格式控制串”用来指定每个输入项的输入格式。通常由若干个格式说明组成,格式说明由 “%”开头,后跟格式字符,如“%d”,“%c”等。“地址表列”需要读入的是所有变量的地址或字符串的首地址。使用说明:1. 除了格式说明符和附加格式字符外,如果还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符。形式1:scanf(“%d,%d”,&a,&b);正确的输入方式:12,35形式2:scanf(“a=%d,b=%d”,&a,&b);正确的输入方式:a=12,b=352. 可以指定输入数据所占的列数,系统自动按指定的数据截取所需的数据。如:scanf(“%4d%4d”,&a,&b);当输入时,系统自动将1234赋给a,将5678赋给b。如:scanf(“%4c”,&ch);如果从键盘输入xyz3个字符,由于ch只能接收一个字符,系统自动将第一个字符x赋给ch。3. 输入的数值数据之间用间隔符(空格、制表符或回车符)隔开,间隔符数量不限,如果在格式说明中认为制定宽度时,也可以使用此方式。4. 在%后有一个“*”附加格式字符,表示跳过它指定的列数。5. 地址表应该是变量的地址,因此,应该在变量名前加上取地址的运算符“&”6. 在用“%c”格式输入字符时,空格和转义字符都将作为有效字符进行输入。如:scanf(“%c%c%c”,&c1,&c2,&c3);如果输入 a b 后按下回车键,则c1、c2、c3的值分别为a、空格、b7. 键盘输入数据的个数应该与格式要求的个数相同,少于要求个数时,函数等待输入,直到满足要求或遇到非法字符为止;多于要求个数时,多余的数据将留在缓冲区作为下一次输入操作的输入数据。8. 在输入数据时,遇到以下情况时该输入结束l 遇到空格,或按回车键或按跳格(TAB)键l 按指定的宽度结束l 遇到非法输入l 若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是(2009年3月)?A)scanf(“%f%f”,x,y);B) scanf(“%f%f”,&x,&y);C) scanf(“%lf%le”,px,py);D) scanf(“%lf%lf”,x,y);%f用来输入float类型变量%lf用来输入double类型便类%le表示用科学计数法输入doublel 程序段:int x=12;double y=3.; printf(“%d%8.6f”,x,y);的输出结果是(2009年3月)A)123.B)12 3.C)12,3.D)123.8.6f输出是浮点数,域宽为8,保留六位小数l 有以下程序(2009年3月)#includemain() int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,&a1,c1,a2,c2);若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下_代表空格,代表回车)A)12a34bB)12_a34_bC)12,a,34,bD)12_a34_bl 若变量已正确定义为int 型,要通过语句scanf(%d, %d, %d, &a, &b, &c);给a 赋值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是( 代表一个空格符)( )。(2008年9月)A) 1,2,3 B)1 2 3C)1, 2, 3 D)1,2,3l 若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf(%d,a,b,c); B)scanf(%d%d%d,a,b,c);C)scanf(%d,p); D)scanf(%d,&p);l 有以下程序段(2007年9月)int j; float y; char name50;scanf(%2d%f%s,&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D).0l 设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式正确的是(注:代表空格字符)(2007年4月) A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车20Y回车 20Y回车各个输入之间可以是空格、回车、制表符。空格也是字符l 设有定义:int a; float b;执行scanf(%2d%f,&a,&b);语句时,若从键盘输入876 543.0,a和b的值分别是_。(2006年9月) A)876和543. B)87和6. C)87和543. D)76和543.l 执行以下程序时输入,则输出结果是_. (2007年9月)#include main() int a=1,b;scanf(%2d%2d,&a,&b);printf(%d %dn,a,b);答案:12 34三、printf函数用于按指定得格式在屏幕上输出若干任意类型的数据。一般格式: printf(格式控制串,输出表列);如:printf(“a=%d,b=%dn”,a,b);“格式控制串”用来指定每个输出项的输出格式。组成格式控制串的字符通常由格式说明、转移字符和按原样输出的字符3部分组成。l 格式说明由“%”开头,后跟格式字符(p46页),用来指定数据的输出格式。输出格式中的格式说明的个数和输出表列中的数据个数应一样。l 转义字符是以“”开始的字符,用来实现换行、跨越指标为或输出单引号、双引号等。l 除了以上两类字符之外,在格式串中的其他字符将按原样输出。 输出表列是要输出的各项数据,可以是常量、变量、函数或表达式,其具体类型有格式控制串中的格式字符决定。使用说明:1. 掌握格式字符和附加格式字符的作用。2. 在格式控制串中,格式说明和输出项在类型上必须一一对应。并且格式说明的个数和输出项的个数应该相同,如果不同,系统则作以下处理:l 如果格式说明的个数小于输出项数,多余的数据项不显示l 如果格式说明的个数多于输出项数,对多余的格式将输出不定值或0值l 有以下程序段(2008年4月) char ch; int k; ch=a; k=12; printf(%c,%d,ch,ch,k); printf(k=%dn,k); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12l 有以下程序,其中%u表示按无符号整数输出(2007年4月)Main()unsigned int x=0xFFFF;/* x的初值为十六进制数 */Printf(“%un”,x);程序运行后的输出结果是 A)-1 B)65535 C)32767 D)0XFFFFl 有以下程序(2006年9月) main() int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */ printf(a+b=%dn,a+b); /* 输出计算结果 */ 程序运行后输出结果是_。A) a+b=0 B)a+b=30 C)30 D)出错注意换行符的位置l 若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【7】,x/y);补充完整,使其输出的计算结果形式为:x/y=11(2009年3月)答案:”x/y=%d”l 若整型变量a 和b 中的值分别为7 和9,要求按以下格式输出a 和b 的值:(2008年9月)a=7b=9请完成输出语句:printf ( 【7】 ,a,b);答案:a=%dnb=%dnl 以下程序运行后的输出结果是 【7】 。main() int m=011,n=11; printf(%d %dn,+m,n+);答案:10 11l 若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句_6_。(2006年4月)答案:printf(“a=%d,b=%d”,a,b);四、getchar函数其功能是从键盘上输入一个字符,格式为: getchar();函数值就是从输入设备得到的一个字符。如:a=getchar();说明:1. 输入回车符时才结束,回车前的所有字符都会逐个显示在屏幕上。2. 此函数将输入的第一个字符作为函数的返回值。通常将寒暑的返回值赋给一个字符型变量或整型数据。五、putchar函数作用是向输出设备上输出一个字符,格式为: putchar(ch);其中ch可以使常量、变量、转义字符或表达式等,其数据类型可以是字符型或整型。l 当用户要求输入的字符串中含有空格时,应使用的输入函数是(2007年9月)A)scanf() B)getchar() C)gets() D)getc()最重要的区别是gets读一行,getchar()读一个字符。先看原型:char * gets(char * ptr);int getchar(void);作用是:gets()用于从标准输入流stdin读入一个整行(以n或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的n从流中取出,但不写入数组。gets()不检查被写入的数组大小。getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。如果读到文件结尾,则返回EOF。注意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。使用时也应该注意这一点。l 已知字符A的ASCII码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 #include “stdio.h” Main() char a,b;a=getchar();Scanf(“%d”,&b);a=a-A+0;b=b*2;printf(“%c %cn”,a,b);答案:1 Ba=a-A+0=1+0=1b=b*2=33*2=66输出是%c 字符型的格式 所以就应该是1 B第四章 选择结构程序设计本章考纲:1. 用if语句实现选择结构。2. 用switch语句实现多分支结构。3. 选择结构的嵌套。本章知识要点:1. 熟记关系、逻辑运算符的种类,重点记忆其运算符的优先级。2. 熟记条件运算符的格式,重点掌握条件表达式的执行原理。3. 熟记if语句的基本形式,重点掌握if语句的执行原理。4. 熟记switch语句的基本形式,重点掌握if语句的执行原理。本章考试方式:笔试(12分)+上机(50分)本章内容:一、关系运算符和表达式关系运算符就是将两个值进行比较的运算符。C提供6种:小于()、小于等于(=)、等于(=)、不等于(!=)前四种运算符的优先级相同,后两者的优先级相同,且前四种的优先级高于后2种;关系运算符都是左结合的。用关系运算符将两个表达式联结起来的式子称为关系表达式。基本形式为; 表达式1 关系运算符 表达式2说明:1. 表达式1和表达式2可以是常量、变量、算术表达式、关系表达式、逻辑表达式、赋值表达式及字符表达式等。2. 关系运算的结果是一个逻辑值,当关系成立,值为真,否则为假。由于C语言没有逻辑型数据,所以用1代表真,用0代表假。如:53 值 1 5=3 值为 0 若a=2,b=1,c=0 则:(ab)=c 值 0 d=ab值 1 f=abc值 1二、逻辑运算符和逻辑表达式C提供3种逻辑运算符:与(&)、或(|)、非(!)说明:1. 优先级为:非与.或,与和或运算符具有左结合性,非运算符具有右结合性。2. 逻辑运算的值也只有真和假两个,分别用1和0表示。真值表见辅导书p59页。由逻辑运算符和运算对象所组成的表达式称为逻辑表达式,一般形式为: 表达式1 逻辑运算符 表达式2说明:1. 逻辑运算的对象可以是C语言中任意合法的表达式。2. 逻辑表达式的运算结果为逻辑量真或假。在C语言中,逻辑假用数值0表示,逻辑真用数值1表示。但是当判断一个量是否为真时,以非0代表真,以0代表假。3. 在逻辑运算过程中,并不是每一个表达式都会被执行,当执行与运算时,如果第一个运算量为假,那么后一个运算量将不被执行,因为与运算时,有一个操作数为0结果就会为0;当执行或运算时,如果第一个运算量为真,那么后一个运算量将不被执行,因为或运算时,有一个操作数为1结果就会为1。如a=1,b=2,c=3,d=4,m=1,n=1 (m=ab)&(n=cd)运算后,m=0,n=1l 执行以下程序段后,w 的值为( )。(2008年9月)int w=A, x=14, y=15;w=(x | y)&(w=2&c=2&c=2&c=A&kk=Akk=a&(kk+32)=z D)isalpha(kk)&(kkc,a+cb,b+ca。 请填空。(2006年4月)main()float a,b,c;scanf(“%f%f%f”,&a,&b,&c);if(_7_)printf(“YESn”);/*a,b,c能构成三角形*/e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论