计算机二级《C语言》模拟试题及答案
第一篇:C语言基础知识
1. C语言的发明人是谁?简要介绍一下他的背景。
2. int型变量的取值范围是多少?unsigned int呢?
3. 请问下面这段代码输出的结果是什么?
char str1[] = "hello";
char str2[] = "world";
strcat(str1, str2);
printf("%s", str1);
4. 以下哪些数据类型可以用来存储浮点数?
A. float
B. double
C. long double
D. char
5. 下列代码的输出结果是什么?
int a = 1;
long b = 2;
float c = 3.0;
printf("%ld\n", a + b + c);
答案:
1. C语言的发明人是丹尼斯·里奇(Dennis Ritchie)。他于1941年出生在美国,是贝尔实验室研究员和计算机科学家。在20世纪70年代,他和肯·汤普逊(Ken Thompson)合作,
发明了UNIX操作系统和C语言。C语言是一种高级计算机程序语言,在操作系统、编译器、数据库、游戏等领域被广泛使用。丹尼斯·里奇因发明了C语言,被誉为“计算机编程之父”。
2. int型变量的取值范围是-2147483648到2147483647,unsigned int的取值范围是0到4294967295。
3. 输出结果为“helloworld”。strcat是C语言的字符串拼接函数,将两个字符串连接成一个字符串。在拼接之前,需要保证第一个字符串的数组足够大,以容纳两个字符串的内容。如果第一个字符串不够大,程序会出现内存溢出等问题。
4. A、B、C三个数据类型可以用来存储浮点数。
5. 输出结果为“6”。在printf函数中,%ld表示输出长整型数据,而c是一个float型变量。当printf函数中的格式字符串和实际参数类型不匹配时,程序会自动进行类型转换。在此例中,a和b自动转换成long类型,而c自动转换成double类型。所有类型转换后,表达式的值为6.0。在输出时,%ld会把浮点数的小数部分去掉,只输出整数部分。所以最终输出6。
第二篇:C语言控制语句
1. 编写一个程序,读入一个数,如果这个数是奇数,输出“这是个奇数”,否则输出“这是个偶数”。
2. 编写一个程序,读入一个整数n,输出n个星号,每个星号之间用空格隔开。例如,当n为3时,输出“* * *”。
3. 编写一个程序,读入两个整数a和b,输出它们的最大公约数。可以使用欧几里德算法实现。最大公约数定义为能够同时整除a和b的最大正整数。
4. 编写一个程序,求解二次方程ax² + bx + c = 0的根。程序应该首先读入三个实数a、b、c,然后根据公式计算出根,并将结果输出。当方程无实根时,输出“此方程无实根”。
5. 编写一个程序,计算斐波那契数列的前n项。斐波那契数列的第0项是0,第1项是1,第n项是第n-1项和第n-2项的和。
答案:
c语言斐波那契数列
1.
#include <stdio.h>
int main()
{
int n;
printf("请输入一个数:");
scanf("%d", &n);
if (n % 2 == 1)
printf("这是个奇数\n");
else
printf("这是个偶数\n");
return 0;
}
2.
#include <stdio.h>
int main()
{
int n;
printf("请输入一个数:");
scanf("%d", &n);
for (int i = 0; i < n; i++)
printf("* ");
return 0;
}
3.
#include <stdio.h>
int gcd(int a, int b)
{
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int main()
{
int a, b;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
int ans = gcd(a, b);
printf("%d和%d的最大公约数是%d\n", a, b, ans);
return 0;
}
4.
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c;
printf("请输入三个实数a、b、c,用空格分隔:");
scanf("%lf%lf%lf", &a, &b, &c);
double delta = b * b - 4 * a * c;
if (delta >= 0)
{
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的两个根分别为%.2lf和%.2lf\n", x1, x2);
}
else
printf("此方程无实根\n");
return 0;
}
5.
#include <stdio.h>
int main()
{
int n;
printf("请输入一个数:");
scanf("%d", &n);
int f0 = 0, f1 = 1, fn;
printf("斐波那契数列的前%d项为:", n);
if (n >= 1)
printf("0 ");
if (n >= 2)
printf("1 ");
for (int i = 3; i <= n; i++)
{
fn = f0 + f1;
printf("%d ", fn);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论