C语言课后答案

习题5-10

static int a, b;

static int curFactor;

/*

函数功能:指明计算哪两个数的公约数

函数入口参数:两个整型数

函数返回值:无

*/

void CalcCommonFactorOf(int num1, int num2)

{

a = num1;

b = num2;

curFactor = a > b ? b : a; /* curFactor置为两个数中较小的那个*/

}

/*

函数功能:得到下一个公约数

函数入口参数:无

函数返回值:下一个公约数;-1表示再也没有新的公约数

*/

int NextCommonFactor(void)

{

if (a <=0 || b <=0) /* 保证输入的参数正确*/

return -1;

while(curFactor>0)

{

if ( a%curFactor == 0 && b%curFactor == 0 )

{

return curFactor--; /* 如果不减一,则下次还会测试这个数*/ }

curFactor--;

}

return -1;

}

void CalcCommonFactorOf(int num1, int num2);

int NextCommonFactor(void);

#include

#include "cmnfctr.h"

main()

{

int sub;

CalcCommonFactorOf(100, 50);

while((sub=NextCommonFactor()) > 0)

{

static int counter=1;

printf("Common factor %d is %d\n", counter++, sub);

}

}

习题1-3

#include

main()

{

printf("%d\n", 123+456);

}

习题3-5

#include

#include

main()

{

float a, b, c; /*a,b,c为三边变量*/

float s, area;

printf("Input a,b,c:");

scanf("%f,%f,%f",&a,&b,&c);

s = 1.0 / 2 * (a + b + c);

area = sqrt(s * (s - a) * (s - b) * (s - c));

printf("area=%.2f\n", area);

}

习题3-6

#include

#define PI 3.14

main()

{

float r ; /*r为半径变量*/

float circum, area;

printf("Input r:");

scanf("%f", &r);

circum = 2*PI*r;

area = PI*r*r,

printf("circum=%.2f,area=%.2f\n", circum, area);

}

习题4-4(1)

#include

main()

{

int year, flag;

printf("Enter year:");

scanf("%d",&year );

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

{

flag = 1; /*如果year是闰年,则标志变量flag置1*/ }

else

{

flag = 0; /*否则,标志变量flag置0*/ }

if (flag)

{

printf("%d is a leap year!\n",year); /*打印“是闰年”*/ }

else

{

printf("%d is not a leap year!\n",year); /* 打印“不是闰年”*/

}

}

习题4-4(2)

#include

main()

{

char ch;

ch = getchar();

if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {

printf("It is an English character!\n");

}

else if (ch <= '9' && ch >= '0')

{

printf("It is a digit character!\n");

}

else if (ch == ' ')

{

printf("It is a space character!\n");

}

else

{

printf("It is other character!\n");

}

}

习题4-4(3)

#include

main()

{

int upper,step;

float fahr = 0,celsius;

upper = 300;

step = 20;

while ( fahr< upper)

{

celsius = 5.0 / 9 * (fahr - 32);

printf("%4.0f\t%6.1f\n", fahr, celsius);

fahr = fahr + step;

}

}

习题4-5(1)

#include

main()

{

int m;

printf("Input 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);

}

}

else if (m < 0) /*判断是否为负数*/ {

if (m % 2 == 0)

{

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

}

else

{

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

}

}

else

{

printf("%d is zero. It is an even\n", m);

}

}

习题4-5(2)

#include

main()

{

int m;

printf("Input m:");

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

if (m > 0) /*判断是否为正数*/ {

printf("%d is a positive ", m); /*是正数*/

}

else if (m < 0) /*判断是否为负数*/ {

printf("%d is a negative ", m); /*是负数*/ }

else

{

printf("%d is zero. It is an ", m);

}

if (m%2 == 0) /*判断是否为偶数*/ {

printf("even\n", m); /*是偶数*/

}

else

{

printf("odd\n", m); /*是奇数*/ }

}

习题4-6

#include

#include

main()

{

int x;

double y;

printf("Input x: ");

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

#include

#include

#define LIMIT 1e-1

main()

{

float a, b, c;

int flag = 1;

printf("Input the three edge length: ");

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

}

}

习题4-8

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

}

}

习题4-9

#include

main()

{

int year, 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 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");

}

}

习题4-10(1)

#include

main()

{

int i, sum = 0;

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

{

sum = sum + i;

}

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

}

习题4-10(2)

#include

main()

{

int i = 1, sum = 0;

while (i <= 101)

{

sum = sum + i;

i = i + 2;

}

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

}

习题4-11

#include

main()

{

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

}

习题4-12(1)

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

习题4-12(2)

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

}

习题4-13

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

}

习题4-14(1)

#include

main()

{

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

int n;

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

{

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

result = result * term;

}

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

}

习题4-12(2)

#include

main()

{

double term, result = 1;

int n;

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

{

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

result = result * term;

}

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

}

习题4-15(1)

#include

#include

main()

{

int n = 1, count =1;

double e = 1.0, term = 1.0;

long fac = 1;

for (n=1; fabs(term) >= 1e-5; n++)

{

fac = fac * n;

term = 1.0 / fac;

e = e + term;

count++;

}

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

}

习题4-16

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

}

#include

#include

main()

{

int n = 1,count = 1;

float x;

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

printf("Input x: ");

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

}

习题4-18(1)

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

}

习题4-18(2)

#include

{

int i, j, k, n;

printf("result is:");

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

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

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

{

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

{

printf("%d\t", 100*i+10*j+k);

}

}

printf("\n");

}

习题4-19

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

}

习题4-20(1)

#include

main()

{

int x = 1;

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

while (!find)

{

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

{

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

find = 1;

}

x++;

}

}

习题4-20(2)

#include

main()

{

int x = 1;

while (1)

{

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

{

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

break;

}

x++;

}

}

习题4-20(3)

#include

main()

{

int x = 0, find = 0;

do{

x++;

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

} while (!find);

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

}

习题4-20(4)

#include

main()

{

int x = 0;

do{

x++;

} while (!(x%5==1 && x%6==5 && x%7==4 && x%11==10));

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

}

习题4-21(1)

#include

main()

{

int x = 1, find = 0;

while (!find)

{

if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5

&& x % 7 == 0)

{

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

find = 1;

}

x++;

}

}

习题4-21(2)

#include

main()

{

int x = 1;

while (1)

{

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

{

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

break;

}

x++;

}

}

习题4-21(3)

#include

main()

{

int x = 0, find = 0;

do{

x++;

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

} while (!find);

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

}

习题4-21(4)

#include

main()

{

int x = 0;

do{

x++;

} while (!(x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0));

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

}

习题4-22

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

}

}

}

}

}

习题4-23

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

}

}

}

习题4-24

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

}

}

}

}

习题4-25

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

}

习题4-26

#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 < 10; 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); /*输出第n行m列中的m*n的值*/ }

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

}

习题4-27(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"); /*将光标移到下一行起始位置处*/ }

}

习题4-27(2)

#include

main()

{

int i , j , k;

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

{

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

{

printf("*");

}

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

}

习题4-27(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

C语言基础知识课后习题答案

C语言基础知识课后习题答案 说明: 1、原先的少部分题目有错,请用红色的部分替换掉; 2、如果红色部分有文字“删除该行”,就直接删除该行; 第一章C语言的基础知识 第一节对C语言的初步认识 习题 1. 下列叙述中错误的是B A)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始执行。B)C语言中的变量,可以先使用后定义。 C)所有的C语言语句最后都必须有一个分号 D)C程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。 第二节熟悉Visual C++ 习题 1. C语言源程序名的后缀是 B A).exe B).c C).obj D).cp 2. 下列叙述中错误的是D A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行 3. 用C语言编写的代码程序B A)可立即执行B)是一个源程序 C)经过编译即可执行D)经过编译解释才能执行 第三节标识符 习题 1. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是B

A)大写字母B)连接符C)数字字符D)下划线 2. 以下选项中不合法的标识符是 C A)print B)FOR C)&a D)_00 3. 以下叙述中错误的是A A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 4. 可在C程序中用作用户标识符的一组标识符是A A)and B)Date C)Hi D)case _2007 y-m-d Dr.T om Bigl 5. 以下不合法的用户标识符是C A)j2_KEY B)Double C)4d D)_8_ 6. 以下不能定义为用户标识符的是D A)Main B)_0 C)_int D)sizeof 7. 下列选项中,不能用作标识符的是D A)_1234_ B)_1_2 C)int_2_ D)2_int_ 8. 以下4组用户定义标识符中,全部合法的一组是A A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 第四节数制转换 习题 1.十进制整数360的八进制为__________,十六进制为_____________。550 168 第五节整数和实数 习题 1.以下选项中正确的整型常量是 C

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案 C语言程序设计是计算机科学与技术专业的一门基础课程,通过学习该课程,我们可以掌握C语言的基本语法和编程技巧,培养我们的编程思维和解决问题的能力。在课程学习过程中,老师会布置一些课后习题,以巩固我们的知识和提高我们的编程水平。下面我将分享一些C语言程序设计课后习题及其答案,希望对大家有所帮助。 1. 习题一:编写一个程序,输入一个整数,判断该数是否为素数。 ```c #include int main() { int num, i, flag = 0; printf("请输入一个整数:"); scanf("%d", &num); for (i = 2; i <= num / 2; i++) { if (num % i == 0) { flag = 1; break; } }

if (flag == 0) printf("%d是素数。\n", num); else printf("%d不是素数。\n", num); return 0; } ``` 2. 习题二:编写一个程序,输入一个正整数n,计算并输出1到n之间所有偶数的和。 ```c #include int main() { int n, i, sum = 0; printf("请输入一个正整数:"); scanf("%d", &n); for (i = 2; i <= n; i += 2) { sum += i; }

printf("1到%d之间所有偶数的和为:%d\n", n, sum); return 0; } ``` 3. 习题三:编写一个程序,输入一个正整数n,计算并输出n的阶乘。```c #include int main() { int n, i; long long factorial = 1; printf("请输入一个正整数:"); scanf("%d", &n); for (i = 1; i <= n; i++) { factorial *= i; } printf("%d的阶乘为:%lld\n", n, factorial); return 0;

C语言课后习题参考答案

C语言课后习题参考答案 习题 1 一、选择题 1、B 2、C 3、B 4、D 5、A 6、B 7、C 二、填空题 1、源程序文件 c 2、obj 3、可执行文件 exe 4、机器语言汇编语言高级语言 三、解答题 略 四、编程题 1、 main() { printf(“Hello! Welcome to China!”); } 2、 main() {int x; printf(“x=%d”,x); } 习题 2 一、选择题 1、C 2、A 3、B 4、D 5、 A 6、D 7、B 8、B 9、B 10、D 11、D 12、B 13、A 14、B 15、C 二、填空题 1、整型、实型、字符型 2、用户标识符、关键字标识符 3、存储单元、符号地址、内存地址 4、十、十六、八 5、double(双精度型) 6、 8 7、5.500000 8、a=-32768 9、+0017,021,0x11 三、写程序运行结果

3257 3257 7.88, -345.12,7.8765,-345.1230 7.87654e+00, -3.5e+02 a,97,141,61 1234,2322,4d2 CHINESE, CHI 四、scanf函数的使用 a=3 b=7 8.5 71.82 A a 五、用scanf函数输入数据 1020Aa1.5-3.75 123.45,67.8 注意,其中123.45可以是任意实数,因为该值将被跳过,不用于赋值。 习题 3 一、选择题 1.C 2.B 3.D 4.D 二、填空题 基本概念题 1.2 2.2 3.1 阅读程序写出运行结果题 4.1.00 5.1,0,1 6.6,11,9,10 三、写出下面表达式运算后a的值,设原来a=12。 (1)24 (2)10 (3)60 (4)0 (5)0 (6)0 习题4 一、选择题 1、B 2、D 3、B 4、D 5、A 6、C 二、填空题 1、1,0,1 2、1,2,3 3、ch1>=′A′&&ch1<=′Z′ ch1=ch1-32; 三、编程题 1、从键盘输入三个数,然后按照由小到大的顺序输出。要求,设三个数放在变量a、b、c中,最后仍然按照a、b、c的顺序输出。

《C语言程序设计》 课后习题答案 高等教育出版社

《C语言程序设计》课后习题答案高等教育 出版社 《C语言程序设计》课后习题答案 高等教育出版社 第一章:C语言概述 1. C语言的特点 C语言是一种以处理底层任务和系统编程为目标的高级编程语言。 其特点包括语法简洁、执行效率高、可移植性强等。 第二章:C语言基本数据类型 1. C语言中的基本数据类型 C语言中的基本数据类型包括整型、字符型、浮点型等。整型可以 进一步细分为有符号整型和无符号整型。 第三章:C语言运算符 1. C语言中的运算符 C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。这些运算符用于执行各种数学和逻辑操作。 第四章:C语言控制语句 1. C语言中的条件语句

C语言提供了if语句和switch语句来实现条件判断。if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。 第五章:C语言函数 1. C语言中的函数定义和调用 函数是C语言中的基本模块,用于封装可重用的代码。函数定义包括函数返回类型、函数名、参数列表和函数体等部分。 第六章:C语言数组 1. C语言中的数组定义和使用 数组是一组相同类型的数据元素的集合。C语言中可以使用数组来存储和操作大量数据。 第七章:C语言指针 1. C语言中的指针概念 指针是一种变量,它存储了内存地址。通过指针,可以直接访问和修改对应内存地址中的数据。 第八章:C语言字符串 1. C语言中的字符串操作 字符串是由一系列字符组成的数据类型。C语言通过字符数组来表示和操作字符串。

第九章:C语言结构体 1. C语言中的结构体定义和使用 结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。 第十章:C语言文件操作 1. C语言中的文件读写操作 文件操作是一种重要的数据输入和输出方式。C语言提供了一系列函数来实现文件的读写操作。 总结: 通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。希望本文对读者有所帮助。

C语言课后习题答案

1.1选择题: ⑴一个C程序的执行是(A)。 A)从main()函数开始,直到main()函数结束 B)从第一个函数开始,直到最后一个函数结束 C)从第一个语句开始,直到最后一个语句结束 D)从main()函数开始,直到最后一个函数结束 ⑵计算机能直接执行的语言是(B)。 A)汇编语言B)机器语言C)高级语言D)A和B ⑶一个C程序是由(C)。 A)一个主程序和若干子程序组成 B)若干过程组成 C)一个或多个函数组成 D)若干子程序组成 ⑷下列说法正确的是(B )。 A)C程序书写格式限制严格,一行内必须写一个语句 B)C程序书写比较自由,一个语句可以分行写在多行上 C)C程序书写格式限制严格,要求一行内必须写一个语句,并要求行号 D)C程序中一个语句不可以分写在多行上 1.2填空题: ⑴构成C语言程序的基本单位是函数。 ⑵C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是,obj,经过连接后,生成文件的后缀是.exe。 ⑶在TURBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。 ⑷一个C语言程序必须有而且只能有一个主函数,它的函数名为main。 ⑸一个函数有两部分组成,第一部分称为函数首部;第二部分称为函数体。 ⑹函数体由符号{开始,用符号}结束。函数体的前面是声明部分,其后是执行部分。 1.3上机编辑、调试、运行下列程序,发现错误,并改正之。 /*求1 + 2 + 3 + ……+ 10的和*/ #include main() { int sum,n; sum = 0;n = 1; while(n < 10) {sum = sum + n; n = n + 1; } printf("sum = %d \n",sum); }

《C语言程序设计》第三版课后答案

《C语言程序设计》第三版课后答案第一章:C语言基础知识 1.1 C语言的历史和特点 C语言是由贝尔实验室的Dennis Ritchie在20世纪70年代初开发的 一种高级计算机编程语言。C语言具有简洁、高效、可移植性强等特点,成为了编写系统软件和应用软件的首选语言。 1.2 C语言的开发环境 为了编写和运行C语言程序,我们需要安装并配置相应的开发环境。常用的开发环境包括Code::Blocks、Dev-C++和Eclipse等。这些开发 环境提供了编辑器、编译器和调试器等工具,方便我们进行程序开发 和调试。 1.3 C语言的基本语法 C语言的基本语法包括关键字、标识符、数据类型、变量、常量、 运算符和控制语句等。关键字是C语言预先定义的词汇,如int、if、 for等。标识符是程序中自定义的名称,用于标识变量、函数等。数据 类型包括整型、浮点型、字符型和指针型等。变量是存储数据的位置,常量是不可修改的数据。运算符用于进行数学和逻辑运算。控制语句 包括条件语句和循环语句,用于控制程序的执行流程。 第二章:C语言基本程序设计 2.1 程序的结构

C语言程序由多个函数组成,其中main函数是程序的入口,是程序执行的起点。在main函数中,我们可以调用其他函数来完成具体的任务。一个基本的C语言程序结构包括包含头文件、定义变量、执行语 句和返回值等部分。 2.2 输入和输出 输入和输出是C语言程序中常见的操作。标准库提供了一系列函数,如printf和scanf,用于输出和输入数据。其中printf函数用于格式化输 出数据,scanf函数用于接收用户的输入。 2.3 运算和赋值 C语言支持多种运算符,如算术运算符、关系运算符、逻辑运算符 和位运算符等。这些运算符可以用于数值计算和条件判断。赋值运算 符用于给变量赋值。 2.4 条件语句 条件语句根据条件的成立与否来决定程序的执行路径。C语言提供 了if语句和switch语句来实现条件控制。if语句根据条件的真假来执 行不同的代码块。switch语句根据表达式的值来选择执行相应的分支。 2.5 循环语句 循环语句用于重复执行一段代码块。C语言提供了while循环、do-while循环和for循环等几种循环结构。while循环在循环开始之前检查 条件,do-while循环在循环结束之后检查条件,for循环在循环中控制 初始化、条件和步进。

C语言课后习题参考答案

C语言课后习题答案 第一章习题答案 一、选择题 1~5:BDCDA 6~10:DABBB 11~12:CC 二、填空题 1、main() 2、函数首部,函数体 3、函数 4、编辑、编译、连接、运行 5、.cpp、.obj、 .exe 6、; 或分号 三、编程题 #include /* 包含标准库的信息*/ void main() /* 定义名为main 的函数,它不接受参数值*/ { /* main函数的语句都被括在花括号中*/ printf("hello, world\n"); /* main 函数调用库函数printf 以显示字符序列,其中\n代表换行符*/ } 第二章习题答案 一、选择题 1~5:CBABB 6~10:CDCDD 11~15:CADBC 16~20:BDAAD 二、填空题 1、整型,实型,字符型,枚举类型 2、1 3、9 4、12353514 5、2,1 6、2,2 7、10 20 0 8、a=14 9、2,3,1 10、double 第三章习题答案

一、选择题 1~5:CBBBC 6~10:DDDBB 二、填空题 1、控制语句,表达式语句,复合语句 2、; 3、{} 4、1 5、a 6、c:dec=120,oct=170,hex=78,ASCII=x 7、32767,32767 8、10,A,10 9、3 3 10、 (1) 123.456001 (2) □□□□□□□ 123.456 (3) 123.4560 (4) 8765.456700 (5) □□□□□□ 8765.457 (6) 8765.4567 (7) 8765.4567 三、编程题 1、参考答案: #include void main() { int a,b,c; long int u,n; float x,y,z; char c1,c2; a=3;b=4;c=5; x=1.2;y=2.4;z=-3.6; u=51274;n=128765; c1='a';c2='b'; printf("\n"); printf("a=%2d b=%2d c=%2d\n",a,b,c); printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z); printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

C语言教材后习题及答案

第一章 1.什么是程序?什么是程序设计语言? 2.C语言有什么特点? 3.什么是算法?算法的描述有哪些基本方法? 第一章主要关注两个概念:一是程序的三种结构(顺序、分支或叫选择、循环) ;二是函数,主函数main() 第二章 1.指出下列哪些是C语言合法的用户识别符。 void a3_b3 For 2a defi ne _123 _abc DO 2.指出下列哪些是C语言合法的常量。 "3'4 " " 0x1g 33 " a" E20 '\18' \0xa' 1.E-5 3.F '\0' .12 '\a' "3'4 ""双引号内表示字符串,但要在一个串内含有单引号、双引号要用转义字符正确的是:’4\"" 0x是十六进制的表示形式之一,但十六进制里没有g这个数值 \0xa'带一个单引号、0开头,无意义.这里要注意\ddd,1-3 位八进制数,\xhh,1-2位十进制数,他们都表示对应的ASCII值 E20, E表示指数形式,但两边必须都有数字。 将此题全部弄懂,所有关于常量的分基本跑不掉了。 3.指出下列定义变量语句中的错误。 int a;b=5; //同类型的两个变量,中间不能用分号。 doubel h; //double int x,float y; //中间要用分号 float f(x); //非法符号 定义变量要注意,数据类型的关键字,还有就是变量名称必须是合法标识符 4.写出能表示数学式子1/(2a + 1/2a)的C语言表达式 1.0/(2*a+1/(2*a)) 5.⑴#include int main() { double x=1,y;

y=x+3/2; prin tf("y=%f\n",y); return 0; }结果是:2.000000,注意3/2=1 ⑵ #i nclude int main() { float x=2.9,y=3.2, z; int a=8; z=x+a%3*(i nt)(x+y)/2; prin tf("z=%f\n",z); return 0; } 结果是:8.900000,注意(int)(x+y) =6。 ⑶ #i nclude int main() { int a=65,b=-20; char ch='A'; float x=12.345678f; prin tf("abc\n\101\t\x41\\101\n"); prin tf("a=%d,%c,%o,%x\n",a,a,a,a); prin tf("b=%d,%o,%x,%u\n",b,b,b,b); prin tf("ch=%d,%c\n",ch,ch); prin tf("x=%f,%.2f,%10.2f,%-10.f\n",x,x,x,x); return 0; 此题包含的内容较多,都是细节,希望对照教材仔细分析结果6程序设计。 (1)输出如下的图形。 *****

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

c语言 课后答案

第一单元: 1.C语言是由 C 组成的。 A.子程序 B.过程 C.函数 D.主程序和子程序 2.一个字节的二进制位数是 D 。 A.2 B.4 C.6 D.8 3.下面叙述不正确的是 C 。 A.一个C源程序可以由一个或多个函数组成。 B.一个C源程序必须包含一个main函数。 C.在C程序中,注释说明只能位于一条语句的后面。 D.C程序的基本组成单位是函数。 4.一个C语言程序是由 A 开始执行。 A.主函数 B.主过程 C.子程序 D.主程序 5.C语言规定,在一个源程序中,main函数的位置是 B 。 A.必须在最开始 B.可以任意 C.必须在系统调用的库函数后面 D.必须在最后 6.一个C程序的执行是从 A 。 A.本程序的main函数开始,到main函数结束。 B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C.本程序的main函数开始,到本程序文件的最后一个函数结束。 D.本程序文件的第一个函数开始,到本程序main函数结束。 四、用自然语言描述下面问题 1.两车相距若干距离,分别以各自的速度相向行驶,计算它们需要多少时间才能相遇。 (1)获得距离S及两车的速度V0和V1; (2)求出T=S/(V0+V1); (3)显示T。 2.从键盘输入一个学生的两个成绩,然后输出两者中的高分。 (1)获取两个成绩scrore1、scrore2; (2)判断scrore1是否大于scrore2; (3)成绩显示scrore1,否则显示scrore2; 第二单元1.以下各种标识符中,合法的用户标识符是 B 。 A.A#C B.Scanf1 C.void D.ab* 2.C语言中的基本数据类型包括 B 。 A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 3.在C语言中,错误的int类型常量是 A 。 A.32768 B.0 C.037 D.oxaf 3.下列常数中不能作为C的常量是 D 。 A.0x45 B.2.5e-2 C.3e2 D.0582 5.下列可以正确表示字符型常量的是 B 。 A."a" B.‘\t’ C."\n " D.297 6.为求出s=10!的值,则变量s的类型应当为 C 。 A.int B.unsigned C.Long D.以上三种类型均可

C语言课后习题及答案讲解

第一章 一、选择题 1.C/C++规定,在一个源程序中,main()函数的位置()。C A.必须在最开始 B.必须在最后 C.可以任意 D.必须在系统调用的库函数的后面 2.以下()是C/C++合法的标识符。A A.char2 B.@x C.int D.7Bw 3.下面的程序,对于输入:2 9 15,输出的结果是()。B #include"iostream.h" void main() {int a; float b; cout<<"input a,b:"<>a>>b; cout<<"a+b="<

c语言第四版课后习题答案

c语言第四版课后习题答案 C语言第四版课后习题答案 在学习C语言第四版课程后,许多学生都会遇到各种各样的问题和疑惑。为了帮助大家更好地掌握C语言的知识,我们整理了一些课后习题的答案,希望能够对大家有所帮助。 1. 什么是C语言? C语言是一种通用的高级程序设计语言,它广泛应用于系统软件、应用软件、驱动程序、网络通信等领域。C语言具有高效、灵活、可移植等特点,是程序员必备的基本技能之一。 2. C语言的基本语法有哪些? C语言的基本语法包括数据类型、变量、运算符、控制语句、函数等。学习C 语言首先要掌握这些基本语法,才能够编写出正确的程序。 3. 如何定义一个变量? 在C语言中,可以使用关键字“int”、“float”、“char”等来定义不同类型的变量。例如: int a; // 定义一个整型变量a float b; // 定义一个浮点型变量b char c; // 定义一个字符型变量c 4. 如何进行条件判断? 在C语言中,可以使用“if”、“else”、“switch”等关键字来进行条件判断。例如:if (a > b) { printf("a大于b");

} else { printf("a小于等于b"); } 5. 如何定义一个函数? 在C语言中,可以使用关键字“void”、“int”、“float”等来定义不同类型的函数。例如: int max(int a, int b) { if (a > b) { return a; } else { return b; } } 通过学习C语言第四版课程,我们可以更好地理解和掌握C语言的知识,提高自己的编程能力。希望大家能够通过不断练习和实践,掌握C语言的基本原理和技巧,成为一名优秀的程序员。

C语言课后习题答案(最终)

C语言课后习题答案(最终) 第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数:(1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数:(1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少?答: 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么?答: 0~65535、-128~127、-32768~32767 C语言程序属于应用程序,程序代码本身存放在应用程序区,程序运行时处理的数据存计算机的内存空间主要分为3个区:系统程序区、应用程序区和数据区,其中数据区

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案 1. 基本概念和语法 1.1 变量和数据类型 题目: 请将下列C语言的变量定义语句补充完整,并给出每个变量的数据类型和初始化值。 代码: ```c #include int main() { int a; float b; char c; double d; int x = 5; float y = 3.14; char z = 'A'; printf("a的数据类型:%s,a的初始值:%d\n", typeof(a), a);

printf("b的数据类型:%s,b的初始值:%f\n", typeof(b), b); printf("c的数据类型:%s,c的初始值:%c\n", typeof(c), c); printf("d的数据类型:%s,d的初始值:%lf\n", typeof(d), d); printf("x的数据类型:%s,x的初始值:%d\n", typeof(x), x); printf("y的数据类型:%s,y的初始值:%f\n", typeof(y), y); printf("z的数据类型:%s,z的初始值:%c\n", typeof(z), z); return 0; } ``` 答案: a的数据类型:int,a的初始值:随机值 b的数据类型:float,b的初始值:随机值 c的数据类型:char,c的初始值:'\0' d的数据类型:double,d的初始值:随机值 x的数据类型:int,x的初始值:5 y的数据类型:float,y的初始值:3.140000 z的数据类型:char,z的初始值:A 1.2 运算符和表达式

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案 为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。以下是部分习题的解答示例: 1. 基本概念与语法 1.1 变量和数据类型 C语言中的变量用于存储不同类型的数据。常见的数据类型包括整型、浮点型、字符型等。例如,声明一个整型变量x并赋值为10的方法如下: ```c int x = 10; ``` 1.2 操作符和表达式 C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下: ```c if (x > 0 && x < 100) { // 满足条件的代码

``` 2. 流程控制 2.1 分支结构 流程控制中的分支结构用于根据条件来执行不同的代码块。常见的 分支结构有if语句和switch语句。例如,使用if语句判断一个数的正 负情况: ```c if (x > 0) { printf("x是正数\n"); } else if (x < 0) { printf("x是负数\n"); } else { printf("x是零\n"); } ``` 2.2 循环结构 循环结构用于多次执行相同的代码块。常见的循环结构有for循环、while循环和do-while循环。例如,使用for循环输出1到10的数字:

for (int i = 1; i <= 10; i++) { printf("%d ", i); } printf("\n"); ``` 3. 函数和数组 3.1 函数的定义和调用 函数是一段完成特定功能的代码块,可以多次调用。函数的定义包括函数名、参数列表和返回值类型。例如,定义一个用于计算两个整数相加的函数: ```c int add(int a, int b) { return a + b; } // 调用add函数 int result = add(3, 5); printf("3 + 5 = %d\n", result); ```

c语言与程序设计-第2章课后习题参考答案

2.1 下列哪些是词法记号? 关键字(是) 注释 空白符 八进制常量(是) 三字符序列 字符串常量(是) 括号(是) 2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法) (1)x+++y x, ++, +, y (2)-0xabL -, 0xabL (3) 2.89E+12L 2.89E+12L (4)"String+\"FOO\"" " String+ \"FOO\"" (5)x**2 x, *, *, 2 (6)"X??/" "X??/" (7)a?b a, ?, b (8)x--+=y x, --, +=, y (9)intx=+10 intx, =, +, 10 (10)"String""FOO" "String", "FOO" (这道题当时改的时候有几个小题改得有错误,注意!) 2.3 下列哪些不是标识符,为什么? 标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。 4th 不是,以数字开头; sizeof 不是(标准C的关键字) _limit 是 _is2 是 xYshould 是 x*y 不是,* 非法 o_no_o_no 是 temp-2 不是,- 非法 isn't 不是,' 非法 enum 不是(标准C的关键字。注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。关键字不能作为普通标识符,但可以作为宏名。所有预处理均发生在识别这些关键字之前。) 2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。 2L 合法,long长整型 ''' 不合法,单引号组中的单引号前需要转义字符

c语言程序设计(第3版)的习题答案

c语言程序设计(第3版)的习题答案c语言程序设计(第3版)的习题答案 本文为《c语言程序设计(第3版)》中的习题答案汇总,旨在帮助读者更好地理解和掌握该教材。以下是各章节习题的详细解答:第1章:计算机概述 习题1: 答案:计算机是一种能够接受输入数据、对其进行逻辑和算术运算,并产生输出结果的电子设备。 习题2: 答案:计算机主要由中央处理器(CPU)、主存储器、输入设备和输 出设备四个主要部分组成。 ...... 第2章:c语言概述 习题1: 答案:C语言是一种通用的高级编程语言,由贝尔实验室的Dennis Ritchie于1972年开发。 习题2: 答案:C语言的特点包括高效性、可移植性、灵活性和丰富的操作 符与控制语句。

...... 第3章:数据类型、运算符和表达式 习题1: 答案:C语言中的基本数据类型包括int、float、double、char等。 习题2: 答案:C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。 ...... 第4章:程序控制结构 习题1: 答案:C语言中的程序控制结构主要包括顺序结构、选择结构和循环结构。 习题2: 答案:顺序结构是指程序按照语句的顺序依次执行,没有分支和循环。 ...... 第5章:函数 习题1:

答案:C语言中的函数由函数头和函数体组成。 习题2: 答案:函数的定义包括函数名、返回类型、参数列表和函数体。...... 第6章:数组和字符串 习题1: 答案:数组是一组相同类型的数据元素的集合。 习题2: 答案:C语言中的字符串是以空字符'\0'结尾的字符数组。...... 第7章:指针 习题1: 答案:指针是用来存储另一个变量的地址的变量。 习题2: 答案:指针变量可以通过取地址运算符(&)获取普通变量的地址。...... 第8章:结构和共用体 习题1:

大一c语言课后题答案

大一c语言课后题答案 作为大一学生,很多同学在学习C语言的时候会遇到不少难题。为了帮助大家提高C语言的学习效果,老师常常会布置一些课后作业,下面是一些常见的C语言课后题及其解答。 题目一:编写一个程序,找出1000以内的质数。 解答: #include #include int main() { int i, j, flag; for (i = 2; i <= 1000; i++) { flag = 1; //假设i为素数 for (j = 2; j <= sqrt(i); j++) { if (i % j == 0) //如果存在因数则不是素数 { flag = 0; break;

} } if (flag == 1) //输出素数 { printf("%d ", i); } } return 0; } 题目二:编写一个程序,输入n,求1到n的阶乘之和。解答: #include int main() { int i, j, n, sum = 0, fac = 1; scanf("%d", &n); for (i = 1; i <= n; i++) {

for (j = 1; j <= i; j++) //求i的阶乘 { fac *= j; } sum += fac; //计算阶乘之和 fac = 1; //重置fac为1 } printf("%d", sum); return 0; } 题目三:编写一个程序,输入一个整数,判断它是否为水仙花数。水仙花数是指一个n位数(n≥3),其各个位上数字的n次方之和等于其本身。 解答: #include #include int main() { int num, sum = 0, temp, n = 0;

相关文档
最新文档