1、1、C 2、A 3、B 4、A 5、B 6、B 7、D 8、A 9、A 10、B 11、A 12、B习题2参考答案1、C语言有哪些特点?(1)简洁紧凑、灵活方便;(2)运算符丰富;(3)数据结构丰富;(4)C语言是结构式语言;(5)C语言的语法限制不太严格、程序设计自由度大;(6)C语言允许直接访问物理地址,可以直接对硬件进行操作;(7)C语言程序生成代码质量高,程序执行效率高;(8)C语言使用范围大,可移至性好;(9)具有预处理功能;(10)具有递归功能。2、C语言的主要应用有哪些?(1)许多系统软件和大型应用软件都是用C语言编写的,如UNIX、Linux等操作系统。(2)在软件需要对硬件进
2、行操作的场合,用C语言明显优于其他高级语言。例如,各种硬件设备的驱动程序(像显卡驱动程序、打印机驱动程序等)一般都是用C语言编写的。(3)在图形、图像及动画处理方面,C语言具有绝对优势,特别是游戏软件的开发主要就是使用C语言。(4)随着计算机网络飞速发展,特别是Internet的出现,计算机通信就显得尤其重要,而通信程序的编制首选就是C语言。(5)C语言适用于多种操作系统,像Windows、UNIX、Linux等绝大多数操作系统都支持C语言,其他高级语言未必能得到支持,所以在某个特定操作系统下运行的软件用C语言编制是最佳选择。3、列举几种程序设计语言。C语言、Java语言、Pascal语言、B
3、ASIC语言、LOGO语言等。1、机器语言 汇编语言 高级语言2、机器语言3、ALGOL 604、多个函数5、main6、#include7、定义 使用8、声明部分 执行部分 声明部分 执行部分1、D 2、B 3、B 4、C 5、C 6、C 7、D 8、C 9、D 10、A 11、B 12、 A 13、B 14、C 15、A习题3参考答案一、填空题1、整型 字符型 实型2、字母 数字 下划线 字母 下划线3、直接 符号 符号4、0 0x5、1 26、4 87、-32768327678、-169、x+=1;10、2611、(m/10)%10*100+m/100(100*10)+m%10二、选择题
4、1、D 2、C 3、A 4、B 5、B 6、D 7、B 8、C 9、A 10、A 11、C 12、B 13、B 14、D 15、B 16、D 17、B 18、D 19、C 20、A 21、B 22、D 23、D 24、D 25、D 26、D 27、C 28、A 29、C 30、B习题4参考答案1、scanf printf2、按指定的输出格式将信息输出到屏幕上 常规字符 格式控制符3、X、E、G4、getche输入的字符回显,而getch输入的字符不回显5、fflush6、解决某个问题的具体的方法和步骤7、自然语言描述 伪代码 流程图 N-S图8、顺序 分支 循环1、B 2、C 3、D 4、C
5、5、B 6、C 7、D 8、C 9、B 10、B 11、D 12、C 13、D 14、D 15、A三、编程题1、编写一程序要求任意输入四位十六进制整数,以反序的方式输出该十六进制数。例如:输入9AF0,则输出0FA9。 #include void main() unsigned short a, b; scanf(“%4x”, &a) /输入4位十六进制数给变a b=(a & 0X000F)12; /取a的最低一位十六进制数并左移12位后赋值给b b+=(a & 0X00F0)4; /取a的次第一位十六进制数并左移4位后与b相加再赋值给b 0X0F00) /取a 的次高一位十六进制数并右移4位
6、后与b相加再赋值给b 0XF000) float a, b, c; float d; float x1, x2; printf(“input a, b, c: ”); scanf(“%f%f%f”, &b, &c); d=sqrt(b*b-4*a*c); x1=(-b+d)/(2*a); x2=(-b-d)/(2*a); printf(“x1=%.2f x2=%.2fn”, x1, x2);6、假设从键盘输入某日午夜零点到现在已经历的时间(单位:s),遍一程序计算到现在为止已近过了多少天,现在的时间是多少? unsigned long t, r; int d, h, m, s; printf(
7、“second=”); scanf(“%d”, &t); d=t/(24*3600); r=t%(24*3600); h=r/3600; m=(r%3600)/60; s=(r%3600)%60; printf(“have passed days is %d, current time is %02d:%02d:%02dn”, d, h, m, s):习题5参考答案编程题1、编一程序判断输入整数的正负性和奇偶性。 int a; if (a=0) printf(“the number %d is positive numbern”, a); else printf(“the number %d
8、is negative numbern”, a); if (a%2=0) printf(“the number %d is even numbern”, a); printf(“the number %d is odd numbern”, a);2、编程判断输入数据的符号属性。#include0) sign=1;else if (x=0) sign=0; sign=-1;printf(“sign= %dn”, sign);3、输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。int num1, num2, num3;scanf(“%d%d%d”, &num1, &num2,
9、 &num3);if (num1=num2) if (num2 printf(“%d %d %dn”, num3, num1, num2); printf(“%d %d %dn”, num1, num3, num2);else if (num2 printf(“%d %d %dn”, num3, num2, num1); printf(“%d %d %dn”, num2, num3, num1); printf(“%d %d %dn”, num2, num1, num3);4、在屏幕上显示一张如下所示的时间表。 char c; printf(“*Time*n”);printf(“1 morni
10、ngn”);printf(“2 afternoonn”);printf(“3 nightn”);printf(“Please enter your choice:c=getcahr();switch (c)case 1: printf(“Good morningn”); brenk;case 2: printf(“Good afternoonn”); break;case 3: printf(“Good nightn”);default: printf(“Selection error!n”);5、输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程。 int year
11、, month; printf(“Input year, month: scanf(“%d %d”, &year, &month); switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf(“31 daysn”); case 4: case 6: case 9: case 11: printf(“30 daysn”); case 2: if (year%4=0 & year%100!=0)| (year%400=0) printf(“29 daysn”); printf(“28 daysn”
12、); default: printf(“Input error!习题6参考答案1、编程计算2+4+6+98+100的值。(1)利用for循环语句实现,在循环体外为sum赋初值0。int i, sum=0;for(i=2; i=100; i+=2)sum+=i;printf(“sum= %dn”, sum);(2)利用while循环语句实现,在循环体外为i和sum赋初值。int i=2, sum=0;while(i=100)i+=2;2、编程计算1*2*3+4*5*6+99*100*101的值。int i;long term, sum=0;for(i=1;=99;term=i*(i+1)*(i+
13、2);sum+=term;3、编程计算1!+2!+3!+10!的值。(1)用累加和算法,累加项为term=term*i; i=1,2,10。Term的初始值为1,使用单重循环完成。long term=1, sum=0;=10; i+)term*=i;printf(“1! = %ldn”, sum);(2)用内层循环求阶乘,外层循环控制累加的项数。int i, j;term=1;for(j=1; j=i; j+) term*=j;4、编程计算a+aa+aaa+aa.a(n个a)的值,n和a的值由键盘输入。long term=0, sum=0;int a, i, n;printf(“Input a
14、, n:scanf(“%d,%d”, &n);=n;term=term*10+a;printf(“sum=%ldn”, sum);5、参考答案:float term, result=1;int n;for(n=2; n=le-5);printf(“sin(x) = %f, count= %dn”, sum, count);7、参考答案:int i, j, k, n;printf(“result is:for(n=100;1000; n+)i=n/100; /分出百位j=(n-i*100)/10 /分出十位k=n%10; /分出个位if(n=i*i*i+j*j*j+k*k*k) printf(“
15、%d ”, n);printf(“n”);8、参考答案:int i1, i2, i3, i4, k, n;printf(“Input data is:k=abs(n);i1=k/1000; /分离出千位i2=(k-i1*1000)/100 /分离出百位i3=(k-i1*1000-i2*100)/10 /分离出十位i4=k%10; /分离出个位printf(“The sum of the total bit is %dn”, i1+i2+i3+i4);9、参考答案:int n, m=0, s, r;s=n;While(s!r=s%10; /从低位到高位逐一分离m=10*m+r; /重新组合一正数
16、s=s/10; /求其商if(m=n)printf(“yesn”);printf(“non”);10、参考答案:int x, y, z, count=0; /x,y,z分别表示5分、2分和1分硬币的数量for(x=1; x=28; x+) /5分硬币最多不超过28枚 for(y=1; y=73; y+) /2分硬币最多不超过73枚 z=100-x-y; /共有100枚硬币,减去5分和2分硬币后为1分硬币数量 if(5*x+2*y+z=150) count+ /增加一种方案 printf(“%02d, %02d, %02d ”, x, y, z); /输出每一种方案 if (count%6=0)
17、 printf(“n”); /没输出6种方案后,换行printf(“count=%dn”, count);11、设计思想:将A、B、C、D4个人的回答用一条件表达式来表示,对于A的回答:thisman!=A;对于B的回答:thisman=C;对于C的回答:thisman=D;对于D的回答:=D;然后,采用枚举的方法,一个人一个人的去试,如果这4个条件表达式中有3个为真,即4个条件表达式的值相加为3,则可判定是其中某人做的好事。参考答案:int k=0; sum=0; g=0;char thisman=;for (k=0; k=3; k+) /循环控制变量为k,循环共进行4次thisman=A+
18、k; /初始认为A做好事,依次为B、C、Dsum=(thisman!=A)+(thisman=C)+(thisman=D)+(thisman!=D);if (sum=3)printf(“This man is %cn”, thisman);g=1;if (g!=1) printf(“Cant foundn”);12、参考答案(1):for (i=1; i+) /先显示前三行 for (j=1;=i-1; j+) /输出每行前的空格 printf(“ ”);=5-2*(i-1); j+) /输出每行的*号 printf(“*”);=2; i+) /接着显示后两行=2-i;=2*i+1;参考答案(2):
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1