ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:58.93KB ,
文档编号:598323      下载积分:35 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-598323.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(longfei1026)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(2019-C语言二级考试题库(含答案).docx)为本站会员(longfei1026)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

2019-C语言二级考试题库(含答案).docx

1、2019-C 语言二级考试题库(含答案) 一、单项选择题 1 ( A )是构成 C 语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2C 语言程序从 C 开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的 main 函数 D) 包含文件中的第一个函数 3、以下说法中正确的是( C ) 。 A、C 语言程序总是从第一个定义的函数开始执行 B、在 C 语言程序中,要调用的函数必须在 main( )函数中定义 C、C 语言程序总是从 main( )函数开始执行 D、C 语言程序中的 main( )函数必须放在程序的开始部分 4.下列关于 C 语言的说法

2、错误的是( B ) 。 A) C 程序的工作过程是编辑、编译、连接、运行 B) C 语言不区分大小写 C) C 程序的三种基本结构是顺序、选择、循环 D) C 程序从 main 函数开始执行 5.下列正确的标识符是(C ) 。 A.-a1 B.ai C.a2_i D.int t 58 题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成 数字不能作为标识符的开头 关键字不能作为标识符 选项 A 中的“-” ,选项 B 中“”与“”不满足(1) ;选项 D 中的 int 为关键 字,不满足(3) 6下列 C 语言用户标识符中合法的是( B ) 。 A)3ax B)x C)case

3、 D)-e2 E)union 选项 A 中的标识符以数字开头不满足 (2) ; 选项 C, E 均为为关键字, 不满足 (3) ; 选项 D 中的“-”不满足(1) ; 7下列四组选项中,正确的 C 语言标识符是( C ) 。 A) %x B) a+b C) a123 D) 123 选项 A 中的“%” ,选项 B 中“+”不满足(1) ;选项 D 中的标识符以数字开头 不满足(2) 8、下列四组字符串中都可以用作 C 语言程序中的标识符的是( A ) 。 A、print _3d db8 aBc B、Iam one_half start$it 3pai C、str_1 Cpp pow whil

4、e D、Pxq My-book line# His.age 选项 B 中的“” , ”$” ,选项 D 中“” , ”#” , ”.” , ”-”不满足(1) ;选项 C 中的 while 为关键字,不满足(3) 9.C 语言中的简单数据类型包括(D ) 。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在 C 语言程序中,表达式 5%2 的结果是 C 。 A)2.5 B)2 C)1 D)3 详见教材 P5253. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。 5%2=1; 5%(-2)=1; (-5)%

5、2=-1; (-5)%(-2)=-1; /为求商运算符, 该运算符能够对整型、 字符、 浮点等类型的数据进行运算, 5/2=2 11如果 int a=3,b=4;则条件表达式“ab) 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。 若 m

6、inb 成立,则执行 min=b; 若 minc 成立,则执行 min=c; 输出 min 中的值 12 大于-34,第一个 if 语句的表达式成立,因此执行 min=b; 执行后 min 中的值被 更新为-34. -34 小于 56,第二个 if 语句的表达式不成立,因此不执行 min=c; 最后输出 min 中的值,为-34. 3. #include main() int x=2,y= -1,z=5; if(x-1,表达式 xb) 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“,

7、a,b,c); 运行结果为:1.00, 2.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; 3 大于 1, 因此表达式 ac 成立, 则执行t=a;a=b;b=

8、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.00 5 #include main ( ) float c=3.0 , d=4.0; if ( cd ) c=5.

9、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; 否则(表达式 cd 不成立) 若表达式 c=d 成立,则执行 c=6.0; 否则,执行 c=7.0; 输出 c 中的值 3.0 小于 4.0,因此表达式 cd 不成立,执行第二个 ifelse。 3.0 不等于 4.0,因此表达式 c=d 不成立,执行 c=7.0,将 7.0 赋给 c, 覆

10、盖掉 c 中的 3.0,此时 c 中的值为 7.0 输出此时的 c 中的值 6. #include main() int m; scanf(“%d“, if (m = 0) if (m%2 = 0) printf(“%d is a positive evenn“, m); else printf(“%d is a positive oddn“, m); else if (m % 2 = 0) printf(“%d is a negative evenn“, m); else printf(“%d is a negative oddn“, m); 若键入9,则运行结果为: -9 is a neg

11、ative odd 7. #include main() int num=0; while(num0); printf(“n“); 从键盘输入 23,则运行结果为:32 详见教材 p117 循环结构;p60 复合的赋值运算符 do while(表达式); 先无条件执行循环体,再判断循环条件。注意 while(表达式)后有分号 定义整型变量 num,c; 为 num 赋一个整型值; 执行c=num%10; printf(“%d“,c); 直到循环条件(num/=10)0 不成立; 输出换行 已知为 num 赋值 23 第 1 次执行循环体 执行 c=num%10=23%10=3; 执行 prin

12、tf(“%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 不成立。结束循 环 10 #include main() int s=0,a=5,n; scanf(“%d“, do s+=1; a=a-2; while(a!=n);

13、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 为 1,a 为 3 第 2 次执行循环体 执行 s+=1;等价于 s=s+1=1+1=2 执行 a=a-2; a=3-2=1 判断循环条件,1

14、 等于 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(A0;y- -) if(y%3=0) , printf(%d”,- -y); 运行结果为: 852 详见

15、教材 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 语句的条件表达式不成立,不执行 printf(%d”,- -y) 转向表达式 3,执行 y-,

16、 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,

17、if 语句的条件表达式成立,执行 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, y=0;i-) ai=10-i

18、; printf(“%d%d%d”,a*2+,a*5+,a*8+); 运行结果为: 852 详见 p143-146. 例题 6.1 一定看懂! 首先定义整型变量 i,整型数组 a, a 的长度为 10,即 a 中包含 10 个整型元素(整 型变量) 执行 for 循环语句 初值 i=9, 使得循环条件 i=0 成立,执行循环体 第 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=

19、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 次循环 执行 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 成立

20、,继续执行循环体 第 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 等价于 a1=10-1=9 计算表达式 3,即 i-,i 为 0,使得循环条件 i=0 成立,继续执行循环体 第 10 次循环 执行 ai=10-i 等价于 a0=10-0=10 计算表达式 3,即 i-,i 为-1,使得循环条件 i=0 不成立,

21、跳出循环体 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, 使得循环条件 i=0 成立,继续执行循环体 第 2 次循环 执行 printf(“%3d“,ai); 即输出 a4的值 计算表达式 3,即 i-,i 为 3,使得循环条件 i=0 成立,继续执行循环体 第 3 次循环 执行 printf(“%3d“,ai); 即输出

22、a3的值 计算表达式 3,即 i-,i 为 2,使得循环条件 i=0 成立,继续执行循环体 第 4 次循环 执行 printf(“%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( )

23、 int i,k=5,a10,p3; for(i=0;i y ) m = x; else m = y; return(m); main() int a=3,b=5,abmin ; abmin = min(a,b); printf(“min is %d” , abmin); 运行结果为: min is 5 3. #include func(int x) x=10; printf(“%d, ”,x); main( ) int x=20; func(x); printf(“%d”, x); 运行结果为: 10, 20 在 main 函数中调用函数 func,main 函数将 20 作为实参穿给 fu

24、nc,并转向开始 执行 func. main()对应的内存 func()对应的内存 20 x 20 x func()执行 x=10;,其内存中 x 变为 10. 10 x func()执行 printf(“%d, ”,x); 即输出 func 函数对应内存中 x 的值,输出的是 10. 至此,func 函数执行结束,返回 main 函数。 main 函数执行 printf(“%d”, x);此时输出 main 函数对应内存中的 x,即 20 4. #include int m=4; int func(int x,int y) int m=1; return(x*y-m); main() int

25、 a=2,b=3; printf(“%dn“,m); printf(“%dn“,func(a,b)/m); 运行结果为: 4 1 整型变量 m 在函数外定义,因此 m 为全局变量,其作用于范围为其定义位置开 始,一直到整个程序结束。因此 func 与 main 函数都可以访问 m 程序首先执行 main 函数 执行 printf(“%dn“,m); 即输出 m 中的值 4,并换行。 执行 printf(“%dn“,func(a,b)/m);即输出表达式 func(a,b)/m 的值,为了计算该表达 式, 需要调用函数 func。此时 main 将 a,b 中的 2 和 3 值作为实参传递给 f

26、unc 的 x 和 y 程序开始转向执行 func 函数,此时 func 中的 x 为 2,y 为 3 执行 int m=1; 此句定义了一个局部变量 m 并赋值为 1 。m 的作用域为其所在的 复合 语句,即 func 的函数体,因此在 func 的函数体重,有限访问局部变量 m。 执行 return(x*y-m); 即 return(2*3-1) ;返回的是整数 5. func 函数返回至 main 函数中的被调用处 main 函数中 func(a,b)的值为 5,func(a,b)/m=5/4=1,注意,在 main 函数中访问的 m 为全局变量 m,此时 main 函数无法访问 fun

27、c 中的 m,因为不在 func 中 m 的 作用域。 5. #include int fun(int a, int b) if(ab) return(a); else return(b); main() int x=15, y=8, r; r= fun(x,y); printf(“r=%dn“, r); 运行结果为:r=15 程序首先执行 main 函数 执行r= fun(x,y);即将func(x,y)的值赋给r, 为了计算该表达式, 需要调用函数func。 此时 main 将 x,y 中的 15 和 8 值作为实参传递给 func 的 a 和 b 程序开始转向执行 func 函数,此时

28、func 中的 a 为 15,b 为 8 执行 if 语句;判断 if 后面的表达式,ab 成立,因此执行相应的操作 return(a);即 返回 a 的值 。 func 函数返回至 main 函数中的被调用处 main 函数中 func(x,y)的值为 15,即将 15 赋给 r。 执行 printf(“r=%dn“, r); 即输出 r=15 6. #include int fac(int n) int f=1,i; for(i=1;ib 成立,因此执行相应的操作 return(a);即 返回 a 的值 。 func 函数返回至 main 函数中的被调用处 main 函数中 func(x,

29、y)的值为 15,即将 15 赋给 r。 执行 printf(“r=%dn“, r); 即输出 r=15 7. #include unsigned fun6(unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num); return k; main() unsigned n=26; printf(“%dn”,fun6(n); 运行结果为:12 程序首先执行 main 函数 执行 printf(“%dn”,fun6(n); 即输出表达式 func(6)的值,为了计算该表达式, 需要调用 函数 func。此时 main 将 n 中的

30、26 作为实参传递给 func 的 num 程序开始转向执行 func 函数,此时 func 中的 num 为 26 执行 do-while 语句 第 1 次循环 执行 k*=num%10,即 k=k*(num%10)=1*(26%10)=6 执行 num/=10;即 num=num/10=26/10=2 while 后面循环条件为 num,此时 num 为 2,是非 0 值,即表示循环条件成立, 继续执行循环体。此时 k 为 6 第 2 次循环 执行 k*=num%10,即 k=k*(num%10)=6*(2%10)=12 执行 num/=10;即 num=num/10=2/10=0 whi

31、le 后面循环条件为 num,此时 num 为 0,表示循环条件不成立, 结束循环 执行 return k; 即返回至 main 函数中的被调用处 执行 main 函数 继续执行 printf(“%dn”,fun6(n); 即输出 12 8. #include int max(int x, int y); main() int a,b,c; a=7;b=8; c=max(a,b); printf(“Max is %d“,c); max(int x, int y) int z; z=xy? x : y; return(z) ; 运行结果为: Max is 8 五、指针 1. # include

32、main ( ) int x = 10, 20, 30, 40, 50 ; int *p ; p=x; printf ( “%d”, *(p+2 ) ); 运行结果为: 30 首先定义一个整型数组 x,x 的长度为 5;然后定义一个指针变量 p;对 p 进行初始 化,将数组 x 的地址赋给 p。因此此时 p 中存放的数组 x 的首地址,即数组中第 一个元素 x0的地址。 然后执行 printf 语句,输出表达式*(p+2)的值。p+2 表示以 p 当前指向的位置起 始,之后第 2 个元素的地址,即 a2的地址。*(p+2)则表示该地址内所存放的内 容,即 a2的值 30,因此输出 30 2.

33、#include main( ) char s*+=”abcdefg”; char *p; p=s; printf(“ch=%cn”,*(p+5); 运行结果为: ch=f 首先定义一个字符型数组 s, 并用字符串 abcdefg 对 s 进行初始化; 然后定义一个 字符型指针变量 p; 对 p 进行初始化,将数组 s 的地址赋给 p。因此此时 p 中存 放的数组 s 的首地址,即数组中第一个元素 s0的地址。 然后执行 printf 语句,输出表达式*(p+5)的值。p+5 表示以 p 当前指向的位置起 始,之后第 5 个元素的地址,即 a5的地址。*(p+5)则表示该地址内所存放的内 容,

34、即 a5的值 f, 因此输出 ch=f 3. #include main ( ) int a=1, 2, 3, 4, 5 ; int x, y, *p; p=a; x=*(p+2); printf(“%d:%d n“, *p, x); 运行结果为: 1:3 首先定义一个整型数组 a,并对 a 进行初始化; 然后定义整型变量 x,y,整型指针 变量 p; 再将数组 a 的地址赋给 p。因此此时 p 中存放的数组 a 的首地址,即数 组中第一个元素 a0的地址。执行 x=*(p+2);p+2 表示以 p 当前所指向的位置起 始,之后第 2 个元素的地址,即 a2的地址。*(p+2)则表示该地址内所

35、存放的内 容,即 a2的值 3,然后再把 3 赋给 x 然后执行 printf 语句,先输出表达式*p 的值。此时*p 表示的是 p 所指向变量的 内容,即 a0的值 1。再输出一个冒号。然后再输出 x 中的值 3。 4. #include main() int arr =30,25,20,15,10,5, *p=arr; p+; printf(“%dn”,*(p+3); 运行结果为:10 首先定义一个整型数组 arr,并对 arr 进行初始化; 然后定义整型指针变量 p; 再 将数组 arr 的地址赋给 p。因此此时 p 中存放的数组 arr 的首地址,即数组中第 一个元素 a0的地址。 执

36、行 p+,即 p=p+1。p+1 表示以 p 当前所指向的位置起始,之后第 1 个元素的 地址,即 arr1的地址,然后再将 arr1的地址赋给 p,执行完此语句后,p 不再 指向 arr0,而是指向 arr1。 然后执行 printf 语句,输出表达式*(p+3)的值。p+3 表示以 p 当前指向的位置起 始(此时 p 指向 arr1),之后第 3 个元素的地址,即 arr4的地址。*(p+3)则表示 该地址内所存放的内容,即 arr4的值 10, 因此输出 10 5. #include main( ) int a =1, 2, 3, 4, 5, 6; int x, y, *p; p = x

37、 = *(p+2); y = *(p+4); printf(“*p=%d, x=%d, y=%dn”, *p, x, y); 运行结果为: *p=1, x=3, y=5 首先定义一个整型数组 a,并对 a 进行初始化; 然后定义整型变量 x,y,整型指针 变量 p; 再将数组元素 a0的地址赋给 p。 执行 x=*(p+2);p+2 表示以 p 当前所指向的位置起始,之后第 2 个元素的地址, 即 a2的地址。*(p+2)则表示该地址内所存放的内容,即 a2的值 3,然后再把 3 赋给 x 执行 y = *(p+4); p+4 表示以 p 当前所指向的位置起始,之后第 4 个元素的地址, 即

38、a4的地址。*(p+4)则表示该地址内所存放的内容,即 a4的值 5,然后再把 5 赋给 y 执行 printf 语句, 先输出表达式*p 的值。 此时*p 表示的是 p 所指向变量的内容, 即 a0的值 1。再输 x 的值 3。再输出 y 的值 5。 6. #include main( ) , static char a* +=”Program”, *ptr; for(ptr=a, ptr=a else j=j+1; printf(“i=%4d,j=%4dn”,i,j); 此题用 i 来记录大于零的整数,用 j 记录小于零的整数。所以循环条件是 n(或 者 n!=0)即当 n 不为 0 时执

39、行循环体。在循环体中是一个选择语句。如果 n0, 则令 i 加 1,相当于令正整数的个数加 1;否则(即 n= A else printf(“No“); 6. 下面程序的功能是在 a 数组中查找与 x 值相同的元素所在位置,请填空。 #include void main() int a10,i,x; printf(“input 10 integers: ”); for(i=0;i0) / C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); / 调用带有返回值的函数,应将函数的返回值保存在变量里 printf(“The result is:%dn“, - fun(x, y) / 定义

40、函数的一般形式 p173-174 float result; result = sqrt(a+b); return; /return 语句后面可以返回 0、常量、变量和表达式的值。 第一处改为:if(a*b0) 第二处改为:f= fun(a,b); 第三处改为:printf(“The result is:%dn“,f); 第四处改为:float fun(int x, int y) 第五处改为:f= fun(a,b); 第六处改为:result = sqrt(a*b); 第七处改为:return result; 九、编程题 1.输入 2 个整数,求两数的平方和并输出。 #include int

41、main(void) intt a ,b,s; printf(“please input a,b:n“); scanf(“%d%d”, s=a*a+b*b; printf(“the result is %dn“,s); return 0; 2. 输入一个圆半径 r,当 r0 时,计算并输出圆的面积和周长,否则,输出提 示信息。 #include #define PI 3.14 int main(void) double r ,area , girth; printf(“please input r:n“); scanf(“%lf“, if (r=0) area =PI*r*r; girth =

42、2*PI*r ; printf(“the area is %.2fn“, area); printf(“the girth is %.2fn“, girth); else printf(“Input error!n“); return 0; 3、已知函数 y=f(x),编程实现输入一个 x 值,输出 y 值。 2x+1 (x0) #include void main() int x,y; scanf(“%d”, if(x0) y=2*x-1; else y=0; printf(“%d”,y); 4.从键盘上输入一个百分制成绩 score,按下列原则输出其等级:score90,等 级为 A;80

43、score=y) return x; else return y; 12. 编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入 一个数,输出是否为素数。 #include #include int IsPrimeNumber(int number) int i; if (number = 1) return 0; for (i=2; isqrt(number); i+) if (number % i) = 0) return 0; return 1; void main() int n; printf(“Please input n:”); scanf(“%d”, if(IsP

44、rimeNumber(n) printf(“n%d is a Prime Number”,n); else printf(“n%d is not a Prime Number”,n);- 13、从键盘输入 n 个数存放在数组中,将最小值与第一个数交换,输出交换后的 n 个数。 #include int main(void) int i,n,iIndex,temp; int a10; printf(“Enter n: “); scanf(“%d“, printf(“Enter %d integers:n “); for(i=0;in;i+) scanf(“%d“, iIndex=0; for(i

45、=1;in;i+) if(aiaiIndex) iIndex=i; temp=a0;a0=aiIndex;aiIndex=temp; for(i=0;in;i+) printf(“%5d“, ai); printf(“n“); return 0; 第二种解法 利用函数 #include int comp(int arry, int n) int i,index,temp; printf(“为数组赋值:n“); for(i=0;in;i+) scanf(“%d“, for(i=1,index=0;i=n-1;i+) if(arryiarryindex) index=i; temp=arry0;arry0=arryindex;arryindex=temp; for(i=0;in;i+) printf(“%d “,arryi); return 0; main() int n; int a10; printf(“为 n 赋值:n“); scanf(“%d“, comp(a,n);

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|