没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言程序设计练习题(带答案).doc
随着科技的发展和人工智能时代的来临,计算机中程序设计具有越来越重要的地位。C语言程序设计是程序设计者的入门语言,它使学习者更能容易理解。当然它也能设计出一些高级的应用软件和系统软件。C语言程序设计还能帮助我们学习其它计算机语言如我们熟悉的java语言vb语 言的设计,因此C语言是初学者必备的语言。 冯.诺依曼在1945年提出了现代计算机的若干思想,被后人称为冯.诺依曼思想,这是计算机发展史上的里程碑。自1945 年至今大多采用其结构,因此冯.诺依曼被称为计算机之父。他的体系结构计算机由运算器,控制器,存储器,输入设备,输出设备五大部件构成。C语言拥有一套完整的理论体系经过了漫长的发展历史,在编程语言中具有举足轻重的地位。 [1] C 语言是一种十分强大的语言,可以进行多种方式进行程序的设计,它是一种很有特色的高级语言通过若干个函数组成,它具备构成程序设计的 3 种基本结构顺序,选择和循环结构。C语言编辑简洁明了,运算符丰富且功能强大还有编译预处理功能。此语言的移植性好不同的处理器用不同的编译器编译指令达到移植的效果。
资源详情
资源评论
资源推荐

第 1 章 C 语言概述
一、 选择题:
、一个 语言程序是由 组成。
主程序子程序函数过程
、下列关于 语言用户标识符的叙述中正确的是 。
用户标识符中可以出现下划线和中划线(减号)
用户标识符中不可以出现中划线,但可以出现下划线
用户标识符中可以出现下划线,但不可以放在用户标识符的开头
用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
3、下列选项中,可以作为C语言标识符的是 。
A、3stu B、#stu C、stu3 D、stu.3
4、下列选项中,不可以作为C语言标识符的是 。
A、 num B、turbo_c C、printf D、student3
5、请选出可用作 C 语言用户标识符的一组标识符 。
A、void, dene, WORD B、a3_b3,_123,IF_A
C、FOR,——abc, Case D、2a,Do,Sizeof
、以下叙述正确的是。
在 程序中, 函数必须位于子程序的最前面
程序的每一行中只能写一条语句
在对一个 程序进行编译的过程中,可发现注释中的拼写错误
语言本身没有输入输出语句
【答案】
【解析】每一个 源程序都必须有、且只能有一个主函数 函数,但是不必位于最前面,编译之后,
运行是会自动搜寻到 函数并开始执行, 项错误;书写程序时,为了清晰,便于阅读和理解,一般
是一个说明或一个语句占一行,但这不是必须的, 项错误;编译过程中不对注释进行编译,所以发现不
了编译中的拼写错误, 项错误; 语言本身没有输入输出语句, 函数和 函数是标准输入输出
库函数,其头文件为 , 项为答案。
、下面标识符中,不合法的用户标识符为。
【答案】
【解析】 语言中规定,标识符只能是字母~ ,~!、数字~"、下划线组成的字符串,并且其
第一个字符必须是字母或下划线。 包含‘#,是不合法的;
$、 语言程序的执行,总是起始于。
程序中的第一条可执行语句程序中的第一个函数
函数包含文件中的第一个函数
分析:在一个 语言源程序中,无论 函数书写在程序的前部,还是后部%程序的执行总是从 函
数开始,并且在 函数中结束。本题正确答案为 。
"、下列说法中正确的是。
程序书写时,不区分大小写字母
程序书写时,一行只能写一个语句
程序书写时,一个语句可分成几行书写
程序书写时每行必须有行号

分析: 语言严格区分大小写字母,如&&和&&被认为是两个不同的标识符, 程序的书写非常灵活,
既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为 。
、下面对 语言特点,不正确描述的是。
语言兼有高级语言和低级语言的双重特点,执行效率高
语言既可以用来编写应用程序,又可以用来编写系统软件
语言的可移植性较差
语言是一种结构式模块化程序设计语言
分析: 语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,
所以 语言既可以编写应用程序,又可以开发系统软件,而且 程序可移植性好于汇编语言,程序清晰
具有模块化的特点。本题正确答案为 。
、 语言源程序的最小单位是。
程序行语句函数字符
分析:程序行、语句、函数都是由字符构成的,字符是 语言的最小单位。本题正确答案为 。
、以下四项中属于 语言关键字的是。
'())*+))*
分析: 语言有 , 个关键字或称保留字,它们都有特定的含意,并且由小写字母组成,所以选项 是
错的,选项 不是保留字,选项 是 )* 的错误拼写。本题正确答案为 。
13、下列字符串不符合标识符规定的是。
-./*,)
分析:标识符规定只能由 个英文字母(大小写均可),数字 0" 和下划线组成,且不能以数字开头,
题中的 , 不符合规定。
本题正确答案为 。
二、填空题:
、一个 语言的语句至少应包含一个 分号 。
、 源程序的基本单位是函数 。
,、函数是具有相对独立功能的程序段 。
、 语言中的标识符可以由 , 种字符组成,它们是: 英文字母、下划线、数字 ,并且第
一个字符必须是字母或 下划线 。

第 3 章(一) 数据类型、运算符与表达式
一、 选择题:
、 语言中,最简单的数据类型是 。
整形、实型、逻辑型整型、实型、字符型
整型、字符型、逻辑型整型、实型、逻辑型、字符型
、 是 语言提供的合法的数据类型关键字。
12+) )+)
,、不正确的字符串常量是 。
3#4#55554
、若定义:672869%:67则表达式 8;<,=8;:<> 的值是 。
9,9
9、设有以下定义:
))
67*2)6976##7
则下面语句中错误的是 。
;;7;;7;;7;;7
6、下列选项中,可以作为 C 语言常量的是( )
A)13.8e B)1/2 C)‘M’ D)”abc”
7、下列选项中,不可以作为 C 语言常量的是( )
A).88 B)35.6e3 C)4e-2 D)3/5
7、已知字母’b’的 ASCII 码值为 98,如 ch 为字符型变量,则表达式 ch=’b’+’5’-‘2’的值为( )
A)e B)d C)102 D)100
8、下列程序的运行结果是( )
main( )
{
char c1=’6’,c2=’0’;
printf(“%c,%c,%d\n”,c1,c2,c1-c2);
}
A) 因程序格式不合法,提示出错信息。
B) 6,0,6
C) 6,0,7
D) 6,0,5
9、以下程序的输出结果是( )
main( )
{
int x=010,y=10,z=0x10;
printf(“%d,%d,%d\n”,x,y,z);
}
A) 8,10,16
B) 8,10,10
C) 10,10,10
,

D) 10,10,16
10、已知各变量的类型定义如下:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下两组表达式中不符合 C 语言语法的表达式分别是:
A)k=i++ B)(int)x+0.4 C)y+=x++ D)a=2*a=3⑴
A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3)⑵
、在 语言中,合法的字符常量是
3?$@ 3?8,@ 3@ 4?5
【答案】
【解析】字符常量是用单引号括起来的一个字符,据此定义,选项 和 显然错误。 和 是转义字符。
转义字符是一种特殊的字符常量,以反斜线&?&开头,后跟一个或几个字符,它有两种写作形式,? 和?
8,其中 和 分别为八进制和十六进制的 -AA 代码。 选项’?$#,反斜线’?#之后是三位数字,
是采用的? 形式,不过 $ 作为八进制显然是错误的; 项’?8,#,采用的?8 形式,, 作为两位十六
进制数,对应 -AA 代码 ,对应的是字符’#。
、设有如下的变量定义B
6$%C%%7
*+)2+D697
*2)86%%:697
则以下符合 语言语法的表达式是
;6E66=6, 8<E,7
6=,6 :62
【答案】
【解析】 项是赋值表达式和算术表达式的结合,符合 语言语法; 项中,’<#是模运算符,要求运算符
两侧均为整数,8 为 *2),显然错误; 项是赋值表达式,要求赋值运算符的左侧是变量,,6 部分显
然错误; 项,强制类型转换运算符使用错误,应为 :6(2)
,、以下程序运行后%输出结果是
)字符 的 -AA 码值 字符 的地址 出错
F=6&)&7
;67
&<2?&%7
G
【答案】
【解析】=6&)&,声明 是一个字符串指针,并且将字符数组&)&的首地址赋值给了
,;6,即是在原来的 地址上向前推进两个字节,又因为数组是在连续空间上存储的一组数据,且一
个字符占一个字节,那么也就等价于由数组的第一个字节地址推进到第三个字符的地址,即字符 的地址。
答案为
、当 的值不为 时,在下列选项中能正确将 的值赋给变量 、 的是
H66;H6HI6H;
H6HJJ6;H66;
【答案】
【解析】赋值运算符是自右向左运算的。 项是将 的值赋给了 ,又将 的值赋给了 ,与题意不符;
项和 项都是逻辑运算,且都自左向右运算,它们的区别是:或运算是先计算左边表达式的值,若为真,
则结束运算,若为假,继续计算右边表达式%所以,如果 6 为真(只需要 K),那么 6 语句不会执

行,即不能完成 给 的赋值;与运算则是两边的表达式都要计算,所以,6 和 6 都能得到执行,
为正确答案; 项是将 的值赋给了 和
9、设有如下定义:862,:6E;,则语句: &<?&,8EEJ;;:;的输出结果是
E
【答案】
【解析】表达式 8EEJ;;: 中,逻辑运算符‘J#的优先级最低,应该先计算它两边的表达式。8EE:8 参与逻
辑运算后,8 的值再自减 ,那么 8L参与逻辑表达式的值为 ;;;::: 自增 后再参与逻辑运算,那么;
;: 参与逻辑表达式的值为E;6。8EEJ;;: 即为 J,值为 ,答案为 。
、若定义:672869%:67则表达式 8;<,=8;:<> 的值是。
9,9
【答案】
【解析】这是一个算术表达式,根据运算符的优先级,应该先计算(8;:),得到值 ,之后对其进行
强制数据类型转换(),得到值 ,取模运算和乘、除运算在同一优先级上,自左向右依次计算,则
先进行取模运算,<, 即 <,6,之后 =6,<6,>6,即 <,=8;:<> 的值为 ,那么表
达式的值即是 8 的值,为 9。
、已知字母 的 -AA 码为十进制数 9,且 为字符型,则执行语句 6##;##E#,#7后, 中的值为
。
$不确定的值
【答案】
【解析】字符是以 -AA 码的形式存储的,表达式’#;##E#,#的运算实际就是对应 -AA 码的算数运算,
加减运算是同一优先级的,所以’#;##E#,#69;9E96$,即 的 -AA 的值。此处定义 是字符型,
所以, 的值是 ;如果 定义为整型,则 的值是 $。
$、下面叙述不正确的是【】。
语句末尾必须有分号
语言中无论是整数还是实数都能准确的表示
运算符“<”只能用于整数运算
乘除运算符优先级高于加减运算符
"、复合语句应用【】括起来。
小括号方括号大括号尖括号
、 语言语句一行写不下时,可以【】。
用逗号换行用分号换行用回车换行在任意一空格处换行
、下面程序的输出是【】。 “□”表示一个空格
6,,7
&M<E$M&%7
ME,,MM,,M
M,,□□□□M输出格式非法
、若有说明语句:727%以下输入语句正确的是【】。
&<<&%J%J7
&<<&%J%J7
&<%<&%J%J7
&<<&%J%J7
,、以下程序的输出结果是【】。
F86%:67
&<<??&%8EE%EE:7
G
9
剩余63页未读,继续阅读










安全验证
文档复制为VIP权益,开通VIP直接复制

评论0