最新C语言考试题库及答案.pdf

上传人:wj151****6093 文档编号:72381310 上传时间:2023-02-10 格式:PDF 页数:45 大小:1,017.47KB
返回 下载 相关 举报
最新C语言考试题库及答案.pdf_第1页
第1页 / 共45页
最新C语言考试题库及答案.pdf_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《最新C语言考试题库及答案.pdf》由会员分享,可在线阅读,更多相关《最新C语言考试题库及答案.pdf(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、最新最新 C C 语言考试题库及答案语言考试题库及答案姓名姓名成绩成绩温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油!这张试题吧。加油!一单项选择题一单项选择题1.在 C 语言中,以 D作为字符串结束标志A)n B)C)0 D)02.下列数据中属于“字符串常量”的是(A)。A.“a”B.ABC C.abc0 D.a若干个字符构成字符串在 C 语言中,用单引号标识字符;用双引号标识字符串选项 B,C,分别用和标识字符串选项 D,标识字符。3、以下说法中正确的是(C)。A、C

2、语言程序总是从第一个定义的函数开始执行 B、在 C 语言程序中,要调用的函数必须在 main()函数中定义 C、C 语言程序总是从 main()函数开始执行 D、C 语言程序中的 main()函数必须放在程序的开始部分4.下列关于 C 语言的说法错误的是(B)。A)C 程序的工作过程是编辑、编译、连接、运行B)C 语言不区分大小写。C)C 程序的三种基本结构是顺序、选择、循环D)C 程序从 main 函数开始执行5.下列正确的标识符是(C)。A.-a1 B.ai C.a2_i D.int t6下列 C 语言用户标识符中合法的是(B)。A)3ax B)x C)case D)-e2 E)union

3、7下列四组选项中,正确的 C 语言标识符是(C)。A)%x B)a+b C)a123 D)1238、下列四组字符串中都可以用作 C 语言程序中的标识符的是(A)。A、print _3d db8 aBc B、Iam one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My-book line#His.age9.C 语言中的简单数据类型包括(D)。A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型10.在 C 语言程序中,表达式 5%2 的结果是 C。A)2.5 B)2 C)1 D)311如果

4、int a=3,b=4;则条件表达式ab?a:b的值是_A_。A)3 B)4 C)0 D)112若 int x=2,y=3,z=4 则表达式 xage D)(*p).age33.设有如下定义:struck sk int a;float b;data;int*p;若要使 P 指向 data 中的 a 域,正确的赋值语句是 CA)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;34.设有以下说明语句:typedef struct stu int a;float b;stutype;则下面叙述中错误的是(D)。A、struct 是结构类型的关键字B、struct st

5、u 是用户定义的结构类型 C、a 和 b 都是结构成员名D、stutype 是用户定义的结构体变量名35 语句 int*p;说明了 C。A)p 是指向一维数组的指针B)p 是指向函数的指针,该函数返回一 int 型数据C)p 是指向 int 型数据的指针 /指针的定义教材 P223D)p 是函数名,该函数返回一指向 int 型数据的指针36下列不正确的定义是(A)。A.int*p=&i,i;B.int*p,i;Cint i,*p=&i;D.int i,*p;37.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是:(D)A)p=q B)*p=*q C)n=*q D)p=n3

6、8有语句:int a10,;则 B是对指针变量 p 的正确定义和初始化。A)int p=*a;B)int*p=a;C)int p=&a;D)int*p=&a;39.若有说明语句“int a5,*p=a;”,则对数组元素的正确引用是(C)。A.ap B.pa C.*(p+2)D.p+240.有如下程序int a10=1,2,3,4,5,6,7,8,9,10,*P=a;则数值为 9 的表达式是 BA)*P+9 B)*(P+8)C)*P+=9 D)P+8一、一、读程序读程序基本输入输出及流程控制1.1.#include#include main()main()int a=1,b=3,c=5;int

7、a=1,b=3,c=5;if(c=a+b)if(c=a+b)printf(yesn);printf(yesn);elseelse printf(non);printf(non);运行结果为:运行结果为:nono详见教材详见教材 p89p89 选择结构选择结构详见教材详见教材 p91p91 关系符号关系符号详见附录详见附录 D p378D p378 符号的优先级符号的优先级=表示判断符号两边的值是否相等;表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量表示将符号右边的值赋给左边的变量本题考点是选择结构 3 种基本形式的第二种选择结构三种一般形式中的“语句”皆为复合语句,复合语句要

8、用 括起来,只有当复合语句中只包括一条语句时可以省略,此题即如此,因此两个 printf 操作没有加 若 c=a+b 成立,则执行 printf(yesn);否则(即 c=a+b 不成立),执行 printf(non);+的优先级高于=,因此先算 a+b,值为 4,表达式 5=4 不成立,因此执行printf(non);即输出字符串 no2.2.#include#include main()main()int a=12,b=-34,c=56,min=0;int a=12,b=-34,c=56,min=0;min=a;min=a;if(minb)if(minb)min=b;min=b;if(mi

9、nc)if(minc)min=c;min=c;printf(min=%d,min);printf(min=%d,min);运行结果为:运行结果为:min=-34 min=-34详见教材详见教材 p89p89 选择结构选择结构本题考点是选择结构本题考点是选择结构 3 3 种基本形式的第一种种基本形式的第一种一共包含了两个选择结构(两个一共包含了两个选择结构(两个 ifif 语句)语句)定义变量,并赋值定义变量,并赋值 此时此时 a=12,b=-34,c=56,min=0a=12,b=-34,c=56,min=0将将 a a 中值拷贝,赋给中值拷贝,赋给 minmin,覆盖了,覆盖了 minmin

10、 中的中的 0 0,此时,此时 minmin 中的值被更新为中的值被更新为 1212。若若 minbminb 成立,则执行成立,则执行 min=b;min=b;若若 mincminc 成立,则执行成立,则执行 min=c;min=c;输出输出 minmin 中的值中的值1212 大于大于-34,-34,第一个第一个 ifif 语句的表达式成立,因此执行语句的表达式成立,因此执行 min=b;min=b;执行后执行后 minmin 中的值被更新为中的值被更新为-34.-34.-34-34 小于小于 56,56,第二个第二个 ifif 语句的表达式不成立,因此不执行语句的表达式不成立,因此不执行

11、min=c;min=c;最后输出最后输出 minmin 中的值,为中的值,为-34.-34.3.3.#include#include main()main()int x=2,y=-1,z=5;int x=2,y=-1,z=5;if(xy)if(xy)if(y0)if(y0)z=0;z=0;elseelse z=z+1;z=z+1;printf(printf(“%dn%dn”,z);,z);运行结果为:运行结果为:5 5遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个 ifif 语句,语句,其后的复合语句没有

12、大括号其后的复合语句没有大括号 ,说明复合语句中只包含一条语句,进而省略了,说明复合语句中只包含一条语句,进而省略了 。内。内层的层的 if.else.if.else.是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if.else.if.else.作为第一个作为第一个 ifif 语句的复合语句。语句的复合语句。若表达式若表达式 xyxy 成立,则继续判断成立,则继续判断若若 y0y=0y=0),执行执行 z=z+1;z=z+1;输出输出 z z2-12-1,表达式,表达式 xyxy 不成立,因此不执行内层的不成立,因此不执

13、行内层的 ififelseelse.进而进而 z z 中的值没有被改变。中的值没有被改变。输出输出 z z 中的值为中的值为 5 54.4.#include#include main()main()float a,b,c,t;float a,b,c,t;a=3;a=3;b=7;b=7;c=1;c=1;if(ab)if(ab)t=a;a=b;b=t;t=a;a=b;b=t;if(ac)if(ac)t=a;a=c;c=t;t=a;a=c;c=t;if(bc)if(bc)t=b;b=c;c=t;t=b;b=c;c=t;printf(%5.2f,%5.2f,%5.2f,a,b,c);%printf(%

14、5.2f,%5.2f,%5.2f,a,b,c);%为求余运算为求余运算 运行结果为:运行结果为:1.00,3.00,7.001.00,3.00,7.00详见教材 p72 数据的输出形式本题包含了 3 个 if 语句,每个 if 语句后的 都不可省略,因为每个条语句若表达式 ab 成立,则执行t=a;a=b;b=t;若表达式 ac 成立,则执行t=a;a=c;c=t;若表达式 bc 成立,则执行t=b;b=c;c=t;中都包含了多输出 a,b,c 中的值,要求输出的每个数据宽度为 5 个空格,小数部分保留 2 位,数据右对齐3 小于 7,因此表达式 ab 不成立,因此不执行t=a;a=b;b=t

15、;3 大于 1,因此表达式 ac 成立,则执行t=a;a=b;b=t;。第一句,将 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.005 5#include#include main()main()float

16、 c=3.0,d=4.0;float c=3.0,d=4.0;if(cd)c=5.0;if(cd)c=5.0;elseelseif(c=d)c=6.0;if(c=d)c=6.0;else c=7.0;else c=7.0;printf(printf(“%.1fn%.1fn”,c);,c);运行结果为:运行结果为:7.07.0此题为 if.else.语句的嵌套,第二 if.else.作为第一个 if.else.语句else 部分的复合语句。若表达式 cd 成立,则执行 c=5.0;否则(表达式 cd 不成立)若表达式 c=d 成立,则执行 c=6.0;否则,执行 c=7.0;输出 c 中的值3.

17、0 小于 4.0,因此表达式 cd 不成立,执行第二个 ifelse。3.0 不等于 4.0,因此表达式 c=d 不成立,执行 c=7.0,将 7.0 赋给 c,覆盖掉 c 中的3.0,此时 c 中的值为 7.0输出此时的 c 中的值6.6.#include#include main()main()int m;int m;scanf(%d,&m);scanf(%d,&m);if(m=0)if(m=0)i if(m%2=0)f(m%2=0)printf(%d is a positive evenn,m);printf(%d is a positive evenn,m);else elseprin

18、tf(%d is a positive oddn,m);printf(%d is a positive oddn,m);elseelse if(m%2=0)printf(%d is a negative evenn,m);if(m%2=0)printf(%d is a negative evenn,m);else printf(%d is a negative oddn,m);else printf(%d is a negative oddn,m);若键入若键入9 9,则运行结果为,则运行结果为:-9 is a negative odd:-9 is a negative odd第 2 此循环:

19、执行 num+;即将 num 中的值加 1,执行后 num 为 2;执行 printf(%dn,num);在屏幕上输出 num 中的值,即输出 2,之后7.7.#include#include main()main()int num=0 int num=0;while(num=2)num+while(num=2)num+;printf(%dn,num)printf(%dn,num);运行结果为:运行结果为:1 12 23 3详见教材详见教材 p115p115 循环结构循环结构当循环条件 num=2 成立的时候,执行循环体 num+;printf(%dn,num);中的语句。循环初值 num 为

20、 0;循环条件 num=2 成立第 1 次循环:执行 num+;即将 num 中的值加 1,执行后 num 为 1;执行 printf(%dn,num);在屏幕上输出 num 中的值,即输出 1,之后换行此时 num 中的值为 1,循环条件 num=2 成立换行此时 num 中的值为 2,循环条件 num=2 成立第 3 此循环:执行 num+;即将 num 中的值加 1,执行后 num 为 3;执行 printf(%dn,num);在屏幕上输出 num 中的值,即输出 3,之后换行此时 num 中的值为 3,循环条件 num=2 不成立,结束循环。8 8#include#include ma

21、in()main()int sum=10,n=1;int sum=10,n=1;while(n3)sum=sum-n;n+;while(n3)sum=sum-n;n+;printf(printf(“%d,%d%d,%d”,n,sum);,n,sum);运行结果为:运行结果为:3,73,7当循环条件 n3 成立的时候,执行循环体sum=sum-n;n+;中的语句。循环初值 sum 为 10,n 为 1;循环条件 n3 成立第 1 次循环:执行 sum=sum-n=10-1=9;执行 n+,即将 n 中的值加 1,执行后 n 为 2;此时 n 中的值为 2,sum 中的值为 9,循环条件 n3 成

22、立,继续执行循环第 2 次循环:执行 sum=sum-n=9-2=7;执行 n+,即将 n 中的值加 1,执行后 n 为 3;输出此时 n,sum 中的值,即为 3,7。需要注意,在 printf(“%d,%d”,n,sum);中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号9.9.#include#include main()main()int num,c;int num,c;scanf(%d,&num);scanf(%d,&num);do c=num%10;printf(%d,c);while(num/=10)0);num=0 do c=num%10;printf(%d,

23、c);while(num/=10)0);num=0printf(n);printf(n);从键盘输入从键盘输入 2323,则运行结果为:,则运行结果为:3 23 2详见教材详见教材 p117p117 循环结构;循环结构;p60p60 复合的赋值运算符复合的赋值运算符do while(do while(表达式表达式););先无条件执行循环体,再判断循环条件。注意先无条件执行循环体,再判断循环条件。注意 whilewhile(表达式)后有分号(表达式)后有分号定义整型变量 num,c;为 num 赋一个整型值;执行c=num%10;printf(%d,c);直到循环条件(num/=10)0 不成立

24、;输出换行已知为 num 赋值 23第 1 次执行循环体执行 c=num%10=23%10=3;执行 printf(%d,c);输出 3判断循环条件 num/=10 等价于 num=num/10;因此 num=23/10=2,2 大于 0,因此循环条件(num/=10)0 成立,继续执行循环体。执行完第 1 次循环时,num 为 2,c 为 3第 2 次执行循环体执行 c=2%10=2;执行 printf(%d,c);再输出 2判断循环条件 num=2/10=0,0 等于 0,因此循环条件(num/=10)0 不成立。结束循环1010#include#include main()main()i

25、nt s=0,a=5,n;int s=0,a=5,n;scanf(%d,&n);scanf(%d,&n);do s+=1;a=a-2;while(a!=n);do s+=1;a=a-2;while(a!=n);printf(%dprintf(%d,%dn,s,a);%dn,s,a);若输入的值若输入的值 1 1,运行结果为:,运行结果为:2,1 2,1详见教材详见教材 p117p117 循环结构;循环结构;p60p60 复合的赋值运算符复合的赋值运算符执行 s+=1;a=a-2;直到循环条件 a!=n 不成立;已知为 n 赋值 1,s 为 0,a 为 5第 1 次执行循环体执行 s+=1;等价

26、于 s=s+1=0+1执行 a=a-2;a=5-2=3判断循环条件,3 不等于 1,因此循环条件 a!=n 成立,继续执行循环体。执行完第 1 次循环时,s 为 1,a 为 3第 2 次执行循环体执行 s+=1;等价于 s=s+1=1+1=2执行 a=a-2;a=3-2=1判断循环条件,1 等于 1,因此循环条件 a!=n 不成立,结束循环。执行完第 2 次循环时,s 为 2,a 为 1输出此时 s,a 中的值,结果为 2,11111#include stdio.h#include stdio.hmain()main()char c;char c;c=getchar();c=getchar()

27、;while(c!=?)putchar(c);c=getchar();while(c!=?)putchar(c);c=getchar();如果从键盘输入如果从键盘输入 abcdeabcde?fghfgh(回车)(回车)运行结果为:运行结果为:abcdeabcde1212#include#include main()main()char c;char c;while(c=getchar()!=while(c=getchar()!=$)if(if(A A=c&c=c&c=Z Z)putchar(c);)putchar(c);else if(else if(a a=c&c=c&c=z z)putch

28、ar(c-32);)putchar(c-32);当输入为当输入为 ab*AB%cd#CD$ab*AB%cd#CD$时,运行结果为:时,运行结果为:ABABCDCDABABCDCD13.13.#include#include main()main()int x,y=0;int x,y=0;for(x=1;x=10;x+)for(x=1;x=10)if(y=10)break;break;y=y+x;y=y+x;printf(printf(“%d%d%d%d”,y,x);,y,x);运行结果为:运行结果为:10 510 5详见教材详见教材 p120 forp120 for 语句语句详见教材详见教材

29、p126128 breakp126128 break,continuecontinue 语句语句for(for(表达式表达式 1;1;表达式表达式 2;2;表达式表达式 3)3)(1)(1)先求解表达式先求解表达式 1 1(2)(2)求解表达式求解表达式 2 2,若其值为真,执行循环体,然后执行,若其值为真,执行循环体,然后执行(3).(3).若为假,则结束循环,若为假,则结束循环,转到转到(5)(5)(3)(3)求解表达式求解表达式 3 3(4)(4)转回上面转回上面(2)(2)继续执行继续执行(5)(5)循环结束,执行循环结束,执行 forfor 语句下面的一个语句语句下面的一个语句bre

30、akbreak,跳出循环体;,跳出循环体;continue,continue,结束本次循环(第结束本次循环(第 i i 次循环),继续执行下一次循环次循环),继续执行下一次循环(第第 i+1i+1 次循环次循环)此题 表达式 1 为 x=1,表达式 2(循环条件)为 x=10,表达式 3 为 x+初值 x 为 1,y 为 0,循环条件(即表达式 2)x=10 成立,进入循环体第 1 次循环执行 if 语句。0 小于 10,if 语句的条件表达式不成立,不执行 break;执行 y=y+x;y=0+1=1转向表达式 3,执行 x+,x=x+1=1+1=2。循环条件 x=10 成立,进入第 2 次

31、循环第 2 次循环执行 if 语句。1 小于 10,if 语句的条件表达式不成立,不执行 break;执行 y=y+x;y=1+2=3转向表达式 3,执行 x+,x=x+1=2+1=3。循环条件 x=10 成立,进入第 3 次循环第 3 次循环执行 if 语句。3 小于 10,if 语句的条件表达式不成立,不执行 break;执行 y=y+x;y=3+3=6转向表达式 3,执行 x+,x=x+1=3+1=4。循环条件 x=10 成立,进入第 4 次循环第 4 次循环执行 if 语句。6 小于 10,if 语句的条件表达式不成立,不执行 break;执行 y=y+x;y=6+4=10转向表达式

32、3,执行 x+,x=x+1=4+1=5。循环条件 x=10 成立,进入第 5 次循环第 5 次循环执行 if 语句。10 等于 10,if 语句的条件表达式成立,执行 break,跳出循环。从 break 跳出至 for 语句的下一条语句。执行 printf(“%d%d”,y,x);输出当前的 y 与 x.结果为 10 514.14.#include#include main()main()char ch;char ch;ch=getchar();ch=getchar();switch(ch)switch(ch)case caseA A:printf(:printf(“%c%c”,A A);)

33、;case caseB B:printf(:printf(“%c%c”,B B);break;);break;default:printf(default:printf(“%sn%sn”,”otherother”););当从键盘输入字母当从键盘输入字母 A A 时,运行结果为:时,运行结果为:ABAB详见教材详见教材 p103p103,switchswitch 语句语句switchswitch(表达式)(表达式)casecase常量常量 1 1:语句:语句 1 1 case case常量常量 2 2:语句:语句 2 2 case case常量常量 n n:语句:语句 n n default :

34、default :语句语句 n+1n+1 其中表达式,常量其中表达式,常量 1 1,常量,常量 n n 都为整型或字符型都为整型或字符型casecase 相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处开始往下执行程序,不再匹配常量,直至遇到行程序,不再匹配常量,直至遇到 breakbreak 或或 switchswitch 结束结束本题过程:首先从键盘接收一个字符A并将其放在变量 ch 中。执行 switch 语句。Switch 后面的条件表达式为 ch,因此表达式的值即为字符A.用字符A依次与下面的 ca

35、se 中的常量匹配。与第 1 个 case 后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行 printf(“%c”,A),屏幕上输出 A;再往下继续执行printf(“%c”,B),屏幕上输出 B;再继续执行 break,此时跳出 switch 语句。15.15.#include#include main()main()int a=1,b=0 int a=1,b=0;scanf(scanf(“%d%d”,&a);,&a);switch(a)switch(a)case 1:b=1 case 1:b=1;breakbreak;case 2:b=2case 2:

36、b=2;breakbreak;default:b=10default:b=10;printf(%d,b)printf(%d,b);若键盘输入若键盘输入 5 5,运行结果为:,运行结果为:1010本题过程:首先用 scanf 函数为变量 a 赋值为 5。执行 switch 语句。switch 后面的条件表达式为 a,因此表达式的值即为 5.用 5 依次与下面 case 中的常量匹配。没有找到匹配的常量,因此两个case 后的语句都不执行。执行 default 后面的语句 b=10;将 10 赋给变量 b。输出变量 b,结果为 1016.16.与第 3 个 case 后的常量匹配,则从其后的语句开

37、始往下执行程序(在执行过程中不再进行匹配。)因此先执行 printf(“70-80n”);,屏幕上输出 70-80,并换行;再往下继续执行 printf(“60-70n”),屏幕上输出 60-70,并换行;再继续执行 break,此时#include#include main()_ main()_ char grade=char grade=C C;switch(grade)switch(grade)casecase A A:printf(:printf(“90-100n90-100n”););case case B B:printf(:printf(“80-90n80-90n”););cas

38、ecase C C:printf(:printf(“70-80n70-80n”););casecase D D:printf(:printf(“60-70n60-70n”);break;);break;casecase E E:printf(:printf(“60n60n”););default:printf(default:printf(“error!nerror!n”););运行结果为:运行结果为:70-8070-8060-7060-70本题过程:首先从键盘接收一个字符C并将其放在变量 grade 中。执行 switch 语句。switch 后面的条件表达式为 grade,因此表达式的值即

39、为字符C.用字符C依次与下面的 case 中的常量匹配。跳出 switch 语句。17.17.#include#include main()main()int y=9;int y=9;for(;y0;y-)for(;y0;y-)if(y%3=0)if(y%3=0)printf(%d printf(%d”,-y);,-y);运行结果为:运行结果为:852852详见教材详见教材 p53p53,自增自减符号,自增自减符号此题 表达式 1 被省略,表达式 2(循环条件)为 y0,表达式 3 为 y-初值 y 为 9,循环条件(即表达式 2)y0 成立,进入循环体第 1 次循环执行 if 语句。9%3=

40、0,if 语句的条件表达式成立,执行 printf(%d”,-y),即先自减 1 变为 8,然后在输出,因此屏幕上输出 8y转向表达式 3,执行 y-,y=y-1=8-1=7。循环条件 y0 成立,进入第 2 次循环第 2 次循环执行 if 语句。7%3 不为 0,if 语句的条件表达式不成立,不执行 printf(%d”,-y)转向表达式 3,执行 y-,y=y-1=7-1=6。循环条件 y0 成立,进入第 3 次循环第 3 次循环执行 if 语句。6%3=0,if 语句的条件表达式成立,执行 printf(%d”,-y),即 y先自减 1 变为 5,然后在输出,因此屏幕上输出 5转向表达式

41、 3,执行 y-,y=y-1=5-1=4。循环条件 y0 成立,进入第 4 次循环第 4 次循环执行 if 语句。4%3 不为 0,if 语句的条件表达式不成立,不执行 printf(%d”,-y)转向表达式 3,执行 y-,y=4-1=3。循环条件 y0 成立,进入第 5 次循环第 5 次循环执行 if 语句。3%3=0,if 语句的条件表达式成立,执行 printf(%d”,-y),即 y先自减 1 变为 2,然后在输出,因此屏幕上输出 2转向表达式 3,执行 y-,y=y-1=2-1=1。循环条件 y0 成立,进入第 5 次循环第 6 次循环执行 if 语句。1%3 不为 0,if 语句

42、的条件表达式不成立,不执行 printf(%d”,-y)转向表达式 3,执行 y-,y=1-1=0。循环条件 y0 不成立,循环结束。18.18.#include#include main()main()int i,sum=0;i=1;int i,sum=0;i=1;do sum=sum+i;i+;while(i=10);do sum=sum+i;i+;while(i=10);printf(printf(“%d%d”,sum);,sum);运行结果为:运行结果为:55 5519.19.#include#include#define N 4#define N 4main()main()int i

43、;int i;int x1=1,x2=2;int x1=1,x2=2;printf(n);printf(n);for(i=1;i=N;i+)for(i=1;i=N;i+)printf(%4d%4d,x1,x2);printf(%4d%4d,x1,x2);if(i%2=0)if(i%2=0)printf(n);printf(n);x1=x1+x2;x1=x1+x2;x2=x2+x1;x2=x2+x1;运行结果为:运行结果为:1 2 3 51 2 3 58 13 21 348 13 21 34此题 首先为整型变量赋初值 x1=1,x2=2表达式 1 为 i=1,表达式 2(循环条件)为 i=N 即

44、 i=4,表达式 3 为 i+循环变量初值 i 为 1,循环条件(即表达式 2)i=4 成立,进入第 1 次循环第 1 次循环执行 printf(%4d%4d,x1,x2);因此屏幕上输出 1 2执行 if 语句。1%2 不为 0,if 语句的条件表达式不成立,不执行 printf(n);执行 x1=x1+x2=1+2=3;此时 x1 中的值已变为 3执行 x2=x2+x1=2+3=5。转向表达式 3,执行 i+,i 为 2。循环条件 i=4 成立,进入第 2 次循环第 2 次循环执行 printf(%4d%4d,x1,x2);因此屏幕上输出 3 5执行 if 语句。2%2=0,if 语句的条

45、件表达式成立,执行 printf(n);printf(n);换行换行执行 x1=x1+x2=3+5=8;此时 x1 中的值已变为 8执行 x2=x2+x1=5+8=13。转向表达式 3,执行 i+,i 为 3。循环条件 i=4 成立,进入第 3 次循环第 3 次循环执行 printf(%4d%4d,x1,x2);因此屏幕上输出 8 13执行 if 语句。3%2 不为 0,if 语句的条件表达式不成立,不执行 printf(n);执行 x1=x1+x2=8+13=21;此时 x1 中的值已变为 21执行 x2=x2+x1=21+13=34。转向表达式 3,执行 i+,i 为 4。循环条件 i=4

46、 成立,进入第 4 次循环第 2 次循环执行 printf(%4d%4d,x1,x2);因此屏幕上输出 21 34执行 if 语句。4%2=0,if 语句的条件表达式成立,执行 printf(n);printf(n);换行换行执行 x1=x1+x2=21+34=55;此时 x1 中的值已变为 55执行 x2=x2+x1=34+55=89。转向表达式 3,执行 i+,i 为 5。循环条件 i=4 不成立,结束循环2020#include#include main()main()int x,y;int x,y;for(x=30,y=0;x=10,y=10,y10;x-,y+)x/=2,y+=2;x

47、/=2,y+=2;printf(printf(“x=%d,y=%dnx=%d,y=%dn”,x,y);,x,y);运行结果为:运行结果为:x=0,y=12x=0,y=1221.21.#include#include#define N 4#define N 4main()main()int i,j;int i,j;外层 for 循环第 1 次此时 i 为 1内层循环 j=1,使得循环条件 ji 不成立,因此不执行内层循环体(不输出空格)执行 printf(*);执行 printf(n);换行至此外层循环体执行完,计算外层循环的表达式3,i+,此时 i 为 2.使得循环条 for(i=1;i=N;

48、i+)for(i=1;i=N;i+)for(j=1;ji;j+)for(j=1;ji;j+)printf();printf();printf(*);printf(*);printf(n);printf(n);运行结果为:运行结果为:*详见教材详见教材 P41P41 符号常量符号常量用宏处理指令定义符号常量 N 为 4,在编译过程中,遇到 N 即视为整数 4。外层 for 循环,表达式 1 为 i=1,表达式 2(循环条件)为 i=N,表达式 3 为 i+内层 for 循环,表达式 1 为 j=1,表达式 2(循环条件)为 ji,表达式 3 为 j+首先计算外层循环的表达式 1,i 为 1,使得

49、循环条件 i=4 成立,进入外层 for 循环体件 i=4成立,再次进入外层 for 循环体外层 for 循环第 2 次此时 i 为 2内层循环 j=1,使得循环条件 ji 成立第 1 次执行内层循环体 printf();执行内层循环表达式 3,j+为 2,ji 不成立,跳出内层循环执行 printf(*);执行 printf(n);换行至此外层循环体执行完,计算外层循环的表达式3,i+,此时 i 为 3.件 i=4成立,进入外层 for 循环体外层 for 循环第 3 次此时 i 为 3内层循环 j=1,使得循环条件 ji 成立第 1 次执行内层循环体 printf();执行内层循环表达式

50、3,j+为 2,ji 成立,再次执行内层循环第 2 次执行内层循环体 printf();执行内层循环表达式 3,j+为 3,ji 不成立,跳出内层循环使得循环条执行 printf(*);执行 printf(n);换行数组1.1.至此外层循环体执行完,计算外层循环的表达式3,i+,此时 i 为 4.使得循环条件 i=4成立,进入外层 for 循环体外层 for 循环第 4 次此时 i 为 4内层循环 j=1,使得循环条件 ji 成立第 1 次执行内层循环体 printf();执行内层循环表达式 3,j+为 2,ji 成立,再次执行内层循环第 2 次执行内层循环体 printf();执行内层循环表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁