前言
C语言作为一门历史悠久且应用广泛的编程语言,一直是程序员面试中的重要考点。掌握C语言的编程能力,对于求职者来说至关重要。本文将为你整理一些常见的C语言面试真题,帮助你轻松应对挑战。
一、基本语法与数据类型
1. 常量与变量
题目:编写一个C程序,定义两个整型变量,一个常量,并分别给它们赋值。
答案:
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
const int c = 30;
return 0;
}
2. 运算符
题目:编写一个C程序,计算两个整数的和、差、积、商。
答案:
#include <stdio.h>
int main() {
int a = 10;
int b = 20;
int sum = a + b;
int diff = a - b;
int prod = a * b;
int quot = a / b;
return 0;
}
二、控制结构
1. 条件语句
题目:编写一个C程序,根据用户输入的年龄判断是儿童、青少年、成年人或老年人。
答案:
#include <stdio.h>
int main() {
int age;
printf("请输入您的年龄:");
scanf("%d", &age);
if (age < 18) {
printf("您是儿童。\n");
} else if (age >= 18 && age < 60) {
printf("您是青少年。\n");
} else {
printf("您是成年人或老年人。\n");
}
return 0;
}
2. 循环结构
题目:编写一个C程序,计算1到100之间所有整数的和。
答案:
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
printf("1到100之间所有整数的和为:%d\n", sum);
return 0;
}
三、函数与数组
1. 函数
题目:编写一个C程序,定义一个函数计算两个整数的最大值。
答案:
#include <stdio.h>
int max(int a, int b) {
return (a > b) ? a : b;
}
int main() {
int a = 10;
int b = 20;
printf("两个整数的最大值为:%d\n", max(a, b));
return 0;
}
2. 数组
题目:编写一个C程序,将一个整数数组中的元素逆序。
答案:
#include <stdio.h>
void reverseArray(int arr[], int size) {
int temp;
for (int i = 0; i < size / 2; i++) {
temp = arr[i];
arr[i] = arr[size - 1 - i];
arr[size - 1 - i] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
reverseArray(arr, size);
printf("逆序后的数组为:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
四、指针与结构体
1. 指针
题目:编写一个C程序,交换两个整数的值。
答案:
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 10;
int b = 20;
swap(&a, &b);
printf("交换后的值为:%d %d\n", a, b);
return 0;
}
2. 结构体
题目:编写一个C程序,定义一个学生结构体,并创建一个学生数组,打印所有学生的信息。
答案:
#include <stdio.h>
typedef struct {
char name[50];
int age;
float score;
} Student;
void printStudents(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("姓名:%s,年龄:%d,成绩:%f\n", students[i].name, students[i].age, students[i].score);
}
}
int main() {
Student students[] = {
{"张三", 20, 85.5},
{"李四", 22, 90.0},
{"王五", 21, 78.9}
};
int size = sizeof(students) / sizeof(students[0]);
printStudents(students, size);
return 0;
}
五、文件操作
1. 文件写入
题目:编写一个C程序,将一段文本写入文件。
答案:
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w");
if (fp == NULL) {
printf("打开文件失败。\n");
return 1;
}
fprintf(fp, "这是一段测试文本。\n");
fclose(fp);
return 0;
}
2. 文件读取
题目:编写一个C程序,读取文件内容并打印到屏幕上。
答案:
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("打开文件失败。\n");
return 1;
}
char buffer[1024];
while (fgets(buffer, sizeof(buffer), fp)) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
六、总结
通过以上这些C语言面试真题的练习,相信你已经对C语言的编程能力有了更深的理解。在面试过程中,保持自信,认真审题,相信你一定能顺利应对挑战。祝你好运!
