C++研发笔记12——C语言程序设计初阶学习笔记10

        本篇笔记是一篇练习文章,是对第二部分《初识C语言》的一个回顾,从而结束第二部分的学习。

题目一

关于C语言关键字说法正确的是:( )

A.关键字可以自己创建

B.关键字不能自己创建

C.关键字可以做变量名

D.typedef不是关键字

【参考答案】B


题目二

用在switch语言中的关键字不包含哪个?( )

A.continue

B.break

C.default

D.case

【参考答案】C


题目三

下面哪个不是关键字:( )

A.int

B.struct

C.define

D.continue

【参考答案】C


题目四

关于数组描述错误的是:

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

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

C.数组的下标是从0开始

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

【参考答案】B


题目五

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 ch[10] = "hello bit"

【参考答案】B


题目六

写一个函数求两个整数的较大值

如输入:10 20

输出较大值:20

#include<stdio.h>

void Max(int x, int y)
{
	if (x >= y)
		printf("max = %d", x);
	else
		printf("max = %d", y);
}

int main()
{
	int a = 0;
	int b = 0;
	printf("请输入两个整数:");
	scanf("%d %d", &a, &b);
	Max(a, b);
	return 0;
}

另一种比较简单的写法:

#include<stdio.h>

int Max(int x, int y)
{
	return (x > y ? x : y);
}

int main()
{
	int a = 0;
	int b = 0;
	int m = 0;
	printf("请输入两个整数:");
	scanf("%d %d", &a, &b);
	m = Max(a, b);
	printf("max = %d", m);
	return 0;
}

题目七

KiKi想知道从键盘输入的两个数的大小关系,请编程实现。

输入描述:题目有多组输入数据,每一行输入两个整数(范围-2^31~2^31-1),用空格分隔。

输出描述:针对每行输入,输出两个整数及其大小关系,数字和关系运算符之间没有空格。

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 0;
	while (1)
	{
		printf("请输入两个整数: ");
		if (scanf("%d %d", &a,&b) != 2)
			break;
		if (a > b)
			printf("两个数字的关系是:%d > %d\n",a,b); 
		else if (a == b)
			printf("两个数字的关系是:%d = %d\n", a, b);
		else
			printf("两个数字的关系是:%d < %d\n", a, b);
	}
	return 0;
}

题目八

KiKi想知道一个整数的奇偶性,请帮他判断。从键盘任意输入一个整数(范围-231~231-1),编程判断它的奇偶性。

输入描述:多组输入,每行输入包括一个整数。

输出描述:针对每行输入,输出该数是奇数还是偶数。

#include<stdio.h>
int main()
{
	int a = 0;
	while (1)
	{
		printf("请输入一个整数:");
		if (scanf("%d",&a) != 1)
			break;
		else
		{
			if (0 == a % 2)
				printf("这个数是偶数\n");
			else
				printf("这个数是奇数\n");
		}
	}
	return 0;
}

题目九

KiKi想知道他的考试分数是否通过,请帮他判断。从键盘任意输入一个整数表示的分数,编程判断该分数是否在及格范围内,如果及格,即:分数大于等于60分,是输出“Pass”,否则,输出“Fail”。

输入描述:多组输入,每行输入包括一个整数表示的分数(0~100)。

输出描述:针对每行输入,输出“Pass”或“Fail”。

#include<stdio.h>

int main()
{
	int score = 0;
	while (1)
	{
		printf("请输入你的成绩:");
		if (scanf("%d", &score) != 1)
			break;
		else
		{
			if (score >= 60)
				printf("Pass\n");
			else
				printf("Fail\n");
		}
	}
	return 0;
}

题目十

KiKi想知道他的考试成绩是否完美,请帮他判断。从键盘输入一个整数表示的成绩,编程判断成绩是否在90~100之间,如果是则输出“Perfect”。

输入描述:多组输入,每行输入包括一个整数表示的成绩(90~100)。

输出描述:针对每行输入,输出“Perfect”。

#include<stdio.h>
int main()
{
	int score = 0;
	while (1)
	{
		printf("请输入您的成绩:");
		if (scanf("%d", &score) != 1)
			break;
		else
		{
			if (score >= 90 && score <= 100)
				printf("Perfect\n");
			else
				continue;
		}
	}
	return 0;
}

题目十一

关于static说法不正确的是:( )

A.static可以修饰局部变量

B.static可以修饰全局变量

C.static修饰的变量不能改变

D.static可以修饰函数

【参考答案】C


题目十二

下面代码的结果是什么?( )

#include <stdio.h>
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)); 
    } 
} 

A. 6,8,10,12,14

B.8,10,12,14,16

C.10,12,14,16,18

D.12,14,16,18,20

【参考答案】B


题目十三

关于指针说法正确的是:( )

A.sizeof(char*)大小一定是1

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

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

D.指针不是变量

【参考答案】B


题目十四

输入一个班级5个学生各5科成绩,输出5个学生各5科成绩及总分。

输入描述:五行,每行输入一个学生各5科成绩(浮点数表示,范围0.0~100.0),用空格分隔。

输出描述:五行,按照输入顺序每行输出一个学生的5科成绩及总分(小数点保留1位),用空格分隔。

#include <stdio.h>

int main()
{
	double score[5] = {0.0};
	int i = 0;
	while (i < 5)
	{
		int j = 0;
		double sum = 0.0;
		while (j < 5)
		{
			scanf("%lf", &score[j]);
			sum += score[j];
			j++;
		}
		j = 0;
		while (j < 5)
		{
			printf("%.1lf\n", score[j]);
			j++;
		}
		printf("%.1lf", sum);
		i++;
	}
	return 0;
}

题目十五

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。

输入描述:多组输入,一个整数(1~100),表示线段长度,即“*”的数量。

输出描述:针对每行输入,输出占一行,用“*”组成的对应长度的线段。

#include <stdio.h>

int main()
{
	int a = 0;
	while (1)
	{
		printf("请输入一个整数:");
		if (scanf("%d", &a) != 1)
			break;
		else
		{
			int b = a;
			for (b = a; b > 0; b--)
			{
				printf("*");
			}
		printf("\n");
		}
	}
	return 0;
}

题目十六

给定秒数 seconds ,把秒转化成小时、分钟和秒。

数据范围: 0<seconds<100000000  

输入描述:一行,包括一个整数,即给定的秒数。

输出描述:一行,包含三个整数,依次为输入整数对应的小时数、分钟数和秒数(可能为零),中间用一个空格隔开。

#include <stdio.h>
int main()
{
	int num = 0;
	int hour = 0;
	int min = 0;
	int second = 0; 
	printf("请输入一个整数:");
	scanf("%d", &num);
	if (num < 60)
	{
		second = num;
		printf("0 0 %d\n", second);
	}
	else if (60 <= num && num < 3600)
	{
		second = num % 60;
		min = num / 60;
		printf("0 %d %d\n", min, second);
	}
	else
	{
		second = num % 60;
		min = num / 60 % 60;
		hour = num / 3600;
		printf("%d %d %d\n", hour, min, second);
	}
	return 0;
}

题目十七

KiKi最近学习了信号与系统课程,这门课里有一个非常有趣的函数,单位阶跃函数,其中一种定义方式为:

现在试求单位冲激函数在时域t上的值。

输入描述:题目有多组输入数据,每一行输入一个t

输出描述:输出函数的值并换行。

#include<stdio.h>

int main()
{
	int t = 0;
	while (1)
	{
		printf("请输入一个整数:");
		if (scanf("%d", &t) != 1)
			break;
		else
		{
			if (t > 0)
				printf("1\n");
			else if (t == 0)
				printf("0.5\n");
			else
				printf("0");
		}
	}
	return 0;
}

        截止到这里,我们结束了第二部分《初识C语言》的全部内容,从下一篇笔记开始,我们将进行第三部分《分支语句和循环语句》的学习了。

上一篇:【论文笔记】Wings: Learning Multimodal LLMs without Text-only Forgetting-工作


下一篇:深度学习——多层感知机MLP(一、多层感知机介绍)