高级语言程序设计习题版带答案

更新时间:2023-04-26 20:14:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第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. 10

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. [ ]

C. { }

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)

main()

{

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

if(a

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;

本文来源:https://www.bwwdw.com/article/og8q.html

Top