C语言程序设计练习题.docx

上传人:b****6 文档编号:6531681 上传时间:2023-01-07 格式:DOCX 页数:93 大小:94.20KB
下载 相关 举报
C语言程序设计练习题.docx_第1页
第1页 / 共93页
C语言程序设计练习题.docx_第2页
第2页 / 共93页
C语言程序设计练习题.docx_第3页
第3页 / 共93页
C语言程序设计练习题.docx_第4页
第4页 / 共93页
C语言程序设计练习题.docx_第5页
第5页 / 共93页
点击查看更多>>
下载资源
资源描述

C语言程序设计练习题.docx

《C语言程序设计练习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题.docx(93页珍藏版)》请在冰豆网上搜索。

C语言程序设计练习题.docx

C语言程序设计练习题

 

C语言程序设练习题

 

第一章概述1

第二章基本数据类型和运算2

第三章基本结构程序设计5

第四章数组11

第五章指针17

第六章函数23

第七章结构型、共用型和枚举型29

第八章文件35

第九章编译预处理和带参数的主函数41

附Ⅰ典型程序设计例题43

附Ⅱ模拟试题48

第一章概述

一、基本概念

1.程序:

程序是用某种计算机能理解并执行的计算机语言描述解决问题的方法步骤。

2.程序的特点:

有始有终、每个步骤都能操作、所有步骤执行完对应问题就能得到解决。

3.程序设计:

分析解决问题的方法步骤,并将其记录下来的过程。

4.计算机语言:

用来书写计算机程序的语言。

可分为:

①机器语言②汇编语言③高级语言。

5.机器语言:

计算机能直接识别和执行的二进制代码指令的集合,又称为指令系统。

6.汇编语言:

用符号来代表二进制代码,又称为符号语言。

用这种语言编写的程序需要通过一种称为汇编程序的翻译后才能执行。

不同的计算机提供不同的机器指令或汇编语言,所以机器语言和汇编语言是面向机器的语言。

统称为低级语言。

7.高级语言:

描述算法过程很方便,同时脱离了对机型的要求,能在任何计算机上运行的计算机语言。

是一种面向问题的语言。

8.高级语言的执行:

高级语言编写的程序称为“源程序”,它不能在计算机上直接运行,必须将其翻译成二进制代码指令程序后才能执行。

翻译方式又两种:

一种是“解释方式”;另一种是“编译方式”。

通过解释方式完成翻译工作的程序称为“解释程序”,通过编译方式完成翻译工作的程序称为“编译程序”,编译后的二进制程序称为“目标程序”。

C语言是一种编译语言。

9.C语言的特点:

①比其它高级语言更接近硬件,比低级语言更接近算法②数据类型和运算符十分丰富③语法结构简单④是一种结构化程序设计语言,提供了完整的程序控制语句⑤是一种模块化程序设计语言,适合大型软件的研制的调试⑥提供了大量的库函数供调用,简化了程序设计工作。

10.字符集:

在C语言程序中允许出现的所有基本字符的集合。

也就是ASCII字符集。

11.保留字:

C语言中有特殊含义的英语单词,主要用于构成语句、进行存储类型和数据类型的定义。

如:

int,float,double,char,static,auto,if,switch,while,do,for等。

12.标识符:

用来标识程序中需要辨认的对象名称。

如:

符号常量,变量,函数等的名字。

13.标识符的命名规则:

是由字母或下划线开头的字母、数字、下划线组成的一串符号。

注意:

①标识符不能是保留字②C语言标识符是区分大小写的,即abc和Abc是不同的标识符。

14.C程序的基本结构

⑴C程序是由若干个函数构成的。

每个C程序有且仅有一个主函数,其名字为main。

除主函数外可以没有其它函数,也可以有一个或多个其它函数。

⑵每个函数的定义分为两个部分:

函数说明部分和函数体。

函数说明部分的格式如下:

返回值的类型函数名(形式参数1,形式参数2,…)

形式参数的说明

函数体的格式如下:

{

变量定义部分

实现函数功能的语句串

}

⑶C程序的每个语句都是以分号“;”结束的。

⑷用/*注释内容*/为程序加注释。

⑸C程序书写格式灵活,一行上可以写多个语句,一个语句也可以写在多行上。

⑹程序的执行总是从主函数开始,并在主函数中结束。

主函数的位置是任意的,可以在程序的开头,可以在程序的结尾,也可以在两个函数之间。

其它函数总是通过函数调用语句来执行的。

⑺主函数可以调用任何非主函数;任何非主函数都可以互相调用,但不能调用主函数。

二、习题

(一)单项选择题

1.二进制语言是属于_____。

①面向机器语言②面向过程语言③面向问题语言④面向汇编语言

2.下列语言中不属于面向问题的语言是_____。

①高级语言②低级语言③C语言④ALGOL语言

3.下列字符中属于键盘字符的是_____

①\②\n③\t④\b

4.下列不正确的转义字符是_____

①\\②\'③074④\0

5.不是C语言提供的合法关键字是_____

①switch②cher③case④default

6.正确的标识符是_____

①?

a②a=2a.3④a_3

7.下列说法中错误的是_____

①主函数可以分为两个部分:

函数说明部分和主函数体

②主函数可以调用任何非主函数的其它函数

③任何非主函数可以调用其它任何非主函数

④程序可以从任何非主函数开始执行

(二)填充题

1.汇编语言属于面向__________语言,高级语言属于面向__________语言

2.用高级语言编写的程序称为__________程序,它可以通过__________程序翻译一句执行一句的方式执行,也可以通过__________程序一次翻译产生__________程序,然后执行。

3.转义字符是由__________符号开始的单个字符或若干个字符组成的。

4.C语言的词类主要分为__________、__________、__________、__________、__________和__________等6类。

5.C语言的语句主要分为_________语句、_________语句、________语句和________语句。

6.C程序是由函数构成的。

其中有并且只能有__________个主函数。

C语言程序的执行总是由__________函数开始,并且在__________函数中结束。

7.C语言程序的注释可以出现在程序中的任何地方,它总是以__________符号作为开始标记,以__________符号作为结束标记。

第二章基本数据类型和运算

一、基本概念

1.使用高级语言编写程序时需做好的两件事:

一是数据描述,二是描述数据的加工方法。

2.数据类型:

是指数据的内在表现形式。

通俗地说,数据在加工计算中的特征就是数据的类型。

C语言的数据类型详见教材。

整型和实型合称为“数值型”,数值型和字符型合称为“基本数据类型”。

不同类型数据所占用的内存字节数(数据长度)是不同的,因此C语言规定每使用一个数据之前,必须对数据的类型加以定义,以便为其分配长度合适的内存(即:

先定义,后使用)。

3.常量:

是程序运行过程中其值不改变的数据。

C语言规定常量的类型有四种:

整型常量、实型常量、字符常量和字符串常量。

4.各种常量的表示形式

整型常量:

有三种书写形式

⑴十进制整数。

如-123,+15等

⑵八进制整数。

如0144,015等,100,13。

⑶十六进制整数。

如0x64,0x15等,分别表示十进制数100,21。

另:

在整数后加后缀L或l,表示长整型常量,如0L,0123L,0x64L等。

实型常量:

有两种书写形式

⑴一般形式的实数。

如12.345,-123.456等。

⑵指数形式的实数。

如-1.2345E3,-123e-3等

字符常量:

如'a'、'1'、'A'、'\n'、'\101'、'\x41'、'\\'、'\''等。

字符串常量:

如"abc"、"1234567890"、"\\ABCD\\"、"\101\102\x43\x44"等

5.变量:

是程序运行过程中其值可以发生变化的量。

用来保存程序运行过程中的输入数据、中间结果和最终结果。

6.变量的定义:

存储类型符数据类型符变量名1=初值1,……,变量名n=初值n;

其中:

存储类型符有auto(自动型),register(寄存器型),static(静态型),

extern(外部参照型)

数据类型有int,short,long,unsignedint,unsignedshort,unsignedlong,

float,double,char

7.内部变量:

在函数内定义的变量。

8.外部变量:

在函数外定义的变量。

9.变量的生存期:

变量从开始分配内存单元到分配的内存单元被收回的期间。

10.变量的作用域:

在变量的生存期中,变量可以使用的程序区域。

11.全局变量:

生存期覆盖了定义点到整个程序结束的变量。

12.局部变量:

生存期只覆盖某个函数(或某个复合语句)的变量。

13.变量生存期和作用域的确定:

可由两方面确定①变量的定义点(内部变量或外部变量)②变量的存储类型。

如下表所示:

变量

允许的存储类型

生存期

作用域

外部变量

省略(称无存储类型)

全局变量

定义点到程序结束

静态型(static)

内部变量

省略(默认为自动型auto)

局部变量

定义该变量的函数或复合语句内部

自动型(auto)

寄存器型(register)

静态型(static)

全局变量

14.运算符和表达式:

用来表示各种运算的符号称为运算符;用运算符将运算对象连接起来所组成的运算式称为表达式。

运算符的优先级和结合性详见教材附录。

15.变量赋值及表达式计算时的数据类型转换原则

⑴表达式计算中数据类型的自动转换原则

参加运算的各个数据都转换为数据长度最长的数据类型,然后计算,计算结果是数据长度最长的数据类型。

⑵运算结果存入变量是数据类型的自动转换原则

先将运算结果的数据类型自动转换成变量的数据类型,然后再赋予该变量。

⑶强制数据类型转换原则

用如下的形式(数据类型符)(表达式)将表达式的值强制转换成指定的数据类型。

二、习题

(一)单项选择题

1.下列数据中属于“字符串常量”的是_____

①ABC②"ABC"③'abc'④'a'

2.在PC机中,'\n'在内存占用的字节数是_____

①1②2③3④4

3.字符串"ABC"在内存占用的字节数是_____

①3②4③5④6

4.在C语言中,合法的长整型数是_____

①0L②4962710③0.054838743④2.1869e10

5.char型常量在内存中存放的是_____

①ASCII代码值②BCD代码值③内码值④十进制代码值

6.设m,n,a,b,c,d均为零,执行(m=a==b)||(n=c==d)后,m,n的值是_____

①0,0②0,1③1,0④1,1

7.设a为5,执行下列语句后,b的值不为2的是_____

①b=a/2②b=6-(--b)③b=a%2④b=a>3?

2:

2

8.执行语句x=(a=3,b=a--);后,x,a,b的值依次为_____

①3,3,2②3,2,2③3,2,3④2,3,2

9.设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=a>b);后,m,n的值是_____

①0,0②0,1③1,0④1,1

10.设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值为_____

①3②0③9④-12

11.在以下一组运算符中,优先级最高的运算符是_____

①<=②=③%④&&

12.设整型变量i的值为3,则计算表达式i---i后,表达式的值为_____

①0②1③2④表达式出错

13.设整型变量a,b,c均为2,表达式:

a+++b+++c++的结果是_____

①6②9③8④表达式出错

14.若已定义x和y为double类型,则表达式:

x=1,y=x+3/2的值为_____

①1②2③2.0④2.5

15.设a=1,b=2,c=3,d=4,则表达式:

a

a:

c

a:

d的值为_____

①4②3③2④1

16.设a为整型变量,不能正确表达数学关系:

10

①10

③a>10&&a<15④!

(a<=10)&&!

(a>=15)

17.下列表达式中,符合C语言语法的赋值表达式是_____

①a=7+b+c=a+7②a=7+b++=a+7③a=(7+b,b++,a+7)④a=7+b,c=a+7

18.若有以下定义:

chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为_____

①float②int③char④double

19.表达式10!

=9的值是_____

①true②非零值③0④1

20.用十进制数表示表达式“12|012”的运算结果是_____

①1②0③14④12

21.设字符变量a=3,b=6,计算表达式c=(a^b)<<2后,c的二进制是_____

①00011100②00000111③00000001④00010100

22.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值不为0的是_____

①'a'&&'b'②a<=b③a||b+c&&b-c④!

((a

c||1)

23.设ch是char型变量,其值为'A',则下面表达式的值是_____

ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch

①A②a③Z④z

24.设有无符号短整型变量i、j、k,i的值为013,j的值为0x13。

计算表达式“k=~i|j>>3”后,k的值是_____

①06②0177776③066④0177766

(二)填充题

1.在内存中存储"A"要占用_____个字节,存储'A'要占用_____个字节。

2.C语言中的逻辑值“真”是用_____表示的,逻辑值“假”是用_____表示的。

逻辑表达式值为“真”是用_____表示的,逻辑表达式值为“假”是用_____表示的,

3.符号常量的定义方法是__________符号常量__________

4.说明变量时,若省略存储类型符,系统默认为_____存储类别,该存储类别的类型符为_____。

5.无符号基本整型的数据类型符为__________,双精度实型数据类型符为__________,字符型数据类型符为__________。

6.定义变量的完整语句格式是

存储类型符数据类型符变量名1=初值1,……,变量名n=初值n;

7.设有下列运算符:

<<、+、++、&&、<=,其中优先级最高的是_____,优先级最低的是_____。

8.设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是_____。

9.设a=3,b=2,c=1,则a>b的值为_____,a>b>c的值为_____。

10.若已知a=10,b=20,则表达式!

a

11.设x和y均int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____。

12.设整型变量x,y,z均为5:

①执行“x-=y-z”后x=_____

②执行“x%=y+z”后x=_____

③执行“x=(y>z)?

x+2:

x-2,3,2”后x=_____

13.能表述“20

14.请写出数学式的C语言表达式__________.

15.C语言中运算结果可以当成逻辑值使用的表达式有:

__________表达式、__________表达式、__________表达式、__________表达式、__________表达式和__________表达式

第三章基本结构程序设计

一、基本内容

1.程序结构:

是指程序中语句的执行顺序。

2.三种基本结构:

顺序结构、选择结构和循环结构。

3.赋值语句:

一般形式为变量赋值运算符表达式;

功能:

将表达式的值或将变量和表达式进行指定的运算后赋予变量。

其中:

赋值运算符有=,*=,/=,%=,+=,-=,&=,|=,^=,>>=,<<=(共11个)

举例:

x=1;y=1;z=x+y;z%=x+y;等

4.系统函数(库函数):

系统提供了大量的函数,这些函数存储在函数库中,在程序中使用这些函数时,要先说明。

对库函数的说明都保存在“头文件”中。

即只要在程序开始写上:

#include"头文件"或#include<头文件>

如:

#include"stdio.h"

#include"string.h"

5.字符输入函数:

getchar()从键盘上读取一个字符。

举例:

ch=getchar();

6.字符输出函数:

putchar(ch)输出字符ch到显示器上。

举例:

putchar('A');putchar('\n');putchar('\x41');

7.格式输入函数:

scanf("格式字符串",变量地址表)依据格式串的格式要求输入若干个数据,按“变量地址表”中变量的顺序,依次存入对应的变量。

常用的格式说明如下:

%d、%o、%x、%u、%md、%mo、%mx、%mld、%mlo、%mlx、%f、%e、%c、%s等

举例:

scanf("%d",&n)输入一个整数保存在变量n中。

scanf("%d%d%d",&a,&b,&c)输入三个整数(空格或回车分隔)保存在变量a,b,c中。

scanf("%f,%f",&x,&y)输入两个实数(逗号分隔)保存在变量x,y中。

8.格式输出函数:

printf("格式字符串",表达式表)按自右向左的顺序计算各表达式的值,然后按“格式字符串”中规定的格式输出到显示器上。

输出格式字符详见教材。

9.程序调试:

包括输入源程序清单,编辑修改源程序,编译和连接源程序生成可执行的程序,运行程序,从运行结果判断程序的正确性。

10.选择控制语句:

①if(表达式)语句;

②if(表达式)语句1;else语句2;

③if(表达式1)语句1;

elseif(表达式2)语句2;

……

elseif(表达式n)语句n;

else语句n+1;

④switch(表达式)

{case常量表达式1:

语句组1;break;

case常量表达式2:

语句组2;break;

……

case常量表达式n:

语句组n;break;

default:

语句组n+1;

}

11.循环控制语句:

①while(表达式)语句

②do语句while(表达式);

③for(表达式1;表达式2;表达式)语句

④break和continue

12.多重循环:

是由嵌套的循环结构组成的,是指在某个循环语句的循环体中含有另一个循环语句。

外面的循环语句称为“外层循环”,外层循环语句的循环体中的循环语句称为“内层循环”。

二、习题

(一)单项选择题

1.设a=3,b=4,执行printf("%d,%d",(a,b),(b,a);的输出是_____

①3,4②4,3③3,3④4,4

2.使用scanf("x=%f,y=%f",&x,&y);要使x,y均为1.25,正确的输入是_____

①1.25,1.25②1.251.25③x=1.25,y=1.25④x=1.25y=1.25

3.设有inti=010,j=10;则printf("%d,%d\n",++i,j--);的输出是_____

①11,10②9,10③010,9④10,9

4.执行scanf("a=%c,b=%c",&a,&b);后使a为'A',b为'B',从键盘上的正确输入是_____

①'A''B'②'A','B'③A=A,B=B④a=A,b=B

5.设x,y,z,t均为int型变量,则执行以下语句后,t的值为_____

x=y=z=1;t=++x||++y&&++z;

①不定值②2③1④0

6.启动TurboC的命令是_____

①TC②C③TURBO-C④TURBOC

7.假定所有变量均已正确定义,下列程序段运行后x的值是_____

a=b=c=0;x=35;

if(!

a)x--;elseif(b);if(c)x=3;elsex=4;

①34②4③35④3

8.下面的程序片段所表示的数学函数关系是_____

y=-1;

if)x!

=0)if(x>0)y=1;elsey=0

①②③④

9.下列语句中,错误的是_____

①while(x=y)5;②dox++while(x==10);

③while(0);④do2;while(a==b);

10.循环语句for(x=0,y=0;(y!

=123)||(x<4);x++);的循环执行_____

①无限次②不确定次③4次④3次

11.若i,j已定义为int类型,则以下程序段中内循环体的执行次数是_____

for(i=5;i;i--)

for(j=0;j<4;j++){…}

①20②24③25④30

12.假定a和b为int型变量,则执行以下语句后b的值为_____

a=1;b=10;

do{b-=a;a++;}while(b--<0);

①9②-2③-1④8

13.设x和y均为int型变量,则执行下面的循环后y的值为_____

for(y=1,x=1;y<=50;y++)

{if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

}

①2②4③6④8

14.在C语言中,下列说法正确的是_____

①不能使用“do语句while(条件)”的循环

②“do语句while(条件)”的循环必须使用“break”语句退出循环

③“do语句while(条件)”的循环中,当条件为非0时将结束循环

④“do语句while(条件)”的循环中,当条件为0时将结束循环

15.若有以下程序段,w和k都是整型变量,则不能与左边程序段等价的循环语句是_____

……①for(w=k;w!

=0;w--)printf("*");

w=k;②w=k;

LB:

if(w==0)gotoLE;do{w--;printf("*");

w--;}while(w!

=0);

printf("*");③w=k;

gotoLB;while(w--!

=0)printf("*");w++;

LE:

④for(w=k;w;--w)printf("*");

(二)填充题

1.结构化程序设计规定的三种基本结构是__________结构、选择结构和__________结构。

2.若有定义语句inta=25,b=14,c=19;以下语句的执行结果是____________________

if(a++<=25&&b--<=2&&c++)printf("***a=%d,b=%d,c=%d\n",a,b,c);

elseprintf("###a=%d,b=%d,c=%d\n",a,b,c);

3.以下两条if语句可合并为一条if语句为________________________________________

if(a<=b)x=1;________________________________________

elsey=2;

if(a>b)printf("***y=%d\n",y);

elseprintf

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1