2024年最新C语言笔试训练【第三天】_已知函数原型int fun (char b[10]),2024年最新一文搞懂

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1、已知函数的原型是: int fun(char b[10], int *a) ,设定义: char c[10];int d; ,正确的调用语句是( )

A: fun(c , &d);   B: fun(c , d);   C: fun(&c , &d);   D: fun(&c , d);

数组传参实际上传递的是数组首元素的地址,在函数内部,可以通过数组首元素的地址找到整个数组元素,而数组名就是数组首元素的地址,而函数的第二个参数类型是一级整形指针,所以要将变量d的地址传过去。

注意:不能采用 &数组名 的形式进行数组传参,那样会将整个数组的地址传过去,解引用后也找到的是整个数组,而不是数组元素。

所以这道题选 A

核心知识点:指针初级  函数传参

第二题

2、请问下列表达式哪些会被编译器禁止【多选】( )

int a = 248, b = 4;
int const *c = 21;
const int *d = &a;
int *const e = &b;
int const * const f = &a;

A: *c = 32;    B: *d = 43    C: e=&a    D: f=0x321f

这里又考察到了const 修饰指针变量的知识。const 修饰指针变量,若const 在 *左边,则说明指针指向的内容不能变,若const 在 * 右边,则说明指针的指向不能变。

那么就很好判断了,const 在 *c 的前面,所以 *c 不能改变,A被禁止编译;const在*d的前面,所以*d不能改,指针变量e中,const在*后面,所以e的指向不能改;指针变量f const既在*左边,又在*右边,所以指针的指向和指针指向的内容都不能改变。

这道题选 A B C D

第三题

3、以下程序的输出结果为( )

#include <stdio.h>
int i;
void prt()
{
	for (i = 5; i < 8; i++)
		printf("%c", '*');
	printf("\t");
}
int main()
{
	for (i = 5; i <= 8; i++)
		prt();
	return 0;
}

A: ***    B: *** *** *** ***    C: *** ***    D: * * *

这道题目需要注意的一点就是:变量i 为全局变量,在函数prt 中改变了变量 i 的值,所以 main 函数里面的循环只进行一次。所以这道题选 D

第四题

4、下面代码段的输出是( )

int main()
{
  int a=3;
  printf("%d\n",(a+=a-=a*a));
  return 0;
}

A: -6      B: 12      C: 0      D: -12

此题考查的是赋值运算符的右结合性,即先算右边的。a+=a-=a*a 可以转化为a=a+(a-=a*a),a-=a*a的值为 -6,并且 a 的值也变为了 -6,所以 a+=-6 就等于 -12,所以选 D

第五题

5、下列不能实现死循环的是( )

A: while(1){ }    B: for(;1;){ }    C: do{}while(1);    D: for(;0;){ }

while 循环括号里的表达式为真,则循环进行;for 循环的第二个表达式,也是 for 循环是否进行的判断条件;do…while循环中括号里的表达式也是循环是否进行的条件。

1 为真,0为假,所以 D 不能实现死循环,所以选 D

记负均正

首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。

0即不是正整数,也不是负数,不计入计算。如果没有正数,则平均值为0。

输入描述:首先输入一个正整数n,然后输入n个整数;输出描述:输出负数的个数,和所有正整数的平均值。

示例

输入:11 1 2 3 4 5 6 7 8 9 0 -1     输出:1 5.0

输入:3 0 0 0    输出:0 0.0

#include <stdio.h>
#include<stdlib.h>
int main() {


![img](https://img-blog.csdnimg.cn/img_convert/8c577258170d1e748a79a54b73deb688.png)
![img](https://img-blog.csdnimg.cn/img_convert/e35d331b0dd2a99f243de28837c9f999.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值