《2022年全国计算机二级C基础知识重点讲解 .pdf》由会员分享,可在线阅读,更多相关《2022年全国计算机二级C基础知识重点讲解 .pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 / 29 全国计算机等级考试二级C基础知识重点讲解第一章 程序设计和 C语言本章考纲 :1.程序的构成, main 函数和其他函数。2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。3.源程序的书写格式。4.C语言的风格。本章知识要点 :1.了解程序设计的基本概念2.熟记计算机语言的分类3.重点掌握算法的概念及特性4.重点掌握 C程序构成及书写格式5.重点掌握上机步骤及编程环境本章考试方式 :笔试( 4 分)本章内容 :一、程序:是指可以被计算机连续执行的一条条指令的集合,是人与机器进行对话的语言。用程序设计语言编写程序的过程称为程序设计。二、计算机语言是人与计算机进行交流的工具
2、。分为机器语言、汇编语言和高级语言。三、算法:是为解决一个问题而采取的方法和步骤,可以采用伪代码、流程图和 N-S图等进行算法描述。算法具有:有穷性、确定性、有效性、零个或多个输入、一个或多个输出的特性。四、三种基本的控制结构:顺序、选择、循环结构。五、C程序构成及书写特点C程序的基本单位是函数 。一个 C程序由一个或多个函数构成,有且只能有一个主函数( main) 。不论 main 函数在整个程序中的位置如何,C程序的执行总是从 main 开始到 main 结束,各函数之间可以相互调用, 但其他函数不能调用主函数。构成:名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
3、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 2 / 29 编译预处理命令返回值类型函数名称(形参类型形参) 变量定义执行语句 /*注释 */ 执行语句 书写格式:标识符 区分大小写,一般变量采用小写,符号常量采用大写。C 语句用分号(;)表示结束。但是在预处理命令、函数头、花括号之后不能加分号。六、上机步骤及开发环境1. 编辑源程序,源程序以“.c ”作为扩展名2. 编译,将源程序转换成目标代码,形成“.obj ”的二进制文件3. 连接,将目标文件和库函数及其他文件连接,形成可执行的二进制文件
4、“.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.算法正确的程序对
5、于相同的输入一定有相同的结果3、下列叙述中错误的是( A) 2006年 9月选择第 11 题A.一个 C语言程序只能实现一种算法B.C程序可以由多个程序文件组成C.C程序可以由一个或多个函数组成D.一个 C函数可以单独作为一个C程序文件存在名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 3 / 29 4、下列叙述中正确的是( D) 2006年 9月选择第 12 题A.每个 C程序文件中都必须要有一个main()函数B.在 C程
6、序中 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、接运行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语言源程
8、序名的后缀是(B) 2007 年 9 月选择第 11 题A.exe B.c C.obj D.cp 10、下列叙述中正确的是( C) 2007年 9 月选择第 14题A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 4 / 29 C.C语言规定必须用 main 作为主函数名,程序将从此开始执行,在此结束D.Main 可作
9、为用户标识符,用以命名任意一个函数作为主函数第二章数据类型及运算(记忆加理解)本章考纲 :1.C的数据类型(基本类型、构造类型、指针类型、空类型)及定义方法。2.C运算符的种类、运算优先级和结合性。3.不同类型数据间的转换与运算4.C 表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。本章知识要点 :1.重点掌握标识符的合法性判断,符号常量的使用2.重点掌握整型变量和实型变量的分类及说明以及整型常量和实型常量的表示方法3.熟记字符常量和字符串常量的表示,重点掌握字符运算原理4.重点掌握数据类型的转换原理及执行过程5.重点掌握算术运算符的分类及运算符
10、的优先级和结合性6.重点掌握复合的赋值表达式及表达式类型转换7.重点掌握自增自减运算符的用法(优先级、结合性和执行过程)8.重点掌握逗号运算符的执行过程本章考试方式 :笔试( 16 分)+上机( 5 分)本章内容 :一、标识符 :由字母、数字和下划线组成,并且必须以字母或下划线开头。C语言中的关键字不能用作其他用途,如不能用作变量或函数名。以下选项中合法的标识符是(2009 年 3 月)A) 1_1 B )1-1 C)_11 D)1_ 以下选项中不合法的标识符是(2008 年 4 月)A)print B)FOR C)&a D)_00 可在 C程序中用做用户标识符的一组标识符是(2007年 9
11、月)A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl 按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是(2007年 4 月)A)大写字母B)连接符C)数字字符D)下划线以下不合法的用户标识符是(2006年4月)A)j2_KEY B)Double C) 4d D) _8_名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 5 / 29 二、常量和变量在程序运行过程中,其值
12、不能被改变的量称为常量。符号常量的表示: #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 十六进制表示法
13、: 0 xA0F 注: 只有十进制数可以是负数,其余进制只能是无符号数。无符号数可用后缀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
14、 个字节,有 6-7 位有效位数双精度: double 占 8 个字节,有 15-16 位有效位数长双精度: long double 占 16 个字节,有 18-19 位有效位数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 6 / 29 五、字符型数据 (在内存中存放的是字符量的ASCII 码) 字符常量:一对单引号括起来的单个字符。(转义字符),a、 n 字符变量: 类型说明符 char,在内存中占一个字节。 C语言允许对
15、整型变量赋字符值,也允许对字符变量赋整型值。main() char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c %cn,c1,c2);printf(%d %d,c1,c2);以下选项中不属于字符常量的是(2008 年 4 月)A)C B)C C)xCC0 D)072 以下合法的字符常量的是A)x13 B) 081 C) 65 D) ”n”转义算一个字符已知大写字母 A 的 ASCII 码是 65,小写字母 a 的 ASCII 码是 97。下列不能将变量 c 中的大写字母转换为对应小写字母的语句是(2007 年 4 月)A)c=(c- A )%26+
16、a B)c=c+32 C)c=c- A + aD)c=( A +c)%26- a以下选项中,值为1 的表达式 _ 。(2006 年 9 月)A)1-0B)1- 0 C)1-0 D) 0 -0六、字符串常量 :用一对双撇号括起来的零个或多个字符序列。如:”china ”在存储字符串时,系统会在字符串的末尾自动加上一个0 作为字符串的结束标志,所以“ china ”在内存中实质是占6 个字节的空间。 C 语言没有字符串变量,对字符串的处理都是通过字符数组来完成。以下选项中,能用作数据常量的是(2009 年 3 月)A)o115 B) 0118 C )1.5e1.5 D) 115L A 如果是 01
17、15 就是一个合法的 8 进制常量,不过以o 开头就成了变量名B 以 0 开头是八进制,不过八进制只能是07,于是错误C 的尾数是 1.5 正确,但是阶码为 1.5 错误,只能为整数D 的后缀 L 代表长型, 115L 则表示长整型,因此正确以下选项中不能作为C 语言合法常量的是() 。A)cd B)0.1e+6 C)a D)011 以下不合法的数值常量是A)011 B )lel C) 8.0 E0.5 D) 0 xabcd 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共
18、 29 页 - - - - - - - - - 7 / 29 C 源程序中不能表示的数制是() 。(2008年9月)A) 二进制 B )八进制 C)十进制 D)十六进制%d 十进制 ,%o 八进制 ,%x 十六进制以下关于 long 、int和 short类型数据占用内存大小的叙述中正确的是(2007年9月)A) 均占4个字节 B )根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由 C语言编译系统决定以下选项中,合法的一组C 语言数值常量是( 2007年9月)A)028 B)12. C).177 D)0 x8A . 5e-3 0Xa23 4e1.5 10,000 -0 xf 4.5
19、e0 0abc 3.e5 A 中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;赋初值只能对单个变量进行。以下选项中正确的定义语句是() 。(2008年9月)A) double a; b;
20、B)double a=b=7; C)double a=7, b=7; D)double, a, b; B 中 b 应先定义再使用以下定义语句中正确的是(2008 年 4 月)A)int a=b=0 ; B)char A=65+1,b=b; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 8 / 29 C)float a=1,*b=&a,*c=&b ; D)double a=0.0;b=1.1; A 错在 b 未定义 应改为 i
21、nt a,b; a=b=0 ;B 正确C 错,错在无法初始化convert from float * to float * D 错 应该为 double a=0.0,b=1.1; 把分号改为逗号下列定义变量的语句中错误的是_ 。(2006 年 9 月)A)int _int; B )double int_; C)char For; D)float US$八、不同数据类型之间的转换一个运算符两边的运算数类型不一致时,需转换成相同类型, 即较低类型转换成教高类型(此过程编译系统自动完成) 。类型转换图:可以使用强制类型转换,格式: (类型说明符)(表达式)如: (double )a;(int ) (
22、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.600000,i=3 main() 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);九、算术运算符double float long unsigned int char,short 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
23、- - - - - 第 8 页,共 29 页 - - - - - - - - - 9 / 29 加(+) 、减( - ) 、乘(*) 、除( / ) 、求余( % ) 、自增( +) 、自减( - )注:当两个整数进行除法运算时,得到的结果仍然为整数,如5/2=2,要想得到小数,必须将分子或分母中的任意一个转换成浮点数,如1.0/2=0.5 。求余运算要求两侧的操作数均为整型。运算符都有优先级和结合性, 见书后附录。 除单目运算、 赋值运算符和条件运算符是右结合性外,其他运算都是左结合性。表达式( int )( double )(5/2 )+2.5)的值是【 6】(2009 年 3 月)答案:
24、 4 以下不能正确表示代数式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*d 以下选项中,当 x 为大于 1 的奇数时,值为0 的表达式A)x%2= =1 B)x/2 C)x%2!=0 D)x%2= =0 表达式 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= 表达式, op
25、erater代表运算符。如:a+=5,等价于 a=a+5;a+=x+y,等价于 a=a+(x+y)设变量已正确定义并赋值,以下正确的表达式是(2008 年 4 月)A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,+y D)x=25%5.0若变量均已正确定义并赋值,以下合法的C语言赋值语句是(2007 年 9 月)A)x=y=5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;若变量 x、y 已正确定义并赋值,以下符合C 语言语法的表达式是_ 。(2006年 9 月)A)+x,y=x- B )x+1=y C)x=x+10=x+y D) double(x)/1
26、0 设变量 a 和 b 已正确定义并赋初值。请写出与a-=a+b 等价的赋值表达式【6】 。(2008 年 9 月)答案 :a=-b;十一、自增和自减运算+和- 运算,其功能是使变量的值自动加和减1。如:a+,等价于 a=a+1 自增和自减有两种用法:前置运算:如 +a,其运算规则是先使变量的值增(减)1,然后再以变化后的表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 10 / 29 达式值参与其他运算。后置运算:如 a+,
27、 其运算规则是变量先参与其他运算, 然后再使变量的值增 (减)1。设有定义: int x=2;,以下表达式中,值不为6 的是( 2009 年 3 月)A) x*=x+1 B ) x+,2*x C)x*=(1+x)D)2*x,x+=2 设有定义: int k=0;, 以下选项的四个表达式中与其他三个表达式的值不相同的是 (2007 年 4 月)A)k+ B)k+=1 C)+k D)k+1 K+意味着 0 赋予该表达式然后K 加 1。 像 printf(%d,K+) 它要输出的是后十二、逗号表达式表达式 1,表达式 2 ,表达式 3,. ,表达式 n 其计算过程是从左到右逐个求每个表达式的值,取最
28、右边一个表达式的值作为该逗号表达式的值。#include void main() int a,b; a=1; b=(a+,a+3); printf(a=%dn,a); printf(b=%dn,b); 有以下程序( 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 级优先级右结
29、合! 逻辑非运算符 按位取反运算符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 11 / 29 + 自增运算符- 自减运算符- 负号运算符(类型) 类型转换运算符* 指针运算符& 地址与运算符sizeof 长度运算符3 级优先级左结合* 乘法运算符/ 除法运算符% 取余运算符4 级优先级左结合+ 加法运算符? 减法运算符5 级优先级左结合 右移运算符6 级优先级左结合、= 关系运算符7 级优先级左结合= 等于运算符!= 不
30、等于运算符8 级优先级左结合& 按位与运算符9 级优先级左结合 按位异或运算符10 级优先级左结合| 按位或运算符11 级优先级左结合& 逻辑与运算符12 级优先级左结合13 级优先级右结合? : 条件运算符名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 12 / 29 14 级优先级右结合= += -= *= /= %= = = &= = |= 全为赋值运算符15 级优先级左结合, 逗号运算符设变量已正确定义为整型,则表达
31、式n=i=2,+i,i+ 的值为 答案: 3 以下程序输出结果是(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.重点理解 get
32、char 和 putchar 函数的作用。本章考试方式:笔试( 7 分)+上机( 15 分)本章内容:一、C语句分类C语句可以分为 5类:1.控制语句:用来实现对程序流程的选择、 循环、转向和返回等进行控制。 如:if等2.函数调用语句,如: printf(this is a c program”); 3.表达式语句:在表达式的末尾加上分号构成的语句。如:a=a+4; 4.空语句:单独的一个分号“; ”构成的语句。空语句的执行不产生任何动作,有时用来作流程的转向点,也可以用来作循环语句的循环体。5.复合语句:由一对花括号“ ”把一些语句括起来,在语法上作为一个整体名师资料总结 - - -精品资
33、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 13 / 29 对待,相当于一条语句。如:z=x+y;z+; 若函数中有定义语句: int k;,则( 2009 年 3 月)A)系统将自动给 k 赋初值 0 B)这时 k 中值无定义C)系统将自动给 k 赋初值 -1 D)这时 k 中无任何值以下能正确定义且赋初值的语句是() 。 (2005 年 9 月)A)int n1=n2=10;B)char c=32; C)float f=f+1.1; D)doub
34、le x=12.3E2.5;二、scanf 函数用来从标准输入设备(键盘)输入数据到计算中。一般格式:scanf( 格式控制串,地址表列 ) 如:scanf( “%d%f%c ”,&a,&b,&c); “格式控制串”用来指定每个输入项的输入格式。通常由若干个格式说明组成,格式说明由“% ”开头,后跟格式字符 ,如“ %d ” , “%c ”等。“地址表列”需要读入的是所有变量的地址或字符串的首地址。使用说明:1. 除了格式说明符和附加格式字符外,如果还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符。形式 1:scanf( “%d,%d ”,&a,&b); 正确的输入方式: 12
35、,35 形式 2:scanf( “a=%d,b=%d ”,&a,&b); 正确的输入方式: a=12,b=35 2. 可以指定输入数据所占的列数,系统自动按指定的数据截取所需的数据。如:scanf( “%4d%4d ”,&a,&b); 当输入 12345678时,系统自动将 1234 赋给 a,将 5678赋给 b。如:scanf( “%4c ”,&ch); 如果从键盘输入 xyz3 个字符,由于 ch 只能接收一个字符,系统自动将第一个字符x赋给 ch。3. 输入的数值数据之间用间隔符(空格、制表符或回车符)隔开,间隔符数量不限,如果在格式说明中认为制定宽度时,也可以使用此方式。4. 在%
36、后有一个“ *”附加格式字符,表示跳过它指定的列数。5. 地址表应该是变量的地址,因此,应该在变量名前加上取地址的运算符“&”6. 在用“ %c ”格式输入字符时,空格和转义字符都将作为有效字符进行输入。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 14 / 29 如:scanf( “%c%c%c”,&c1,&c2,&c3); 如果输入 a b 后按下回车键,则c1、c2、c3 的值分别为 a、空格、 b 7. 键盘输入数
37、据的个数应该与格式要求的个数相同,少于要求个数时,函数等待输入,直到满足要求或遇到非法字符为止;多于要求个数时,多余的数据将留在缓冲区作为下一次输入操作的输入数据。8. 在输入数据时,遇到以下情况时该输入结束遇到空格,或按回车键或按跳格(TAB )键按指定的宽度结束遇到非法输入若有定义语句: 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 (
38、“%lf%lf ”,x,y ) ; %f 用来输入 float 类型变量%lf 用来输入 double 类型便类%le 表示用科学计数法输入double 程序段: int x=12; double y=3.141593; printf(“%d%8.6f ”,x,y );的输出结果是(2009年 3 月)A)123.141593 B)12 3.141593 C)12,3.141593 D)123.141593 8.6f 输出是浮点数,域宽为8,保留六位小数有以下程序( 2009年 3 月)#include main() int a1,a2;char c1,c2; scanf (“%d%c%d%c
39、”,&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)12a34b B)12_a34_b C)12,a,34,b 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 29 页 - - - - - - - -
40、- 15 / 29 D)12_a34_b 若变量已正确定义为int 型,要通过语句scanf(%d, %d, %d, &a, &b, &c) ;给 a 赋值1、给 b 赋值 2、给 c 赋值 3,以下输入形式中错误的是(代表一个空格符)( ) 。 (2008年9月)A) 1,2,3 B)1 2 3 C)1, 2, 3 D )1,2,3 若在定义语句: 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);有以下程序段( 2
41、007年 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)566777.0设变量均已正确定义, 若要通过 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)
42、10X回车20Y回车20Y回车各个输入之间可以是空格、回车、制表符。空格也是字符设有定义:int a; float b;执行 scanf(%2d%f,&a,&b);语句时,若从键盘输入 876 543.0,a 和 b 的值分别是 _ 。(2006 年 9 月)A)876 和 543.000000 B)87 和 6.000000 C)87 和 543.000000 D )76 和 543.000000 执行以下程序时输入1234567,则输出结果是 _.(2007年 9 月)#include main() int a=1,b; scanf(%2d%2d,&a,&b);printf(%d %dn,
43、a,b); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 29 页 - - - - - - - - - 16 / 29 答案: 12 34三、printf函数用于按指定得格式在屏幕上输出若干任意类型的数据。一般格式:printf(格式控制串,输出表列 ) ;如:printf(“a=%d,b=%dn ”,a,b); “格式控制串” 用来指定每个输出项的输出格式。组成格式控制串的字符通常由格式说明、转移字符和按原样输出的字符3 部分组成。格式说明由“ % ”开头,后跟格式
44、字符( p46 页) ,用来指定数据的输出格式。输出格式中的格式说明的个数和输出表列中的数据个数应一样。转义字符是以“”开始的字符,用来实现换行、跨越指标为或输出单引号、双引号等。除了以上两类字符之外,在格式串中的其他字符将按原样输出。输出表列是要输出的各项数据,可以是常量、变量、函数或表达式,其具体类型有格式控制串中的格式字符决定。使用说明:1.掌握格式字符和附加格式字符的作用。2.在格式控制串中,格式说明和输出项在类型上必须一一对应。并且格式说明的个数和输出项的个数应该相同,如果不同,系统则作以下处理:如果格式说明的个数小于输出项数,多余的数据项不显示如果格式说明的个数多于输出项数,对多余
45、的格式将输出不定值或0 值有以下程序段( 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=12有以下程序,其中 %u 表示按无符号整数输出(2007 年 4 月)Main() unsigned int x=0 xFFFF;/* x的初值为十六进制数*/ Printf(
46、“%un ”,x); 程序运行后的输出结果是A)-1 B)65535 C)32767 D)0XFFFF 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 29 页 - - - - - - - - - 17 / 29 有以下程序( 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=3
47、0 C)30 D)出错注意换行符的位置若变量 x、y 已定义为 int类型且 x 的值为 99,y 的值为 9,请将输出语句printf (【7】,x/y ); 补充完整,使其输出的计算结果形式为: x/y=11(2009年 3 月)答案: ” x/y=%d ”若整型变量 a 和 b 中的值分别为 7 和9, 要求按以下格式输出a 和 b 的值:(2008年9月)a=7 b=9 请完成输出语句: printf ( 【7】 ,a,b); 答案: a=%dnb=%dn 以下程序运行后的输出结果是【7】 。main() int m=011,n=11; printf(%d %dn,+m,n+); 答案
48、: 10 11 若变量 a,b已定义为 int 类型并赋值 21和 55, 要求用 printf 函数以 a=21,b=55的形式输出,请写出完整的输出语句_6_。 (2006年 4 月)答案: printf( “ a=%d,b=%d ” ,a,b); 四、getchar 函数其功能是从键盘上 输入一个字符 ,格式为: getchar(); 函数值就是从输入设备得到的一个字符。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 29 页 - - - - - - - - -
49、18 / 29 如:a=getchar () ;说明:1.输入回车符时才结束,回车前的所有字符都会逐个显示在屏幕上。2.此函数将输入的第一个字符作为函数的返回值。通常将寒暑的返回值赋给一个字符型变量或整型数据。五、putchar 函数作用是向输出设备上 输出一个字符 ,格式为:putchar (ch) ;其中 ch 可以使常量、变量、转义字符或表达式等,其数据类型可以是字符型或整型。当用户要求输入的字符串中含有空格时,应使用的输入函数是(2007 年 9月)A)scanf() B)getchar() C)gets() D)getc()最重要的区别是 gets 读一行, getchar() 读一
50、个字符。先看原型:char * gets(char * ptr); int getchar(void); 作用是:gets()用于从标准输入流stdin 读入一个整行(以 n或 EOF)结束,写入 ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的 n从流中取出,但不写入数组。gets() 不检查被写入的数组大小。getchar() 用于从标准输入流stdin 读入一个字符,并返回这个字符。如果读到文件结尾,则返回 EOF。 注意到 EOF 不能用 char 类型表示,所以 getchar()函数返回的是一个int 型的数。使用时也应该注意这一点。已知字符 A的