学习C语言基础的第三天

140 阅读3分钟

函数

函数就是将一大段逻辑凑在一起,传入一些值或者不传入值,每次调用都会去执行一次函数中的所有代码


#include <stdio.h>

// 求和函数
int add(int a, int b) {
	return a + b;
}

int main() {

	int a, b;

	scanf_s("%d %d", &a, &b);

	int sum = add(a,b);

	printf("求和的值为%d", sum);
}

image.png

数组

数组可以能将一组相同类型的值存在一块。

数组会给这一些数字标“序号”,这种序号就是下标,下标从0开始,可以通过这些下标去访问对应存储的值。

数组变量在一开始定义的时候,初始化了,可以不指定长度,如果不指定长度,C语言会动态的帮我们处理数组的长度,如果没有初始化,必须要指定长度。

C99标准之前数组的大小都是用常量或常量表达式来指定。C99标准之后,支持了变长数组,这个时候允许数组的大小是变量,但是这种指定方式的数组不能初始化。


#include <stdio.h>

int main() {
	int num[10] = { 2,3,5,7,8,4,3,5,7,1 };

	int i = 0;
	while (i < 10) {
		printf("下标为%d的值为%d\n",i,num[i]);
		i = i+1;
	}
}

image.png

前三天学习练习题

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

A: char

B: double

C: struct Stu

D: short

解析:答案选C。C语言内置的数据类型有charshortintfloatdoublelonglong long共七个数据类型。
struct是我们自定义的一个数据类型
  1. 局部变量的作用域是?

A: main函数内部

B: 整个程序

C: main函数之前

D: 局部变量所在的局部范围

解析:答案选D。
  1. 下面代码的输出结果是什么

#include <stdio.h>

int num = 10;
int main() {

	int num = 1;

	printf("num = %d", num);

	return 0;
}

A: 程序代码有问题,不能运行

B: 1

C: 10

D: 0

解析:答案选B。在局部作用域中优先取局部作用域中的变量,如果没有该变量才会取去外一层作用域的...一直到全局

image.png

  1. 字符串的结束标志是什么?

A: '0'

B: EOF

C: '\0'

D: 空格

解析:答案选C。
  1. 关于数组描述错误的是?

A: 数组是一组相同类型元素的集合

B: 数组的下标是从1开始

C: 数组如果初始化,可以不指定数组的大小

D: 数组的下标是从0开始

解析:答案选B
  1. 下面代码的执行输出结果是什么?

#include <stdio.h>
#include <string.h>

int main() {

	int length = strlen("C:\test\121");

	printf("%d", length);

	return 0;
}

A: 7

B: 8

C: 9

D: 10

解析:答案选A。\是转义字符,C会将\t当成转义字符,同\ddd则是ASCII编码的转义规则,也会被转义成一个字符,
因此一共C、:、\t、e、s、t、Q7个字符,因此长度为7

image.png

  1. 下面哪个不会被成功转义?

A: '\n'

B: '\060'

C: '\q'

D: '\b'

解析:答案选C。\n是空格,\060对于ASCII编码的0,\b对应光标后退一格。
  1. 下面代码的结果是?
#include <stdio.h>
#include <string.h>

int main() {

	char str[] = { '我','是','一','个','字','符' };

	int length = strlen(str);

	printf("str字符串的长度是%d", length);

	return 0;

}


A: 6

B: 随机数

C: 7

D: 8

解析:答案选B。因为字符串没有结束符号'\0',因此长度取决于读取内存中第一个\0的位置。
  1. C语言中下面哪个数组的创建是错误的?

A: int arr[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 str[10] = "hello bit";

解析:答案选B。C99标准之前数组的大小都是用常量或常量表达式来指定。C99标准之后,支持了变长数组,这个时候允许数组的大小是变量,但是这种指定方式的数组不能初始化。
  1. 定义一个函数,返回更大的那个值(例如传入1和2进去,返回的值是2)

#include <stdio.h>

int more(int num, int num2) {
	if (num >= num2) {
		return num;
	}
	else {
		return num2;
	}
}

int main() {

	int i = 0;

	while (i == 0) {
		int num;

		int num2;

		scanf_s("%d %d", &num, &num2);

		printf("你输入的两个值为%d和%d他们两个%d更大", num, num2, more(num, num2));

		return 0;
	}

	return 0;

}

image.png