c语言学习回顾---1 基础知识回顾

1、下面哪个不是C语言的内置的数据类型?

  • A、 char

  • B、double

  • C、struct Stu

  • D、short
    2、局部变量的作用域是________

  • A、main函数内部

  • B、整个程序

  • C、main函数之前

  • D、局部变量所在的局部范围
    3、下面代码的输出结果是______

#include <stdio.h>
int num = 10;
int main()
{
	int num = 1;
	printf("%d\n",num);
	return 0;
}
  • A、程序有问题,不能编译

  • B、输出1

  • C、输出10

  • D、输出0
    4、字符串结束的标志是_______

  • A、 ‘0’

  • B、EOF

  • C、‘\0’

  • D、空格
    5、下面代码的结果是______

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = {'c','a','t'};
	printf("%d\n",strlen(arr));
	return 0;
}
  • A、3

  • B、4

  • C、随机值

  • D、5
    6、下面哪个不是转义字符?

  • A、‘\n’

  • B、‘\060’

  • C、‘\q’

  • D、‘\b’
    7、关于数组描述错误的是_____

  • A、数组是一组相同类型元素的结合

  • B、数组的下标是从1开始的

  • C、数组的下标是从0开始的

  • D、数组如果初始化,可以不指定数组大小
    8、C语言中哪个数组的创建是错误的?

  • A、int char[10]={0}

  • B、int n =10; int arr[n] = {0}

  • C、int arr[] ={1,2,3,4,5,6,7,8,9,0}

  • D、char ch[10]="hello"
    9、下面代码的结果是?

#include <stdio.h>
#include <string.h>
int main()
{
	printf("%d\n",strlen("c:\test\121"));
	return 0;
}
  • A、7
  • B、8
  • C、9
  • D、10
    10、编程:求两个数的较大值,写一个函数来求两个整数的较大值,如:输入10,20;输出较大值20.
int Max(int x, int y)
{
	int m = x > y ? x : y;
	return m;
	/*if (x > y)
		return x;
	else
		return y;*/

}
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int max = Max(a , b);
	printf("较大值为:%d\n",max);
	return 0;
}

运行结果如下:

25 35
较大值为:35

11、关于C语言的关键字说法正确的是____

  • A、关键字可以自己创建

  • B、关键字不能自己创建

  • C、关键字可以作变量名

  • D、typedef不是关键字
    12、下面哪个不是关键字?

  • A、 int

  • B、struct

  • C、define

  • D、continue
    13、关于指针的说法正确的是______

  • A、sizeof(char *)的大小一定是1

  • B、指针是个变量,用来存放地址

  • C、指针变量的大小都是4个字节

  • D、指针不是变量
    14、关于static说法不正确的是______

  • A、static可以修饰局部变量

  • B、static可以修饰全局变量

  • C、static修饰的变量不能改变

  • D、static可以修饰函数
    15、下面代码的结果是什么

int sum(int a)
{
	int c = 0;
	static int b = 3;
	c += 1;
	b += 2;
	return(a + b + c); 
}
int main()
{
	int i;
	int a = 2;
	for (i = 0; i < 5; i++)
	{
		printf("%d ",sum(a));
	}
	return 0;
}
  • A、6,8,10,12,14

  • B、8,10,12,14,16

  • C、10,12,14,16,18

  • D、12,14,16,18,20
    16、用在Switch语言中的关键字不包含哪个?

  • A、continue

  • B、break

  • C、default

  • D、case
    17、牛客网—小飞机
    KiKi学会了printf在屏幕输出信息,他想输出一架小飞机。请帮他编写程序输出这架小飞机。

#include <stdio.h>
int main()
{
    int i;
    for (i = 0; i < 2; i++)
    {
        printf("     **     \n");
    }
    for (i = 0; i < 2; i++)
    {
        printf("************\n");
    }
    for (i = 0; i < 2; i++)
    {
        printf("    *  *    \n");
    }
    return 0;
}

运行结果:

     **
     **
************
************
    *  *
    *  *

18、牛客网—被5整除
判断一个整数是否能5整除是一个挺简单的问题,懒惰的KiKi还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。

#include <stdio.h>
int main()
{
	printf("请输入一个数字(在0到100000之间):");
	int M = 0;
	scanf("%d", &M);
		if (M % 5 == 0)
			printf("YES");
		else
			printf("NO");
	return 0;
}
请输入一个数字(在0到100000之间):20
YES

答案

1、C
2、D
如果在一个程序的开头声明一个变量:

void test()
{
	int b = 0;
}
int main()
{
	int  a = 10;
	return 0;
}

其中a与b都是局部变量,可知选项ABC都是错误的
3、B
考察局部变量与全局变量同名字的时候,局部变量优先
4、C
5、C
给其开辟一块空间存放’c’ ‘a’ ‘t’,但是不知道什么时候能遇到字符的结束标志,所以运行结果为随机值。
6、C
7、B
8、B
B选项中,n是变量,在创建数组的时候,指定n的大小,用的是常量。在c99标准中引用一个概念:变长数组,它支持数组创建的时候用变量指定大小,但是这个数组不能初始化。vs2019不支持c99中的变长数组。
9、A
\t以及\121都会被转义
11、B
12、C
define以及include都是预处理指令的符号
13、B
A选项char * 也是指针类型,指针类型的大小不是4个字节就是8个字节
D选项:通常意义上讲的都是指针变量
14、C
15、B

int sum(int a)
{
	int c = 0;
	static int b = 3;
	c += 1;
	b += 2;
	return(a + b + c); 
}
int main()
{
	int i;
	int a = 2;
	for (i = 0; i < 5; i++)
	{
		printf("%d ",sum(a));
	}
	return 0;
}

该代码会循环执行5次,每执行一次都会调用sum函数,a最开始是2.将a送到int sum(int a)里面,a=2,c+=1,则c=1;b+=2,则b=5;所以第一次返回值是8。
i++执行之后,i变为1,再次进入循环;这一次,a依然是2,c再次变为0,b还是上次留下来的值,因为b被static修饰了。但是下一次进sum函数的时候,static int b = 3 就没有意义了。此时b已经是5了,5+2=7,所以2+1+7=10,直到i=5时退出循环,每一次循环时只有b在发生改变。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值