版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机二级C基础知识重点讲解全国计算机二级C基础知识重点讲解28/28全国计算机二级C基础知识重点讲解全国计算机等级考试二级C基础知识重点讲解程序设计和C语言本章考纲:程序的构成,main函数和其他函数。头文件,数据说明,函数的开始和结束标记以及程序中的注释。源程序的书写格式。C语言的风格。本章知识要点:了解程序设计的基本概念熟记计算机语言的分类重点驾驭算法的概念及特性重点驾驭C程序构成及书写格式重点驾驭上机步骤及编程环境本章考试方式:笔试(4分)本章内容:程序:是指可以被计算机连续执行的一条条指令的集合,是人及机器进行对话的语言。用程序设计语言编写程序的过程称为程序设计。计算机语言是人及计算机进行沟通的工具。分为机器语言,汇编语言和高级语言。算法:是为解决一个问题而实行的方法和步骤,可以采纳伪代码,流程图和N-S图等进行算法描述。算法具有:有穷性,确定性,有效性,零个或多个输入,一个或多个输出的特性。三种基本的限制结构:依次,选择,循环结构。C程序构成及书写特点C程序的基本单位是函数。一个C程序由一个或多个函数构成,有且只能有一个主函数(main)。不论main函数在整个程序中的位置如何,C程序的执行总是从main开始到main结束,各函数之间可以相互调用,但其他函数不能调用主函数。构成:编译预处理命令返回值类型函数名称(形参类型形参){变量定义执行语句/*…注释…*/执行语句}……书写格式:标识符区分大小写,一般变量采纳小写,符号常量采纳大写。C语句用分号(;)表示结束。但是在预处理命令,函数头,花括号之后不能加分号。上机步骤及开发环境编辑源程序,源程序以“.c”作为扩展名编译,将源程序转换成目标代码,形成“.obj”的二进制文件连接,将目标文件和库函数及其他文件连接,形成可执行的二进制文件“.exe”运行开发环境:VC6.0考试真题:1,下列叙述中错误的是(D)——2006年4月选择第44题C语言源程序经编译后生成后缀为.obj的目标程序C语言经过编译,连接步骤之后才能形成一个真正可执行的二进制机器指令文件用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令2,下列叙述中错误的是(B)——2006年4月选择第45题算法正确的程序最终肯定会结束算法正确的程序可以有零个输出算法正确的程序可以有零个输入算法正确的程序对于相同的输入肯定有相同的结果3,下列叙述中错误的是(A)——2006年9月选择第11题一个C语言程序只能实现一种算法C程序可以由多个程序文件组成C程序可以由一个或多个函数组成一个C函数可以单独作为一个C程序文件存在4,下列叙述中正确的是(D)——2006年9月选择第12题每个C程序文件中都必须要有一个main()函数在C程序中main()函数的位置是固定的C程序中全部函数之间都可以相互调用,及函数所处位置无关在C程序的函数中不能定义另一个函数5,在算法中,对须要执行的每一步操作,必需给出清晰,严格的规定,这属于算法的(C)——2007年4月选择第11题正值性可行性确定性有穷性6,下列叙述中错误的是(D)——2007年4月选择第12题计算机不能直接执行用C语言编写的源程序C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件后缀为.obj和.exe的二进制文件都可以直接运行7,下列叙述中错误的是(C)——2007年4月选择第14题C语言是一种结构化程序设计语言结构化程序由依次,分支,循环3种基本结构组成运用3种基本结构构成的程序只能解决简单问题结构化程序设计提倡模块化的设计方法8,对于一个正常运行的C程序,下列叙述中正确的是(A)—2007年4月选择第15题程序的执行总是从main函数开始,在main函数结束程序的执行总是从程序的第一个函数开始,在main函数结束程序的执行总是从main函数开始,在程序的最终一个函数中结束程序的执行总是从程序中的第一个函数开始,在程序的最终一个函数结束9,C语言源程序名的后缀是(B)——2007年9月选择第11题.exe.c.obj.cp10,下列叙述中正确的是(C)——2007年9月选择第14题C语言程序将从源程序中第一个函数开始执行可以在程序中由用户指定随意一个函数作为主函数,程序将从今开始执行C语言规定必需用main作为主函数名,程序将从今开始执行,在此结束Main可作为用户标识符,用以命名随意一个函数作为主函数数据类型及运算(记忆加理解)本章考纲:C的数据类型(基本类型,构造类型,指针类型,空类型)及定义方法。C运算符的种类,运算优先级和结合性。不同类型数据间的转换及运算C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。本章知识要点:重点驾驭标识符的合法性推断,符号常量的运用重点驾驭整型变量和实型变量的分类及说明以及整型常量和实型常量的表示方法熟记字符常量和字符串常量的表示,重点驾驭字符运算原理重点驾驭数据类型的转换原理及执行过程重点驾驭算术运算符的分类及运算符的优先级和结合性重点驾驭复合的赋值表达式及表达式类型转换重点驾驭自增自减运算符的用法(优先级,结合性和执行过程)重点驾驭逗号运算符的执行过程本章考试方式:笔试(16分)+上机(5分)本章内容:一,标识符:由字母,数字和下划线组成,并且必需以字母或下划线开头。C语言中的关键字不能用作其他用途,如不能用作变量或函数名。以下选项中合法的标识符是(2009年3月)A)1_1B)1-1C)_11D)1__以下选项中不合法的标识符是(2008年4月)
A)printB)FORC)&aD)_00可在C程序中用做用户标识符的一组标识符是(2007年9月)A)andB)DateC)HiD)case
_2007y-m-dDr.TomBigl依据C语言规定的用户标识符命名规则,不能出现在标识符中的是(2007年4月)A)大写字母B)连接符C)数字字符D)下划线以下不合法的用户标识符是(2006年4月)A)j2_KEYB)DoubleC)4dD)_8_二,常量和变量在程序运行过程中,其值不能被改变的量称为常量。符号常量的表示:#define标识符常量#definePI3.14159/*PI就是一个符号常量,代表3.14159*/main(){ floatr,area; r=3; area=PI*r*r; printf("\narea=%f",area);}在程序运行过程中,其值可以改变的量称为变量。一个变量具有两个要素:变量名和变量值。一个变量名实质上是代表内存中的一个存储单元,该单元中的存储的内容就是变量值,通过变量名来引用变量的值。三,整型数据整型常量有3种表示方法:十进制表示法:123,-456,112L等八进制表示法:014,077十六进制表示法:0xA0F注:只有十进制数可以是负数,其余进制只能是无符号数。无符号数可用后缀u(U)表示。整型变量分为以下3类:基本整型:用int表示,在VC6内存中占4个字节短整型:用shortint或short表示,在内存中占2个字节长整型:用longint或long表示,在内存中占4个字节还可以加上unsigned,将变量定义为无符号型。四,实型数据实型常量有两种表示方式:十进制小数形式:3.1415,0.123,.145,34.,123f指数形式:6.0E3(E或e之前必需有数,之后必需是整数)实型变量分3类:单精度:float占4个字节,有6-7位有效位数双精度:double占8个字节,有15-16位有效位数长双精度:longdouble占16个字节,有18-19位有效位数五,字符型数据(在内存中存放的是字符量的ASCII码)字符常量:一对单引号括起来的单个字符。(转义字符),’a’,’\n’字符变量:类型说明符char,在内存中占一个字节。C语言允许对整型变量赋字符值,也允许对字符变量赋整型值。main(){ charc1,c2; c1='a';c2='b'; c1=c1-32;c2=c2-32; printf("%c%c\n",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+’a’B)c=c+32C)c=c-‘A’+’a’D)c=(‘A’+c)%26-‘a’以下选项中,值为1的表达式________。(2006年9月)A)1-‘0’B)1-‘\0’C)’1’-0D)’\0’-‘0’六,字符串常量:用一对双撇号括起来的零个或多个字符序列。如:”china”在存储字符串时,系统会在字符串的末尾自动加上一个’\0’作为字符串的结束标记,所以“china”在内存中实质是占6个字节的空间。C语言没有字符串变量,对字符串的处理都是通过字符数组来完成。以下选项中,能用作数据常量的是(2009年3月)A)o115B)0118C)1.5e1.5D)115LA假如是0115就是一个合法的8进制常量,不过以o开头就成了变量名B以0开头是八进制,不过八进制只能是0~7,于是错误C的尾数是1.5正确,但是阶码为1.5错误,只能为整数D的后缀L代表长型,115L则表示长整型,因此正确以下选项中不能作为C语言合法常量的是()。A)'cd'B)0.1e+6C)"\a"D)'\011'以下不合法的数值常量是A)011B)lelC)8.0E0.5D)0xabcdC源程序中不能表示的数制是()。(2008年9月)二进制B)八进制C)十进制D)十六进制%d十进制,%o八进制,%x十六进制以下关于long,int和short类型数据占用内存大小的叙述中正确的是(2007年9月)
A)均占4个字节B)依据数据的大小来确定所占内存的字节数
C)由用户自己定义D)由C语言编译系统确定以下选项中,合法的一组C语言数值常量是(2007年9月)
A)028B)12.C).177D)0x8A
.5e-30Xa234e1.510,000
-0xf4.5e00abc3.e5A中028是八进制,不该出现8,C中4e1.5错了,e后面不该是小数,D中10,000错误,没有这种写法。七,变量的定义C语言规定,变量在运用时必需先定义后运用。变量定义形式:数据类型变量名1[,变量名2,…….];如:intsum,a;floatscore,b;charc;变量在定义时可以初始化,如:intsum=0,a=1;floatscore=0.0,b=1.5;charc=’a’;此赋初值错误:intsum=a=1;赋初值只能对单个变量进行。以下选项中正确的定义语句是()。(2008年9月)doublea;b;B)doublea=b=7;C)doublea=7,b=7;D)double,a,b;B中b应先定义再运用以下定义语句中正确的是(2008年4月)
A)inta=b=0;B)charA=65+1,b='b';
C)floata=1,*b=&a,*c=&b;D)doublea=0.0;b=1.1;A错在b未定义应改为inta,b;a=b=0;B正确C错,错在无法初始化convertfrom'float**'to'float*D错应当为doublea=0.0,b=1.1;把分号改为逗号下列定义变量的语句中错误的是________。(2006年9月)A)int_int;B)doubleint_;C)charFor;D)floatUS$八,不同数据类型之间的转换doublefloatlongunsigneddoublefloatlongunsignedintchar,short类型转换图:可以运用强制类型转换,格式:(类型说明符)(表达式)如:(double)a;(int)(x+y);(int)x+y;main(){ floatx;inti; x=3.6; i=(int)x; printf("x=%f,i=%d",x,i);}结果:x=3.600000,i=3main(){ floatx,y; inti,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。求余运算要求两侧的操作数均为整型。运算符都有优先级和结合性,见书后附录。除单目运算,赋值运算符和条件运算符是右结合性外,其他运算都是左结合性。表达式(int)((double)(5/2)+2.5)的值是【6】(2009年3月)答案:4以下不能正确表示代数式2ab/cd(2008年9月)的C语言表达式是()。A)2*a*b/c/dB)a*b/c/d*2C)a/c/d*b*2D)2*a*b/c*d以下选项中,当x为大于1的奇数时,值为0的表达式A)x%2==1B)x/2C)x%2!=0D)x%2==0表达式3.6-5/2+1.2+5%2的值是(2006年4月)A)4.3B)4.8C)3.3D)3.8十,赋值运算符合表达式C语言中的赋值运算符是“=”,其功能是将右侧表达式的值赋给左侧的变量如:a=5;b=c=8;复合的赋值表达式:变量operater=表达式,operater代表运算符。如:a+=5,等价于a=a+5;a+=x+y,等价于a=a+(x+y)设变量已正确定义并赋值,以下正确的表达式是(2008年4月)
A)x=y*5=x+zB)int(15.8%5)
C)x=y+z+5,++yD)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=yC)x=x+10=x+yD)double(x)/10设变量a和b已正确定义并赋初值。请写出及a-=a+b等价的赋值表达式【6】。(2008年9月)答案:a=-b;十一,自增和自减运算++和--运算,其功能是使变量的值自动加和减1。如:a++,等价于a=a+1自增和自减有两种用法:前置运算:如++a,其运算规则是先使变量的值增(减)1,然后再以变化后的表达式值参及其他运算。后置运算:如a++,其运算规则是变量先参及其他运算,然后再使变量的值增(减)1。设有定义:intx=2;,以下表达式中,值不为6的是(2009年3月)A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x,x+=2设有定义:intk=0;,以下选项的四个表达式中及其他三个表达式的值不相同的是(2007年4月)k++B)k+=1C)++kD)k+1K++意味着0给予该表达式然后K加1。像printf("%d",K++)它要输出的是后十二,逗号表达式表达式1,表达式2[,表达式3,…..,表达式n]其计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。#include<stdio.h>voidmain(){inta,b;a=1;b=(a++,a+3);printf("a=%d\n",a);printf("b=%d\n",b);}有以下程序(2006年9月)main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是________。A)2,3,3B)2,3,2C)2,3,1D)2,2,1=(右结合)的优先级比,(左结合)高1级优先级左结合()圆括号[]下标运算符->指向结构体成员运算符.结构体成员运算符2级优先级右结合!逻辑非运算符~按位取反运算符++自增运算符--自减运算符-负号运算符(类型)类型转换运算符*指针运算符&地址及运算符sizeof长度运算符3级优先级左结合*乘法运算符/除法运算符%取余运算符4级优先级左结合+加法运算符减法运算符5级优先级左结合<<左移运算符>>右移运算符6级优先级左结合<,<=,>,>=关系运算符7级优先级左结合==等于运算符!=不等于运算符8级优先级左结合&按位及运算符9级优先级左结合^按位异或运算符10级优先级左结合|按位或运算符11级优先级左结合&&逻辑及运算符12级优先级左结合13级优先级右结合:条件运算符14级优先级右结合=+=-=*=/=%=>>=<<=&=^=|=全为赋值运算符15级优先级左结合,逗号运算符设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为[]答案:3以下程序输出结果是(2007年4月)Main(){inta=10;a=(3*5,a+4);printf(“a=%d\n”,a);}答案:14基本语句本章考纲:表达式语句,空语句,复合语句。输入输出函数的调用,正确输入数据并正确设计输出格式。本章知识要点:重点驾驭各种语句的运用。熟记scanf和printf函数的格式重点理解scanf函数中地址列表的含义,重点驾驭格式限制串中不同字符的作用。点理解printf函数中格式限制串的含义,重点驾驭格式限制串中不同字符的作用。重点理解getchar和putchar函数的作用。本章考试方式:笔试(7分)+上机(15分)本章内容:一,C语句分类C语句可以分为5类:限制语句:用来实现对程序流程的选择,循环,转向和返回等进行限制。如:if等函数调用语句,如:printf("thisisacprogram”);表达式语句:在表达式的末尾加上分号构成的语句。如:a=a+4;空语句:单独的一个分号“;”构成的语句。空语句的执行不产生任何动作,有时用来作流程的转向点,也可以用来作循环语句的循环体。复合语句:由一对花括号“{}”把一些语句括起来,在语法上作为一个整体对待,相当于一条语句。如:{z=x+y;z++;}若函数中有定义语句:intk;,则(2009年3月)A)系统将自动给k赋初值0
B)这时k中值无定义C)系统将自动给k赋初值-1
D)这时k中无任何值以下能正确定义且赋初值的语句是()。(2005年9月)
A)intn1=n2=10;B)charc=32;
C)floatf=f+1.1;D)doublex=12.3E2.5;二,scanf函数用来从标准输入设备(键盘)输入数据到计算中。一般格式:scanf(格式限制串,地址表列)如:scanf(“%d%f%c”,&a,&b,&c);“格式限制串”用来指定每个输入项的输入格式。通常由若干个格式说明组成,格式说明由“%”开头,后跟格式字符,如“%d”,“%c”等。“地址表列”须要读入的是全部变量的地址或字符串的首地址。运用说明:除了格式说明符和附加格式字符外,假如还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符。形式1:scanf(“%d,%d”,&a,&b);正确的输入方式:12,35形式2:scanf(“a=%d,b=%d”,&a,&b);正确的输入方式:a=12,b=35可以指定输入数据所占的列数,系统自动按指定的数据截取所需的数据。如:scanf(“%4d%4d”,&a,&b);当输入12345678时,系统自动将1234赋给a,将5678赋给b。如:scanf(“%4c”,&ch);假如从键盘输入xyz3个字符,由于ch只能接收一个字符,系统自动将第一个字符‘x’赋给ch。输入的数值数据之间用间隔符(空格,制表符或回车符)隔开,间隔符数量不限,假如在格式说明中认为制定宽度时,也可以运用此方式。在%后有一个“*”附加格式字符,表示跳过它指定的列数。地址表应当是变量的地址,因此,应当在变量名前加上取地址的运算符“&”在用“%c”格式输入字符时,空格和转义字符都将作为有效字符进行输入。如:scanf(“%c%c%c”,&c1,&c2,&c3);假如输入ab后按下回车键,则c1,c2,c3的值分别为a,空格,b键盘输入数据的个数应当及格式要求的个数相同,少于要求个数时,函数等待输入,直到满意要求或遇到非法字符为止;多于要求个数时,多余的数据将留在缓冲区作为下一次输入操作的输入数据。在输入数据时,遇到以下状况时该输入结束遇到空格,或按回车键或按跳格(TAB)键按指定的宽度结束遇到非法输入若有定义语句:doublex,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表示用科学计数法输入double程序段:intx=12;
doubley=3.141593;printf(“%d%8.6f”,x,y);的输出结果是(2009年3月)A)123.141593
B)123.141593
C)12,3.141593
D)123.1415938.6f输出是浮点数,域宽为8,保留六位小数有以下程序(2009年3月)#include<stdio.h>main(){inta1,a2;charc1,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,则正确的输入格式是(以下_代表空格,<CR>代表回车)A)12a34b<CR>
B)12_a34_b<CR>C)12,a,34,b<CR>
D)12_a34_b<CR>若变量已正确定义为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<回车>若在定义语句:inta,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);有以下程序段(2007年9月)
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为
A)55566.0B)566.0C)7777.0D)566777.0设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式正确的是(注:□代表空格字符)(2007年4月)A)10□X□20□Y〈回车〉B)10□X20□Y〈回车〉C)10□X〈回车〉D)10X〈回车〉20□Y〈回车〉20Y〈回车〉各个输入之间可以是空格,回车,制表符。空格也是字符设有定义:inta;floatb;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0<回车>,a和b的值分别是________。(2006年9月)A)876和543.000000B)87和6.000000C)87和543.000000D)76和543.000000执行以下程序时输入1234567,则输出结果是_______.(2007年9月)
#include
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}答案:1234三,printf函数用于按指定得格式在屏幕上输出若干随意类型的数据。一般格式:printf(格式限制串,输出表列);如:printf(“a=%d,b=%d\n”,a,b);“格式限制串”用来指定每个输出项的输出格式。组成格式限制串的字符通常由格式说明,转移字符和按原样输出的字符3部分组成。格式说明由“%”开头,后跟格式字符(p46页),用来指定数据的输出格式。输出格式中的格式说明的个数和输出表列中的数据个数应一样。转义字符是以“\”开始的字符,用来实现换行,跨越指标为或输出单引号,双引号等。除了以上两类字符之外,在格式串中的其他字符将按原样输出。输出表列是要输出的各项数据,可以是常量,变量,函数或表达式,其详细类型有格式限制串中的格式字符确定。运用说明:驾驭格式字符和附加格式字符的作用。在格式限制串中,格式说明和输出项在类型上必需一一对应。并且格式说明的个数和输出项的个数应当相同,假如不同,系统则作以下处理:假如格式说明的个数小于输出项数,多余的数据项不显示假如格式说明的个数多于输出项数,对多余的格式将输出不定值或0值有以下程序段(2008年4月)
charch;intk;
ch='a';k=12;
printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是
A)因变量类型及格式描述符的类型不匹配输出无定值
B)输出项及格式描述符个数不符,输出为零值或不定值
C)a,97,12k=12D)a,97,k=12有以下程序,其中%u表示按无符号整数输出(2007年4月)Main(){unsignedintx=0xFFFF;/*x的初值为十六进制数*/Printf(“%u\n”,x);}程序运行后的输出结果是A)-1B)65535C)32767D)0XFFFF有以下程序(2006年9月)main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf("a+b=%d\n",a+b);/*输出计算结果*/}程序运行后输出结果是________。a+b=0B)a+b=30C)30D)出错留意换行符的位置若变量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=7b=9请完成输出语句:printf("【7】",a,b);答案:a=%d\nb=%d\n以下程序运行后的输出结果是【7】。main(){intm=011,n=11;printf("%d%d\n",++m,n++);}答案:1011若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句__[6]____。(2006年4月)答案:printf(“a=%d,b=%d”,a,b);四,getchar函数其功能是从键盘上输入一个字符,格式为:getchar();函数值就是从输入设备得到的一个字符。如:a=getchar();说明:输入回车符时才结束,回车前的全部字符都会逐个显示在屏幕上。此函数将输入的第一个字符作为函数的返回值。通常将寒暑的返回值赋给一个字符型变量或整型数据。五,putchar函数作用是向输出设备上输出一个字符,格式为:putchar(ch);其中ch可以使常量,变量,转义字符或表达式等,其数据类型可以是字符型或整型。当用户要求输入的字符串中含有空格时,应运用的输入函数是(2007年9月)
A)scanf()B)getchar()C)gets()D)getc()最重要的区分是gets读一行,getchar()读一个字符。先看原型:char*gets(char*ptr);intgetchar(void);作用是:gets()用于从标准输入流stdin读入一个整行(以'\n'或EOF)结束,写入ptr指向的字符数组,并返回这个指针;出错或遇到文件结束时则返回NULL。行末的'\n'从流中取出,但不写入数组。gets()不检查被写入的数组大小。getchar()用于从标准输入流stdin读入一个字符,并返回这个字符。假如读到文件结尾,则返回EOF。留意到EOF不能用char类型表示,所以getchar()函数返回的是一个int型的数。运用时也应当留意这一点。已知字符A的ASCII码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是[]#include“stdio.h”Main(){chara,b;a=getchar();Scanf(“%d”,&b);a=a-‘A’+’0’;b=b*2;printf(“%c%c\n”,a,b);}答案:1Ba=a-‘A’+’0’=1+‘0’='1'b=b*2=33*2=66输出是%c字符型的格式所以就应当是1B选择结构程序设计本章考纲:用if语句实现选择结构。用switch语句实现多分支结构。选择结构的嵌套。本章知识要点:熟记关系,逻辑运算符的种类,重点记忆其运算符的优先级。熟记条件运算符的格式,重点驾驭条件表达式的执行原理。熟记if语句的基本形式,重点驾驭if语句的执行原理。熟记switch语句的基本形式,重点驾驭if语句的执行原理。本章考试方式:笔试(12分)+上机(50分)本章内容:一,关系运算符和表达式关系运算符就是将两个值进行比较的运算符。C供应6种:小于(<),大于(>),小于等于(<=),大于等于(>=),等于(==),不等于(!=)前四种运算符的优先级相同,后两者的优先级相同,且前四种的优先级高于后2种;关系运算符都是左结合的。用关系运算符将两个表达式联结起来的式子称为关系表达式。基本形式为;表达式1关系运算符表达式2说明:表达式1和表达式2可以是常量,变量,算术表达式,关系表达式,逻辑表达式,赋值表达式及字符表达式等。关系运算的结果是一个逻辑值,,当关系成立,值为真,否则为假。由于C语言没有逻辑型数据,所以用1代表真,用0代表假。如:5>3值1 5==3值为0 若a=2,b=1,c=0则:(a>b)==c值0d=a>b 值1f=a>b>c 值1二,逻辑运算符和逻辑表达式C供应3种逻辑运算符:及(&&),或(||),非(!)说明:优先级为:非>及.>或,及和或运算符具有左结合性,非运算符具有右结合性。逻辑运算的值也只有真和假两个,分别用1和0表示。真值表见辅导书p59页。由逻辑运算符和运算对象所组成的表达式称为逻辑表达式,一般形式为:表达式1逻辑运算符表达式2说明:逻辑运算的对象可以是C语言中随意合法的表达式。逻辑表达式的运算结果为逻辑量真或假。在C语言中,逻辑假用数值0表示,逻辑真用数值1表示。但是当推断一个量是否为真时,以非0代表真,以0代表假。在逻辑运算过程中,并不是每一个表达式都会被执行,当执行及运算时,假如第一个运算量为假,则后一个运算量将不被执行,因为及运算时,有一个操作数为0结果就会为0;当执行或运算时,假如第一个运算量为真,则后一个运算量将不被执行,因为或运算时,有一个操作数为1结果就会为1。如a=1,b=2,c=3,d=4,m=1,n=1(m=a>b)&&(n=c>d)运算后,m=0,n=1执行以下程序段后,w的值为()。(2008年9月)intw='A',x=14,y=15;w=((x||y)&&(w<'a'));A)-1B)NULLC)lD)0当变量c的值不为2,4,6时,值也为“真”的表达式是(2008年4月)
A)(c==2)‖(c==4)‖(c==6)B)(c>=2&&c<=6)‖(c!=3)‖(c!=5)
C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&&c<=6)&&(c%2!=1)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确推断出kk中的值为大写字母的表达式是
A)kk>='A'&&kk<='Z'B)!(kk>='A'‖kk<='Z')
C)(kk+32)>='a'&&(kk+32)<='z'D)isalpha(kk)&&(kk<91)以下关于逻辑运算符两侧运算对象的叙述中正确的是________。A)只能是整数0或1B)只能是整数0或非0的整数C)可以是结构体类型的数据D)可是随意合法的表达式已有定义:charc=‘’;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【6】。(2008年4月)答案:0已定义charch=’$’;inti=1,j;执行j=!ch&&i++以后,i的值为___________(2007年4月)答案:1的执行依次是:(1)假如!ch为“非零”(真),接着执行i++;(2)假如!ch为"零”(假),则不执行i++.由于ch='#',为“真”,所以!ch==0(为假),因此表达式按(2)进行,即i++得不到执行,i保留原来的值(1)。而j==0(假)以下程序用于推断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是须要同时满意三条件:a+b>c,a+c>b,b+c>a。请填空。(2006年4月)main(){floata,b,c;scanf(“%f%f%f”,&a,&b,&c);if(__[7]__)printf(“YES\n”);/*a,b,c能构成三角形*/elseprintf(“NO\n”);/*a,b,c不能构成三角形*/}答案:(a+b>c)&&(a+c>b)&&(b+c>a)三,if语句If语句是一种选择结构限制语句,对给定的条件进行推断,然后确定执行哪种操作。C供应以下几种if语句形式:单分支结构形式为:if(表达式)语句体说明:其中的表达式可以是随意合法的C语言表达式。语句体部分可以是一条语句,也可以是用花括号括起来的语句组(复合语句)。其执行过程是,先计算表达式的值,若为真(逻辑值为1),即条件成立,执行语句体,否则不执行语句体,而去执行if语句的下一条语句。如:if(x>y)printf(“%d”,x);双分支结构形式为:if(表达式)语句体1else语句体2执行过程:先计算表达式的值,若为真(逻辑值为1),即条件成立,执行语句体1,否则执行语句体2。如:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);多分支结构:当出现多种选择状况时运用形式为:if(表达式1)语句体1elseif(表达式2)语句体2…….elseif(表达式n)语句体nelse语句体n+1执行过程:先推断表达式1的条件是否成立,假如成立,执行语句体1,否则推断表达式2,若成立,执行语句体2,否则接着推断表达式3,以此类推,若全部表达式都不成立,则执行语句体n+1。嵌套结构在if或else子句中又包含一个或多个if语句。注:else总是及它上面的最近的,未配对的if配对,且else后不跟条件(表达式)。main()(2001年9月二级C语言笔试25题){intx;scanf(“%d”,&x);if(x--<5)printf(“%d”,x);elseprintf(“%d”,x++);}程序运行后,假如从键盘上输人5,则输出结果是A)3B)4C)5D)6有一函数,,以下程序段中不能依据x值正确计算出y值的是(2002年9月二级C语言笔试22题)A)if(x>0)y=1; B)y=0;elseif(x==0)y=0; if(x>0)y=1;elsey=-1; elseif(x<0)y=-1;C)y=0; D)if(x>=0)if(x>=0); if(x>0)y=1;if(x>0)y=1 ; elsey=0;elsey=-1; elsey=-1;以下是if语句的基本形式:(2009年3月)if(表达式)
语句其中“表达式”A)必需是逻辑表达式
B)必需是关系表达式C)必需是逻辑表达式或关系表达式
D)可以是随意合法的表达式有以下程序段(2008年9月)inta,b,c;a=10;b=50;c=30;if(a>b)a=b;b=c;c=a;printf("a=%db=%dc=%d\n”,a,b,c);程序的输出结果是()。a=10b=50c=10B)a=10b=50c=30C)a=10b=30c=10D)a=50b=30c=50留意:a的值已变化有以下程序(2008年9月)#include<stdio.h>main(){intx=l,y=2,z=3;if(x>y)if(y<z)printf("%d",++z);elseprintf("%d",++y);printf("%d\n",x++);}程序的运行结果是()。A)331B)41C)2D)1若变量已正确定义,有以下程序段(2008年4月)
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7有以下计算公式(2007年9月)若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是
A)if(x>=0)y=sqrt(x);B)y=sqrt(x)
elsey=sqrt(-x);if(x<0)y=sqrt(-x);
C)if(x>=0)y=sqrt(x);D)y=sqrt(x>=0x:-x);
If(x<0)y=sqrt(-x);设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(2007年4月)A)if(x++);B)if(x>y&&y!=0);C)if(x>y)x--D)if(y<0){;}elsey++;elsex++;C缺少分号在嵌套运用if语句时,C语言规定else总是________。(2006年9月)A)和之前及其具有相同缩进位置的if配对B)和之前及其最近的if配对C)和之前及其最近的且不带else的if配对D)和之前的第一个if配对有以下程序(2006年4月)main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序输出A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错四,条件运算符和表达式条件运算符为“?:”,是C语言中唯一的三目运算符,具有右结合性。条件表达式的一般格式为:表达式1?表达式2:表达式3表达式1,2,3可以是随意合法的C语言表达式。执行过程:先计算表达式1的值,假如值为非0,则计算表达式2的值,表达式2的值为整个条件表达式的值;假如表达式1的值为0,则计算表达式3的值,表达式3的值为整个条件表达式的值。其效果等价于双分支结构的if语句。及y=(x>01:x<0-1:0);的功能相同的if语句是(2000年4月二级C语言笔试21题)A)if(x>0)y=1;B)if(x)elseif(x<0)y=-1;if(x>0)y=1;elsey=0;elseif(x<0)y=-1;elsey=0;C)y=-1D)y=0;if(x)if(x>=0)if(x>0)y=1;if(x>0)y=1;elseif(x==0)y=0;elsey=-1;elsey=-1;若有表达式(w)(--x):(++y),则其中及w等价的表达式是()。(2008年9月)A)w==lB)w==0C)w!=lD)w!=0设有条件表达式:(EXP)i++;j--,则以下表达式中(EXP)完全等价的是(2007年9月)
A)(EXP==0)B)(EXP!=0)C)(EXP==1)D)(EXP!=1)以下程序的功能是:输出a,b,c三个变量中的最小值.请填空。(2007年9月)
#include
main()
{inta,b,c,t1,t2;
scanf("%d%d%d",&a,&b,&c);
t1=a<b[7];
t2=c<t1[8];
printf("%d\n",t2);
}答案:[7]a:b[8]c:t1若有定义intx,y;并已正确给变量赋值,则以下选项中及表达式(x-y)(x++):(y++)中的条件表达式(x-y)等价的是________。(2006年9月)A)(x-y>0)B)(x-y<0)C)(x-y<0║x-y>0)D)(x-y==0)以下程序运行后的输出结果是【8】。(2006年9月)main(){intx,a=1,b=2,c=3,d=4;x=(a<b)a:b;x=(x<c)x:c;x=(d>x)x:d;printf("%d\n",x);}答案:1五,switch语句一种多分支选择语句。一般格式为:switch(表达式){case常量表达式1:语句1case常量表达式2:语句2…….case常量表达式n:语句ndefault:语句n+1}说明:switch后面的表达式必需用括号括起来,取值必需是整型或字符型,花括号括起来的部分称为switch语句体。case后面必需是常量或常量表达式,且各case后的值应当互不相同,类型必需及switch后的表达式类型相同。default也起标号的作用,代表全部case标号之外的标号。执行过程:计算switch后表达式的值,然后用改值逐个去及case后的常量表达式值进行比较,当找到匹配的,就执行case后面的语句。若全部case中的常量表达式的值都没有于表达式的值匹配的,就执行default后面的语句。执行完一个case后面的语句后,程序就转移到下一个case处接着执行,并不再进行推断。但这并不是我们盼望的,因此通常在每一条语句后面加上一个break语句,以跳出switch结构。若有定义:floatw;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄金分期合同范本
- 荒山承包合同纠纷诉讼范本
- 环境保护专用设备销售合同
- 二零二四年度玻璃隔断工程预算审核合同
- 二零二四年太阳能发电项目合作协议
- 2024版工程分包合同(公路建设)
- 二零二四年农产品电商运营与合作合同
- 2024年度充电桩安全防护与数据保护服务合同
- 2024年度智能工厂设备租赁合同
- 二零二四年影视制作合同款项支付担保
- 2022宁夏共享集团公司校园招聘48人上岸笔试历年难、易错点考题附带参考答案与详解
- 基因扩增实验室常用仪器使用课件
- 2023年营养师、营养指导员专业技能及理论知识考试题库(附含答案)
- 肺功能万里行考试内容
- 男生青春期教育讲座-课件
- 《银行运营档案管理系统业务管理规定》制定说明
- 教育人力资源管理:绩效管理(二)教学课件
- 阳光少年实践活动心得感悟3篇
- 经典校园英语舞台剧剧本:皇帝的新装
- pep人教版英语六年级上册Unit2《Waystogotoschool》大单元作业设计(三)
- 全员育人导师制学生谈话记录
评论
0/150
提交评论