第一次考核总结

经过了近两个月的学习,我迎来了第一次的考核,从结果来看还是多多少少存在一些问题,在此我将这些问题整理如下,以便加深对这些知识的理解。

1.在函数调用时,如果实参是简单变量,它与对应的形参之间的数据传递方式是:单向值传递

2.关于转义字符,嘶~,没啥好说的,主要就是记,详见下表:

3. 

 

 这个题错了说明我对二维数组的理解还不够,

c语言默认在定义二维数组是可以不规定行数,但必须规定列数。

例如: 本题中的B、C两个选项就是不合法的。

4.

本题考察二维数组中元素的表示

在一维数组中我们知道数组名可以表示首元素的地址,类比我们可知,二维数组的数组名也表示首元素的地址,二维数组名加列下标表示该列首元素的地址,因此二维数组元素的表示有以下几种方式:

下标表示法 a[i][j];  行数组下标法 *(a[i]+j);  列数组下标法*(a+i)[j];  指针法*(*(a+i)+j);

 在二维数组中,我们可以把a[i]、*(a+i)理解为行地址的一种表示形式,而不一个数组元素。

5.

 答案为 1。

本题考察的点为逗号表达式,逗号表达式以最后一个表达式的结果为值。如此看来,此题就是值初始化了三个数,其余数以零补齐。说到这里,答案也就很明显了。

6.简述char *const p、char const*p、const char*p有什么区别:

char*const p表示指针p是常量指针,即p中存放的地址无法改变

char const*p表示p指向的元素是一个常量,常量无法改变。

而const char*p与char*const p意思相同。

7.简述结构体和共用体的区别

两者最大的区别在于内存的分配。结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,彼此之间互不影响;而共用体所有成员占用同一段内存,修改一个成员会影响其余成员,结构体占用的内存大于等于所有成员占用内存的总和;而共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,若对创新的成员赋值,则会把原来成员的值覆盖掉。

8.

 

 

 

#include<stdio.h>
int main()
{
	int i, j, n;
	int a[300][300] = { 0 };
	scanf("%d", &n);
	int num = 1;
	if (n % 2 != 0)
		a[n / 2][n / 2] = n * n;
	for (i = 0; i < n / 2; i++)
	{
		for (j = i; j <= n - 1 - i; j++)
			a[i][j] = num++;
		for (j = i + 1; j < n - 1 - i; j++)
			a[j][n - 1 - i] = num++;
		for (j = n - 1 - i; j > i; j--)
			a[n - 1 - i][j] = num++;
		for (j = n - 1 - i; j > i; j--)
			a[j][i] = num++;
	}
	scanf("%d %d", &i, &j);
	printf("%d\n", a[i-1][j-1]);

}

到此关于本次考核的错题分析基本结束,在接下来的C语言学习中我会更加努力!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值