在第一部分——课前准备的学习中,我就提到了学习C语言的过程中,练习是必不可少的环节,所以本篇笔记我们来进行记录我们学习《C语言程序设计初阶》阶段的第一篇练习文章。
题目一
下面哪个不是C语言内置的数据类型:
A.char
B.double
C.struct Stu
D.short
【参考答案】C
【解析】C语言的内置数据类型包括:short 、 int 、 long 、 long long 、double 、float 、char 等等。
题目二
学会使用printf在屏幕输出信息,输出一架小飞机。编写程序输出这架小飞机。
输出描述:
【参考答案】
#include <stdio.h>int main()
{printf(" ** \n");printf(" ** \n");printf("************\n");printf("************\n");printf(" * * \n");printf(" * * \n");return 0;
}
题目三
据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。
输入描述:多组输入,每行输入包括一个整数表示的智商。
输出描述:针对每行输入,输出“Genius”。
【参考答案】
#include<stdio.h>int main()
{int IQ = 0;printf("请输入你的智商:");scanf("%d", &IQ);if (IQ >= 140)printf("Genius");return 0;
}
这段代码是一个基础版本,它没有实现多组输入。
#include <stdio.h>int main()
{int IQ = 0;while (scanf("%d", &IQ) == 1)//while (scanf("%d", &IQ) != EOF)//判断scanf函数的返回值是否是1// EOF 的本质是 -1// scanf 函数返回的值为实际读到的数据的个数//如果是,则进行if判断、如果不是则跳出循环return 0;代码执行结束//跳出循环方法:1.ctrl+z 一次或多次 2.输入一个不与%d匹配的值//好处:可进行多次输入{if (IQ >= 140)//如果不是,则返回while进行再次输入printf("Genius");}return 0;
}
还可以进一步提升
#include <stdio.h>int main()
{int IQ = 0;while (1) // 使用一个无限循环{printf("请输入一个智商值: "); if (scanf("%d", &IQ) != 1) // 判断scanf函数的返回值是否为1break; // 退出循环if (IQ >= 140)printf("Genius\n"); // 如果智商大于等于140,输出“Genius”}return 0;
}
题目四
你的手机丢了,在屏幕上输出信息告诉大家。
输出描述:I lost my cellphone!
【参考答案】
#include<stdio.h>int main()
{printf("I lost my cellphone!");return 0;
}
题目五
请计算表达式“(-8+22)×a-10+c÷2”,其中,a = 40,c = 212。
#include<stdio.h>int main()
{int a = 40;int c = 212;printf("%d", (-8 + 22) * a - 10 + c / 2);return 0;
}
题目六
局部变量的作用域是:
A.main函数内部
B.整个程序
C.main函数之前
D.局部变量所在的局部范围
【参考答案】D
题目七
字符串的结束标志是:( )
A.是'0'
B.是EOF
C. 是'\0'
D.是空格
【参考答案】C
题目八
下面那个不是转义字符?
A.'\n'
B.'\060'
C.'\q'
D.'\b'
【参考答案】C
题目九
下面代码的结果是:( )
#include <stdio.h>
#include <string.h>int main()
{char arr[] = {'b', 'i', 't'};printf("%d\n", strlen(arr));return 0;
}
A.3
B.4
C.随机值
D.5
【参考答案】C
【补充拓展】在之前我们学习笔记的代码中,我们使用strlen并没有包含string.h头文件,但也能正常运行,这是因为虽然 strlen 函数是定义在 <string.h>头文件中的,但在 C 语言中,strlen 函数是可被直接使用的内置函数之一。这意味着即使你没有包含<string.h>,编译器也能识别strlen函数,因为它是 C 语言标准库的一部分,编译器默认就知道如何处理这些标准库函数。
题目十
下面代码输出的结果是:( )
#include <stdio.h>
int num = 10;
int main()
{int num = 1;printf("num = %d\n", num);return 0;
}
A. 程序有问题,不能编译
B.输出1
C.输出10
D.输出0
【参考答案】B
题目十一
下面程序的结果是:( )
#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
【参考答案】A
题目十二
判断一个整数是否能5整除是一个挺简单的问题,懒惰的KiKi还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
输入描述:输入包括一个整数M(1≤M≤100,000)。
输出描述:输出包括一行,如果M可以被5整除就输出YES,否则输出NO(结果大小写敏感)。
【参考答案】
#include<stdio.h>int main()
{int M = 0;scanf("%d", &M);int a = 0;a = M % 5;if (a == 0)printf("YES");elseprintf("NO");return 0;
}
题目十三
已知一个函数y=f(x),当x < 0时,y = 1;当x = 0时,y = 0;当x > 0时,y = -1。
输入描述:一行,输入一个整数x。(-10000<x<10000)
输出描述:一行,输出y的值。
【参考答案】
#include<stdio.h>int main()
{int x = 0;scanf("%d", &x);if (x < 0)printf("1");else if (x == 0)printf("0");elseprintf("-1");return 0;
}
上面这种写法比较讨巧,但是运行结果是正确的,比较正式的写法是这样的
#include<stdio.h>int main()
{int x = 0;int y = 0;scanf("%d", &x);if (x > 0){y = -1;printf("%d", y);}else if (x == 0){y = 0;printf("%d", y);}else{y = 1;printf("%d", y);}return 0;
}
题目十四
给定两个整数a和b (0 < a,b < 10,000),计算a除以b的整数商和余数。
输入描述:一行,包括两个整数a和b,依次为被除数和除数(不为零),中间用空格隔开。
输出描述:一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。
【参考答案】
#include<stdio.h>int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int c = 0;int d = 0;c = a / b;d = a % b;printf("%d %d", c, d);return 0;
}
以上十四道题便是第一篇练习文章的内容,下一篇笔记开始我们将继续学习《初识C语言》的内容,当然后面依旧会有部分的练习篇章。