资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序设计基础习题参考答案与部分解析第 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 语言本身并没有输入输出语句,输入输出是由函数完成的。第 3 题 答案:B。因为一个 C 语言程序是由若干个函数组成的。但至少包含一个 main 函数,且 main 函数的位置不限。三、编程题1、编写一个输出“Welcome to C!”信息的小程序。解:程序如下#include “stdio.h”main( ) printf(“Welcome to C!”) ;2、 已知三角形的三边长分别为 3,4,5,试用海轮公式编程求其面积。海伦公式为:S= ,其中 s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( )int a , 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);第 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 。这里考察的是用户标识符的定义。用户标识符由字母、数字、下划线组成。且必须以字母或下划线开头,区分大小写,且不能与 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。这里考察的是字符常量的定义。字符常量是用单撇号括起来的单个字符或转义字符。所以答案是 C。4答案:A。字符变量只能包含一个字符。5答案:C。这里考察的是转义字符的正确表示。C 项的074是错误的转义字符,正确表示方法是074 。6答案:C。字符变量只能包含一个字符,而 C 项的 c=yes是错误的。7答案:D。这里考察的是输入格式的控制。输入格式要与 scanf 语句中字符串格式相对应。8答案:C。这里考察的是输出格式和字符对应的 ASCII码值。 A的 ASCII 码值是 65, Y字符的 ASCII 码值是 89。9答案:D。这里考察输入格式和输出结果形式。由于输入格式不正确,所以输出的是不确定值。10答案:A。这里考察的是标识符的特点区分大小写,变量 sum 和变量 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 ,若表达式 1 的值是 0 的话,结果就是0,表达式 2 就不参加运算。要注意:赋值表达式的值是左边赋值变量的值。所以答案为 B ,A 。16答案:B。这里考察的是逗号表达式运算过程是从第 1个表达式开始运算,然后依次运行到最后一个表达式。逗号表达式的值是最后表达式的值,且注意逗号运算符优先级低于赋值运算符。所以表达式(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+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”);5、求完数#includeint wanshu(int n)int i,sum=0;for(i=1;i=n/2;i+)if(n%i=0)sum=sum+i;if(sum=n)return 1;else return 0;main()int i;printf(1 shi wanshun);for(i=2;i=1000;i+)if(wanshu(i)!=0)printf(%d shi wanshun,i);else continue;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号