c语言综合模拟测试题答案,【C语言指针模拟测试题_答案】

1 C 语言指针部分模拟测试题 一 选择题 语句 int a 10 point p B y p C y p p D p y p 语句 char str visual C char p str 则 p 的值为 B A visual C B str 的首地址 C n D v 设有说明语句 char s student Teacher Father Month ps s 2 执行语句 printf c s c s 1 ps ps 则输出为 A A T Father F B Teaher F Father C Teacher Father Father D 语法错 无输出 下列说明或赋值语句 不正确的是 C A char p p Visual C B char p1 12 v i s u C char p2 12 p2 Visual C D char p3 Visual 现有 int b 3 4 p p int b 若要指针 p 指向 b 2 3 以下正 确的是 B A p 3 4 3 B p 2 4 3 C p 3 4 3 sizeof int D p 2 4 3 sizeof int 语句 int i p1 p2 以下语句语法不正确的是 B A p1 B p2 C p2 D i 0 x23 如下图结构体说明和变量的定义 p 指向 a q 指向变量 b 下面不能把 结点 b 连接到结点 a 之后的语句是 B a b datanextdatanext A a next q B p next C p next D p next q 下面正确的语句是 A A int a 3 4 p 4 p a B int a 3 4 p 4 p a C int a 3 4 p p a D int a 3 4 p p a 以 追加 方式打开文本文件 a aa dat 下列语句中哪一个是正确的 是 B A fp fopen a aa dat ab B fp fopen a aa dat a C fp fopen a aa dat r D fp fopen a aa dat w p q 2 设有函数定义 int f1 void return 100 150 调用函数 f1 时 B A 函数返回值 100B 函数返回值 150 C 函数返回二个值 100 和 150D 语句 return 100 150 语法错 数组作为函数的形参时 把数组名作为实参 传递给函数的是 A A 该数组的首地址B 该数组的元素个数 C 该数组中的各元素值D 该数组的大小 执行以下语句序列 则 A enum Sun Mon Tue Wed Thu Fri Sat c1 c2 A c1 Mon B printf d c1 A 输出 1 B 输出 2C 输出 0 D B 行语法错 执行以下语句序列 则 C char p1 Speaking A char p2 English B char p3 a piece of cake C char str p1 p2 p3 D printf c str 0 1 A 输出 EnglishB 输出 Speaking C 输出 pD D 行语法错 二 填空题 1 2 2 分 4 分 下面程序的运行结果为 16 2 void main static int a 3 2 12 14 16 1 2 int p a 1 printf d n p 1 printf d n p 3 2 2 2 分 4 分 若有以下程序段 则 b 2 1 的值为 11 p 1 1 的值为 7 static int b 3 2 1 3 5 7 9 11 int p 2 p b 3 1 4 分 4 分 下面程序的运行结果为 26 include 3 void sub int x int i int n if n i sub x i 3 n x n void main int x 0 sub printf d x 4 2 2 分 4 分 以下程序运行结果为 Hello world ello world void main char p q char str Hello World n q p str p printf s n q printf s n p 5 1 4 分 4 分 以下程序运行结果是 121232343454 void main short ar 5 1 2 3 4 5 short par int i for i 0 i 4 i printf d d d ar i par i ar i 6 2 2 分 4 分 以下程序运行结果是 200 100 void swap2 int x int y int t t x x y y t void main int a 100 b 200 4 swap2 printf d t d a b 7 3 2 分 6 分 void fun int n int s int f1 f2 if n 1 n 2 s 1 else fun n 1 fun n 2 s 2 f1 f2 1 printf d t d f1 f2 void main int x fun 4 printf x d n x 程序输出的第一行是 1 1 第二行是 4 1 最后一行是 x 10 8 3 2 分 6 分 void f int q1 int q2 int q3 q3 q1 q2 void main int i j a 3 3 1 1 p1 a 0 p2 a 0 1 p3 a 0 2 for i 2 i 9 i f p1 p2 p3 for i 0 i 3 i for j 0 j 3 j printf d a i i printf n 程序输出的第一行是 111 第二行是 555 最后一行是 343434 9 2 3 分 6 分 int f int x int y return x y void main int i j fun int int fun f for i 1 idata for p p next p NULL p p next if m p data m p data return m 2 3 2分 6分 以下程序求二维数组的平均值 float average float p 4 int n float sum 0 for int i 0 i n i for j 0 j2 即将链表头当链表尾 链表尾当链表头 如下图 An 0 head A1 L A2 6 提示 本算法的思想是 逐个地把 L 的当前结点 q 插入新的链表头部 p 为新表表 头 void reverse NODE L p L next q p next L next NULL while q NULL p next L L p p q q q next p next L L p 4 3 2 分 6 分 以下程序实现链表 L 中删除第 i 个元素 设 1 i 元素个数 void Delete NODE L int i NODE p q if i 1 q L L L next 删除第一个元素 else p L while i 1 p p next q p next p next q next 删除第 i 个元素 free q 5 4 2 5 分 10 分 设链表上结点的数据结构定义如下 struct PNODE int x PNODE next 设已建立了一条链表 h 为链表首指针 函数 DelAdd 的功能为 若链表上 能找到结点的 x 值为 value 则从链表上删除该结点 假设链表上各个结点值是 A1 0An L An 1 7 不同的 否则构造一个新结点 其 x 的值为 value 并将新结点插入链尾 该 函数要返回链表的首指针 PNODE DelAdd PNODE h int value PNODE p1 p2 int flag 0 值为 时 表示已删除值为 value 的结点 p1 h while p1 if p1 h h p1 next free p1 else p2 next p1 next free p1 else p2 p1 p1 p1 next if flag 0 p1 PNODE malloc sizeof PNODE p1 x value p1 next 0 if h 0 h p1 else p2 next p1 return h

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值