中央财经大学中央财经大学 二二 oooo 二年硕士研究生入学考试试题二年硕士研究生入学考试试题 招生专业 产业经济学招生专业 产业经济学 信息经济 宏观经信息经济 宏观经济与产业经济模型济与产业经济模型 考试科目 考试科目 C C 言程序设计言程序设计 注意 本试题所有答案 应按试题顺序号写在答题纸上 不必抄题写在试题纸上不得分 一 选择题 给下列各题选择一个合适的答案 每题 2 分 共 20 分 1 若要求在 if 后的一对圆括号中表示 y 不等于 0 的关系 则能正确 表示这一关系的表达式为 A y0 B y C y D y 1 2 下列描述正确的是 A 任何函数若是先调用后定义 则必须在调用之前说明 B 指向函数的指针作为函数的形参时 对应的实参可以是 个任意类型的指针 C 用 return 表达式 语句 或通过传地址调用 或用外部变量 都可以实现函数之间的信息传递 D main 函数的参数 argc 的值是命令行参数的个数 3 下述程序段的输出结果是 int x 20 y x printf d d x y y A 22 21 B 20 20 C 21 22 D 21 21 4 下列描述不正确的是 A 宏定义是将一个标识符定义为单词串 宏替换是用单词串替换 标识符 B 预处理语句是在编译之前执行的 C 宏定义仅减少程序的源文件长度 而不减少执行文件代码 D 宏定义中标识符必须大写 5 若在 C 程序中有以下说明和语句 则都是 a 数组元素地址 其中 0 k 4 0 j 3 的是 int a 4 3 0 p 4 pp k j for k 0 k 10 k 2 p k a k pp p A for k 0 k 3 k P k pp p A pp 0 1 B a 10 C p 3 0 D p 2 2 7 若有如下说明 叙述正确的命题是 struct a int a int b 4 a A 结构体变量 a 和结构体成员 a 同名 不合法 B 结构变量 a 和结构名同名 不合法 C 程序运行时不为结构名 a 分配内存单元 D 结构体成员名与结构名同名 不合法 8 以下定义 说明或语句中没有错误的是 A union u B union C union u D union int k int k int k int k char ch char ch char ch char ch x 0 A x 0 a b a a k 10 a ch a a ch A b a 9 已知 char s 3 a d s 执行语句 printf n d strlen s 1 后 输出结果为 A 2 B 3 C 1 D 不确定值 10 已知 int k char s a 045 045 b 执行语句 for k 0 s k 之后 变量 k 的值为 A 8 B 9 C 7 D 以上答案都不对 二二 读程序 给出程序执行以后的输出结果 每题读程序 给出程序执行以后的输出结果 每题 5 5 分 共分 共 4040 分 分 include stdio h main char t 23142 int a 0 b 0 c 0 d 0 k for k 0 t k k switch t k default d case 1 a case 2 b case 3 c printf d d d d n a b c d 2 写出以下程序的输出结果 include stdio h include string h main char x 10 ABCD EFGH IJKL MNOP int a for a 1 a 3 a printf s x a a 3 写出以下程序的输出结果 include stdio h main int a 2 2 1 2 3 4 b 2 2 4 5 6 7 int k j for k 0 k 2 k for j 0 j 2 j for k 0 k 2 k for j 0 j 2 j printf d a k j 4 若输入 x 的值为 5 写出以下程序的输出结果 include stdio h c f k int f k return f k s k int j s 0 for j 1 j k j s j return s m t int t int j s 1 for j 1 j t j s j return s main int x s m scanf d printf d d n c s x c m x 5 写出以下程序的输出结果 include stdio h main int a 1 b 2 printf d func a b printf d n func a b func int x int y static int a 0 b 1 a b 2 b a x y return b 6 若下面程序的可执行文件名为 file exe 假设磁盘上有三个 文本文件 文件名和内容分别为 文件名 内 容 f1 qqqqqq f2 ssssssssss f3 eeeee 使用命令行参数 运行该程序的格式如下 file f1 f2 f3 请写出程序的输出结果 define NULL 0 include stdio h main arge argv int argc char argv FILE fp void fc int i 1 printf ar d argc while argc 0 if fp fopen argv i r NULL printf can not open file n exit 1 printf argc d d n argc i fc fp fclose fp void fc fp FILE fp char c while c getc fp putchar c 32 7 下面程序若哦 x 的输入值为 1 请写出以下程序的输出结果 include stdio h main int i x n sizeof float floata 20 b 10 FILE fp printf nintput scanf d fp fopen file dat wb if fp NULL printf file can t open n exit 1 for i 0 i 20 i a i 1 x i 1 fwrite a n 20 fp fseek fp long n x 0 fread b n 10 fp for i 0 i 10 i printf 5 0f b i fclose fp printf n 8 写出程序输出的结果 include stdio h sub char s char p s c while p p p if snext if c p1 ch 3 else 4 new ch c 5 if 6 new next head head new else 7 p2 next new p1 head while p1 NULL printf c d p1 ch p1 count pl pl next 2 有一按升序排列的字符串 a 下面程序是将字符串 s 中的 每个字符按升序的规则插到数组 a 中 include stdio h include string h main char a 20 cehiknqtw char s fbla int i k j for k 0 s k k j 0 while 8 j for 9 10 a j s k puts a 四 编程序 第 1 题 4 分 第 2 题 7 分 第 3 题 9 分 共 20 分 1 编程序输出整数 n 的全部素数因子 例如 n 120 时 素因子 为 2 2 2 3 5 2 对数组 A 中的 N 0 N 100 个整数从小到大进行连续编号 要求不能改变数组 A 中元素的顺序 且相同的整数具有相同的编号 例如 A 5 3 4 7 3 5 6 则输出为 3 1 2 5 1 3 4 3 将 1 2 3 4 5 6 7 8 9 这九个数字分成三组 每个数字 只能用一次 即每组三个数不许有重复数字 也不许同其它组的三 个数字重复 要求每组中的三位数都组成一个平方数 20022002 年年参考答案参考答案 一 1 b 2 c d d 是没有错的 可是 c 哪里有问题 3 a 4 d c 选项说 宏定义仅减少程 序的源文件长度 不是增加文件长度吗 5 b 6 c 7 c 8 d 9 d 10 d 二 1 2 4 5 1 2 FGHKL 3 8 8 8 8 4 15 120 5 5 13 6 ar 4argc 0 4 EEEEE 7 4 6 8 10 12 14 16 18 20 22 8 wtqnkihec 三 1 struct node 2 cch 3 p1 count 4 new NODE malloc sizeof NODE 5 new count 1 6 head chch 7 new next p2 next 8 s k a j 9 i strlen a i j i 10 a i 1 a 四 编程题 1 main int i n printf input n n scanf d do for i 2 i n i if n i 0 if ifnotsu i n n i printf d i while n 1 ifnotsu int k int r for r 2 rk 2 return 1 2 define N 7 main int n m i j k s a N b N printf input a n for i 0 i N i scanf d for i 0 i N i printf d a n 1 m 32768 s 0 for j 1 ja s s j while m a s k s for j 0 jm b k n m a k for i 0 i N i if a m b n n printf the number of a is n for i 0 i N i printf d b 3 define N 9 8 7 include int u 1 main int i j k n m int s 6 a N n 0 for i 1 i 9 i for j i 1 j 9 j for k j 1 k 9 k s 0 i 100 j 10 k s 1 i 100 k 10 j s 2 j 100 k 10 i s 3 j 100 i 10 k s 4 k 100 i 10 j s 5 k 100 j 10 i for m 0 m 6 m if dounum double s m a n s m for i 0 i n i for j i 1 j n j for k j 1 k n k if test a a j a k printf d d d n a a j a k dounum double s double t t sqrt s if t int t 1e 6 return 1 else return 0 test int a int b int c int an 3 bn 3 cn 3 i j k an 0 a 100 an 1 a 100 10 an 2 a 10 bn 0 b 100 bn 1 b 100 10 bn 2 b 10 cn 0 c 100 cn 1 c 100 10 cn 2 c 10 for i 0 i 3 i for j 0 j 3 j for k 0 k 3 k if an bn j else return 0 return 1
展开阅读全文