版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章考点1.一个C程序有且只能有一个main函数,并且程序总是从main函数开始执行到main函数结束;2.main函数可以在程序中的任意位置;一个C源程序可由一个或多个函数组成;4. 注释可以位于程序中的 任何位置,但注释不可嵌套 ;练习1一个C程序的执行是从 _A_________。本程序的main函数开始,到main函数结束本程序文件的第一个函数开始,到本程序文件的最后一个函数结束本程序的main函数开始,到本程序文件的最后一个函数结束本程序文件的第一个函数开始,到本程序main函数结束2以下叙述正确的是 _C__________。在C程序中,main函数必须位于程序的最前面C程序的每行中只能写一条语句C语言本身没有输入输出语句在对一个C程序进行编译的过程中,可发现注释中的拼写错误以下叙述不正确的是___________。一个C源程序可由一个或多个函数组成一个C源程序必须包含一个main函数C程序的基本组成单位是函数在C程序中,注释说明只能位于一条语句的后面4C语言规定:在一个源程序中, main函数的位置___________。必须在最开始必须在系统调用的库函数的后面可以任意必须在最后
一个C语言程序是由___________。一个主程序和若干子程序组成函数组成若干过程组成若干子程序组成练习答案1~5:ACDCB第2章考点C语言中整数是以补码形式存放的。C语言中字符是以ASCII码存放的,ASCII码是一些整数,所以一个字符和其对应的ASCII码等价;字符可以作为整数使用;3. 熟记以下字符的 ASCII 码:‘a=’97、’A’=65、’0’=48大写字符变小写字符加32如:’a’==’A’+325. 小写字符变大写字符减 32如:’A’==’a’-32标识符:1)只能以字母、数字、下划线组成,以字母或下划线开头;2)不能是C语言关键字字符常量:以单引号括起来的单个字符字符串常量:以双引号手括起来的若干个字符sizeof()函数用来求一个数据类型或一个变量所占用的字节数,如: inta,b;b=sizeof(int); 则b的值是2;b=sizeof(a);则b的值是2;在C语言中,运算符有优先级是1)算术运算符>关系运算符>逻辑运算符;2)单目运算符的优先级非常高;3)逗号运算符的优先级最低,赋值运算符次之i++是先用后加,++i是先加后用;自增加和自减运算只能对整型变量和指针变量进行;八进制整数常量以0开头,字母只以包含0~7之间的数字14. 16进制整数常量以 0x或0X开头,字母只以包含0~9、A~F或a~f之间的数字和字母;%(模)运算符只能对整型数据进行运算;逗号表达式的计算:一定要从左向右计算,然后取最后一个表达式的值;练习1、C语言中字符型(char)数据在内存中的形式存储是A)原码 B)补码 C)反码D)ASCII码
不同的含义6、C语言中的简单数据类型包括整型,实型,逻辑型整型,实型,字符型整型,字符型,逻辑型整型,实型,逻辑型,字符型7、以下选项中属于 C语言类型的是复数型逻辑型双精度型集合型8、已知: int y;float x=-3; 执行语句:y=x%2; 则变量y的结果是__________.A)1 B)-1 C)0 D)语句本身是错误的9、不能进行++和--运算的数据类型是2、C语言中,长整型long数据在内存中的__________.存储形式是A)指针B)doubleC)intD)longA)ASCII码B)原码C)反码10、在C语言中,int、char和short三种类D)补码型数据所占的内存3、C语言中运算符按运算对象的数目可以A)均为两个字节分为B)由用户自己定义A)单目运算符一种B)单目和C)由所用机器的机器字长决定双目运算符D)任意的C)单目,双目和三目运算符D)单11、在C语言中,错误的int类型是目,双目,三目和四目运算符A)32768(出现7了说明为8进制,所4、运算符有优先级,在C语言中关于运以不可能有8)算符的正确叙述是B)0A)逻辑运算符高于算术运算符,算术C)037运算符高于关系运算符D)0XafB)算术运算符高于关系运算符,关系12、下列常数中不能作为C语言常量的是运算符高于逻辑运算符A)0xA5C)算术运算符高于逻辑运算符,逻辑B)2.5e-2运算符高于关系运算符C)3e2D)关系运算符高于逻辑运算符,逻辑D)0582运算符高于算术运算符13?、在C语言中,十进制的47可等价的5、C语言并不是非常严格的语法语言,在写为(进制之间的转化,先将十进制转化为以下关于C语言的并不严格的叙述中,错二进制,然后再向十六进制转化)误的说法是十进制47=二进制00101111=十六进制A)大写字母和小写字母意义相同0x2f=八进制057[注意八、十六进制开头以B)有些不同类型的变量可以在一个表0/0x开始])达式中运算A)2fC)在赋值表达式中(=)左边的变量和B)02f右边的变量可以是不同类型C)57同一个运算符在不同的场合可以有D)05714、设int类型的数据长度为 2个字节,则unsignedint类型数据的取值范围是0至2550至65535-32768至32767-256至25515、在C语言中,数字 029是一个八进制十六进制十进制非法数16、下列不属于C语言关键字的是defaultregisterenumexternal17、下列可以正确定义数据类型的关键字是LongsignedShorterInteger18、下列可以正确表示字符常数的是“a”‘t’“n”297补充:下列属于C语言合法字符常数的是A.'\97'B."A"C.'\t'D."\0"(B和D显然不是字符,有双引号,是字符串。A应该用8进制,即'\097'才对,所以选C,C是控制字符)19、以下________是错误的转义字符‘’‘’’‘81’‘1’20、C语言中数据 -8在内存中的存储形式是(补码的考察, 负数的补码等于相反数
的反码加一)-8原码8的二进制0000000000001000反码1111111111110111补码1111111111111000111111111111100010000000000010000000000000001000111111111111011121、下列各选项中,均是C语言关键字的是auto,enum,includeswitch,typedef,continuesigned,union,scanfif,struct,type22、将字符g赋给字符变量c,正确的是c=“(应g”该为单引号)c=101c=147‘’c=‘0147’23、已知inti;floatf; 正确的语句是(intf)%iint(f)%iint(f%i)(int)f%i24、已知:chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是intcharfloatdouble32、已知:charw;intx;floaty;doublez;则表达式 w*x+z-y 后结果的类型是__________floatcharintdouble25、已知intj,i=1;执行语句j=-i++;后,j的值是(++只能对单个变量起到作用,而不能对表达式作用, 相当于j=-(i++))12-1-226、已知inti,a;执行语句i=(a=2*3,a*5),a+6;后,变量i的值是(从左至右运算,最后取最右端值)612303627、已知inti=5;执行语句i+=++i;i的值是(i=6+6)101112都不对28、字符串“ n”的长度是(,,\22,a,0,\n)8765123\0567\089为什么这个字符串用上 strlen计算得5??\ta\018bc这个是6在C程序中使用转义字符\ddd或者\xhh可以方便灵活地表示任意字符。\ddd为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制ASCII码值。\x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制ASCII码值。第一个,\056转换为了8进制数56所对应的ascii字符,但是对于\089,8进制里面没有8和9两个字符,所以被当成普通字符,所以整个字符串变成
1,2,3,\056,7,\0,8,9strlen函数碰到\0就会返回,所以总长度到7就结束了,返回529、已知:chara='\70';则变量 a中包含1个字符包含2个字符包含3个字符说明非法30、为求出s=10!的值,则变量s的类型应当为__________.intunsignedlong以上三种类型均可31、已知floatx=1,y;则:y=++x*++x 的结果为__________.y=9y=6y=1表达式是错误的32、上移33、下列四组字符串中都可以作为C语言程序中的标识符的是A)print_3doodbaBcB)I\amone_halfstart$it3paiC)PxqMy->bookline#His.ageD)str_1Cpppowwhile34、C语言中下列运算符的操作数必须是int型的运算是%/--++35、已知:intx=6;则执行“x+=x-=x*x;”语句后,x的值为(x+=x-=(x*x))36-6060-2436、已知:intx;则使用逗号运算的表达式“(x=4*5,x*5),x+25的结”果为__________20100表达式不合法4537、已知: int i=6,j;则执行语句“j=(++i)+(i++)后的”j的值是(从左至右)414131538、设a=2,b=3,执行表达式“c=b*=a-1”后,c的值为__________.532439、若定义了 intx;则将 x强制转化成双精度类型应该写成 __________.(double)xx(double)double(x)(x)double40、下面四个选项中,均是合法浮点数的选项是__________(.左右有数,且右为整数,可负)+1e+1,5e-9.4,03e2-.60,12e-4,-8e5123e,1.2e-.4,+2e-1-e3,.8e-4,5.e-041、下面四个选项中,均是正确的八进制数或十六进制的选项是 __________.-10,0x8f,-0110abc,-17,0xc0010,-0x11,0xf10a12,-0x123,-0xa42、在C语言中,int、char和short三种类型数据在内存中所占用的字节数__________.由用户自己定义均为2个字节(2\1\2)是任意的由所用机器的机器字长决定43、设以下变量均为 int类型,则值不等于7的表达式是__________.
A)(x=y=6,x+y,x+1)B)(x=y=6,x+y,y+1)C)(x=6,x+1,y=6,x+y)D)(y=6,y+1,x=y,x+1)44、若有以下定义,则能使值为 3的表达式是__________.intk=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)45、设:floatn;intm;则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 __________.n=(n*100+0.5)/100.0m=n*100+0.5,n=m/100.0n=n*100+0.5/100.0n=(n/100+0.5)*100.0练习答案1~5:DDCBA 6~10 : BCDBC11~15:ADDBD 16~20:DBBCA21~25:BCDCC 26~30 : BCCAC31~35:DDAAB 36~40:DBBAD41~45:DDCDB第3章考点putchar()是向标准输出设备(显示器)上输出一个字符;getchar()是从标准输入设备(键盘)是输入一个字符;printf(格“式控制串”,输出表)是按指定格式向显示器输出数据;其中格式控制串:包含两种信息 1)格式说明: %[修饰符]格式字符 ,用于指定输出格式;2)普通字符或转义序列:原样输出常见的转义字符: '\t' '\\' ”''\n' ”''\b' '\ddd' '\xhh'练习1、已知 int a=4,b=5,c;则执行表达式“c=a=a>b变量”后a的值为__________。014
10-128、已知:intx=15,y=5;则执行以下语句后的输出为:printf("%d/n",x%=(y%=2))016129、已知:unsignedintx=65535;则执行以下D)5语句后的x的值是2、已说明inta=256,执行语句printf("%d/n",x);printf(“%x”的,a);结果是__________A)65535A)0100B)1B)0256C)无定值C)0ffeD)-1D)00ff10、已知intx,y,z,w;则为使以下的语句的3、在C语言库函数中,可以输出double型输出结果为:1234+123+12+1,正确的输入变量x值的函数是形式为:A)getcharscanf("%4d-%3d-%2d-%1d",&x,&y,&z,B)scanf&w);C)putcharprintf("%4d+%3d+%2d+%1d/n",x,y,z,w)D)printf;4、已知:inta,b;用语句A)1234123121scanf("%d%d",&a,&b);输入a、b的值时,B)1234123121不能作为输入数据分隔符的是C)1234-123-12-1A),D)1234+123+12+1B)空格11、已知:intw=3,x=10,z=7;则执行下面语C)回车句后的结果为D)〔TAB〕printf("%d",x>10?x+100:x-10);5、已知:intx=10,y=3,z;则下列语句的输printf("%d,"w++||z++);出结果是:print("%d/n",z=(x%y,x/y))printf("%d",!w>z);A)1printf("%d",w&&z);B)0A)0111C)4B)11111D)3C)01016、已知:inta,b;则以下语句中错误的函数调D)0100用是12、执行语句:printf("theprogram\'snameA)a=getchar();isc:\\tools\book.txt");后的输出是B)putchar('\108');A)theprogram'snameisc:toolsbook.txtC)scanf("%d%*2d",&a,&b);B)theprogram'snameisc:\toolsbook.txtD)putchar('\'');C)theprogram'snameisc:\\tools7、已知:intx=2,y=2;则语句book.txtprintf("%d/n",(x--%++y));的输出结果是theprogram'snameisc:\toolook.txt13、已知:intx;floaty;所用的scanf调用语句格式为:scanf("x=%d,y=%f",&x,&y);则为了将数据10和66.6分别付给x和y,正确的输入应该是:x=10,y=66.6<回车>10,66.6<回车>10<回车>66.6<回车>x=10<回车>y=66.6<回车>14、已知:intx,y;doublez;则以下语句中错误的函数调用是scanf("%d,%lx,%le",&x,&y,&z);scanf("%2d*%d%lf",&x,&y,&z);scanf("%x,%*d%o",&x,&y,&z);scanf("%x,%o%6.2f",&x,&y,&z);15、putchar 函数可以向终端输出一个__________A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值16、printf函数中用到格式符 %5s,其中数组5表示输出的字符串占用 5列。如果字符串长度大于 5,则输出按方式 ________从左起输出该字符串,右补空格按原字符串从左到右全部输出右对齐输出该字符串,左补空格输出错误信息17、以下说法正确的是 __________输入项可以为一个实型常量,如scanf("%f",3.5);只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);当输入数据时,必须指定变量的地址,如scanf("%f",&f);18、根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该是_________main(){charch1,ch2,ch3;输入语句
printf("%c%c%c",ch1,ch2,ch3);}输入形式:ABC输出形式:ABA)scanf("%c%c%c",&ch1,&ch2,&ch3);B)scanf("%c,%c,%c",&ch1,&ch2,&ch3);C)scanf("%c%c%c",&ch1,&ch2,&ch3);D)scanf("%c%c",&ch1,&ch2,&ch3);19、已有定义 int a=-2; 和输出语句:printf("%8ld",a) ;以下正确的叙述是_________A) 整型变量的输出格式符只有 %d一种%x是格式符的一种,它可以适用于任何一种类型的数据%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的%8lx不是错误的格式符,其中数字8规定了输出字段的宽度20、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 __________inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);10A20B10A20B10A20B10A20B练习答案1~5:AACAD 6~10 : BAADC11~15:ADACD 16~20:BCDDC则条件表达式第5章考点运算符的优先级逻辑运算符&&与||运算时要注意短路现象,短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。如:1)a&&b&&c //只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值2)例 a||b||c //只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值3. 下列表达式等价: 1)a与 a!=02)!a与a==0关系运算的结果是0或1,0表示假,1表示真;进行逻辑运算时,对对参与运算的运算量:0表示“假”,非0表示“真”;运算结果:0表示“假”,1表示“真”;注意switch中的break语句break语句功能:跳出循环,不再进行执行循环,但只能跳出最近的一层循环;continue语句功能:结束本次循环,进行下一次循环;C语言对嵌套if语句的规定是:else总是与与之前最近的且尚未配对的if配对;复合语句:用{⋯}括起来的一组语句,复合语句是一个整体,要么全执行,要么全不执行;10.练习1、以下运算符中优先级最低的是A)&&
&||=2、已知:charc=‘A’,int=1,j;执行语句:j=!c&&i++ ;则 i和j的值为1,11,02,12.03、已知:intx=1,y=2,z;则执行:z=x>y?++x;++y;则z的值是12344、已知:inti=1,j=2,z;则执行语句:n=i<j?i++:j++; 则i和j的值是____.1,21,32,22,35、已知:charch='A';则,下列表达式的值是___。ch=(ch>='A'&&ch<='Z')?(ch+32):ch;AaZz6、选出使变量 i的运行结果为 4的表达式inti=0,j=0;(i=3,(j++)+i)inti=1,j=0;j=i=(i=3)*2);inti=0,j=1;(j==1)?(i=1):(i=3);D)inti=1,j=1;i+=j+=2;7、若w=1,x=2,y=3,z=4;"w>x?w:y<z?y:z" 的结果为43218、语句:printf("%d",(a=2)&&(b=-2));的输出结果为A)无输出A)trueB)结果不确定B)falseC)-1C)0D)1D)113、当c的值不为0时,在以下选项中能9、判断char型变量c1是否为大写字母的最够将c的值赋给变量a,b的是简单且正确的表达式为A)c=b=a;A)'A'<=c1<='Z'B)(a=c)||(b=c);B)(c1>='A')&(c1<='Z')C)(a=c)&&(b=c);C)('A'<=c1)AND('Z'>=c1)D)a=c=b;D)(c1>='A')&&(c1<='Z')14、若给定条件表达式"(n)?(c++):(c--)",则与表达式n等价的表达式是10、已知:a=b=c=1且均为int型变量,则执行A)n==0;以下语句:B)n==1;++a||++b&&++c;C)n!=0;变量a的值是___,D)n!=1;A)不正确15、要判断char型变量m是否是数字,可B)0以使用下列表达式____.C)2A)0<=m&&m<=9D)1B)'0'<=m&&m<='9'C)"0'<=m&&m<="9"变量b的值为____.D)前面三个答案是错误的A)116、已知charc;为使下列表达式的值为1,B)2则本来c的值可以是____.C)不正确(c>=48&&c<=57||c>=65&&c<=90||c>=9D)07&&c<=122)&&c==2711、已知:intw=1,x=2,y=3,z=4,a=5,b=6,则执A)66行以下语句:B)27(a=w>x)&&(b=y>z);C)85变量a的值是___D)前面三个答案是错误的A)517、已知:inta,b;对于下列if语句:if(aB)0=b)printf("AisequaltoB"\n");C)1在编译时,C编译程序D)2A)能指出改语句语法错误B)不能指出改语句语法错误变量b的值为____.18、若要求在if后一对圆括号中表示aA)6不等于0的关系,则能正确表示这一关系的B)0表达式为C)1A)a<>0D)4B)!a12、执行以下语句后x的值为_______.C)a=0inta=14.b=15,x;D)acharc='A';19、以下错误的if语句是x=((a&b)&&(c<'a'));A)if(x>y);if(x==y)x+=y;if(x!=y)scanf("%d",&x)elsescanf("%d",&y);if(x<y){x++;y++;}20、C语言对嵌套if语句的规定是:else总是与____________配对与之前最近的if第一个if缩进位置相同的if与之前最近的且尚未配对的if21、若有说明intx,y;不能实现以下函数关系的程序段是y=-1(x<0)y=0 (x=0)y=1 (x>0)A)if(x<0)y=-1;elseif(x==0)y=0;elsey=1;y=1;if(x!=0)if(x>0)y=1;elsey=0;C)y=0;if(x>=0){if(x>0)y=1;}elsey=-1;if(x>=0)if(x>0)y=1;else y=0;elsey=-1;22、已知:intx,a,b;下列选项中错误的if语句是if(a=b)x++;if(a=<b)x++;if(a-b)x++;if(x)x++;23、在下面条件语句中 ,(其中s1和s2表示语言的语句),只有一个与其他三个语句不等价,它是if(a)s1;elses2;if(a==0)s2;elses1;if(a!=0)s1;elses2;
D)if(a==0)s1,elses2;24、若intk; 且有下列程序片断,则输出结果是k=-3;if(k<0) printf("####");else printf("&&&&");####&&&###&&&&有语法错误,无法运行25、下列关于switch语句和break语句的结论中,正确的是break语句是switch语句的一部分在switch语句中可以根据需要使用或不使用break语句在switch语句中必须使用break语句break语句是switch语句的一部分26、若inti=10;执行下列程序后,变量i的正确结果是switch(i){case9:i+=0;case10:i+=1;case11:i+=1;default:i+=1;}1011121327、设有说明语句:inta=1,b=0;则执行下列语句后的输出为switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2: printf("**2**"); break;}A)**0**B)**0****2**
A)0C)**0****1****2**
B)1D)有语法错误
C)228、阅读程序,选择运行结果
D)3#include<stdio.h>
31、阅读程序,选择运行结果main(){charc='A';
#include<stdio.h>main(){}
if('0'<=c<='9')printf("YES");elseprintf("NO");
inta,b,c;a=1;b=2;c=3;if(a>b)if(a>c)printf("%d",a);A)YES
elseB)NOC)YESNO
printf("%d",b);printf("%d"\n",c);D)语句错误29、下面程序在运行时,输入变量1,变量b的值为2,选择运行结果#include<stdio.h>main()
a的值为
}A)12B)23C)3D)以上三个答案均有误{
32、阅读程序,选择运行结果inta,b,t=0;scanf("%d%d",&a,&b);if(a==2)
#include<stdio.h>main(){t=a,a=b,b=t;printf("%d,%d\n",a,b);}A)20B)22
inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);C)21D)1230、阅读程序,选择运行结果#include<stdio.h>main()
}A)-11B)01C)10D)00{
33、阅读程序,选择运行结果inta=2,b=-1,c=2;
#include<stdio.h>if(a<b)
main()if(b<0)
{c=0;
inta=10,b=0;else
if(a=12)c+=1;
{printf("%d\n",c);
a=a+1;}
b=b+1;}运算符<逻辑与运算符elseB)逻辑与运算符<关系运算符<算{术运算符<赋值运算符a=a+4;C)赋值运算符<逻辑与运算符<关b=b+4;系运算符<算术运算符}D)算术运算符<关系运算符<赋值printf("%d;%d\n",a,b);运算符<逻辑与运算符}37、能正确表示“当x取值在[1,10]和A)13;1[200,210]范围内为真,否则为假”的表达式B)14;4是_________C)11;1A)D)10;0(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)34、阅读程序,选择运行结果B)(x>=1)||(x<=10)||(x>=200)||(x<=210)#include<stdio.h>C)main()(x>=1)&&(x<=10)||(x>=200)&&(x<=210){D)charch;(x>=1)||(x<=10)&&(x>=200)||(x<=210)ch=getchar();38、判断char变量ch是否为大写字母的switch(ch)正确表达式是_________{A)'A'<=ch<='Z'case65:B)(ch>='A')&(ch<='Z')printf("%d",'A');C)(ch>='A')&&(ch<='Z')case66:D)('A'<=ch)AND('Z'>=ch)printf("%c",'B');39、若希望当A的值是奇数时,表达式的default:值为“真”,A的值是偶数时,表达式的值printf("%s\n","other");为“假”。则以下不能满足要求的表达式是}_________}A)A%2==1若程序可以正常以下,当从键盘输入B)!(A%2==0)A时,输出结果是C)!(A%2)A)AD)A%2B)ABother40、以下程序的运行结果是_________C)Aother#include<stdio.h>D)编译错误,无法运行main(){35、逻辑运算符两侧运算对象的数据类型inta,b,d=241;_________a=d/100%9;A)只能是0或1b=(-1)&&(-1);B)只能是0或非0正数printf("%d,%d",a,b);C)只能是整型或字符类型数据}D)可以是任何类型的数据A)6,1B)2,136、以下关于运算符优先顺序的描述中正C)6,0确的是_________D)2,0A)关系运算符<算术运算符<赋值41、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是_________if(x>y)z=x;x=y;y=z;x=10,y=20,z=30x=20,y=30,z=30x=20,y=30,z=10x=20,y=30,z=2042、请阅读以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf("***\n");else printf("$$$\n");}程序结果是 _________有语法错误不能通过编译可以通过编译但不能通过连接输出***输出$$$43、若有条件表达式 (exp)?a++:b--则以下表达式中能完全等价于表达式(exp)的是 _________(exp==0)(exp!=0)(exp==1)(exp!=1)44、若 w、x、y、z、m均为 int型变量,则执行下面语句后的 m 值是_________w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;123445、当 a=1,b=3,c=5,d=4 时,执行完下面一段程序后 x的值是 _________if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;
elsex=6;elsex=7;1236练习答案1~5:DBCCB 6~10:DBDD(CA)11~15:(BA)DCCB 16~20:DBDCD21~25:BBDAB 26~30 : DBADC31~35:CCABD 36~40:CCCCB41~45:BCBBB第6章考点结构化程序设计:基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto);结构化程序:由三种基本结构反复嵌套构成的程序叫结构化程序.三种基本结构:顺序、选择和循环下列表达式等价:1)a与a!=02)!a与a==01.练习1、以下错误的叙述是break语句不能使用循环语句和switch语句以外的任何其他语句B)在switch语句中使用 break语句或continue语句的作用相同在循环语句中使用contunue语句是为了结束本次循环,而不是终止整个循环在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环2、以下关于 C语言的结论,错误的是可以有while语句实现的循环一定可以用for语句实现可以有for语句实现的循环一定可以用while语句实现可以有do-while语句实现的循环一定可以用while语句实现do-while语句与while语句的区别仅是关键字"while"出现的位置不同3、下列不是死循环的语句是for(;;x+=i);while(1){x++;}for(i=10;;i--)sum+=i;for(;(c=getchar())!='\n';)printf("%c",c);4、执行语句: for(i=0;i++<3;); 后,变量i的值是23455、下面for语句 for(x=0,y=0;(y!=123)(x<4);x++);是无限循环循环次数不定循环执行4次循环执行3次6、与语句 "while(!x)" 等价语句是while(x==0)while(x!=0)while(x!=1)while(~x)7、在while(x)中与下面条件等价的表达式是x==0x==1x!=1x!=08、定义inti=1; 执行语句"while(i++<5);"
后,i的值是34569、若a,b均为int型变量a=100;对下面for循环语句的正确判断是for(b=100; a != b; ++a,b++)printf("-----\n");循环体只执行一次是死循环循环体一次也不执行输出------10、若inti,x;则"for(i=x=0;i<9&&x!=5;i++,x++)"控制的循环体将执行_______次1095611、下列错误的描述是使用while和do-while语句时,循环变量初始化应在循环体之外完成while循环先判断表达式,后执行循环体语句do-while和for均是先执行循环体语句,后判断表达式for,while和do-while循环中的循环体均可以有空语句构成12、若inta=5;则执行以下语句后打印的结果为do{printf("%2d\n",a--);}while(!a);A)5B)不打印任何内容4陷入死循环13、下列程序是求1到100的累加和,其中有3个能够完成规定的功能,有1个与其他不同,它是A)s=0;i=0;
D)210while(i<=100)s+=i++;B)s=0;i=1;
17、阅读程序,选择运行结果
Cwhile(i++<=100)s+=i;C)s=0;i=0;while(i<100)s+=++i;
#include<stdio.h>main(){D)s=0;i=0;while(++i<=100)s+=i;14、若intx;且有下面程序片断,则输出结果是for(x=3;x<6;x++)printf((x%2) ? "**%d"A)**3##4
:
inti=0,j=0,k=0,m;for(m=0;m<4;m++)switch(m){case0:i=m++;case1:j=m++;case2:k=m++;case3:m++;}pirntf("\n%d,%d,%d,%d",i,j,k,m);**5B)##3**4##5C)##3
}A)0,0,2,4B)0,1,2,3C)0,1,2,4D)0,1,2,5**4##5D)**3##4**5
18、阅读程序,选择运行结果#include<stdio.h>main(){
B15、若intx=3;且有下面程序片断,则输出结果是do{printf("%d",x-=2);}while(!(--x));
chari,j;for(i='0',j='9';i<j;i++,j--)printf("%c%c",i,j);pirntf("\n");A)1B)30C)1-2D)死循环
}A)01234567890B)0918273645C)9876543210D)以上三个答案均不对16、阅读程序,选择运行结果#include<stdio.h>
19、阅读程序,选择运行结果
Dmain(){intn=4;
#include<stdio.h>main(){while(n--)printf("%d",--n);}A)20
intk,j,m;for(k=5;k>=1;k--){B)31C)321
m=0;for(j=k;j<=5;j++)m=m+k*j;}printf("%d\n",m);}12425361520、阅读程序,选择运行结果#include<stdio.h>main(){inti,j;floats;for(i=7;i>4;i--){s=0;for(j=i;j<3;j--)s=s+i*j;}printf("%f\n",s);}154.00000090.00000045.0000000.00000021、阅读程序,选择运行结果 D#include<stdio.h>main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}1019298761099010109122、阅读程序,选择运行结果 A#include<stdio.h>main()
{intk=1;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*2;break;default:k=k/3;}++;}while(c<'F');printf("k=%d\n",k);}k=1k=15k=12以上三个答案均不对23、阅读程序,选择运行结果#include<stdio.h>main(){ints;while((s=getchar())!='\n'){switch(s-'2'){case0:case1:putchar(s+4);case2:putchar(s+4);break;case3:putchar(s+3);default:putchar(s+2);break;}printf("\n");}}66887666677877766896666897724、设有程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是 __________while循环执行10次循环是死循环循环体语句一次也不执行循环体语句执行一次25、设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则是__________A)运行程序段后输出 0B)运行程序段后输出 1程序段中的控制表达式是非法的程序段执行无限次26、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#include<stdio.h>main(){inta,b,t;scanf("%d%d",&a,&b);while( ){if(a>b){t=a,a=b,b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}}!a=ba!=ba==ba=b27、下面循环语句中循环体的执行次数为程序段:inta,b;for(a=0,b=1;a<=b+2;a+=2,b--)printf( “%d”,a);
)3)2)1D)028、设x和y均为int型变量,则执行下的循环后,y值是__________for(y=1,x=1;y<=50;y++){if(x>=10)break;if(x%2==1){x+=5;continue;}x-=3;})2)4)6)829、有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf(“%dn”,sum);}该程序的执行结果是 __________)6)3C)死循环D)030、for(;;) x=1是一个__________)循环次数无限多的循环)循环次数是0的循环C)循环次数为 1的循环)不合法循环31、有如下程序main(){intx=23;do{printf(“%d”--,x);}while(!x);}该程序的执行结果是 __________A)321B)23C)不输出任何内容D)陷入死循环32、有如下程序main(){intn=9;while(n>6){n--;printf(“%d”),n;}}该程序段的输出结果是 __________A)987B)876C)8765D)987633、设j为int型变量,则下面for循环语句的执行结果是__________for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf("%d",j);}6374627334、下面 for 语句的循环体将执行__________)次。inti,sum=0;for(i=0;++i;i<3)sum+=i;A)0B)3C)65535D)死循环35、C语言中while和do-while循环的主要区别是__________A)do-while 的循环体至少无条件执行一次B)while 的循环控制条件比 do-while
的循环控制条件严格do-while允许从外部转到循环体内do-while的循环体不能是复合语句36、下面程序的功能是计算正整数 2345的各位数字平方和,请选择填空#include<stdio.h>main(){intn=2345,sum=0;do{sum+=n%10;n=【 】;}while(n);printf("sum=%d\n",sum);}n/1000n/100n/10n%1037、下面有关 for 循环的正确描述是__________for循环只能用于循环次数已经确定的情况for循环是先执行循环体语句,后判断表达式C)在 for 循环中,不能用 break语句跳出循环体for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来38、以下不是死循环的语句是 __________for(y=0,x=1;x>++y;x=i--)i=x;for(;;x++=i);while(1){x++;}for(i=10;;i--)sum+=i;39、下面程序的功能是计算1至10之间的奇数之和及偶数之和。请选择填空。#include<stdio.h>main(){inta,b,c,i;a=c=0;for(i=0;i<=10;i+=2){a+=i;【】;c+=b;}printf("偶数之和 =%d\n",a);printf("奇数之和 =%d\n",c-11);}b=i--b=i+1b=i++b=i-140、下面程序的运行结果是 __________#include<stdio.h>main(){inti;for(i=0;i<=5;i++){if(i%2)printf("*");else continue;printf("#");;}printf("$\n");}*#*#*#$#*#*#*$*#*#$#*#*$练习答案1~5:BDDCC 6~10:ADBCC11~15:CABDC16~20:ACBDD 21~25:D()()BB26~27:BBCDA 31~35:BBBDA36~40:CDABA第7章考点字符串常量有一个结束标志’0’;用scanf()函数输入字符串时,字符串
中不能有空格,用gets()函数输入字符串,字符串中可以有空格.3. 字符串必须用双引号括起来 ;给字符数组初始化时可以用以下两种方式:1)charstr[]=”china”;2)charstr[]={“china”};可以将一个字符串赋值给一个字符指针,如:char*p;*p=”china”;数组名是一个地址常量,就是说数组名1)是一个地址;2)是一个常量3)数组名是整个数组的首地址 ;定义数组时,数组的维数只能是整型常量或整型常量表达式,不能是变量,如:inta[5];(正确)intn=5,a[n];(错误)数组的下标从0开始;练习1、为了从键盘上输入字符串"HOWAREYOU?",可以直接使用函数___.A)scanfB)getstrC)gets都不能直接使用2、sizeof(double)是____。函数调用B)double型表达式C)int型表达式非法表达式3、错误的语句说明是A)staticcharword[]={'T','u','r','b','o','\0'};staticcharword[]={"Turbo\0"};staticcharword[]="Turbo\0";staticcharword[]='Turbo\n';4、已知:chars[5],c;registerintb;则调用函数scanf的正确语句是scanf("%s%c",s,c);scanf("%d%c",&b,&c);scanf("%d%c",b,&c);scanf("%s%c",s,&c);5、要说明一个有10个int元素的数组,应当选择语句inta[10]inta[2,5]inta[];int*a[10]6、合法的数组说明语句是inta[]="string";inta[5]={0,1,2,3,4,5};chara="string";chara[4]={0,1,2,3,4,5};
赋值给数组 str1的正确语句是str1={"books"};strcpy(str1,str2);str1=str2;strcpy(str2,str1);11、以下程序段的输入是staticchara[]="-12345";intk=0,symbol,m;if(a[k]=='+'||a[k]=='-')symbol=(a[k++]=='+')?1:-1;for(m=0;a[k]>='0'&&a[k] <='9';k++)m=m*10+a[k]-'0';printf("number=%d\n",symbol*m;number=-12345;number=12345;number=-10000;number=10000;7、在下述对C语句字符数组的描述中错误12、若用数组名作为函数调用的实参,则的是实际传递给形参的是A)字符数组可以存放字符串A)数组首地址B)字符数组中的字符串可以进行整体B)数组的第一个元素值输入输出C)数组中全部元素的值C)可以在赋值语句中通过改正运算符D)数组元素的个数"="对字符数组赋值D)字符数组的下标从0开始13、已知:charstr1[20]="abcde",str2[20]="xyz";则执行语句;8、调用strlen("abcd\0ef\0g")的返回值是printf("%d",A)4strlen((strcpy(str1,str2));输出结果是B)5A)9C)8B)3D)9C)5D)89、若有以下语句,则正确的描述是staticcharx[]="12345";14、已知:statcichary[]={'1','2','3','4','5'};inti,x[3][3]={1,2,3,4,5,6,7,8,9};A)x数组和y数组长度相同则下面语句的输出结果是B)x数组长度大于y数组长度for(i=0;i<3;i++)C)x数组长度小于y数组长度printf("%d",x[i][2-i];D)x数组等价于y数组A)15910、已知:charstrl[10],str2[10]=B)147{"books"};则在程序中能够将字符串“books”C)357D)36915、已知:charstr[]="ab\n\012\\\"",则执行语句pirntf("%d",strlen(strlen(str)); 的结果是3461216、在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量整型表达式整型常量或整型表达式任何类型的表达式17、对下列一维整型数组 a的正确说明是inta(10;intn=10,a[n];intn;scanf("%d",&n);inta[n];#defineSIZE10inta[SIZE];18、已知:inta[10];则对a数组元素的正确引用是a[10]a[3,5]a(5)a[10-10]19、在C语言中,一维数组维的说明方式[常量表达式][整型表达式][整型常量][整型表达式][整型常量]20、以下对外部的一维数组a进行正确初始化的语句是inta[10]=(0,0,0,0);inta[10]={};inta[2]={0,1,2};inta[10]={10*1};21、对以下二维数组正确说明是inta[3][]floata(3,4);doublea[1][4];
D)inta[10]={10*1};22、已知:int a[3][4]; 则对数组元素的正确引用是a[2][4]a[1,3]a[1+1][0]a(2)(1)23、已知:inta[3][4];则对数组元素的非法引用是a[0][2*1]a[1][3]a[4-2][0]a[0][4]24、以下能对外部的二维数组a进行正确初始化的语句是inta[2][]={{1,0,1},{5,2,3}};inta[][3]={{1,2,3},{4,5,6}};inta[2][4]={{1,2,3},{4,5},{6}};inta[][3]={{1,0,1},{},{1,1}};25、以下不能对二维数组a进行正确初始化的语句是inta[2][3]={0};inta[][3]={{1,2},{0}};inta[2][3]={{1,2},{3,4},{5,6}};inta[][3]={1,2,3,4,5,6};26、已知:staticinta[3][4]={0};则下面正确的形式是只有元素a[0][0]可得到初值0次说明语句错误数组a中每个元素都可以得到初值,但其只不一定为0D)数组a中每个元素均可得到初值027、已知在函数的外面有:inta[][4]={0,0};则下面叙述中错误的是A)数组a的每个元素都可得到初值0二维数组a的第一维大小为1因为二维数组a中第二维大小的除以初值个数的商为1,故数组a的行数为1只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值 028、已知:staticinta[3][4]; 则数组a中各元素A)可以在程序的以下阶段得到初值0B)可在程序的编译阶段得到初值0不能得到确定的初值可在程序的编译或以下阶段得到初值029、以下各组选项中,均能正确说明二维实形数组a的是floata[3][4];floata[][4];floata[3][]={{1},{0}};floata(3,4);floata[3][4];floata[][]={{0},{0}};floata[3][4];floata[][4]={{0},{0}};floata[][4]={{0},{0},{0}};floata[3][4];floata[3][];floata[][4];30、在C语言中,二维数组元素在内存中的存放顺序是按行存放按列存放由用户自己定义由编译器决定31、对以下说明语句的正确理解是 inta[10]={6,7,8,9,10};A)将5个初值依次赋给 a[1]至a[5]B)将5个初值依次赋给 a[0]至a[4]C)将5个初值依次赋给 a[6]至a[10]因为数组长度与初值的个数不同,所以次语句不正确32、下列数组说明中错误的是doublex[5]={2.0,4.0,6.0,8.0,10.0};inty[5]={0,1,3,5,7,9};charc1[]={'1','2','3','4','5'};charc2[]={'\x10','\xa','\x8'};33、已知:inta[][3]={1,2,3,4,5,6,7};则数组的第一维的大小是234
无确定值34、若二维数组a有m列,则在a[i][j]之前的元素个数是j*m+ij*m+ji*m-1i*m+j+135、以下正确的语句是inta[1][4]={1,2,3,4,5};floatx[3][]={{1},{2},{3}};longb[2][3]={{1},{1,2},{1,2,3}};doubley[][3]={0};36、以下是对变量s的初始化,其中错误的是chars[5]={"abc"};chara[5]={'a','b','c'};chars[5]="";chars[5]="abcdef";37、已知:chara[20],b[20];则以下正确的输入语句是gets(a,b);scanf("%s%s",a,b);scanf("%s%s",&a,&b);gets("a"),gets("b");38、有字符数组a[80]和b[80],则正确的输出语句是puts(a,b);pirntf("%s,%s",a[],b[]);putchar(a,b);puts(a),puts(b);39、若要求:如果字符串s1大于字符串s2则要执行if语句的语句1,应当使用if(s1>s2)if(strcmp(s1,s2))if(strcmp(s2,s1)>0)if(strcmp(s1,s2)>0)40、下面描述正确的是两个字符串所包含的字符个数相同时字符相同时,才能比较字符串字符个数多的字符串比字符少的字符串大字符串"STOP"与"sTOP"相等字符串"That"小于字符串"The"41、下列程序的运行结果是charc[5]={'a','b','\0','c','\0'};printf("%s",c);'a''b'ababc以上答案均错42、下面程序段的运行结果 ___chara[7]="abcdef",b[4]="ABC";strcpy(a,b);printf("%c",a[5]);~\0ef43、已知以下程序段,则chara[3],b[]="China";a=b;printf("%s",a);运行后将输出China运行后将输出Ch运行后将输出Chi程序出错44、下面程序段的运行结果是charc[]="\t\v\\\0will\n";printf("%d",strlen(c));1439非法,输出值不确定45、若有以下程序段inta[]={4,0,2,3,1},i,jt;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]= a[j];j--;}a[j+1]=t;}
该程序段的功能是对数组a进行插入排序(升序)对数组a进行插入排序(降序)对数组a进行选择排序(升序)对数组a进行选择排序(降序)46、下面程序____main(){floata[10];inti;for(i=0;i<3;i++)scanf("%d",&a[i]);for(i=0;i<3;i++)a[0]=a[0]+a[j];printf("%f\n",a[0]);}没有错误第3行有错误第5行有错误第7行有错误47、下面程序中有错误的行是main(){inta[3];inti;scanf("%d,&a);for(i=0;i<3;i++)a[0]=a[0]+a[i];printf("a[0]=%d",a[0]);}367548、下面程序____main(){inta[3];inti;for(i=0;i<3;i++)scanf("%d",&a[i]);for(i=0;i<3;i++)a[0]=a[0]+a[i];printf("%d\n",a);}没有错误第5行有错误第6行有错误第7行有错误49、下面程序____main(){inta[3]={3*0};inti;for(i=0;i<3;i++)scanf("%d",&a[i]);for(i=0;i<3;i++)a[0]=a[0]+a[i];printf("%d\n",a[0]);}第3行有错误第7行有错误第5行有错误没有错误练习答案1~5:CADDA 6~10:ACABB11~15:AABCA16~20:CDDDD 21~25:CCBBC26~30:DDBBA 31~35:BBBDD36~40:DBDDD 41~45:BDDB()46~49:CDDD第8章考点函数可以嵌套调用,但不能嵌套定义;函数形式:voidfun(void)的说明:第一个void是指函数没有返回值,但函数调用后还是要返回的;第二个void是指函数没有形式参数,调用时不需要实参;复合语句中定义的变量只在本复合语
句内有效;在函数中未指定存储类别的变量,其隐含的存储类别为自动存储类别;在一个源文件中定义的外部变量的作用域为从定义该变量的位置开始至本文件结束局部静态变量的属性是:1)全局生命周期;2)局部可见性;C语言允许函数值类型缺省调用,此时该函数值隐含的类型是int;练习1、函数用return语句返回计算20!的结果,此函数的类型应说明为____.intlongunsignedlongA,B,C答案都不对2、C语言程序由函数组成,它的主函数必须在其他函数之前,函数内可以嵌套定义函数主函数可以在其他函数之后,函数内不可以嵌套定义函数主函数必须在其他函数之前,函数内不可以嵌套定义函数主函数必须在其他函数之前,函数内可以嵌套定义函数3、一个C语言程序的基本组成单位是主程序子程序函数过程4、一个C语言程序总是从 ________开始执行主过程主函数子程序主程序5、以下说法中正确的是C语言过程总是从第一个定义的函数开始执行在C语言中,要调用的函数必须位于main()函数中定义C语言程序总是从main()函数开始执行C语言程序中的main()函数必须在程序的开始部分6、已知函数 abc的定义为voidabc()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【《非甾体抗炎药物活性分析进展报告》12000字】
- 2025年西安思源学院招聘考试笔试模拟试题及答案解析
- 2026国药数科校园招聘考试笔试参考题库附答案解析
- 2025浙江绍兴越城黄酒小镇旅游开发有限公司第二次编外人员招聘8人笔试考试备考试题及答案解析
- 2026年宁波市鄞州区教育系统面向毕业生招聘“鄞德未来”储备人才120笔试考试备考题库及答案解析
- 2025山东枣庄市立医院第二批急需紧缺人才招聘31人笔试考试备考题库及答案解析
- 2025四川九洲投资控股集团有限公司软件与数据智能军团招聘适航测试工程师等岗位3人笔试考试参考试题及答案解析
- 2026中国铁路南昌局集团有限公司招聘本科及以上学历毕业生24人(二)考试笔试备考试题及答案解析
- 2025浙江绍兴越城黄酒小镇旅游开发有限公司第二次编外人员招聘8人笔试考试参考试题及答案解析
- 2025年低空经济「考古探测」无人机在考古领域的应用报告
- 《中国旅游之山西》课件
- 客户满意度调查管理规定
- 《羽毛球运动》优质课件PPT
- 福建专升本大学语文复习(宾莹)
- 2023年高考语文二轮复习专题训练专题03诗歌鉴赏之客观选择题专训(1)Word版含解析
- GB/T 16930.2-1997盲人手杖规格及分类
- GB/T 1412-2005球墨铸铁用生铁
- GB/T 13477.8-2017建筑密封材料试验方法第8部分:拉伸粘结性的测定
- 电子商务专业职业生涯规划书
- 无人机驾驶员高级工职业资格考试题库(高频题汇总)
- 中小学生心理访谈提纲记录表
评论
0/150
提交评论