高级语言程序设计习题版带答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级语言程序设计习题版带答案
第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 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在C 语言程序中允许出现的字符集是ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。
(8) C 语言程序的注释可以出现在程序中的任何地方,它总是以/* 符号作为开始标记,以
*/ 符号作为结束标记。
第2章数据类型运算符和表达式习题
1. 单项选择题
(1) 以下选项中,正确的C 语言整型常量是 D 。
A. 32L
B. 510000
C.
D. 567
(2) 以下选项中, D 是不正确的C 语言字符型常量。
A. 'a'
B. '\x41'
C. '\101'
D. a
(3) 在C 语言中,字符型数据在计算机内存中,以字符的C 形式存储。
A. 原码
B. 反码
C. ASCII 码
D. BCD码
(4) 字符串的结束标志是 C 。
A. 0
B. '0'
C. '\0'
D.。
B 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(5) A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算
C. 关系运算、赋值运算、算术运算
D. 关系运算、算术运算、赋值运算
(6) 逻辑运算符中,运算优先级按从高到低依次为 D 。
A. &&,!,||
B. ||,&&,!
C. &&,||,!
D. !,&&,||
(7) 表达式!x||a==b 等效于 D 。
A. !((x||a)==b)
B. !(x||y)==b
C. !(x||(a==b))
D. (!x)||(a==b)
(8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是 A 。
A. 0,0
B. 0,1
C. 1,0
D. 1,1
(9) int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为 A 。
A. 2,3
B. 2,0
C. 3,0
D. 3,2
(10) 设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量
a 的值是 B 。
A. 3
B. 0
C. 9
D. -12
(11) 在以下一组运算符中,优先级最低的运算符是 D 。
A. *
B. !=
C. +
D. =
(12) 设整型变量i 值为2,表达式(++i)+(++i)+(++i)的结果是 B 。
A. 6
B. 12
C. 15
D. 表达式出错
(13) 若已定义x 和y为double 类型,则表达式x=1,y=x+3/2 的值是 C 。
A. 1
B. 2
C.
D.
(14) sizeof (double)的结果值是 A 。
A. 8
B. 4
C. 2
D. 出错
(15) 设a=1,b=2,c=3,d=4,则表达式:a
A. 4
B. 3
C. 2
D. 1
(16) 设a 为整型变量,不能正确表达数学关系:10<a<="" 语言表达式是="">
A. 10<a<15< p="">
B. a= =11|| a= =12 || a= =13 || a= =14
C. a>10 && a<15
D. !(a<=10) && !(a>=15)
(17) 设f是实型变量,下列表达式中不是逗号表达式的是 D 。
A. f= ,
B. f>0, f<10
C. f=, f>0
D. f=,
(18) 设ch是char型变量,其值为'A',则下面表达式的值是 B 。
ch=(ch>='A'&& ch<='Z') (ch+32):ch
A. A
B. a
C. Z
D. Z
(19) 以下运算符中,结合性与其他运算符不同的是 A 。
A. ++
B. %
C. /
D. +
(20) 以下用户标识符中,合法的是 B 。
A. int
B. nit
C. 123
D. a+b
(21) C 语言中,要求运算对象只能为整数的运算符是% 。
A. %
B. /
C. >
D. *
(22) PC 机中,'\n'在内存占用的字节数是 A 。
A. 1
B. 2
C. 3
D. 4
(23) 字符串??在内存占用的字节数是 B 。
A. 3
B. 4
C. 6
D. 8
(24) 要为字符型变量a赋初值,下列语句中哪一个是正确的 B 。
A. char a=;
B. char a='3';
C. char a=%;
D. char a=*;
(25)下列不正确的转义字符是 C 。
A. \\
B. \'
C. 074
D. \0
2. 填空题
(1) C 语言中的逻辑值“真”是用非0 表示的,逻辑值“假”是用0 表示的。
(2) 符号常量的定义方法是#define N 10 。
(3) 无符号基本整型的数据类型符为unsigned int ,双精度实型数据类型符为
double ,字符型数据类型符为char 。
(4) 设c='w',a=1,b=2,d=-5, 则表达式'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别
为 1 、0 、 1 、表达式错误。
的值为4/x+a%3*(int)(x+y)%2 ,表达式float x=,y=; int a=7; 设(5)
(6) 判断变量a、b 的值均不为0 的逻辑表达式为(a!=0)&&(b!=0) 。
(7) 求解赋值表达式a=(b=10)%(c=6),表达式值、a、b、c 的值依次为4,4,10,6 。
(8) 求解逗号表达式x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3 。
(9) 数学式a/(b*c)的C语言表达式a/(b*c) 。
第3章顺序结构程序设计习题
1. 选择题
(1) printf(
=%3.2f%%,;的输出结果是 A 。
A. f=%
B. f=%
C. f=% %
D. f=%
(2) printf(%c,%d,'a', 'a');的输出结果是 A 。
A. a,97
B. a 97
C. 97,a
D. 97 a
(3) scanf(%c,&a);若要给变量输入大写字母A,则以下正确的输入是 B 。
A. 'A'
B. A \
C. A
D. 以上都不对
(4) 若一个int 类型的数据占2 字节,则程序段:int x=-1;printf(%u,%d,x,x);的输出结果是
A 。
A. 65535, -1
B. -1,65535
C. 32767, 32768
D. 32768,32767
(5) 在TC 中,getchar、putchar、printf、scanf 四个函数,均包含在头文件 B
中。
A. B. C. D.
(6) 复合语句是用 C 括起来的语句组。
A. ( )
B. [ ]
D. < >
(7) 下列格式符中,哪一个可以用于以八进制形式输出整数 C 。
A. %d
B. ?
C. %o
D. %ld
(8) 下列格式符中,哪一个可以用于以十六进制形式输出整数 B 。
A. _x0016_d
B. %8x
C. ?6
D. %d
(9) a 是int类型变量,c是字符变量,下列输入语句中哪一个是错误的 B 。
A. scanf(%d,%c,&a,&c);
B. scanf(%d%c,a,c);
C. scanf(%d%c,&a,&c);
D. scanf(d=%d,c=%c,&a,&c);
(10) 要使double x; long a;的数据能正确的输出,输出语句应是
D 。
A. printf(%d, %f,a, x);
B. printf(%d, ,a, x);
C. scanf(_x001D_, ,&a, &x);
D. printf(_x001D_, %lf,a, x);
2. 程序改错题(以下各个程序段均有5 个错误,请先找出错误的位置,然后再改正) (1) 以下程序的功能是,从键盘输入一个字符并鸣笛输出。
#include \
mian() 写出程序运行结果
(1)
{
int a,b;
scanf(-%*2s-,&a,&b);
printf(%d\n,a+b);
}
运行时输入:单项选择题
(1) 选择结构程序设计的特点是___B____。
A. 自上向下逐个执行
B. 根据判断条件,选择其中一个分支执行
C. 反复执行某些程序代码
D. 以上都是
(2) 假定所有变量均已正确定义,下列程序段运行后x 的值是__B_。
a=b=c=0,x=35;
x=3; else x=4; if(!a) x--; else if(b); if(c)
A. 34
B. 4
C. 35
D. 3
(3) 下面的程序片段所表示的数学函数关系是_ A____。
if(x<0) y= -1;
else if(x>0) y=1;
else y=0;
(4) 下列各语句序列中,能够且仅输出整型变量a、b 中最大值的是( C )。
A. if(a>b) printf(%d\n,a); printf(%d\n,b);
B. printf(%d\n,b); if(a>b) printf(%d\n,a);
C. if(a>b) printf(%d\n,a); else printf(%d\n,b);
D. if(a<="">
(5) 以下程序段的输出结果是 A
int x=5;
if(x>0) y=1;
else if(x==0) y=0;
else y= 1;
printf(%d,y);
A. 1
B. 5
C. 0
D. 2
(6) 程序段int x=5,y=8,max; max=(x>y)x:y; printf(%d,max);的输出结果是 B 。
A. 5
B. 8
C. 3
D. 13
(7) 程序段int x=3,a=1;switch(x) {case 4: a++;case 3: a++;case 2: a++;case 1: a++;} printf (%d,a);的输出结果是 D 。
A. 1
B. 2
C. 3
D. 4
(8) 下列语句应将小写字母转换为大写字母,其中正确的是( B )。
(ch>='a'&ch<='z') ch=ch-32; (ch>='a'&&ch<='z')ch=ch-32;
=(ch>='a'&&ch<='z')ch-32:''; =(ch>'a'&&ch<'z')ch-32:ch;
2. 阅读程序,写出运行结果
(1)
void main ()
{
int a=10, b=4, c=3;
if(a<="" a="b" p="">
if(a<="" a="c" p="">
printf(%d, %d, %d\n, a, b, c) ;
}
输出:10,4, 3
(2)
void main ( )
{
int x=100, a=10, b=20, ok1=5, ok2=0; if(a
else if(ok2) x=10;
else x=-1;
printf(%d\n, x);
}
输出:-1;
(3)
int k,a=1,b=2;
k=(a++==b) 2:3;
printf(%d,k);
输出:3
(4)
void main()
{
int s=1,k=0;
switch (s)
{
case 1: k+=1;
case 2: k+=2;
default: k+=3;
}
printf(“%d”,k);
}输出:6
(5)
void main()
{
int s=1,k=0;
switch (s)
{
case 1: k+=1;break;
case 2: k+=2;break;
default: k+=3;
}
printf(“%d”,k);
}
输出:1
第5章循环结构程序设计习题
1. 单项选择题
(1)for(i=1;i<9;i+=1);该循环共执行了 B 次。
A. 7
B. 8
C. 9
D. 10
(2)int a=2;while(a=0) a--;该循环共执行了 A 次。
A. 0
B. 1
C. 2
D. 3
(3)执行完循环for(i=1;i<100;i++);后,i 的值为 B 。
A. 99
B. 100
C. 101
D. 102
(4)以下for语句中,书写错误的是 D 。
A. for(i=1;i<5;i++);
B. i=1;for(;i<5;i++);
C. for(i=1;i<5;) i++;
D. for(i=1,i<5,i++);
语句,在循环条件初次判断为假,还会执行一次循环体。
C (5)
A. for
B. while
C. do-while
D. 以上都不是
(6)循环结构的特点是 C 。
A. 从上至下,逐个执行
B. 根据判断条件,执行其中一个分支
C. 满足条件时反复执行循环体
D. 以上都对
(7) i、j已定义为int 类型,则以下程序段中内循环体的执行次数是 A 。
for(i=5;i;i--)
for(j=0;j<4;j++){…}
A. 20
B. 24
C. 25
D. 30
(8) C 语言while 语句中,用于条件的表达式是 D 。
A. 关系表达式
B. 逻辑表达式
C. 算术表达式
D. 任意表达式
(9) int a=1, x=1; 循环语句while(a<10) x++; a++; 的循环执行 D 。
A. 无限次
B. 不确定次
C. 10 次
D. 9 次
(10)下列程序段执行后s 的值为 A 。
int i=1, s=0; while(i++) if(!(i%3)) break ; else s+=i ;
A. 2
B. 3
C. 6
D. 以上均不是
2. 填空题
(1)三种循环语句是等价价的。
(2)当循环体中的switch语句内有break语句,则只跳出swicth 语句。
同样,当switch语句中有循环语句,内有break 语句,则只跳出循环语句。
(3)循环体执行遇到continue 语句时跳过本次循环进入下次循环。
(4)下列程序的功能是输入一个正整数,判断是否是素数,若为素数输出1,否则输出0,请为程序填空。
void main( )
{
int i, x, y=1;
scanf(%d, &x);
for(i=2; i<=x/2; i++)
if ( x%i==0 ) { y=0; break; }
printf(%d\n,y);
}
(5)输入N个实数,输出其中的最大值、最小值。
#include <>
void main( )
{
int n,i;
float no1,nmax,nmin; </a<15<>
</a。