=0)/*是否为正数*/{if(m%2==0)/*是正数,且能被2整除,是正偶数*/{printf("%disapositiveeven\n",m);}else/*不能被2整除,是正奇数*/{printf("%disapos" />
当前位置:文档之家› c语言第四章练习题答案

c语言第四章练习题答案

c语言第四章练习题答案
c语言第四章练习题答案

习 题 四

4.5编程判断输入整数的正负性和奇偶性。流程图如图4-1。 #include

main()

{

int m;

scanf("%d", &m); /*输入一个整数*/

if (m >= 0) /*是否为正数*/

{

if (m%2 == 0) /*是正数,且能被2整除,是正偶数*/

{

printf("%d is a positive even\n", m);

}

else /*不能被2整除,是正奇数*/

{

printf("%d is a positive odd\n", m);

}

}/*if(m>=0)结束*/

else

{

if (m % 2 == 0)

{

printf("%d is a negative even\n", m); /*是负偶数*/

}

else

{

printf("%d is a negative odd\n", m); /*是负奇数*/

}

} }

程序运行结果如下:

第一次运行:

6↙

6 is a positive even

第二次运行:

-7↙

6 is a negative odd

4.6编程计算分段函数:1x x e y e -??=??-?

000x x x >=<,输入x ,打印出y 值。流程图如图4-2。 #include

#include

main()

{

int x;

double y;

scanf("%d", &x); /* 输入一个整数*/

if (x > 0)

{

y = exp(-x); /*如果大于0,计算y=exp(-x)的值 */

else if (x == 0)

{

y = 1; /*x=0,则y=1*/

}

else

{

y = -exp(x); /*x<0,则y=-exp(x)*/

` }

printf("y=%f\n", y);

}

程序运行结果如下:

第一次运行:

4↙

y=0.018316

第二次运行:

0↙

y=1.000000

第三次运行:

-4↙

y=-0.018316

4.7输入三角形的三条边a,b,c ,判断它们能否构成三角形,若能则指出是何种三角形:等

腰三角形、直角三角形、一般三角形。流程图如图4-3。

#include

#include

#define LIMIT 1e-6

main()

{

float a, b, c;

int flag = 1;

scanf("%f, %f, %f", &a, &b , &c); /*输入三角形的三条边*/

if ((a + b) > c

&& ((b + c) > a)

&& ((a + c) > b)) /*三角形的基本条件*/

{

if (fabs(a-b) <= LIMIT

|| fabs(b-c) <= LIMIT

|| fabs(c-a) <= LIMIT) /*等腰三角形的条件*/

{

printf("等腰");

flag = 0;

}

if (fabs(a * a + b * b - c * c) <= LIMIT

|| fabs(a * a + c * c - b * b) <= LIMIT

|| fabs(c * c + b * b - a * a) <= LIMIT) /*直角三角形的条件 */ {

printf("直角");

flag = 0;

}

if (flag)

{

printf("一般");

}

printf("三角形\n");

else

{

printf("不是三角形\n");

}

}

程序运行结果如下:

第一次运行:

3,4,5↙

直角三角形

第二次运行:

4,4,5↙

等腰三角形

第三次运行:

10,10,14.14↙

等腰直角三角形

第四次运行:

3,4,9↙

不是三角形

4.8在屏幕上显示一张如下所示的时间表:

*****Time*****

1 morning

2 afternoon

3 night

Please enter your choice:

操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"Good morning",选择2时显示"Good afternoon",选择3时显示"Good night",对于其它选择显示"Selection error!",用switch语句编程实现。

算法思想:使用printf函数输出一个简单的菜单语句,通过switch语句进行选择。需要注意的问题是:输入选项是字符型的,所以在case后的数字要加单引号。

#include

main()

{

char c;

printf("*****Time*****\n");

printf("1 morning \n");

printf("2 afternoon \n");

printf("3 night \n");

printf("please enter your choice"); /*建立相应的菜单 */

c = getchar(); /*输入选项*/

switch (c) /*通过switch选择 */

{

case '1':

printf("Good morning \n");

break;

case '2':

printf("Good afternoon \n");

break;

case '3':

printf("Good night\n");

break;

default:

printf("Selection error!\n");

}

}

程序运行结果如下:

第一次运行:

*****Time*****

1 morning

2 afternoon

3 night

Please enter your choice:1↙

Good moning

第二次运行:

*****Time*****

1 morning

2 afternoon

3 night

Please enter your choice:3↙

Good night

4.9读入一个年份和月份,打印出该月有多少天(考虑闰年),用switch语句编程。

#include

main()

{

int 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 days\n");

break;

case 2:

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))

{

printf("29 days\n"); /*闰年的2月有29天 */

}

else

{

printf("28 days\n"); /*平年的2月有28天 */

}

break;

case 4:

case 6:

case 9:

case 11:

printf("30 days\n");

break;

default:

printf("Input error!\n");

}

}

程序运行结果如下:

第一次运行:

1988,5↙

31 days

第二次运行:

1988,2↙

29 days

第三次运行:

1989,2↙

28 days

4.10编程计算1+3+5+7+ ……+99+101的值。

算法一:利用for循环语句实现,在循环体外为sum赋初值0。流程图如图4-4。

#include

main()

{

int i, sum = 0;

for (i = 1; i <= 101; i = i+2)

{

sum = sum + i;

}

printf("sum=%d\n", sum);

}

算法二:利用while循环语句实现,在循环体外为i和sum赋初值。

#include

main()

{

int i = 1, sum = 0;

while (i <= 101)

{

sum = sum + i;

i = i + 2;

}

printf("sum=%d\n", sum);

}

程序运行结果如下:

sum=2601

4.11编程计算1*2*3+3*4*5+……+99*100*101的值。

算法思想:用累加算法,通项公式为:term=i*(i+1)*(i+2); i=1,3,…,99。或者为:term=(i-1)*i*(i+1); i=2,4,…,100。步长为2。流程图如图4-5。

#include

main()

{

int i ;

long term, sum = 0;

for (i = 1; i <= 99; i = i + 2)

{

term = i * (i + 1) * (i + 2);

sum = sum + term;

}

printf("sum=%ld",sum);

}

程序运行结果如下:

sum=13002450

4.12编程计算1!+2!+3!+4!+……+10!的值。

算法一:用累加算法,累加项为term=term*i; ;i=1,2,…10。term初值为1,使用单重循环完成。流程图如图4-6。

#include

main()

{

long term = 1,sum = 0;

int i;

for (i = 1; i <= 10; i++)

{

term = term * i;

sum = sum + term;

}

printf("1!+2!+...+10! = %ld \n", sum);

}

算法二:用内层循环求阶乘,外层循环控制累加的项数。

#include

main()

{

long term ,sum = 0;

int i, j;

for (i = 1; i <= 10; i++)

{

term = 1;

for (j = 1; j <= i; j++)

{

term = term * j;

}

sum = sum + term;

}

printf("1!+2!+…+10! = %ld \n", sum);

}

程序运行结果为:

1!+2!+…+10! = 4037913

4.13编程计算a+aa+aaa+….+aa..a(n个a)的值,n和a的值由键盘输入。

算法思想:用累加算法,累加项为term=term*10+a; i=1,2,…n。term初值为0。流程图

如图4-7。

#include

main()

{

long term = 0,sum = 0;

int a , i, n;

printf("Input a,n: ");

scanf("%d,%d", &a, &n); /*输入a,n 的值*/

for (i = 1; i <= n; i++)

{

term = term * 10 + a; /*求出累加项*/

sum = sum + term; /*进行累加*/

}

printf("sum=%ld\n",sum); }

程序运行如下:

Input a,n:2,4↙

sum=2468

4.14利用 (7)

656543432122??????=π

前100项之积计算π。 算法一:采用累乘方法,累乘项为term=n*n/((n-1)*(n+1)); n=2,4,…,100,步长为2。流程图如图4-8。

#include

main()

{

float term, result = 1; /*累乘项初值应为1*/

int n;

for (n = 2; n <= 100; n = n + 2)

{

term = (float)( n * n)/(( n - 1) * ( n + 1)); /*计算累乘项*/ result = result * term;

}

printf("result = %f\n", 2*result); }

算法二:采用累乘方法,累乘项为term=2*n*2*n/((2*n-1)*(2*n+1)) ;n=1,2,…,50,步长为1。 #include

main()

{

float result = 1,term;

int n;

for (n = 1; n <= 50; n++)

{

term = (float)(2*n*2*n)/((2*n-1)*(2*n+1)); /*计算累乘项*/

result = result * term;

}

printf("result = %f\n", 2*result); }

程序运行结果为:

result = 3.126078

4.15利用泰勒级数计算e 的近似值,!

1...!31!21!111n e +++++=,当最后一项的绝对值小于10-5

时认为达到精度要求,要求统计总共累加了多少项。

算法思想:采用累加算法:e=e+term;寻找累加项的构成规律:利用前项计算后项比寻找统一的累加项表示形式要简单一些,由...,3!21!31,2!11!21÷=÷=可以发现前后项之间的关系是:term n =term n-1÷n,写成C 语句便是:term=term/n; term 初值为1.0,n 初值也为1,n 按n=n+1变化。统计累加项数只要设置一个计数器变量即可,这里,计数器变量取名为count ,初值为0,在循环体中每累加一项就加一次1。流程图如图4-9。

#include

main()

{

int n = 1, count =1;

float e = 1.0, term = 1.0;

while (fabs(term) >= 1e-5)

{

term = term / n;

e = e + term;

n++;

count++;

}

printf("e = %f, count = %d\n", e, count); }

程序运行结果为:

e = 2.178282, count = 10

4.16计算1-1/2+1/3-1/4+……+1/99-1/100+……,直到最后一项的绝对值小于10-4为止。

算法思想:采用累加算法,累加项通式为:term=sign/n;分子sign=-sign;初值为1,分母n=n+1;初值为1。流程图如图4-10。 #include

#include

main()

{

int n = 1;

float term = 1.0, sign = 1,sum = 0;

while (fabs(term) >= 1e-4) /*判断末项大小*/

{

term = sign / n; /*求出累加项*/

sum = sum + term; /*累加*/

sign = -sign; /*改变项的符号*/

n++; /*分母加1*/

}

printf("sum = %f\n", sum); }

程序运行结果为:

sum = 0.693092

4.17利用泰勒级数计算sin(x)

sin(x) ≈x-x3/3!+x5/5!-x7/7!+x9/9!-…

要求最后一项的绝对值小于10-5,并统计出此时累加了多少项。

算法思想:x由键盘输入,采用累加算法,sum=sum+term,sum初值为x,利用前项求后项的方法计算累加项:term= -term*x*x/((n+1)*(n+2)); term初值为x,n初值为1,n=n+2。流程图如图4-11。

#include

main()

{

int n = 1,count = 0;

float x;

double sum , term; /*因为位数多,所以定义为双精度 */

scanf("%f", &x);

sum = x;

term = x; /*赋初值*/

do

{

/*计算相应项,并改应符号*/

term = -term * x * x / ((n + 1) * (n + 2));

sum = sum + term; /*累加 */

n = n + 2;

count++;

}while (fabs(term) >= 1e-5);

printf("sin(x) = %f, count = %d\n", sum, count);

}

程序运行结果为:

3↙( 输入的为弧度)。

sin(x) = 0.141120, count = 8

4.18打印所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如153是“水仙花数”,因为153=13+33+53。

算法思想:首先确定水仙花数n可能存在的范围,因为n是一个三位数,所以范围确定为n从100变化到999,分离出n的个位i、十位j、百位k后,只要判断n是否等于i*i*i+j*j*j+k*k*k即可知n是否是水仙花数。分离各位数字的方法可参考例4.2。流程图如图4-12。

#include

main()

{

int i, j, k, n;

printf("result is:");

for (n = 100; n < 1000; n++)

{

i = n / 100; /*分出百位*/

j = (n - i * 100) / 10; /*分出十位*/

k = n % 10; /*分出个位*/

if (i*100 + j*10 + k == i*i*i + j*j*j + k*k*k)

{

printf("%d\t ",n); /*输出结果*/

}

}

printf("\n");

}

程序运行结果为:

result is:153 370 371 407

4.19从键盘任意输入一个四位数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。例如,输入x为1234,则由1234分离出其个位1、十位2、百位3、千位4,然后1+2+3+4=10,于是输出10。

算法思想:对输入的整数取绝对值(绝对值函数为fabs()),即可实现忽略整数前的正负号。

#include

#include

main()

{

int i1, i2, i3, i4, k, n;

printf("Input data is:");

scanf("%d", &n);

k = fabs(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 %d\n", i1+i2+i3+i4);

}

程序运行结果为:

第一次运行:

Input data is :1234↙

The sum of the total bit is 10

第二次运行:

Input data is :-5678↙

The sum of the total bit is 26

4.20韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗?

算法思想:设兵数为x,则按题意x应满足下述关系式:

x%5 ==1 && x%6==5 &&x %7==4 && x%11==10

采用穷举法对x从1开始实验,可得到韩信至少有多少兵。流程图如图4-13。

#include

main()

{

int x = 1

int find = 0; /*设置找到标志为假*/

while (!find)

{

if (x % 5 == 1 && x % 6 == 5 && x % 7 == 4 && x % 11 == 10)

{

find = 1;

}

x++;

}

printf(" x = %d\n", x);

}

程序运行结果:

x = 2112

4.21爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,则最后剩下1阶,若每步跨3阶,则最后剩下2阶,若每步跨5阶,则最后剩下4阶,若每步跨6阶,则最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?

算法思想:设阶梯数为x,则根据题意:阶梯数满足下面的关系式:

x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

采用穷举法对x从1开始实验,可计算出这条阶梯共有多少阶。流程图如图4-14。

main()

{

int x = 1, find = 0;

while (!find)

{

if (x % 2 == 1

&& x % 3 == 2

&& x % 5 == 4

&& x % 6 == 5

&& x % 7 == 0)

{

find = 1;

}

x++;

}

printf(" x = %d\n", x);

}

程序运行结果为:

x = 120

4.22三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?

算法思想:设任取的红球个数为i,白球个数为j,黑球个数为k,根据题意应有:i+j+k=8,0<=i<=3,0<=j<=3,0<=k<=6。若红球和白球个数的取值范围是0~3,在红球和白球个数确定的条件下,黑球个数的取值范围应为k=8-i-j,只要满足k<=6,i、j、k的组合即为所求。流程图如图4-15。

#include

main()

{

int i, j, k;

for (i = 0; i <= 3; i++)

{

for (j = 0; j <= 3; j++)

{

for (k = 0; k <= 6; k++)

{

if (i + j + k == 8)

{

printf("i=%d, j=%d, k=%d\n", i, j, k);

}

}

}

}

}

程序运行结果:

i=0,j=2,k=6

i=0,j=3,k=5

i=1,j=1,k=6

i=1,j=2,k=5

i=1,j=3,k=4

i=2,j=0,k=6

i=2,j=1,k=5

i=2,j=2,k=4

i=2,j=3,k=3

i=3,j=0,k=5

i=3,j=1,k=4

i=3,j=2,k=3

i=3,j=3,k=2

4.23鸡兔同笼,共有98个头,386只脚,编程求鸡、兔个多少。

算法思想:设鸡数为x,兔数为y,据题意有:x+y=98,2x+4y=386。采用穷举法,x从1变化到97,y取98-x,如果x、y同时满足条件2x+4y=386,则打印x、y的值。流程图如图4-16。

#include

main()

{

int x, y;

for (x = 1; x <= 97; x++)

{

y = 98 - x;

if (2 * x + 4 * y == 386)

{

printf("x = %d, y = %d", x, y);

}

}

}

程序运行结果为:

x = 3, y = 95

4.24我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?

算法思想:设公鸡、母鸡、小鸡数量分别为x,y,z,依题意列出方程组:x+y+z=100,5x+3y+z/3=100,采用穷举法求解,因100元买公鸡最多可买20只,买母鸡最多可买33只,所以,x从0变化到20,y从0变化到33,则z=100-x-y,只要判断第二个条件是否满足即可。流程图如图4-17

#include

main()

{

int x, y, z;

for (x = 0; x <= 20; x++)

{

for (y = 0; y <= 33; y++)

{

z = 100 – x - y;

if (5*x + 3*y + z/3.0 == 100)

{

printf("x=%d, y=%d, z=%d\n", x, y, z);

}

}

}

}

程序运行结果为:

x=0,y=25,z=75

x=4,y=18,z=78

x=8,y=11,z=81

x=12,y=4,z=84

4.25用一元五角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,问共有几种兑换方案?每种方案各换多少枚?

算法思想:设5分、2分和1分的硬币各换x、y、z枚,据题意有:x+y+z=100,5x+2y+z=150,由于每一种硬币都要有,故5分硬币最多可换28枚,2分硬币最多可换73枚,1分硬币可换100-x-y枚,x、y、z只需满足第二个方程即可打印,对每一组满足条件的x、y、z值用计数器计数即可得到兑换方案的数目。流程图如图4-18。

#include

main()

{

int x, y, z, count = 0;

for (x = 1; x <= 28; x++)

{

for (y = 1; y <= 73; y++)

{

z = 100 – x - y;

if (5*x + 2*y + z == 150)

{

count++;

printf("%d, %d, %d\n", x, y, z);

}

}

}

printf("count = %d\n", count);

}

程序运行结果为:

1,46,53

2,42,56

3,38,59

4,34,62

5,30,65

6,26,68

7,22,71

8,18,74

9,14,77

10,10,80

11,6,83

12,2,86

count = 12

4.26编程输出如下上三角形式的乘法九九表。

81

72

6463

564954

48423645

4035302536322824201627

2421181512918

161412108649876543

219876543

21-------

--

算法思想:根据题意,第一行打9列,第二行打8列,……,最后一行打1列,为了打印右上三角形式,需要在第n 列先打印4*n-4列空格,再打印两数相乘结果。 #include

main()

{

int m, n, i;

for (m = 1; m < 10; m++)

{

printf("%4d", m);

} /*打印表头*/

printf("\n");

for (m = 1; m < 10; m++)

{

printf(" -");

}

printf("\n");

for (n = 1; n <= 9; n++) /*被乘数n 从1变化到9*/

{

for (i = 1; i <= 4*n - 4; i++)

{

printf(" "); /*输出相应空格使数字右对齐*/

}

for (m = n;m < 10;m++) /*乘数m 从n 变化到9*/

{

printf("%4d", m * n); /*输出第m 行n 列中的m*n 的值*/

}

printf("\n"); /*输出换行符,准备打印下一行*/

} }

4.27编程打印以下图案。

(1) (2) (3) 第(1)题: #include

main()

{

int i, j, k;

for (i = 1; i< = 4; i++) /*i 控制行数*/

{

for (j = 1; j <= 4 - i; j++) /* 随行数的增加,输出递减数目的空格*/ {

printf(" ");

}

for (k = 1 ;k <= 6; k++) /*每行输出6个*字符*/

{

printf("*");

}

printf("\n"); /*将光标移到下一行起始位置处*/

} }

第(2)题

#include

main()

{

int i , j , k;

for (i = 1; i <= 4; i++) /*控制行数*/

{

for (k = 1; k <= (2 * i - 1); k++) /*控制每行输出的*号个数*/

{

printf("*");

}

printf("\n"); /*输出一行后换行*/

} }

第(3)题 #include

main()

{

int i , j, k ;

for (i = 1; i <= 4; i++) /* 控制行数*/

{

for (j = 1; j <= 8 - i; j++) /* 随行数的增加,输出递减数目的空格*/ ****** ****** ****** ****** * *** ***** ******* * *** ***** *******

{

printf(" ");

}

for (k = 1;k <= (2 * i - 1);k++)

{

printf("*");

}

printf("\n");

} }

4.28按如下格式打印100以内整数的平方根表。

950

.9899.9849.9798.9747.9695.9644.9592.9539.9487.99434

.9381.9327.9274.9220.9165.9110.9055.9000.9944.88888

.8832.8775.8718.8660.8602.8544.8485.8426.8367.87307

.8246.8185.8124.8062.8000.8937.7874.7810.7746.76681

.7616.7550.7483.7416.7348.7280.7211.7141.7071.75000.7928.6856.6782.6708.6633.6557.6481.6403.6325.64245

.6164.6083.6000.6916.5831.5745.5657.5568.5477.53385

.5292.5196.5099.5000.5899.4796.4690.4583.4472.42359

.4243.4123.4000.4873.3742.3606.3464.3317.3162.31000

.3828.2646.2449.2236.2000.2732.1414.1000.1000.009

876543210

算法思想:表内第1行打印0~9的平方根,表内第2行打印10~19的平方根,表内第3行打印20~29的平方根,……,表内第10行打印90~99的平方根。设表的行为x ,表的列为y ,则对应第x 行第y 列的表值为sqrt(x*10+y)。

#include

#include

main()

{

int m, n, i;

for (m = 0; m < 10; m++)

{

printf("%7d", m); /*打印表头*/

}

printf("\n");

for (n = 0; n < 10; n++) /*乘数n 从1变化到9*/

{

printf("%d", n); /*输出每行的头数字*/

for (m=0; m<10; m++) /*被乘数m 从1变化到9*/

{

printf(" %4.3f ", sqrt(n * 10 + m));

} /*输出第m 行n 列中的值*/

printf("\n"); /*输出换行符,准备打印下一行*/ }

}

C语言题库及答案

C语言题库及答案

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

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.a[i] 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语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am 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 。

大学c语言复习题附答案

判断题 1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。× 2.通常硬盘安装在主机箱内,因此它属于主存储器。× 3.指令与数据在计算机内是以ASCII码进行存储的。× 4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集 合。√ 5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过 编译才能执行。√ 6.计算机的所有计算都是在内存中进行的。× 7.字长是指计算机能直接处理的二进制信息的位数。√ 8.计算机区别于其他计算工具的本质特点是能存储数据和程序。√ 9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。× 10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、大 写英文字母。× 11.多台计算机相连,就形成了一个网络系统。× 12.在Internet网上,IP地址、E-mail地址都是唯一的。√ 13.不同类型的变量在内存中占用存储空间的大小都是一样的。× 14.表示数学式3

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

数据结构C语言版第四章 串

第四章串 重点难点 理解"串"类型定义中各基本操作的特点,并能正确利用它们进行串的其它操作;掌握串类型的各种存储表示方法;理解串的两种匹配算法。 典型例题 1、简述下列每对术语的区别: 空串和空白串;串常量和串变量;主串和子串;静态分配的顺序串和动态分配的顺序串;【解】 (1)空串是指不包含任何字符的串,它的长度为零。 空白串是指包含一个或多个空格的串,空格也是字符。 (2)串常量是指在程序中只可引用但不可改变其值的串。 串变量是可以在运行中改变其值的。 (3)主串和子串是相对的,一个串中任意个连续字符组成的串就是这个串的子串,而包含子串的串就称为主串。 (4)静态分配的顺序串是指串的存储空间是确定的,即串值空间的大小是静态的,在编译时刻就被确定。 动态分配的顺序串是在编译时不分配串值空间,在运行过程中用malloc和free等函数根据需要动态地分配和释放字符数组的空间(这个空间长度由分配时确定,也是顺序存储空间)。 2、以HString为存储表示,写一个求子串的算法。 【解】HString 是指以动态分配顺序串为存储表示,其定义为: typedef struct { char *ch; int length; }HString; void *substr( HString *sub,HString *s,int pos,int len) {//用sub返回串s的第pos个字符起长度为len的子串。sub初始时为一空串 //pos的合法位置为0<=pos<=s->length-1 int i; if (pos<0||pos>s->length-1||len<=0) Error("parameter error!");//参数不合法,子串为空串 if (s->lengthlen=s->length-pos;//设置子串的串长 else sub->length=len; //设置子串的串长 sub->ch=(char *)malloc(len*sizeof(char));//为sub->ch申请结点空间 for(i=0;ilength;i++)//将s串中pos位置开始的共sub->length个字符复制到sub串中

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 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.a[i] 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语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am 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;则条件表达式"a

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言第四章习题带答案-2012.10.16更新

练习4-1答案 一、选择题 1.已知:char c='A'; int i=1, j;,执行语句j=!c&&i++;,则i和j的值是( B )。 A.1,1 B.1,0 C.2,1 D.2,0 2.已知:int x=1, y=2, z;,则执行z=x>y?++x:++y;,则z的值为( C )。 A.1 B.2 C.3 D.4 3.已知:int a=4, b=5, c;,则执行表达式c=a=a>b后变量a的值为( A )。 A.0 B.1 C.4 D.5 4.已知:char ch='A';,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的值是( B )。 A.'A' B.'a' C.'Z' D.'z' 5.若w=1, x=2, y=3, z=4;,则条件表达式w>x?w:y10?x+100:x-10); printf("%d",w++||z++); printf("%d",!w>z); printf("%d",w&&z); A.0111 B.1111 C.0101 D.0100 7.已知:a=b=c=1且a、b、c均为int型变量,执行以下语句:++a||++b&&++c; 则变量a值为( ①C ),b值为( ②A )。 ①A.不正确B.0 C.2 D.1 ②A.1 B.2 C.不正确D.0 8.执行下面语句后x的值为( D )。 int a=14, b=15, x; char c='A'; x=((a&b)&&(c<'a')); A.TRUE B.FALSE C.0 D.1 9.要判断char型变量m是否是数字,可以使用下列表达式( B )。 A.0<=m&&m<=9 B.'0'<=m&&m<='9' C."0"<=m&&m<="9" D.前面三个答案均是错误的 10.能正确表示“当x取值在[1..10]和[200..210]范围内为真,否则为假”的表达式是( C )。 A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 11.设x、y和z是int型变量,且x=3, y=4, z=5,则下面表达式中值为0的是( D )。 A.'x'&&'y'B.x<=y C.x||y+z&&y-z D.!((x=y&&ch<'B'&&!y的值是( C )。 A.0 B.语法错C.1 D.“假” 13.判断char型变量c1是否为小写字母的正确表达式为( D )。

C语言练习习题(带详解答案)

欢迎阅读 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; 2. 信息。 scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area);

printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;

char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: } 5. float fee; printf(“please input hour:\n”); scan f(“%d”,&hour); if(hour<=10) fee=30;

else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); } 6. } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { int i; long sum=1;

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max

C语言 选择结构程序设计练习题

第四章选择结构程序设计 一、填空 1.在C语言中,表示逻辑“真”值用_________。 2.得到整型变量a的十位数字的表达式为_________。 3.表达式:(6>5>4)+(float)(3/2)的值是_________。 4.表达式:a=3,a-1‖--a,2*a的值是_________。(a是整型变量) 5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。(a是整型变量)6.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以 _________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 7.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。 8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。 二、编程: 1.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 2.输入三个整数x,y,z,请把这三个数由小到大输出。 3.输入某年某月某日,判断这一天是这一年的第几天? 4.本程序演示从键盘输入x的值,计算并打印下列分段函数的值。 y=0(x<60) y=1(60<=x<70) y=2(70<=x<80) y=3(80<=x<90)

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

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.a[i] 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语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am 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 。

C语言基础练习题(含答案)

第一章 C 语言基础知识 1.1 选择题 1. 以下不是C 语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C 语言标识符的是() A .abc123 B.C._123_ D._ok 3. 正确的C 语言标识符是()。 A ._buy_2 B .2_buy C._buy D .buy 4. 请选出可用作 C 语言用户标识符的一组标识符()。 A .void B.a3_b3 C.For D .2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是( A.\\ B.\0xAA )。C.\t D .\0 6. 不属于 C 语言关键字的是()。 A .int B .break C.w hile D .character 7. 是 C 语言提供的合法关键字的是()。 A .Float B.signed C.integer D.C har 8. 以下不能定义为用户标示符的是()。

A .scanf B.Void C._3com_ D.int 9. 一个C 程序是由()。 A. —个主程序和若干子程序组成 B. —个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 10. C 语言程序的基本单位是()。 A ?程序行 B ?语句 C ?函数 D .字符 11. 下列说法中,错误的是()。 A ?每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B ?每个函数都有一个函数头和一个函数体,主函数也不例外 C ?主函数只能调用用户函数或系统函数,用户函数可以相互调用 D ?程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 A . C语言程序总是从第一个定义的函数开始执行 B ?在C语言程序中,要调用的函数必须在main()函数中定义 C.C 语言程序总是从main()函数开始执行 D . C语言程序中的main()函数必须放在程序的开始部分 13. C 编译程序是()。 A.C 程序的机器语言版本 B .一组机器语言指令 C ?将C源程序编译成目标程序

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

严蔚敏《数据结构(c语言版)习题集》答案第四章串

《一定能摸到红球吗?》说课稿 林银花 一、教材说明: 1、课题:《一定能摸到红球吗?》 2、本节内容的地位和作用 在现代社会中,人们面临着更多的机会和选择,常常需要在不确定情境中作出合理的决策,概率正是通过对不确定现象和事件发生的可能性的刻画,来为人们更好的制定决策提供依据和建议.本节内容又是义务教育阶段,唯一培养学生从不确定的角度来观察世界的数学内容,让学生了解可能性是普遍的,有助于他们理解社会,适应生活. 3、教学目标设计: (1)认知目标: (A)经历猜测.实验.收集与分析试验结果等过程 (B)体会事件的发生的不确定性知道事情发生的可能性有多大。 (2)、能力目标: (A)经历游戏等的活动过程,初步认识确定事件和不确定事件 (B)在与其它人交流的过程中,能合理清晰地表达自己的思维过程; (3)、情感目标: (A)通过创设游戏情境,让学生主动参与,做“数学实验”,激发学生学习的热情和兴趣,激活学生思维。 (B)在与他人的合作过程中,增强互相帮助、团结协作的精神。 (C)体会到在生活中我们可以从确定和不确定两方面分析一件事情. 4、本课重点、难点分析: 学习的重点是初步体验事情发生的确定性和不确定性. 学习的难点是确定事件发生的可能性大小. 学习本节知识应注意猜测,试验,收集与分析实验结果,从中体会事件发生的可能性及大小. 二、教学对象分析: 1、初一学生性格开朗活泼,对新鲜事物特别敏感,且较易接受,因此,教学过程中创设的问题情境应较生动活泼,直观形象,且贴近学生的生活,从而引起学生的有意注意。 2、初一学生的概括能力较弱,推理能力还有待不断发展,所以在教学时,可让学生充分试验,收集,分析,帮助他们直观形象地感知。 3、初一学生已经具备了一定的学习能力,所以本节课中,应多为学生创造自主学习、

c语言第四章练习题答案

习 题 四 4.5编程判断输入整数的正负性和奇偶性。流程图如图4-1。 #include main() { int m; scanf("%d", &m); /*输入一个整数*/ if (m >= 0) /*是否为正数*/ { if (m%2 == 0) /*是正数,且能被2整除,是正偶数*/ { printf("%d is a positive even\n", m); } else /*不能被2整除,是正奇数*/ { printf("%d is a positive odd\n", m); } }/*if(m>=0)结束*/ else { if (m % 2 == 0) { printf("%d is a negative even\n", m); /*是负偶数*/ } else { printf("%d is a negative odd\n", m); /*是负奇数*/ } } } 程序运行结果如下: 第一次运行: 6↙ 6 is a positive even 第二次运行: -7↙ 6 is a negative odd 4.6编程计算分段函数:1x x e y e -??=??-? 000x x x >=<,输入x ,打印出y 值。流程图如图4-2。 #include #include main() { int x; double y; scanf("%d", &x); /* 输入一个整数*/ if (x > 0) { y = exp(-x); /*如果大于0,计算y=exp(-x)的值 */

历年C语言考试题库及答案

C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 1、下面程序的输出是___D______ #include<> void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是________D____. A) true B) 非零值 C) 0 D) 1 5、C语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 7、C语言程序的基本单位是_____C______.A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句a+=a-=a*a后,a的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include<> void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include<> void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include<> void main() {int x=10,y=3; printf("%d\n",y=x/y); }

C语言试题及答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

11级《C语言程序设计》第1章-第4章参考答案

《C语言程序设计》第一章参考答案 一、选择题: 1.C 2. C 3. C 4. C 5. B 二、填空题: 1. 一主主 2. 源目标 《C语言程序设计》第二章参考答案 1.指出下列常数中哪些是符合C语法规定的: '\''\101''\' e3 019 0xle "ab\n" 1.e5 (2+3)e(4-2) 5.2e2.4 正确的:'\101' 0xle "ab\n" 1.e5 2. (1)改为: main( ) { float x,y=5,z=5, aver; x=7; aver=(x+y+z)/3; printf("aver=%f\n",aver); } (2)改为: main( ) { char c1='a'; char c2='b'; char c3='c'; int a=3,b='A'; printf("a=%db=\' %c \' \n\"end\"\n",a,b); printf("a%cd%c\bc%c\tabc\n",c1,c2,c3); } 3. 4. (1)9 ,10,9,10 (2)3 ,1 ,0 ,0 5. (1)0 (2)0 (3)9.5 (4)90 (5)10 (6)10 (7)’A’(8)2 (9)6.5 (10)0 (11)20 (12)0

6. 完全等价的是表达式(3)、(5)、(6) 7. 求变量x的绝对值 8. max=c > (a>b ? a : b) ? c : (a>b ? a : b); 9. 程序填空为: h= ((x-2)(x-2)+(y-2)(y-2)<=1)?10:0 ; 或补充为: h= (fabs(x<=2)&&fabs(y<=2))?10:0 ; 《C语言程序设计》第三章参考答案 一.选择题 1. C 2. C 3. D 4. C 5. D 6 . A 二.填空题 1. 1 2. 1 3. 2.5 4. 8 三.编程题 1. #include void main() { float a, v1, v2; int t=50; a=0.11; v1=0; v2=a*t*3600/1000; printf("v2=%.2f\n",v2); }

c语言程序设计第四章习题答案

第四章选择结构 1:实现输入一个字符的大小写字母的转换 #include void main() {char x='a'; printf("输入x:\n"); scanf("%c",&x); if( x>='A' && x<='Z') { x=x+32; /*是大写,转换为小写,至于为什么要+32吗,请看看 大小写字母的ASCII码差值*/ } else if( x>='a' && x<='z') { x=x-32; /*是小写,转换为大写*/ } /*其它不用理*/ printf("%c\n",x); } 2:输入一个大写字母实现,输出字母表中的前后字母,但是当时A 或是Z时提示输出的“没有前面的字母”,“没有后面的字母” #include void main() {char x; printf("输入一个大写字母x:\n"); scanf("%c",&x); if (x=='A') {printf("没有前面的字母");} if( x=='Z') { printf("没有后面的字母");} else// (x>'A'||x<'Z') {printf("%c, %c",x-1,x+1);} } 3:实现的是对百分制的评等级

#include void main() { float x; printf("请输入学生的成绩x的值\n"); scanf("%f",&x); if(x>=90&&x<=100) {printf("等级为A ");} else { if (x>=80&&x>=89) {printf("等级为B "); } else if (x>=70&&x<=79) {printf("等级为C "); } else if (x>=60&&x<=69) {printf("等级为D "); } else { printf("等级为E "); } } } 4:知道今天的日期,年月日,求出明天的年月日 #include int main() { int year,month,day; int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("请输入年月日,中间用空格隔开!\n"); scanf("%d %d %d",&year,&month,&day); if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29;//闰年二月最大值是29 if(month>12 || month<1) { printf("日期不合法!\n"); return 0; } if(day>maxdays[month-1])

相关主题
文本预览
相关文档 最新文档