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

上传人(卖家):longfei1026 文档编号:598323 上传时间:2020-06-25 格式:DOCX 页数:49 大小:58.93KB
下载 相关 举报
2019-C语言二级考试题库(含答案).docx_第1页
第1页 / 共49页
2019-C语言二级考试题库(含答案).docx_第2页
第2页 / 共49页
2019-C语言二级考试题库(含答案).docx_第3页
第3页 / 共49页
2019-C语言二级考试题库(含答案).docx_第4页
第4页 / 共49页
2019-C语言二级考试题库(含答案).docx_第5页
第5页 / 共49页
点击查看更多>>
资源描述

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);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 招考、培训
版权提示 | 免责声明

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


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

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


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