计算机二级c语言(选择题+程序题)哔哩哔哩UP Jungle_Survival

1.2 课前必读

1.二级c语言考试题型

考试也是在题库里任意抽取一套题

c语言基础知识,30分,30道题
程序填空题,共18分,三个空,每个空6分
程序修改提,共18分,若是2处每处9分,若是3处没处6分
程序设计题必须要运行及结果正确
在这里插入图片描述

满分是100分,选择题占40分,程序操作题占60分,后者较前者相对有规律可寻,且程序操作题存在完全可以拿到满分的

2.3 课前必读

3.操作题评分标准极注意事项(程序填空题评分标准)

评分程序要求你不得增减或删除行!,否则电脑无法判定和评分
做完程序填空和程序修改题,必须要保存,否则0分!

程序题-答题操作流程

这是一个“程序填空题的”例子
在这里插入图片描述
“程序填空题”→“考生文件夹”→打开“blank.sln”文件→填写正确值→最好调试→生成解决方案,运行一下→接着点击“保存”→这时就能点击“交卷”了
而后我们查看到,这道题得了18分,这就是答题操作流程及必须要保存

3.4 课前必读

程序设计题评分标准

程序设计题评分标准是,电脑会读取考生文件夹下扩展名为.dat的文件,然后与正确值进行比较,所以考生做的事情就是,编程后,一定要运行程序,以便生成.dat输出文件!所以不去运行,会是0分!

4.5 课前必读

VC++2010编译程序操作题

在这里插入图片描述
打开“考生文件夹”:
blank1对应的是“程序填空题”用的文件夹;
modi1对应的是“程序修改题”用的文件夹;
prog1对应的是“程序设计题”用的文件夹。
在这里插入图片描述
“程序填空题”你看有几个found,就有几个空需要填写;
填空的时候,需要把“_ _ 1_ _”,这样下划线和数字都删掉,再填写,否则电脑无法判定取分数 ;
之后,最好调试→生成解决方案
比较实际的是,用快捷键,因为你在考试时有可能找不到对应的设置显示
这时最好使用快捷键:
F7,是生成解决方案
CTRL+F5,是运行(不调试)
用这两个就够了。

“程序修改题”也有found的字样,也告诉了你,需要有几处地方需要修改;

5.6 第一章 程序设计基本概念1

❣考点:算法
一个算法应当具有以下五个特征:
(1)有穷性:指一个算法,包含的操作步骤是有限的
(2)确定性:指算法中,每一条指令都必须有确切的含义,对于相同的输入必定出来相同的输出结果;
(3)可行性:算法可验证
(4)有0个或多个输入
(5)有1个或多个输出
算法可以用各种方法来进行描述,最常用的是伪代码流程图

6.7 第一章 程序设计基本概念2

❣考点:程序的结构化设计
三种基本结构组成:
(1)顺序结构
(2)选择结构
(3)循环结构
这三种基本结构组成的算法,可以解决任何复杂的问题;
由这三种结构构成的算法称为,结构化算法;
由这三种结构所构成的程序,称为结构化程序;

7.8 第一章 程序设计基本概念3

❣考点:c语言模块化结构
就是把复杂的任务分成若干个子任务,每个子任务又分成很多个小子任务,每个小子任务只完成一项简单的功能。

8.9 第一章 程序设计基本概念4

❣考点:c语言程序以及程序的链接、编译
1.机器语言:计算机只能识别0 、1这样的机器语言
2.“源程序”和“目标程序”
比如c语言编写的程序是“源程序”
“目标程序”是用二进制代码表示的程序
通过编译软件,将“源程序”→“目标程序”。
3.编译和链接
通过c编译软件编译,生成一个.obj的文件的“目标程序”文件
链接:指这个.obj文件和c语言的库函数,链接起来,然后之后形成一个可执行的.exe文件

9.10 第一章 程序设计基本概念5

❣考点:c语言程序中的main()函数

10.11 第二章 c语言程序设计的初步基础1

❣考点:标识符
标识符的命名:
由字母和数字加下划线组成,且第一个字符,必须是字母或下划线,不能是数字
❣考点:数据类型概述
c语言的数据类型包括基本数据类型:整型int、实型float、和double、和字符类型char型
❣考点:整型数据
整型常量:可以用十进制、八进制、十六进制等形式表示
十进制:0-9
八进制:0-7
十六进制:0-9和a-f,共16个字符,其中a-f大小写都可以

十进制基本常量用一串连续的数字表示,例如32767、-32768 、0等
八进制也是用一串连续数字表示,但开头必须是数字“0”,例如010 、011
八进制不能018,不能带8,不合法
在这里插入图片描述
❣考点:实型数据
1.小数形式
小数形式是由数字和小数点组成的一种实数表示形式,例如0.123 、 .123 、123. 、0.0等
注意:小数形式表示的实型常量必须要带有小数点
第二种表现形式是指数形式
2.指数形式
在这里插入图片描述
e或E前,必须加数字
e或E后,必须是整数
e或E前后,必须都是紧跟着的,如不能带有空格或什么的
实型变量:
实型变量分有:单精度folat型和双精度double型两种
单精度float型占4个字节,双精度double占8个字节存储空间

11.12 第二章 c语言程序设计的初步基础2

❣考点:字符、整型和实型数据

12.13 第二章 c语言程序设计的初步基础3

❣考点:算术表达式
用算术运算符和一对圆括号将运算数(或称操作数)连接起来的、符合c语言语法表达式称为算术表达式
算术表达式中,运算对象可以是常量、变量和函数等
❣考点:算术运算符的优先级和结合性

13.14 第二章 c语言程序设计的初步基础4

❣考点:数据类型自动转换
在这里插入图片描述

int a=3.2+4;//最后a是等于7

❣考点:强制类型自动转换
在这里插入图片描述

int3.14=3

14.15 第二章 c语言程序设计的初步基础5

❣考点:赋值运算符
在这里插入图片描述
赋值运算的左侧使能是变量,不能是常量或表达式
❣考点:复合赋值运算符
在这里插入图片描述

n*=m+3//等价n=n*(m+3)
x-=x+x//等价x=x-(x+x)

❣考点:自增自减运算符
在这里插入图片描述

自增自减运算符是单目运算符,运算对象可以是整型变量也可以是实型变量,但不能是常量或表达式

15.16 第二章 c语言程序设计的初步基础6

❣考点:求余运算符%
在这里插入图片描述
运算对象只能是整型
❣考点:sizeof运算符
在这里插入图片描述
若a是int型的,sizeof(a)出来就是4个字节的,若a是double型的,sizeof(a)出来就是8个字节的
❣考点:逗号运算符
在这里插入图片描述

16.17 第3章 顺序结构1

❣考点:printf()函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

17.18 第3章 顺序结构2

❣考点:scanf()函数
在这里插入图片描述
输入项必须是变量的地址
在这里插入图片描述

18.19 第4章 选择结构1

❣考点:c语言的逻辑值
在这里插入图片描述
非0就表示真,用0表示假

❣考点:关系运算符和关系表达式
在这里插入图片描述
❣考点:逻辑运算符和逻辑表达式
在这里插入图片描述
❣考点:逻辑运算符中的短路现象
在这里插入图片描述
短路现象只存在与逻辑与和逻辑或中
❣考点:运算符的优先次序
在这里插入图片描述

19.20 第4章 选择结构2

❣考点:if语句
在这里插入图片描述
不含else的表达式;含else的表达式;else语句不能单独使用,必须配合if使用
❣考点:if…elseif…elseif语句
在这里插入图片描述
❣考点:条件表达式(?)
在这里插入图片描述

20.21 第4章 选择结构3

❣考点:switch…case语句
在这里插入图片描述
在这里插入图片描述

switch(表达式),这的表达式必须是整型或字符型
case常量表达式1,这里常量表达式必须是整型或字符型
❣考点:switch…case语句体中的break语句
在这里插入图片描述

21.22 第5章 循环结构1

❣考点:for语句
1加到100的和
在这里插入图片描述

22.23 第5章 循环结构2

❣考点:while语句
1加到100的和,用while语句实现
在这里插入图片描述

23.24 第5章 循环结构3

❣考点:do…while语句
1加到100的和,用do…while语句实现
在这里插入图片描述
先进入循环体,再判断是不是还要再次进入循环体
❣考点:while循环和do…while循环的区别
在这里插入图片描述

24.25 第5章 循环结构4

❣考点:循环中的continue和break语句
在这里插入图片描述

continue不会终止整个循环体,但是break会,continue仅结束本次一轮的循环

25.26 第5章 循环结构5

❣考点:循环语句与switch case语句的结合使用

26.27 第6章 字符型数据1

❣考点:字符常量
在这里插入图片描述
❣考点:转义字符
在这里插入图片描述

27.28 第6章 字符型数据2

❣考点:字符数据的ASCII码值
在这里插入图片描述
❣考点:比较字符的大小
❣考点:字符数据的加减

28.29 第6章 字符型数据3

❣考点:判断字母的大小写
在这里插入图片描述
判断字母是不是大写用:ch>=‘A’&&ch<=‘Z’
判断字母是不是小写用:ch>=‘a’&&ch<=‘z’
这里用到的原理是字符会和ASCII码值默认是有对应关系的
❣考点:判断一个字符是不是数字
判断一个字符是不是数字用:ch>=‘0’&&ch<=‘9’
满足这个条件,就能判定这个ch字符是数字,
这里用到的原理是字符会和ASCII码值默认是有对应关系的

29.30 第6章 字符型数据4

❣考点:字符型数据的输入和输出
在这里插入图片描述

30.31 第7章 函数1

在这里插入图片描述
❣考点:函数的定义和返回值
在这里插入图片描述
❣考点:函数的一般调用
在这里插入图片描述
函数调用,函数式子必须是实参

31.32 第7章 函数2

❣考点:函数的说明

32.33 第7章 函数3

33.34 第7章 函数4

34.35 第7章 函数5

31.32 第7章 函数2

32.33 第7章 函数3

33.34 第7章 函数4

34.35 第7章 函数5

<64>
1、有关数的运算的基础知识
奇数偶数的判定、一列数的和、一列数的乘积
2、数的交换
3、数的整除
4、素数
5、求数的阶乘
6、计算公式的值
7、数的分解以及数的合并
8、余数的判断
9、判断输入数的正负号
10、如果输入的整数值为正,则判断该值的奇偶性并显示

<65>
1、有关数的运算的基础知识
奇数偶数的判定、一列数的和、一列数的乘积

1、奇数偶数的判定:
解析:设这个数是n,然后若n%2==0,就是偶数;若n%2 !=0,就是奇数。

int main()
{
	int n;
	scanf("%d", &n);
	if (n % 2 == 0)
		printf("它是偶数\n");
	else
		printf("它是奇数\n");
}

在这里插入图片描述
在这里插入图片描述
<66>
2、求数列的和
解析:比如1,2,3,4,5,6 和
以前讲的for(i=1;i<=6;i++),意思是一样的,这个i就是1,2,3,4,5,6,
sum=sum+i
特别注意求和时候,sum初值要是0

int main()
{
	int sum=0;
	int i;
	for (i = 1; i <= 6; i++)
		sum = sum + i;
	printf("%d", sum);
}

在这里插入图片描述

int main()
{
	int sum=0;
	int i;
	for (i = 1; i <= 100; i++)
		sum = sum + i;
	printf("%d", sum);
}

在这里插入图片描述
<67>
3、求数列的乘积
1x2x3x4x5x6
ret=ret x i
特别注意累乘时候,ret初值要设为1

int main()
{
	int ret = 1;
	int i;
	for (i = 1; i <= 5; i++)
		ret = ret * i;
	printf("%d", ret);
}

在这里插入图片描述
<68>
2、数的交换

fun(int *x, int *y)
{
	int tmp;
	tmp = *x; *x = *y; *y = tmp;
}
int main()
{
	int a, b;
	a = 8; b = 3;
	fun(&a, &b);
	printf("%d %d", a, b);
}

在这里插入图片描述
<69>
3、数的整除
计算并输出k以内的最大的10个能被13或17整除的自然数之和。k的值有主函数传入,若k的值为500,则函数的值4622.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int fun(int k)
{
	int m = 0, mc = 0;
	while ((k >=2) && (mc < 10))
	{
		if((k % 13 == 0)||(k % 17 == 0))
		{
			printf("%d ", k);
			m = m + k; mc++;
		}
		k--;
	}return m;
}
int main()
{
	printf("\n%d", fun(500));
}

在这里插入图片描述
<70>
求小于形参n,同时能被3和7整除的所有自然数之和的平方根,若n=1000时,程序输出应是s=153.909064

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
double fun(int n)
{
	double s = 0.0;
	int k;
	for (k = 21; k < n; k++)
	{
		if (k % 3 == 0 && k % 7 == 0)
		{
			s = s + k;
		}
	}
	return sqrt(s);
}
int main()
{
	printf("\n%f", fun(1000));
}

在这里插入图片描述

<71>
素数:除了1和他自己,没法被其他数整除的数,叫素数(质数),如3,5,7,
素数的判定:
方法一:从2到n-1判断有没有能整除n的数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int fun(int n)
{
	int flag = 0;
	int i;
	for (i = 2; i < n; i++)
	{
		if (n % i == 0)
			break;
	}
	if (i == n) flag = 1;
	return flag;
}
int main()
{
	int n;
	scanf("%d", &n);
	if (fun(n))
		printf("是素数");
	else
		printf("不是素数");
}

在这里插入图片描述
在这里插入图片描述
素数的判定方法二:
用一个数分别去除2到sqrt(n),如果能被整除,则表明此数不是素数,反之则是素数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int fun(int n)
{
	int flag = 0,k=sqrt(n);
	int i;
	for (i = 2; i <=k; i++)
	{
		if (n % i == 0)
			break;
	}
	if (i == k+1) flag = 1;
	return flag;
}
int main()
{
	int n;
	scanf("%d", &n);
	if (fun(n))
		printf("是素数");
	else
		printf("不是素数");
}

在这里插入图片描述
在这里插入图片描述
<72>
函数fun的功能是:判定一个整数是否为素数,若为素数,返回1,否则返回0

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int fun(int m)
{
	int k = 2;
	while (k <= m && (m % k))
		k++;
	if (m == k)
		return 1;
	else return 0;
}
int main()
{
	int n;
	scanf("%d", &n);
	if (fun(n)) printf("是素数");
	else printf("不是素数");
}

在这里插入图片描述
在这里插入图片描述
<73>程序修改题-难
函数fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这个两个素数通过形参指针传回主函数
<74>
编写函数fun,其功能是:计算并输出3-n之间所有素数的平方根之和。例如主函数从键盘给n输入100后,则输出sum=148.874270

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
double fun(int n)
{
	int i, j;
	double s = 0.0;
	for (i = 3; i <= n; i++)
	{
		for (j = 2; j < i; j++)
			if (i % j == 0) break;
		if (j == i) s += sqrt(i);
	}
	return s;
}
int main()
{
	int n;
	double sum;
	scanf("%d", &n);
	sum = fun(n);
	printf("%f", sum);
}

在这里插入图片描述
<75>教程不全
编写函数int fun(int lim,int aa[max]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求素数的个数。
<76>5的阶乘

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

long fun(int n)
{
	long ret = 1;
	int i;
	for (i = 1; i <= n; i++)
	{
		ret = ret * i;
	}
	return ret;
}
int main()
{
	int n;
	scanf("%d", &n);
	printf("%ld",fun(n));
}

在这里插入图片描述
ret=reti
ret==ret
1234n
方法是用for循环的i,替代这个变化增大的数列1234n
for(i=1;i<=n;i++)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

long fun(int n)
{
	long ret = 1;
	int i;
	while (n >= 1)
	{
		ret = ret * i;
		n--;
	}
	return ret;
}
int main()
{
	int n;
	scanf("%d", &n);
	printf("%ld",fun(n));
}

在这里插入图片描述
程序修改题

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

double fun(int n)
{
	double result = 1.0;
	while (n > 1 && n < 170)
		result *= n--;
	return result;
}
int main()
{
	int n;
	scanf("%d", &n);
	printf("%lg", fun(n));
}

在这里插入图片描述
<77>
编写函数fun,其功能是:根据公式求p的值,结果有函数值带回,m与n为两个正整数且要求m>n.
p=m!/n!(m-n)!
在这里插入图片描述
若m=12,n=8,运行结果是495.000000

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

float fun(int m,int n)
{
	float p1 = 1.0, p2 = 1.0, p3 = 1.0;
	int i;
	for (i = 1; i <= m; i++)
		p1 *= i;
	for (i = 1; i <= n; i++)
		p2 *= i;
	for (i = 1; i <= (m - n); i++)
		p3 *= i;
	return p1 / (p2 * p3);
}
int main()
{
	printf("%f", fun(12, 8));
}

在这里插入图片描述

这次用while方式:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

float fun(int m,int n)
{
	float p1 = 1.0, p2 = 1.0, p3 = 1.0;
	while (m > 1)
		p1 = p1 * m--;
	while (n > 1)
		p2 = p2 * n--;
	while ((m - n) > 1)
		p3 = p3 * (m - n)--;
	return p1 / (p2 * p3);
}
int main()
{
	printf("%f", fun(12, 8));
}

在这里插入图片描述
<78>
6、计算公式的值
在这里插入图片描述

计算公式:t=1+1/2+1/3+1/4+…1/m
若输入5,则输出应是2.283333

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

double fun(int n)
{
	double t = 1.0;
	int i = 0;
	for (i = 2; i <= n; i++)
		t = t + (1.0 / i);
	return t;
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%lf", fun(n));//float,单精度浮点型,对应%f;double,双精度浮点型,对应%lf。

}

在这里插入图片描述
比如t=1+2+3+…+98+99+100,求t的值是多少?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int sum = 0;
	int i;
	for (i = 1; i <= 100; i++)
		sum = sum + i;
	printf("%d", sum);
}

在这里插入图片描述

<79>
在这里插入图片描述
在这里插入图片描述

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

 double fun(double e)
{
	 int i; double s, x;
	 s = 0; i =0; x = 1.0;
	 while (x > e)
	 {
		 i++;
		 x = (2.0 * i - 1) / ((2.0 * i) * (2.0 * i));
			 s = s + x;
	 }
	 return s;
}
int main()
{
	double e = 1e-3;//1e-3指的就是10的-3次方
	printf("%f", fun(e));
}

在这里插入图片描述
<80>

8、余数的判断

#include<stdio.h>
int main()
{
	int num;
	printf("请输入一个整数:");
	scanf("%d", &num);
	if ((num % 10) == 5)
	
		puts("该整数个位数是5");
	
	else
		puts("该整数个位数不是5");
}

在这里插入图片描述
在这里插入图片描述
9、判断输入数的正负号

#include<stdio.h>
int main()
{
	int no;
	printf("请输入一个整数");
	scanf("%d", &no);
	if (no == 0)
		puts("该整数为0");
	else if (no > 0)
		puts("该整数为正数");
	else
		puts("该整数为负数");
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10、如果输入的整数值为正,则判断该值的奇偶性并显示

#include<stdio.h>
int main()
{
	int no;
	printf("请输入一个整数");
	scanf("%d", &no);
	if (no > 0)
		if (no % 2 == 0)
			puts("该整数为偶数");
		else
			puts("该整数为奇数");
	else
		puts("您输入的不是正数");
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值