还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一、单项选择题
1.a是构成c语言程序的基本单位a、函数b、过程c、子程序d、子例程
2.c语言程序从c开始执行a程序中第一条可执行语句b程序中第一个函数0程序中的main函数d包含文件中的第一个函数
3、以下说法中正确的是c a、c语言程序总是从第一个定义的函数开始执行b、在c语言程序中,要调用的函数必须在main函数中定义c、c语言程序总是从main函数开始执行d、c语言程序中的main函数必须放在程序的开始部分
4.下列关于c语言的说法错误的是ba c程序的工作过程是编辑、编译、连接、运行b c语言不区分大小写c c程序的三种基本结构是顺序、选择、循环d c程序从main函数开始执行
5.下列正确的标识符是c a.-al b.a[i]c.a2_i d.int t58题为相同类型题〜考点标识符的命名规则1只能由字母、数字、下划线构成2数字不能作为标识符的开头3关键字不能作为标识符选项a中的“-”,选项b中“与”不满足1;选项d中的int为关键字,不满足
36.下列c语言用户标识符中合法的是b a3ax bx ccase d-e2e union选项a中的标识符以数字开头不满足2;选项c,e均为为关键字,不满足3;选项d中的”不满足1;
7.下列四组选项中,正确的c语言标识符是c oa%x ba b cal23d123选项a中的“犷,选项b中“ ”不满足1;选项d中的标识符以数字开头不满足
29.ttinclude stdio.hmain{int num,c;scanfnum;do{c=num;printf c;}whilenum/=100;printf\n;从键盘输入23,则运行结果为32详见教材p117循环结构;p60复合的赋值运算符do{}while表达式;先无条件执行循环体,再判断循环条件注意while表达式后有分号定义整型变量num,c;为num赋一个整型值;执行{c=num;printf〃%d〃,c;}直到循环条件num/=100不成立;输出换行已知为num赋值23第1次执行循环体执行c=num=23=3;执行printf〃%d〃,c;输出3判断循环条件nuni/=10等价于num=num/10;因此nuni=23/10=2,2大于0,因此循环条件num/=100成立,继续执行循环体执行完第1次循环时,num为2,第2次执行循环体执行c=2=2;执行printf〃%d〃,c;再输出2判断循环条件num=2/10=0,0等于0,因此循环条件num/=10〉不成立结束循环10ftinclude stdio.hmain{int s=0,a=5,n;scanf%d,n;do{s =l;a=a-2;}whilea!=n;printf%d,%d\nz,,s,a;若输入的值1,运行结果为2,1详见教材p117循环结构;p60复合的赋值运算符执行{s =l;a=a-2;}直到循环条件a!=n不成立;已知为n赋值l,s为0,a为5第1次执行循环体执行s =l;等价于s=s l=0 l执行a=a-2;a=5-2=3判断循环条件,3不等于1,因此循环条件a!=n成立,继续执行循环体执行完第1次循环时,s为1,a为3第2次执行循环体执行s =l;等价于s=s l=l l=2执行a=a-2;a=3-2=l判断循环条件,1等于1,因此循环条件a!二n不成立,结束循环执行完第2次循环时,s为2,a为1输出此时s,a中的值,结果为2,1结构体#includestdio.hstruct st{int x;int y;}a
[2]={5,7,2,9;mainprintf%d\n,a[o].y*a
[1].x;运行结果是14首先是定义结构体st,st中共有两个整型成员x,y然后定义一个st类型的数组a,a的长度为2,即数组中含有两个st类型的元素,分别是a
[0]和a[l].对a进行初始化,此题是按照储存顺序进行初始化,即将5赋给a
[0]中的x即a
[0].x=5;将7赋给a
[0]中的y即a
[0].y=7;将2赋给a[l]中的x即a[l].x=2;将9赋给a[l]中的y即a[l].y=9;执行main函数,输出表达式a
89.5};printf%d,%s,%f”,m.num,m.a,m.score;运行结果是1234,wang,
89.5#includestdio.hstruct cmplx{.intx;int y;}cnum
[2]={l,3,2,7};mainprintf%d\n,cnum
[0].y*cnum[l].x;运行结果是6与第一题解法同^include stdio.h struct abc{int a,b,c;};maino{structabc
[2]={{1,2,3},{4,5,6}};int t;st=s[o].a sel].b;printf%d\n,t;运行结果是6与第一题解法同
8、下列四组字符串中都可以用作c语言程序中的标识符的是a oa、print_3d db8abc b、i\am one_half start$it3paic、str_l cpppow whiled、pxq my-book line#his.age选项b中的“\,$,选项d中不满足⑴;选项c中的while为关键字,不满足
39.c语言中的简单数据类型包括d0a、整型、实型、逻辑型b、整型、实型、逻辑型、字符型c、整型、字符型、逻辑型d、整型、实型、字符型
10.在c语言程序中,表达式5%2的结果是」oa
2.5b2c1d3详见教材p
5253.〜%为求余运算符,该运算符只能对整型数据进行运算且符号与被模数相同o5%2=1;5%-2=1;-5%2=-1;-5%-2=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2
二、读程序#include stdio.hmain{int a=l,b=3,c=5;if c==a bprintf〃yesn;elseprintfno\n;运行结果为no详见教材p89选择结构详见教材p91关系符号详见附录d p378符号的优先级二=表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量本题考点是选择结构3种基本形式的第二种选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用{}括起来,只有当复合语句中只包括一条语句时可以省略{},此题即如此,因此两个printf操作没有加{}若c==a b成立,则执行printf yesn;否则即c==a b不成立,执行printf no\rt; 的优先级高于二,因此先算a b,值为4,表达式5==4不成立,因此执行printf,,no\n,/;即输出字符串notfinclude stdio.hmain{int a=12,b=-34,c=56,min=0;min=a;ifminbmin=b;ifmincmin=c;printfmin=%d”,min;运行结果为min=-34详见教材p89选择结构本题考点是选择结构3种基本形式的第一种一共包含了两个选择结构两个if语句定义变量,并赋值此时a=12,b=-34,c=56,min=0将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12若minb成立,则执行min=b;若minc成立,则执行min=c;输出min中的值12大于-34,第一个if语句的表达式成立,因此执行min=b;执行后min中的值被更新为-
34.-34小于56,第二个if语句的表达式不成立,因此不执行min=c;最后输出min中的值,为-
34.#include stdio.hmain{int x=2,y=-1,z=5;if xyify0z=0;elsez=z l;printf%d\n”,z;运行结果为5遇到选择结构,首先要明确条件表达式成立时执行哪些操作本题中,第一个if语句,其后的复合语句没有大括号{},说明复合语句中只包含一条语句,进而省略了{}内层的if.else...是选择结构的第二种基本形式,在结构上视为一条语・・句因此内层的if else...作为第一个if语句的复合语句・・・若表达式xy成立,则继续判断若y0,则执行z=0;否则即y=0,执行z=z l;输出z2-1,表达式xy不成立,因此不执行内层的if…else….进而z中的值没有被改变输出z中的值为5#include stdio.hmain{float a,b,c,ta=3;b=7;c=l;ifab{t=a;a=b;b=t;}ifac{t=a;a=c;c=t;}if bc{t=b;b=c;c=t;}printf%
5.2f,%
5.2f,%
5.2f,a,b,c;运行结果为
1.00,
2.00,
7.00详见教材p72数据的输出形式本题包含了3个if语句,每个if语句后的{}都不可省略,因为每个{}中都包含了多条语句若表达式ab成立,则执行{t=a;a=b;b=t;}若表达式a〉c成立,则执行{t=a;a=c;c=t;}若表达式b〉c成立,则执行{t二b;b=c;c=t;}输出a,b,c中的值,要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐3小于7,因此表达式ab不成立,因此不执行{t=a;a=b;b=t;}3大于1,因此表达式ac成立,则执行代=2山光2=1;}第一句,将a中的3拷贝,粘贴到t中;第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3;第三句将t中的3拷贝到c中,覆盖掉c中先前的
1.执行完复合语句后实现了a,c元素的值的互换,a为1,c为3,t为3,7大于c中的3,因此bc成立,执行则执行{t=b;b=c;c=t;},过程同上,执行后b为3,c为7,t为7此时输出a,b,c中的值为
1.00,
2.00,
7.
001..#includestdio.h main{float c=
3.0d=
4.0;ifcdc=
5.0;elseifc=dc=
6.0;else c=
7.0;printf0%.lf\n,c;运行结果为=
7.0此题为if.else...语句的嵌套,第二if...else...作为第一个if...else...・・语句else部分的复合语句若表达式cd成立,则执行c=
5.0;否则表达式cd不成立若表达式c==d成立,则执行c=
6.0;否则,执行c=
7.0;输出c中的值
3.0小于
4.0,因此表达式cd不成立,执行第二个if「else…・
3.0不等于
4.0,因此表达式c==d不成立,执行c=
7.0,将
7.0赋给c,覆盖掉c中的30,此时c中的值为
7.0输出此时的c中的值^include stdio.hmain{int m;scanf%d,m;if m=0{if m%2=0printf c%d is a positiveeven\n〃,m;else printf%d isa positiveodd\n,m;}else{if m%2==0printf c%d isa negativeeven\n,m;else printf%d isa negative odd\n,m}若键入-9,则运行结果为-9isanegativeodd#include stdio.hmaino{int num=0;whilenum=2{num ;printf%d\n,num;}运行结果为123详见教材pl15循环结构当循环条件num=2成立的时候,执行循环体{num ;printf,,%d\n,,num;,中的语句循环初值num为0;循环条件num=2成立第1次循环执行num ;即将num中的值加1,执行后num为1;执行printf〃%d\n”,num;在屏幕上输出num中的值,即输出1,之后换行此时num中的值为1,循环条件num=2成立第2此循环执行num ;即将num中的值加1,执行后num为2;执行printf%d\n,num;在屏幕上输出num中的值,即输出2,之后换行此时num中的值为2,循环条件num=2成立第3此循环执行nun ;即将num中的值加1,执行后num为3;执行printf,,%d\n,,num;在屏幕上输出num中的值,即输出3,,之后换行此时num中的值为3,循环条件num〈=2不成立,结束循环#include stdio.hmain{int sum=10,n=l;whilen3{sum=sum-n;n ;}printf%d,%d”,n,sum;运行结果为3,7当循环条件n〈3成立的时候,执行循环体{sum=sum-n;n ;}中的语句循环初值sum为10,n为1;循环条件n3成立第1次循环执行sum=sum-n=10-l=9;执行n ,即将n中的值加1,执行后n为2;此时n中的值为2,sum中的值为9,循环条件n3成立,继续执行循环第2次循环执行sum=sum-n=9-2=7;执行n ,即将n中的值加1,执行后n为3;输出此时n,sum中的值,即为此7需要注意,在printf“双l,%d,n,sum;中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号。