习题1
一.选择题
(1) 以下叙述正确的是( )
A. 计算机不仅能执行机器语言程序,也可以直接执行其它高级语言编写的程序
B. 汇编语言是一种面向机器的低级语言,所以计算机可以直接执行用汇编语言编写的源程序
C. 高级语言是与自然语言或数学语言相近的计算机语言,用高级语言编写的源程序计算机都不能直接执行 D. 用高级语言编写的源程序只能经过解释程序边解释边执行 (2) 以下不正确的概念是( ) A. 一个C程序必须包含一个main函数 B. 一个C程序可以只有一个语句 C. 一个C程序可以由一个或多个函数组成 D. 一个C语言函数可以没有任何可执行语句 (3) 在C语言程序中( )。 A. main函数必须放在程序最前头 B. main函数必须放在程序最后 C. main函数必须放在所有函数之前
D. main函数可以放在程序任何允许放置函数的位置 (4) 以下C语言源程序的书写格式不正确的是( ) A. 正确的函数首部,其后必须加上分号 B. 分号是语句的一部分 C. 一行上可以书写多条语句 D. 一个语句可以写在多行之上 (5) 以下不正确的叙述是( )
A. 一个#include命令只能指定一个被包含文件 B. 一个#include命令可以指定多个被包含文件
C. 在#include命令中,文件名可以用尖括号或双引号括起来 D. 一个C程序中,可以使用多个#include文件包含命令 二.填空题
(1) 计算机程序设计语言分为 语言、 语言和 语言。
(2) 正确的算法应具有五个重要的特征是:① ,② ,③ ,④ ,⑤ 。 (3) 算法的表示方法主要有 、 、 、自然语言和 语言等。(4) 程序设计方法主要分为 程序设计方法和 程序设计方法。 (5) C语言的函数一般由 和 两部分组成。 (6) 注释部分从 开始,以 结束。 (7) 任何C程序的执行都是从 函数开始。 (8) 函数体一般包括 部分和 部分。
(9) 一个C语言程序由若干个函数组成,其中必须有一个 函数。 三.编程题
(1) 上机运行本章例题,熟悉所用C语言系统(如:Turbo C/C++和Visual C++ 6.0等)的上机方法与步骤。(2) 参照本章例题编写一个C语言程序,并上机运行,要求输出一下信息: **************************** Hello,World!
****************************
1
【参考答案】
一.选择题 (1) C (2) B (3) D (4) A (5) B
二.填空题 (1) 机器语言、汇编语言、高级语言 (2) ①有穷性、②确定性、③有效性、④输入、⑤输出。 (3) 传统流程图、N-S图、伪代码、计算机程序 (4) 面向过程、面向对象
(5) 函数首部、函数体 (6) /* 、*/ (7) main (8) 声明、执行 (9) main 三.编程题
(1) 例1.3 输出一行信息,内容为:This is my first C program. /* exa1-3.c */ #include
}
例1.4 键盘输入两个整数,求两个整数中的较大者。 /* exa1-4.c */
#include \头文件 */ void main() /* 主函数 */ { int max(int x,int y); /* 对被调用函数max的声明 */ int a,b,c; /* 定义三个整型变量a,b,c */ printf(\提示输入 */ scanf(\键盘输入变量a和b的值 */
c=max(a,b); /* 调用max函数,将函数返回值赋值给变量c */ printf(\输出c的值 */ }
int max(int x,int y) /* 定义整型函数max,其两个形式参数x,y也为整型 */ { int z; /* 函数max的声明部分 */ if(x>y) z=x; /* 如果x>y,将x赋值给z */ else z=y; /* 否则,将y赋值给z */
return(z); /* 将z的值返回给调用函数的位置 */ } (2)解答:
/* exe1-3-2.c */ #include
printf(\
}
2
习题2
一.选择题
(1)以下哪一个可以作为正确的变量名( )。 A.for
B.$abc
C.3*x
D._file
(2)以下哪一个不是正确的C语言常量( )。 A.0x2ac
B.3.25e-8 C.800
D.0486
(3)以下哪一个是合法的C语言实型常量( )。 A.3E2.5
B.E6 C.2A8
D.218
(4)以下哪一个整型常数值最大( )。 A.35 B.035
C.0x35
D.50
(5)以下不是字符型常量的是( )。 A.′m′
B.\
C.′\\115′ D.′\\x8c′
(6)以下哪一个字符与其他3个字符不相等( )。 A.′a′
B.′A′
C.′\\X41′ D.′\\101′
(7)以下哪一个是C语言合法的字符串常量( )。 A.I am a student.
B.\中国\C.′\\hello′
D.$abc$
(8)C语言中short型整数占2个字节,则unsigned short型数据的其值范围是:( )。 A.0~65535
B.0~65536
D.-65535~65535
C.-32768~32767
(9)在C语言中,数字018是一个( )。 A.十进制数 B.八进制数 C.十六进制数
D.非法数
(10)在C语言中,不同数据类型占用内存的字节长度是( )。 A.相同的 C.任意的
B.与编译环境有关的 D.由用户自己定义的
(11)以下哪一个不是C语言中的数据类型( )。 A.实型
B.浮点型 C.空类型 D.关系型
(12)以下哪一个是C语言中的数据类型( )。 A.集合型 B.双精度型 C.复数型 D.逻辑型 二、填空题
(1)C语言的常量分为:________常量、________常量、________常量、________常量和________常量。 (2) C语言中的整型数据有三种表示方法,分别是:________进制、________进制和________进制。 (3)C语言规定,变量必须________定义,________使用。
(4)C语言中,sizeof( )是分别是测定某种类型数据所占存储空间长度的________。
(5)C语言中,运算符的结合性有两种:左结合和右结合,左结合是________计算,右结合是________计算。 (6)C语言中,++i是先________,后________;i--是先________,后________。 (7)赋值运算符比逗号运算符的优先级别________。 (8)________运算符的优先级别最低,级别为15。
(9)C语言的类型转换有三种方式:________类型转换、________类型转换和________类型转换。 三、计算与编程题
(1)给出下列公式的C语言表达式。 ① y=ax2+bx+c
② y=ax+b/cx+d ③ 3.25×10+√(b2-4ac)-x2-y3 ④ y=1/2+2/3+(x2+y2)/(a2+b2)
8
⑤ 求表达式3*2+4.0/5?15%?4+(5*8/9+4)%5?1/2+1.0/2的值。 (2)上机运行本章例题,熟悉所用C语言编译系统的使用。
(3)用运算符sizeof( )测试以下数据类型在内存中所占空间的大小:char、unsigned char、int、short、long、unsigned、
3
unsigned short、unsigned long、float、double、long double,输出时一行输出一种数据类型的内存字节大小,并给出清晰的提示信息。
【参考答案】 一.选择题
(1) D (2) D (3) D (4) C (5) B (6) A (7) B (8) B (9) D (10) B (11) D (12) B 二.填空题
(1) 字符、整型、实型、字符串、符号 (2) 十、八、十六 (3) 先、后 (4) 运算符
(5) 从左到右、从右到左 (6) 加1、引用、引用、减1 (7) 高 (8) 逗号
(9) 自动、赋值、强制 三、计算与编程题 (1) ① y=a*x*x+b*x+c ② y=(a*x+b)/(c*x+d)
③ 3.25e8+sqrt(b*b-4*a*c)-x*x-y*y*y ④ y=1.0/2+2/3.0+x*x/(a*a)+y*y/(b*b) ⑤ 7.3 (2) 略 (3)
/* exe2-3-3.c */ #include
printf(\
printf(\ printf(\ printf(\ printf(\ printf(\
printf(\ printf(\ printf(\ printf(\
printf(\}
4
习 题 3
一.选择题
(1)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( ) A. a=a++,i++; B. i=(a+k)<=(i+k); C. i=a; D. i=!a;
(2) 若有定义:int x,y; char a,b,c; 并有以下输入数据(此处,
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是() A. scanf(\B. scanf(\C. scanf(\D. scanf(\
(3)若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5付给变量b的输入数据是()A. 3 5 B. 3,5 C. 3;5 D. 35
(4)若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为() A. 0和1 B. 0和20 C. 10和1 D. 10和20
(5)以下不能输出字符A的语句是()(注:字符A的ASCII码值为65,字符a的ASCII码值为97) A.printf(“%c\\n”,’A’-32) B.printf(“%d\\n”,’A’); C.printf(“%c\\n”,65); D.printf(“%c\\n”,’B’-1); 二.填空题
(1) 有以下程序(说明:字符0的ASCII码值为48) void main(void) #include
a=50.0;b=20.0;
{ char c1,c2; printf(\scanf(\printf(\c2=c1+9;
printf(\printf(\printf(\}
}
若程序运行时从键盘输入48<回车>,则输出结果为将缺少的部分填在空白处。
____________。
(4)下列程序的输出结果是____________。 (2) 以下程序的输出结果为:____________。 #include
main() { float a=3.14, b=3.14159; {
char a;
printf(\a='A';
}
printf(\(3) 编制程序对实数a与b进行加,减,乘,除计算,要求}
显示如下结果。 (5)分析下面程序 jia=70.000000 main() jian=30.000000 {
int x=2,y,z;
cheng=1000.000000 x*=3+2;printf(\chu=2.5000000 x*=y=z=4;printf(\程序:
x=y=1;
#include
z=x++-1;printf(\
5