本篇笔记是一篇练习文章,是对第二部分《初识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语言》的全部内容,从下一篇笔记开始,我们将进行第三部分《分支语句和循环语句》的学习了。