ImageVerifierCode 换一换
格式:PDF , 页数:89 ,大小:189.93KB ,
资源ID:10595519      下载积分:18 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10595519.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(大学C语言考试题(含答案).pdf)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

大学C语言考试题(含答案).pdf

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

2、)函数开始执行 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 t 6下列 C语言用户标识符中合法的是(B)。A)3ax B)x C)case D)-e2 E)union 7下列四组选项中,正确的C语言标识符是(C )。A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识

3、符的是(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.age 9.C 语言中的简单数据类型包括(D )。A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型10.在 C语言程序中,表达式5%2的结果是 C 。A)2.5 B)2 C)1 D)3 11如果 int a=3,b=4;则条件表达式 ab?a:b 的值是 _A_。A)3 B)4 C)0 D)1 12若 int x=2,y=3,z=4 则表达

4、式 xage D)(*p).age 33.设有如下定义:struck sk int a;float b;data;int*p;若要使 P指向 data 中的 a 域,正确的赋值语句是 C A)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 stu是用户定义的结构类型 C、a 和 b 都是结构成员名D、stutype 是用户定义的结构体变量名35 语句 int*p;说明了 C 。

5、A)p 是指向一维数组的指针B)p 是指向函数的指针,该函数返回一 int型数据C)p 是指向 int型数据的指针 /指针的定义教材 P223 D)p 是函数名,该函数返回一指向int型数据的指针36下列不正确的定义是(A )。A.int*p=&i,i;B.int*p,i;C int 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=n 38有语句:int a10,;则 B 是对指针变量 p 的正确定义和初始化。A)int p=*a;B)int*p=a;C)int p=&

6、a;D)int*p=&a;39.若有说明语句“int a5,*p=a;”,则对数组元素的正确引用是(C)。A.ap B.pa C.*(p+2)D.p+2 40.有如下程序int a10=1,2,3,4,5,6,7,8,9,10,*P=a;则数值为 9 的表达式是 B A)*P+9 B)*(P+8)C)*P+=9 D)P+8 一、读程序基本输入输出及流程控制1.#include main()int a=1,b=3,c=5;if(c=a+b)printf(yesn);else printf(non);运行结果为:no 详见教材 p89 选择结构详见教材 p91 关系符号详见附录 D p378 符号

7、的优先级=表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变量本题考点是选择结构3 种基本形式的第二种选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用 括起来,只有当复合语句中只包括一条语句时可以省略 ,此题即如此,因此两个printf操作没有加 若 c=a+b成立,则执行 printf(yesn);否则(即 c=a+b不成立),执行printf(non);+的优先级高于=,因此先算 a+b,值为 4,表达式 5=4不成立,因此执行printf(non);即输出字符串 no 2.#include main()int a=12,b=-34,c=56,min=0;min=a;

8、if(minb)min=b;if(minc)min=c;printf(min=%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 小于

9、 56,第二个 if语句的表达式不成立,因此不执行min=c;最后输出 min 中的值,为-34.3.#include main()int x=2,y=-1,z=5;if(xy)if(y0)z=0;else z=z+1;printf(“%dn”,z);运行结果为:5 遇到选择结构,首先要明确条件表达式成立时执行哪些操作。本题中,第一个if语句,其后的复合语句没有大括号 ,说明复合语句中只包含一条语句,进而省略了 。内层的 if.else.是选择结构的第二种基本形式,在结构上视为一条语句。因此内层的if.else.作为第一个 if语句的复合语句。若表达式 xy 成立,则继续判断若 y=0),执行

10、 z=z+1;输出 z 2-1,表达式 xy 不成立,因此不执行内层的if else.进而 z 中的值没有被改变。输出 z 中的值为 5 4.#include main()float a,b,c,t;a=3;b=7;c=1;if(ab)t=a;a=b;b=t;if(ac)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,3.00,7.00 详见教材 p72 数据的输出形式本题包含了 3 个 if语句,每个 if语句后的 都不可省略,因为每个 中都包含了多条语句若表达式 ab 成立,则执

11、行 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;3 大于 1,因此表达式 ac 成立,则执行 t=a;a=b;b=t;。第一句,将 a 中的 3 拷贝,粘贴到 t 中;第二句,将 c 中的 1 拷贝,粘贴到 a 中,覆盖掉先前的3;第三句。将 t 中的 3 拷贝到 c 中,覆盖掉 c 中先前的 1.执行完复合语句后实现了a,c 元素的值的互换,

12、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.00 5#include main()float c=3.0,d=4.0;if(cd)c=5.0;else if(c=d)c=6.0;else c=7.0;printf(“%.1fn”,c);运行结果为:7.0 此题为 if.else.语句的嵌套,第二if.else.作为第一个 if.else.语句 else 部分的复合语句。若表达式 cd 成立,则执行 c=5.0;否则(

13、表达式 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 中的 3.0,此时 c 中的值为 7.0 输出此时的 c 中的值6.#include main()int m;scanf(%d,&m);if(m=0)i f(m%2=0)printf(%d is a positive evenn,m);else printf(%d is a positive oddn,m);else

14、if(m%2=0)printf(%d is a negative evenn,m);else printf(%d is a negative oddn,m);若键入 9,则运行结果为:-9 is a negative odd 7.#include main()int num=0;while(num=2)num+;printf(%dn,num);运行结果为:1 2 3 详见教材 p115 循环结构当循环条件 num=2成立的时候,执行循环体 num+;printf(%dn,num);中的语句。循环初值 num为 0;循环条件 num=2成立第 1 次循环:执行 num+;即将 num中的值加 1

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

16、nclude main()int sum=10,n=1;while(n3)sum=sum-n;n+;printf(“%d,%d”,n,sum);运行结果为:3,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成立,继续执行循环第 2 次循环:执行 sum=sum-n=9-2=7;执行 n+,即将 n 中的值加 1,执行后 n 为 3;输出

17、此时 n,sum 中的值,即为 3,7。需要注意,在printf(“%d,%d”,n,sum);中要求输出的数据彼此间用逗号间隔,因此结果的两个数据间一定要有逗号9.#include main()int num,c;scanf(%d,&num);do c=num%10;printf(%d,c);while(num/=10)0);num=0 printf(n);从键盘输入 23,则运行结果为:3 2 详见教材 p117 循环结构;p60 复合的赋值运算符do while(表达式);先无条件执行循环体,再判断循环条件。注意while(表达式)后有分号定义整型变量 num,c;为 num赋一个整型值

18、执行c=num%10;printf(%d,c);直到循环条件(num/=10)0 不成立;输出换行已知为 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

19、)0 不成立。结束循环10#include main()int s=0,a=5,n;scanf(%d,&n);do s+=1;a=a-2;while(a!=n);printf(%d,%dn,s,a);若输入的值 1,运行结果为:2,1 详见教材 p117 循环结构;p60 复合的赋值运算符执行 s+=1;a=a-2;直到循环条件 a!=n 不成立;已知为 n 赋值 1,s 为 0,a 为 5 第 1 次执行循环体执行 s+=1;等价于 s=s+1=0+1 执行 a=a-2;a=5-2=3 判断循环条件,3 不等于 1,因此循环条件 a!=n 成立,继续执行循环体。执行完第 1 次循环时,s 为

20、 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,1 11#include stdio.h main()char c;c=getchar();while(c!=?)putchar(c);c=getchar();如果从键盘输入abcde?fgh(回车)运行结果为:abcde 12#include main()char c;while(c=getchar()!=$)if(A=

21、c&c=Z)putchar(c);else if(a=c&c=z)putchar(c-32);当输入为 ab*AB%cd#CD$时,运行结果为:ABABCDCD 13.#include main()int x,y=0;for(x=1;x=10)break;y=y+x;printf(“%d%d”,y,x);运行结果为:10 5 详见教材 p120 for语句详见教材 p126128 break,continue语句for(表达式 1;表达式 2;表达式 3)(1)先求解表达式 1 (2)求解表达式 2,若其值为真,执行循环体,然后执行(3).若为假,则结束循环,转到(5)(3)求解表达式 3 (

22、4)转回上面 (2)继续执行(5)循环结束,执行for 语句下面的一个语句break,跳出循环体;continue,结束本次循环(第i 次循环),继续执行下一次循环(第 i+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 次循环第 2 次循环执行 if语句。1

23、 小于 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 转向表达式 3,执行 x+,x=x+1=4+1=5。循环条件 x

24、10成立,进入第 5 次循环第 5 次循环执行 if语句。10 等于 10,if语句的条件表达式成立,执行break,跳出循环。从 break 跳出至 for 语句的下一条语句。执行printf(“%d%d”,y,x);输出当前的 y 与 x.结果为 10 5 14.#include main()char ch;ch=getchar();switch(ch)case A:printf(“%c”,A);case B:printf(“%c”,B);break;default:printf(“%sn”,”other”);当从键盘输入字母A时,运行结果为:AB 详见教材 p103,switch 语句

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

26、序(在执行过程中不再进行匹配。)因此先执行printf(“%c”,A),屏幕上输出 A;再往下继续执行 printf(“%c”,B),屏幕上输出 B;再继续执行 break,此时跳出switch 语句。15.#include main()int a=1,b=0;scanf(“%d”,&a);switch(a)case 1:b=1;break;case 2:b=2;break;default:b=10;printf(%d,b);若键盘输入 5,运行结果为:10 本题过程:首先用 scanf 函数为变量 a 赋值为 5。执行 switch 语句。switch 后面的条件表达式为a,因此表达式的值即

27、为5.用 5依次与下面 case 中的常量匹配。没有找到匹配的常量,因此两个case 后的语句都不执行。执行 default后面的语句 b=10;将 10 赋给变量 b。输出变量 b,结果为 10 16.#include main()_ char grade=C;switch(grade)case A:printf(“90-100n”);case B:printf(“80-90n”);case C:printf(“70-80n”);case D:printf(“60-70n”);break;case E:printf(“60n”);default:printf(“error!n”);运行结果为

28、70-80 60-70 本题过程:首先从键盘接收一个字符C并将其放在变量 grade 中。执行 switch 语句。switch 后面的条件表达式为grade,因此表达式的值即为字符C.用字符 C依次与下面的 case 中的常量匹配。与第 3 个 case 后的常量匹配,则从其后的语句开始往下执行程序(在执行过程中不再进行匹配。)因此先执行printf(“70-80n”);,屏幕上输出 70-80,并换行;再往下继续执行 printf(“60-70n”),屏幕上输出 60-70,并换行;再继续执行break,此时跳出 switch 语句。17.#include main()int y=9;f

29、or(;y0;y-)if(y%3=0)printf(%d”,-y);运行结果为:852 详见教材 p53,自增自减符号此题 表达式 1 被省略,表达式2(循环条件)为 y0,表达式 3 为 y-初值 y 为 9,循环条件(即表达式2)y0 成立,进入循环体第 1 次循环执行 if语句。9%3=0,if语句的条件表达式成立,执行printf(%d”,-y),即 y 先自减 1 变为 8,然后在输出,因此屏幕上输出8 转向表达式 3,执行 y-,y=y-1=8-1=7。循环条件 y0 成立,进入第 2 次循环第 2 次循环执行 if语句。7%3不为 0,if语句的条件表达式不成立,不执行print

30、f(%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 转向表达式 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,i

31、f语句的条件表达式成立,执行printf(%d”,-y),即 y 先自减 1 变为 2,然后在输出,因此屏幕上输出2 转向表达式 3,执行 y-,y=y-1=2-1=1。循环条件 y0 成立,进入第 5 次循环第 6 次循环执行 if语句。1%3不为 0,if语句的条件表达式不成立,不执行printf(%d”,-y)转向表达式 3,执行 y-,y=1-1=0。循环条件 y0 不成立,循环结束。18.#include main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=10);printf(“%d”,sum);运行结果为:55 19.#include#de

32、fine N 4 main()int i;int x1=1,x2=2;printf(n);for(i=1;i=N;i+)printf(%4d%4d,x1,x2);if(i%2=0)printf(n);x1=x1+x2;x2=x2+x1;运行结果为:1 2 3 5 8 13 21 34 此题 首先为整型变量赋初值x1=1,x2=2 表达式 1 为 i=1,表达式 2(循环条件)为 i=N 即 i=4,表达式 3 为 i+循环变量初值 i 为 1,循环条件(即表达式2)i=4 成立,进入第 1 次循环第 1 次循环执行 printf(%4d%4d,x1,x2);因此屏幕上输出1 2 执行 if语句

33、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语句的条件表达式成立,执行printf(n);换行执行 x1=x1+x2=3+5=8;此时 x1 中的值已变为 8 执行 x2=x2+x1=5+8=13。转向表达式 3,执行 i+,i为 3。循环条件 i=4 成立,进入第 3 次

34、循环第 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 成立,进入第 4 次循环第 2 次循环执行 printf(%4d%4d,x1,x2);因此屏幕上输出21 34 执行 if语句。4%2=0,if语句的条件表达式成立,执行printf(n);换行执行 x1=x1+x2=21+34=55;此时 x1 中的值

35、已变为 55 执行 x2=x2+x1=34+55=89。转向表达式 3,执行 i+,i为 5。循环条件 i=4 不成立,结束循环20#include main()int x,y;for(x=30,y=0;x=10,y10;x-,y+)x/=2,y+=2;printf(“x=%d,y=%dn”,x,y);运行结果为:x=0,y=12 21.#include#define N 4 main()int i,j;for(i=1;i=N;i+)for(j=1;ji;j+)printf();printf(*);printf(n);运行结果为:*详见教材 P41符号常量用宏处理指令定义符号常量N为 4,在编

36、译过程中,遇到N即视为整数 4。外层 for 循环,表达式 1 为 i=1,表达式 2(循环条件)为 i=N,表达式 3 为 i+内层 for 循环,表达式 1 为 j=1,表达式 2(循环条件)为 ji,表达式 3 为 j+首先计算外层循环的表达式1,i 为 1,使得循环条件 i=4 成立,进入外层for 循环体外层 for 循环第 1 次此时 i 为 1 内层循环 j=1,使得循环条件 ji不成立,因此不执行内层循环体(不输出空格)执行 printf(*);执行 printf(n);换行至此外层循环体执行完,计算外层循环的表达式3,i+,此时 i 为 2.使得循环条件 i=4 成立,再次进

37、入外层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();执行内层循环表达式3,j+为 2,ji成立,再次执行内层循环第 2 次执行内层循环体pri

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

39、j+为 4,ji不成立,跳出内层循环执行 printf(*);执行 printf(n);换行至此外层循环体执行完,计算外层循环的表达式3,i+,此时 i 为 5.使得循环条件 i=4 不成立,跳出外层for 循环体数组1.#include main()int i,a10;for(i=9;i=0;i-)ai=10-i;printf(“%d%d%d”,a2,a5,a8);运行结果为:852 详见 p143-146.例题 6.1 一定看懂!首先定义整型变量i,整型数组 a,a 的长度为 10,即 a 中包含 10 个整型元素(整型变量)执行 for 循环语句初值 i=9,使得循环条件 i=0 成立,

40、执行循环体第 1 次循环执行 ai=10-i 等价于 a9=10-9=1 计算表达式 3,即 i-,i 为 8,使得循环条件 i=0 成立,继续执行循环体第 2 次循环执行 ai=10-i 等价于 a8=10-8=2 计算表达式 3,即 i-,i 为 7,使得循环条件 i=0 成立,继续执行循环体第 3 次循环执行 ai=10-i 等价于 a7=10-7=3 计算表达式 3,即 i-,i 为 6,使得循环条件 i=0 成立,继续执行循环体第 4 次循环执行 ai=10-i 等价于 a6=10-6=4 计算表达式 3,即 i-,i 为 5,使得循环条件 i=0 成立,继续执行循环体第 5 次循环

41、执行 ai=10-i 等价于 a5=10-5=5 计算表达式 3,即 i-,i 为 4,使得循环条件 i=0 成立,继续执行循环体第 6 次循环执行 ai=10-i 等价于 a4=10-4=6 计算表达式 3,即 i-,i 为 3,使得循环条件 i=0 成立,继续执行循环体第 7 次循环执行 ai=10-i 等价于 a3=10-3=7 计算表达式 3,即 i-,i 为 2,使得循环条件 i=0 成立,继续执行循环体第 8 次循环执行 ai=10-i 等价于 a2=10-2=8 计算表达式 3,即 i-,i 为 1,使得循环条件 i=0 成立,继续执行循环体第 9 次循环执行 ai=10-i 等

42、价于 a1=10-1=9 计算表达式 3,即 i-,i 为 0,使得循环条件 i=0 成立,继续执行循环体第 10 次循环执行 ai=10-i 等价于 a0=10-0=10 计算表达式 3,即 i-,i 为-1,使得循环条件 i=0 不成立,跳出循环体2.#include main()int i,a6;for(i=0;i=0;i-)printf(%3d,ai);运行结果为:5 4 3 2 1 0 首先定义整型变量i,整型数组 a,a 的长度为 6,即 a 中包含 6 个整型元素(整型变量)执行第一个 for 循环语句初值 i=0,使得循环条件 i6 成立,执行循环体第 1 次循环执行 ai=i

43、 等价于 a0=0 计算表达式 3,即 i+,i 为 1,使得循环条件 i6 成立,继续执行循环体第 2 次循环执行 ai=i 等价于 a1=1 计算表达式 3,即 i+,i 为 2,使得循环条件 i6 成立,继续执行循环体第 3 次循环执行 ai=i 等价于 a2=2 计算表达式 3,即 i+,i 为 3,使得循环条件 i6 成立,继续执行循环体第 4 次循环执行 ai=i 等价于 a3=3 计算表达式 3,即 i+,i 为 4,使得循环条件 i6 成立,继续执行循环体第 5 次循环执行 ai=i 等价于 a4=4 计算表达式 3,即 i+,i 为 5,使得循环条件 i6 成立,继续执行循环

44、体第 6 次循环执行 ai=i 等价于 a5=5 计算表达式 3,即 i+,i 为 6,使得循环条件 i=0 成立,执行循环体第 1 次循环执行 printf(%3d,ai);即输出 a5 的值计算表达式 3,即 i-,i 为 4,使得循环条件 i=0 成立,继续执行循环体第 2 次循环执行 printf(%3d,ai);即输出 a4 的值计算表达式 3,即 i-,i 为 3,使得循环条件 i=0 成立,继续执行循环体第 3 次循环执行 printf(%3d,ai);即输出 a3 的值计算表达式 3,即 i-,i 为 2,使得循环条件 i=0 成立,继续执行循环体第 4 次循环执行 print

45、f(%3d,ai);即输出 a2 的值计算表达式 3,即 i-,i 为 1,使得循环条件 i=0 成立,继续执行循环体第 5 次循环执行 printf(%3d,ai);即输出 a1 的值计算表达式 3,即 i-,i 为 0,使得循环条件 i=0 成立,继续执行循环体第 6 次循环执行 printf(%3d,ai);即输出 a0 的值计算表达式 3,即 i-,i 为 6,使得循环条件 i=0 不成立,结束循环3.#include main()int i,k,a10,p3;k=5;for(i=0;i10;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+

46、)k+=pi*2;printf(%dn,k);运行结果为:21 首先定义整型变量i,k,整型数组 a,a 的长度为 10,整型数组 p,p 的长度为 3 k 初值为 5 第一个 for 循环语句为数组a 进行初始化执行完第一个 for 语句后,a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9 (循环过程略)第二个 for 循环语句为数组p 进行初始化初值 i=0,使得循环条件 i3 成立,执行循环体第 1 次循环执行 pi=ai*(i+1);即 p0=a0*(0+1)=a0=0 计算表达式 3,即 i+,i 为 1,使得循环条件 i3 成立,继

47、续执行循环体第 2 次循环执行 pi=ai*(i+1);即 p1=a1*(1+1)=a2=2 计算表达式 3,即 i+,i 为 2,使得循环条件 i3 成立,继续执行循环体第 3 次循环执行 pi=ai*(i+1);即 p2=a2*(2+1)=a6=6 计算表达式 3,即 i+,i 为 3,使得循环条件 i3 不成立,结束循环第三个 for 循环语句初值 i=0,使得循环条件 i3 成立,执行循环体第 1 次循环执行 k+=pi*2;即 k=5+p0*2=5+0=5 计算表达式 3,即 i+,i 为 1,使得循环条件 i3 成立,继续执行循环体第 2 次循环执行 k+=pi*2;即 k=5+p

48、1*2=5+2*2=9 计算表达式 3,即 i+,i 为 2,使得循环条件 i3 成立,继续执行循环体第 1 次循环执行 k+=pi*2;即 k=9+p2*2=9+6*2=21 计算表达式 3,即 i+,i 为 3,使得循环条件 i3 不成立,结束循环4.#include int m33=1,2,3;int n33=1,2,3;main()printf(“%d,”,m10+n00);printf(“%dn”,m01+n10);运行结果为:3,0 详见教材 P149152,图 6.7 看懂!首先定义整型二维数组m,m为 3 行,3 列的二维矩阵,并对其以行的形式初始化m00=1 m01=0 m1

49、2=0 m10=2 m11=0 m22=0 m20=3 m21=0 m22=0 定义整型二维数组n,m为 3 行,3 列的二维矩阵n00=1 n01=2 n12=3 n10=0 n11=0 n22=0 n20=0 n21=0 n22=0 因此 m10+n00=2+1=3 m01+n10=0+0=0 5.#include main()int i;int x33=1,2,3,4,5,6,7,8,9;for(i=1;i3;i+)printf(%d ,xi3-i);运行结果为:6 8 首先按存储顺序为数组x 初始化x00=1 x01=2 x02=3 x10=4 x11=5 x12=6 x20=7 x2

50、1=8 x22=9 初值 i=1,使得循环条件 i3 成立,执行循环体第 1 次循环执行 printf(%d ,xi3-i),打印出 xi3-i,即 x12的值计算表达式 3,即 i+,i 为 2,使得循环条件i3 成立,继续执行循环体第 2 次循环执行 printf(%d ,xi3-i),打印出 xi3-i,即 x21的值计算表达式 3,即 i+,i 为 3,使得循环条件i3 成立,结束循环6.#include main()int n33,i,j;for(i=0;i3;i+)for(j=0;j3;j+)nij=i+j;printf(“%d ”,nij);运行结果为:0 1 2 1 2 3 2

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服