C语言程序设习题及答案.docx

上传人:h**** 文档编号:133965 上传时间:2018-07-09 格式:DOCX 页数:146 大小:104.13KB
下载 相关 举报
C语言程序设习题及答案.docx_第1页
第1页 / 共146页
C语言程序设习题及答案.docx_第2页
第2页 / 共146页
C语言程序设习题及答案.docx_第3页
第3页 / 共146页
C语言程序设习题及答案.docx_第4页
第4页 / 共146页
C语言程序设习题及答案.docx_第5页
第5页 / 共146页
点击查看更多>>
资源描述

1、C语言程序设计第一轮习题及答案 第 1 章 C 语言概述 一、选择题 1、一个 C语言程序是由 C组成。 A.主程序 B.子程序 C.函数 D.过程 2、下列关于 c语言用户标识符的叙述中正确的是 B。 A. 用户标识符中可以出现下划线和中划线(减号) B. 用户标识符中不可以出现中划线,但可以出现下划线 C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 2、一个 C语言程序总是从 C 开始执行。 A.主程序 B.子程序 C.主函数 D.函数 3、下列选项中,可以作为语言标识符的是( ) A、 3stu B、

2、 #stu C、 stu3 D、 stu.3 4、下列选项中,不可以作为语言标识符的是( ) A、 num B、 turbo_c C、 printf D、student3 5、请选出可用作 C语言用户标识符的一组标识符 ( ) A、 void, define, WORD B、 a3_b3,_123,IF_A C、 FOR, abc, Case D、 2a,Do,Sizeof 6、以下叙述正确的是。 A.在 C程序中, main函数 必须位于子程序的最前面 B.C程序的每一行中只能写一条语句 C.在对一个 C程序进行编译的过程中,可发现注释中的拼写错误 D.C语言本身没有输入输出语句 答案 D

3、解析每一个 C源程序都必须有、且只能有一个主函数 (main函数 ),但是不必位于最前面,编译之后,运行是会自动搜寻到 main函数并开始执行, A项错误;书写程序时,为了清晰,便于阅读和理解,一般是一个说明或一个语句占一行,但这不是必须的, B项错误;编译过程中不对注释进行编译,所以发现不了编译中的拼写错误, C项错误; C语言本身没有输入输出语句, scanf函数和 printf函数是标准输入输出库函数,其头文件为 stdio.h, D项为答案。 7、下面标识符中,不合法的用户标识符为。 A. Pad B. a_10 C. _124 D. a#b 答案 D 解析 C语言中规定,标识符只能是

4、字母 (A Z, a z)、数字 (0 9)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。 D包含 #,是不合法的; 8、 C语言程序的执行,总是起始于 。 A) 程序中的第一条可执行语句 B) 程序中的第一个函数 C) main函数 D) 包含文件中的第一个函数 分析:在一个 C语言源程序中,无论 main函数书写在程序的前部,还是后部 ,程序的执行总是从 main函数开始,并且在 main函数中结束。本题正确答案为 C。 9、下列说法中正确的是 。 A) C程序书写时,不区分大小写字母 B) C程序书写时,一行只能写一个语句 C) C程序书写时,一个语句可分成几行书写 D

5、) C程序书写时每行必须有行号 分析: C语言严格区分大小写字母,如 “A1“和 “a1“被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。本题正确答案为 C。 10、下面对 C语言特点,不正确描述的是 。 A) C语言兼有高级语言和低级语言的双重特点,执行效率高 B) C语言既可以用来编写应用程序,又可以用来编写系统软件 C) C语言的可移植性较差 D) C语言是一种结构式模块化程序设计语言 分析: C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以 C语言既可 以编写应用程序,又可以开发系统软件,而且 C

6、程序可移植性好于汇编语言,程序清晰具有模块化的特点。本题正确答案为 C。 11、 C语言源程序的最小单位是 。 A) 程序行 B) 语句 C) 函数 D) 字符 分析:程序行、语句、函数都是由字符构成的,字符是 C语言的最小单位。本题正确答案为 D。 12、以下四项中属于 C语言关键字的是 。 A) CHAR B) define C) unsigned D) return 分析: C语言有 32 个关键字 (或称保留字 ),它们都有特定的含意,并且由小写字母组成,所以选项 A是错的,选项 B不是保留字,选项 D是 return的错误拼写。本题正确答案为 C。 13下列字符串不符合标识符规定的是

7、 。 A) SUM B) sum C) 3cd D) end 分析:标识符规定只能由 26 个英文字母(大小写均可),数字 09 和下划线组成,且不能以数字开头,题中的 3cd不符合规定。 本题正确答案为 C。 二、填空题 1、一个 C语言的语句至少应包含一个 分号 。 2、 C源程序的基本单位是 函数 。 3、函数是具有相对独立功能的 程序段 。 4、 C语言中的标识符可以由 3 种字符组成,它们是: 英文字母、下划线、数字 ,并且第一个字符必须是字母或 下划线 。 第 3 章 数据类型、运算符与表达式 一、选择题 1、 C语言中,最简单的数据类型是 B。 A.整形、实型、逻辑型 B.整型、

8、实型、字符型 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 2、 B是 C语言提供的合法的数据类型关键字。 A. Float B. signed C. integer D. Char 3、不正确的字符串常量是 A。 A. abc B. 12 12 C. 0 D. 4、若定义: int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4 的值是 B 。 A.7 B.2.50000 C.3.500000 D.0.00000 5、设有以下定义: #define d 2 int a=0;double b=1.25;char c= A ; 则下面语

9、句中错误的是 D。 A.a+; B.b+; C.c+; D.d+; 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、已知字母 A的 ASCII码为十进制数 65,且 c2 为字符型,则执行语句 c2= A+ 6 - 3 ;后, c2 中的值为 A 。 A.D B.68 C.C D.不确定的值 8、 下列程序的运行结果是( ) main( ) char c1= 6 ,c2= 0 ; printf( %c,%c,%dn ,c1,c2,c1

10、-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,%dn ,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

11、+=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) 11在 C语言中,合法的字符常量是 A) 084 B) x43 C) ab D) 0 答案 B 解析字符常量是用单引号括起来的一个字符,据此定义,选项 C和 D显然错误。 A和 B是转义字符。转义字符是一种特殊的字符常量,以反斜线 “开头,后跟一个或几个字符,它有两种写作形式, ddd和 xhh,其中 ddd和 hh分别为八进制和十六进制的 ASCII代码。 A选项 084,反斜线 之后是三位数字,是采用的 ddd形 式,不过 084 作为八进制显然是错误

12、的; B项 x43,采用的 xhh形式, 43 作为两位十六进制数,对应 ASCII代码 67,对应的是字符 c。 12设有如下的变量定义 : int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2; 则以下符合 C语言语法的表达式是 A) a+=a-=(b=4)*(a=3) B) x%(-3); C) a=a*3=2 D) y=float(i) 答案 A 解析 A项是赋值表达式和算术表达式的结合,符合 C语言语法; B项中, %是模运算符,要求运算符两侧均为整数, x为 double,显然错误; C项是赋值表达式,要求赋值运算符的

13、左侧是变量, 3=2 部分显然错误; D项,强制类型转换运算符使用错误,应为 y=( float) i 13以下程序运行后 ,输出结果是 A) cde B) 字符 c的 ASCII码值 C) 字符 c的地址 D) 出错 main() char *s=“abcde“; s+=2; printf(“%ldn“,s); 答案 C 解析 char *s =“abcde“,声明 s是一个字符串指针,并且将字符数组 “abcde“的首地址赋值给了 s, s+=2,即是在原来的 s地址上向前推进两个字节,又因为数组是在连续空间上存储的一组数据,且一个字符占一个字节,那么也就等价于由数组的第一个字节地址推进到

14、第三个字符的地址,即字符 c的地址。答案为 c 14当 c的值不为 0 时,在下列选项中能正确将 c的值赋给变量 a、 b的是 A) c=b=a; B) (a=c) (b=c) ; C) (a=c) float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是。 A.7 B.2.50000 C.3.500000 D.0.00000 答案 B 解析这是一个算术表达式,根据运算符的优先级,应该先计算( x+y),得到值 7.2,之后对其进行强制数据类型转换( int),得到值 7,取模运算和乘、除运算在同一优先级上,自左向右依次计算,则先进行取模运算, a%3即 7

15、%3=1,之后 1*7=7, 7%2=1, 1/4=0,即 a%3*(int)(x+y)%2/4 的值为 0,那么表达式的值即是 x的值,为 2.50000。 17已知字母 A的 ASCII码为十进制数 65,且 c2 为字符型,则执行语句 c2= A+ 6 - 3 ;后, c2 中的值为。 A.D B.68 C.C D.不确定的值 答案 A 解析字符是以 ASCII码的形式存储的,表达式 A + 6 - 3的运算实际就是对应 ASCII码的算数运算,加减运算是同一优先级的,所以 A + 6- 3 =65+54-51=68,即 D的 ASCII的值。此处定义 c2 是字符型,所以, c2 的值是 D;如果 c2 定义为整型,则 c2 的值是 68。 18下面叙述不正确的是 。 A) C语句末尾必须有分号 B) C语言中无论是整数还是实数都能准确的表示 C) 运算符 %只能用于整数运算 D) 乘除运算符优先级高于加减运算符 19复合语句应用 括起来。 A) 小括号 B) 方括号 C) 大括号 D) 尖括号 20 C语言语句一行写不下时,可以 。 A) 用逗号换行 B) 用分号换行 C) 用回车换行 D) 在任意一空格处换行 21下面程序的输出是 。 (表示一个空格 ) int a=3366; printf(“|%-08d|“,a);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。