C基础练习题.docx
- 文档编号:26193898
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:21
- 大小:23.85KB
C基础练习题.docx
《C基础练习题.docx》由会员分享,可在线阅读,更多相关《C基础练习题.docx(21页珍藏版)》请在冰豆网上搜索。
C基础练习题
实验十指针练习
【实验目的】
掌握指针的定义和使用。
【实验平台】
带有Linux操作系统的PC机。
【实验步骤】
1.编写一个程序实现功能:
将字符串”ComputerScience”赋给一个字符数组,然后从第一个字母开始间隔的输出该字符串,用指针完成。
2.用指针将整型组s[8]={1,2,3,4,5,6,7,8}中的值逆序存放。
3.编写一个程序实现功能:
将两个字符串合并为一个字符串并且输出,用指针实现。
charstr1[20]={“Hello”},str2[20]={“World”};
4.编写一个程序实现以下功能:
用指针数组处理一个二维数组,求出二维数组所有元素的和。
intarray[3][4]={{7, 10,-2, 3},
{14,30, 6,-15},
{0, 5, 27,-7}};
5.已知数组a[10]和b[10]中元素的值递增有序,用指针实现将两个数组中的元素按递增的顺序输出。
6.定义字符指针数组char*str[5]分别指向5个字符串常量,从小到大输出字符串的内容。
7.已知数组内容如下s[]={1,2,3,4,5,6,7,8,9},输入一个数n(1<=n<=9),使得该数组内容顺序后移n个位置。
如n=3时,数组后移3个位置后的内容为{7,8,9,1,2,3,4,5,6}
8.输入一个字符串,内有数字和非数字字符,如a123x45617960?
302tab5876 将其中连续的数字作为一个整数,依次存放到整型数组a中。
例如,123放在a[0],456放在a[1],统计共有多少个整数,并输出这些数。
实验十一函数练习
【实验目的】
掌握函数的声明、定义和调用。
【实验平台】
带有Linux操作系统的PC机。
【实验步骤】
1.编写函数分别实现以下功能:
(1)求两个数之和;
(2)求两个数之差;(3)求两个数之积。
2.编写一个函数,包括一个字符参数和两个整型参数。
字符参数是需要输出的字符,第一个整型参数说明了在每行中该字符输出的个数,而第二个整型参数指的是需要输出的行数,编写一个调用该函数的程序。
3.编写一个函数taxis()实现数组的排序,在函数中调用swap()实现两个数的交换。
打印出排序结果。
4.编写一个函数,实现两个字符串的比较。
5.编写一个函数is-within().它接受两个参数,一个是字符,另一个是字符串指针。
其功能是如果字符在字符串中。
就返回1(真);如果字符不在字符串中,就返回0(假)。
在一个使用循环语句为这个函数提供输入的完整程序中进行测试。
6.输出程序运行时的命令行参数。
例如:
./myprog a b c
a b c
7. 以下函数拍的功能是用递归的方法计算x的n阶勒让德多项式的值。
已有调用语句p(n,x);编写函数实现功能。
递归公式如下:
实验十二结构体、共用体实验
12.1基本结构体实验
【实验内容】
试利用结构体类型编程,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩
(1)基本实现方法,在main函数中结构体,并实现功能
(2)定义结构体指针进行操作
(3)在main外建立结构体,构建函数foo,向foo函数传递结构题成员作为参数
(4)在main外建立结构体,并构建没有参数和返回值的函数foo
(5)在main外建立结构体,构建传递结构体指针并返回void的函数foo
(6)在main外建立结构体,构建传递结构体指针并返回结构体指针的函数foo
【实验目的】
本实验通过一系列的步骤,从最基本的结构体建立开始,一步一步地完善整个结构体的操作,从而完整的掌握结构体的内容
【实验平台】
PC机、ubuntu操作系统,gcc等工具
【实验步骤】
1、基本实现方法,在main函数中结构题,并实现功能
struct-1.c
#include
intmain(intargc,char**argv)
{
structresults
{
floatinterim_results;
floatend_results;
floataverage_scores;
}student;
printf("Inputinterim_results:
");
scanf("%f",&student.interim_results);
printf("Inputend_results:
");
scanf("%f",&student.end_results);
student.average_scores=(student.interim_results+student.end_results)/2;
printf("%.2f\n",student.average_scores);
return0;
}
编译:
gcc–ostruct-1stuct-1.c
执行:
./struct-1
Inputinterim_results:
12
Inputend_results:
16
14.00
2、定义结构体指针进行操作
struct-1.c
#include
#include
intmain(intargc,char**argv)
{
structresults
{
floatinterim_results;
floatend_results;
floataverage_scores;
};
structresults*student=malloc(sizeof(structresults));
printf("Inputinterim_results:
");
scanf("%f",&student->interim_results);
printf("Inputend_results:
");
scanf("%f",&student->end_results);
student->average_scores=(student->interim_results+student->end_results)/2;
printf("%.2f\n",student->average_scores);
return0;
}
编译:
gcc–ostruct-2stuct-2.c
执行:
./struct-2
Inputinterim_results:
12
Inputend_results:
16
14.00
3、在main外建立结构体,构建函数foo,向foo函数传递结构题成员作为参数
struct-3.c
#include
#include
structresults
{
floatinterim_results;
floatend_results;
floataverage_scores;
};
intfoo(float*interim_results,float*end_results,float*average_scores)
{
*average_scores=(*interim_results+*end_results)/2;
return0;
}
intmain(intargc,char**argv)
{
structresults*student=malloc(sizeof(structresults));
printf("Inputinterim_results:
");
scanf("%f",&student->interim_results);
printf("Inputend_results:
");
scanf("%f",&student->end_results);
foo(&student->interim_results,&student->end_results,&student->average_scores);
printf("Theaveragesocresis:
%.2f\n",student->average_scores);
return0;
}
编译:
gcc–ostruct-3stuct-3.c
执行:
./struct-3
Inputinterim_results:
21
Inputend_results:
32
Theaveragesocresis:
26.50
4、在main外建立结构体,并构建没有参数和返回值的函数foo
struct-4.c
#include
#include
structresults
{
floatinterim_results;
floatend_results;
floataverage_scores;
};
voidfoo()
{
structresults*student=malloc(sizeof(structresults));
printf("Inputinterim_results:
");
scanf("%f",&student->interim_results);
printf("Inputend_results:
");
scanf("%f",&student->end_results);
student->average_scores=(student->interim_results+student->end_results)/2;
printf("Theaveragesocresis:
%.2f\n",student->average_scores);
}
intmain(intargc,char**argv)
{
foo();
return0;
}
编译:
gcc–ostruct-4stuct-4.c
执行:
./struct-4
Inputinterim_results:
21
Inputend_results:
32
Theaveragesocresis:
26.50
5、在main外建立结构体,构建传递结构体指针并返回void的函数foo
struct-5.c
#include
#include
structresults
{
floatinterim_results;
floatend_results;
floataverage_scores;
};
voidfoo(structresults*student)
{
printf("Inputinterim_results:
");
scanf("%f",&student->interim_results);
printf("Inputend_results:
");
scanf("%f",&student->end_results);
student->average_scores=(student->interim_results+student->end_results)/2;
}
intmain(intargc,char**argv)
{
structresults*student=malloc(sizeof(structresults));
foo(student);
printf("Theaveragesocresis:
%.2f\n",student->average_scores);
return0;
}
编译:
gcc–ostruct-5stuct-5.c
执行:
./struct-5
Inputinterim_results:
21
Inputend_results:
32
Theaveragesocresis:
26.50
6、在main外建立结构体,构建传递结构体指针并返回结构题指针的函数foo
struct-6.c
#include
#include
structresults
{
floatinterim_results;
floatend_results;
floataverage_scores;
};
structresults*foo()
{
structresults*student=malloc(sizeof(structresults));
printf("Inputinterim_results:
");
scanf("%f",&student->interim_results);
printf("Inputend_results:
");
scanf("%f",&student->end_results);
student->average_scores=(student->interim_results+student->end_results)/2;
returnstudent;
}
intmain(intargc,char**argv)
{
structresults*student;
student=foo();
printf("Theaveragesocresis:
%.2f\n",student->average_scores);
return0;
}
编译:
gcc–ostruct-6stuct-6.c
执行:
./struct-6
Inputinterim_results:
21
Inputend_results:
32
Theaveragesocresis:
26.50
12.2结构体指针实验
【实验内容】
试利用指向结构体的指针编制一个程序,实现输入3个学生的学号、数学期中和期末成绩,然后计算其平均成绩并输出成绩表
【实验目的】
本实验主要是要熟悉结构体指针的使用方法,以及在函数之间传递结构体指针的功能。
【实验平台】
PC机、ubuntu操作系统,gcc等工具
【实验步骤】
1、定义结构体数 组,进行操作
struct-1.c
#include
#include
structresults
{
intid;
floatinterim_results;
floatend_results;
floataverage_scores;
};
intmain()
{
inti;
structresultsstudent[3];
for(i=0;i<3;i++)
{
printf("InputID:
");
scanf("%d",&student[i].id);
printf("Inputinterimresults:
");
scanf("%f",&student[i].interim_results);
printf("Inputendresults:
");
scanf("%f",&student[i].end_results);
student[i].average_scores=(student[i].interim_results+student[i].end_results)/2;
}
printf("###########################################\n");
printf("ID\tinterim\tend\taverage\n");
for(i=0;i<3;i++)
{
printf("%d\t%.2f\t%.2f\t%.2f\n",student[i].id,student[i].interim_results,
student[i].end_results,student[i].average_scores);
}
printf("###########################################\n");
return0;
}
编译:
gcc–ostruct-1stuct-1.c
执行:
./struct-1
InputID:
1
Inputinterimresults:
67
Inputendresults:
87
InputID:
2
Inputinterimresults:
98
Inputendresults:
67
InputID:
3
Inputinterimresults:
98
Inputendresults:
78
###########################################
ID interim end average
1 67.00 87.00 77.00
2 98.00 67.00 82.50
3 98.00 78.00 88.00
###########################################
2、定义结构题指针,进行操作
struct-2.c
#include
#include
structresults
{
intid;
floatinterim_results;
floatend_results;
floataverage_scores;
};
intmain()
{
inti;
structresultsstudent[3],*p=student;
for(i=0;i<3;i++)
{
printf("InputID:
");
scanf("%d",&p->id);
printf("Inputinterimresults:
");
scanf("%f",&p->interim_results);
printf("Inputendresults:
");
scanf("%f",&p->end_results);
p->average_scores=(p->interim_results+p->end_results)/2;
p++;
}
p=student;
printf("###########################################\n");
printf("ID\tinterim\tend\taverage\n");
for(i=0;i<3;i++)
{
printf("%d\t%.2f\t%.2f\t%.2f\n",p->id,p->interim_results,
p->end_results,p->average_scores);
p++;
}
printf("###########################################\n");
return0;
}
编译:
gcc–ostruct-2stuct-2.c
执行:
./struct-2
InputID:
1
Inputinterimresults:
67
Inputendresults:
87
InputID:
2
Inputinterimresults:
98
Inputendresults:
67
InputID:
3
Inputinterimresults:
98
Inputendresults:
78
###########################################
ID interim end average
1 67.00 87.00 77.00
2 98.00 67.00 82.50
3 98.00 78.00 88.00
###########################################
3、编写printp函数,实现成绩打印功能,传递结构体数组为其参数
struct-3.c
#include
#include
structresults
{
intid;
floatinterim_results;
floatend_results;
floataverage_scores;
};
voidprintp(structresultsstudent[])
{
inti;
printf("###########################################\n");
printf("ID\tinterim\tend\taverage\n");
for(i=0;i<3;i++)
{
printf("%d\t%.2f\t%.2f\t%.2f\n",student[i].id,student[i].interim_results,
student[i].end_results,student[i].average_scores);
}
printf("###########################################\n");
}
intmain()
{
inti;
structresultsstudent[3];
for(i=0;i<3;i++)
{
printf("InputID:
");
scanf("%d",&student[i].id);
printf("Inputinterimresults:
");
scanf("%f",&student[i].interim_results);
printf("Inputendresults:
");
scanf("%f",&student[i].end_results);
student[i].average_scores=(student[i].interim_results+student[i].end_results)/2;
}
printp(student);
return0;
}
编译:
gcc–ostruct-3stuct-3.c
执行:
./struct-3
InputID:
1
Inputinterimresults:
67
Inputendresults:
87
InputID:
2
Inputinterimresults:
98
Inputendresults:
67
InputID:
3
Inputinterimresults:
98
Inputendresults:
78
##########
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基础 练习题