C语言刷题笔记 day008 2021.8.28

1.下列程序的功能是输出a数组中小写字母的个数,请为横线处选择合适的程序

#include <stdio.h>
main()
{ char a[]="123abc";
int i,num=0;
for(i=0;_________;i++)
if(a[i]>='a'&&a[i]<='z') num++;
printf("%d\n",num);
}

解析:a[i]!=’\0’

字符串在内存种会以字符数组形式存储,而为了方便获得字符串实际长度系统自动在字符串加‘\0’作为末尾

2.C 语言允许函数类型缺省定义,此时函数值隐含的类型是

解析:int

C中:如果函数未指定返回值类型,则默认为int

如果函数没有指定参数列表,则默认可以接受任意多个参数

3.下面程序的输出的是

#include <stdio.h>
void main()
{
     int x=7,y=3;
     printf("%d\n",y=x/y);
}

解析:2

对于/

如果实数运算。结果为双精度实数

如果整数运算,结果为整数,舍去小数部分

有负数参与舍去的方向不固定

4.i为整型变量,则以下循环语句的循环次数是

for(i=2;i<2;) 
printf(“%d”,i--);

解析:0次

for语句的执行流程描述如下:
(1) 计算表达式1的值;
(2) 计算表达式2的值,若表达式的值为真(或非0),则执行循环体;
(3) 计算表达式3的值;
(4) 再次计算表达式2的值,并重复以上过程;
(5) 直到表达式2的值为假(或为0),则结束该循环。

5.在C语言中,关于静态变量的说法,正确的是

  • 静态变量和常量的作用相同
  • 函数中的静态变量,在函数退出后不被释放
  • 静态变量只可以赋值一次,赋值后则不能改变
  • 静态全局变量的作用域为一个程序的所有源文件

解析:

常量与变量的区别

常量:在程序中不能改变的量

变量:在程序中可以改变的量

个人理解:

变量先有内存空间后有值

常量先有值后有内存空间

6.已知一运行正常的程序中有这样两个语句:int p1,*p2=&a; p1=b; 由此可知,变量a和b的类型分别是

解析:int和int

指针的基类型与指向的元素的类型相同

7.经过下列的语句 int j,a[10],*p;定义后,则 :p=p+2;合法。这句话是否正确?

解析:错误

p没有指向,是一个野指针,会被随机分配一个地址

语法没问题,但不知道指向哪里?没什么意义

8.设有char **s1 = “ABCDE”, *s2=“ABCDE”,*s3=s1;,下列表达式中值等于true的是

  • strcmp(s1,s2)
  • strcmp(s1,s3)==1
  • strcmp(s2,s3)==-1
  • strcmp(s1,s3) ==0

解析:

strcmp是库函数用来比较字符串

如果两个参数相同返回0

第一个参数大返回1

第二个参数大返回-1

9.以下能正确定义数组并正确赋初值的语句是

  • int N=5,b [N] [N];
  • int a[1] [2]={{1},{3}};
  • int c[2] []={{1,2},{3,4}};
  • int d[3] [2]={{1,2},{34}};

解析:

对于二维数组的定义

元素个数不能为变量

元素是以0为起始,在B中一维只有一个

一维元素个数可以省略,二维不可以

10.下列定义数组的语句中正确的是

  • c_cpp #define size 10 char str1[size],str2[size+2];

  • c_cpp char str[];

  • c_cpp int num['10'];

  • c_cpp int n=5; int a[n][n+2];

解析:

数组的定义

不能以变量作为元素个数且只有在确定元素个数时省略标识个数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值