实验习题答案_第1页
实验习题答案_第2页
实验习题答案_第3页
实验习题答案_第4页
实验习题答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言概述语言概述 1 若有源程序文件 t1 c 编译后生成的目标文件名是 t1 obj 连接后生成的文 件名是 t1 exe 它们位于磁盘什么位置 默认情况下是 obj 和源文件在同一目录下 exe 在源文件目录下的 debug 目录下 可以在编译 环境中设置到其他地方 2 程序 1 3 c 中输出的 10 值是多少 3628800 数据与数据类型数据与数据类型 1 实验一的程序 1 中 语句 a 1 1 2 1 3 1 4 执行后变量 a 的值是 1 怎样 修改程序才能得到正确的结果 将 a 1 1 2 1 3 1 4 改为 a 1 1 2 0 1 3 0 1 4 0 2 实验二中你用什么样的方式定义符号常量 还可以用什么方法定义符号常量 可以通过 Define 宏定义和 const 常量定义两种方式定义符号常量 3 直接阅读实验四的程序 你认为三条输出结果是什么 程序运行得到的结果是什 么 能分析一下为什么是这样的结果 4 实验五的程序运行时 如果输入数据 10 20 40 运行时会出现什么结果 为什 么 息样避免这样的情况发生 面积出现不可预估值 pow 参数为负数 即两边之和不大于第三边 应在算面积 之前用 if 语句判断 5 下面程序段执行后 问 变量 a b 在内存中所占字节数分别为 4 4 其值分别为 20 40 int a 6 56 float b b a 4 5 a 2 a 6 6 下列定义变量的语句中错误的是 A int int B double int C char For D float US 7 若变量 x y 已正确定义并赋值 下面符合 C 语言语法的表达式是 A A x y x B x 1 y C x x 10 x y D double x 10 8 数字字符 0 的 ASCII 的值为 48 下面程序运行后输出结果是 main char a 1 b 2 printf c b printf d n b a A 3 2 B 50 2 C 2 2 D 2 50 9 设有 int x 11 则表达式 x 1 3 的值是 A 3 B 4 C 11 D 12 顺序语句及输入与输出 1 1 已有如下定义和输入语句 若要求 已有如下定义和输入语句 若要求 a b c1 c2a b c1 c2 的值分别为的值分别为 5 5 6 6 A A 和和 B B 当从第一列 当从第一列 开始输入数据时 正确的数据输入方式是开始输入数据时 正确的数据输入方式是 表示回车表示回车 int a b char c1 c2 scanf d c d c A 5 A 6 B B 5 A6B C 5A6B D 5A6 B 2 2 以下说法正确的是 以下说法正确的是 A 输入项可以为一个实型常量 如 scanf f 3 5 B 只有格式控制 没有输入项 也能正确输入 如 scanf a d b d C 当输入实型数据时 格式控制部分应规定小数点后的位数 如 scanf 4 2f D 当输入数据时 必须指明地址 如 scanf f E 可以采用不同的格式符 实现对一个实型数据以八进制或十六进制形式输入 输 出 F 整型数据不能使用 f 或 lf 格式符 3 若 a 是 int 型变量 则表达式 a 5 6 a 3 a 8 的值是 4 4 若有定义 若有定义 intint b 7 b 7 floatfloat a 2 5 c 4 7 a 2 5 c 4 7 则表达式则表达式 a int b 3 int a c 2 4a int b 3 int a c 2 4 的值为的值为 5 55 5 5 5 输出长整型数据使用格式符 输出长整型数据使用格式符 ld ld 输出无符号的整数用格式符 输出无符号的整数用格式符 u u 以指 以指 数形式输出单精实数用格式符数形式输出单精实数用格式符 e e 6 6 下面程序运行时输入 下面程序运行时输入 1010 11 11 输出 输出 a 8 b 17a 8 b 17 include void main int a b scanf o x printf a d b d n a b 7 下面程序段执行时 怎样输入才能让 a 10 b 20 a 10 b 20 int a b scanf a d b d 8 8 若 若 a a 和和 b b 均为均为 intint 变量 以下语句的功能是变量 以下语句的功能是 交换交换 a a 和和 b b 的值的值 a b b a b a b a b b a b a b 9 在 scanf 函数调用中 可以在格式字符和 之间加一星号 它的作用是 本输入项 在读入后不赋给相应的变量 1010 a a a a a a a a 1 1 都能实现使变量都能实现使变量 a a 的值增的值增 1 1 与之等效的表达式还有 与之等效的表达式还有 a 1a 1 分支结构 1 若执行下面的程序时从键盘上输入 5 则输出结果是 main int x scanf d if x 5 printf d n x else printf d n x A 7B 6C 5D 4 2 已知 a b m n c d 变量的定义如下 则执行完下列表达式后 m n 的值为 int a 3 b 4 m 0 n 0 c 3 d 4 m a b n c d A m 1 n 1B m 1 n 0C m 0 n 0D m 0 n 1 3 表达式 70 4 5 的值是 A 3B 2C 1D 0 4 假设在程序中 x y z 均被定义成整型 且已赋大于 1 的值 则下列能正确表示 1 xyz 的表达式是 A 1 x y z B 1 x y z C 1 x y float zD 1 0 x y z 5 已知字母 a 的 ASCII 十进制代码为 97 则执行以下语句后的输出为 char a a a printf d c n a 2 0 a 3 0 A b cB a 运算不合法 故有语法错 C 98 c D 格式描述和输出项不匹配 输出无定值 6 为了避免嵌套的条件语句 if else 的二义性 C 语言规定 else 与 配对 A 缩排位置相同的 ifB 其之前最近的 if C 其之后最近的 ifD 同一行上的 if 7 若给定条件表达式 M a a 则其中表达式 M A 和 M 0 等价B 和 M 1 等价 C 和 M 0 等价D 和 M 1 等价 8 若有说明语句 char s 092 则该语句 A 使 s 的值包含 1 个字符B 说明不合法 s 的值不确定 C 使 s 的值包含 4 个字符D 使 s 的值包含 3 个字符 9 设 a 1 b 2 c 3 d 4 则表达式 a b a c d a d 的结果为 A 4B 3C 2D 1 10 有如下的变量定义 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 2D y float i 11 有以下变量定义 int k 7 x 12 则下列值为 3 的表达式是 A x k 5 B x k k 5 C x k k 5D x k k 5 12 设 int a 3 则表达式 a1 的运算结果和 a 的值分别是 A 0 和 2 B 0 和 3 C 1 和 2 D 1 和 3 13 假定所有变量均已正确定义 下列程序段运行后 x 的值是 ok1 1 ok2 2 ok3 3 x 15 if ok1 x else if ok2 if ok3 x 3 else x 4 A 14B 4C 15D 3 14 下面程序的输出结果是 void main int x 1 a 0 b 0 switch x case 0 b case 1 a case 2 a b printf a d b d n a b A a 2 b 1B a 1 b 1C a 1 b 0D a 2 b 2 15 两次运行下面的程序 如果从键盘上分别输入 6 和 4 则输出结果分别是 void main int x scanf d if x 5 printf d x else printf d n x A 7 和 5 B 6 和 3 C 7 和 4 D 6 和 4 16 有定义 int a 1 b 3 c 5 d 4 x 则执行完下面一段程序后 x 的值是 if a b if c d x 1 else if a c if b 0 b 0 if a b c t 1 else if a b c t 0 else t 1 printf d n t A 1 B 0 C 1 D 不确定的数 21 以下程序运行后的输出结果是 3 5 3 void main int a 3 b 4 c 5 t 99 if a bc c b t b b a a t printf d d d n a b c 22 以下程序运行后的输出结果是 2 1 void main int x 1 y 0 a 0 b 0 switch x case 1 switch y case 0 a break case 1 b break case 2 a b break printf d d n a b 23 有以下程序 void main int i 1 j 1 k 2 if j k 执行后输出结果是 A 1 1 2 B 2 2 1 C 2 2 2 D 2 2 3 24 以下程序执行后输出结果是 void main int a 3 b 4 c 5 d 2 if a b if b c printf d d 1 else printf d d 1 printf d n d A 2 B 3 C 43 D 44 25 以下程序执行后输的结果是 4 main int n 0 m 1 x 2 if n x 1 if m x 2 if x x 3 printf d n x 循环控制 1 对下面程序段描述正确的是 int k 10 while k 0 k k 1 A while 循环执行 10 次 B 循环是无限循环 C 循环体语句一次也不执行 D 循环体语句执行一次 2 语句 while E 中的表达式 E 等价于 A E 0 B E 1 C E 0 D E 1 3 下面程序段的运行结果是 int n 0 while n 2 printf d n A 2 B 3C 4 D 有语法错 4 下面程序的运行结果是 include main int num 0 while num 2 num printf d n num A 1 B 1 C 1 D 1 2 2 2 3 3 4 5 以下程序段 x 1 do x x x while x A 是死循环 B 循环执行二次 C 循环执行一次 D 有语法错误 6 如下程序段 int x 3 do printf d n x 2 while x A 输出的是 1 B 输出的是 1 和 2 C 输出的是 3 和 0 D 是死循环 7 下面程序的运行结果是 include main int y 10 do y while y printf d n y A 1 B 1 C 8 D 0 8 若 i 为整型变量 则以下循环执行次数是 for i 2 i 0 printf d i A 无限次 B 0 次 C 1 次 D 2 次 9 执行语句 for i 1 i 4 后变量 i 的值是 A 3 B 4 C 5 D 不定 10 以下正确的描述是 A continue 语句的作用是结束整个循环的执行 B 只能在循环体内和 switch 语句体内使用 break 语句 C 在循环体内使用 break 语句或 continue 语句的作用相同 D 从多层循环嵌套中退出时 只能使用 goto 语句 11 运行下面程序时 从键盘输入 20357 则下面程序的运行结果是 66277879 include main int c while c getchar n switch c 2 case 0 case 1 putchar c 4 case 2 putchar c 4 break case 3 putchar c 3 default putchar c 2 break putchar n 12 下面程序段是从键盘输入的字符串中统计数字字符的个数 用换行符结束循环 请 填空 int n 0 c c getchar while c n if c 0 c getchar 13 下面程序的功能是用 辗转相除法 求两个正整数的最大公约数 请填空 include main int r m n scanf d d if m n r m m n n r 保证 m 总是是大于 n r m n while r m n n r r m n printf d n n 14 下面程序的运行结果是 s 254 include main int a s n count a 2 s 0 n 1 count 1 while count 7 n n a s s n count printf s d s 15 下面程序段的运行结果是 a 5 i 1 a 0 s 1 do a a s i s s i while i 10 printf a d a 16 下面程序段的运行结果是 8 i 1 s 3 do s i if s 7 0 continue else i while s 15 printf d i 17 下面程序用于打印出所有的 水仙花数 所谓 水仙花数 是指一个 3 位数 其 各位数字立方和等于该数本身 完成程序 main int i a b c for i 100 i 1000 i a i 100 b i 10 10 c i 10 if i a a a b b b c c c printf d i 数组 1 定义如下变量和数组 int k int a 3 3 1 2 3 4 5 6 7 8 9 则下面语句的输出结果是 for k 0 k 3 k printf d a k 2 k A 357B 369 C 159D 147 2 执行下面的程序段后 变量 k 中的值为 int k 3 s 2 s 0 k k s 1 10 A 不定值B 33C 30D 10 3 设有数组定义 char array China 则数组 array 所占的空间为 A 4 个字节 B 5 个字节 C 6 个字节 D 7 个字节 4 如下程序的输出结果是 void main int n 5 0 0 0 i k 2 for i 0 i k i n i n i 1 printf d n n k A 不确定的值B 2C 1D 0 5 有如下程序 void main int a 3 3 1 2 3 4 5 6 i j s 0 for i 1 i 3 i for j 0 j i j s a i j printf d n s 该程序的输出结果是 A 18B 19C 20D 21 6 以下程序的输出结果是 void main int i x 3 3 1 2 3 4 5 6 7 8 9 for i 0 i 3 i printf d x i 2 i A 1 5 9 B 1 4 7 C 3 5 7 D 3 6 9 7 当执行下面的程序时 如果输入 ABC 则输出结果是 include stdio h include string h void main char ss 10 1 2 3 4 5 gets ss strcat ss 6789 printf s n ss A ABC6789B ABC67C 12345ABC6D ABC456789 8 以下程序段的输出结果是 char s 141 141abc t printf d n strlen s A 9B 12C 13D 14 9 下面是对 s 的初始化 其中不正确的是 A char s 5 abc B char s 5 a b c C char s 5 D char s 5 abcde 10 以下程序的输出结果是 abc void main char s abcdef s 3 0 printf s n s 11 下列程序段的输出结果是 Hello void main char b Hello you b 5 0 printf s n b 12 在 C 语言中 二维数组元素在内存中的存放顺序是 行优先 13 设有定义语句 int a 3 4 1 2 3 则 a 1 1 值为 0 a 2 1 的值为 0 14 若在程序中用到 putchar 函数时 应在程序开头写上包含命令 include 若在程序中用到 strlen 函数时 应在程序开头写上包 含命令 include string h 15 下面程序的功能是输出数组 s 中最大元素的下标 请填空 void main int k p int s 1 9 7 2 10 3 for p 0 k p ps k k p printf d n k 16 以下程序执行时输入 Language Programming的结果是 Language include void main char str 30 scanf s str printf str s n str 17 以下程序可把输入的十进制长整型数以十六进制数的形式输出 请填空 void main char b 17 0123456789ABCDEF int c 64 d i 0 base 16 long n printf Enter a number n scanf 1d do c i n 16 i n n base while n 0 printf Transmite new base n for i i 0 i d c i printf c b d 18 以下数组定义中 错误的是 C A int a 1 2 3 B int a 5 1 2 3 C int a 3 1 2 3 4 D int a 5 b 19 以下数组定义中 正确的是 B A int n 4 a n 1 2 3 4 B int a 2 1 2 3 4 C int a 2 1 2 3 4 D int a 1 2 3 4 20 设有如下定义 int a 8 10 在 C 中一个整数占用 4 字节 设 a 的起始地址为 1000 则 a 1 1 的地址是 A 1000B 1004C 1036 D 1044 21 有数组定义 int a 3 1 2 3 4 5 6 7 8 9 则 a 1 2 的值是 A 2B 5C 6D 8 22 设已定义 char str 6 a b 0 c d 0 执行语句 printf s str 后 输出结果为 A aB abC abcdD ab 0cd 0 23 引用数组元素时 数组元素下标不可以是 A 字符常量B 整型变量 C 字符串D 算术表达式 24 下面程序段的运行结果是 void main char a abcd b 123 strcpy a b printf s n a A 123 B 123dC abcd D abcd123 25 下面程序段的运行结果是 void main char a 123 b abcd if a b printf s n a else printf s n b A 123 B 编译时出错C abcdD 运行时出错 函数函数 1 有如下程序 include long fib int n if n 2 return fib n 1 fib n 2 else return 2 void main printf d n fib 3 该程序的输出结果是 A 2B 4C 6D 8 2 在 C 语言中 函数的隐含存储类别是 A autoB staticC externD 无存储类别 3 以下所列的各函数首部中 正确的是 A void play var Integer var b Integer B void play int a b C void play int a int b D Sub play a as integer b as integer 4 以下程序的输出结果是 A 0B 29C 31D 无定值 fun int x int y int z z x x y y main int a 31 fun 5 2 a printf d a 5 以下程序的输出结果是 f int b int m int n int I s 0 for i m i n i i 2 s s b i return s main int x a 1 2 3 4 5 6 7 8 9 x f a 3 7 printf d n x A 10B 18C 8D 15 6 以下程序的输出结果是 A 1B 2C 3D 4 long fun int n long s if n 1 n 2 s 2 else s n fun n 1 return s main printf ld n fun 3 7 以下程序的输出结果是 int f static int i 0 int s 1 s i i return s main int i a 0 for i 0 i 5 i a f printf d n a A 20B 24C 25D 15 8 以下程序的功能是调用函数 fun 计算 m 1 2 3 4 9 10 并输出结果 请填空 int fun int n int m 0 f 1 i for i 1 i n i m i f f f return m main printf m d n fun 10 9 以下程序输出的最后一个值是 120 int ff int n static int f l f f n return f main int i for i 1 i 5 i printf d n ff i 10 以下函数的功能是 求 x 的 y 次方 请填空 double fun double x int y int i double z for i 1 z x i y i z z x return z 11 以下正确的说法是 A 用户若需要调用标准库函数 调用前必须重新定义 B 用户可以重新定义标准库函数 如若此 该函数将失去原有定义 C 系统不允许用户重新定义标准库函数 D 用户若需要使用标准库函数 调用前不必使用预处理命令将该函数所在的头文件包 含编译 系统会自动调用 12 C 语言规定 简单变量做实参时 它和对应的形参之间的数据传递方式是 A 地址传递 B 值传递 C 有实参传给形参 再由形参传给实参 D 由用户指定传递方式 13 下面程序的输出是 int i 2 printf d d d i 2 i i A 8 4 2 B 8 4 3 C 4 4 5 D 4 5 6 14 以下不正确的说法是 A register 变量可以提高变量使用的执行效率 B register 变量由于使用的是 CPU 的寄存器 其数目是有限制的 C extern 变量定义的存储空间按变量类型分配 D 全局变量使得函数之间的 耦合性 更加紧密 不利于模块化的要求 15 C 语言函数返回类型的默认定义类型是 int 16 函数的实参传递到形参有两种方式 传值 和 传址 17 C 语言变量按其作用域分为 全局变量 和 局部变量 按 其生存期分为 静态 和 动态 18 已知函数定义 其函数声明的两种写法为 void dothat int n double x void dothat int double 19 C 语言变量的存储类别有 auto static register 和 extern 20 在一个 C 程序中 若要定义一个只允许本源程序文件中所有函数使用的全局变量 则该变量需要定义的存储类别为 extern 结构体习题 1 下面程序的运行结果是 void main struct cmplx int x int y cnum 2 1 3 2 7 printf d n cnum 0 y cnum 0 x cnum 1 x a 0 b 1 c 3 d 6 2 以下程序的运行结果是 10 x struct n int x char c void main struct n a 10 x func a printf d c a x a c func struct n b b x 20 b c y 3 根据下面的定义 能打出字母 M 的语句是 struct person char name 9 int age struct person class 10 John 17 Paul 19 Mary 18 Adam 16 A printf c n class 3 name B printf c n class 3 name 1 C printf c n class 2 name 1 D printf c n class 2 name 0 指针类型数据指针类型数据 一 选择题一 选择题 1 变量的指针 其含义是指该变量的 a 值 b 地址 c 名 d 一个标志 2 若有说明 int p m 5 n 以下正确的程序段的是 a p b p scanf d scanf d p c scanf d d p p n p m 3 若有以下定义 则对 a 数组元素的正确引用是 int a 5 p a a s 2 printf d s a cde b 字符 c c 字符 c 的地址 d 无确定的输出结果 6 以下正确的程序段是 a char str 20 b char p scanf s scanf s p c char str 20 d char str 20 p str scanf s scanf s p 2 7 若有说明语句 char a It is mine char p It is mine 则以下不正确的叙述是 a a 1 表示的是字符 t 的地址 b p 指向另外的字符串时 字符串的长度不受限制 c p 变量中存放的地址值可以改变 d a 中只能存放 10 个字符 8 下面程序的运行结果是 in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论