第一题
```c
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("请提供文件名作为参数\n");
return 1;
}
// 打开文件
FILE *file = fopen(argv[1], "w");
if (!file) {
printf("无法打开文件: %s\n", argv[1]);
return 1;
}
// 在文件中打印九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
fprintf(file, "%d * %d = %d\n", i, j, i * j);
}
}
// 关闭文件
fclose(file);
return 0;
}
第二题
```c
#include <stdio.h>
#include <ctype.h>
int main()
{
// 从键盘输入一个字符串
printf("请输入一个字符串(以'!'结束):\n");
char line[256];
fgets(line, sizeof(line), stdin);
// 把字符串中的小写字母全部转换成大写字母
int i;
for (i = 0; line[i] != '\0'; i++) {
line[i] = toupper(line[i]);
}
// 将字符串保存到文件中
FILE *fp = fopen("test.txt", "w");
fputs(line, fp);
fclose(fp);
// 从文件中读取字符串,把其转换成小写字母并打印到屏幕上
fp = fopen("test.txt", "r");
fgets(line, sizeof(line), fp);
fclose(fp);
for (i = 0; line[i] != '\0'; i++) {
line[i] = tolower(line[i]);
}
printf("读取文件中的字符串:%s\n", line);
return 0;
}
第三题
#include <stdio.h>
#define NUM_STUDENTS 5 // 定义学生数量
#define NUM_COURSES 3 // 定义每个学生的课程数量
typedef struct { // 定义学生信息结构体
int id; // 学号
char name[20]; // 姓名
int scores[3]; // 成绩
float average; // 平均分
} Student;
int main()
{
int i, j;
Student students[NUM_STUDENTS]; // 定义学生信息结构体数组
// 从键盘输入学生数据
for (i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
for (j = 0; j < NUM_COURSES; j++) {
printf("第%d门课的成绩:", j + 1);
scanf("%d", &students[i].scores[j]);
}
}
// 计算平均成绩
for (i = 0; i < NUM_STUDENTS; i++) {
int sum = 0;
for (j = 0; j < NUM_COURSES; j++) {
sum += students[i].scores[j];
}
students[i].average = (float)sum / NUM_COURSES;
}
// 将原有数据和平均成绩存放到文件中
FILE *fp = fopen("students.txt", "w");
for (i = 0; i < NUM_STUDENTS; i++) {
fprintf(fp, "%d %s %d %d %d %.2f\n",
students[i].id, students[i].name,
students[i].scores[0], students[i].scores[1],
students
第四题
#include <stdio.h>
int main()
{
// 定义文件名
char file1[] = "file1.txt";
char file2[] = "file2.txt";
// 打开文件,以追加模式打开 file1
FILE *fp1 = fopen(file1, "a");
if (fp1 == NULL) {
printf("无法打开文件%s!\n", file1);
return 1;
}
// 打开文件,以读模式打开 file2
FILE *fp2 = fopen(file2, "r");
if (fp2 == NULL) {
printf("无法打开文件%s!\n", file2);
return 1;
}
// 从 file2 中读取一行,追加到 file1 末尾
char line[256];
while (fgets(line, sizeof(line), fp2) != NULL) {
fputs(line, fp1);
}
// 关闭文件
fclose(fp1);
fclose(fp2);
return 0;
}
第五题
1:
#include <stdio.h>
#include <stdlib.h>
// 定义函数 Nw,对 n 个字符开辟连续的存储空间
char *Nw(int n)
{
char *p = (char *)malloc(n);
if (p == NULL) {
printf("分配内存空间失败!\n");
exit(1);
}
return p;
}
int main()
{
// 调用 Nw 函数,分配内存空间
char *p = Nw(10);
// 向内存空间写入数据
sprintf(p, "Hello World");
// 打印存储在内存空间中的字符串
printf("%s\n", p);
// 释放内存空间
free(p);
return 0;
}
2:
#include <stdio.h>
#include <stdlib.h>
// 定义函数 Nw,对 n 个字符开辟连续的存储空间
char *Nw(int n)
{
char *p = (char *)malloc(n);
if (p == NULL) {
printf("分配内存空间失败!\n");
exit(1);
}
return p;
}
// 定义函数 Free,将指定的内存段释放
void Free(char *p)
{
free(p);
}
int main()
{
// 调用 Nw 函数,分配内存空间
char *p = Nw(10);
// 向内存空间写入数据
sprintf(p, "Hello World");
// 打印存储在内存空间中的字符串
printf("%s\n", p);
// 调用 Free 函数,释放内存空间
Free(p);
return 0;
}
呃~这不都是基础题吗
如有帮助,望采纳
1
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%-4d",j,i,j*i);//注意左对齐格式
}
printf("\n");
}
return 0;
}
2
//导入头文件
#include<stdio.h>
#include<stdlib.h>
//主函数
int main(){
FILE*fp=NULL;//定义文件指针,初始为空
char filename[25];//字符数组,存储字符,容量25
char ch;//字符变量,记录字符
printf("请输入文件名称:");//信息提示
gets(filename);//获取文件名
//判断文件创建是否成功
if((fp=fopen(filename,"w"))==NULL){
printf("打开文件失败!\n");
exit(0);
}
printf("请输入要保存的字符,以#结束:\n");
getchar();
while((ch=getchar())!='#'){
fputc(ch,fp);//字符写入文件中
}
fclose(fp);//关闭文件
return 0;
}
3
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_LEN 100 /*数组长度*/
/*定义学生结构体*/
typedef struct {
int no; /*学号*/
float score1; /*成绩1*/
float score2; /*成绩2*/
float score3; /*成绩3*/
float totalScore; /*总分*/
float averageScore; /*平均分*/
} student;
/*输入学生信息*/
void inputInfo (student stu[], int stuIndex) {
int i;
printf ("第%d名学生↓\n", stuIndex+1);
printf ("学号:");
scanf ("%d",&stu[stuIndex].no);
printf ("成绩1:");
scanf ("%f",&stu[stuIndex].score1);
printf ("成绩2:");
scanf ("%f",&stu[stuIndex].score2);
printf ("成绩3:");
scanf ("%f",&stu[stuIndex].score3);
putchar ('\n');
}
/*计算平均成绩*/
void calculationScore (student stu[], int stuIndex) {
stu[stuIndex].totalScore=stu[stuIndex].score1+stu[stuIndex].score2+stu[stuIndex].score3;
stu[stuIndex].averageScore=stu[stuIndex].totalScore/3;
} /*输出学生成绩*/
void printInfo (student stu[], int stuIndex) {
int i;
printf ("%d\t",stu[stuIndex].no);
printf ("%.2f\t",stu[stuIndex].score1);
printf ("%.2f\t",stu[stuIndex].score2);
printf ("%.2f\t",stu[stuIndex].score3);
printf ("%.2f",stu[stuIndex].averageScore);
putchar ('\n');
}
int main (void) {
int stuNum=5,i;
student stu[ARRAY_LEN];
/*输入、计算*/
puts ("请输入学生信息:");
putchar ('\n');
for (i=0; i<stuNum; i++) {
inputInfo (stu,i);
calculationScore (stu,i);
}
putchar ('\n');
printf ("%d名学生成绩输入完毕!", stuNum);
putchar ('\n');
puts ("================================================\n");
/*输出*/
puts ("学号\t成绩1\t成绩2\t成绩3\t平均成绩");
for (i=0; i<stuNum; i++)
printInfo (stu,i);
getch (); /*屏幕暂留*/
return 0;
}
4
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define FILE_NAME "demo.txt" // 文件名称
int main()
{
FILE* fp = NULL; // 文件指针
char* szAppendStr = "Text";
errno_t eResult;
// 以附加方式打开可读/写的文件, 如果没有此文件则会进行创建,然后以附加方式打开可读/写的文件
eResult = fopen_s(&fp, FILE_NAME, "a+");
// 打开文件失败
if (eResult != 0)
exit(-1);
// 将追加内容写入文件指针当前的位置
fputs(szAppendStr, fp);
// 最后不要忘了,关闭打开的文件~~~
fclose(fp);
return 0;
}