一、选择

1.

#include<stdio.h>
void main()
{int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);
}

如果从键盘上输入1234567<回车>,则程序的运行结果是______.

A.i=1234,j=567
B.i=123,j=45
C.i=123,j=4567
D.i=1,j=2

答案:B

错误答案:A

i以整数形式读取三个,j以整数形式读取两个

2.

已知char x[]=“hello”, y[]={‘h’,‘e’,‘a’,‘b’,‘e’};, 则关于两个数组长度的正确描述是( ) .

A.以上答案都不对
B.x小于y
C.x大于y
D.相同

答案:C

错误答案:D

x[]算六个元素,结尾换行符\n
y[]只有五个元素

3.(多选)

已知 ii,j 都是整型变量,下列表达式中,与下标引用X[ii][j]不等效的是( ).

A.((X+ii)+j)
B.(X+ii)[j]
C.
(X[ii]+j)
D.*(X+ii+j)

答案:BD

错误答案:CD

二维数组做指针变量的概念没掌握好

二、填空

1.

以下代码:

int main()
{int a[5] = { 1, 2, 3, 4, 5 };int *ptr = (int *)(&a + 1);printf("%d,%d", *(a + 1), *(ptr - 1));system("pause");return 0;
}

输出答案为____.(答案用单个空格分隔)

答案:2 5

错误答案:2 1

&a+1则表示数组a后边的下一个数组,这里它强制转换成(int*),则(&a+1)变为4字节,即5后边的四个字节,*(ptr-1)即是 5;

2.

以下代码:

int main()
{int a[3][2] = { (0, 1 ), ( 2, 3 ), (4, 5 ) };int *p;p = a[0];printf("%d\n", p[0]);system("pause");return 0;
}

输出答案为____

答案:1

错误答案:0

这里定义的数组里的(,)是运算符,先取右值,即1,3,5
再计算,应该是1

三、简答

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

答案:

两者最大的区别在于内存的分配,结构体和共用体的区别在于:

结构体的各个成员会占用不同的内存互相之间没有影响;
结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙)。

共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员;
共用体占用的内存等于最长的成员占用的内存;
共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。

2.通过键盘输入两整型变量a和b,定义两个指针变量p1和p2指向整型变量a和b,然后a和b之间相互比较,a若小于b,则调用函数swap,实现a和b两数交换,然后再按从小到大顺序输出。(拍照上传)

答案:

#include<stdio.h>
int swap(int *p1,int *p2)
{int temp;temp=*p1;*p1=*p2;*p2=temp;
}
int main()
{int a,b;int *x1,*x2;scanf("%d %d",&a,&b);x1=&a;x2=&b;swap(x1,x2); printf("a=%d,b=%d\n",a,b);   if (a<b)printf("%d,%d",a,b);elseprintf("%d,%d",b,a);
}


3.下述三个定义有什么区别?

char * const p;

char const * p

const char *p

答案:

char * const p; //常量指针,p的值不可以修改
char const * p;//指向常量的指针,指向的常量值不可以改
const char *p; //和char const *p

四、编程

螺旋矩阵

题目:

一个 nn 行 nn 列的螺旋矩阵可由如下方法生成:

从矩阵的左上角(第 11 行第 11 列)出发,初始时向右移动;如果前方是未曾经过的格子,则继续前进,否则右转;重复上述操作直至经过矩阵中所有格子。根据经过顺序,在格子中依次填入 11, 22 , 33, … , nn ,便构成了一个螺旋矩阵。

下图是一个 n = 4 时的螺旋矩阵。

输入格式

输入共一行,包含三个整数 n,i,jn,i,j ,每两个整数之间用一个空格隔开,分别表示矩阵大小、待求的数所在的行号和列号。

输出格式

输出一个整数,表示相应矩阵中第 ii 行第 jj 列的数。

数据范围

对于50%的数据:
1<=n<=100;
对于100%的数据: 1<=n<=30000,1<=i<=n,1<=j<=n

样例输入

4 2 3

样例输出

14

代码:

#include<stdio.h>
int f(int n,int x,int y)
{if(x!=1&&y!=1&&x!=n&&y!=n){return f(n-2,x-1,y-1)+(n-1)*4;}else{if(x==1){return y;}if(y==n){return (n-1)+x;}if(x==n){return 3*n-y-1;}if(y==1){return 3*(n-1)+(n-x+1);}}
}
int main()
{int n,x,y;scanf("%d%d%d",&n,&x,&y);int p=f(n,x,y);printf("%d\n",p);return 0;
}

总结:

这次考核暴露出许多问题,前边学习的基础掌握的还不是很好,特别是指针,感觉没学懂,学的有点乱,之后还要再看看。平时还是要多实践,有些概念觉得懂了,其实不会用,等于没学!

实验室第一次考核(C语言)相关推荐

  1. 大数据实验室第一次考核

    此题中,A选项std.name本身对应的是数组类型,数组类型在使用scanf函数的时候不需要使用&,该符号意为取地址,但是数组名本身就是地址,所以不需要取地址符号,所以A错误 至于C,*p的含 ...

  2. 家电售后php网站源码,php家电维修源码-第一次接触php语言的最经典,最简单的源代码!!!!!!!!!!-电气资讯 - 电工屋...

    如何修改PHP的源码 PHP源码用记事本就可打开编辑了,当然用DW也可以.图片背景要改,可要看清图片的链接(或者直接将图片改成你要的图片也可),改文字格式要通过CSS来修改,链接的话,应该在网站后台就 ...

  3. PTE岗位实习期第一次考核

    **背景:**三个月的自学期间,中途会有考核.这次记下第一次考核内容. 主考官有两位,其中一位为小组主管.主要检查的是与hw-check有关的部分. 打开软件,连接测试机与测试板等常规操作,考核正式开 ...

  4. 奥鹏20年12月作业考核(C语言专科),《C语言(专科)》20年12月作业考核【答案100分】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 <C语言(专科)>20年12月作业考核 共20道题 总分:100分 100分 咨询dddda98 咨询dddda98 咨询dddda98 单选 ...

  5. 中国人民大学金琴老师组,AI·M^3实验室招募视觉与语言方向硕博

    关注公众号,获取更多AI领域发展机会 导师介绍 金琴,清华大学计算机科学与技术系 学士.硕士:卡内基梅隆大学计算机学院 博士 研究方向 视觉与语言,多模态情感计算,人机交互 学生要求 有好的学习能力: ...

  6. 第一次上C语言实验课

    前话:在人工智协社团试着写了四道C语言的题之后,虽然没能成功运行,但是通过问技术部的成员我解决了一些困惑. 在这里输入输出的格式由题目限定,然后我下意识地用int定义变量(后来经提醒得知int是用来定 ...

  7. c语言第一次作业,C语言培训班第一次作业 (1)

    1.以下叙述中正确的是() (A).用户所定义的标识符不允许使用关键字. (B).分号是C语句之间的分隔符,不是语句的一部分. (C).花括号"{}"只能作为函数体的定界符. (D ...

  8. c语言win32api勾取,第一次用C语言+win32api写窗体应用程序,晕死了

    马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 自来也 于 2012-8-17 20:15 编辑 晕死了,为什么小甲鱼不出win32ap ...

  9. 易语言自学视频教程,第一次接触易语言的感受!

    易语言是中国人开发的编程语言平台,使用中文来书写代码,开发程序无需英语基础.它以"易"著称,利用它可以轻松的开发各种桌面应用软件.网络软件.信息管理软件等等. 在n年前,我与大多数 ...

最新文章

  1. 机器人第一次独立手术!最快55分钟缝合肠道,华裔教授带队研发,“结果显著优于外科医生”...
  2. 渗透知识-常用DOS命令windows
  3. SAP-ABAP三种定义嵌套型结构的方法
  4. 打包python程序
  5. 贪心 - Dota2 参议院
  6. HDU - 6749 Mosquito(二分+状态压缩+最大流)
  7. ejb 示例 2018_Java EE EJB拦截器教程和示例
  8. Oracle学习笔记:blank_trimming的含义
  9. implements Serializable
  10. ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)...
  11. vue element隐藏组件滚动条scrollbar使用
  12. NB-IoT将给智能锁行业带来哪些影响?
  13. Efficient Net
  14. Sexagenary Cycle(干支纪年)
  15. 美国市场数据分析初创公司Simon Data获2000万美元融资
  16. DSR 和AODV的对比
  17. tensortAPI的learning
  18. Qmsg酱实现QQ消息自由推送
  19. 【计算机网络】TCP / IP 四层协议
  20. 计算机专业经典书籍推荐

热门文章

  1. Android WebView中打开相机拍照和选择相册
  2. 精通移动App测试实战:技术、工具和案例
  3. ubuntu2004安装wine 7.21(利用源码包下载编译的方式)
  4. DDR SDRAM芯片DQS的作用以及读写DQS/DQ对齐方式不同的原因
  5. Java的wait()、notify()学习三部曲之一:JVM源码分析
  6. Kafka处理服务器发来的消息并与数据库交互——具体流程
  7. VB获得迅雷资讯弹出网页的源代码
  8. 64位W7系统安装内存8G,但是系统只显示3.2G,是怎么回事?
  9. IEEE Trans Latex模板使用
  10. PCB封装欣赏了解之旅(下篇)—— 常用集成电路