C语言刷题笔记 day010 2021.9.1

1.用calloc函数创建具有10个整型元素的动态存储空间的正确调用是

  • calloc(10,sizeof(char))
  • calloc(10)
  • calloc(10,sizeof(int))
  • calloc(20, sizeof(int))

解析:

动态内存分配

系统通过库函数来实现,主要有malloc,calloc,free,realloc

1.malloc函数

函数原型:

void *malloc(unsigned int size);

作用是在内存的动态存储器分配一个长度为size的连续空间

这个函数是指针型函数返回的是该分配域的开头地址

2.calloc函数

函数原型:

void *calloc(unsigned n,unsigned size);

作用是在内存的动态存储区中分配n个长度为size的连续空间

3.free函数

函数原型:

void free(void *p);

作用是释放指针变量p所指向的动态空间

4.realloc函数

作用是重新分配指针p的内存空间

sizeof是运算符用来查看分配的内存空间大小

2.for 循环语句能够被改写为( )语句

解析:while

3.C 语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符

解析:必须为字母或下划线

4.已知程序如下:

int S(int n) { 
  return (n<=0)?0:s(n-1)+n;
} 
void main() {
  cout<< S(1);
} 

程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是 。

解析:main()→S(1)→S(0)

不会


5.以下描述错误的是:

  • 函数的形参在函数未调用时不分配存贮空间
  • 若函数的定义出现在主函数之前且仅被主函数使用,则可以不必再说明
  • 若一个函数(非主函数)没有return语句,返回类型是void
  • 一般来说,函数的形参和实参的类型应该一致

解析:


6.()运算符把其操作数中所有值为0和所有值为1的位分别在结果的相应中设置1和0

  • &
  • |
  • ~

解析:

~为取反运算符是位运算符之一

用于使运算数的每一位取反

7.有以下程序

#include <stdio.h>
#include <string.h>
void fun( char *s )
{
    char a[10];
    strcpy ( a, "STRING" );
    s = a ;
}
main( )
{
    char *p= "PROGRAM" ;
    fun( p );
    printf ( "%s\n ", p) ;
}

程序运行后的输出结果是(此处□代表空格)?

解析:

PROGRAM

个人看法:

关于常量是存储在只读存储器,是先有的值

后有的变量指向该值

变量只能改变存储的指向地址而不能改变常量的值

而且在该题还存在

函数的地址参数传递(形参开辟新的内存空间存储实参)

开始s与p都是指向常量“PROGRAM”的首元素地址

s = a 后

s指向a的首元素的地址

p不变

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

  • *(X[ii]+j)
  • *(X+ii)[j]
  • *(X+ii+j)
  • ((X+ii)+j)

解析:

x+ii = x[ii]

*(X+ii)[j] 因为[]的优先级高

所以不对

*(X+ii+j)是x[ii+j]的值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值