C语言程序练习题.docx
《C语言程序练习题.docx》由会员分享,可在线阅读,更多相关《C语言程序练习题.docx(15页珍藏版)》请在冰点文库上搜索。
C语言程序练习题
C语言程序设计上机安排
C语言上机实验:
32学时
序号
实验项目名称
内容提要
学时数
1
上机操作初步
熟悉VC++语言上机环境;了解如何编辑、编译、连接和运行一个C程序。
2
2
简单的C程序设计
掌握C语言的数据类型;学会使用C语言的运算符及表达式;掌握不同数据类型的输入输出方法。
掌握复制语句的使用、各种数据类型数据输入输出方法、格式转换符。
4
3
选择结构程序设计
正确使用逻辑运算符和逻辑表达式、if语句、switch语句
2
4
循环结构程序设计
熟悉while语句、do-while语句、for语句实现一些算法
4
5
综合实验1:
结构化程序设计
2
6
函数程序设计
掌握函数定义的方法、实参与形参对应关系、全局变量和局部变量的使用
4
7
数组程序设计
掌握一维二维数组的定义赋值和输入输出、字符数组和字符串数组使用、数组的算法-排序
4
8
指针程序设计
掌握定义和使用指针、使用数组指针、字符串指针、函数指针
2
9
综合实验2:
函数、数组、指针的综合应用
2
10
综合实验3:
结构体、文件程序设计
小型综合应用实例设计
4
11
考试模拟练习
掌握C语言考试系统的使用
2
实验一上机操作初步(2学时)
一、实验方式:
一人一机
二、实验目的:
1、熟悉VC++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个C程序。
3、初步了解C程序的特点。
三、实验内容:
说明:
前三题为必做题目,后两题为选做题目。
1、输出入下信息:
(实验指导书P79)
*************************
VeryGood
*************************
2、计算两个整数的和与积。
(实验指导书P81)
3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)
4、在屏幕上显示一个文字菜单模样的图案:
=================================
1输入数据2修改数据
3查询数据4打印数据
=================================
5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:
#include
main()
{
printf("*************************\nVeryGood\n*************************");
}
五、实验调试记录:
一、1.D:
\Cyuyan\101.c(5):
errorC2143:
syntaxerror:
missing';'before'}'
2.D:
\Cyuyan\101.c(3):
errorC2061:
syntaxerror:
identifier'printf'
D:
\Cyuyan\101.c(3):
errorC2059:
syntaxerror:
';'
D:
\Cyuyan\101.c(3):
errorC2059:
syntaxerror:
'string'
Errorexecutingcl.exe.
101.obj-3error(s),0warning(s)加上“{}”
3.d:
\cyuyan\101.c
(1):
fatalerrorC1083:
Cannotopenincludefile:
'stdioh':
Nosuchfileordirectory
Errorexecutingcl.exe.加上“.”
101.obj-1error(s),0warning(s)
二、1.d:
\yuyan\102.c(4):
errorC2065:
'inta':
undeclaredidentifier
d:
\yuyan\102.c(4):
errorC2065:
'b':
undeclaredidentifier
d:
\yuyan\102.c(6):
errorC2065:
'a':
undeclaredidentifier
d:
\yuyan\102.c(7):
errorC2065:
'c':
undeclaredidentifier
Errorexecutingcl.exe.
102.obj-4error(s),0warning(s)将“inta”改为“int”
六、参考答案:
(省略)
实验二简单的C程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、掌握C语言的数据类型。
2、学会使用C语言的运算符及表达式。
3、掌握不同数据类型的输入输出方法。
三、实验内容:
说明:
前四题为必做题目,后两题为选做题目。
1、输入r1、r2,求出圆形垫片面积。
(实验指导书P84)
2、输入华氏温度h,输出摄氏温度c。
(实验指导书P85)
3、从键盘输入一个3位整数,将输出该数的逆序数。
(实验指导书P89)
4、输入并运行以下程序,分析运行结果。
#include
voidmain()
{inti,j;
i=8;j=10;
printf(“%d,%d\n”,++i,++j);
i=8;j=10;
printf(“%d,%d\n”,i++,j++);
i=8;j=10;
printf(“%d,%d\n”,++i,i);
i=8;j=10;
printf(“%d,%d\n”,i++,i);
}
5、输入三角形三条边的边长,求三角形的面积。
(书P55)
6、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
(书P55)
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验三选择结构程序设计(2学时)
一、实验方式:
一人一机
二、实验目的:
1、熟练掌握if语句和switch语句。
2、练习并掌握多分支选择结构的编程方法。
3、学习调试和修改程序的步骤。
三、实验内容:
说明:
前三题为必做题目,后两题为选做题目。
1、读入3个分别表示箱子长、宽、高的整数值,判断并输出该箱子是立方体还是长方体。
(实验指导书P104)
2、输入某一年月,输出该月的天数。
(实验指导书P105)
3、有一函数:
x(x<1)
y=2x-1(1≤x<10)
3x-11(x≥10)编写程序,输入x值,输出y值。
4、从键盘输入一个字符,如果该字符为小写字母,则转换为大写字母输出;如果该字符为大写字母,则转换为小写字母输出;如果为其他字符,原样输出。
(书P94)
5、输入4个整数,要求按由小到大的顺序输出。
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验四循环结构程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、熟练掌握while语句、do-while语句和for语句。
2、练习并掌握循环结构的嵌套形式。
3、掌握循环结构的程序设计方法。
三、实验内容:
说明:
前四题为必做题目,后两题为选做题目。
1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
(实验指导书P117)
2、求所有的水仙花数。
水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身。
(实验指导书P118)
3、判断输入的某个数是否为素数。
若是,输出YES,否则输出NO。
(书P123)
4、计算π的近似值。
公式如下:
π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小于10-6为止。
(书P123)
5、计算s=1!
+2!
+……+20!
的值并输出。
6、输入10个整数,统计并输出其中正数、负数和零的个数。
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验五综合实验1:
结构化程序设计(2学时)
一、实验方式:
一人一机
二、实验目的:
1、进一步掌握选择结构、循环结构的编程特点。
2、掌握C语言的结构化程序设计思想。
3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。
三、实验内容:
说明:
前两题为必做题目,后两题为选做题目。
1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。
设:
90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
(书P93)
2、百马百担问题。
(实验指导书P121)
3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
4、输出如下图案:
*
***
*****
*******
*****
***
*
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验六函数程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、掌握C语言中函数的三要素:
函数定义、函数调用和函数说明。
2、掌握通过参数在函数间传递数据的方法。
3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。
三、实验内容:
说明:
前四题为必做题目,后两题为选做题目。
1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。
(实验指导书P130)
2、输入整数n,输出高度为n的等边三角形。
当n=5时的等边三角形如下:
(实验指导书P134)
*
***
*****
*******
*********
3、输入并运行以下程序,分析运行结果。
#include
inta=5;
intb=7;
voidmain()
{inta=4,b=5,c;
c=plus(a,b);
printf(“a+b=%d\n”,c);
}
plus(intx,inty)
{intz;
z=x+y;
return(z);
}
4、求500以内的所有亲密数对。
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。
(实验指导书P136)
5、输入并运行以下程序,分析运行结果。
#include
intd=1;
fun(intp)
{staticintd=5;
d+=p;
printf(“%d”,d);
return(d);
}
voidmain()
{inta=3;
printf(“%d”,fun(a+fun(d)));
}
6、设计一个函数,输出整数n的所有素数因子。
(书P157)
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验七数组程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、掌握数组的定义、赋值和输入输出的方法。
2、学习用数组实现相关的算法(特别是排序算法)。
3、掌握C语言中字符数组和字符串处理函数的使用。
三、实验内容:
说明:
前四题为必做题目,后两题为选做题目。
1、下列程序的功能是:
输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。
程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。
#include
voidmain()
{inti,n,a[10],avg;
for(i=0;iscanf(“%d”,a[i]);
for(i=0;i{if(i%3==0)printf(“\n”);
printf(“%d”,a[i]);
}
for(i=0;iavg+=a[i];
printf(“\navg=%f\n”,avg);
}
2、写一个函数,对输入的10个整数按从小到大的顺序排序(升序,用冒泡排序实现)。
(实验指导书P147)
3、编写程序,判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。
(实验指导书P153)
4、输入一个3行3列矩阵的所有元素,然后求出主对角线元素之和。
5、给定某年某月某日,将其转换成这一年的第几天并输出。
(实验指导书P152)
6、编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出nofound。
(书P191)
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验八指针程序设计(2学时)
一、实验方式:
一人一机
二、实验目的:
1、通过实验进一步掌握指针的概念,会定义和使用指针变量。
2、能正确使用指向数组和字符串的指针变量。
3、熟悉指针作为函数参数的编程特点。
三、实验内容:
说明:
前两题为必做题目,后两题为选做题目。
要求用指针方法实现。
1、指针基础及指针运算。
(实验指导书P168)
2、输入3个整数,按从小到大的次序输出。
(书P234)
3、数据交换。
实验要求:
1)定义两个函数,分别为voidswap1(inta,intb)和voidswap2(int*a,int*b),用于交换a,b的值。
2)从主函数中分别输入两个整型变量a、b。
3)从主函数中分别调用上述两个交换函数,并打印输出交换后a、b的结果。
(实验指导书P169)
4、编写一个程序计算字符串长度的函数,模拟C的函数库内的计算字符串长度的函数strlen()。
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验九综合实验2:
函数、数组、指针的综合应用(2学时)
一、实验方式:
一人一机
二、实验目的:
1、进一步掌握通过指针引用数组元素的方法。
2、综合运用函数、数组、指针的知识,实现复杂程序的编程。
3、掌握调试复杂程序的技巧。
三、实验内容:
说明:
前两题为必做题目,后两题为选做题目。
要求用指针方法实现。
1、数组元素奇偶排列。
实验要求:
1)定义一个整型一维数组,任意输入数组的元素,其中包含奇数和偶数。
2)定义一个函数,实现将数组元素奇数排列在左,偶数排列在右的排列。
3)在上述定义的函数中,不允许再增加新的数组。
4)从主函数中分别调用上述函数,打印输出结果。
(实验指导书P172)
2、编写函数lower()模拟标准函数strlwr(),调用形式为lower(char*st),其作用是将字符串st中的大写字母转换成小写。
(书P192)
3、编写函数,比较两个字符串是否相等。
(书P234)
4、编写函数reverse()模拟标准函数strrev(),调用形式为reverse(char*st),其作用是颠倒字符串st的顺序,即按与原来相反的顺序排列。
(书P192)
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)
实验十综合实验3:
结构体、文件程序设计(6学时)
一、实验方式:
一人一机
二、实验目的:
1、掌握结构体类型变量的定义和使用。
2、掌握结构体类型数组的概念和使用。
3、学会使用文件打开、关闭、读、写等文件操作的函数。
三、实验内容:
说明:
前三题为必做题目,后一题为选做题目。
1、在选举中进行投票,包含候选人姓名、得票数,假设有多位候选人,用结构体数组统计各候选人的得票数。
(实验指导书P180)
2、编写一个学生信息排序程序。
要求:
1)程序运行时可输入n个学生的信息和成绩(n预先定义)。
2)学生信息包括:
学号、姓名;学生成绩包括:
高等数学、物理、计算机。
3)给出一个排序选择列表,能够按照上述所列信息(学号、姓名、高等数学、物理、计算机)中的至少一个字段进行排序,并显示其结果。
4)使用函数方法定义各个模块。
3、将磁盘上一个文本文件的内容复制到另一个文件中。
(实验指导书P199)
4、从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,输出到一个磁盘文件“test.dat”中保存,然后读出并输出在屏幕上。
(实验指导书P204)
四、实验步骤与过程:
五、实验调试记录:
六、参考答案:
(省略)