C语言实验课题目
完成下列题目: 1. 键盘输入与屏幕输出练习
问题 1 要使下面程序的输出语句在屏幕上显示 1, 2, 34, 则从键盘输入的数据格式应为以下 备选答案中的 。
#include <stdio.h> main() { char a,b; int c;
scanf("%c%c%d",&a,&b,&c); }
n 1 20
化程序。
掌握以下内容:
1. 2. 3. 4. while 语句、do-while 语句和 for 语句格式三种循环语句的使用; 简单循环问题的分析和程序设计; 正确的构造循环条件; 循环程序的调试方法和技巧。
实验 4 函数
题目:
1、编写一个函数,输出语句: “I Love China! ” 。 2、调试下面的程序,记录系统给出的出错信息,并指出错误原因。 main( ) { int x,y; printf("%d\n",sum(x+y)); } int sum(a,b); { int a,b; return(a+b); } 3、编写函数,判断指定的字符是否是数字字符,如果是返回 1,不是则返回 0。在主函数中 输入该字符,调用函数判断该字符并输出是否是数字字符。 4、编写一函数,计算整数 m 的 n 次幂,在主函数中输入 m 和 n,在主函数中输出计算结果。 5、求 1!+2!+…+n!,要求:编写两个函数,分别实现求 n!功能,和 1!+2!+…+n!功能,在 主函数输入 n 值,并在主函数中输出计算结果。 6、指出下列各变量的存储属性,分析程序的应得结果,并上机验证。 #include <stdio.h> int n=1; void func( ) { static int a=2; int b=5; a+=2; b+=5; n+=12; printf("a=%d,b=%d,n=%d\n",a,b,n); } main( ) { int a=0,b= -10; printf("a=%d,b=%d,n=%d\n",a,b,n); func( ); printf("a=%d,b=%d,n=%d\n",a,b,n); func( ); printf("a=%d,b=%d,n=%d\n",a,b,n); }
2. 计算定期存款本利之和
设银行定期存款的年利率 rate 为 2.25%,并已知存款期为 n 年,存款本金为 capital 元,试编 程计算 n 年后的本利之和 deposit。要求定期存款的年利率 rate、存款期 n 和存款本金 capital 均由键盘输入。
实验 2 选择语句
题目:
1、编写程序,输入一个正整数,判断该数是奇数还是偶数,并输出判断结果。 2、有一函数:
实验 5 指针
题目:
1、调试下面的程序,指出错误的原因。 main( ) { int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf("*px=%d,*py=%d\n",*px,*py); } 2、编写一个函数,交换主函数中变量 x 和 y 的数据。 3、完善下面的程序,功能是子函数将主函数中两个变量较小的变量地址返回,主函数中输 出其数据。 int *fun(int *,int *) main() { int a,b,*p; scanf( ); ; printf (”a=%d,b=%d,*p=%d”, ); } int (int *x,int *y) { }
掌握以下内容:
1、无参函数的定义和调用; 2、有参无返回值函数的定义和调用; 3、对于有返回值函数调用时的处理方法 ; 4、有参函数调用时,实参和形参的概念理解和对应关系; 5、有返回值函数调用时返回值的处理; 6、函数的嵌套调用; 7、函数的声明; 8、全局变量和局部变量的定义及使用; 9、函数的嵌套调用; 10、全局变量的值传递和同名变量的理解。
printf("%c,%c,%d\n",a,b,c);
问题 2 在与上面程序的键盘输入相同的情况下, 要使上面程序的输出语句在屏幕上显示 1 2 34,则应修改程序中的哪条语句?怎样修改? 问题 3 要使上面程序的键盘输入数据格式为 1,2,34,输出语句在屏幕上显示的结果也为 1,2,34,则应修改程序中的哪条语句?怎样修改? 问题 4 要使上面程序的键盘输入数据格式为 1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改? [提示:利用转义字符输出字符单引号字符。]
实验 7 结构体
题目:
1、定义一个结构体类型,用于存放职工信息,其中包括:职工号、姓名、性别、年龄、职 称、家庭住址。然后定义该类型的变量,从键盘输入具体数据,然后打印出来。 2、有 10 名学生,每个学生的数据包括:学号、姓名、成绩,从键盘输入 10 个学生的数据, 输出成绩最高者的姓名和成绩。
掌握以下内容:
1. 2. 3. 4. 5. 6. 7. 8. 一维数组的定义、元素的引用; 一维数组编程的循环控制特色; 排序等相关算法的实现; 一维数组编程的循环控制特色,程序调试时的数组越界问题; 排序算法的理解和记忆; 二维数组的定义、元素引用、使用方法; 字符数组的定义、元素引用、使用方法; 字符串的操作及常用程序设计方法。
x 3 1 3 x 1 y 2 x 1 5 3e 5 x 3 log (2 x 2 1) 13 10
x 1 1 x 1 1 x 10 x 10
编写一个程序,用 scanf 函数输入 x 的值,输出 y 值。注意表达式的书写方法。 提示:此题要用到数学函数 exp()和 log10() ,因此应包含相应的头文件 math.h。 3、输入年号,判断并输出该年是否闰年。所谓闰年,是指能被 4 整除,但不能被 100 整除; 或能被 400 整除的年份。 算法提示:此题要注意条件的表达。或者通过逻辑运算符构造复杂的条件表示;或者通过 if 分支嵌套来完成所有条件的表示。 4、输入学生考试成绩,输出相应等级,其中等级 A >=90,B>=80,C>=70,D>=60,E<60。 要求分别用 if 语句和 switch 语句解答,使用 switch 语句时注意 case、break、default 的语句 编写。
掌握以下内容:
1. 2. 3. 4. 关系运算符和逻辑运算符的使用; 非 0 即为真;&&和||的运算顺序和特殊情况(0&&非 0、非 0||0、if(5>4>3)) ; if 语句的使用; switch 语句的使用(注意 switch 的判断表达式、case 的用法、有无 break 的区别、default 的位置) ; 5. if 语句嵌套使用
掌握以下内容:
1. 2. 3. 4. 结构体类型的定义、结构体变量定义、结构体变量的使用; 结构体数组的使用; 结构体指针; 结构体类型作为函数参数。
实验 1 输入输出
要求掌握:
1、 VC++平台的使用; 2、 C 源程序的建立、保存、编译和运行; 3、 变量的定义、赋值和运算; 4、 printf 函数的使用; 5、 scanf 函数的使用; 6、 int、long、float、double、unsigned 的含义; 7、 关键字、预定义标识符和用户标识符的区别; 8、 自加自减运算符的使用。
A)1 2 34 C)’1’,’2’,34
B)1, 2, 34 D)12 34
问题 5 要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果 都为'1', '2',34,则程序应修改程序中的哪条语句?怎样修改? 第 1 种输入方式:1,2,34↙(以逗号作为分隔符) 第 2 种输入方式:1 2 34↙(以空格作为分隔符) 第 3 种输入方式:1 2 34↙(以 Tab 键作为分隔符) 第 4 种输入方式:1↙ 2↙ 34↙(以回车符作为分隔符) [提示:利用忽略输入修饰符。]
实验 3 循环语句
题目:
1. 从键盘输入若干整数,以 0 结束,判断并输出其中的最大数。 2. 输入、空格、数字 和其它字符的个数。 3. 分别用 while、do-while 和 for 语句计算 ) ,并试着简 n! (即求 1!+2!+3!+…+20!
掌握以下内容:
1. 2. 3. 4. 5. 6. 指针变量的含义及定义、使用; 指针作为函数参数的使用; 指针参数的函数调用时实参形式要求; 返回指针值的函数调用; 指针参数的定义及调用时实参的形式; 正确理解指针传递数据的过程。
实验 6 数组
题目:
1、运行下面的程序。根据运行结果,可以说明什么? main( ) { int i,x[5]={1,2,3,4,5}; for (i=0;i<=5;i++) printf("%4d",x[i]); } 2、从键盘输入 10 个整数,找出最大的数并输出该数及其下标。 3、有一个一维数组包含 10 个元素,编写程序将其中的值按升序排序存放。 4、从键盘输入一个字符串,分别输出其完全大写和完全小写的形式。 5、 有一个 4×5 的矩阵, 编写程序找出值最大的那个元素, 输出其值以及所在的行号和列号。 6、输入一个 M 行 M 列的二维数组,分别计算两条对角线上的元素之和。M 由下面的符号 常量定义: #define M 5
实验 1 实验 2 实验 3 实验 4 实验 5 实验 6 实验 7
熟悉 VC 环境,熟悉输入输出语句 熟悉选择语句使用 熟悉循环语句使用 熟悉函数使用 熟悉指针 熟悉数组 熟悉结构体