c语言《程序设计基础》课后习题参考答案与解析

上传人:飞*** 文档编号:30954225 上传时间:2018-02-03 格式:DOC 页数:40 大小:147KB
返回 下载 相关 举报
c语言《程序设计基础》课后习题参考答案与解析_第1页
第1页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析_第2页
第2页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析_第3页
第3页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析_第4页
第4页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《c语言《程序设计基础》课后习题参考答案与解析》由会员分享,可在线阅读,更多相关《c语言《程序设计基础》课后习题参考答案与解析(40页珍藏版)》请在金锄头文库上搜索。

1、1程序设计基础习题参考答案与部分解析第 1 章 C 语言概述一、填空a) C 源程序的基本单位是 函数 。b) 一个 C 程序中至少应包括一个 main 函数 。c) 在 C 语言中,输出操作是有库函数 printf( )函数 完成。二、单选题1、A 2、C 3、B解析:第 1 题 答案:A 。因为一个 C 程序总是从 main 函数开始执行的,而不论 main 函数在程序中的位置。且到 main 函数结束。第 2 题 答案:C 。因为 main 函数没有限制必须位于程序的最前面。C 程序书写自由,一行内可写几个语句。在对一个 C 程序进行编译的过程中,无法检查注释当中的拼写错误。不过 C 语

2、言本身并没有输入输出语句,输入输出是由函数完成的。第 3 题 答案:B。因为一个 C 语言程序是由若干个函数组成的。但至少包含一个 main 函数,且 main 函数的位置不限。三、编程题1、编写一个输出“Welcome to C!”信息的小程序。解:程序如下#include “stdio.h”main( ) 2printf(“Welcome to C!”) ;2、 已知三角形的三边长分别为 3,4,5,试用海轮公式编程求其面积。海伦公式为:S= ,其中 s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( )int a ,

3、b , c ; /* a ,b,c 3 个整型变量表示三角形的 3 条边。*/float s ,s1 ; /* s1 作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c); /* sqrt 函数完成开平方根功能。*/printf(“area=%fn”,s1);3第 2 章 程序设计基础知识一、单选题1、C 2、 A 3、C 4、A 5、C 6、C 7、D 8、C 9、D 10、A 11、D 12、A 13、C 14、C 15、B A16、B 17 D解析:1. 答案: C。这里

4、考察的是用户标识符的定义。用户标识符由字母、数字、下划线组成。且必须以字母或下划线开头,区分大小写,且不能与 C 语言已有的 32 个关键字同名。由于选择不合法的用户标识符,A 项的 A 、 P_0、 Do 都是合法的用户标识符;B 项的 _A 是合法的;D 项的 _123、 temp、INT 也都是合法的。只有 C 选项的标识符都是错误的用户标识符。2. 答案:A。这里考察的是整型常量的概念。B 项当中 01a 不正确,C项当中的 0668 不是正确的八进制常量,D 项当中的 2e5 是 float 型常量。3答案:C。这里考察的是字符常量的定义。字符常量是用单撇号括起来的单个字符或转义字符

5、。所以答案是 C。4答案:A。字符变量只能包含一个字符。5答案:C。这里考察的是转义字符的正确表示。C 项的074是错误的转义字符,正确表示方法是074。6答案:C。字符变量只能包含一个字符,而 C 项的 c=yes是错误的。47答案:D。这里考察的是输入格式的控制。输入格式要与 scanf语句中字符串格式相对应。8答案:C。这里考察的是输出格式和字符对应的 ASCII 码值。 A的 ASCII 码值是 65, Y字符的 ASCII 码值是 89。9答案:D。这里考察输入格式和输出结果形式。由于输入格式不正确,所以输出的是不确定值。10答案:A。这里考察的是标识符的特点区分大小写,变量 sum

6、 和变量 sUM 是两个不同的变量,sum 并没有参加运算,所以它的值不边仍然是 7。11答案:D。%运算符要求两边的运算数必须是整型。12答案:A。这里考察的是复合赋值运算。a%=b+1; 等价与a=a%(b+1);由于 a=10,b=4;所以运算后 a 的值是 0。13答案:C。这里考察的是在变量定义类型是进行赋值操作。要求a,b,c 都赋值为 5,且为 int 类型。只有 C 正确。14答案:C。这里考察的是类型的自动转换,只要有单精度类型或双精度类型参加运算,结果都是 double(双精度)类型。15答案:B, A。这里考察的是逻辑表达式的运算过程。表达式 1&表达式 2 ,若表达式

7、1 的值是 0 的话,结果就是 0,表达式2 就不参加运算。要注意:赋值表达式的值是左边赋值变量的值。所以答案为 B ,A。16答案:B。这里考察的是逗号表达式运算过程是从第 1 个表达式开始运算,然后依次运行到最后一个表达式。逗号表达式的值是最后5表达式的值,且注意逗号运算符优先级低于赋值运算符。所以表达式(a=2,b=5,b+,a+b)运算过程 a=2 b=5 b+ a+b=8;结果是 8。17答案:D。这里考察的是条件表达式的结合性是从右向左。所以k2&x5) printf(“%dn”, m) ; else printf(“%dn”,m+) ;先执行 m5 的值是 0,然后执行 m=m+

8、1; 得到 m=6;由于 m5 的值是0 所以执行 else 语句,应先输出 m 的值是 6,然后 m 再自增一个单位变成7。2答案:C。这里考察的是 if 语句的嵌套。根据 else 子句总是与之前最近的 if 语句配对来进行选择满足条件的答案。3答案:B。这里也考察的是 if 语句的嵌套。同理:if(x y z x y x 2、 ch = A & chb) max = a ;else max = b ;if(max c)&(a-b)0)f1(a,b,c);eles if(b*b-4*a*c =0)f2(a,b,c);else printf(“ no jie !n”);第 6 章 数组一、单

9、项选择题1、C 2、D 3、D 4、C 5、C 6、D 7、B 8、C 9、D 10、B11、B 12、B(原题数组改为 a3) 13、D 14、B 15、 D 16、B 17、D 18、D 19、B 20、 D二、按要求完成程序的空缺241 下面程序以每行 4 个数据的形式输出 a 数组,请填空。2 下面程序将二维数组 a 的行和列元素互换后存到另一个二维数组 b 中,请填空。j t ; i-)ai+1=ai ;ai+1=t ;for(i=0 ;i*pb) temp=*pa, *pa=*pb , *pb=temp ;if(*pa*pc)temp=*pa, *pa=*pc , *pc=temp

10、 ;if(*pb*pc)temp=*pb, *pb=*pc , *pc=temp ;printf(“从小到大的顺序是:n”) ;printf(“%d , %d , %dn” , a , b , c ) ;7.2、输入 3 个字符串,按由小到大的顺序输出。 (书中没该题)解:程序如下#include “stdio.h”#include “string.h”main( )char a50 , b50 , c50 , *pa ,*pb , *pc , *ch ;32pa = a ; pb = b ; pc = c ;gets(pa) ; gets(pb) ; gets(pc ) ;if(strcmp

11、(pa , pb ) 0 )ch=pa , pa = pb , pb = ch ;if(strcmp(pa , pc ) 0 )ch=pa , pa = pc , pc = ch ;if(strcmp(pb , pc ) 0) ch=pb , pb = pc , pc = ch ;puts(pa) ; puts(pb ) ; puts(pc) ;2、输入 10 个整数,将其中最小的数与第一个对换,把最大的数与最后一个数对换。写出 3 个函数: 输入 10 个整数;进行处理;输出 10 个数。解:程序如下#include “stdio.h”void input( int *a)int n ;fo

12、r(n=0 ; n max )max=*(a+i) ; n2= i ; temp=a0 , a0 = an1 , an1 = temp ;temp=a9 , a9 = an2 , an2= temp ;void output( int *a)int n ;for(n=0 ; n=A& *(p+i)=a& *(p+i)=0& *(p+i)face) ;是错误的。改为 printf(“%cn”,*cPtr-face) ;4 分析:共用体变量的各个成员共享同一块内存区域,这里所谓的共享不是指把多个成员同时装入一个共用体变量内,而是指该共用体变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧

13、值。5三、编程题371、 定义一个结构体变量,其成员包括:职工号、职工名、性别、年龄、工资、地址。程序如下:struct employee int code ;char name20 ;char sex ;int age ;float money ;char address30 ; emp ; 2、 针对上述定义,从键盘输入所需的具体数据,然后用 printf 函数打印出来。程序如下:struct employee int code ;char name20 ;char sex ;int age ;float money ;char address30 ; emp ; main( )38 sc

14、anf(“%d ,%s , %c”, emp.code , emp.name , emp.sex ) ;scanf(“%d ,%f , %s ”,emp.age , emp.money , emp.address) ;printf(“输出职员信息:n”) ;printf(“职工号是: %dn” , emp.code) ;printf(“职工名是: %sn” , emp.name) ;printf(“职工性别: %cn” , emp.sex) ;printf(“职工年龄: %dn” ,emp.age) ;printf(“职工工资: %fn” ,emp.money) ;printf(“职工地址: %sn” ,emp.address) ;3、 有 10 个学生,每个学生的数据包括学号、姓名及 3 门课的成绩,从键盘输入 10 个学生数据,要求打印出 3 门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课的成绩,平均成绩) 。程序如下:struct student int num ;char name10 ;float score3 ; stu10 ;main( ) int I , j ;float avg10 , sum , max;39printf(“输入 10 个学生数据:n” ) ;for(I=0 ; I10 ; I+) scanf(“ %d” , stu

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号